11 #ifndef __GEO_AttributeHandle__
12 #define __GEO_AttributeHandle__
43 GEO_AttributeHandle();
45 GEO_AttributeHandle(
const GEO_AttributeHandle &gah);
56 GEO_AttributeHandle *clone()
const;
61 ~GEO_AttributeHandle();
69 GEO_AttributeHandle &
operator=(
const GEO_AttributeHandle &gah);
75 bool isAttributeValid()
const;
77 bool isSourceAttributeValid()
const;
88 bool downgradeToReadOnly();
96 {
return isSharedStringAttribute(); }
98 bool isSharedStringAttribute() const;
104 bool isFloatOrVectorAttribute() const;
110 bool harden=true) const;
115 {
return getSharedString(idx); }
117 const
char *getSharedString(
int index) const;
126 void clearSourceMap()
129 setSourceMap(invalid);
145 { setElement(const_cast<const GEO_Vertex *>(v)); }
148 { setElement(const_cast<const GEO_Primitive *> (prim)); }
151 { setElement(const_cast<const GEO_Detail *>(gdp)); }
162 setElement(prim ? prim->getParent() : 0);
164 setPrimitive(prim ? prim->getMapOffset()
178 { setElement(const_cast<const GEO_Primitive *>(p),
179 const_cast<const GEO_Vertex *>(v)); }
184 { setElement(const_cast<const GEO_Primitive *>(p), v); }
203 bool isP()
const {
return myIsPointP; }
206 {
return mySourceDictType; }
209 {
return tupleSize(); }
211 int tupleSize() const;
213 int getFloatCount(
bool includePw)
const
217 return isFloatOrVectorAttribute() ? tupleSize() : 0;
224 fpreal getF(
int index=0) const;
227 void setI(
int val,
int index=0);
229 int getI(
int index=0) const;
232 void setV2(const
UT_Vector2 &val,
int index=0);
237 void setV3(const
UT_Vector3 &val,
int index=0);
242 void setV4(const
UT_Vector4 &val,
int index=0);
247 void setM2(const
UT_Matrix2 &val,
int index=0);
252 void setM3(const
UT_Matrix3 &val,
int index=0);
257 void setM4(const
UT_Matrix4 &val,
int index=0);
271 bool importVector(
int32 *val,
int size) const;
273 bool importVector(
int64 *val,
int size) const;
277 {
return importVector(&val, 1); }
280 {
return importVector(&val, 1); }
283 {
return importVector(&val, 1); }
286 {
return importVector(&val, 1); }
289 {
return importVector(v.data(), 2); }
292 {
return importVector(v.data(), 3); }
295 {
return importVector(v.data(), 4); }
298 {
return importVector(v.data(), 4); }
301 {
return importVector(v.data(), 9); }
304 {
return importVector(v.data(), 16); }
318 bool harden=true) const;
407 { addScale(&elem, w); }
413 {
lerp(&p0, &p1, w); }
419 { copyDataFrom(&elem); }
492 { addScaleDest(&elem, w); }
513 { lerpDest(&elem, w); }
534 { lerpDest(&p0, &p1, w); }
552 { multiplyDest(&elem); }
573 { copyDestData(&elem); }
584 void dump(const
char *msg="") const;
588 {
return isAttributeValid() &&
GAisValid(myBoundElement); }
590 {
return isSourceAttributeValid() &&
GAisValid(myBoundElement); }
648 template <
typename T>
inline bool
649 importVectorT(
T *
val,
int size)
const;
666 const GA_AIFInterp *myInterp;
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
Definition of a geometry attribute.
#define SYS_DEPRECATED(__V__)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the and then *wait for them to all complete We provide a helper class
Attribute Interface class to perform numeric operations on attributes.
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
virtual bool lerp(GA_AttributeOperand &d, GA_AttributeOperand &a, GA_AttributeOperand &b, GA_AttributeOperand &t) const
d = SYSlerp(a, b, t);
__hostdev__ void setValue(uint32_t offset, bool v)
SYS_FORCE_INLINE bool GAisValid(GA_Size v)
#define GA_INVALID_OFFSET
A string map of attributes to ease backward compatibility In the GB/GEO/GU library code would often p...
const char * getString(const GA_ROAttributeRef &h, int index=0) const
This class provides a way to manage a reference to an attribute permitting Read-Write access...
This class provides a way to manage a reference to an attribute permitting Read-Only access...
PXL_API const char * getName(const ColorSpace *space)
Return the name of the color space.
This class holds a reference to an attribute. Such an indirection level allows an easy way to invalid...
GA_Detail & getDetail() const
Provide access to the GA_Detail containing this element.
#define SYS_DEPRECATED_HDK(__V__)
void setString(const GA_WOAttributeRef &h, const char *str, int index=0)
void set(const GA_WOAttributeRef &h, const T *val, int count)
GLfloat GLfloat GLfloat GLfloat h
LeafData & operator=(const LeafData &)=delete
Container class for all geometry.
Attribute Interface class to copy attribute data.
GLubyte GLubyte GLubyte GLubyte w
Generic Attribute Interface class to access an attribute as a tuple.
bool isSourceValid() const
uint64_t multiply(uint64_t lhs, uint64_t rhs)
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter