23 void PhysxWheelShape::
24 link(NxShape *shapePtr) {
26 _ptr = shapePtr->isWheel();
27 _ptr->userData =
this;
33 actor->_shapes.add(
this);
39 void PhysxWheelShape::
42 _ptr->userData =
nullptr;
43 _error_type = ET_released;
46 actor->_shapes.remove(
this);
55 nassertv(_error_type == ET_ok);
56 _ptr->saveToDesc(shapeDesc._desc);
65 nassertv(_error_type == ET_ok);
66 _ptr->setRadius(radius);
75 nassertr(_error_type == ET_ok, 0.0f);
76 return _ptr->getRadius();
86 nassertv(_error_type == ET_ok);
87 _ptr->setSuspensionTravel(travel);
96 nassertr(_error_type == ET_ok, 0.0f);
97 return _ptr->getSuspensionTravel();
107 nassertv(_error_type == ET_ok);
108 _ptr->setInverseWheelMass(invMass);
118 nassertr(_error_type == ET_ok, 0.0f);
119 return _ptr->getInverseWheelMass();
129 nassertv(_error_type == ET_ok);
130 _ptr->setMotorTorque(torque);
140 nassertr(_error_type == ET_ok, 0.0f);
141 return _ptr->getMotorTorque();
151 nassertv(_error_type == ET_ok);
152 _ptr->setBrakeTorque(torque);
162 nassertr(_error_type == ET_ok, 0.0f);
163 return _ptr->getBrakeTorque();
173 nassertv(_error_type == ET_ok);
174 _ptr->setSteerAngle(NxMath::degToRad(-1.0f * angle));
184 nassertr(_error_type == ET_ok, 0.0f);
185 return -1.0f * NxMath::radToDeg(_ptr->getSteerAngle());
195 nassertv(_error_type == ET_ok);
196 _ptr->setSteerAngle(-1.0f * angle);
206 nassertr(_error_type == ET_ok, 0.0f);
207 return -1.0f * _ptr->getSteerAngle();
217 nassertv(_error_type == ET_ok);
218 _ptr->setAxleSpeed(speed);
227 nassertr(_error_type == ET_ok, 0.0f);
228 return _ptr->getAxleSpeed();
237 nassertv(_error_type == ET_ok);
238 NxU32 flags = _ptr->getWheelFlags();
246 _ptr->setWheelFlags(flags);
255 nassertr(_error_type == ET_ok,
false);
256 return (_ptr->getWheelFlags() & flag) ?
true :
false;
265 nassertv(_error_type == ET_ok);
266 return _ptr->setSuspension(spring._desc);
void set_suspension_travel(float travel)
Set the maximum extension distance of suspension along shape's -Y axis.
float get_steer_angle() const
Retrieves the steering angle, around shape Y axis.
float get_motor_torque() const
Retrieves the sum engine torque on the wheel axle.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Describes a joint spring.
bool get_wheel_flag(PhysxWheelShapeFlag flag) const
Returns the value of the specified wheel shape flag.
float get_radius() const
Returns the radius of the sphere.
void set_inverse_wheel_mass(float invMass)
Set the inverse mass of the wheel.
void set_brake_torque(float torque)
Must be nonnegative.
float get_inverse_wheel_mass() const
Returns the inverse mass of the wheel.
void set_radius(float radius)
Sets the sphere radius.
float get_brake_torque() const
Must be nonnegative.
void save_to_desc(PhysxWheelShapeDesc &shapeDesc) const
Saves the state of the shape object to a descriptor.
void set_wheel_flag(PhysxWheelShapeFlag flag, bool value)
Turns the specified wheel shape flag on or off.
float get_suspension_travel() const
Returns the suspension travel.
Descriptor class for PhysxWheelShape.
Actors are the main simulation objects.
float get_axle_speed() const
Retrieves the current axle rotation speed.
void set_motor_torque(float torque)
Set the sum engine torque on the wheel axle.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void set_suspension(const PhysxSpringDesc &spring)
Set the data intended for car wheel suspension effects.
void set_name(const char *name)
Sets a name string for this object.
void set_steer_angle(float angle)
Set the steering angle, around shape Y axis.
TypeHandle is the identifier used to differentiate C++ class types.
void set_steer_angle_rad(float angle)
Set the steering angle, around shape Y axis.
void set_axle_speed(float speed)
Set the current axle rotation speed.
float get_steer_angle_rad() const
Retrieves the steering angle, around shape Y axis.