11 #ifndef __GT_RefineParms__
12 #define __GT_RefineParms__
32 unsigned hash()
const;
40 {
return isEqual(src); }
42 {
return !isEqual(src); }
48 { myOptions.setOptionB(name, v); }
50 { myOptions.setOptionI(name, v); }
52 { myOptions.setOptionF(name, v); }
54 { myOptions.setOptionS(name, v); }
56 { myOptions.setOptionIArray(name, v); }
58 { myOptions.setOptionFArray(name, v); }
65 {
return importOption(
name,
v); }
67 {
return importOption(
name,
v); }
69 {
return importOption(
name,
v); }
71 {
return importOption(
name,
v); }
73 {
return importOption(
name,
v); }
75 {
return importOption(
name,
v); }
77 {
return importOption(
name,
v); }
79 {
return importOption(
name,
v); }
81 {
return importOption(
name,
v); }
89 return import(
name,
val) ? val : def;
94 return import(
name,
val) ? val : def;
99 return import(
name,
val) ? val : def;
114 return parms ? parms->
get(name, def) : def;
119 return parms ? parms->
get(name, def) : def;
124 return parms ? parms->
get(name, def) : def;
131 ? parms->
get(name, def, storage)
140 #define GT_GETSET(METHOD, NAME, TYPE, DEF) \
142 static inline const UT_StringHolder &get##METHOD##Name() \
144 static constexpr UT_StringLit theName(NAME); \
145 return theName.asHolder(); \
148 void set##METHOD(TYPE v) { set(get##METHOD##Name(), v); } \
149 TYPE get##METHOD() const { return get(get##METHOD##Name(), (TYPE)DEF); } \
150 static TYPE get##METHOD(const GT_RefineParms *parms) \
151 { return parms ? parms->get(get##METHOD##Name(),(TYPE)DEF) : (TYPE)DEF; }
154 #define GT_GETSET_STR(METHOD, NAME, DEF) \
155 void set##METHOD(const char *v) { set(NAME, v); } \
156 const char *get##METHOD(UT_String &storage) const \
157 { return get(NAME, DEF, storage); } \
158 static const char *get##METHOD(const GT_RefineParms *parms, \
159 UT_String &storage) \
160 { return parms ? parms->get(NAME,DEF,storage) : DEF; }
162 #define GT_GETSET_BIT(METHOD, MEMBER, DEF) \
163 void set##METHOD(bool v) { MEMBER = v; } \
164 bool get##METHOD() const { return MEMBER; } \
165 static bool get##METHOD(const GT_RefineParms *parms) \
166 { return parms ? parms->get##METHOD() : DEF; }
168 #define GT_GETSET_INT(METHOD, MEMBER, DEF) \
169 void set##METHOD(exint v) { MEMBER = v; } \
170 exint get##METHOD() const { return MEMBER; } \
171 static exint get##METHOD(const GT_RefineParms *parms) \
172 { return parms ? parms->get##METHOD() : DEF; }
175 GT_GETSET (GeoPointMesh,
"geo:pointmesh",
bool,
false)
178 GT_GETSET (ShowUnusedPoints, "geo:unusedpoints",
bool, true)
181 GT_GETSET (ShowAllPoints, "geo:allpoints",
bool, false)
184 GT_GETSET (GeoPolygonMesh, "geo:polygonmesh",
bool, true)
197 GT_GETSET (QuadricDivs, "quadricdivs", fpreal, 20.0)
201 GT_GETSET (MetaDensity, "metadensity", fpreal, 30.0)
204 GT_GETSET (URange0, "urange_min", fpreal, 0.0)
205 GT_GETSET (URange1, "urange_max", fpreal, 1.0)
206 GT_GETSET (VRange0, "vrange_min", fpreal, 0.0)
207 GT_GETSET (VRange1, "vrange_max", fpreal, 1.0)
215 GT_GETSET_INT(OverridePackedViewportLOD, myOverridePackedLOD, -1);
221 GT_GETSET (ViewportAgentPointLimit, "
agent:pointlimit", exint, 1000)
224 GT_GETSET (RefineAgentsForViewport, "
agent:refineviewport",
bool, false)
228 GT_GETSET (UseAgentCollisionLayer, "
agent:collisionlayer",
bool, false)
231 GT_GETSET (UseGPUCharacterDeformation, "character:gpudeform",
bool, false)
237 GT_GETSET_BIT(ViewportAlembicFaceSets, myAlembicFaceSets, false)
238 GT_GETSET_BIT(ViewportAlembicArbGeometry, myAlembicArbGeo, true)
240 GT_GETSET_BIT(AlembicHoudiniAttribs, myAlembicHoudiniAttribs, true)
243 GT_GETSET_BIT(PointInstanceEnable, myPointInstanceEnable, false)
248 GT_GETSET_BIT(AlembicSkipInvisible, myAlembicSkipInvisible, true)
251 GT_GETSET (ConvertIncludeIds, "gconvert:include_ids",
bool, false)
254 GT_GETSET (ConvertParticlePrim, "gconvert:particleprim",
bool, false)
257 GT_GETSET (ConvertPack, "gconvert:pack",
bool, false)
259 GT_GETSET (AllowPolySoup, "gconvert:allow_polysoup",
bool, true)
272 GT_GETSET (CoalesceFragments, "coalescefragments",
bool, true);
277 GT_GETSET (CoalesceVolumes, "coalescevolumes",
bool, true);
294 GT_GETSET (FastPolyCompacting, "fastpolycompacting",
bool, true);
299 GT_GETSET (AddVertexNormals, "addvertexnormals",
bool, false);
306 GT_GETSET (AddMikkT, "addmikkt",
bool, false);
314 GT_GETSET (MaxPolyMeshSize, "maxpolymeshsize", exint, -1)
318 GT_GETSET (MaxPolyCurveSize, "maxpolycurvesize", exint, -1)
324 GT_GETSET (SequenceSubsteps, "sequencesubsteps", exint, -1)
330 GT_GETSET (SeparateInstances, "separateinstance",
bool, false)
335 GT_GETSET (FullBezierSupport, "fullBezierSupport",
bool, true);
338 GT_GETSET (CubicBezierSupport, "cubicBezierSupport",
bool, true);
342 GT_GETSET (RefineCRegionsToCurves, "refinecregionstocurves",
bool, false)
350 GT_GETSET (HeightFieldConvert, "heightfieldconvert",
bool, false);
353 GT_GETSET (ForVulkan, "forvulkan",
bool, false);
355 #undef GT_IMPLEMENT_GETSET
356 #undef GT_IMPLEMENT_GETSET_STR
359 {
return myViewportMaterialAttrib; }
361 {
return myViewportMaterialRemapAttrib; }
364 { myViewportMaterialAttrib = mh;
365 myViewportMaterialRemapAttrib = rh; }
368 { myAttribFilter = af; }
370 {
return myAttribFilter; }
385 static void *
operator new(
size_t size);
386 static void *
operator new(
size_t size,
void *p);
387 static void operator delete(
void *p,
size_t size);
391 template <
typename T>
bool
394 return myOptions.importOption(name, value);
398 int myAlembicArbGeo : 1,
399 myAlembicFaceSets : 1,
400 myAlembicHoudiniAttribs : 1,
401 myAlembicInstancing : 1,
402 myAlembicGLOptimize : 1,
403 myAlembicSkipInvisible : 1,
406 myAllowSubdivPolys : 1,
407 myPointInstanceEnable : 1,
408 myOverridePackedLOD : 5,
void setViewportMaterialAttrib(const GT_DataArrayHandle &mh, const GT_DataArrayHandle &rh)
void set(const UT_StringHolder &name, UT_Int64Array &v)
GLenum GLuint GLenum GLsizei const GLchar * buf
static fpreal getFloat(const GT_RefineParms *parms, const UT_StringRef &name, fpreal def)
#define GT_GETSET_BIT(METHOD, MEMBER, DEF)
GT_DataArrayHandle getViewportMaterialRemapAttrib() const
void set(const UT_StringHolder &name, const char *v)
#define GT_GETSET_INT(METHOD, MEMBER, DEF)
getFileOption("OpenEXR:storage") storage
SIM_API const UT_StringHolder agent
GLsizei const GLfloat * value
bool get(const UT_StringRef &name, bool def) const
void set(const UT_StringHolder &name, fpreal v)
Class to filter attributes when building GT_AttributeLists.
#define GT_GETSET(METHOD, NAME, TYPE, DEF)
void set(const UT_StringHolder &name, exint v)
#define GEO_DEFAULT_ADJUSTED_CUSP_ANGLE
bool operator!=(const GT_RefineParms &src) const
GT_DataArrayHandle getViewportMaterialAttrib() const
bool importOption(const UT_StringRef &name, T &value) const
GLuint const GLchar * name
#define GT_GETSET_STR(METHOD, NAME, DEF)
void set(const UT_StringHolder &name, bool v)
void setAttributeFilter(const GT_GEOAttributeFilter *af)
static const char * getString(const GT_RefineParms *parms, const UT_StringRef &name, const char *def, UT_String &storage)
const GT_GEOAttributeFilter * getAttributeFilter() const
A map of string to various well defined value types.
GA_API const UT_StringHolder parms
void set(const UT_StringHolder &name, UT_Fpreal64Array &v)
static bool getBool(const GT_RefineParms *parms, const UT_StringRef &name, bool def)
static exint getInt(const GT_RefineParms *parms, const UT_StringRef &name, exint def)
bool operator==(const GT_RefineParms &src) const