OpenSubdiv
Toggle main menu visibility
Loading...
Searching...
No Matches
options.h
Go to the documentation of this file.
1
//
2
// Copyright 2014 DreamWorks Animation LLC.
3
//
4
// Licensed under the Apache License, Version 2.0 (the "Apache License")
5
// with the following modification; you may not use this file except in
6
// compliance with the Apache License and the following modification to it:
7
// Section 6. Trademarks. is deleted and replaced with:
8
//
9
// 6. Trademarks. This License does not grant permission to use the trade
10
// names, trademarks, service marks, or product names of the Licensor
11
// and its affiliates, except as required to comply with Section 4(c) of
12
// the License and to reproduce the content of the NOTICE file.
13
//
14
// You may obtain a copy of the Apache License at
15
//
16
// http://www.apache.org/licenses/LICENSE-2.0
17
//
18
// Unless required by applicable law or agreed to in writing, software
19
// distributed under the Apache License with the above modification is
20
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
// KIND, either express or implied. See the Apache License for the specific
22
// language governing permissions and limitations under the Apache License.
23
//
24
#ifndef OPENSUBDIV3_SDC_OPTIONS_H
25
#define OPENSUBDIV3_SDC_OPTIONS_H
26
27
#include "../version.h"
28
29
namespace
OpenSubdiv
{
30
namespace
OPENSUBDIV_VERSION
{
31
32
namespace
Sdc
{
33
50
51
class
Options
{
52
public
:
53
enum
VtxBoundaryInterpolation
{
54
VTX_BOUNDARY_NONE
= 0,
56
VTX_BOUNDARY_EDGE_ONLY
,
57
VTX_BOUNDARY_EDGE_AND_CORNER
59
};
60
enum
FVarLinearInterpolation
{
61
FVAR_LINEAR_NONE
= 0,
62
FVAR_LINEAR_CORNERS_ONLY
,
63
FVAR_LINEAR_CORNERS_PLUS1
,
64
FVAR_LINEAR_CORNERS_PLUS2
,
65
FVAR_LINEAR_BOUNDARIES
,
66
FVAR_LINEAR_ALL
67
};
68
enum
CreasingMethod
{
69
CREASE_UNIFORM
= 0,
70
CREASE_CHAIKIN
71
};
72
enum
TriangleSubdivision
{
73
TRI_SUB_CATMARK
= 0,
74
TRI_SUB_SMOOTH
75
};
76
77
public
:
78
79
Options
() : _vtxBoundInterp(
VTX_BOUNDARY_NONE
),
80
_fvarLinInterp(
FVAR_LINEAR_ALL
),
81
_creasingMethod(
CREASE_UNIFORM
),
82
_triangleSub(
TRI_SUB_CATMARK
) { }
83
84
//
85
// Trivial get/set methods:
86
//
87
89
VtxBoundaryInterpolation
GetVtxBoundaryInterpolation
()
const
{
return
(
VtxBoundaryInterpolation
) _vtxBoundInterp; }
90
92
void
SetVtxBoundaryInterpolation
(
VtxBoundaryInterpolation
b) { _vtxBoundInterp = b; }
93
95
FVarLinearInterpolation
GetFVarLinearInterpolation
()
const
{
return
(
FVarLinearInterpolation
) _fvarLinInterp; }
96
98
void
SetFVarLinearInterpolation
(
FVarLinearInterpolation
b) { _fvarLinInterp = b; }
99
101
CreasingMethod
GetCreasingMethod
()
const
{
return
(
CreasingMethod
) _creasingMethod; }
102
104
void
SetCreasingMethod
(
CreasingMethod
c) { _creasingMethod = c; }
105
107
TriangleSubdivision
GetTriangleSubdivision
()
const
{
return
(
TriangleSubdivision
) _triangleSub; }
108
110
void
SetTriangleSubdivision
(
TriangleSubdivision
t) { _triangleSub = t; }
111
112
private
:
113
114
// Bitfield members:
115
unsigned
int
_vtxBoundInterp : 2,
116
_fvarLinInterp : 3,
117
_creasingMethod : 2,
118
_triangleSub : 2;
119
};
120
121
}
// end namespace sdc
122
123
}
// end namespace OPENSUBDIV_VERSION
124
using namespace
OPENSUBDIV_VERSION;
125
}
// end namespace OpenSubdiv
126
127
#endif
/* OPENSUBDIV3_SDC_OPTIONS_H */
OpenSubdiv
Definition
error.h:30
OpenSubdiv::OPENSUBDIV_VERSION
Definition
error.h:31
OpenSubdiv::OPENSUBDIV_VERSION::Sdc
Definition
bilinearScheme.h:34
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::TriangleSubdivision
TriangleSubdivision
Definition
options.h:72
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::TRI_SUB_CATMARK
@ TRI_SUB_CATMARK
Catmark weights (Catmark scheme only).
Definition
options.h:73
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::TRI_SUB_SMOOTH
@ TRI_SUB_SMOOTH
"smooth triangle" weights (Catmark scheme only)
Definition
options.h:74
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::CreasingMethod
CreasingMethod
Definition
options.h:68
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::CREASE_UNIFORM
@ CREASE_UNIFORM
Catmark rule.
Definition
options.h:69
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::CREASE_CHAIKIN
@ CREASE_CHAIKIN
Chaikin rule.
Definition
options.h:70
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::GetTriangleSubdivision
TriangleSubdivision GetTriangleSubdivision() const
Get triangle subdivision weights rule (Catmark scheme only !).
Definition
options.h:107
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::GetCreasingMethod
CreasingMethod GetCreasingMethod() const
Get edge crease rule.
Definition
options.h:101
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::Options
Options()
Definition
options.h:79
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::SetFVarLinearInterpolation
void SetFVarLinearInterpolation(FVarLinearInterpolation b)
Set face-varying interpolation rule.
Definition
options.h:98
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::SetTriangleSubdivision
void SetTriangleSubdivision(TriangleSubdivision t)
Set triangle subdivision weights rule (Catmark scheme only !).
Definition
options.h:110
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::GetVtxBoundaryInterpolation
VtxBoundaryInterpolation GetVtxBoundaryInterpolation() const
Get vertex boundary interpolation rule.
Definition
options.h:89
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVarLinearInterpolation
FVarLinearInterpolation
Definition
options.h:60
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_CORNERS_ONLY
@ FVAR_LINEAR_CORNERS_ONLY
sharpen corners only
Definition
options.h:62
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_BOUNDARIES
@ FVAR_LINEAR_BOUNDARIES
sharpen all boundaries ("always sharp")
Definition
options.h:65
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_CORNERS_PLUS2
@ FVAR_LINEAR_CORNERS_PLUS2
("edge and corner + propagate corner")
Definition
options.h:64
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_CORNERS_PLUS1
@ FVAR_LINEAR_CORNERS_PLUS1
("edge corner")
Definition
options.h:63
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_ALL
@ FVAR_LINEAR_ALL
bilinear interpolation ("bilinear")
Definition
options.h:66
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::FVAR_LINEAR_NONE
@ FVAR_LINEAR_NONE
smooth everywhere ("edge only")
Definition
options.h:61
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::SetVtxBoundaryInterpolation
void SetVtxBoundaryInterpolation(VtxBoundaryInterpolation b)
Set vertex boundary interpolation rule.
Definition
options.h:92
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::GetFVarLinearInterpolation
FVarLinearInterpolation GetFVarLinearInterpolation() const
Get face-varying interpolation rule.
Definition
options.h:95
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::VtxBoundaryInterpolation
VtxBoundaryInterpolation
Definition
options.h:53
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::VTX_BOUNDARY_NONE
@ VTX_BOUNDARY_NONE
Definition
options.h:54
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::VTX_BOUNDARY_EDGE_ONLY
@ VTX_BOUNDARY_EDGE_ONLY
all boundary edges sharpened and interpolated
Definition
options.h:56
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::VTX_BOUNDARY_EDGE_AND_CORNER
@ VTX_BOUNDARY_EDGE_AND_CORNER
Definition
options.h:57
OpenSubdiv::OPENSUBDIV_VERSION::Sdc::Options::SetCreasingMethod
void SetCreasingMethod(CreasingMethod c)
Set edge crease rule.
Definition
options.h:104
opensubdiv
sdc
options.h
Generated on
for OpenSubdiv by
1.18.0