Files Classes Functions Hierarchy
00001 #ifndef D4MINOPERATOR_H 00002 #define D4MINOPERATOR_H 00003 00004 typedef unsigned int uint; 00005 typedef unsigned int const uintc; 00006 00007 class d4tess; 00008 00009 class d4minoperator 00010 { 00011 public: 00012 00013 d4tess & tess; 00014 00015 d4minoperator(d4tess & _tess); 00016 virtual ~d4minoperator() {} 00017 00018 // If the tessellation is changed return true. 00019 // a and b are generally neighbouring tetrahedrons 00020 virtual bool const eval(uintc a, uintc b) 00021 { return false; } 00022 00023 00024 // Iterate around all faces except index evaluating until 00025 // a successful eval(a,i) or no more faces. 00026 // I consider this operator a mathematical complement to eval. 00027 // Let eval be operator M then let this be operator M'. 00028 bool const evalInvert(uintc a, uintc index); 00029 00030 bool const twotetrahedronMInvert 00031 ( 00032 uintc a, 00033 uintc ai, 00034 uintc b, 00035 uintc bi 00036 ); 00037 00038 00039 00040 00041 /* 00042 // Are tetrahedrons a and b connected? 00043 // ai and bi are local indexes to B and A respectively. 00044 bool const isconnected 00045 ( 00046 uint & ai, 00047 uint & bi, 00048 uintc a, 00049 uintc b 00050 ) const; 00051 00052 // Do the two adjacent tetrahedrons joined form a convex shape? 00053 bool const isconvex( uintc a, uintc b ) const; 00054 */ 00055 00056 protected: 00057 00058 // A small fraction used in approximatelyequal function. 00059 // ie set this ratio to a small fraction. 00060 static double delta; 00061 00062 // Are a and b approximately equal in magnitude? 00063 bool const approximatelyequal 00064 ( 00065 double const a, 00066 double const b 00067 ); 00068 00069 }; 00070 00071 00072 00073 00074 #endif 00075
1.5.8