15 #include "physxWheelShape.h"
16 #include "physxWheelShapeDesc.h"
17 #include "physxSpringDesc.h"
26 void PhysxWheelShape::
27 link(NxShape *shapePtr) {
29 _ptr = shapePtr->isWheel();
30 _ptr->userData =
this;
36 actor->_shapes.add(
this);
44 void PhysxWheelShape::
47 _ptr->userData = NULL;
48 _error_type = ET_released;
51 actor->_shapes.remove(
this);
63 nassertv(_error_type == ET_ok);
64 _ptr->saveToDesc(shapeDesc._desc);
75 nassertv(_error_type == ET_ok);
76 _ptr->setRadius(radius);
87 nassertr(_error_type == ET_ok, 0.0f);
88 return _ptr->getRadius();
101 nassertv(_error_type == ET_ok);
102 _ptr->setSuspensionTravel(travel);
113 nassertr(_error_type == ET_ok, 0.0f);
114 return _ptr->getSuspensionTravel();
126 nassertv(_error_type == ET_ok);
127 _ptr->setInverseWheelMass(invMass);
139 nassertr(_error_type == ET_ok, 0.0f);
140 return _ptr->getInverseWheelMass();
152 nassertv(_error_type == ET_ok);
153 _ptr->setMotorTorque(torque);
165 nassertr(_error_type == ET_ok, 0.0f);
166 return _ptr->getMotorTorque();
178 nassertv(_error_type == ET_ok);
179 _ptr->setBrakeTorque(torque);
191 nassertr(_error_type == ET_ok, 0.0f);
192 return _ptr->getBrakeTorque();
204 nassertv(_error_type == ET_ok);
205 _ptr->setSteerAngle(NxMath::degToRad(-1.0f * angle));
217 nassertr(_error_type == ET_ok, 0.0f);
218 return -1.0f * NxMath::radToDeg(_ptr->getSteerAngle());
230 nassertv(_error_type == ET_ok);
231 _ptr->setSteerAngle(-1.0f * angle);
243 nassertr(_error_type == ET_ok, 0.0f);
244 return -1.0f * _ptr->getSteerAngle();
257 nassertv(_error_type == ET_ok);
258 _ptr->setAxleSpeed(speed);
269 nassertr(_error_type == ET_ok, 0.0f);
270 return _ptr->getAxleSpeed();
281 nassertv(_error_type == ET_ok);
282 NxU32 flags = _ptr->getWheelFlags();
290 _ptr->setWheelFlags(flags);
302 nassertr(_error_type == ET_ok,
false);
303 return (_ptr->getWheelFlags() & flag) ?
true :
false;
315 nassertv(_error_type == ET_ok);
316 return _ptr->setSuspension(spring._desc);
float get_steer_angle_rad() const
Retrieves the steering angle, around shape Y axis.
void set_suspension_travel(float travel)
Set the maximum extension distance of suspension along shape's -Y axis.
float get_axle_speed() const
Retrieves the current axle rotation speed.
float get_motor_torque() const
Retrieves the sum engine torque on the wheel axle.
float get_brake_torque() const
Must be nonnegative.
Describes a joint spring.
void save_to_desc(PhysxWheelShapeDesc &shapeDesc) const
Saves the state of the shape object to a descriptor.
void set_inverse_wheel_mass(float invMass)
Set the inverse mass of the wheel.
void set_brake_torque(float torque)
Must be nonnegative.
void set_radius(float radius)
Sets the sphere radius.
bool get_wheel_flag(PhysxWheelShapeFlag flag) const
Returns the value of the specified wheel shape flag.
void set_wheel_flag(PhysxWheelShapeFlag flag, bool value)
Turns the specified wheel shape flag on or off.
Descriptor class for PhysxWheelShape.
float get_steer_angle() const
Retrieves the steering angle, around shape Y axis.
Actors are the main simulation objects.
void set_motor_torque(float torque)
Set the sum engine torque on the wheel axle.
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.
float get_inverse_wheel_mass() const
Returns the inverse mass of the wheel.
float get_suspension_travel() const
Returns the suspension travel.
void set_steer_angle(float angle)
Set the steering angle, around shape Y axis.
TypeHandle is the identifier used to differentiate C++ class types.
float get_radius() const
Returns the radius of the sphere.
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.