IXformDataView#
Fully qualified name: isaacsim::core::experimental::prims::IXformDataView
-
struct IXformDataView#
Read-only view for XformPrim data (positions, orientations, scales).
Engine-agnostic transform data read via IFabricHierarchy. All getters use lazy fetch with step-based staleness detection via ISimulationManager::getNumPhysicsSteps(). Safe to call from multiple onPhysicsStep callbacks.
Subclassed by isaacsim::core::experimental::prims::IArticulationDataView, isaacsim::core::experimental::prims::IRigidBodyDataView
Transform getters (native device pointers)
-
virtual const float *getWorldPositions(int *outCount) = 0#
Get world positions (float[3] per prim, device memory).
-
virtual const float *getWorldOrientations(int *outCount) = 0#
Get world orientations (quaternion float[4] per prim, device memory).
-
virtual const float *getLocalTranslations(int *outCount) = 0#
Get local translations (float[3] per prim, device memory).
-
virtual const float *getLocalOrientations(int *outCount) = 0#
Get local orientations (quaternion float[4] per prim, device memory).
-
virtual const float *getLocalScales(int *outCount) = 0#
Get local scales (float[3] per prim, device memory).
Host-memory transform getters (always CPU pointers, copied from GPU if needed)
-
virtual const float *getWorldPositionsHost(int *outCount) = 0#
Get world positions (float[3] per prim, host memory).
-
virtual const float *getWorldOrientationsHost(int *outCount) = 0#
Get world orientations (quaternion float[4] per prim, host memory).
-
virtual const float *getLocalTranslationsHost(int *outCount) = 0#
Get local translations (float[3] per prim, host memory).
-
virtual const float *getLocalOrientationsHost(int *outCount) = 0#
Get local orientations (quaternion float[4] per prim, host memory).
-
virtual const float *getLocalScalesHost(int *outCount) = 0#
Get local scales (float[3] per prim, host memory).
Combined pose getters
Buffer and callback management (used by Python during setup)
- virtual bool allocateBufferFloat(
- const char *fieldName,
- size_t count,
Allocate a named float buffer of the given element count.
- virtual bool allocateBufferUint8(
- const char *fieldName,
- size_t count,
Allocate a named uint8 buffer of the given element count.
-
virtual uintptr_t getBufferPtr(const char *fieldName) = 0#
Get the raw pointer to a named buffer.
-
virtual size_t getBufferSize(const char *fieldName) = 0#
Get the byte size of a named buffer.
-
virtual int getBufferDevice() = 0#
Get the CUDA device ordinal of the data buffers (-1 for CPU).
- virtual void registerFieldCallback(
- const char *fieldName,
- std::function<void()> callback,
Register a callback invoked when the named field is updated.
Public Functions
-
virtual ~IXformDataView() = default#
-
virtual bool update() = 0#
Batch pre-fetch all fields for this view.
- virtual bool getPrimFrameName(
- const char *primPath,
- char *outName,
- size_t maxLen,
Resolve frame name for any prim in the stage: checks isaac:nameOverride, falls back to prim name. outName: caller buffer of maxLen bytes. Returns false if prim not found or stage unavailable.
- virtual bool getPrimWorldTransform(
- const char *primPath,
- float *outPos3,
- float *outOri4,
World transform of any prim in the stage via Fabric (no physics required). outPos3: float[3] (x,y,z). outOri4: float[4] (qw,qx,qy,qz). Returns false if prim not found or stage unavailable.
-
virtual const float *getWorldPositions(int *outCount) = 0#