44 double wall_height_m,
double restitution = 0.25,
double friction = 0.6) {
45 const double mid_x = 0.5 * (min_corner_m.
x + max_corner_m.
x);
46 const double mid_y = 0.5 * (min_corner_m.
y + max_corner_m.
y);
47 const double half_x = 0.5 * (max_corner_m.
x - min_corner_m.
x);
48 const double half_y = 0.5 * (max_corner_m.
y - min_corner_m.
y);
49 const double half_h = std::max(0.05, 0.5 * wall_height_m);
54 restitution, friction),
57 restitution, friction),
60 restitution, friction),
63 restitution, friction),
static FieldObstacle makeBox(const Vector3 ¢er_m, const Vector3 &half_extents_m, const Quaternion &orientation=Quaternion(), double restitution=0.3, double friction=0.6, int user_id=0)
Creates an oriented box obstacle.
Definition obstacle.hpp:73
Helper factory for perimeter wall obstacles.
Definition field_wall.hpp:25
static std::array< FieldObstacle, 4 > makeAxisAlignedPerimeter(const Vector3 &min_corner_m, const Vector3 &max_corner_m, double wall_height_m, double restitution=0.25, double friction=0.6)
Creates four axis-aligned box walls around a rectangular field footprint.
Definition field_wall.hpp:42
Unit-quaternion rotation representation and rotation algebra helpers.
Definition quaternion.hpp:25
3D vector utility used throughout JSim physics.
Definition vector.hpp:22
double x
X component.
Definition vector.hpp:24
double y
Y component.
Definition vector.hpp:26