|
JSim 2026.06.01-p(1)
|
Collision or constraint boundary definition used by PhysicsWorld. More...
#include <boundary.hpp>
Public Member Functions | |
| const Vector3 & | normal () const |
| Returns a default world-space normal vector. | |
Public Attributes | |
| BoundaryType | type {BoundaryType::kWall} |
| Geometry primitive type that determines shape semantics. | |
| BoundaryBehavior | behavior {BoundaryBehavior::kStaticConstraint} |
| Boundary interaction behavior mode. | |
| Vector3 | position_m {} |
| World-space boundary origin/center in meters. | |
| Quaternion | orientation {} |
| World-space boundary orientation. | |
| Vector3 | half_extents_m {1.0, 1.0, 1.0} |
| Half extents in meters for box-like boundaries. | |
| double | radius_m {1.0} |
| Radius in meters for cylindrical or radial primitives. | |
| double | restitution {0.5} |
| Coefficient of restitution (bounce response). | |
| double | friction_coefficient {0.7} |
| Tangential friction coefficient for contact response. | |
| int | user_id {0} |
| Application-defined identifier for scenario-specific routing. | |
| std::int32_t | material_id {0} |
| Numeric material id used by world material interaction lookup. | |
| std::uint32_t | collision_layer_bits {0xFFFFFFFFu} |
| Broad-phase layer bitset for this boundary. | |
| std::uint32_t | collision_mask_bits {0xFFFFFFFFu} |
| Broad-phase mask bitset for this boundary. | |
| bool | is_active {true} |
| Active flag for enabling/disabling participation without removal. | |
Collision or constraint boundary definition used by PhysicsWorld.
This structure captures geometry, transform, contact coefficients, and broad filtering metadata for world boundaries. It is intentionally POD-like to keep setup and serialization straightforward for JNI/FFI bridges.
|
inline |
Returns a default world-space normal vector.
| BoundaryBehavior frcsim::EnvironmentalBoundary::behavior {BoundaryBehavior::kStaticConstraint} |
Boundary interaction behavior mode.
| std::uint32_t frcsim::EnvironmentalBoundary::collision_layer_bits {0xFFFFFFFFu} |
Broad-phase layer bitset for this boundary.
Defaults to all bits set (interacts with all layers unless masked out).
| std::uint32_t frcsim::EnvironmentalBoundary::collision_mask_bits {0xFFFFFFFFu} |
Broad-phase mask bitset for this boundary.
Defaults to all bits set (accepts all layers unless masked out).
| double frcsim::EnvironmentalBoundary::friction_coefficient {0.7} |
Tangential friction coefficient for contact response.
Values are typically >= 0. Higher values reduce tangential slip.
| Vector3 frcsim::EnvironmentalBoundary::half_extents_m {1.0, 1.0, 1.0} |
Half extents in meters for box-like boundaries.
Components should be non-negative.
| bool frcsim::EnvironmentalBoundary::is_active {true} |
Active flag for enabling/disabling participation without removal.
| std::int32_t frcsim::EnvironmentalBoundary::material_id {0} |
Numeric material id used by world material interaction lookup.
| Quaternion frcsim::EnvironmentalBoundary::orientation {} |
World-space boundary orientation.
Used for oriented primitives and for future generalized normal queries.
| Vector3 frcsim::EnvironmentalBoundary::position_m {} |
World-space boundary origin/center in meters.
Interpretation depends on type (for example, plane anchor point versus box/cylinder center).
| double frcsim::EnvironmentalBoundary::radius_m {1.0} |
Radius in meters for cylindrical or radial primitives.
Should be non-negative.
| double frcsim::EnvironmentalBoundary::restitution {0.5} |
Coefficient of restitution (bounce response).
Typical range is [0, 1], where 0 is fully inelastic and 1 is perfectly elastic under simplified contact assumptions.
| BoundaryType frcsim::EnvironmentalBoundary::type {BoundaryType::kWall} |
Geometry primitive type that determines shape semantics.
| int frcsim::EnvironmentalBoundary::user_id {0} |
Application-defined identifier for scenario-specific routing.
Not interpreted by core physics logic.