11 #ifndef __GU_PackedImpl__
12 #define __GU_PackedImpl__
246 virtual bool isValid()
const = 0;
251 virtual void clearData() = 0;
272 {
UT_ASSERT(!
"JSON direct loading not supported");
return false; }
290 virtual bool loadSharedData(
int load_data_type,
300 virtual bool loadUnknownToken(
const char *token,
UT_JSONParser &
p,
324 virtual void getWidthRange(
fpreal &wmin,
fpreal &wmax)
const = 0;
338 const char *intrinsicFactoryName(
const GU_PrimPacked *prim)
const;
339 const char *intrinsicFactoryLabel(
const GU_PrimPacked *prim)
const;
348 const char *intrinsicViewportLOD(
const GU_PrimPacked *prim)
const;
364 {
return unpack(destgdp, prim); }
385 return unpack(destgdp, transform);
393 virtual bool unpackWithStyler(
410 virtual bool unpackUsingPolygons(
430 {
return myPointInstanceTransform; }
432 {
return pointInstanceTransform(); }
439 static bool computeVelocityRange(
const GU_Detail *gdp,
441 static bool computeWidthRange(
const GU_Detail *gdp,
445 virtual int64 getMemoryUsage(
bool inclusive)
const = 0;
464 UT_ASSERT_MSG(0,
"Subclass should implement setFacesetAttribute, when applicable.");
476 UT_ASSERT_MSG(0,
"Subclass should implement setAttributeNameMap, when applicable.");
483 return theNullPackedNameMapPtr;
490 UT_ASSERT_MSG(0,
"Subclass should implement setSharedNameMapData, when applicable.");
523 static void copyPrimitiveGroups(
GU_Detail &dest,
554 virtual fpreal computeArea()
const;
556 virtual fpreal computePerimeter()
const;
573 template <
typename T>
577 template <
typename T>
585 bool myPointInstanceTransform;
virtual bool saveCachedBBox() const
GLboolean GLboolean GLboolean b
SYS_FORCE_INLINE GU_PackedImpl * copyIfShared()
UT_JSONValueMap stores a map/dictionary of UT_JSONValue objects.
virtual bool unpackWithPrim(GU_Detail &destgdp, const UT_Matrix4D *transform, const GU_PrimPacked *prim) const
Used to pass options and map offset values during saving.
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
static const GEO_PackedNameMapPtr theNullPackedNameMapPtr
virtual bool unpackWithContext(GU_Detail &destgdp, GU_PackedContext &context, const GU_PrimPacked *prim) const
bool unpackToDetail(GU_Detail &destgdp, const GU_ConstDetailHandle &gdh, const UT_Matrix4D *transform) const
Unpack the source detail handle.
JSON reader class which handles parsing of JSON or bJSON files.
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
Class which writes ASCII or binary JSON streams.
A reference counter base class for use with UT_IntrusivePtr.
UT_SharedPtr< GA_SharedDataHandle > GA_SharedDataHandlePtr
virtual bool loadFromJSON(GU_PrimPacked *prim, const UT_JSONValueMap &options, const GA_LoadMap &map)
exint GA_Size
Defines the bit width for index and offset types in GA.
const char *(GU_PackedImpl::* StringGetter)(const GU_PrimPacked *) const
void setBoxCache(const T b[6])
GLubyte GLubyte GLubyte GLubyte w
#define UT_ASSERT_MSG(ZZ,...)
GLuint GLenum GLenum transform
virtual bool isLoaded() const
SYS_FORCE_INLINE uint32 use_count() const noexcept
Return current counter.
Map to translate from Alembic attribute names to Houdini names.
SYS_FORCE_INLINE bool isShared() const
int64 intrinsic16Tuple(const GU_PrimPacked *prim) const
void setBoxCache(const UT_BoundingBox &b)
virtual void forceLoad() const
const UT_BoundingBox & boxCache() const
GLsizei const GLchar *const * string
bool intrinsicPointInstanceTransform(const GU_PrimPacked *prim) const
virtual void setFacesetAttribute(const UT_StringHolder &s)
const char *(GU_PackedImpl::* StringTupleGetter)(const GU_PrimPacked *, exint) const
const UT_StringHolder &(GU_PackedImpl::* StringHolderTupleGetter)(const GU_PrimPacked *, exint) const
virtual void setSharedNameMapData(GA_SharedDataHandlePtr s)
int64 intrinsic9Tuple(const GU_PrimPacked *prim) const
virtual void setAttributeNameMap(const GEO_PackedNameMapPtr &m)
A map of string to various well defined value types.
GLsizei const GLint box[]
bool pointInstanceTransform() const
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
GLsizei const GLfloat * value
const std::string &(GU_PackedImpl::* StdStringTupleGetter)(const GU_PrimPacked *, exint) const
int64 intrinsic6Tuple(const GU_PrimPacked *prim) const
int64 intrinsic3Tuple(const GU_PrimPacked *prim) const
virtual bool supportsJSONLoad() const
const GU_Detail * getGdp() const
virtual const GEO_PackedNameMapPtr & attributeNameMap() const