collisiondetectors/CD_rangesensor/logical.h

Go to the documentation of this file.
00001 #if !defined(logical_h__INCLUDED_)
00002 #define logical_h__INCLUDED_
00003 
00004 #include "Octree_Data_Fuser.h"
00005 #include "octree.h"
00006 #include "math.h"
00007 
00008 
00009 class Square
00010 {
00011 public:
00012   double p[4][3];
00013 };
00014 
00015 
00017 // Octree Logic Components
00019 
00020 int white_node(OctreeNode *node);
00021 int black_node(OctreeNode *node);
00022 void delete_node(OctreeNode *node);
00023 void reset_bitbuckets ();
00024 void input_bitbucket (char invalue, bool flush, FILE *fp);
00025 char output_bitbucket (bool &eof_found, FILE *fp);
00026 OctreeNode* read_node(FILE *tree_structure);
00027 void save_node(OctreeNode *node, FILE  *tree_structure);
00028 void octree_volume(OctreeNode *node, int level);
00029 void negative(OctreeNode *node);
00030 OctreeNode* create_node(char color_node);
00031 OctreeNode* copy(OctreeNode *node);
00032 void clean(OctreeNode *node);
00033 void detach(OctreeNode *node);
00034 int check_node_containment(OctreeNode *node, struct cubic_d *worldsize, 
00035                             vector_d target);
00036 OctreeNode* create_block_node(int level, struct cubic *desired,
00037                                struct cubic *worldsize, int maxlevel);
00038 OctreeNode* create_line_node(int level, 
00039                                vector_i *center,
00040                                struct cubic *worldsize, int maxlevel);
00041 OctreeNode* create_view_node(int level, 
00042                                vector_i *center,
00043                                int arraysize,
00044                                struct cubic *worldsize, int maxlevel);
00045 OctreeNode* union_node(OctreeNode *node1, OctreeNode *node2);
00046 OctreeNode* intersection_node(OctreeNode *node1, OctreeNode *node2);
00047 
00048 OctreeNode* construct_octree_wrapper (struct free_space * pic, int maxlevel, Range_Sensor* jc);
00049 OctreeNode* create_block_wrapper (vector_i center, cubic dimensions, int maxlevel);
00050 OctreeNode* create_line_wrapper (vector_i start, vector_i end, int maxlevel);
00051 OctreeNode* create_view_wrapper (vector_d start, vector_d *end, vector_d *dir, int maxlevel);
00052 void update_cubes_set (std::set<PointClass> &s1, Range_Sensor* camera, 
00053                        OctreeNode *node, struct cubic_d worldsize);
00054 void extract_cubes_set (std::set<PointClass> &s1, double magnifyfactor, 
00055                                                             std::vector<Square> &squarevector, int maxlevel);
00056 void extract_block_node(OctreeNode *node, struct cubic_d *worldsize, 
00057                         std::vector<Square> &squarevector, bool firstlevel, int colour);
00058 void calc_cube_facets(std::vector<Square> &squarevector, GL_Mesh &mesh);
00059 
00060 
00061 #endif

Generated on Sat Apr 1 21:30:37 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO