00001 #ifndef SPACE_H
00002 #define SPACE_H
00003
00004 #include "meshmorph.h"
00005
00006 class Space
00007 {
00008 private:
00009 vec_i axes;
00010 vec_d world;
00011 vec_b b;
00012 static Space * only_one;
00013 Space (void);
00014 Space (Space const &);
00015 Space & operator = (Space const &);
00016 ~Space (void);
00017 public:
00018 static Space & instance (void);
00019 int location2Index (double const &,char const * const) const;
00020 int indices2Index (int const &,int const &,int const &) const;
00021 int screenIndex (int,char const * const) const;
00022 void boundWorld (void);
00023 void partitionSpace (void);
00024 void clearFacesFromBoxes (void);
00025 void addFaceToBoxes (vec_bp &,Face * const);
00026 void calculateBoxesInWhichFaceLies (Face const * const,vec_bp &) const;
00027 void getBoxesForFaceBoundingBox (Face const * const,vec_bp &) const;
00028 void writeSummary (std::ostream &);
00029 void getBoxesFromPosition (vector3 const &,
00030 vector3 const &,
00031 vec_bp &) const;
00032 void getBoxesFromIndices (int const * const,
00033 int const * const,
00034 vec_bp &) const;
00035 double getWorld (int const &) const;
00036 Box * getBox (int const &);
00037 b_cit begin (void) const;
00038 b_cit end (void) const;
00039 };
00040
00041 #endif