|
| GusdPrimWrapper () |
|
| GusdPrimWrapper (const UsdTimeCode &time, const GusdPurposeSet &purposes) |
|
| GusdPrimWrapper (const GusdPrimWrapper &in) |
|
| ~GusdPrimWrapper () override |
|
int | getPrimitiveType () const final |
|
virtual bool | isValid () const |
| Return true if the underlying USD prim is valid. More...
|
|
virtual const UsdGeomImageable | getUsdPrim () const =0 |
|
virtual bool | unpack (UT_Array< GU_DetailHandle > &details, const UT_StringRef &fileName, const SdfPath &primPath, const UT_Matrix4D *xform, fpreal frame, const char *viewportLod, GusdPurposeSet purposes, const GT_RefineParms &rparms) const |
|
virtual bool | redefine (const UsdStagePtr &stage, const SdfPath &path, const GusdContext &ctxt, const GT_PrimitiveHandle &sourcePrim) |
| Create a new USD prim to match GT primitive. More...
|
|
virtual bool | updateFromGTPrim (const GT_PrimitiveHandle &sourcePrim, const UT_Matrix4D &houXform, const GusdContext &ctxt, GusdSimpleXformCache &xformCache) |
|
virtual void | addLeadingBookend (double curFrame, double startFrame) |
|
virtual void | addTrailingBookend (double curFrame) |
| Add a sample at the current frame, invising this from. More...
|
|
void | markVisible (bool in) |
| Keep track of the visibility state of the prim for book marks. More...
|
|
bool | isVisible () const |
|
virtual void | setVisibility (const TfToken &visibility, UsdTimeCode time) |
|
void | loadPrimvars (const UsdPrimDefinition &prim_defn, UsdTimeCode time, const GT_RefineParms *rparms, int minUniform, int minPoint, int minVertex, const std::string &primPath, GT_AttributeListHandle *vertex, GT_AttributeListHandle *point, GT_AttributeListHandle *primitive, GT_AttributeListHandle *constant, const GT_DataArrayHandle &remapIndicies=GT_DataArrayHandle()) const |
|
| GT_Primitive () |
|
| GT_Primitive (const GT_Primitive &src) |
|
virtual | ~GT_Primitive () |
|
virtual const char * | className () const =0 |
|
virtual bool | getUniqueID (int64 &id) const |
|
virtual void | enlargeBounds (UT_BoundingBox boxes[], int nsegments) const =0 |
|
virtual void | enlargeRenderBounds (UT_BoundingBox boxes[], int nsegments) const |
|
virtual void | getVelocityRange (UT_Vector3 &min, UT_Vector3 &max, const UT_StringRef &attribute_name=GA_Names::v) const |
|
virtual bool | refine (GT_Refine &refiner, const GT_RefineParms *parms=NULL) const |
|
virtual int | getMotionSegments () const =0 |
|
virtual int64 | getMemoryUsage () const =0 |
|
const GT_TransformHandle & | getPrimitiveTransform () const |
|
void | setPrimitiveTransform (const GT_TransformHandle &x) |
| Set the transform for a the primitive. More...
|
|
GT_PrimitiveHandle | clone () const |
|
virtual bool | hasDataArray (const UT_StringRef &name, GT_Owner owner_scope[], int num_owners, GT_Storage *storage=NULL, GT_Size *tuple_size=NULL) const |
|
virtual bool | updateGeoPrim (const GU_ConstDetailHandle &dtl, const GT_RefineParms &parms) |
| update any cached data for geometry and its attributes More...
|
|
void | setStaticGeometry (bool static_geo) |
| Return true if the primitive represents geometry at frame 'fr'. More...
|
|
bool | isStaticGeometry () const |
|
bool | isFrameInfoAvailable () const |
|
bool | getDataIdHash (int64 &hash, int segment=0, bool cache_data_id=false) const |
|
virtual bool | getTopologyVersion (int64 &version) const |
| Returns the topology version for the primitive. More...
|
|
GT_DataArrayHandle | findAttribute (const UT_StringRef &name, GT_Owner &owner, int segment) const |
|
void | dumpAttributeLists (const char *label, bool data_too) const |
| print out all attribute lists More...
|
|
void | dumpPrimitive () const |
|
bool | saveAttributeLists (UT_JSONWriter &w) const |
|
virtual bool | save (UT_JSONWriter &w) const |
|
virtual const
GT_ViewportRefineOptions & | viewportRefineOptions () const |
|
GT_PrimitiveHandle | harden () const |
|
GT_PrimitiveHandle | copyTransformed (const GT_TransformHandle &x, bool force=false) const |
|
void | refineCopyTransformFrom (const GT_Primitive &src) |
|
GT_PrimitiveHandle | attributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex_pattern, const UT_StringMMPattern *point_pattern, const UT_StringMMPattern *uniform_pattern, const UT_StringMMPattern *detail_pattern) const |
|
virtual GT_PrimitiveHandle | doHarden () const |
|
virtual GT_PrimitiveHandle | doSoftCopy () const =0 |
|
virtual GT_PrimitiveHandle | doAttributeMerge (const GT_Primitive &src, const UT_StringMMPattern *vertex, const UT_StringMMPattern *point, const UT_StringMMPattern *uniform, const UT_StringMMPattern *detail) const |
| The virtual implementation of attribute merging. More...
|
|
bool | enlargeWidth (UT_BoundingBox boxes[], int nsegments, fpreal defwidth=-1) const |
|
virtual const
GT_AttributeListHandle & | getPointAttributes () const |
|
virtual const
GT_AttributeListHandle & | getVertexAttributes () const |
|
virtual const
GT_AttributeListHandle & | getUniformAttributes () const |
|
virtual const
GT_AttributeListHandle & | getDetailAttributes () const |
|
const GT_AttributeListHandle & | getAttributeList (GT_Owner owner) const |
|
virtual const GT_DataArrayHandle & | getVertexList () const |
|
virtual GT_DataArrayHandle | createPointNormals (int segment=0, const UT_StringRef &P=GA_Names::P, bool normalize=true, const fpreal32 *pntdata=NULL, GT_Storage store=GT_STORE_REAL32) const |
|
virtual fpreal | computePerimeter (int seg=0) const |
|
virtual fpreal | computeSurfaceArea (int seg=0) const |
|
virtual fpreal | computeVolume (const UT_Vector3 &ref_P, int seg=0) const |
|
SYS_FORCE_INLINE | UT_IntrusiveRefCounter () noexcept |
| Default constructor: Sets counter to 0. More...
|
|
SYS_FORCE_INLINE | UT_IntrusiveRefCounter (const UT_IntrusiveRefCounter &) noexcept |
| Copy constructor: Sets counter to 0. More...
|
|
UT_IntrusiveRefCounter & | operator= (const UT_IntrusiveRefCounter &) noexcept |
| Assignment operator: Does not modify counter. More...
|
|
SYS_FORCE_INLINE uint32 | use_count () const noexcept |
| Return current counter. More...
|
|
SYS_FORCE_INLINE bool | conditionalAddRef () noexcept |
|
|
static GT_PrimitiveHandle | defineForWrite (const GT_PrimitiveHandle &sourcePrim, const UsdStagePtr &stage, const SdfPath &path, const GusdContext &ctxt) |
| Given a GT_Primitive, create a USD prim of the proper type. More...
|
|
static bool | getPrimName (const GT_PrimitiveHandle &sourcePrim, std::string &primName) |
|
static const char * | getUsdName (int gtPrimId) |
|
static bool | isGroupType (int gtPrimId) |
|
static GT_PrimitiveHandle | defineForRead (const UsdGeomImageable &sourcePrim, UsdTimeCode time, GusdPurposeSet purposes) |
| Given a USD prim, create a GusdPrimWrapper of the proper type. More...
|
|
static bool | isPointInstancerPrim (const GT_PrimitiveHandle &prim, const GusdContext &ctxt) |
| Is this gt prim a point instancer? More...
|
|
static bool | registerPrimDefinitionFuncForWrite (int gtPrimId, DefinitionForWriteFunction function, GetPrimNameFunction getNameFunction=NULL, bool isGroupType=false, const char *usdName=NULL) |
|
static bool | registerPrimDefinitionFuncForRead (const TfToken &usdTypeName, DefinitionForReadFunction function) |
| Register function for creating new GusdPrimWrappers from USD prim. More...
|
|
static bool | isGTPrimSupported (const GT_PrimitiveHandle &prim) |
|
static int | getStaticPrimitiveType () |
|
static GT_DataArrayHandle | convertPrimvarData (const UsdGeomPrimvar &primvar, UsdTimeCode time) |
|
static GT_DataArrayHandle | convertAttributeData (const UsdAttribute &attr, const VtValue &val) |
|
static void | addReversePolygonsAttrib (GT_AttributeListHandle &attrib_list, exint num_elements) |
|
static void | loadSubsets (const UsdGeomImageable &prim, const UT_Optional< TfToken > &uniform_element_type, GT_ElementSetMapPtr &uniform_sets, GT_AttributeListHandle &uniform_attribs, exint num_uniform, GT_ElementSetMapPtr &point_sets, GT_AttributeListHandle &point_attribs, exint num_points, const GT_RefineParms *parms, UsdTimeCode time) |
|
static int | createPrimitiveTypeId () |
|
static GT_AttributeListHandle | mergeAttributeLists (bool &changed, const GT_AttributeListHandle &src, const GT_AttributeListHandle &merge, const UT_StringMMPattern *pattern, const UT_StringMMPattern *alternate=NULL) |
|
static bool | computeVelocityRange (UT_Vector3 &vmin, UT_Vector3 &vmax, const GT_DataArrayHandle &v) |
|
static GT_PrimitiveHandle | refineDetail (const GU_ConstDetailHandle &detail, const GT_RefineParms *parms) |
|
static GT_PrimitiveHandle | refinePrimitive (const GT_PrimitiveHandle &primh, const GT_RefineParms *parms) |
|
static void * | operator new (size_t size) |
|
static void * | operator new (size_t size, void *p) |
|
static void | operator delete (void *p, size_t size) |
|
|
void | updateVisibilityFromGTPrim (const GT_PrimitiveHandle &sourcePrim, UsdTimeCode time, bool forceWrite=true) |
|
void | updateActiveFromGTPrim (const GT_PrimitiveHandle &sourcePrim, UsdTimeCode time) |
|
void | updateTransformFromGTPrim (const GfMatrix4d &xform, UsdTimeCode time, bool force) |
|
bool | updateAttributeFromGTPrim (GT_Owner owner, const std::string &name, const GT_DataArrayHandle &houAttr, UsdAttribute &usdAttr, UsdTimeCode time) |
|
bool | updatePrimvarFromGTPrim (const TfToken &name, const GT_Owner &owner, const TfToken &interpolation, UsdTimeCode time, const GT_DataArrayHandle &data) |
|
bool | updatePrimvarFromGTPrim (const GT_AttributeListHandle >Attrs, const GusdGT_AttrFilter &primvarFilter, const TfToken &interpolation, UsdTimeCode time) |
| Write primvar values from a GT attribute list to USD. More...
|
|
void | clearCaches () |
|
void | enlargeP (UT_BoundingBox &box, const GT_AttributeListHandle &list, int segment) const |
|
void | enlargeP (UT_BoundingBox &B, const GT_DataArrayHandle &P) const |
| Convenience method to enlarge a bounding box given a position attribute. More...
|
|
void | enlargePw (UT_BoundingBox &B, const GT_DataArrayHandle &P) const |
|
SYS_FORCE_INLINE | ~UT_IntrusiveRefCounter () |
| Destructor: Only derived classes can destruct this. More...
|
|
A GT_Primitive that wraps a USD Prim.
A GusdPrimWrapper is responsible for copying attribute data between USD and GT.
To write USD geometry, the following steps are taken:
The ROP uses GusdRefiner to refine the cooked geometry to GT primitive types that have a matching USD type.
For each GT primitive we create a primWrapper by calling the defineForWrite method. This will create a usd prim on the current stage.
On each frame updateFromGTPrim is called to copy attribtutes from the GT prim to the USD prim.
We support: Writing a sequence of frames from one process. Writing each frame of a sequence to a seperate file from a seperate process. Writing each frame of a sequence to a seperate file from one process.
When writing all frames to a single file, we try and compress attribtute values. The data we need to do this compression is kept in the prim wrapper.
In the rare case where we want to sequentially write a sequence to per frame files, we need the primWrapper to persist across the sequence so we can do the attribute compression. However, we need to create the USD prim on each per frame file. The "redefine" method is used for this.
To read USD geometry we start with a GusdGU_PackedUSD prim. A GusdGT_PrimCollect object has been registered to convert these prims to GT_Primitives for drawing in the view port. This object will call the "fullGT" method of the GU prim which in turn calls the "defineForRead" to create a GusdPrimWrapper. These prims can be refined into native GT_Primitives that the viewport can draw.
Definition at line 90 of file primWrapper.h.