Engine#
-
namespace engine#
Enums
-
enum class CustomComputeResourceKind#
Resource type for custom compute shader bindings.
Values:
-
enumerator Buffer#
Structured or raw GPU buffer resource.
-
enumerator Texture#
Texture image resource.
-
enumerator Buffer#
-
enum class CustomComputeResourceAccess#
Access permission mode for custom compute shader resources.
Values:
-
enumerator ReadOnly#
Read-only shader resource.
-
enumerator WriteOnly#
Write-only unordered access resource.
-
enumerator ReadWrite#
Read-write unordered access resource.
-
enumerator ReadOnly#
-
enum class CustomComputeDispatchMode#
Compute dispatch mode for executing custom compute passes.
Values:
-
enumerator ExplicitGroupCount#
Dispatch using explicit 3D thread group counts.
-
enumerator ResourceElementCount#
Compute thread group count dynamically from resource element count.
-
enumerator ExplicitGroupCount#
Declared custom-compute access policy for shared engine GPU buffers.
Values:
Allows read-only custom-compute bindings.
Allows write-only custom-compute bindings.
Allows read/write custom-compute bindings.
Binding usage flags for shared GPU buffers.
Values:
No binding flags specified.
Bindable as a Shader Resource View (SRV).
Bindable as an Unordered Access View (UAV).
DLPack tensor data type codes for shared buffer tensor view export.
Values:
Signed integer.
Unsigned integer.
Floating point.
Boolean.
Functions
Bitwise OR operator for SharedBufferBindFlags.
- Returns:
The union of
lhsandrhs.
Bitwise AND operator for SharedBufferBindFlags.
- Returns:
The intersection of
lhsandrhs.
-
bool computeUltrasoundProbeLayout(const UltrasoundProbeComponent &probeComponent, const UltrasoundRendererComponent &rendererComponent, UltrasoundProbeLayout &outLayout)#
Computes the output image layout implied by ultrasound probe and renderer settings.
- Parameters:
probeComponent – Probe configuration. It must be enabled.
rendererComponent – Renderer configuration that determines requested output dimensions.
outLayout – Receives an empty layout on failure.
- Returns:
False when ultrasound support is unavailable, the probe is disabled, or the underlying ultrasound engine cannot be configured.
-
struct CameraComponent#
- #include <components.h>
Camera component defining projection, view targets, and rendering modes.
Public Types
-
enum class Product : std::uint32_t#
Output product modes rendered by the camera.
Values:
-
enumerator ColorDepth#
Standard RGBA color and depth output; supports ManagedPrimary.
-
enumerator Depth#
Single-channel depth output; requires an ExplicitSurface depth target.
-
enumerator SegmentationDepth#
Semantic mask and depth output; requires ExplicitSurface with color+depth and R32_UINT color.
-
enumerator ColorDepth#
Public Members
-
float verticalFovDegrees = 60.0f#
Vertical Field-of-View in degrees.
-
float nearClip = 0.01f#
Near clipping plane distance.
-
float farClip = 1000.0f#
Far clipping plane distance.
-
Product product = Product::ColorDepth#
Rendered camera output product type.
-
gpu::RenderOutputBinding output = {}#
Target binding; ManagedPrimary accepts ColorDepth only.
-
std::uint32_t outputWidth = 0#
Optional explicit target width (0 for default).
-
std::uint32_t outputHeight = 0#
Optional explicit target height (0 for default).
-
gpu::GpuRenderViewport viewport = {}#
Normalized viewport; honored only for non-layered ExplicitSurface targets.
-
bool clearColor = true#
Whether to clear target color buffer before rendering.
-
bool clearDepth = true#
Whether to clear target depth buffer before rendering.
-
Diligent::float4 clearColorValue = {0.0f, 0.0f, 0.0f, 1.0f}#
Clear color RGBA values.
-
float clearDepthValue = 1.0f#
Clear depth value.
-
BackgroundMode backgroundMode#
Camera background rendering mode.
-
std::uint32_t renderOrder = 0#
Rendering priority order (ascending).
-
enum class Product : std::uint32_t#
-
struct ColliderComponent#
- #include <components.h>
Collider component attached to entities for physical collision queries and dynamics.
Public Members
-
physics::ColliderShapeType shapeType#
Collision primitive geometry shape type.
-
Diligent::float4 shapeParams#
Shape dimensions (e.g. radius, box extents).
-
Diligent::float3 localPosition#
Local offset position relative to transform.
-
Diligent::QuaternionF localRotation#
Local offset rotation relative to transform.
-
bool enabled = true#
Active collision state.
-
float friction = 0.0f#
Dynamic friction coefficient.
-
float staticFriction = -1.0f#
Static friction coefficient (-1 to reuse dynamic friction).
-
float restitution = 0.0f#
Coefficient of restitution (bounciness).
-
std::uint32_t collisionLayer = 1u#
Bitmask collision layer.
-
std::uint32_t collisionMask = 0xffffffffu#
Bitmask collision filtering mask.
-
physics::ColliderShapeType shapeType#
-
struct ColliderHandle#
- #include <components.h>
Lightweight handle wrapper for a physics collider instance.
Public Functions
-
inline bool isValid() const noexcept#
Checks if the collider handle is valid.
- Returns:
True if valid, false otherwise.
Public Members
-
physics::ColliderId id = physics::kInvalidColliderId#
Unique collider ID.
-
inline bool isValid() const noexcept#
-
struct ConstraintLayoutMapping#
- #include <constraint_layout_mapping.h>
Complete prepared mapping for the supported rigid-adjacent constraint families.
Public Members
-
std::uint64_t layoutRevision = 0u#
Prepared host-side constraint-layout invalidation key produced by prepare(). This describes when authored slot interpretation changes and is not the same as the live GPU custom-compute resource bindingGeneration exposed after uploadWorld().
-
RigidParticleAttachmentConstraintLayoutMapping rigidParticleAttachments#
Attachments.
-
RigidDistanceConstraintLayoutMapping rigidDistanceConstraints#
Distances.
-
RoutedCableConstraintLayoutMapping routedCables#
Routed cables.
-
std::uint64_t layoutRevision = 0u#
-
struct CustomComputeDispatchDesc#
- #include <custom_compute.h>
Dispatch execution parameters for custom compute passes.
Public Members
-
CustomComputeDispatchMode mode#
Dispatch mode.
-
std::uint32_t groupCountX = 1u#
Dispatch thread group count along X dimension.
-
std::uint32_t groupCountY = 1u#
Dispatch thread group count along Y dimension.
-
std::uint32_t groupCountZ = 1u#
Dispatch thread group count along Z dimension.
-
std::string countResourceKey#
Listed resource key used by ResourceElementCount mode.
-
CustomComputeDispatchMode mode#
-
struct CustomComputePassDesc#
- #include <custom_compute.h>
Complete descriptor for compiling and instantiating a custom compute shader pass.
Set exactly one of shaderPath and shaderSource. File-based shaders require shaderDirectory; every pass needs at least one resource binding and non-zero thread-group dimensions.
Public Members
-
std::string debugName#
Debug label for diagnostics.
-
std::filesystem::path shaderDirectory#
Root directory for shader source files.
-
std::string shaderPath#
File source path relative to shaderDirectory.
-
std::string shaderSource#
Alternative in-memory HLSL source.
-
std::vector<std::filesystem::path> includeDirectories#
Custom shader search paths for HLSL includes.
-
std::string entryPoint = "main"#
Shader entry point function name.
-
std::uint32_t threadGroupSizeX = 1u#
Workgroup size X dimension.
-
std::uint32_t threadGroupSizeY = 1u#
Workgroup size Y dimension.
-
std::uint32_t threadGroupSizeZ = 1u#
Workgroup size Z dimension.
-
std::vector<CustomComputeResourceBindingDesc> resourceBindings#
Non-empty resource bindings.
-
std::string constantBufferVariableName#
Empty to omit a constant buffer.
-
std::uint32_t constantBufferSizeBytes = 0u#
Requested constant-buffer size in bytes.
-
std::vector<std::uint8_t> constantData#
Initial bytes; size also contributes to allocation.
-
CustomComputeDispatchDesc dispatch = {}#
Dispatch parameters.
-
std::string debugName#
-
struct CustomComputePassHandle#
- #include <custom_compute.h>
Handle wrapper identifying a registered custom compute shader pass.
Public Functions
-
inline bool isValid() const noexcept#
Checks if the custom compute pass handle is valid.
- Returns:
True if valid, false otherwise.
Public Members
-
std::uint64_t id = 0u#
Unique handle identifier.
-
inline bool isValid() const noexcept#
-
struct CustomComputeResourceBindingDesc#
- #include <custom_compute.h>
Binding descriptor mapping exactly one supported resource source to a shader variable.
Public Members
-
std::string shaderVariableName#
HLSL shader variable name.
-
std::string resourceKey#
Key returned by listCustomComputeResources().
Alternative engine-owned shared buffer source.
-
gpu::GpuRenderTargetBinding renderTargetBinding = {}#
Alternative shader-readable target.
-
gpu::GpuRenderTargetTexturePlane renderTargetTexturePlane#
Texture plane selection (Color, Depth).
-
CustomComputeResourceAccess access#
Requested access; render targets support read-only only.
-
std::string shaderVariableName#
-
struct CustomComputeResourceDesc#
- #include <custom_compute.h>
Metadata descriptor for a custom compute GPU resource.
Public Members
-
std::string key#
Resource key used by CustomComputeResourceBindingDesc::resourceKey.
-
CustomComputeResourceKind kind#
Resource type kind (Buffer, Texture).
-
CustomComputeResourceAccess access = CustomComputeResourceAccess::ReadOnly#
Access mode.
-
std::uint32_t elementCount = 0u#
Number of elements in resource.
-
std::uint32_t elementStrideBytes = 0u#
Stride per element in bytes.
-
std::uint64_t bindingGeneration#
Changes when the underlying GPU binding is replaced; recreate dependent passes.
-
std::string key#
-
struct DirectionalLightComponent#
- #include <components.h>
Directional light source for global scene illumination and shadow mapping.
Public Members
-
Diligent::float3 direction = {0.0f, -1.0f, 0.0f}#
Light direction vector.
-
Diligent::float3 color = {1.0f, 1.0f, 1.0f}#
Light color RGB values.
-
float intensity = 1.0f#
Illumination intensity multiplier.
-
float range = 0.0f#
Currently unused for directional lights.
-
float shadowDistance = 50.0f#
Maximum shadow rendering distance.
-
float shadowFadeDistance = 20.0f#
Distance over which shadows fade out.
-
float shadowBias = 0.0015f#
Shadow depth comparison bias.
-
bool castsShadows = true#
Enable shadow map generation.
-
Diligent::float3 direction = {0.0f, -1.0f, 0.0f}#
-
struct EntityPoseMappingEntry#
- #include <render_scene_types.h>
Maps one pose in a source pose buffer to one pose slot in the entity scene.
The two reserved fields are part of the GPU buffer layout and must be zero.
-
struct FluidComponent#
- #include <components.h>
Particle-based fluid simulation component (SPH / Position-Based Fluids).
Public Members
-
physics::FluidSourceDesc source = {}#
Fluid particle emitter/initializer source descriptor.
-
physics::FluidMaterialDesc material = {}#
Fluid material properties (viscosity, surface tension).
-
Diligent::float4 visualColor#
Visual RGBA color for fluid rendering.
-
float particleMass = 1.0f#
Fluid particle mass.
-
float particleRadius = 0.125f#
Particle interaction radius.
-
std::uint32_t collisionLayer = 1u#
Collision layer.
-
std::uint32_t collisionMask = 0xffffffffu#
Collision mask.
-
physics::FluidSourceDesc source = {}#
-
struct JointLayoutMapping#
- #include <joint_layout_mapping.h>
Prepared parallel arrays mapping rigid-joint definitions to rigid-body slots.
Public Members
-
std::uint32_t ballJointCount = 0u#
Number of ball-joint slots.
-
std::uint32_t hingeJointCount = 0u#
Number of hinge-joint slots.
-
std::uint32_t sphericalJointCount = 0u#
Number of spherical-joint slots.
-
std::uint32_t sliderJointCount = 0u#
Number of slider-joint slots.
-
std::uint64_t layoutRevision = 0u#
Prepared host-side rigid-joint slot-layout invalidation key produced by prepare(). This describes when authored slot interpretation changes and is not the same as the live GPU custom-compute resource bindingGeneration exposed after uploadWorld().
-
std::vector<physics::BallJointId> ballJointIds#
Ball-joint IDs, indexed by ball-joint slot.
-
std::vector<std::uint32_t> ballEnvironmentIndices#
Environment of body A.
-
std::vector<physics::RigidBodyId> ballBodyIdsA#
First body IDs.
-
std::vector<physics::RigidBodyId> ballBodyIdsB#
Second body IDs.
-
std::vector<std::uint32_t> ballBodyIndicesA#
First body slots.
-
std::vector<std::uint32_t> ballBodyIndicesB#
Second body slots.
-
std::vector<physics::HingeJointId> hingeJointIds#
Hinge-joint IDs, indexed by hinge-joint slot.
-
std::vector<std::uint32_t> hingeEnvironmentIndices#
Environment of body A.
-
std::vector<physics::RigidBodyId> hingeBodyIdsA#
First body IDs.
-
std::vector<physics::RigidBodyId> hingeBodyIdsB#
Second body IDs.
-
std::vector<std::uint32_t> hingeBodyIndicesA#
First body slots.
-
std::vector<std::uint32_t> hingeBodyIndicesB#
Second body slots.
-
std::vector<physics::SphericalJointId> sphericalJointIds#
Spherical-joint IDs, indexed by spherical-joint slot.
-
std::vector<std::uint32_t> sphericalEnvironmentIndices#
Environment of body A.
-
std::vector<physics::RigidBodyId> sphericalBodyIdsA#
First body IDs.
-
std::vector<physics::RigidBodyId> sphericalBodyIdsB#
Second body IDs.
-
std::vector<std::uint32_t> sphericalBodyIndicesA#
First body slots.
-
std::vector<std::uint32_t> sphericalBodyIndicesB#
Second body slots.
-
std::vector<physics::SliderJointId> sliderJointIds#
Slider-joint IDs, indexed by slider-joint slot.
-
std::vector<std::uint32_t> sliderEnvironmentIndices#
Environment of body A.
-
std::vector<physics::RigidBodyId> sliderBodyIdsA#
First body IDs.
-
std::vector<physics::RigidBodyId> sliderBodyIdsB#
Second body IDs.
-
std::vector<std::uint32_t> sliderBodyIndicesA#
First body slots.
-
std::vector<std::uint32_t> sliderBodyIndicesB#
Second body slots.
-
std::uint32_t ballJointCount = 0u#
-
struct MeshfreeSoftBodyComponent#
- #include <components.h>
Meshfree / particle-based soft body component for point cloud elastic simulation.
Public Members
-
std::vector<Diligent::float3> particles#
Particle rest position list.
-
std::vector<Diligent::float3> surfaceRestPositions#
Surface mesh rest position coordinates.
-
std::vector<Diligent::float3> surfaceNormals#
Surface mesh normal vectors.
-
std::vector<Diligent::uint3> surfaceTriangles#
Surface mesh triangle indices.
-
std::vector<std::uint32_t> staticParticleIndices#
Particle indices fixed in space.
-
physics::SoftBodyMaterialDesc material = {}#
Material property descriptor.
-
float particleRadius = 0.001f#
Particle radius.
-
float particleMass = 0.001f#
Mass per particle.
-
std::uint32_t neighbourCount = 12u#
Particle neighbor interaction count.
-
float compliance = 1.0e-6f#
Constraint compliance parameter.
-
bool selfCollisionEnabled = false#
Enable self-collision.
-
std::uint32_t collisionLayer = 1u#
Collision layer.
-
std::uint32_t collisionMask = 0xffffffffu#
Collision mask.
-
std::vector<Diligent::float3> particles#
-
struct MeshRendererComponent#
- #include <components.h>
Mesh renderer component binding a 3D mesh and material for visual rendering.
Public Members
-
graphics::MeshHandle mesh = {}#
Handle to the geometry mesh resource.
-
graphics::MaterialHandle material = {}#
Handle to the visual material resource.
-
std::uint32_t segmentationId = 0u#
ID for semantic image segmentation passes.
-
bool visible = true#
Visibility flag for camera rendering.
-
graphics::MeshHandle mesh = {}#
-
struct ParticleLayoutMapping#
- #include <particle_layout_mapping.h>
Prepared parallel arrays mapping particles and deformable owners to GPU slot layout.
Public Members
-
std::uint32_t particleCount = 0u#
Number of particle slots.
-
std::uint32_t softBodyCount = 0u#
Number of soft-body owner slots.
-
std::uint32_t fluidCount = 0u#
Number of fluid owner slots.
-
std::uint32_t strandCount = 0u#
Number of strand owner slots.
-
std::uint64_t layoutRevision = 0u#
Prepared host-side particle/deformable slot-layout invalidation key produced by prepare(). This describes when authored slot interpretation changes and is not the same as the live GPU custom-compute resource bindingGeneration exposed after uploadWorld().
-
std::vector<std::uint32_t> environmentIndices#
Environment indices, indexed by particle slot in [0, particleCount).
-
std::vector<std::uint32_t> particleKinds#
Numeric particle-kind values.
-
std::vector<std::uint32_t> ownerTypes#
Numeric owner-type values.
-
std::vector<std::uint32_t> ownerIndices#
Owner slots within their owner type.
-
std::vector<std::uint32_t> strandIds#
Strand IDs where applicable.
-
std::vector<std::uint32_t> strandOrders#
Ordinal positions within strands.
-
std::vector<std::uint32_t> strandRoles#
Numeric strand-role values.
-
std::vector<std::uint32_t> owningSoftBodyIndices#
Owning soft-body slots where applicable.
-
std::vector<std::uint32_t> particleMaterialIndices#
Particle material slots.
-
std::vector<std::uint32_t> fluidMaterialIndices#
Fluid material slots.
-
std::vector<std::uint32_t> phases#
Particle phase values.
-
std::vector<std::uint32_t> collisionLayers#
Collision layer masks.
-
std::vector<std::uint32_t> collisionMasks#
Collision filter masks.
-
std::vector<std::uint32_t> adjacencyOffsets#
Offsets into physics adjacency data.
-
std::vector<std::uint32_t> adjacencyCounts#
Adjacency counts.
-
std::vector<std::uint32_t> softBodyEnvironmentIndices#
Environment indices.
-
std::vector<std::uint32_t> softBodyParticleOffsets#
First particle slots.
-
std::vector<std::uint32_t> softBodyParticleCounts#
Particle counts.
-
std::vector<std::uint32_t> fluidEnvironmentIndices#
Environment indices.
-
std::vector<std::uint32_t> fluidParticleOffsets#
First particle slots.
-
std::vector<std::uint32_t> fluidParticleCounts#
Particle counts.
-
std::vector<std::uint32_t> strandEnvironmentIndices#
Environment indices.
-
std::vector<std::uint32_t> strandParticleOffsets#
First particle slots.
-
std::vector<std::uint32_t> strandParticleCounts#
Particle counts.
-
std::uint32_t particleCount = 0u#
-
struct PointLightComponent#
- #include <components.h>
Point light source emitting light uniformly in all directions.
-
struct ProceduralDeformableCurveRenderComponent#
- #include <components.h>
Procedural render component for generating tube meshes along deformable curves (strands/sutures).
-
class RenderSceneUploader#
- #include <render_scene_uploader.h>
Public Functions
-
explicit RenderSceneUploader(gpu::GpuDevice &device)#
Creates an uploader associated with
device. Call initialize() before use.
-
~RenderSceneUploader()#
Releases uploader resources.
-
bool initialize(const common::SceneLayoutDesc &layout = common::SceneLayoutDesc{})#
Initializes GPU scene buffers and the physics-to-render pose synchronization pass.
- Parameters:
layout – Per-environment scene capacities used to size GPU buffers.
- Returns:
False when compatible graphics and physics backend contexts or shader resources are unavailable.
-
void shutdown()#
Releases all GPU resources and resets this uploader to its uninitialized state.
-
bool uploadEntityPoseData(const std::vector<Diligent::float4> &positions, const std::vector<Diligent::float4> &orientations, const std::vector<Diligent::float4> &scales)#
Uploads complete entity pose arrays to the shared entity-scene pose buffers.
- Returns:
False unless initialized, all three arrays have equal length, and the physics backend is available.
-
bool applyMappedEntityPoses(const common::PoseBufferView &sourcePoses, const std::vector<EntityPoseMappingEntry> &mappings)#
Dispatches a GPU copy of selected source poses into entity-scene pose slots.
- Parameters:
sourcePoses – Source GPU pose buffers. All three buffers and a non-zero count are required when
mappingsis non-empty.mappings – Source-to-destination pose mappings to apply.
- Returns:
False when uninitialized, required buffers/backend resources are unavailable, or the synchronization dispatch cannot be submitted.
-
bool uploadRenderableMetadata(const std::vector<graphics::GpuRenderableMetadata> &renderables)#
Uploads renderable metadata; an empty vector clears the recorded renderable count.
-
bool uploadRenderableQueueInfo(const std::vector<graphics::GpuRenderableQueueInfo> &queueInfo)#
Uploads render-queue information for renderable slots.
-
bool uploadSoftBodyVertexBindings(const std::vector<graphics::GpuSoftBodyVertexBinding> &bindings)#
Uploads soft-body vertex-to-particle bindings.
-
bool uploadCameraInputs(const std::vector<graphics::GpuCameraInput> &cameras)#
Uploads camera inputs; an empty vector clears the recorded camera count.
-
bool uploadLightInputs(const std::vector<graphics::GpuLightInput> &lights)#
Uploads light inputs; an empty vector clears the recorded light count.
-
bool uploadLocalLightSelections(const std::vector<graphics::GpuLocalLightSelection> &selections)#
Uploads per-renderable local-light selections.
-
graphics::GpuEntitySceneView sceneView() const noexcept#
Returns a non-owning view of the internally managed GPU entity scene.
-
graphics::GpuEntitySceneView sceneView(const common::PoseBufferView &poses, std::uint32_t entityCount) const noexcept#
Returns a scene view that uses caller-supplied pose buffers with this uploader’s uploaded renderable, camera, and light buffers.
-
const common::SceneLayoutDesc &layout() const noexcept#
Returns the layout supplied to initialize(), or the default layout after shutdown.
-
explicit RenderSceneUploader(gpu::GpuDevice &device)#
-
struct RigidBodyComponent#
- #include <components.h>
Rigid body component defining linear/angular velocity, mass properties, and kinematic targets.
Public Members
-
Diligent::float3 linearVelocity = {0.0f, 0.0f, 0.0f}#
Linear velocity vector.
-
Diligent::float3 angularVelocity = {0.0f, 0.0f, 0.0f}#
Angular velocity vector.
-
Diligent::float3 inverseInertiaLocal#
Local inverse inertia tensor diagonal.
-
std::vector<Diligent::float3> proxyParticleLocalPositions = {}#
Local positions of proxy particles.
-
physics::ParticleContactMaterialDesc proxyParticleMaterial = {}#
Proxy particle contact material properties.
-
physics::RigidBodyType bodyType#
Rigid body type (Dynamic, Static, Kinematic).
-
float inverseMass = 1.0f#
Inverse mass (1/kg).
-
float proxyParticleRadius = 0.0f#
Radius of proxy collision particles.
-
std::uint32_t proxyCollisionLayer = 1u#
Bitmask collision layer for proxy particles.
-
std::uint32_t proxyCollisionMask = 0xffffffffu#
Bitmask collision mask for proxy particles.
-
bool suturingEnabled = false#
Enable surgical suturing needle proxy interactions.
-
std::uint32_t needleTipProxyIndex = 0u#
Proxy particle index representing needle tip.
-
Diligent::float3 kinematicTargetPosition#
Kinematic target position for interpolation.
-
Diligent::QuaternionF kinematicTargetRotation#
Kinematic target orientation quaternion.
-
bool kinematicTargetEnabled = false#
Enable kinematic target positioning.
-
Diligent::float3 linearVelocity = {0.0f, 0.0f, 0.0f}#
-
struct RigidDistanceConstraintLayoutMapping#
- #include <constraint_layout_mapping.h>
Prepared parallel arrays describing rigid-distance constraints.
Every vector is indexed by constraint slot in [0, count).
Public Members
-
std::uint32_t count = 0u#
Number of rigid-distance constraint slots.
-
std::vector<physics::RigidDistanceConstraintId> constraintIds#
Constraint IDs.
-
std::vector<std::uint32_t> environmentIndices#
Environment of body A.
-
std::vector<physics::RigidBodyId> rigidBodyIdsA#
First rigid-body IDs.
-
std::vector<physics::RigidBodyId> rigidBodyIdsB#
Second rigid-body IDs.
-
std::vector<std::uint32_t> rigidBodyIndicesA#
Prepared slots for body A.
-
std::vector<std::uint32_t> rigidBodyIndicesB#
Prepared slots for body B.
-
std::vector<std::uint32_t> enabledFlags#
One for enabled constraints and zero otherwise.
-
std::uint32_t count = 0u#
-
struct RigidLayoutMapping#
- #include <rigid_layout_mapping.h>
Prepared parallel arrays mapping rigid bodies and colliders to their GPU slot layout.
Public Members
-
std::uint32_t rigidBodyCount = 0u#
Number of rigid-body slots.
-
std::uint32_t colliderCount = 0u#
Number of collider slots.
-
std::uint64_t layoutRevision = 0u#
Prepared host-side rigid/collider slot-layout invalidation key produced by prepare(). This describes when authored slot interpretation changes and is not the same as the live GPU custom-compute resource bindingGeneration exposed after uploadWorld().
-
std::vector<physics::RigidBodyId> rigidBodyIds#
Rigid-body IDs, indexed by rigid-body slot in [0, rigidBodyCount).
-
std::vector<std::uint32_t> rigidBodyEnvironmentIndices#
Environment indices.
-
std::vector<physics::ColliderId> colliderIds#
Collider IDs, indexed by collider slot in [0, colliderCount).
-
std::vector<physics::RigidBodyId> colliderOwnerBodyIds#
Owning rigid-body IDs.
-
std::vector<std::uint32_t> colliderOwnerBodyIndices#
Owning rigid-body slots.
-
std::vector<std::uint32_t> colliderEnvironmentIndices#
Environment indices.
-
std::vector<std::uint32_t> colliderShapeTypes#
Numeric ColliderShapeType values.
-
std::vector<std::uint32_t> colliderEnabledFlags#
One for enabled colliders, zero otherwise.
-
std::vector<std::uint32_t> colliderCollisionLayers#
Collision layer masks.
-
std::vector<std::uint32_t> colliderCollisionMasks#
Collision filter masks.
-
std::vector<Diligent::float3> colliderLocalPositions#
Body-local positions.
-
std::vector<Diligent::QuaternionF> colliderLocalRotations#
Body-local orientations.
-
std::vector<Diligent::float4> colliderShapeParams#
Shape-specific parameters.
-
std::vector<std::uint32_t> bodyColliderOffsets#
First flattened collider index per body, indexed by rigid-body slot.
-
std::vector<std::uint32_t> bodyColliderCounts#
Collider count per body.
-
std::vector<std::uint32_t> bodyColliderIndices#
Flattened collider slots.
-
std::uint32_t rigidBodyCount = 0u#
-
struct RigidParticleAttachmentConstraintLayoutMapping#
- #include <constraint_layout_mapping.h>
Prepared parallel arrays describing rigid-particle attachment constraints.
Every vector except where noted is indexed by constraint slot in [0, count).
Public Members
-
std::uint32_t count = 0u#
Number of attachment-constraint slots.
-
std::vector<physics::RigidParticleAttachmentConstraintId> constraintIds#
This prepared mapping reflects authored host-side references resolved by prepare(). Runtime GPU edits to the live rigid-particle attachment descriptor buffer after uploadWorld() (for example retargeting
particleIndex) do not feed back into these arrays until the host reauthors and prepares again.
-
std::vector<std::uint32_t> environmentIndices#
Owning rigid body’s environment indices.
-
std::vector<physics::RigidBodyId> rigidBodyIds#
Referenced rigid-body IDs.
-
std::vector<std::uint32_t> rigidBodyIndices#
Prepared rigid-body slot indices.
-
std::vector<std::uint32_t> particleReferenceTypes#
Numeric particle-reference types.
-
std::vector<std::uint32_t> particleLocalIndices#
Particle indices local to their owners.
-
std::vector<std::uint32_t> enabledFlags#
One for enabled constraints and zero otherwise.
-
std::uint32_t count = 0u#
-
struct RoutedCableConstraintLayoutMapping#
- #include <constraint_layout_mapping.h>
Prepared arrays describing routed-cable constraints and their flattened route points.
Public Members
-
std::uint32_t count = 0u#
Number of routed-cable constraint slots.
-
std::vector<physics::RoutedCableConstraintId> constraintIds#
Constraint IDs, indexed by constraint slot in [0, count).
-
std::vector<std::uint32_t> environmentIndices#
First resolved route-point environment.
-
std::vector<std::uint32_t> routePointOffsets#
Offsets into flattened route-point arrays.
-
std::vector<std::uint32_t> routePointCounts#
Number of route points per constraint.
-
std::vector<std::uint32_t> enabledFlags#
One for enabled constraints and zero otherwise.
-
std::vector<physics::RigidBodyId> routePointRigidBodyIds#
Route-point body IDs in the flattened arrays addressed by offsets and counts above.
-
std::vector<std::uint32_t> routePointRigidBodyIndices#
Prepared route-point body slots.
-
std::vector<Diligent::float3> routePointLocalGuideOffsets#
Body-local guide offsets.
-
std::uint32_t count = 0u#
-
class Runtime#
- #include <runtime.h>
Main engine runtime coordinator managing GPU devices, physics solvers, graphics, and custom compute passes.
Public Functions
-
Runtime()#
Constructs an uninitialized runtime.
-
~Runtime()#
Shuts down the runtime if necessary.
-
bool initialize(const RuntimeConfig &config = RuntimeConfig{})#
Initializes the engine runtime with the specified configuration parameters.
- Parameters:
config – Runtime configuration options including GPU, physics, and renderer settings.
- Returns:
True if initialization succeeds; false otherwise.
-
void shutdown()#
Shuts down the engine runtime and releases allocated GPU/physics resources.
-
void prepare()#
Prepares authored world and render state for GPU upload.
Call uploadWorld() after this method and before stepPhysics() or custom-compute execution. Does nothing before initialize().
-
bool uploadWorld()#
Uploads the prepared physics and render scene state to GPU resources.
- Returns:
True if all required uploads succeed; false before initialize().
-
bool stepPhysics(const common::FrameContext &frameContext)#
Advances physics using the supplied frame context.
Requires a successful uploadWorld() call after the most recent prepare().
- Returns:
True if the physics step succeeds.
-
bool stepSimulationSensors(const common::FrameContext &frameContext)#
Executes simulation-driven sensors, including ultrasound when configured.
- Returns:
False before initialize() or if the ultrasound system reports failure.
-
void stepVisualSensors(const common::FrameContext &frameContext)#
Updates the GPU scene and renders visual sensors for the supplied frame.
Note
Does nothing before initialize().
-
void endFrame(const common::FrameContext &frameContext)#
Ends the active device frame and submits queued presentation/readback work.
Note
Does nothing before initialize() or when no device frame is active.
-
gpu::GpuDevice *getGpuDevice() noexcept#
Returns the GPU device, or nullptr before initialization and after shutdown.
-
const gpu::GpuDevice *getGpuDevice() const noexcept#
Returns the GPU device, or nullptr before initialization and after shutdown.
-
physics::PhysicsSolver *getPhysicsSolver() noexcept#
Returns the physics solver, or nullptr before initialization and after shutdown.
-
const physics::PhysicsSolver *getPhysicsSolver() const noexcept#
Returns the physics solver, or nullptr before initialization and after shutdown.
-
void setGravity(const Diligent::float3 &gravity) noexcept#
Sets gravity for the initialized physics solver.
- Parameters:
gravity – Gravity acceleration vector.
-
const graphics::RenderStats &lastRenderStats() const noexcept#
Returns statistics from the most recent visual-sensor render.
-
void setRenderFrameOptions(const graphics::RenderFrameOptions &options) noexcept#
Sets options applied to subsequent visual-sensor renders.
- Parameters:
options – Per-frame rendering options.
-
const graphics::RenderFrameOptions &renderFrameOptions() const noexcept#
Returns options applied to visual-sensor renders.
-
graphics::RenderResourceManager &getResources() noexcept#
Returns the runtime-owned render resource manager.
-
const graphics::RenderResourceManager &getResources() const noexcept#
Returns the runtime-owned render resource manager.
-
RuntimeInfo getInfo() const noexcept#
Returns engine version and optional feature support information.
Creates an engine-owned structured GPU buffer that can be bound in custom compute. When CUDA interop is available and the allocation is exportable, the same buffer can also be imported into CUDA/Torch through DLPack.
Destroys the runtime handle for a shared buffer. Exported DLPack tensors may keep the underlying storage alive until their consumer releases it.
Lists currently registered shared-buffer handles and their metadata.
Queries metadata for one shared buffer handle.
Returns the CUDA-facing device pointer view for one shared buffer when CUDA interop is available and this buffer was successfully imported into CUDA.
Inserts a GPU-side wait so subsequent CUDA/Torch work sees prior Vulkan/D3D compute writes. Fails when the shared buffer is not imported into CUDA.
Inserts a GPU-side wait so subsequent Vulkan/D3D compute work sees prior CUDA/Torch writes. Fails when the shared buffer is not imported into CUDA.
Retains the storage backing a shared buffer independently of its runtime handle. Keep the returned lease alive while an external consumer uses an exported buffer view.
-
bool tryGetPreparedRigidLayoutMapping(RigidLayoutMapping &outMapping) const#
Returns the current prepared rigid-body/collider slot mapping derived from authored state. This is valid after prepare() and does not require uploadWorld(). The returned layoutRevision is a prepared host-side slot-layout invalidation key and is separate from the live GPU custom-compute bindingGeneration exposed after uploadWorld().
- Parameters:
outMapping – Receives an empty mapping when the runtime is uninitialized.
- Returns:
False when the runtime or physics solver is unavailable.
-
bool tryGetPreparedConstraintLayoutMapping(ConstraintLayoutMapping &outMapping) const#
Returns the current prepared rigid-adjacent constraint mapping derived from authored state. This is valid after prepare() and does not require uploadWorld(). The returned layoutRevision is a prepared host-side slot-layout invalidation key and is separate from the live GPU custom-compute bindingGeneration exposed after uploadWorld().
- Parameters:
outMapping – Receives an empty mapping when the runtime is uninitialized.
- Returns:
False when the runtime or physics solver is unavailable.
-
bool tryGetPreparedParticleLayoutMapping(ParticleLayoutMapping &outMapping) const#
Returns the current prepared particle/deformable slot mapping derived from authored state. This is valid after prepare() and does not require uploadWorld(). The returned layoutRevision is a prepared host-side slot-layout invalidation key and is separate from the live GPU custom-compute bindingGeneration exposed after uploadWorld().
- Parameters:
outMapping – Receives an empty mapping when the runtime is uninitialized.
- Returns:
False when the runtime or physics solver is unavailable.
-
bool tryGetPreparedJointLayoutMapping(JointLayoutMapping &outMapping) const#
Returns the current prepared rigid-joint slot mapping derived from authored state for ball, hinge, spherical, and slider joints. This is valid after prepare() and does not require uploadWorld(). The returned layoutRevision is a prepared host-side slot-layout invalidation key and is separate from the live GPU custom-compute bindingGeneration exposed after uploadWorld().
- Parameters:
outMapping – Receives an empty mapping when the runtime is uninitialized.
- Returns:
False when the runtime or physics solver is unavailable.
-
bool computeUltrasoundProbeLayout(const UltrasoundProbeComponent &probeComponent, const UltrasoundRendererComponent &rendererComponent, UltrasoundProbeLayout &outLayout) const#
Computes an ultrasound output layout for probe and renderer components.
- Parameters:
probeComponent – Ultrasound probe configuration.
rendererComponent – Ultrasound renderer configuration.
outLayout – Output layout to populate.
- Returns:
True if layout computation succeeds.
-
std::vector<CustomComputeResourceDesc> listCustomComputeResources()#
Lists custom-compute resources registered for the uploaded world.
- Returns:
Resource descriptors, or an empty vector when unavailable.
-
CustomComputePassHandle createCustomComputePass(const CustomComputePassDesc &desc)#
Compiles and registers a custom compute pass for the uploaded world.
- Parameters:
desc – Compute-pass configuration.
- Returns:
Registered pass handle, or an invalid handle if creation fails.
-
bool updateCustomComputePassConstants(CustomComputePassHandle handle, const std::vector<std::uint8_t> &data)#
Updates a custom compute pass’s constant-buffer data.
- Parameters:
handle – Registered compute-pass handle.
data – Replacement constant-buffer bytes.
- Returns:
False for an invalid handle, a pass without constants, or an oversized payload.
-
bool executeCustomComputePass(CustomComputePassHandle handle)#
Executes a registered custom compute pass for the uploaded world.
- Parameters:
handle – Registered compute-pass handle.
- Returns:
False if the pass or its required resources are unavailable or changed.
-
bool destroyCustomComputePass(CustomComputePassHandle handle)#
Destroys a registered custom compute pass.
- Parameters:
handle – Registered compute-pass handle.
- Returns:
True if the handle was registered.
-
Runtime()#
-
struct RuntimeConfig#
- #include <runtime.h>
Configuration descriptor for initializing the CRESSim-Neo engine runtime.
Public Members
-
gpu::GpuDeviceDesc gpuDeviceDesc = {}#
Desired GPU device configuration.
-
common::SceneLayoutDesc sceneLayout = {}#
Scene layout capacity settings.
-
graphics::RendererDesc rendererDesc = {}#
Graphics renderer parameters.
-
physics::PhysicsSolverDesc physicsDesc = {}#
Physics solver parameters.
-
gpu::GpuDeviceDesc gpuDeviceDesc = {}#
-
struct RuntimeInfo#
- #include <runtime.h>
Information structure holding engine version and optional feature support flags.
Public Members
-
std::string engineVersion#
Full semver engine version string.
-
std::uint32_t engineVersionMajor = 0u#
Major version number.
-
std::uint32_t engineVersionMinor = 0u#
Minor version number.
-
std::uint32_t engineVersionPatch = 0u#
Patch version number.
-
bool cudaInteropSupported = false#
True if CUDA interop is enabled and available.
-
bool ultrasoundSupported = false#
True if CRESSim-Ultrasound integration is available.
-
std::string engineVersion#
- #include <shared_buffer.h>
View descriptor exposing CUDA device memory pointer and size for interop.
Public Functions
Checks if the CUDA device view is valid.
- Returns:
True if valid, false otherwise.
Public Members
Raw CUDA device pointer.
Size of accessible device memory in bytes.
CUDA device ordinal index.
- #include <shared_buffer.h>
Descriptor for creating an engine-owned shared GPU buffer.
Public Members
Debug label for GPU diagnostic tools.
Non-zero stride per element in bytes.
Non-zero initial element count.
Optional lower bound on allocated element capacity.
Custom-compute access policy; bindFlags control GPU views.
Must not be None.
- #include <shared_buffer.h>
Handle wrapper identifying an engine-owned shared GPU buffer.
Public Functions
Checks if the shared buffer handle is valid.
- Returns:
True if valid, false otherwise.
Public Members
Unique handle identifier.
- #include <shared_buffer.h>
Detailed information and runtime state for a shared GPU buffer.
Public Members
Buffer handle.
Debug label.
Element stride in bytes.
Current element count.
Total element capacity.
Total allocated size in bytes.
Declared custom-compute access policy.
Binding flags.
True if buffer is exportable for CUDA/DLPack interop.
True if buffer is currently imported into CUDA.
- #include <shared_buffer.h>
RAII lease keeping shared GPU buffer memory alive across external DLPack/Torch consumers.
Public Functions
Checks if the buffer lease is active and valid.
- Returns:
True if valid, false otherwise.
- #include <shared_buffer.h>
Tensor metadata descriptor for exporting a shared buffer to DLPack / PyTorch.
The Python export API requires a non-empty shape and byte-aligned, non-zero dtype metadata.
Public Members
Tensor dimensions shape array.
Tensor strides array.
Element data type code.
Element bit width (e.g. 32 for float32).
Vector lanes count per element.
Byte offset from buffer start.
-
struct SoftBodyAuthoringParticles#
- #include <components.h>
Authoring particle position container for soft body asset creation.
-
struct SoftBodyComponent#
- #include <components.h>
Soft body component supporting tetrahedral and meshfree particle sources.
Public Members
-
physics::SoftBodySourceDesc source = {}#
Source mesh file or tetrahedral asset descriptor.
-
physics::SoftBodyMaterialDesc material = {}#
Particle contact material parameters.
-
float particleMass = 1.0f#
Mass per node particle.
-
float particleRadius = 0.125f#
Collision radius per particle.
-
float edgeCompliance#
Extended Position Based Dynamics (XPBD) edge constraint compliance.
-
float volumeCompliance = 0.001f#
XPBD volume conservation constraint compliance.
-
bool selfCollisionEnabled = false#
Enable internal self-collision handling.
-
bool supportsSuturing = false#
Enable surgical thread suturing insertion.
-
std::uint32_t collisionLayer = 1u#
Collision bitmask layer.
-
std::uint32_t collisionMask = 0xffffffffu#
Collision bitmask filter.
-
physics::SoftBodySourceDesc source = {}#
-
struct SpotLightComponent#
- #include <components.h>
Spot light source emitting a cone of light in a specified direction.
Public Members
-
Diligent::float3 direction = {0.0f, -1.0f, 0.0f}#
Spot light emission direction.
-
Diligent::float3 color = {1.0f, 1.0f, 1.0f}#
Light color RGB values.
-
float intensity = 1.0f#
Illumination intensity multiplier.
-
float range = 10.0f#
Attenuation distance range.
-
float innerConeAngle = 25.0f#
Inner full-intensity cone angle (degrees).
-
float outerConeAngle = 35.0f#
Outer zero-intensity cone angle (degrees).
-
float shadowBias = 0.0015f#
Shadow depth bias.
-
bool castsShadows = false#
Enable shadow map generation.
-
Diligent::float3 direction = {0.0f, -1.0f, 0.0f}#
-
struct StrandComponent#
- #include <components.h>
1D elastic strand component for surgical threads and sutures.
Public Members
-
physics::StrandMaterialDesc material = {}#
Particle contact material parameters.
-
std::vector<Diligent::float3> restPositions = {}#
Rest positions of strand particles.
-
std::vector<std::uint32_t> staticParticleIndices#
Fixed node particle indices.
-
float particleMass = 1.0f#
Mass per strand node particle.
-
float particleRadius = 0.125f#
Collision radius per strand node.
-
float stretchShearCompliance = 0.0f#
Stretching and shearing constraint compliance.
-
float bendCompliance = 0.0f#
Bending constraint compliance.
-
float twistCompliance = 0.0f#
Torsional twisting compliance.
-
float distanceCompliance = 0.0f#
Distance constraint compliance.
-
Diligent::float3 rootMaterialNormal#
Normal vector at strand root constraint.
-
bool selfCollisionEnabled = false#
Enable strand self-collision.
-
bool suturingEnabled = false#
Enable suturing path tracking.
-
float pathNodeSpacing = 0.2f#
Node spacing along suturing path.
-
std::uint32_t collisionLayer = 1u#
Collision layer.
-
std::uint32_t collisionMask = 0xffffffffu#
Collision mask.
-
physics::StrandMaterialDesc material = {}#
-
struct TransformComponent#
- #include <components.h>
World transform component for spatial positioning, orientation, and scaling.
-
struct UltrasoundAmplitudeRange#
- #include <components.h>
Signal amplitude range for ultrasound acoustic scatterer reflections.
-
struct UltrasoundProbeComponent#
- #include <components.h>
Ultrasound transducer probe component for simulated B-mode ultrasound imaging.
Public Types
Public Members
-
bool enabled = true#
Enable ultrasound beam simulation.
-
std::uint32_t numScanlines = 50u#
Number of acoustic scanlines.
-
float lineLength = 1.2f#
Scanline penetration depth.
-
float scanlineSpacing = 0.01f#
Spacing between adjacent scanlines.
-
float sectorAngleDegrees = 60.0f#
Sector sweep angle for curvilinear arrays.
-
float probeRadius = 0.35f#
Physical transducer head curvature radius.
-
float soundSpeed = 1540.0f#
Acoustic speed of sound in medium (m/s).
-
float noiseAmplitude = 0.0f#
Thermal and speckle noise amplitude.
-
float samplingFrequency = 100e6f#
Acoustic RF signal sampling frequency (Hz).
-
float demodulationFrequency = 2.5e6f#
RF demodulation carrier frequency (Hz).
-
float centerFrequency = 2.5e6f#
Transducer center frequency (Hz).
-
float fractionalBandwidth = 0.2f#
Transducer fractional bandwidth.
-
float beamSigmaLateral = 0.001f#
Lateral acoustic beam profile Gaussian sigma.
-
float beamSigmaElevational = 0.001f#
Elevational acoustic beam profile Gaussian sigma.
-
std::uint32_t radialDecimation = 4u#
Radial decimation factor for image generation.
-
std::uint32_t threadsPerBlock = 128u#
CUDA compute block thread size.
-
std::uint32_t cudaNumStreams = 1u#
Number of concurrent CUDA streams.
-
std::uint32_t numTimeSamples = 0u#
RF time-domain samples per scanline.
-
bool useArcProjection = false#
Enable arc projection geometry.
-
bool enablePhaseDelay = true#
Enable phase delay beamforming.
-
bool enabled = true#
-
struct UltrasoundProbeLayout#
- #include <components.h>
Output layout descriptor for ultrasound probe imaging targets.
Public Members
-
std::uint32_t numScanlines = 0u#
Total scanlines in probe image.
-
std::uint32_t samplesPerScanline = 0u#
Acoustic samples per scanline.
-
std::uint32_t imageWidth = 0u#
Output B-mode image width (pixels).
-
std::uint32_t imageHeight = 0u#
Output B-mode image height (pixels).
-
Diligent::TEXTURE_FORMAT colorFormat#
Target texture format.
-
bool layeredOutputSupported = true#
Support for array/layered render targets.
-
std::uint32_t numScanlines = 0u#
-
struct UltrasoundProbeResult#
- #include <components.h>
Execution result containing output handles and metadata for ultrasound probe simulation.
Public Members
-
bool prepared = false#
True if metadata/handles are published for current frame.
-
bool completed = false#
True if simulation completed for completedFrameIndex.
-
std::uint64_t completedFrameIndex#
Frame index corresponding to completed ultrasound output.
-
std::uint32_t numScanlines = 0u#
Scanline count in output.
-
std::uint32_t samplesPerScanline = 0u#
Samples per scanline.
-
std::uint64_t totalScattererCount = 0u#
Evaluated scatterer count.
-
std::uint32_t imageWidth = 0u#
Generated B-mode image width.
-
std::uint32_t imageHeight = 0u#
Generated B-mode image height.
-
gpu::GpuRenderTargetBinding imageBinding = {}#
Render target binding for generated B-mode texture.
-
bool prepared = false#
-
struct UltrasoundRendererComponent#
- #include <components.h>
Renderer binding component for ultrasound B-mode image output generation.
Public Members
-
bool enabled = true#
Active rendering state.
-
gpu::RenderOutputBinding output = {}#
Output target binding descriptor.
-
std::uint32_t outputWidth = 0u#
Output width in pixels.
-
std::uint32_t outputHeight = 0u#
Output height in pixels.
-
bool useFixedMaxNormalization = false#
Enable fixed maximum signal intensity normalization.
-
float fixedMaxSignal = 1.0f#
Fixed maximum signal normalization value.
-
bool enabled = true#
-
struct UltrasoundScattererSourceComponent#
- #include <components.h>
Scatterer point cloud source for generating tissue ultrasound acoustic backscatter.
-
class UltrasoundSystem#
- #include <ultrasound_system.h>
Public Functions
-
UltrasoundSystem(gpu::GpuDevice &device, physics::PhysicsSolver &physicsSolver)#
Creates an ultrasound system using the supplied GPU device and physics solver.
-
~UltrasoundSystem()#
Shuts down the system and releases per-probe resources.
-
bool initialize()#
Resets and initializes system state.
-
void shutdown()#
Releases probe runtimes, output targets, and CUDA bridge resources.
-
bool prepare(World &world)#
Prepares enabled probes and publishes their current output metadata to
world.- Returns:
False only when the system is uninitialized or has been disabled after a fatal ultrasound setup failure; unavailable optional backends cause preparation to be skipped.
-
bool execute(const common::FrameContext &frameContext, World &world)#
Executes enabled ultrasound probes for
frameContextand updatesworldresults.- Returns:
False only when the system is uninitialized or disabled after a fatal setup error; unavailable optional backends cause execution to be skipped.
-
bool computeProbeLayout(const UltrasoundProbeComponent &probeComponent, const UltrasoundRendererComponent &rendererComponent, UltrasoundProbeLayout &outLayout) const#
Computes a probe output layout using the same rules as the free function.
-
UltrasoundSystem(gpu::GpuDevice &device, physics::PhysicsSolver &physicsSolver)#
-
class World#
- #include <world.h>
Primary ECS scene graph container managing entities, components, graphics views, and physics bindings.
Public Types
-
using ColliderHandle = engine::ColliderHandle#
Public Functions
-
World()#
Constructs an empty world with the default scene layout.
-
~World()#
Releases world state.
-
World(World &&other) noexcept#
Transfers world state from
other; the moved-from object is valid only for destruction or reassignment.
-
World &operator=(World &&other) noexcept#
Transfers world state from
other; the moved-from object is valid only for destruction or reassignment.
-
common::EntityId createEntity(std::uint32_t envIndex = 0u)#
Creates a new entity within the world scene graph.
- Parameters:
envIndex – Environment index for parallel RL environments (default: 0).
- Returns:
Unique EntityId for the created entity, or kInvalidEntityId if envIndex is outside the configured environment count.
-
bool destroyEntity(common::EntityId entityId)#
Destroys an existing entity and removes all associated components.
- Parameters:
entityId – Entity ID to destroy.
- Returns:
True if entity was destroyed; false if invalid or not found.
-
void setSceneLayout(const common::SceneLayoutDesc &layout)#
Sets the scene layout capacities before any scene authoring occurs.
Note
Calls made after authoring has begun leave the existing layout unchanged.
- Parameters:
layout – Scene layout descriptor.
-
const common::SceneLayoutDesc &sceneLayout() const noexcept#
Gets the current scene layout capacity descriptor.
- Returns:
Reference to current SceneLayoutDesc.
-
bool setEntityEnvironment(common::EntityId entityId, std::uint32_t envIndex)#
Assigns an entity to a specific environment index, migrating its associated state.
- Parameters:
entityId – Entity ID.
envIndex – Environment index.
- Returns:
True if assignment succeeded; false for an invalid entity or environment index, or if associated state cannot be migrated.
-
std::uint32_t entityEnvironment(common::EntityId entityId) const noexcept#
Gets the environment index assigned to an entity.
- Parameters:
entityId – Entity ID.
- Returns:
Environment index, or zero when
entityIdis not alive.
-
bool setEnvironmentIbl(std::uint32_t envIndex, const graphics::EnvironmentIblDesc &desc)#
Configures Image-Based Lighting (IBL) environment maps for an environment index.
- Parameters:
envIndex – Environment index.
desc – Environment IBL descriptor.
- Returns:
True if configured successfully.
-
const graphics::EnvironmentIblDesc *tryGetEnvironmentIbl(std::uint32_t envIndex) const noexcept#
Gets the Environment IBL descriptor stored for an initialized environment index.
- Parameters:
envIndex – Environment index.
- Returns:
Pointer to EnvironmentIblDesc (including its default value when not explicitly configured), or nullptr if host scene storage has not been initialized for envIndex.
-
bool setEnvironmentFluid(std::uint32_t envIndex, const graphics::EnvironmentFluidDesc &desc)#
Configures environment fluid properties for an environment index.
- Parameters:
envIndex – Environment index.
desc – Environment fluid descriptor.
- Returns:
True if configured successfully.
-
const graphics::EnvironmentFluidDesc *tryGetEnvironmentFluid(std::uint32_t envIndex) const noexcept#
Gets the Environment fluid descriptor stored for an initialized environment index.
- Parameters:
envIndex – Environment index.
- Returns:
Pointer to EnvironmentFluidDesc (including its default value when not explicitly configured), or nullptr if host scene storage has not been initialized for envIndex.
-
bool isAlive(common::EntityId entityId) const#
Checks if an entity is alive and active in the world.
- Parameters:
entityId – Entity ID to query.
- Returns:
True if alive, false otherwise.
-
const std::vector<common::EntityId> &entities() const noexcept#
Returns the list of all active entity IDs in the world.
- Returns:
Const reference to vector of active EntityIds.
-
void setTransform(common::EntityId entityId, const TransformComponent &component)#
Assigns or updates the TransformComponent for an entity.
On an entity with a rigid body, this immediately overwrites the body’s pose (a teleport); it does not create a kinematic target.
- Parameters:
entityId – Target entity ID.
component – Transform component data.
-
void setMeshRenderer(common::EntityId entityId, const MeshRendererComponent &component)#
Assigns or updates the MeshRendererComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Mesh renderer component data.
-
void setCamera(common::EntityId entityId, const CameraComponent &component)#
Assigns or updates the CameraComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Camera component data.
-
void setDirectionalLight(common::EntityId entityId, const DirectionalLightComponent &component)#
Assigns or updates a DirectionalLightComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Directional light component data.
-
void setPointLight(common::EntityId entityId, const PointLightComponent &component)#
Assigns or updates a PointLightComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Point light component data.
-
void setSpotLight(common::EntityId entityId, const SpotLightComponent &component)#
Assigns or updates a SpotLightComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Spot light component data.
-
void setRigidBody(common::EntityId entityId, const RigidBodyComponent &component)#
Assigns or updates a RigidBodyComponent for an entity.
- Parameters:
entityId – Target entity ID.
component – Rigid body component data.
-
bool removeRigidBody(common::EntityId entityId)#
Removes the RigidBodyComponent from an entity and removes its colliders.
- Parameters:
entityId – Target entity ID.
- Returns:
True if removed; false otherwise.
-
bool setSoftBody(common::EntityId entityId, const SoftBodyComponent &component)#
Assigns a SoftBodyComponent to an entity.
A successful replacement clears any authored ultrasound scatterer amplitude ranges for the entity because their required count depends on the soft body’s rest-particle set.
- Parameters:
entityId – Target entity ID.
component – Soft body component data.
- Returns:
True if set successfully.
-
bool setMeshfreeSoftBody(common::EntityId entityId, const MeshfreeSoftBodyComponent &component)#
Assigns a MeshfreeSoftBodyComponent to an entity.
- Parameters:
entityId – Target entity ID.
component – Meshfree soft body component data.
- Returns:
True if set successfully.
-
bool removeSoftBody(common::EntityId entityId)#
Removes the SoftBodyComponent and any authored ultrasound amplitude ranges.
- Parameters:
entityId – Target entity ID.
- Returns:
True if either the soft body or its amplitude ranges existed and was removed.
-
bool setStrand(common::EntityId entityId, const StrandComponent &component)#
Assigns a StrandComponent to an entity.
- Parameters:
entityId – Target entity ID.
component – Strand component data.
- Returns:
True if set successfully.
-
bool removeStrand(common::EntityId entityId)#
Removes the StrandComponent from an entity.
- Parameters:
entityId – Target entity ID.
- Returns:
True if removed; false otherwise.
-
void setProceduralDeformableCurveRender(common::EntityId entityId, const ProceduralDeformableCurveRenderComponent &component)#
Assigns a ProceduralDeformableCurveRenderComponent to an entity.
- Parameters:
entityId – Target entity ID.
component – Procedural curve render component data.
-
bool removeProceduralDeformableCurveRender(common::EntityId entityId)#
Removes ProceduralDeformableCurveRenderComponent from an entity.
- Parameters:
entityId – Target entity ID.
- Returns:
True if removed; false otherwise.
-
bool setFluid(common::EntityId entityId, const FluidComponent &component)#
Assigns a FluidComponent to an entity.
- Parameters:
entityId – Target entity ID.
component – Fluid component data.
- Returns:
True if set successfully.
-
bool removeFluid(common::EntityId entityId)#
Removes the FluidComponent from an entity.
- Parameters:
entityId – Target entity ID.
- Returns:
True if removed; false otherwise.
-
physics::AuthoredParticleSequenceState &upsertParticleSequence(const physics::AuthoredParticleSequenceState &state)#
Creates or updates an authored particle sequence.
- Parameters:
state – Sequence state to store.
- Returns:
Reference to the stored sequence state.
-
physics::AuthoredParticleDistanceConstraintState &upsertParticleDistanceConstraint(const physics::AuthoredParticleDistanceConstraintState &state)#
Creates or updates an authored particle distance constraint.
An invalid or unknown ID creates a new constraint. Negative rest length and compliance are clamped to zero; particle references remain authored until derived state is rebuilt.
- Parameters:
state – Constraint state to store.
- Returns:
Reference to the stored constraint state.
-
bool upsertRigidParticleAttachmentConstraint(const physics::AuthoredRigidParticleAttachmentConstraintState &state, physics::AuthoredRigidParticleAttachmentConstraintState *outAuthored = nullptr)#
Creates or updates a rigid-particle attachment constraint.
Its referenced particle and rigid body must exist in the same environment. Negative compliance is clamped to zero.
- Parameters:
state – Constraint state to store.
outAuthored – Optional output receiving the stored state.
- Returns:
False for invalid/out-of-range references or different environments.
-
bool upsertStrandRigidAttachmentConstraint(const physics::AuthoredStrandRigidAttachmentConstraintState &state, physics::AuthoredStrandRigidAttachmentConstraintState *outAuthored = nullptr)#
Creates or updates a strand-rigid attachment constraint.
The strand segment and rigid body must exist in the same environment.
segmentTis clamped to [0, 1], the local rotation is normalized, and negative compliance is clamped to zero.- Returns:
False for invalid references or different environments.
-
bool upsertRigidDistanceConstraint(const physics::AuthoredRigidDistanceConstraintState &state, physics::AuthoredRigidDistanceConstraintState *outAuthored = nullptr)#
Creates or updates a rigid distance constraint.
Bodies must be distinct and in the same environment. Negative rest distance and compliance are clamped to zero.
- Returns:
False for invalid/same-body references or different environments.
-
bool upsertRoutedCableConstraint(const physics::AuthoredRoutedCableConstraintState &state, physics::AuthoredRoutedCableConstraintState *outAuthored = nullptr)#
Creates or updates a routed cable constraint.
The route needs at least two rigid-body guide points in one environment, with no consecutive duplicate bodies. Negative target length and compliance are clamped to zero.
- Returns:
False for an invalid route or guide-body reference.
-
bool upsertBallJoint(const physics::BallJointState &state)#
Creates or updates a ball joint between two rigid-body entities.
- Returns:
False unless both entities are alive, have rigid bodies, and share an environment.
-
bool upsertHingeJoint(const physics::HingeJointState &state)#
Creates or updates a hinge joint between two rigid-body entities.
- Returns:
False unless both entities are alive, have rigid bodies, and share an environment.
-
bool upsertSphericalJoint(const physics::SphericalJointState &state)#
Creates or updates a spherical joint between two rigid-body entities.
- Returns:
False unless both entities are alive, have rigid bodies, and share an environment.
-
bool upsertSliderJoint(const physics::SliderJointState &state)#
Creates or updates a slider joint between two rigid-body entities.
- Returns:
False unless both entities are alive, have rigid bodies, and share an environment.
-
physics::AuthoredParticleCollisionFilterState &upsertParticleCollisionFilter(const physics::AuthoredParticleCollisionFilterState &state)#
Creates or updates an authored particle collision filter.
An invalid or unknown filter ID creates a new filter; a zero collision layer becomes 1.
-
physics::AuthoredSuturingSequenceState &upsertSuturingSequence(const physics::AuthoredSuturingSequenceState &state)#
Creates or updates an authored suturing sequence.
Negative path-node spacing is clamped to zero and the tip index is clamped to the entries.
-
bool removeParticleDistanceConstraint(physics::ParticleConstraintId constraintId)#
Removes an authored particle distance constraint.
-
bool removeRigidParticleAttachmentConstraint(physics::RigidParticleAttachmentConstraintId constraintId)#
Removes a rigid-particle attachment constraint.
-
bool removeStrandRigidAttachmentConstraint(physics::StrandRigidAttachmentConstraintId constraintId)#
Removes a strand-rigid attachment constraint.
-
bool removeRigidDistanceConstraint(physics::RigidDistanceConstraintId constraintId)#
Removes a rigid distance constraint.
-
bool removeRoutedCableConstraint(physics::RoutedCableConstraintId constraintId)#
Removes a routed cable constraint.
-
bool removeBallJoint(physics::BallJointId jointId)#
Removes a ball joint.
-
bool removeHingeJoint(physics::HingeJointId jointId)#
Removes a hinge joint.
-
bool removeSphericalJoint(physics::SphericalJointId jointId)#
Removes a spherical joint.
-
bool removeSliderJoint(physics::SliderJointId jointId)#
Removes a slider joint.
-
bool removeParticleCollisionFilter(physics::ParticleCollisionFilterId filterId)#
Removes a particle collision filter.
-
bool removeSuturingSequence(physics::SuturingSequenceId sequenceId)#
Removes a suturing sequence.
-
void setUltrasoundProbe(common::EntityId entityId, const UltrasoundProbeComponent &component)#
Assigns or updates an enabled ultrasound probe component for an entity.
Note
Passing a disabled component removes the probe and its published result.
-
bool removeUltrasoundProbe(common::EntityId entityId)#
Removes an ultrasound probe component and its result from an entity.
-
void setUltrasoundRenderer(common::EntityId entityId, const UltrasoundRendererComponent &component)#
Assigns or updates an ultrasound renderer component for an entity.
-
bool removeUltrasoundRenderer(common::EntityId entityId)#
Removes an ultrasound renderer component and clears any published probe result.
-
void setUltrasoundScattererSource(common::EntityId entityId, const UltrasoundScattererSourceComponent &component)#
Assigns or updates an enabled ultrasound scatterer source component for an entity.
Note
Passing a disabled component removes the source and its amplitude ranges.
-
bool removeUltrasoundScattererSource(common::EntityId entityId)#
Removes an ultrasound scatterer source and its amplitude ranges from an entity.
-
void setUltrasoundScattererAmplitudeRanges(common::EntityId entityId, const std::vector<UltrasoundAmplitudeRange> &ranges)#
Sets ultrasound scatterer amplitude ranges for an entity.
Note
The entity must have a soft body and provide exactly one range per authored particle.
-
bool clearUltrasoundScattererAmplitudeRanges(common::EntityId entityId)#
Clears ultrasound scatterer amplitude ranges for an entity.
-
ColliderHandle addCollider(common::EntityId entityId, const ColliderComponent &component)#
Adds a collider to an entity with a rigid body and returns its handle.
- Returns:
An invalid handle if the entity is invalid, not alive, or has no rigid body.
-
void updateCollider(ColliderHandle handle, const ColliderComponent &component)#
Updates the component of a registered collider handle.
-
bool removeCollider(ColliderHandle handle)#
Removes a registered collider handle.
-
bool replaceColliders(common::EntityId entityId, const std::vector<ColliderComponent> &components)#
Replaces all colliders on an entity with a rigid body.
- Returns:
False if the entity is invalid, not alive, or has no rigid body.
-
bool removeMeshRenderer(common::EntityId entityId)#
Removes the mesh renderer component from an entity.
-
bool removeDirectionalLight(common::EntityId entityId)#
Removes the directional-light component from an entity.
-
std::optional<TransformComponent> tryGetTransform(common::EntityId entityId) const#
Returns the transform component for an entity, or std::nullopt.
-
std::optional<MeshRendererComponent> tryGetMeshRenderer(common::EntityId entityId) const#
Returns the mesh renderer component for an entity, or std::nullopt.
-
std::optional<CameraComponent> tryGetCamera(common::EntityId entityId) const#
Returns the camera component for an entity, or std::nullopt.
-
std::optional<DirectionalLightComponent> tryGetDirectionalLight(common::EntityId entityId) const#
Returns the directional-light component for an entity, or std::nullopt.
-
std::optional<PointLightComponent> tryGetPointLight(common::EntityId entityId) const#
Returns the point-light component for an entity, or std::nullopt.
-
std::optional<SpotLightComponent> tryGetSpotLight(common::EntityId entityId) const#
Returns the spot-light component for an entity, or std::nullopt.
-
std::optional<RigidBodyComponent> tryGetRigidBody(common::EntityId entityId) const#
Returns the rigid-body component for an entity, or std::nullopt.
-
std::optional<SoftBodyComponent> tryGetSoftBody(common::EntityId entityId) const#
Returns the soft-body component for an entity, or std::nullopt.
-
std::optional<StrandComponent> tryGetStrand(common::EntityId entityId) const#
Returns the strand component for an entity, or std::nullopt.
-
std::optional<ProceduralDeformableCurveRenderComponent> tryGetProceduralDeformableCurveRender(common::EntityId entityId) const#
Returns the procedural deformable-curve renderer for an entity, or std::nullopt.
-
std::optional<FluidComponent> tryGetFluid(common::EntityId entityId) const#
Returns the fluid component for an entity, or std::nullopt.
-
const physics::AuthoredParticleSequenceState *tryGetParticleSequence(physics::ParticleSequenceId sequenceId) const noexcept#
Returns an authored particle sequence by ID, or nullptr.
-
const physics::AuthoredParticleDistanceConstraintState *tryGetParticleDistanceConstraint(physics::ParticleConstraintId constraintId) const noexcept#
Returns an authored particle distance constraint by ID, or nullptr.
-
const physics::AuthoredRigidParticleAttachmentConstraintState *tryGetRigidParticleAttachmentConstraint(physics::RigidParticleAttachmentConstraintId constraintId) const noexcept#
Returns a rigid-particle attachment constraint by ID, or nullptr.
-
const physics::AuthoredStrandRigidAttachmentConstraintState *tryGetStrandRigidAttachmentConstraint(physics::StrandRigidAttachmentConstraintId constraintId) const noexcept#
Returns a strand-rigid attachment constraint by ID, or nullptr.
-
const physics::AuthoredRigidDistanceConstraintState *tryGetRigidDistanceConstraint(physics::RigidDistanceConstraintId constraintId) const noexcept#
Returns a rigid distance constraint by ID, or nullptr.
-
const physics::AuthoredRoutedCableConstraintState *tryGetRoutedCableConstraint(physics::RoutedCableConstraintId constraintId) const noexcept#
Returns a routed cable constraint by ID, or nullptr.
-
const physics::BallJointState *tryGetBallJoint(physics::BallJointId jointId) const noexcept#
Returns a ball joint by ID, or nullptr.
-
const physics::HingeJointState *tryGetHingeJoint(physics::HingeJointId jointId) const noexcept#
Returns a hinge joint by ID, or nullptr.
-
const physics::SphericalJointState *tryGetSphericalJoint(physics::SphericalJointId jointId) const noexcept#
Returns a spherical joint by ID, or nullptr.
-
const physics::SliderJointState *tryGetSliderJoint(physics::SliderJointId jointId) const noexcept#
Returns a slider joint by ID, or nullptr.
-
const physics::AuthoredParticleCollisionFilterState *tryGetParticleCollisionFilter(physics::ParticleCollisionFilterId filterId) const noexcept#
Returns an authored particle collision filter by ID, or nullptr.
-
const physics::AuthoredSuturingSequenceState *tryGetSuturingSequence(physics::SuturingSequenceId sequenceId) const noexcept#
Returns an authored suturing sequence by ID, or nullptr.
-
std::optional<UltrasoundProbeComponent> tryGetUltrasoundProbe(common::EntityId entityId) const#
Returns the ultrasound probe component for an entity, or std::nullopt.
-
std::optional<UltrasoundRendererComponent> tryGetUltrasoundRenderer(common::EntityId entityId) const#
Returns the ultrasound renderer component for an entity, or std::nullopt.
-
std::optional<UltrasoundScattererSourceComponent> tryGetUltrasoundScattererSource(common::EntityId entityId) const#
Returns the ultrasound scatterer source component for an entity, or std::nullopt.
-
std::optional<SoftBodyAuthoringParticles> tryGetSoftBodyAuthoringParticles(common::EntityId entityId) const#
Returns authored rest positions for a soft body, or std::nullopt.
-
const std::vector<UltrasoundAmplitudeRange> *tryGetUltrasoundScattererAmplitudeRanges(common::EntityId entityId) const noexcept#
Returns ultrasound scatterer amplitude ranges for an entity, or nullptr.
-
const UltrasoundProbeResult *tryGetUltrasoundProbeResult(common::EntityId entityId) const noexcept#
Returns the most recently published ultrasound probe result, or nullptr.
-
std::optional<ColliderComponent> tryGetCollider(ColliderHandle handle) const#
Returns the component for a registered collider handle, or std::nullopt.
-
const std::vector<ColliderHandle> &colliderHandles(common::EntityId entityId) const#
Returns collider handles belonging to an entity.
- Returns:
An empty shared list when the entity has no collider links.
-
physics::PhysicsWorld &physicsWorld() noexcept#
Gets a reference to the internal PhysicsWorld instance.
- Returns:
Reference to PhysicsWorld.
-
const physics::PhysicsWorld &physicsWorld() const noexcept#
Gets a const reference to the internal PhysicsWorld instance.
- Returns:
Const reference to PhysicsWorld.
-
void setGpuEntityScene(const graphics::GpuEntitySceneView &sceneView) noexcept#
Sets the GPU scene view used by render-state accessors.
-
const std::vector<graphics::RenderableInstance> &renderables() const noexcept#
Returns authored renderable instances.
-
const std::vector<graphics::CameraData> &cameras() const noexcept#
Returns authored camera data.
-
std::uint32_t entityPoseSlot(common::EntityId entityId) const noexcept#
Returns an entity’s pose slot, or an invalid slot when none is assigned.
-
const std::vector<Diligent::float4> &entityPosePositions() const noexcept#
Returns entity-pose positions prepared for GPU upload.
-
const std::vector<Diligent::float4> &entityPoseOrientations() const noexcept#
Returns entity-pose orientations prepared for GPU upload.
-
const std::vector<Diligent::float4> &entityPoseScales() const noexcept#
Returns entity-pose scales prepared for GPU upload.
-
const std::vector<Diligent::float4> &renderObjectPositions() const noexcept#
Returns render-object positions prepared for GPU upload.
-
const std::vector<Diligent::float4> &renderObjectOrientations() const noexcept#
Returns render-object orientations prepared for GPU upload.
-
const std::vector<Diligent::float4> &renderObjectScales() const noexcept#
Returns render-object scales prepared for GPU upload.
-
const std::vector<graphics::GpuRenderableMetadata> &renderableMetadata() const noexcept#
Returns renderable metadata prepared for GPU upload.
-
const std::vector<graphics::GpuRenderableQueueInfo> &renderableQueueInfo() const noexcept#
Returns renderable queue information prepared for GPU upload.
-
const std::vector<graphics::GpuCameraInput> &cameraInputs() const noexcept#
Returns camera inputs prepared for GPU upload.
-
const std::vector<graphics::GpuLightInput> &lightInputs() const noexcept#
Returns light inputs prepared for GPU upload.
-
const std::vector<graphics::GpuLocalLightSelection> &localLightSelections() const noexcept#
Returns per-environment local-light selections prepared for GPU upload.
-
const std::vector<graphics::GpuSoftBodyVertexBinding> &softBodyVertexBindings() const noexcept#
Returns soft-body vertex bindings prepared for GPU upload.
-
const std::vector<graphics::IndirectCommandRegistryEntry> &opaqueDrawRegistry() const noexcept#
Returns the opaque indirect-draw registry.
-
const std::vector<graphics::TransparentDrawEntry> &transparentDrawRegistry() const noexcept#
Returns the transparent draw registry.
-
const std::vector<graphics::IndirectCommandRegistryEntry> &shadowDrawRegistry() const noexcept#
Returns the directional-shadow indirect-draw registry.
-
const std::vector<graphics::IndirectCommandRegistryEntry> &localShadowDrawRegistry() const noexcept#
Returns the local-light-shadow indirect-draw registry.
-
const std::vector<EntityPoseMappingEntry> &physicsRenderableMappings()#
Returns mappings between physics bodies and renderables, rebuilding them if needed.
-
std::uint64_t entityPoseRevision() const noexcept#
Returns the entity-pose data revision.
-
std::uint64_t renderableMetadataRevision() const noexcept#
Returns the renderable-metadata revision.
-
std::uint64_t renderableQueueInfoRevision() const noexcept#
Returns the renderable-queue revision.
-
std::uint64_t softBodyVertexBindingRevision() const noexcept#
Returns the soft-body vertex-binding revision.
-
std::uint64_t cameraInputRevision() const noexcept#
Returns the camera-input revision.
-
std::uint64_t lightInputRevision() const noexcept#
Returns the light-input revision.
-
std::uint64_t localLightSelectionRevision() const noexcept#
Returns the local-light-selection revision.
-
const graphics::GpuEntitySceneView &gpuEntityScene() const noexcept#
Returns the GPU entity-scene view.
-
graphics::HostSceneView hostSceneView() const noexcept#
Returns an immutable bundle of host scene data for rendering.
-
void ensureRenderStateUpToDate(const graphics::RenderResourceManager &resources)#
Updates render state derived from authored world and resource state.
-
const std::unordered_map<common::EntityId, UltrasoundProbeComponent> &ultrasoundProbeComponents() const noexcept#
Returns ultrasound probe components keyed by entity ID.
-
const std::unordered_map<common::EntityId, UltrasoundRendererComponent> &ultrasoundRendererComponents() const noexcept#
Returns ultrasound renderer components keyed by entity ID.
-
const std::unordered_map<common::EntityId, UltrasoundScattererSourceComponent> &ultrasoundScattererSourceComponents() const noexcept#
Returns ultrasound scatterer source components keyed by entity ID.
-
std::uint64_t ultrasoundScattererAmplitudeRevision() const noexcept#
Returns the ultrasound scatterer-amplitude revision.
-
void setUltrasoundProbeResult(common::EntityId entityId, const UltrasoundProbeResult &result)#
Publishes an ultrasound probe result under an entity ID without validating it.
-
void clearUltrasoundProbeResult(common::EntityId entityId)#
Clears a published ultrasound probe result for an entity ID, if present.
-
bool removeParticleSequence(physics::ParticleSequenceId sequenceId)#
Removes an authored particle sequence.
-
using ColliderHandle = engine::ColliderHandle#
-
enum class CustomComputeResourceKind#