14 #ifndef COLLISIONENTRY_H 15 #define COLLISIONENTRY_H 50 INLINE
bool has_into()
const;
55 INLINE
NodePath get_from_node_path()
const;
56 INLINE
NodePath get_into_node_path()
const;
58 INLINE
void set_t(PN_stdfloat t);
59 INLINE PN_stdfloat get_t()
const;
60 INLINE
bool collided()
const;
61 INLINE
void reset_collided();
63 INLINE
bool get_respect_prev_transform()
const;
65 INLINE
void set_surface_point(
const LPoint3 &point);
66 INLINE
void set_surface_normal(
const LVector3 &normal);
67 INLINE
void set_interior_point(
const LPoint3 &point);
69 INLINE
bool has_surface_point()
const;
70 INLINE
bool has_surface_normal()
const;
71 INLINE
bool has_interior_point()
const;
73 INLINE
void set_contact_pos(
const LPoint3 &pos);
74 INLINE
void set_contact_normal(
const LVector3 &normal);
76 INLINE
bool has_contact_pos()
const;
77 INLINE
bool has_contact_normal()
const;
79 LPoint3 get_surface_point(
const NodePath &space)
const;
80 LVector3 get_surface_normal(
const NodePath &space)
const;
81 LPoint3 get_interior_point(
const NodePath &space)
const;
83 LPoint3 &surface_point,
84 LVector3 &surface_normal,
85 LPoint3 &interior_point)
const;
87 LPoint3 get_contact_pos(
const NodePath &space)
const;
88 LVector3 get_contact_normal(
const NodePath &space)
const;
89 bool get_all_contact_info(
const NodePath &space,
91 LVector3 &contact_normal)
const;
93 void output(std::ostream &out)
const;
94 void write(std::ostream &out,
int indent_level = 0)
const;
97 MAKE_PROPERTY(from_solid, get_from);
98 MAKE_PROPERTY(into_solid, get_into);
99 MAKE_PROPERTY(from_node, get_from_node);
100 MAKE_PROPERTY(into_node, get_into_node);
101 MAKE_PROPERTY(from_node_path, get_from_node_path);
102 MAKE_PROPERTY(into_node_path, get_into_node_path);
104 MAKE_PROPERTY(t, get_t, set_t);
105 MAKE_PROPERTY(respect_prev_transform, get_respect_prev_transform);
112 INLINE
const LMatrix4 &get_wrt_mat()
const;
113 INLINE
const LMatrix4 &get_inv_wrt_mat()
const;
114 INLINE
const LMatrix4 &get_wrt_prev_mat()
const;
121 void check_clip_planes();
134 F_has_surface_point = 0x0001,
135 F_has_surface_normal = 0x0002,
136 F_has_interior_point = 0x0004,
137 F_respect_prev_transform = 0x0008,
138 F_checked_clip_planes = 0x0010,
139 F_has_contact_pos = 0x0020,
140 F_has_contact_normal = 0x0040,
145 LPoint3 _surface_point;
146 LVector3 _surface_normal;
147 LPoint3 _interior_point;
149 LPoint3 _contact_pos;
150 LVector3 _contact_normal;
156 static void init_type() {
157 TypedWritableReferenceCount::init_type();
159 TypedWritableReferenceCount::get_class_type());
162 return get_class_type();
164 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
173 INLINE std::ostream &operator << (std::ostream &out,
const CollisionEntry &entry);
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A basic node of the scene graph or data graph.
The abstract interface to a number of classes that decide what to do when a collision is detected.
A CollisionHandlerPusher that makes use of timing and spatial information from fluid collisions to im...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The abstract base class for all things that can collide with other things in the world,...
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This functions similarly to a LightAttrib.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Defines a single collision event.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A base class for things which need to inherit from both TypedWritable and from ReferenceCount.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A node in the scene graph that can hold any number of CollisionSolids.
This class manages the traversal through the scene graph to detect collisions.
TypeHandle is the identifier used to differentiate C++ class types.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.