6 #ifndef CNOID_UTIL_COLLISION_DETECTOR_H 7 #define CNOID_UTIL_COLLISION_DETECTOR_H 12 #include <boost/shared_ptr.hpp> 29 static bool registerFactory(
const std::string& name, boost::function<
CollisionDetectorPtr()> factory);
30 static int numFactories();
31 static std::string factoryName(
int factoryIndex);
32 static int factoryIndex(
const std::string& name);
33 static CollisionDetectorPtr create(
int factoryIndex);
36 virtual const char* name()
const = 0;
43 virtual CollisionDetectorPtr clone()
const = 0;
45 virtual bool enableGeometryCache(
bool on) = 0;
46 virtual void clearGeometryCache(
SgNodePtr geometry) = 0;
47 virtual void clearAllGeometryCaches() = 0;
49 virtual void clearGeometries() = 0;
53 virtual int numGeometries()
const = 0;
54 virtual int addGeometry(
SgNodePtr geometry) = 0;
55 virtual void setGeometryStatic(
int geometryId,
bool isStatic =
true) = 0;
56 virtual void setNonInterfarenceGeometyrPair(
int geometryId1,
int geometryId2) = 0;
57 virtual bool makeReady() = 0;
58 virtual void updatePosition(
int geometryId,
const Position& position) = 0;
63 virtual void detectCollisions(boost::function<
void(
const CollisionPair&)> callback) = 0;
boost::shared_ptr< CollisionDetector > CollisionDetectorPtr
Definition: CollisionDetector.h:23
int geometryId[2]
Definition: CollisionDetector.h:18
Definition: CollisionDetector.h:26
Eigen::Transform< double, 3, Eigen::AffineCompact > Position
Definition: EigenTypes.h:73
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
std::vector< Collision > CollisionArray
Definition: Collision.h:20
boost::shared_ptr< CollisionPair > CollisionPairPtr
Definition: CollisionDetector.h:21
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
CollisionArray collisions
Definition: CollisionDetector.h:19
Definition: CollisionDetector.h:17