37class EXPCL_PANDA_PHYSICS
Physical :
public TypedReferenceCount {
44 explicit Physical(
int total_objects = 1,
bool pre_alloc =
false);
50 INLINE PhysicsManager *get_physics_manager()
const;
51 INLINE PhysicalNode *get_physical_node()
const;
52 INLINE
NodePath get_physical_node_path()
const;
64 INLINE
int get_num_linear_forces()
const;
65 INLINE PT(
LinearForce) get_linear_force(
int index)
const;
66 MAKE_SEQ(get_linear_forces, get_num_linear_forces, get_linear_force);
67 MAKE_SEQ_PROPERTY(linear_forces, get_num_linear_forces, get_linear_force);
68 INLINE
int get_num_angular_forces()
const;
69 INLINE PT(
AngularForce) get_angular_force(
int index)
const;
70 MAKE_SEQ(get_angular_forces, get_num_angular_forces, get_angular_force);
71 MAKE_SEQ_PROPERTY(angular_forces, get_num_angular_forces, get_angular_force);
73 INLINE
void set_viscosity(PN_stdfloat viscosity);
78 MAKE_PROPERTY(objects, get_objects);
80 virtual void output(std::ostream &out = std::cout)
const;
82 std::ostream &out = std::cout,
int indent=0)
const;
84 std::ostream &out = std::cout,
int indent=0)
const;
86 std::ostream &out = std::cout,
int indent=0)
const;
87 virtual void write(std::ostream &out = std::cout,
int indent=0)
const;
90 INLINE
const PhysicsObject::Vector &get_object_vector()
const;
91 INLINE
const LinearForceVector &get_linear_forces()
const;
92 INLINE
const AngularForceVector &get_angular_forces()
const;
94 friend class PhysicsManager;
95 friend class PhysicalNode;
98 PN_stdfloat _viscosity;
100 PhysicsObject::Vector _physics_objects;
101 LinearForceVector _linear_forces;
102 AngularForceVector _angular_forces;
112 PhysicsManager *_physics_manager;
113 PhysicalNode *_physical_node;
119 static void init_type() {
120 TypedReferenceCount::init_type();
122 TypedReferenceCount::get_class_type());
124 virtual TypeHandle get_type()
const {
125 return get_class_type();
127 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
130 static TypeHandle _type_handle;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
pure virtual parent of all quat-based forces.
A force that acts on a PhysicsObject by way of an Integrator.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
Graph node that encapsulated a series of physical objects.
virtual void write_physics_objects(std::ostream &out=std::cout, int indent=0) const
Write a string representation of this instance to <out>.
virtual void write_linear_forces(std::ostream &out=std::cout, int indent=0) const
Write a string representation of this instance to <out>.
void clear_physics_objects()
Erases the object list.
get_viscosity
Get the local viscosity.
void clear_angular_forces()
Erases the angular force list.
void add_linear_force(LinearForce *f)
Adds a linear force to the force list.
Physical(int total_objects=1, bool pre_alloc=false)
Default Constructor The idea here is that most physicals will NOT be collections of sets (i....
virtual void write(std::ostream &out=std::cout, int indent=0) const
Write a string representation of this instance to <out>.
void add_angular_force(AngularForce *f)
Adds an angular force to the force list.
void clear_linear_forces()
Erases the linear force list.
void add_physics_object(PhysicsObject *po)
Adds an object to the physics object vector.
void remove_angular_force(AngularForce *f)
removes an angular force from the force list
void remove_linear_force(LinearForce *f)
removes a linear force from the force list
virtual void output(std::ostream &out=std::cout) const
Write a string representation of this instance to <out>.
virtual void write_angular_forces(std::ostream &out=std::cout, int indent=0) const
Write a string representation of this instance to <out>.
Physics don't get much higher-level than this.
This is a set of zero or more PhysicsObjects.
A body on which physics will be applied.
TypeHandle is the identifier used to differentiate C++ class types.
std::ostream & indent(std::ostream &out, int indent_level)
A handy function for doing text formatting.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.