Klamp't  0.9.0
PlannerSettings.h
1 #ifndef PLANNER_SETTINGS_H
2 #define PLANNER_SETTINGS_H
3 
5 #include <KrisLibrary/structs/array2d.h>
6 #include <KrisLibrary/geometry/CollisionMesh.h>
7 #include <KrisLibrary/utils/PropertyMap.h>
8 
9 namespace Klampt {
10 
12 {
14  Vector distanceWeights;
15  AABB3D worldBounds;
18  PropertyMap properties;
19 };
20 
22 {
23  bool touchable;
25  Real translationWeight, rotationWeight;
26  AABB3D worldBounds;
27  PropertyMap properties;
28 };
29 
31 {
32  bool touchable;
33  PropertyMap properties;
34 };
35 
44 {
46 
48  void InitializeDefault(WorldModel& world);
49 
57  bool CheckCollision(WorldModel& world,int id1,int id2=-1,Real tol=0);
59  bool CheckCollision(WorldModel& world,Geometry::AnyCollisionGeometry3D* mesh,int id=-1,Real tol=0);
60 
65  pair<int,int> CheckCollision(WorldModel& world,const vector<int>& ids,Real tol=0);
70  pair<int,int> CheckCollision(WorldModel& world,const vector<int>& ids1,const vector<int>& ids2,Real tol=0);
71 
75  Real DistanceLowerBound(WorldModel& world,int id1,int id2=-1,Real eps=0,Real bound=Inf);
78  Real DistanceLowerBound(WorldModel& world,Geometry::AnyCollisionGeometry3D* mesh,int id,Real eps=0,Real bound=Inf);
79 
84  Real DistanceLowerBound(WorldModel& world,const vector<int>& ids,Real eps=0,Real bound=Inf,int* closest1=NULL,int* closest2=NULL);
89  Real DistanceLowerBound(WorldModel& world,const vector<int>& ids1,const vector<int>& ids2,Real eps=0,Real bound=Inf,int* closest1=NULL,int* closest2=NULL);
90 
92  void EnumerateCollisionPairs(WorldModel& world,vector<pair<int,int> >& pairs) const;
96  void EnumerateCollisionQueries(WorldModel& world,int id1,int id2,
97  vector<pair<int,int> >& pairs,
98  vector<Geometry::AnyCollisionQuery>& queries);
100  void EnumerateCollisionQueries(WorldModel& world,Geometry::AnyCollisionGeometry3D* mesh,int id,
101  vector<int>& checkedIDs,
102  vector<Geometry::AnyCollisionQuery>& queries);
103 
104  Array2D<bool> collisionEnabled; //indexed by world ID #
105  vector<RobotPlannerSettings> robotSettings;
106  vector<ObjectPlannerSettings> objectSettings;
107  vector<TerrainPlannerSettings> terrainSettings;
108 };
109 
110 } // namespace Klampt
111 
112 #endif
AABB3D worldBounds
base position sampling range for free-floating robots
Definition: PlannerSettings.h:15
A structure containing settings that should be used for collision detection, contact solving...
Definition: PlannerSettings.h:43
PropertyMap properties
other properties
Definition: PlannerSettings.h:18
Real collisionEpsilon
threshold for edge feasibility checks
Definition: PlannerSettings.h:13
bool touchable
true if its allowed to be touched
Definition: PlannerSettings.h:23
AABB3D worldBounds
for translation
Definition: PlannerSettings.h:26
Real rotationWeight
for distance metric
Definition: PlannerSettings.h:25
Defines the WorldModel class.
Definition: PlannerSettings.h:30
Real collisionEpsilon
threshold for edge feasibility checks
Definition: PlannerSettings.h:24
Definition: PlannerSettings.h:21
PropertyMap properties
other properties
Definition: PlannerSettings.h:27
int contactIKMaxIters
max iters for contact solving
Definition: PlannerSettings.h:17
bool touchable
true if its allowed to be touched
Definition: PlannerSettings.h:32
PropertyMap properties
other properties
Definition: PlannerSettings.h:33
Real contactEpsilon
convergence threshold for contact solving
Definition: PlannerSettings.h:16
Definition: PlannerSettings.h:11
Definition: ContactDistance.h:6
Vector distanceWeights
for non-euclidean distance metric
Definition: PlannerSettings.h:14
The main world class containing multiple robots, objects, and static geometries (terrains). Lights and other viewport information may also be stored here.
Definition: World.h:24