15 #ifndef __GEO_CaptureData__
16 #define __GEO_CaptureData__
29 #define GEO_CAPTUREDATA_DEFAULT_VALUE -1.0F
49 int changeString(
const char *from,
const char *to,
bool fullword )
50 {
return myPath.changeString( from, to, fullword ); }
58 int getID()
const {
return myID; }
75 {
return !(*
this == d); }
97 float capture_frame,
int num_pts=0,
int num_regions=0,
98 int num_entries_per_pnt=0 );
106 {
return myRegionData(i).getPath();}
108 {
return myRegionData(i).getXform();}
110 {
return myRegionData(i).getID();}
112 {
return myRegionData(i).getPrimNum(); }
114 {
return myRegionData(i).getXtaper(); }
116 {
return myRegionData(i).getZtaper(); }
118 {
return myRegionData(i).getTopCapHeight(); }
120 {
return myRegionData(i).getBotCapHeight(); }
122 {
return myRegionData(i).getMinWeight(); }
124 {
return myRegionData(i).getMaxWeight(); }
126 int changeString(
const char *from,
const char *to,
129 void updateRegionPath(
unsigned int i,
134 int findRegion(
const UT_String ®ion_path,
int prim_num)
const;
135 int findRegion(
int OPuniqueID,
int prim_num)
const;
137 void getRegionList(
int OPuniqueID,
UT_IntArray ®ions)
const;
142 float taperx,
float taperz,
143 float bot_cap,
float top_cap,
144 float min_weight,
float max_weight );
150 int saveOverrideFile( std::ostream &os,
157 bool loadOverrideFile(
const char *
filename,
int &line_num );
165 void appendSortedPtEntry(
GA_Index point_num,
int idx,
float weight);
168 void sortAndNormalizePtWeights();
177 bool relative_skel_root )
const;
182 static void parsePointData(
const float *
data,
int idx,
183 int ®ion_idx,
float &
weight );
191 float getPointWeight(
int point_idx,
int region_idx,
int *prev_array_idx = NULL);
196 static int constructCaptureRegionDetailData(
197 const char *cregion_name,
202 int getDetailDataFromGdp(
const GEO_Detail *gdp );
205 bool loadOverrideFile(
UT_IStream &is,
int &line_num );
207 int savePointEntry(std::ostream &os,
int i,
const float *pt_data,
211 void computeSkelRootPath(
UT_String &root_path )
const;
213 bool relative_skel_root,
217 int getPointDataFromGdp(
const GEO_Detail *gdp,
229 float myCaptureFrame;
234 int myMaxEntriesPerPt;
248 || point_num >= myPtEntry.
last().pt_num);
250 if (myPtEntry.
entries() == 0 || point_num != myPtEntry.
last().pt_num)
253 myPtEntry.
last().pt_num = point_num;
254 myPtEntry.
last().num_entries = 0;
257 myPtData.
append(
float(idx));
260 myPtEntry.
last().num_entries++;
261 if (myPtEntry.
last().num_entries > myMaxEntriesPerPt)
262 myMaxEntriesPerPt = myPtEntry.
last().num_entries;
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
Convenience class to store a bone capture region.
int regionPrimNum(unsigned i) const
void setMaxWeight(float m)
const UT_Matrix4 & getXform() const
GLuint GLuint GLfloat weight
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
float getMaxWeight() const
std::string OIIO_UTIL_API replace(string_view str, string_view pattern, string_view replacement, bool global=false)
GLdouble GLdouble GLdouble z
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).
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
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)