libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/include/p3d_type.h
00001 #ifndef UNIT_P3D_TYPE 
00002 #define UNIT_P3D_TYPE 
00003 
00004 #define P3D_ENV        0
00005 #define P3D_OBSTACLE   1
00006 #define P3D_ROBOT      2
00007 #define P3D_BODY       3
00008 #define P3D_TRAJ       4
00009 #define TRJ_TRAJ       5
00010 #define P3D_BODIES     6
00011 
00012 /*---------------------------------------------------------------------------*/
00014 typedef enum {
00016   P3D_ROTATE = 7,
00018   P3D_TRANSLATE = 8,
00022   P3D_BASE = 9,
00025   P3D_PLAN = 10,
00028   P3D_FREEFLYER = 11,
00030   P3D_FIXED = 13,
00032   P3D_KNEE = 15
00033 } p3d_type_joint;
00034 
00035 #define NB_JNT_TYPE 7
00036 
00038 #define P3D_PPIVOT     12
00039 
00040 #define P3D_MAX_ENV    10
00041 #define P3D_MAX_ROB    10
00042 
00043 #define P3D_NULL_OBJ   -1
00044 
00045 /* the entity shapes: 0=polyh, 1=sphere, 2=cube, 3=box, 4=cylinder, 5=cone */
00046 #define POLYHEDRON_ENTITY 0
00047 #define CONVEX_POLYHEDRON 1
00048 #define CONCAVE_POLYHEDRON 2
00049 #define SPHERE_ENTITY 3
00050 #define CUBE_ENTITY 4
00051 #define BOX_ENTITY 5
00052 #define CYLINDER_ENTITY 6
00053 #define CONE_ENTITY 7
00054 
00055 /* Predefined colors */
00056 #define Black 0
00057 #define Blue 1
00058 #define Yellow 2
00059 #define Red 3
00060 #define Green 4
00061 #define White 5
00062 #define Grey 6
00063 #define Brown 7
00064 #define Filaire 8
00065 #define Skin 9
00066 #define Blue2 10
00067 #define DGrey 11
00068 #define DSkin 12
00069 #define DBrown 13
00070 #define DGreen 14
00071 #define Any 15
00072 #define Violet 16
00073 #define Orange 33
00074 
00075 /* Tansparency colors */
00076 #define tBlack 17
00077 #define tBlue 18
00078 #define tYellow 19
00079 #define tRed 20
00080 #define tGreen 21
00081 #define tWhite 22
00082 #define tGrey 23
00083 #define tBrown 24
00084 #define tFilaire 25
00085 #define tSkin 26
00086 #define tBlue2 27
00087 #define tDGrey 28
00088 #define tDSkin 29
00089 #define tDBrown 30
00090 #define tDGreen 31
00091 #define tViolet 32
00092 #define tOrange 34
00093 
00094 /*  Les collisions checkers */
00095 
00096 #define p3d_col_mode_none 0
00097 #define p3d_col_mode_i_collide 1
00098 #define p3d_col_mode_v_collide 2
00099 #ifdef SOLID_ACT
00100 #define p3d_col_mode_solid 3
00101 #endif
00102 #define p3d_col_mode_kcd 4
00103 #define p3d_col_mode_gjk 5
00104 #define p3d_col_mode_bio 6   /* modif Vicente */
00105 #define p3d_col_mode_pqp 7   
00106 
00107 /* D�ut modification Fabien */
00108 
00109 /* Choice of the trajectory collision detector */
00110 
00111 /*---------------------------------------------------------------------------*/
00113 typedef enum { 
00116   TEST_TRAJ_CLASSIC,
00119   TEST_TRAJ_DICHOTOMIE,
00123   TEST_TRAJ_CLASSIC_ALL, 
00127   TEST_TRAJ_DICHOTOMIE_ALL,
00130   TEST_TRAJ_OTHER_ROBOTS_CLASSIC,
00133   TEST_TRAJ_OTHER_ROBOTS_DICHOTOMIE, 
00137   TEST_TRAJ_OTHER_ROBOTS_CLASSIC_ALL,
00141   TEST_TRAJ_OTHER_ROBOTS_DICHOTOMIE_ALL,
00144   TEST_TRAJ_CONTEXT_CLASSIC,
00147   TEST_TRAJ_CONTEXT_DICHOTOMIE
00148 } p3d_traj_test_type;
00149 
00150 
00151 /* Parameter of bounding box selection */
00152 
00153 typedef enum { 
00154 //   ACTIVATE_BB_CLASSIC,     /* Activate BB but not for autocollision     */
00155   ACTIVATE_BB_ALL,         /* Activate BB with the collision activation */
00156   DEACTIVATE_BB            /* Deactivate BB                             */
00157 } p3d_BB_selection_type;
00158 
00159 /* Parameter of bounding box computation */
00160 
00161 typedef enum { 
00162   COMPUTE_BB_CLOSE,        /* Compute BB with close method              */
00163   COMPUTE_BB_LARGE,        /* Compute BB with large method              */
00164   COMPUTE_BB_COL           /* Compute BB with collision checker data    */
00165 } p3d_BB_compute_type;
00166 
00167 
00168 /*---------------------------------------------------------------------------*/
00170 typedef enum {
00172   P3D_COL_ROBOT_ALL,
00174   P3D_COL_ROBOT_ENV,
00177   P3D_COL_ROBOT_ALL_WITHOUT_AUTOCOL,
00180   P3D_COL_ROBOT_ALL_WITHOUT_OTHER,
00182   P3D_COL_ROBOT_AUTOCOL,
00184   P3D_COL_ENV_ALL,
00186   P3D_COL_ENV_NONE
00187 } p3d_type_col_env_context;
00188 
00189 
00190 /*---------------------------------------------------------------------------*/
00197 typedef enum {
00199   P3D_KCD_COL_TEST = 0,
00202   P3D_KCD_ROB_ALL = 10,
00204   P3D_KCD_ROB_ROB = 20,
00206   P3D_KCD_ROB_AUTO = 30,
00208   P3D_KCD_ROB_ENV = 40,
00212   P3D_KCD_EVERYTHING = 50,
00214   P3D_KCD_MO_ENV = 60,
00215 } p3d_type_col_choice;
00216 
00217 /* Fin modification Fabien */
00218 
00219 /* Status pour la planification */
00220 
00221 #define P3D_SUCCESS    0
00222 #define P3D_FAILURE    1
00223 #define P3D_WRONG_CALL 2
00224 #define P3D_ILLEGAL_START 3
00225 #define P3D_ILLEGAL_GOAL  4
00226 #define P3D_CONFIG_EQUAL  5
00227 
00228 #define NDISCR 10 
00229 #define NTEST 50
00230 
00231 
00232 #define ISOLATED 0
00233 #define LINKING 1
00234 
00235 
00236 
00237 /************************************************
00238   Enumeration of the methods which 
00239    can be used to choose a direction of expansion
00240    during a tree expansion 
00241 **************************************************/
00242 #define GLOBAL_CS_EXP 1
00243 #define SUBREGION_CS_EXP 2
00244 
00245 /************************************************
00246   Enumeration of the methods which 
00247   can be used to choose the node to select
00248   during a tree expansion 
00249 **************************************************/
00250 #define NEAREST_EXP_NODE_METH 1
00251 #define K_NEAREST_EXP_NODE_METH 2
00252 #define BEST_SCORE_EXP_METH 3
00253 #define K_BEST_SCORE_EXP_METH 4
00254 #define RANDOM_IN_SHELL_METH 5
00255 #define RANDOM_NODE_METH 6
00256 #define NAVIGATION_BEFORE_MANIPULATION 7
00257 
00258 /************************************************
00259   Enumeration of the available distances which 
00260   can be used
00261 **************************************************/
00262 #define GENERAL_CSPACE_DIST 1
00263 #define ACTIVE_CONFIG_DIST 2
00264 #define LIGAND_PROTEIN_DIST 3
00265 #define MOBILE_FRAME_DIST 4
00266 #define ONLY_ROBOT_BASE 5
00267 
00268 /************************************************
00269   Enumeration of the methods which 
00270   can be used to choose to expand a node during
00271   a tree expansion
00272 **************************************************/
00273 #define ONE_NODE_CONNECT_EXP_CHOICE 1
00274 #define N_NODES_EXTEND_EXP_CHOICE 2
00275 #define EXTEND_EXP_CHOICE 3
00276 
00277 /************************************************
00278   Enumeration of the methods which 
00279   can be used to choose to connect a node to
00280   a given connected componant
00281 **************************************************/
00282 #define NEAREST_NODE_COMP 1
00283 #define K_NEAREST_NODE_COMP 2
00284 
00285 /************************************************
00286   Enumeration of the methods which 
00287   can be used to weight a given node
00288 **************************************************/
00289 #define RMSD_DISANCE_WEIGHT 1
00290 #define ENERGY_WEIGHT 2
00291 
00292 /************************************************
00293   Enumeration of the choices to compute the cost
00294  of an elementary path in function of the
00295  cost of the extremites configurations
00296 **************************************************/
00297 #define MECHANICAL_WORK 0
00298 #define INTEGRAL 1
00299 #define AVERAGE_CONFIG_COST 2
00300 #define CONFIG_COST_AND_DIST 3
00301 #define BOLTZMANN_COST 4
00302 #define VISIBILITY 5
00303 
00310 #define MAXIMAL_THRESHOLD 1 //Ettlin / Bleuer variant
00311 #define URMSON_TRANSITION 2 //Urmson / Simmons variant
00312 #define TRANSITION_RRT 3
00313 #define TRANSITION_RRT_CYCLE 4
00314 #define MONTE_CARLO_SEARCH 5
00315 #define DOWN_SEARCH 6
00316 #define ADAPTIVE_THRESHOLD 7 //the threshold value depends of successes and failures
00317 
00322 #define P3D_UNIFORM_SAMPLING 1
00323 #define P3D_GAUSSIAN_SAMPLING 2
00324 //#define P3D_DYNAMIC_DOMAIN_SAMPLING 3
00325 #define P3D_BRIDGE_SAMPLING 4
00326 #define P3D_OBPRM_SAMPLING 5
00327 
00328 #define P3D_HALTON_SAMPLING 1
00329 #define P3D_RANDOM_SAMPLING 2
00330 
00331 #define P3D_NO_EXPAND 0
00332 #define P3D_EXPAND_BOX 1
00333 #define P3D_EXPAND_DISCR_CONT 2
00334 #define P3D_EXPAND_RAND_WALK 3
00335 
00336 
00337 #define P3D_BASIC 1
00338 #define P3D_ISOLATE_LINKING 2
00339 #define P3D_ALL_PRM 3
00340 #define P3D_PDR 4
00341 #define P3D_DIFFUSION 5
00342 #define BIO_COLDEG_RRT 6
00343 
00344 
00345 #define P3D_NB_CONNECT 1
00346 #define P3D_DIST_NODE 2
00347 
00348 #define P3D_REAL 0
00349 #define P3D_GRAPHIC 1
00350 #define P3D_GHOST 2
00351 #define P3D_LINES 3      // PROV. MODIF JUAN
00352 
00353 #define P3D_REAL_OBJECT          100
00354 #define P3D_GRAPHIC_OBJECT       101
00355 #define P3D_GHOST_OBJECT         102
00356 #define P3D_DEACTIVATED_OBSTACLE 103
00357 #define P3D_ACTIVATED_OBSTACLE   104
00358 #define P3D_ADDABLE_OBSTACLE     105
00359 #define P3D_ADDED_OBSTACLE       106
00360 
00361 //Inverse Kinematic
00362 #define IK_NORMAL 0
00363 #define IK_UNIQUE 1
00364 #define IK_MULTISOL 2
00365 
00366 //PLANNING TYPE
00367 #define P3D_NONE 0
00368 #define P3D_GLOBAL 1
00369 #define P3D_SPECIFIC 2
00370 
00371 //Astar Graph Type
00372 #define DEFAULTGRAPH 0
00373 #ifdef MULTIGRAPH
00374 #define MGGRAPH 1
00375 #endif
00376 
00377 //start path deform
00378 #define  ALL_RETRACT_SEARCH 0
00379 #define  FORWARD_RETRACT_SEARCH 1
00380 #define  LINEAR_RETRACT_SEARCH 2
00381 //end path deform
00382 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines