PhysicsObject
-
class PhysicsObject
Bases:
TypedReferenceCount
A body on which physics will be applied. If you’re looking to add physical motion to your class, do NOT derive from this. Derive from Physical instead.
Inheritance diagram
-
PhysicsObject(void)
-
PhysicsObject(PhysicsObject const ©)
Default Constructor
copy constructor
-
virtual void add_impact(LPoint3 const &offset_from_center_of_mass, LVector3 const &impulse)
Adds an impulse and/or torque (i.e. an instantanious change in velocity) based on how well the offset and impulse align with the center of mass (aka position). If you wanted to immitate this function you could work out the impulse and torque and call
add_impulse
andadd_torque
respectively. offset and force are in global (or parent) coordinates.
-
void add_impulse(LVector3 const &impulse)
Adds an impulse force (i.e. an instantanious change in velocity). This is a quicker way to get the velocity, add a vector to it and set that value to be the new velocity.
-
virtual void add_local_impact(LPoint3 const &offset_from_center_of_mass, LVector3 const &impulse)
Adds an impulse and/or torque (i.e. an instantanious change in velocity) based on how well the offset and impulse align with the center of mass (aka position). If you wanted to immitate this function you could work out the impulse and torque and call
add_impulse
andadd_torque
respectively. offset and force are in local coordinates.
-
void add_local_impulse(LVector3 const &impulse)
Adds an impulse force (i.e. an instantanious change in velocity). This is a quicker way to get the velocity, add a vector to it and set that value to be the new velocity.
-
void add_local_torque(LRotation const &torque)
Local instantanious forces
Adds an torque force (i.e. an instantanious change in velocity). This is a quicker way to get the angular velocity, add a vector to it and set that value to be the new angular velocity.
-
void add_torque(LRotation const &torque)
Global instantanious forces
Adds an torque force (i.e. an instantanious change in velocity). This is a quicker way to get the angular velocity, add a vector to it and set that value to be the new angular velocity.
-
bool get_active(void) const
Process Flag Query
-
static TypeHandle get_class_type(void)
-
virtual LMatrix4 get_inertial_tensor(void) const
returns a transform matrix that represents the object’s willingness to be forced.
-
LPoint3 get_last_position(void) const
Get the position of the physics object at the start of the most recent do_physics.
-
virtual LMatrix4 get_lcs(void) const
returns a transform matrix to this object’s local coordinate system.
-
PN_stdfloat get_mass(void) const
Get the mass in slugs (or kilograms).
-
std::string const &get_name(void)
-
LOrientation get_orientation(void) const
get current orientation.
-
bool get_oriented(void) const
See
set_oriented()
.
-
PN_stdfloat get_terminal_velocity(void) const
tv query
-
virtual PhysicsObject *make_copy(void) const
dynamic copy.
-
virtual void output(std::ostream &out) const
Write a string representation of this instance to <out>.
-
void reset_orientation(LOrientation const &orientation)
set the orientation while clearing the rotation velocity.
-
void reset_position(LPoint3 const &pos)
use this to place an object in a completely new position, that has nothing to do with its last position.
-
void set_active(bool flag)
Process Flag assignment
-
void set_mass(PN_stdfloat)
Set the mass in slugs (or kilograms).
-
void set_name(std::string const &name)
-
void set_orientation(LOrientation const &orientation)
-
void set_oriented(bool flag)
Set flag to determine whether this object should do any rotation or orientation calculations. Optimization.
-
void set_position(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
INLINE void set_center_of_mass(const
LPoint3
&pos); use set_position.INLINE void set_center_of_mass(const
LPoint3
&pos); use set_position.Vector position assignment. This is also used as the center of mass.
Piecewise position assignment
-
void set_terminal_velocity(PN_stdfloat tv)
tv assignment
-
void set_velocity(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
Vector velocity assignment
Piecewise velocity assignment
-
virtual void write(std::ostream &out, int indent = 0) const
Write a string representation of this instance to <out>.
-
PhysicsObject(void)