26# pragma warning(disable: 4251)
70 template<
class ClassT>
71 Callback(
void (ClassT::*fun)(), ClassT* obj,
bool repeatEnable =
true);
78 operator bool()
const;
81 void operator() ()
const;
85 bool isRepeating()
const;
99 template<
typename T >
108 template<
class ClassT>
109 Callback1(
void (ClassT::*fun)(T), ClassT* obj,
bool repeatEnable =
true);
111 template<
class ClassT>
112 Callback1(
void (ClassT::*fun)(), ClassT* obj,
bool repeatEnable =
true);
138 template<
typename T1,
typename T2 >
147 template<
class ClassT>
148 Callback2(
void (ClassT::*fun)(T1, T2), ClassT* obj,
bool repeatEnable =
true);
150 template<
class ClassT>
151 Callback2(
void (ClassT::*fun)(T1), ClassT* obj,
bool repeatEnable =
true);
153 template<
class ClassT>
154 Callback2(
void (ClassT::*fun)(), ClassT* obj,
bool repeatEnable =
true);
163 void run( T1 arg1, T2 arg2 )
const;
180 template<
typename T1,
typename T2,
typename T3 >
189 template<
class ClassT>
190 Callback3(
void (ClassT::*fun)(T1, T2, T3), ClassT* obj,
bool repeatEnable =
true);
192 template<
class ClassT>
193 Callback3(
void (ClassT::*fun)(T1, T2), ClassT* obj,
bool repeatEnable =
true);
195 template<
class ClassT>
196 Callback3(
void (ClassT::*fun)(T1), ClassT* obj,
bool repeatEnable =
true);
198 template<
class ClassT>
199 Callback3(
void (ClassT::*fun)(), ClassT* obj,
bool repeatEnable =
true);
207 void operator() ( T1 arg1, T2 arg2, T3 arg3 )
const;
208 void run( T1 arg1, T2 arg2, T3 arg3 )
const;
223 template<
typename T1,
typename T2,
typename T3,
typename T4 >
232 template<
class ClassT>
233 Callback4(
void (ClassT::*fun)(T1, T2, T3, T4), ClassT* obj,
bool repeatEnable =
true);
235 template<
class ClassT>
236 Callback4(
void (ClassT::*fun)(T1, T2, T3), ClassT* obj,
bool repeatEnable =
true);
238 template<
class ClassT>
239 Callback4(
void (ClassT::*fun)(T1, T2), ClassT* obj,
bool repeatEnable =
true);
241 template<
class ClassT>
242 Callback4(
void (ClassT::*fun)(T1), ClassT* obj,
bool repeatEnable =
true);
244 template<
class ClassT>
245 Callback4(
void (ClassT::*fun)(), ClassT* obj,
bool repeatEnable =
true);
251 void operator() ( T1 arg1, T2 arg2, T3 arg3, T4 arg4 )
const;
252 void run( T1 arg1, T2 arg2, T3 arg3, T4 arg4 )
const;
263 template<
class ClassT>
288 template <
typename T>
template<
class ClassT>
289 inline Callback1<T>::Callback1(
void (ClassT::*fun)(T), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1)), m_repeating(repeatEnable) {}
291 template <
typename T>
template<
class ClassT>
294 template <
typename T>
297 template <
typename T>
300 template <
typename T>
303 template<
typename T >
310 template <
typename T>
313 template <
typename T>
316 template <
typename T>
319 template <
typename T>
323 template <
typename T1,
typename T2>
template<
class ClassT>
324#if defined( __GNUC__ ) && __GNUC__ == 4 && __GNUC_MINOR__ >= 4
325 inline Callback2<T1, T2>::Callback2(
void (ClassT::*fun)(T1, T2), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2)), m_repeating(repeatEnable) {}
330 template <
typename T1,
typename T2>
template<
class ClassT>
333 template <
typename T1,
typename T2>
template<
class ClassT>
336 template <
typename T1,
typename T2>
338 template <
typename T1,
typename T2>
341 template <
typename T1,
typename T2>
344 template<
typename T1,
typename T2 >
348 m_callback(arg1,arg2);
351 template <
typename T1,
typename T2>
354 template <
typename T1,
typename T2>
357 template <
typename T1,
typename T2>
360 template <
typename T1,
typename T2>
365template <
typename T1,
typename T2,
typename T3>
template<
class ClassT>
366#if defined( __GNUC__ ) && __GNUC__ == 4 && __GNUC_MINOR__ >= 4
367inline Callback3<T1, T2, T3>::Callback3(
void (ClassT::*fun)(T1, T2, T3), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2,
std::placeholders:: _3)), m_repeating(repeatEnable) {}
369 AGX_FORCE_INLINE Callback3<T1, T2, T3>::Callback3(
void (ClassT::*fun)(T1, T2, T3), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2,
std::placeholders:: _3)), m_repeating(repeatEnable) {}
372 template <
typename T1,
typename T2,
typename T3>
template<
class ClassT>
375 template <
typename T1,
typename T2,
typename T3>
template<
class ClassT>
378 template <
typename T1,
typename T2,
typename T3>
template<
class ClassT>
381 template <
typename T1,
typename T2,
typename T3>
384 template <
typename T1,
typename T2,
typename T3>
387 template <
typename T1,
typename T2,
typename T3>
390 template<
typename T1,
typename T2,
typename T3 >
394 m_callback(arg1,arg2,arg3);
397 template <
typename T1,
typename T2,
typename T3>
400 template <
typename T1,
typename T2,
typename T3>
403 template <
typename T1,
typename T2,
typename T3>
406 template <
typename T1,
typename T2,
typename T3>
410 template <
typename T1,
typename T2,
typename T3,
typename T4>
template<
class ClassT>
411 AGX_FORCE_INLINE Callback4<T1, T2, T3, T4>::Callback4(
void (ClassT::*fun)(T1, T2, T3, T4), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2,
std::placeholders:: _3,
std::placeholders:: _4)), m_repeating(repeatEnable) {}
413 template <
typename T1,
typename T2,
typename T3,
typename T4>
template<
class ClassT>
414 AGX_FORCE_INLINE Callback4<T1, T2, T3, T4>::Callback4(
void (ClassT::*fun)(T1, T2, T3), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2,
std::placeholders:: _3)), m_repeating(repeatEnable) {}
416 template <
typename T1,
typename T2,
typename T3,
typename T4>
template<
class ClassT>
417 AGX_FORCE_INLINE Callback4<T1, T2, T3, T4>::Callback4(
void (ClassT::*fun)(T1, T2), ClassT* obj,
bool repeatEnable) : m_callback(
std::bind(fun, obj,
std::placeholders:: _1,
std::placeholders:: _2)), m_repeating(repeatEnable) {}
419 template <
typename T1,
typename T2,
typename T3,
typename T4>
template<
class ClassT>
422 template <
typename T1,
typename T2,
typename T3,
typename T4>
template<
class ClassT>
425 template <
typename T1,
typename T2,
typename T3,
typename T4>
428 template <
typename T1,
typename T2,
typename T3,
typename T4>
431 template <
typename T1,
typename T2,
typename T3,
typename T4>
434 template <
typename T1,
typename T2,
typename T3,
typename T4>
438 m_callback(arg1, arg2, arg3, arg4);
441 template <
typename T1,
typename T2,
typename T3,
typename T4>
444 template <
typename T1,
typename T2,
typename T3,
typename T4>
447 template <
typename T1,
typename T2,
typename T3,
typename T4>
450 template <
typename T1,
typename T2,
typename T3,
typename T4>
Templated callback with one argument.
Callback1(const CallbackFunction &func, bool repeatEnable=true)
const CallbackFunction & implementation() const
Return the std representation.
std::function< void(T)> CallbackFunction
Callback1(void(ClassT::*fun)(T), ClassT *obj, bool repeatEnable=true)
void operator()(T arg1) const
Execute the callback.
Callback1(void(ClassT::*fun)(), ClassT *obj, bool repeatEnable=true)
Templated callback with two arguments.
Callback2(void(ClassT::*fun)(), ClassT *obj, bool repeatEnable=true)
Callback2(void(ClassT::*fun)(T1), ClassT *obj, bool repeatEnable=true)
std::function< void(T1, T2)> CallbackFunction
const CallbackFunction & implementation() const
Return the std representation.
Callback2(const CallbackFunction &func, bool repeatEnable=true)
void run(T1 arg1, T2 arg2) const
void operator()(T1 arg1, T2 arg2) const
Execute the callback.
Callback2(void(ClassT::*fun)(T1, T2), ClassT *obj, bool repeatEnable=true)
Templated callback with three arguments.
std::function< void(T1, T2, T3)> CallbackFunction
void run(T1 arg1, T2 arg2, T3 arg3) const
void operator()(T1 arg1, T2 arg2, T3 arg3) const
Execute the callback.
const CallbackFunction & implementation() const
Return the std representation.
void run(T1 arg1, T2 arg2, T3 arg3, T4 arg4) const
std::function< void(T1, T2, T3, T4)> CallbackFunction
void operator()(T1 arg1, T2 arg2, T3 arg3, T4 arg4) const
const CallbackFunction & implementation() const
Generalized callback, using std::function.
const CallbackFunction & implementation() const
Return the std representation.
void operator()() const
Execute the callback.
std::function< void()> CallbackFunction
The agx namespace contains the dynamics/math part of the AGX Dynamics API.