JSim 2026.06.01-p(1)
Loading...
Searching...
No Matches
boundary.hpp
Go to the documentation of this file.
1// Copyright (c) JSim contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the LGPLv3 license file in the root directory of this project.
4
5#pragma once
6
7#include <cstdint>
8
11
12namespace frcsim {
13
30
43
54
57
65
72
78 Vector3 half_extents_m{1.0, 1.0, 1.0};
79
85 double radius_m{1.0};
86
93 double restitution{0.5};
94
101
107 int user_id{0};
108
112 std::int32_t material_id{0};
113
119 std::uint32_t collision_layer_bits{0xFFFFFFFFu};
120
126 std::uint32_t collision_mask_bits{0xFFFFFFFFu};
127
131 bool is_active{true};
132
140 const Vector3& normal() const {
141 static const Vector3 default_normal(0.0, 0.0, 1.0);
142 return default_normal;
143 }
144};
145
146} // namespace frcsim
Definition vector.hpp:13
BoundaryType
Supported environmental boundary geometry kinds.
Definition boundary.hpp:20
@ kBox
Box primitive (axis-aligned or oriented via quaternion).
Definition boundary.hpp:26
@ kWall
Finite wall-like barrier primitive.
Definition boundary.hpp:22
@ kPlane
Infinite plane constraint primitive.
Definition boundary.hpp:24
@ kCylinder
Cylindrical primitive (for posts, exclusion zones, etc.).
Definition boundary.hpp:28
BoundaryBehavior
Boundary interaction mode.
Definition boundary.hpp:37
@ kRigidBody
Treat boundary as a rigid collision participant.
Definition boundary.hpp:39
@ kStaticConstraint
Treat boundary as a fast static constraint surface.
Definition boundary.hpp:41
Collision or constraint boundary definition used by PhysicsWorld.
Definition boundary.hpp:51
int user_id
Application-defined identifier for scenario-specific routing.
Definition boundary.hpp:107
bool is_active
Active flag for enabling/disabling participation without removal.
Definition boundary.hpp:131
double friction_coefficient
Tangential friction coefficient for contact response.
Definition boundary.hpp:100
Vector3 position_m
World-space boundary origin/center in meters.
Definition boundary.hpp:64
std::uint32_t collision_layer_bits
Broad-phase layer bitset for this boundary.
Definition boundary.hpp:119
const Vector3 & normal() const
Returns a default world-space normal vector.
Definition boundary.hpp:140
BoundaryType type
Geometry primitive type that determines shape semantics.
Definition boundary.hpp:53
double restitution
Coefficient of restitution (bounce response).
Definition boundary.hpp:93
double radius_m
Radius in meters for cylindrical or radial primitives.
Definition boundary.hpp:85
Vector3 half_extents_m
Half extents in meters for box-like boundaries.
Definition boundary.hpp:78
BoundaryBehavior behavior
Boundary interaction behavior mode.
Definition boundary.hpp:56
std::uint32_t collision_mask_bits
Broad-phase mask bitset for this boundary.
Definition boundary.hpp:126
std::int32_t material_id
Numeric material id used by world material interaction lookup.
Definition boundary.hpp:112
Quaternion orientation
World-space boundary orientation.
Definition boundary.hpp:71
Unit-quaternion rotation representation and rotation algebra helpers.
Definition quaternion.hpp:25
3D vector utility used throughout JSim physics.
Definition vector.hpp:22