|
Rapier C — 3D / f32 0.36.0+c.0
|
Available only with RAPIER_ROBOTICS in 3D/f32. More...
Data Structures | |
| struct | R3UrdfLoaderOptions |
| Loader configuration. More... | |
| struct | R3MjcfLoaderOptions |
| Loader configuration. More... | |
| struct | R3RenderMaterial |
| Imported physically based visual material; no texture ownership. More... | |
| struct | R3MjcfVisualMeshInfo |
| Copied metadata for a borrowed MJCF visual mesh. More... | |
Macros | |
| #define | R3_MESH_CONVERTER_TRIMESH 0 |
| Load each mesh as a triangle mesh, with the given trimesh flags. | |
| #define | R3_MESH_CONVERTER_OBB 1 |
| Replace each mesh by its oriented bounding box. | |
| #define | R3_MESH_CONVERTER_AABB 2 |
| Replace each mesh by its axis-aligned bounding box. | |
| #define | R3_MESH_CONVERTER_CONVEX_HULL 3 |
| Replace each mesh by its convex hull. | |
| #define | R3_MESH_CONVERTER_CONVEX_DECOMPOSITION 4 |
| Replace each mesh by its convex decomposition. | |
Typedefs | |
| typedef struct R3LoadedMeshes | R3LoadedMeshes |
| Shapes loaded from a mesh file (STL, COLLADA or Wavefront OBJ), one per mesh of the file. | |
| typedef struct R3MjcfContactHooks | R3MjcfContactHooks |
| Owned physics hooks applying the <contact> rules (excluded pairs, pair friction) of an inserted MJCF robot. | |
| typedef struct R3MjcfRobot | R3MjcfRobot |
| Loaded MJCF robot and its visual/keyframe data. | |
| typedef struct R3MjcfRobotHandles | R3MjcfRobotHandles |
| Owned container of borrowed handles and actuators of an inserted MJCF robot. | |
| typedef struct R3UrdfRobot | R3UrdfRobot |
| Loaded URDF robot; insertion clones its simulation objects. | |
| typedef struct R3UrdfRobotHandles | R3UrdfRobotHandles |
| Owned container of borrowed handles to an inserted URDF robot. | |
| typedef struct R3UrdfLoaderOptions | R3UrdfLoaderOptions |
| Loader configuration. | |
| typedef struct R3MjcfLoaderOptions | R3MjcfLoaderOptions |
| Loader configuration. | |
| typedef struct R3MjcfVisualMesh | R3MjcfVisualMesh |
| A borrowed visual declaration, valid until its robot is freed or its body storage changes. | |
| typedef struct R3RenderMaterial | R3RenderMaterial |
| Imported physically based visual material; no texture ownership. | |
| typedef struct R3MjcfVisualMeshInfo | R3MjcfVisualMeshInfo |
| Copied metadata for a borrowed MJCF visual mesh. | |
Functions | |
| struct R3UrdfLoaderOptions | r3DefaultUrdfLoaderOptions (void) |
| Return native default urdf loader options. | |
| R3Status | r3FreeUrdfRobot (struct R3UrdfRobot *object) |
| Release an owned urdf robot. | |
| struct R3UrdfRobot * | r3UrdfRobotFromFile (const char *path, const struct R3UrdfLoaderOptions *options) |
| Load from a UTF-8 path. | |
| R3Status | r3UrdfRobot_AppendTransform (struct R3UrdfRobot *robot, struct R3Pose transform) |
| Apply an additional transform to the loaded robot before insertion. | |
| R3Status | r3FreeUrdfRobotHandles (struct R3UrdfRobotHandles *handles) |
| Release an owned urdf robot handles. | |
| struct R3UrdfRobotHandles * | r3UrdfRobot_InsertUsingImpulseJoints (struct R3World *world, const struct R3UrdfRobot *robot) |
| Inserts a clone; the source robot remains owned by the caller. | |
| struct R3UrdfRobotHandles * | r3UrdfRobot_InsertUsingMultibodyJoints (struct R3World *world, const struct R3UrdfRobot *robot, uint8_t options) |
| Inserts a clone; the source robot remains owned by the caller. | |
| size_t | r3UrdfRobotHandles_Bodies (const struct R3UrdfRobotHandles *handles, struct R3RigidBodyHandle *buffer, size_t capacity) |
| One body handle per imported URDF link, in source order. | |
| struct R3MjcfLoaderOptions | r3DefaultMjcfLoaderOptions (void) |
| Return native default mjcf loader options. | |
| R3Status | r3FreeMjcfRobot (struct R3MjcfRobot *object) |
| Release an owned mjcf robot. | |
| struct R3MjcfRobot * | r3MjcfRobotFromFile (const char *path, const struct R3MjcfLoaderOptions *options) |
| Load from a UTF-8 path. | |
| R3Status | r3MjcfRobot_AppendTransform (struct R3MjcfRobot *robot, struct R3Pose transform) |
| Apply an additional transform to the loaded robot before insertion. | |
| R3Status | r3FreeMjcfRobotHandles (struct R3MjcfRobotHandles *handles) |
| Release an owned mjcf robot handles. | |
| struct R3MjcfRobotHandles * | r3MjcfRobot_InsertUsingImpulseJoints (struct R3World *world, const struct R3MjcfRobot *robot) |
| Inserts a clone; the source robot remains owned by the caller. | |
| struct R3MjcfRobotHandles * | r3MjcfRobot_InsertUsingMultibodyJoints (struct R3World *world, const struct R3MjcfRobot *robot, uint8_t options) |
| Inserts a clone; the source robot remains owned by the caller. | |
| size_t | r3MjcfRobotHandles_Bodies (const struct R3MjcfRobotHandles *handles, struct R3RigidBodyHandle *buffer, size_t capacity) |
| Body handles in source order; absent MJCF bodies have invalid handles. | |
| struct R3Vector | r3MjcfRobot_Gravity (const struct R3MjcfRobot *robot) |
| Resolved model gravity before the caller chooses a world convention. | |
| size_t | r3MjcfRobot_BodyCount (const struct R3MjcfRobot *robot) |
| Return the number of source MJCF bodies. | |
| size_t | r3MjcfRobot_BodyColliderCount (const struct R3MjcfRobot *robot, size_t body) |
| Return the collider count for a source body index. | |
| R3Status | r3MjcfRobot_SetBodyColliderCollisionGroups (struct R3MjcfRobot *robot, size_t body, size_t collider, struct R3InteractionGroups groups) |
| Set collision groups on a collider in the loaded robot, before insertion. | |
| size_t | r3MjcfRobot_KeyframeCount (const struct R3MjcfRobot *robot) |
| Return the number of imported keyframes. | |
| size_t | r3MjcfRobot_KeyframeName (const struct R3MjcfRobot *robot, size_t key, char *buffer, size_t capacity) |
| Copies a NUL-terminated UTF-8 name. | |
| R3Status | r3MjcfRobot_AppendKeyframe (struct R3MjcfRobot *robot, const struct R3MjcfRobot *source, size_t key) |
| Append a keyframe from the source MJCF model to the loaded robot. | |
| size_t | r3MjcfRobot_KeyframeControls (const struct R3MjcfRobot *robot, size_t key, R3Real *buffer, size_t capacity) |
| Copy actuator controls for the selected keyframe. | |
| size_t | r3MjcfRobotHandles_ActuatorCount (const struct R3MjcfRobotHandles *handles) |
| Return the number of imported actuators. | |
| R3Status | r3MjcfRobotHandles_ApplyKeyframe (const struct R3MjcfRobotHandles *handles, const struct R3MjcfRobot *robot, size_t key) |
| Apply the selected keyframe to the inserted robot. | |
| R3Status | r3MjcfRobotHandles_ApplyControlsScaled (const struct R3MjcfRobotHandles *handles, const R3Real *controls, size_t count, R3Real gain) |
| Apply actuator controls with per-actuator scaling to the inserted robot. | |
| size_t | r3MjcfRobot_BodyVisualCount (const struct R3MjcfRobot *robot, size_t body) |
| Return the number of visual meshes for a source body. | |
| const R3MjcfVisualMesh * | r3MjcfRobot_BodyVisual (const struct R3MjcfRobot *robot, size_t body, size_t visual) |
| Borrow a visual mesh by body/visual index. | |
| struct R3MjcfVisualMeshInfo | r3MjcfVisualMesh_Info (const R3MjcfVisualMesh *visual) |
| Return a copy of visual pose, color, material, and geometry-kind flags. | |
| R3SharedShape * | r3MjcfVisualMesh_CloneShape (const R3MjcfVisualMesh *visual) |
| Returns an owned shared shape reference. | |
| size_t | r3MjcfVisualMesh_Uvs (const R3MjcfVisualMesh *visual, float *buffer, size_t capacity) |
| Copies flattened pairs of per-vertex UV coordinates. | |
| size_t | r3MjcfVisualMesh_Normals (const R3MjcfVisualMesh *visual, float *buffer, size_t capacity) |
| Copies flattened triples of per-vertex normals. | |
| size_t | r3MjcfVisualMesh_Texture (const R3MjcfVisualMesh *visual, char *buffer, size_t capacity) |
| Copies a NUL-terminated texture path, or an empty string for untextured meshes. | |
| struct R3UrdfRobot * | r3UrdfRobotFromString (const char *urdf, const char *mesh_dir, const struct R3UrdfLoaderOptions *options) |
| Load a URDF robot from a NUL-terminated UTF-8 string. | |
| R3Status | r3FreeMjcfContactHooks (struct R3MjcfContactHooks *hooks) |
| Release owned MJCF contact hooks. | |
| struct R3MjcfContactHooks * | r3MjcfRobotHandles_ContactHooks (const struct R3MjcfRobotHandles *handles, const struct R3MjcfRobot *robot) |
| Build the contact rules of an inserted MJCF robot. | |
| struct R3PhysicsHooks | r3MjcfContactHooks_PhysicsHooks (const struct R3MjcfContactHooks *hooks) |
| Return physics hooks forwarding to these contact rules, with hooks as their user_data. | |
| R3Status | r3FreeLoadedMeshes (struct R3LoadedMeshes *meshes) |
| Release owned loaded meshes. | |
| struct R3LoadedMeshes * | r3LoadedMeshesFromFile (const char *path, uint32_t converter, uint32_t trimesh_flags, struct R3Vector scale) |
| Load every mesh of a file from a UTF-8 path and convert it into a shape with converter (an R3_MESH_CONVERTER_* value). | |
| size_t | r3LoadedMeshes_Count (const struct R3LoadedMeshes *meshes) |
| Return the number of meshes read from the file, including those that failed to convert. | |
| R3SharedShape * | r3LoadedMeshes_CloneShape (const struct R3LoadedMeshes *meshes, size_t index) |
| Return an owned shape wrapper sharing the geometry of a loaded mesh. | |
| struct R3Pose | r3LoadedMeshes_Pose (const struct R3LoadedMeshes *meshes, size_t index) |
| Return the pose to give the shape of a loaded mesh (for example the center of its bounding box). | |
Available only with RAPIER_ROBOTICS in 3D/f32.
Loaded robots and insertion-result containers are independently owned; freeing these containers does not remove the world's inserted entities. Visual pointers borrow the loaded MJCF robot.
| #define R3_MESH_CONVERTER_AABB 2 |
Replace each mesh by its axis-aligned bounding box.
| #define R3_MESH_CONVERTER_CONVEX_DECOMPOSITION 4 |
Replace each mesh by its convex decomposition.
| #define R3_MESH_CONVERTER_CONVEX_HULL 3 |
Replace each mesh by its convex hull.
| #define R3_MESH_CONVERTER_OBB 1 |
Replace each mesh by its oriented bounding box.
| #define R3_MESH_CONVERTER_TRIMESH 0 |
Load each mesh as a triangle mesh, with the given trimesh flags.
| typedef struct R3LoadedMeshes R3LoadedMeshes |
Shapes loaded from a mesh file (STL, COLLADA or Wavefront OBJ), one per mesh of the file.
Release with the matching Free function.
| typedef struct R3MjcfContactHooks R3MjcfContactHooks |
Owned physics hooks applying the <contact> rules (excluded pairs, pair friction) of an inserted MJCF robot.
Release with the matching Free function.
| typedef struct R3MjcfLoaderOptions R3MjcfLoaderOptions |
Loader configuration.
Initialize with DefaultMjcfLoaderOptions; no destructor. Blueprint array views and shared shapes are borrowed through the load call.
| typedef struct R3MjcfRobot R3MjcfRobot |
Loaded MJCF robot and its visual/keyframe data.
Release with the matching Free function.
| typedef struct R3MjcfRobotHandles R3MjcfRobotHandles |
Owned container of borrowed handles and actuators of an inserted MJCF robot.
Release with the matching Free function.
| typedef struct R3MjcfVisualMesh R3MjcfVisualMesh |
A borrowed visual declaration, valid until its robot is freed or its body storage changes.
| typedef struct R3MjcfVisualMeshInfo R3MjcfVisualMeshInfo |
Copied metadata for a borrowed MJCF visual mesh.
| typedef struct R3RenderMaterial R3RenderMaterial |
Imported physically based visual material; no texture ownership.
| typedef struct R3UrdfLoaderOptions R3UrdfLoaderOptions |
Loader configuration.
Initialize with DefaultUrdfLoaderOptions; no destructor. Blueprint array views and shared shapes are borrowed through the load call.
| typedef struct R3UrdfRobot R3UrdfRobot |
Loaded URDF robot; insertion clones its simulation objects.
Release with the matching Free function.
| typedef struct R3UrdfRobotHandles R3UrdfRobotHandles |
Owned container of borrowed handles to an inserted URDF robot.
Release with the matching Free function.
| struct R3MjcfLoaderOptions r3DefaultMjcfLoaderOptions | ( | void | ) |
Return native default mjcf loader options.
This POD value owns no resources.
| struct R3UrdfLoaderOptions r3DefaultUrdfLoaderOptions | ( | void | ) |
Return native default urdf loader options.
This POD value owns no resources.
| R3Status r3FreeLoadedMeshes | ( | struct R3LoadedMeshes * | meshes | ) |
Release owned loaded meshes.
NULL is allowed. Do not pass borrowed pointers or free the object twice.
| R3Status r3FreeMjcfContactHooks | ( | struct R3MjcfContactHooks * | hooks | ) |
Release owned MJCF contact hooks.
NULL is allowed. Do not free them while a step still uses them, and do not free them twice.
| R3Status r3FreeMjcfRobot | ( | struct R3MjcfRobot * | object | ) |
Release an owned mjcf robot.
NULL is allowed. Do not pass borrowed pointers or free the object twice.
| R3Status r3FreeMjcfRobotHandles | ( | struct R3MjcfRobotHandles * | handles | ) |
Release an owned mjcf robot handles.
NULL is allowed. Do not pass borrowed pointers or free the object twice.
| R3Status r3FreeUrdfRobot | ( | struct R3UrdfRobot * | object | ) |
Release an owned urdf robot.
NULL is allowed. Do not pass borrowed pointers or free the object twice.
| R3Status r3FreeUrdfRobotHandles | ( | struct R3UrdfRobotHandles * | handles | ) |
Release an owned urdf robot handles.
NULL is allowed. Do not pass borrowed pointers or free the object twice.
| R3SharedShape * r3LoadedMeshes_CloneShape | ( | const struct R3LoadedMeshes * | meshes, |
| size_t | index ) |
Return an owned shape wrapper sharing the geometry of a loaded mesh.
Release it with FreeSharedShape. Returns NULL with INVALID_ARGUMENT if the index is out of range or if that mesh failed to convert.
| size_t r3LoadedMeshes_Count | ( | const struct R3LoadedMeshes * | meshes | ) |
Return the number of meshes read from the file, including those that failed to convert.
| struct R3Pose r3LoadedMeshes_Pose | ( | const struct R3LoadedMeshes * | meshes, |
| size_t | index ) |
Return the pose to give the shape of a loaded mesh (for example the center of its bounding box).
Reports INVALID_ARGUMENT if the index is out of range or if that mesh failed to convert.
| struct R3LoadedMeshes * r3LoadedMeshesFromFile | ( | const char * | path, |
| uint32_t | converter, | ||
| uint32_t | trimesh_flags, | ||
| struct R3Vector | scale ) |
Load every mesh of a file from a UTF-8 path and convert it into a shape with converter (an R3_MESH_CONVERTER_* value).
trimesh_flags (R3_TRIMESH_* bits) apply to R3_MESH_CONVERTER_TRIMESH and must be 0 otherwise. scale multiplies the vertices before conversion. A mesh failing to convert does not fail the load; see r3LoadedMeshes_CloneShape.
| struct R3PhysicsHooks r3MjcfContactHooks_PhysicsHooks | ( | const struct R3MjcfContactHooks * | hooks | ) |
Return physics hooks forwarding to these contact rules, with hooks as their user_data.
Pass them to r3Step; hooks must outlive every step using them. The inserted colliders already enable the contact-filtering and contact-modification hooks.
| R3Status r3MjcfRobot_AppendKeyframe | ( | struct R3MjcfRobot * | robot, |
| const struct R3MjcfRobot * | source, | ||
| size_t | key ) |
Append a keyframe from the source MJCF model to the loaded robot.
| R3Status r3MjcfRobot_AppendTransform | ( | struct R3MjcfRobot * | robot, |
| struct R3Pose | transform ) |
Apply an additional transform to the loaded robot before insertion.
| size_t r3MjcfRobot_BodyColliderCount | ( | const struct R3MjcfRobot * | robot, |
| size_t | body ) |
Return the collider count for a source body index.
| size_t r3MjcfRobot_BodyCount | ( | const struct R3MjcfRobot * | robot | ) |
Return the number of source MJCF bodies.
| const R3MjcfVisualMesh * r3MjcfRobot_BodyVisual | ( | const struct R3MjcfRobot * | robot, |
| size_t | body, | ||
| size_t | visual ) |
Borrow a visual mesh by body/visual index.
Valid until the robot is freed or its storage changes; never free this pointer.
| size_t r3MjcfRobot_BodyVisualCount | ( | const struct R3MjcfRobot * | robot, |
| size_t | body ) |
Return the number of visual meshes for a source body.
| struct R3Vector r3MjcfRobot_Gravity | ( | const struct R3MjcfRobot * | robot | ) |
Resolved model gravity before the caller chooses a world convention.
| struct R3MjcfRobotHandles * r3MjcfRobot_InsertUsingImpulseJoints | ( | struct R3World * | world, |
| const struct R3MjcfRobot * | robot ) |
Inserts a clone; the source robot remains owned by the caller.
Returns owned handles.
| struct R3MjcfRobotHandles * r3MjcfRobot_InsertUsingMultibodyJoints | ( | struct R3World * | world, |
| const struct R3MjcfRobot * | robot, | ||
| uint8_t | options ) |
Inserts a clone; the source robot remains owned by the caller.
Returns owned handles.
| size_t r3MjcfRobot_KeyframeControls | ( | const struct R3MjcfRobot * | robot, |
| size_t | key, | ||
| R3Real * | buffer, | ||
| size_t | capacity ) |
Copy actuator controls for the selected keyframe.
| size_t r3MjcfRobot_KeyframeCount | ( | const struct R3MjcfRobot * | robot | ) |
Return the number of imported keyframes.
| size_t r3MjcfRobot_KeyframeName | ( | const struct R3MjcfRobot * | robot, |
| size_t | key, | ||
| char * | buffer, | ||
| size_t | capacity ) |
Copies a NUL-terminated UTF-8 name.
Count includes NUL; unnamed keys return an empty string.
| R3Status r3MjcfRobot_SetBodyColliderCollisionGroups | ( | struct R3MjcfRobot * | robot, |
| size_t | body, | ||
| size_t | collider, | ||
| struct R3InteractionGroups | groups ) |
Set collision groups on a collider in the loaded robot, before insertion.
| struct R3MjcfRobot * r3MjcfRobotFromFile | ( | const char * | path, |
| const struct R3MjcfLoaderOptions * | options ) |
Load from a UTF-8 path.
Validates options before reading the file. Options and their blueprint resources are borrowed through this call; the robot is owned.
| size_t r3MjcfRobotHandles_ActuatorCount | ( | const struct R3MjcfRobotHandles * | handles | ) |
Return the number of imported actuators.
| R3Status r3MjcfRobotHandles_ApplyControlsScaled | ( | const struct R3MjcfRobotHandles * | handles, |
| const R3Real * | controls, | ||
| size_t | count, | ||
| R3Real | gain ) |
Apply actuator controls with per-actuator scaling to the inserted robot.
| R3Status r3MjcfRobotHandles_ApplyKeyframe | ( | const struct R3MjcfRobotHandles * | handles, |
| const struct R3MjcfRobot * | robot, | ||
| size_t | key ) |
Apply the selected keyframe to the inserted robot.
| size_t r3MjcfRobotHandles_Bodies | ( | const struct R3MjcfRobotHandles * | handles, |
| struct R3RigidBodyHandle * | buffer, | ||
| size_t | capacity ) |
Body handles in source order; absent MJCF bodies have invalid handles.
| struct R3MjcfContactHooks * r3MjcfRobotHandles_ContactHooks | ( | const struct R3MjcfRobotHandles * | handles, |
| const struct R3MjcfRobot * | robot ) |
Build the contact rules of an inserted MJCF robot.
robot must be the robot these handles were inserted from. The rules refer to the inserted colliders; the returned hooks are owned.
| R3SharedShape * r3MjcfVisualMesh_CloneShape | ( | const R3MjcfVisualMesh * | visual | ) |
Returns an owned shared shape reference.
Returns an owned shape wrapper sharing the geometry. Release it with FreeSharedShape.
| struct R3MjcfVisualMeshInfo r3MjcfVisualMesh_Info | ( | const R3MjcfVisualMesh * | visual | ) |
Return a copy of visual pose, color, material, and geometry-kind flags.
| size_t r3MjcfVisualMesh_Normals | ( | const R3MjcfVisualMesh * | visual, |
| float * | buffer, | ||
| size_t | capacity ) |
Copies flattened triples of per-vertex normals.
| size_t r3MjcfVisualMesh_Texture | ( | const R3MjcfVisualMesh * | visual, |
| char * | buffer, | ||
| size_t | capacity ) |
Copies a NUL-terminated texture path, or an empty string for untextured meshes.
| size_t r3MjcfVisualMesh_Uvs | ( | const R3MjcfVisualMesh * | visual, |
| float * | buffer, | ||
| size_t | capacity ) |
Copies flattened pairs of per-vertex UV coordinates.
| R3Status r3UrdfRobot_AppendTransform | ( | struct R3UrdfRobot * | robot, |
| struct R3Pose | transform ) |
Apply an additional transform to the loaded robot before insertion.
| struct R3UrdfRobotHandles * r3UrdfRobot_InsertUsingImpulseJoints | ( | struct R3World * | world, |
| const struct R3UrdfRobot * | robot ) |
Inserts a clone; the source robot remains owned by the caller.
Returns owned handles.
| struct R3UrdfRobotHandles * r3UrdfRobot_InsertUsingMultibodyJoints | ( | struct R3World * | world, |
| const struct R3UrdfRobot * | robot, | ||
| uint8_t | options ) |
Inserts a clone; the source robot remains owned by the caller.
Returns owned handles.
| struct R3UrdfRobot * r3UrdfRobotFromFile | ( | const char * | path, |
| const struct R3UrdfLoaderOptions * | options ) |
Load from a UTF-8 path.
Validates options before reading the file. Options and their blueprint resources are borrowed through this call; the robot is owned.
| struct R3UrdfRobot * r3UrdfRobotFromString | ( | const char * | urdf, |
| const char * | mesh_dir, | ||
| const struct R3UrdfLoaderOptions * | options ) |
Load a URDF robot from a NUL-terminated UTF-8 string.
Relative mesh paths are resolved from mesh_dir (NULL resolves them from the current directory). Options and their blueprint resources are borrowed through this call; the robot is owned.
| size_t r3UrdfRobotHandles_Bodies | ( | const struct R3UrdfRobotHandles * | handles, |
| struct R3RigidBodyHandle * | buffer, | ||
| size_t | capacity ) |
One body handle per imported URDF link, in source order.
Links merged away by squeezeEmptyFixedLinks have no entry.