JSim 2026.06.01-p(1)
Loading...
Searching...
No Matches
frcsim::EnvironmentalBoundary Struct Reference

Collision or constraint boundary definition used by PhysicsWorld. More...

#include <boundary.hpp>

Public Member Functions

const Vector3normal () 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.

Detailed Description

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.

Member Function Documentation

◆ normal()

const Vector3 & frcsim::EnvironmentalBoundary::normal ( ) const
inline

Returns a default world-space normal vector.

Returns
Const reference to a {0, 0, 1} unit vector.
Note
This is a placeholder helper. A future implementation can compute orientation-aware normals per boundary geometry and contact point.

Member Data Documentation

◆ behavior

BoundaryBehavior frcsim::EnvironmentalBoundary::behavior {BoundaryBehavior::kStaticConstraint}

Boundary interaction behavior mode.

◆ collision_layer_bits

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).

◆ collision_mask_bits

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).

◆ friction_coefficient

double frcsim::EnvironmentalBoundary::friction_coefficient {0.7}

Tangential friction coefficient for contact response.

Values are typically >= 0. Higher values reduce tangential slip.

◆ half_extents_m

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.

◆ is_active

bool frcsim::EnvironmentalBoundary::is_active {true}

Active flag for enabling/disabling participation without removal.

◆ material_id

std::int32_t frcsim::EnvironmentalBoundary::material_id {0}

Numeric material id used by world material interaction lookup.

◆ orientation

Quaternion frcsim::EnvironmentalBoundary::orientation {}

World-space boundary orientation.

Used for oriented primitives and for future generalized normal queries.

◆ position_m

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).

◆ radius_m

double frcsim::EnvironmentalBoundary::radius_m {1.0}

Radius in meters for cylindrical or radial primitives.

Should be non-negative.

◆ restitution

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.

◆ type

BoundaryType frcsim::EnvironmentalBoundary::type {BoundaryType::kWall}

Geometry primitive type that determines shape semantics.

◆ user_id

int frcsim::EnvironmentalBoundary::user_id {0}

Application-defined identifier for scenario-specific routing.

Not interpreted by core physics logic.


The documentation for this struct was generated from the following file: