12 #ifndef __SOP_GroomUtils_h__
13 #define __SOP_GroomUtils_h__
39 bool enable_multithreading=
true);
45 bool enable_multithreading =
true)
54 bool enable_multithreading =
true)
64 : numsamples(numsamples)
69 float lookup(
float u)
const;
87 , destowner(destowner)
94 const char *matchpattern,
147 CacheData* getCacheData()
const;
170 bool myAttribMissing;
189 : myMaxPartLines(maxpartlines)
212 const unsigned int myMaxPartLines;
220 void setCapacity(
unsigned capacity );
223 {
return myOffsets(2 *
id); }
226 {
return myOffsets(2 *
id + 1); }
232 sop_PartLineTree myLineTree;
bool update(const UT_Ramp *widthramp)
SYS_FORCE_INLINE const GA_PrimitiveGroup * findPrimitiveGroup(const UT_StringRef &name) const
float sop_unitToUnitLengthDomain(UT_Vector3Array &pos, float uparm)
float computePartingWeight(const UT_Vector3 &posA, const UT_Vector3 &posB, const sop_PartingLineAttribs &attribs, UT_ThreadSpecificValue< PerThreadData > &threadvalues) const
void build(const GEO_Detail *gdp, const GA_PointGroup *ptgroup=NULL, bool enable_multithreading=true)
GLsizei GLsizei GLchar * source
void setArraySize(unsigned int size)
sop_PartingLineAttribs(const GU_Detail &gdp, const GA_ROHandleV3 &restattrib, const SOP_NodeVerb::CookParms &cookparms)
float lookupNearest(float u) const
float sop_unitLengthToUnitDomain(UT_Vector3Array &pos, float ulength)
void setSize(exint newsize)
uint sop_vexHash(float seed)
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
void sop_skinPrimError(const SOP_NodeVerb::CookParms &cookparms)
std::pair< GA_AttributeOwner, UT_StringHolder > AttribMatchTuple
sop_PartingLineLookup(unsigned int maxpartlines)
void addSourceAttribs(const GA_AttributeOwner sourceowner, const char *matchpattern, UT_Set< AttribMatchTuple > &alreadymapped)
void mapAndCreateNonRealAttribs(GA_AttributeRefMap &map, const UT_ValArray< AttribChange > *changes) const
float sop_vexRand(uint seed)
GLuint const GLuint * names
void mapAndCreateAttribs(GA_AttributeRefMap &map) const
A handle to simplify manipulation of multiple attributes.
const GA_ROHandleV3 & rest
bool updateCache(UT_UniquePtr< CacheData > &cachedata, UT_ValArray< AttribChange > &changes) const
sop_SourceAttribList(GU_Detail *dest, const GU_Detail *source, const GA_AttributeOwner destowner)
void build(const GEO_Detail *gdp, const GA_PointGroup *ptgroup, const char *attrib, bool enable_multithreading=true)
Utility class for containing a color ramp.
static const GA_PrimitiveGroup * getGroup(const GU_Detail &gdp)
sop_FastRamp(int numsamples=1000)
fpreal sop_calcPerimeter(UT_Vector3Array &pos)
void setLines(const GU_Detail &gdp, const GA_ROHandleV3 &restattrib, const GA_PrimitiveGroup &partlinesgroup)
void build(const GEO_Detail *gdp, const GA_PrimitiveGroup *primgroup, const char *attrib, bool enable_multithreading=true)
float sop_vexRandom(uint seed)
void mapAndCreateRealAttribs(GA_AttributeRefMap &map, const UT_ValArray< AttribChange > *changes) const
void mapAndCreateAttrib(GA_AttributeRefMap &map, const UT_ValArray< AttribChange > *changes, int index) const
float lookup(float u) const
void build(const GEO_Detail *gdp, const GA_PointGroup *ptgroup, bool enable_multithreading=true)