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);