15 #ifndef __GEO_CaptureData__
16 #define __GEO_CaptureData__
31 #define GEO_CAPTUREDATA_DEFAULT_VALUE -1.0F
51 int changeString(
const char *from,
const char *to,
bool fullword )
52 {
return myPath.changeString( from, to, fullword ); }
60 int getID()
const {
return myID; }
77 {
return !(*
this == d); }
99 float capture_frame,
int num_pts=0,
int num_regions=0,
100 int num_entries_per_pnt=0 );
108 {
return myRegionData(i).getPath();}
110 {
return myRegionData(i).getXform();}
112 {
return myRegionData(i).getID();}
114 {
return myRegionData(i).getPrimNum(); }
116 {
return myRegionData(i).getXtaper(); }
118 {
return myRegionData(i).getZtaper(); }
120 {
return myRegionData(i).getTopCapHeight(); }
122 {
return myRegionData(i).getBotCapHeight(); }
124 {
return myRegionData(i).getMinWeight(); }
126 {
return myRegionData(i).getMaxWeight(); }
128 int changeString(
const char *from,
const char *to,
131 void updateRegionPath(
unsigned int i,
136 int findRegion(
const UT_String ®ion_path,
int prim_num)
const;
137 int findRegion(
int OPuniqueID,
int prim_num)
const;
139 void getRegionList(
int OPuniqueID,
UT_IntArray ®ions)
const;
144 float taperx,
float taperz,
145 float bot_cap,
float top_cap,
146 float min_weight,
float max_weight );
152 int saveOverrideFile( std::ostream &os,
159 bool loadOverrideFile(
const char *
filename,
int &line_num );
167 void appendSortedPtEntry(
GA_Index point_num,
int idx,
float weight);
170 void sortAndNormalizePtWeights();
179 bool relative_skel_root )
const;
184 static void parsePointData(
const float *
data,
int idx,
185 int ®ion_idx,
float &weight );
193 float getPointWeight(
int point_idx,
int region_idx,
int *prev_array_idx = NULL);
198 static int constructCaptureRegionDetailData(
199 const char *cregion_name,
204 int getDetailDataFromGdp(
const GEO_Detail *gdp );
209 static bool isValidCaptureAttribute(
215 bool loadOverrideFile(
UT_IStream &is,
int &line_num );
217 int savePointEntry(std::ostream &os,
int i,
const float *pt_data,
221 void computeSkelRootPath(
UT_String &root_path )
const;
223 bool relative_skel_root,
227 int getPointDataFromGdp(
const GEO_Detail *gdp,
239 float myCaptureFrame;
244 int myMaxEntriesPerPt;
258 || point_num >= myPtEntry.
last().pt_num);
260 if (myPtEntry.
entries() == 0 || point_num != myPtEntry.
last().pt_num)
263 myPtEntry.
last().pt_num = point_num;
264 myPtEntry.
last().num_entries = 0;
267 myPtData.
append(
float(idx));
270 myPtEntry.
last().num_entries++;
271 if (myPtEntry.
last().num_entries > myMaxEntriesPerPt)
272 myMaxEntriesPerPt = myPtEntry.
last().num_entries;
Definition of a geometry attribute.
GT_API const UT_StringHolder filename
GEO_CaptureData_PtAtr_Entry
const UT_String & getPath() const
int getNumEntriesPerPt() const
float getMinWeight() const
void setXform(const UT_Matrix4 &xf)
const GLuint GLenum const void * binary
void setTopCapHeight(float h)
GLsizei const GLchar *const * path
GLdouble GLdouble GLdouble z
Convenience class to store a bone capture region.
int regionPrimNum(unsigned i) const
void setMaxWeight(float m)
const UT_Matrix4 & getXform() const
float getBotCapHeight() const
int regionID(unsigned i) const
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
int getNumStoredPts() const
CaptureType
Methods for manipulating capture weights (GEO_CaptureWeight.C)
float getMaxWeight() const
std::string OIIO_UTIL_API replace(string_view str, string_view pattern, string_view replacement, bool global=false)
float getTopCapHeight() const
void setPath(const UT_String &path)
bool operator!=(const GEO_CaptureRegionData &d) const
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
SYS_DECLARE_LEGACY_TR(GU_Detail)
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
float topCap(unsigned i) const
const UT_Matrix4 & regionXform(unsigned i) const
exint entries() const
Alias of size(). size() is preferred.
unsigned int getNumRegions() const
GLfloat GLfloat GLfloat GLfloat h
float botCap(unsigned i) const
float taperX(unsigned i) const
LeafData & operator=(const LeafData &)=delete
int changeString(const char *from, const char *to, bool fullword)
void setXZtapers(float x, float z)
float maxWeight(unsigned i) const
void appendSortedPtEntry(GA_Index point_num, int idx, float weight)
const UT_String & regionPath(unsigned i) const
float taperZ(unsigned i) const
void setMinWeight(float m)
float minWeight(unsigned i) const
void setBotCapHeight(float h)