1 #ifndef ROBOT_WITH_GEOMETRY_H 2 #define ROBOT_WITH_GEOMETRY_H 4 #include "RobotDynamics3D.h" 5 #include <KrisLibrary/structs/array2d.h> 6 #include <KrisLibrary/geometry/AnyGeometry.h> 32 bool LoadGeometry(
int i,
const char* file);
33 bool SaveGeometry(
int i,
const char* file);
34 bool IsGeometryEmpty(
int i);
35 void InitCollisions();
36 void CleanupCollisions();
37 void InitAllSelfCollisions();
38 void InitSelfCollisionPair(
int i,
int j);
41 void CleanupSelfCollisions();
44 void Merge(
const std::vector<RobotWithGeometry*>& robots);
57 virtual bool SelfCollision(Real distance=0);
59 virtual bool SelfCollision(
const std::vector<int>& bodies, Real distance=0);
61 virtual bool SelfCollision(
const std::vector<int>& set1,
const std::vector<int>& set2,Real distance=0);
63 virtual bool SelfCollision(
int i,
int j, Real distance=0);
65 virtual void SelfCollisions(std::vector<std::pair<int,int> >& pairs,Real distance=0);
67 virtual bool MeshCollision(CollisionGeometry& mesh);
68 virtual bool MeshCollision(
int i,Real distance=0);
70 virtual void DrawGL();
71 virtual void DrawLinkGL(
int i);
73 std::vector<std::shared_ptr<CollisionGeometry> > geometry;
76 std::vector<CollisionQuery*> envCollisions;
Array2D< CollisionQuery * > selfCollisions
matrix(i,j) of collisions between bodies, i < j (upper triangular)
Definition: RobotWithGeometry.h:75
const RobotWithGeometry & operator=(const RobotWithGeometry &rhs)
Copy, keeping shared references to geometries.
Definition: RobotWithGeometry.cpp:81
An AnyGeometry with collision detection information.
Definition: AnyGeometry.h:98
virtual void UpdateGeometry()
Call this before querying self collisions.
Definition: RobotWithGeometry.cpp:200
void Initialize(int numLinks)
These should be used by the initialization routines.
Definition: RobotWithGeometry.cpp:34
virtual void InitMeshCollision(CollisionGeometry &mesh)
Call this before querying environment collisions.
Definition: RobotWithGeometry.cpp:211
A class that stores information regarding a collision query. May be slightly faster than running indi...
Definition: AnyGeometry.h:186
void Merge(const std::vector< RobotWithGeometry * > &robots)
Creates this into a mega-robot from several other robots.
Definition: RobotWithGeometry.cpp:46
The base class for a robot definition.
Definition: RobotWithGeometry.h:19
Class defining kinematic and dynamic state of a robot, with commonly used functions. Inherits from RobotKinematics3D.
Definition: RobotDynamics3D.h:32
virtual void SelfCollisions(std::vector< std::pair< int, int > > &pairs, Real distance=0)
Compute all self collisions (faster than.
Definition: RobotWithGeometry.cpp:379