31 #ifndef _LibCollision_Manager_H
32 #define _LibCollision_Manager_H
49 template<
class T1,
class T2>
class BroadPhase;
50 template<
class T1,
class T2>
class UpdateStrategy;
51 template<
class T1,
class T2>
class NarrowPhase;
52 template<
class T1,
class T2>
class CallBack;
56 template<
class T1,
class T2>
60 static std::string
class_ID() {
return "Manager<" + T1::class_ID() +
", " + T2::class_ID() +
">";}
116 template<
class T1,
class T2>
120 static std::string
class_ID() {
return "BroadPhase<" + T1::class_ID() +
", " + T2::class_ID() +
">";}
146 template<
class T1,
class T2>
150 static std::string
class_ID() {
return "UpdateStrategy<" + T1::class_ID() +
", " + T2::class_ID() +
">";}
179 template<
class T1,
class T2>
184 static std::string
class_ID() {
return "NarrowPhase<" + T1::class_ID() +
", " + T2::class_ID() +
">";}
218 template<
class T1,
class T2>
223 static std::string
class_ID() {
return "CallBack<" + T1::class_ID() +
", " + T2::class_ID()+
">";}
254 #include "GranOO3/Collision/Manager.tpp"
255 #include "GranOO3/Collision/BroadPhase.tpp"
256 #include "GranOO3/Collision/UpdateStrategy.tpp"
257 #include "GranOO3/Collision/NarrowPhase.tpp"
258 #include "GranOO3/Collision/CallBack.tpp"
Definition: Manager.hpp:118
BroadPhase & operator=(const BroadPhase &)=delete
BroadPhase(const BroadPhase &)=delete
static std::string class_ID()
Definition: Manager.hpp:120
virtual void detect_contact(std::function< void(T1 &, T2 &)> &)=0
Manager< T1, T2 > * manager_
Definition: Manager.hpp:140
Manager< T1, T2 > Man
Definition: Manager.hpp:131
Definition: Manager.hpp:220
virtual double compute_critical_time_step() const =0
a pure virtual method able to return the critical time step value
static std::string class_ID()
Definition: Manager.hpp:223
virtual void manage_collision(T1 &, T2 &, const Data &)=0
Manager< T1, T2 > * manager_
Definition: Manager.hpp:245
CallBack(const CallBack &)=delete
CallBack & operator=(const CallBack &)=delete
Manager< T1, T2 > Man
Definition: Manager.hpp:236
Definition: Manager.hpp:58
BroadPhase< T1, T2 > * Broad
Definition: Manager.hpp:78
static std::string class_ID()
Definition: Manager.hpp:60
bool _persistent_contact
Definition: Manager.hpp:108
Data _info
Definition: Manager.hpp:105
bool has_persistent_contact_option() const
bool has_build_contact_bond_option() const
CallBack< T1, T2 > * _callback
Definition: Manager.hpp:104
void broad_phase_callback(T1 &, T2 &)
bool _exclude_interaction
Definition: Manager.hpp:107
CallBack< T1, T2 > * Call
Definition: Manager.hpp:81
BroadPhase< T1, T2 > * _broad_phase
Definition: Manager.hpp:101
UpdateStrategy< T1, T2 > * _update_strategy
Definition: Manager.hpp:102
NarrowPhase< T1, T2 > * Narrow
Definition: Manager.hpp:80
std::vector< std::pair< T1 *, T2 * > > _record
Definition: Manager.hpp:106
bool _build_contact_bond
Definition: Manager.hpp:109
NarrowPhase< T1, T2 > * _narrow_phase
Definition: Manager.hpp:103
static int _current_iteration_step
Definition: Manager.hpp:63
UpdateStrategy< T1, T2 > * Update
Definition: Manager.hpp:79
Definition: Manager.hpp:181
NarrowPhase & operator=(const NarrowPhase &)=delete
virtual bool is_collide(T1 &, T2 &, Data &)=0
static std::string class_ID()
Definition: Manager.hpp:184
double maxPenetrationWithsurface_
Definition: Manager.hpp:210
Manager< T1, T2 > * manager_
Definition: Manager.hpp:207
Manager< T1, T2 > Man
Definition: Manager.hpp:192
NarrowPhase(const NarrowPhase &)=delete
Definition: Manager.hpp:148
UpdateStrategy(const UpdateStrategy &)=delete
virtual ~UpdateStrategy()
Manager< T1, T2 > Man
Definition: Manager.hpp:161
Manager< T1, T2 > * manager_
Definition: Manager.hpp:170
virtual bool trigger_update()=0
static std::string class_ID()
Definition: Manager.hpp:150
UpdateStrategy & operator=(const UpdateStrategy &)=delete
pure virtual class for modeling classes able to compute a critical time step
Definition: CriticalTimeStep.hpp:50
Definition: Common.hpp:198
const T1
Definition: Exprtk.hpp:16489
const T1 const T2
Definition: Exprtk.hpp:16511