OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
processtrianglecallback.hpp
Go to the documentation of this file.
1 #ifndef OPENMW_COMPONENTS_BULLETHELPERS_PROCESSTRIANGLECALLBACK_H
2 #define OPENMW_COMPONENTS_BULLETHELPERS_PROCESSTRIANGLECALLBACK_H
3 
4 #include <BulletCollision/CollisionShapes/btTriangleCallback.h>
5 
6 #include <type_traits>
7 
8 namespace BulletHelpers
9 {
10  template <class Impl>
12  {
13  public:
15  : mImpl(std::move(impl))
16  {}
17 
18  void processTriangle(btVector3* triangle, int partId, int triangleIndex) override final
19  {
20  return mImpl(triangle, partId, triangleIndex);
21  }
22 
23  private:
24  Impl mImpl;
25  };
26 
27  template <class Impl>
29  {
30  return ProcessTriangleCallback<typename std::decay<Impl>::type>(std::forward<Impl>(impl));
31  }
32 }
33 
34 #endif
ProcessTriangleCallback< typename std::decay< Impl >::type > makeProcessTriangleCallback(Impl &&impl)
Definition: processtrianglecallback.hpp:28
void processTriangle(btVector3 *triangle, int partId, int triangleIndex) overridefinal
Definition: processtrianglecallback.hpp:18
Definition: processtrianglecallback.hpp:11
ProcessTriangleCallback(Impl impl)
Definition: processtrianglecallback.hpp:14
Impl mImpl
Definition: processtrianglecallback.hpp:24