11 #ifndef __GT_RefineParms__
12 #define __GT_RefineParms__
31 unsigned hash()
const;
39 {
return isEqual(src); }
41 {
return !isEqual(src); }
47 { myOptions.setOptionB(name, v); }
49 { myOptions.setOptionI(name, v); }
51 { myOptions.setOptionF(name, v); }
53 { myOptions.setOptionS(name, v); }
55 { myOptions.setOptionIArray(name, v); }
57 { myOptions.setOptionFArray(name, v); }
64 {
return importOption(
name,
v); }
66 {
return importOption(
name,
v); }
68 {
return importOption(
name,
v); }
70 {
return importOption(
name,
v); }
72 {
return importOption(
name,
v); }
74 {
return importOption(
name,
v); }
76 {
return importOption(
name,
v); }
78 {
return importOption(
name,
v); }
80 {
return importOption(
name,
v); }
88 return import(
name,
val) ? val : def;
93 return import(
name,
val) ? val : def;
98 return import(
name,
val) ? val : def;
113 return parms ? parms->
get(name, def) : def;
118 return parms ? parms->
get(name, def) : def;
123 return parms ? parms->
get(name, def) : def;
130 ? parms->
get(name, def, storage)
139 #define GT_GETSET(METHOD, NAME, TYPE, DEF) \
141 static inline const UT_StringHolder &get##METHOD##Name() \
143 static constexpr UT_StringLit theName(NAME); \
144 return theName.asHolder(); \
147 void set##METHOD(TYPE v) { set(get##METHOD##Name(), v); } \
148 TYPE get##METHOD() const { return get(get##METHOD##Name(), (TYPE)DEF); } \
149 static TYPE get##METHOD(const GT_RefineParms *parms) \
150 { return parms ? parms->get(get##METHOD##Name(),(TYPE)DEF) : (TYPE)DEF; }
153 #define GT_GETSET_STR(METHOD, NAME, DEF) \
154 void set##METHOD(const char *v) { set(NAME, v); } \
155 const char *get##METHOD(UT_String &storage) const \
156 { return get(NAME, DEF, storage); } \
157 static const char *get##METHOD(const GT_RefineParms *parms, \
158 UT_String &storage) \
159 { return parms ? parms->get(NAME,DEF,storage) : DEF; }
161 #define GT_GETSET_BIT(METHOD, MEMBER, DEF) \
162 void set##METHOD(bool v) { MEMBER = v; } \
163 bool get##METHOD() const { return MEMBER; } \
164 static bool get##METHOD(const GT_RefineParms *parms) \
165 { return parms ? parms->get##METHOD() : DEF; }
167 #define GT_GETSET_INT(METHOD, MEMBER, DEF) \
168 void set##METHOD(exint v) { MEMBER = v; } \
169 exint get##METHOD() const { return MEMBER; } \
170 static exint get##METHOD(const GT_RefineParms *parms) \
171 { return parms ? parms->get##METHOD() : DEF; }
174 GT_GETSET (GeoPointMesh,
"geo:pointmesh",
bool,
false)
177 GT_GETSET (ShowUnusedPoints, "geo:unusedpoints",
bool, true)
180 GT_GETSET (ShowAllPoints, "geo:allpoints",
bool, false)
183 GT_GETSET (GeoPolygonMesh, "geo:polygonmesh",
bool, true)
196 GT_GETSET (QuadricDivs, "quadricdivs", fpreal, 20.0)
200 GT_GETSET (MetaDensity, "metadensity", fpreal, 30.0)
203 GT_GETSET (URange0, "urange_min", fpreal, 0.0)
204 GT_GETSET (URange1, "urange_max", fpreal, 1.0)
205 GT_GETSET (VRange0, "vrange_min", fpreal, 0.0)
206 GT_GETSET (VRange1, "vrange_max", fpreal, 1.0)
214 GT_GETSET_INT(OverridePackedViewportLOD, myOverridePackedLOD, -1);
217 GT_GETSET (ViewportAgentMaxLOD, "agent:maxlod", exint, 4)
220 GT_GETSET (ViewportAgentPointLimit, "agent:pointlimit", exint, 1000)
223 GT_GETSET (RefineAgentsForViewport, "agent:refineviewport",
bool, false)
227 GT_GETSET (UseAgentCollisionLayer, "agent:collisionlayer",
bool, false)
233 GT_GETSET_BIT(ViewportAlembicFaceSets, myAlembicFaceSets, false)
234 GT_GETSET_BIT(ViewportAlembicArbGeometry, myAlembicArbGeo, true)
236 GT_GETSET_BIT(AlembicHoudiniAttribs, myAlembicHoudiniAttribs, true)
239 GT_GETSET_BIT(PointInstanceEnable, myPointInstanceEnable, false)
244 GT_GETSET_BIT(AlembicSkipInvisible, myAlembicSkipInvisible, true)
247 GT_GETSET (ConvertIncludeIds, "gconvert:include_ids",
bool, false)
250 GT_GETSET (ConvertParticlePrim, "gconvert:particleprim",
bool, false)
253 GT_GETSET (ConvertPack, "gconvert:pack",
bool, false)
255 GT_GETSET (AllowPolySoup, "gconvert:allow_polysoup",
bool, true)
268 GT_GETSET (CoalesceFragments, "coalescefragments",
bool, true);
273 GT_GETSET (CoalesceVolumes, "coalescevolumes",
bool, true);
290 GT_GETSET (FastPolyCompacting, "fastpolycompacting",
bool, true);
295 GT_GETSET (AddVertexNormals, "addvertexnormals",
bool, false);
302 GT_GETSET (AddMikkT, "addmikkt",
bool, false);
310 GT_GETSET (MaxPolyMeshSize, "maxpolymeshsize", exint, -1)
316 GT_GETSET (SequenceSubsteps, "sequencesubsteps", exint, -1)
322 GT_GETSET (SeparateInstances, "separateinstance",
bool, false)
327 GT_GETSET (FullBezierSupport, "fullBezierSupport",
bool, true);
330 GT_GETSET (CubicBezierSupport, "cubicBezierSupport",
bool, true);
334 GT_GETSET (RefineCRegionsToCurves, "refinecregionstocurves",
bool, false)
342 GT_GETSET (HeightFieldConvert, "heightfieldconvert",
bool, false);
344 #undef GT_IMPLEMENT_GETSET
345 #undef GT_IMPLEMENT_GETSET_STR
348 {
return myViewportMaterialAttrib; }
350 {
return myViewportMaterialRemapAttrib; }
353 { myViewportMaterialAttrib = mh;
354 myViewportMaterialRemapAttrib = rh; }
357 { myAttribFilter = af; }
359 {
return myAttribFilter; }
374 static void *
operator new(
size_t size);
375 static void *
operator new(
size_t size,
void *
p);
376 static void operator delete(
void *
p,
size_t size);
380 template <
typename T>
bool
383 return myOptions.importOption(name, value);
387 int myAlembicArbGeo : 1,
388 myAlembicFaceSets : 1,
389 myAlembicHoudiniAttribs : 1,
390 myAlembicInstancing : 1,
391 myAlembicGLOptimize : 1,
392 myAlembicSkipInvisible : 1,
395 myAllowSubdivPolys : 1,
396 myPointInstanceEnable : 1,
397 myOverridePackedLOD : 5,
void setViewportMaterialAttrib(const GT_DataArrayHandle &mh, const GT_DataArrayHandle &rh)
void set(const UT_StringHolder &name, UT_Int64Array &v)
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)
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)
GLuint const GLchar * name
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
#define GT_GETSET_STR(METHOD, NAME, DEF)
void set(const UT_StringHolder &name, bool v)
void setAttributeFilter(const GT_GEOAttributeFilter *af)
GLenum GLuint GLenum GLsizei const GLchar * buf
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.
void set(const UT_StringHolder &name, UT_Fpreal64Array &v)
static bool getBool(const GT_RefineParms *parms, const UT_StringRef &name, bool def)
getOption("OpenEXR.storage") storage
static exint getInt(const GT_RefineParms *parms, const UT_StringRef &name, exint def)
bool operator==(const GT_RefineParms &src) const