IBundle#
Fully qualified name: omni::graph::core::IBundle
-
struct IBundle#
Interface for bundle attribute data.
Public Members
-
size_t (*getAttributesCount)(const GraphContextObj &contextObj, ConstBundleHandle bundle)#
Counts the number of attributes contained in the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Return:
the number of attributes in the bundle
-
void (*getAttributesR)(ConstAttributeDataHandle *attrsOut, const GraphContextObj &contextObj, ConstBundleHandle bundle, size_t count)#
Get all of the attributes on the bundle in read-only form.
- Param attrsOut:
[out] Handles to the attributes on the bundle (preallocated to hold “count” members)
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Param count:
[in] The number of attribute slots allocated in attrsOut (should be >= getAttributesCount())
-
void (*getAttributesW)(AttributeDataHandle *attrsOut, const GraphContextObj &contextObj, BundleHandle bundle, size_t count)#
Get all of the attributes on the bundle in writable form.
- Param attrsOut:
[out] Handles to the attributes on the bundle (preallocated to hold “count” members)
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Param count:
[in] The number of attribute slots allocated in attrsOut (should be >= getAttributesCount())
-
void (*getAttributesByNameR)(ConstAttributeDataHandle *attrsOut, const GraphContextObj &contextObj, ConstBundleHandle bundle, const NameToken *attrNames, size_t count)#
Get attributes on the bundle whose names appear in “attrNames” in read-only form.
- Param attrsOut:
[out] Handles to the attributes on the bundle (preallocated to hold “count” members)
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Param attrNames:
[in] The list of attribute names to be looked up
- Param count:
[in] The number of attribute slots allocated in attrsOut (should be >= getAttributesCount())
-
void (*getAttributesByNameW)(AttributeDataHandle *attrsOut, const GraphContextObj &contextObj, BundleHandle bundle, const NameToken *attrNames, size_t count)#
Get attributes on the bundle whose names appear in “attrNames” in writable form.
- Param attrsOut:
[out] Handles to the attributes on the bundle (preallocated to hold “count” members)
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Param attrNames:
[in] The list of attribute names to be looked up
- Param count:
[in] The number of attribute slots allocated in attrsOut (should be >= getAttributesCount())
-
void (*getAttributeNamesAndTypes)(NameToken *namesOut, Type *typesOut, const GraphContextObj &contextObj, ConstBundleHandle bundle, size_t count)#
Get the names and types of all attributes on the bundle.
- Param namesOut:
[out] Handles to the names of attributes on the bundle (preallocated to hold “count” members)
- Param typesOut:
[out] Handles to the types of attributes on the bundle (preallocated to hold “count” members)
- Param contextObj:
[in] The context to which the bundle belongs
- Param bundle:
[in] The handle to the bundle data
- Param count:
[in] The number of attribute slots allocated in attrsOut (should be >= getAttributesCount())
-
AttributeDataHandle (*addAttribute)(const GraphContextObj &contextObj, BundleHandle destination, NameToken attrName, Type attrType)#
Create a new attribute and add it to the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attrName:
[in] Name for the new attribute
- Param attrType:
[in] Type for the new attribute
- Return:
Handle to the newly created attribute
-
AttributeDataHandle (*addAttributeLike)(const GraphContextObj &contextObj, BundleHandle destination, ConstAttributeDataHandle pattern)#
Create a new attribute and add it to the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param pattern:
[in] Attribute whose name and type is to be copied for the new attribute
- Return:
Handle to the newly created attribute
-
AttributeDataHandle (*addArrayAttribute)(const GraphContextObj &contextObj, BundleHandle destination, NameToken attrName, Type attrType, size_t elementCount)#
Create a new array attribute and add it to the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attrName:
[in] Name for the new attribute
- Param attrType:
[in] Type for the new attribute
- Param elementCount:
[in] Starting element count for the array attribute
- Return:
Handle to the newly created attribute
-
AttributeDataHandle (*addArrayOfArraysAttribute)(const GraphContextObj &contextObj, BundleHandle destination, NameToken attrName, BaseDataType baseType, size_t numComponents, size_t numArrays, ...)#
Create a new array-of-arrays attribute and add it to the bundle.
Note: At the moment only arrays and arrays-of-tuples are fully supported so use with caution
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attrName:
[in] Name for the new attribute
- Param baseType:
[in] Base data type for the new attribute
- Param numComponents:
[in] Number of tuple elements for the new attribute (e.g. 3 for float[3])
- Param numArrays:
[in] How many levels of arrays are on the attribute (currently only 1 is supported)
- Param …:
[in] Variadic list containing the starting element count for each level of array
- Return:
Handle to the newly created attribute
-
void (*copyAttribute)(const GraphContextObj &contextObj, BundleHandle destination, NameToken destinationAttrName, ConstAttributeDataHandle source)#
Create a new attribute by copying an existing one, including its data, and renaming and add it to the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param destinationAttrName:
[in] Name for the new attribute
- Param source:
[in] Handle to attribute whose data type is to be copied
- Return:
Handle to the newly created attribute
-
uint64_t (*getDataID)(ConstBundleHandle bundle)#
Get the unique data ID of a bundle.
- Param bundle:
[in] The bundle whose ID is to be found
- Return:
The unique ID of the bundle
-
void (*removeAttribute)(const GraphContextObj &contextObj, BundleHandle destination, NameToken attrName)#
Remove an existing attribute from the bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attrName:
[in] Name of the attribute to remove
-
bool (*addAttributes)(const GraphContextObj &contextObj, BundleHandle destination, size_t attributeCount, const NameToken *attrNames, const Type *attrTypes)#
Add a batch of attributes to a bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attributeCount:
[in] Number of attributes to be added
- Param attrNames:
[in] Array of names for the new attributes
- Param attrTypes:
[in] Array of types for the new attributes
- Return:
Whether addition was successful
-
bool (*removeAttributes)(const GraphContextObj &contextObj, BundleHandle destination, size_t attributeCount, const NameToken *attrNames)#
Remove a batch of attributes from a bundle.
- Param contextObj:
[in] The context to which the bundle belongs
- Param destination:
[in] The handle to the bundle data
- Param attributeCount:
[in] Number of attributes to be removed
- Param attrNames:
[in] Array of names to be removed
-
void (*copyAttributes)(const GraphContextObj &contextObj, BundleHandle destBundle, ConstBundleHandle sourceBundle, NameToken const *srcNames, NameToken const *dstNames, size_t namesCount)#
Copy a set of attributes from a source bundle/node to another bundle/node Attributes that don’t exists on the destination will be created The name on the destination can differ from the one on the source.
- Param contextObj:
[in] The context object used to find the variable data.
- Param destBundleHandle:
[in] The destination node/bundle on which to copy/create the the attributes.
- Param sourceBundleHandle:
[in] The source node/bundle from which to read the data.
- Param srcNames:
[in] The attributes to copy
- Param dstNames:
[in] Optional - the name of the destination attribute. if nullptr, the name of input will be used if not nullptr, lenght must be equal to namesCount
- Param namesCount:
[in] Length of srcNames array (and dstNames if provided)
-
omni::string (*getBundlePath)(ConstBundleHandle bundle)#
Retrieves the path to the bundle.
It will be part of the node in which it is defined.
- Param bundle:
[in] A handle pointing to a bundle
- Return:
the bundle path
-
void (*copyAttributesWithBackend)(BackendId dstBackend, BundleHandle destBundle, BackendId srcBackend, ConstBundleHandle sourceBundle, NameToken const *srcNames, NameToken const *dstNames, size_t namesCount, bool includeMetaData)#
Copy a set of attributes from a source bundle/node to another bundle/node Attributes that don’t exists on the destination will be created The name on the destination can differ from the one on the source.
- Param dstBackend:
[in] The backend in which the destination bundle lives.
- Param destBundleHandle:
[in] The destination node/bundle on which to copy/create the the attributes.
- Param srcBackend:
[in] The backend in which the source bundle lives.
- Param sourceBundleHandle:
[in] The source node/bundle from which to read the data.
- Param srcNames:
[in] The attributes to copy
- Param dstNames:
[in] Optional - the name of the destination attribute. if nullptr, the name of input will be used if not nullptr, length must be equal to namesCount
- Param namesCount:
[in] Length of srcNames array (and dstNames if provided)
- Param includeMetaData:
[in] Whether or not metadata should be copied as well
-
size_t (*getAttributesCount)(const GraphContextObj &contextObj, ConstBundleHandle bundle)#