27 axis_local_(axis_local.normalized()) {}
31 void setLimits(
double min_displacement_m,
double max_displacement_m) {
33 min_displacement_m_ = min_displacement_m;
34 max_displacement_m_ = max_displacement_m;
42 motor_target_velocity_mps_ = target_velocity_mps;
43 motor_max_force_n_ = max_force_n;
55 bool has_limits_{
false};
56 double min_displacement_m_{0.0};
57 double max_displacement_m_{0.0};
59 bool has_motor_{
false};
60 double motor_target_velocity_mps_{0.0};
61 double motor_max_force_n_{0.0};
JointBase(JointType type, RigidBody *body_a, RigidBody *body_b)
Definition joint_base.hpp:71
double maxDisplacement() const
Definition prismatic_joint.hpp:38
bool hasLimits() const
Definition prismatic_joint.hpp:36
double constraintError() const override
double motorTargetVelocity() const
Definition prismatic_joint.hpp:46
bool hasMotor() const
Definition prismatic_joint.hpp:45
const Vector3 & axisLocal() const
Definition prismatic_joint.hpp:29
void setMotorTarget(double target_velocity_mps, double max_force_n)
Definition prismatic_joint.hpp:40
double motorMaxForce() const
Definition prismatic_joint.hpp:47
PrismaticJoint(RigidBody *body_a, RigidBody *body_b, const Vector3 &axis_local)
Definition prismatic_joint.hpp:24
double minDisplacement() const
Definition prismatic_joint.hpp:37
void setLimits(double min_displacement_m, double max_displacement_m)
Definition prismatic_joint.hpp:31
void solveConstraint(double dt_s, int iterations) override
Simulated rigid body with translational/angular dynamics and optional aero metadata.
Definition rigid_body.hpp:44
JointType
Definition joint_base.hpp:13
@ kPrismatic
Definition joint_base.hpp:15
3D vector utility used throughout JSim physics.
Definition vector.hpp:22
static constexpr Vector3 unitX() noexcept
Returns the +X basis vector.
Definition vector.hpp:392