14#ifndef LINEARDISTANCEFORCE_H
15#define LINEARDISTANCEFORCE_H
24class EXPCL_PANDA_PHYSICS LinearDistanceForce :
public LinearForce {
28 FT_ONE_OVER_R_SQUARED,
42 virtual void output(std::ostream &out)
const;
43 virtual void write(std::ostream &out,
int indent=0)
const;
46 LPoint3 _force_center;
51 virtual LinearForce *make_copy() = 0;
52 virtual LVector3 get_child_vector(
const PhysicsObject *po) = 0;
55 LinearDistanceForce(
const LPoint3& p, FalloffType ft, PN_stdfloat r, PN_stdfloat a,
57 LinearDistanceForce(
const LinearDistanceForce ©);
58 virtual ~LinearDistanceForce();
64 static void init_type() {
65 LinearForce::init_type();
67 LinearForce::get_class_type());
70 return get_class_type();
72 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
void set_force_center(const LPoint3 &p)
set the force center
void set_radius(PN_stdfloat r)
set the radius
void set_falloff_type(FalloffType ft)
falloff_type encapsulating wrap
PN_stdfloat get_radius() const
radius query
FalloffType get_falloff_type() const
falloff_type query
PN_stdfloat get_scalar_term() const
calculate the term based on falloff
LPoint3 get_force_center() const
force_center query
virtual void write(std::ostream &out, int indent=0) const
Write a string representation of this instance to <out>.
virtual void output(std::ostream &out) const
Write a string representation of this instance to <out>.
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.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...