Face.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef FACE_HPP_
00031 #define FACE_HPP_
00032
00033 #include "UblasCustomFunctions.hpp"
00034 #include "Exception.hpp"
00035 #include <vector>
00036
00037
00041 template <unsigned DIM>
00042 class Face
00043 {
00044 private:
00045
00053 std::vector< c_vector<double, DIM>* > mVertices;
00054
00061 void Increment(typename std::vector< c_vector<double, DIM>* >::iterator& rIterator,
00062 Face<DIM>& rFace) const;
00063
00064 public:
00065
00072 bool operator==(Face<DIM>& rOtherFace);
00073
00079 bool operator!=(Face<DIM>& rOtherFace);
00080
00084 Face<DIM> operator-();
00085
00089 unsigned GetNumVertices() const;
00090
00094 void OrderVerticesAntiClockwise();
00095
00101 void AddVertex(c_vector<double, DIM>* pVertex);
00102
00106 unsigned GetNumVertices();
00107
00113 c_vector<double, DIM>& rGetVertex(unsigned index);
00114
00121 void SetVertex(unsigned index, c_vector<double, DIM>* pNewLocation);
00122 };
00123
00124 #endif