14 #ifndef COLLISIONHANDLEREVENT_H 15 #define COLLISIONHANDLEREVENT_H 42 INLINE
void clear_in_patterns();
43 INLINE
void add_in_pattern(
const std::string &in_pattern);
44 INLINE
void set_in_pattern(
const std::string &in_pattern);
45 INLINE
int get_num_in_patterns()
const;
46 INLINE std::string get_in_pattern(
int n)
const;
47 MAKE_SEQ(get_in_patterns, get_num_in_patterns, get_in_pattern);
49 INLINE
void clear_again_patterns();
50 INLINE
void add_again_pattern(
const std::string &again_pattern);
51 INLINE
void set_again_pattern(
const std::string &again_pattern);
52 INLINE
int get_num_again_patterns()
const;
53 INLINE std::string get_again_pattern(
int n)
const;
54 MAKE_SEQ(get_again_patterns, get_num_again_patterns, get_again_pattern);
56 INLINE
void clear_out_patterns();
57 INLINE
void add_out_pattern(
const std::string &out_pattern);
58 INLINE
void set_out_pattern(
const std::string &out_pattern);
59 INLINE
int get_num_out_patterns()
const;
60 INLINE std::string get_out_pattern(
int n)
const;
61 MAKE_SEQ(get_out_patterns, get_num_out_patterns, get_out_pattern);
63 MAKE_SEQ_PROPERTY(in_patterns, get_num_in_patterns, get_in_pattern);
64 MAKE_SEQ_PROPERTY(again_patterns, get_num_again_patterns, get_out_pattern);
65 MAKE_SEQ_PROPERTY(out_patterns, get_num_out_patterns, get_out_pattern);
71 void throw_event_for(
const vector_string &patterns,
CollisionEntry *entry);
72 void throw_event_pattern(
const std::string &pattern,
CollisionEntry *entry);
74 vector_string _in_patterns;
75 vector_string _again_patterns;
76 vector_string _out_patterns;
85 INLINE
void operator = (
const SortEntries &other);
89 Colliding _current_colliding;
90 Colliding _last_colliding;
96 static void init_type() {
97 CollisionHandler::init_type();
99 CollisionHandler::get_class_type());
102 return get_class_type();
104 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
The abstract interface to a number of classes that decide what to do when a collision is detected.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual bool end_group()
Called by the CollisionTraverser at the completion of all collision detections for this traversal.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Defines a single collision event.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
virtual void begin_group()
Will be called by the CollisionTraverser before a new traversal is begun.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A specialized kind of CollisionHandler that throws an event for each collision detected.
This is our own Panda specialization on the default STL set.
virtual void add_entry(CollisionEntry *entry)
Called between a begin_group() .
TypeHandle is the identifier used to differentiate C++ class types.