11 #ifndef __GEO_AttributeHandleList__
12 #define __GEO_AttributeHandleList__
33 #define GEO_AHANDLE_LIST_BYPASS_P 0
34 #define GEO_AHANDLE_LIST_INCLUDE_P 1
42 GEO_AttributeHandleList();
44 virtual ~GEO_AttributeHandleList();
47 GEO_AttributeHandleList *
clone()
const;
83 {
return myVertexPool.getVertex(index); }
86 {
return myVertexPool.getPoint(index); }
92 {
return myVertexPool.appendVertex(pt); }
95 {
return myVertexPool.appendPoint(); }
101 { myVertexPool.freeVertex(v); }
104 { myVertexPool.freePoint(p); }
115 {
return (getBoundDetail() == gdp); }
120 GEO_Detail *getBoundMutableDetail() {
return myMutableDetail; }
126 int entries()
const {
return myAttribs.entries(); }
128 bool isEmpty()
const {
return entries() == 0; }
140 void clearAllAttributes();
147 int appendAllAttributes(GA_AttributeOwner owner);
149 int appendFloatAttributes(GA_AttributeOwner owner,
152 int appendAttributesByType(const
char *
type, GA_AttributeOwner o);
154 int appendAttributesByTypeInfo(
GA_TypeInfo i, GA_AttributeOwner o);
156 bool appendAttributeByName(const
char *
name, GA_AttributeOwner o);
158 int appendAttributesByPattern(const
char *
pattern,
175 int removeMissingAttributes(const
GEO_Detail *other);
177 bool removeAttributeByName(const
char *name);
182 void appendSourceMap(const
GEO_Detail *gdp, GA_AttributeOwner o);
189 void childSourceMapChanged();
196 bool isCommonSourceMapDetail(const
GEO_Detail *gdp) const;
242 bool includePw=true) const;
245 void matrixToFloats(const
UT_MatrixF &matrix,
int row,
246 bool includePw=true);
363 {
lerp(&p0, &p1, w); }
429 void dump(const
char *msg="") const;
467 hlist.fillAttributeRefMap(myMap);
468 for (
int i = 0; i < verts.entries(); i++)
469 myOffsets[i] = verts.getVertexElements()[i]->getMapOffset();
491 {
return (myMutableDetail ? myMutableDetail : myConstDetail); }
493 void invalidateCachedLists();
497 bool removeAttribute(
int i);
498 bool removeAttribute(
const char *
name);
504 void clearAttributes();
521 bool myIsDefaultSourceMap;
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
Definition of a geometry attribute.
*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
#define SYS_DEPRECATED_PUSH_DISABLE()
#define SYS_DEPRECATED_POP_DISABLE()
void copyDataFrom(const GEO_AttributeHandle &src)
Copies the data from the src attribute to this attribute.
virtual bool lerp(GA_AttributeOperand &d, GA_AttributeOperand &a, GA_AttributeOperand &b, GA_AttributeOperand &t) const
d = SYSlerp(a, b, t);
const GEO_Detail * getBoundDetail() const
GEO_AttributeHandle * clone() const
Manages allocation/deletion of temporary vertex/points for a detail.
void copyDestData(const GEO_Primitive *p, const GEO_Vertex *v)
__hostdev__ void setValue(uint32_t offset, bool v)
GA_Size GA_VertexPoolIndex
void setPoint(GA_Offset offset)
#define GA_INVALID_OFFSET
void addScaleDest(const GEO_Primitive *p, const GEO_Vertex *v, fpreal s)
void setPrimitive(GA_Offset offset)
GA_API const UT_StringHolder scale
void appendAttribute(PointDataTreeT &tree, const Name &name, const NamePair &type, const Index strideOrTotalSize, const bool constantStride, const Metadata *defaultValue, const bool hidden, const bool transient)
Appends a new attribute to the VDB tree (this method does not require a templated AttributeType) ...
void addScale(const GEO_AttributeHandle &gah, fpreal w)
Performs: this = this + gah * w.
int getFloatCount(bool includePw) const
void multiplyDest(const GEO_Primitive *p, const GEO_Vertex *v)
GEO_AttributeHandle * getEntry(int i) const
void setElement(GEO_Vertex *v)
A handle to simplify manipulation of multiple attributes.
Data has no numeric representation.
GLuint const GLchar * name
#define SYS_DEPRECATED_HDK(__V__)
GLfloat GLfloat GLfloat GLfloat h
#define GEO_AHANDLE_LIST_INCLUDE_P
void dump(const char *msg="") const
GLubyte GLubyte GLubyte GLubyte w
GLenum GLenum GLsizei void * row
void setVertex(GA_Offset offset)
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
uint64_t multiply(uint64_t lhs, uint64_t rhs)
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter