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