![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsCGAlgo.hpp 00003 ******************************************************************************/ 00007 /****************************************************************************** 00008 SUKITTI PUNAK (2/03/2006) 00009 UPDATE (2/15/2010) 00010 ******************************************************************************/ 00011 #ifndef TAPs_CG_ALGO_HPP 00012 #define TAPs_CG_ALGO_HPP 00013 00014 #include "../Core/TAPsCGMath.hpp" 00015 #include "../OpenGLModel/TAPsPolygonalModel.hpp" 00016 #include "../OpenGLModel/TAPsXPolygonalModel.hpp" 00017 #include "../OpenGLModel/TAPsHalfEdgeModel.hpp" 00018 00019 BEGIN_NAMESPACE_TAPs 00020 //============================================================================= 00021 template <typename T> 00022 class CGAlgo { 00023 //----------------------------------------------------------------------------- 00024 // Member Functions ----------------------------------------------------------- 00025 public: 00026 //========================================================================= 00027 // Sudivision Fns 00028 //========================================================================= 00029 //------------------------------------------------------------------------- 00030 static inline bool LoopSubdivision ( OpenGL::OpenGLModel<T> * prModel ) 00031 { return SubdivisionLoop( prModel ); } 00032 static bool SubdivisionLoop ( OpenGL::OpenGLModel<T> * prModel ); 00033 static bool SubdivisionLoop ( OpenGL::PolygonalModel<T> * prModel ); 00034 static bool SubdivisionLoop ( OpenGL::XPolygonalModel<T> * prModel ); 00035 static bool SubdivisionLoop ( OpenGL::HalfEdgeModel<T> * prModel ); 00036 //------------------------------------------------------------------------- 00037 //========================================================================= 00038 00042 class Physics { 00043 public: 00044 //========================================================================= 00045 // Physics Computation Fns 00046 //========================================================================= 00047 //------------------------------------------------------------------------- 00058 static void CalVolumeAndCentroid_BasedOnTetrahedron ( 00059 OpenGL::OpenGLModel<T> * prModel, 00060 T & Volume, 00061 Vector3<T> & Centroid 00062 ); 00063 00064 private: 00065 static void CalVolumeAndCentroid_BasedOnTetrahedron ( 00066 OpenGL::HalfEdgeModel<T> * prModel, 00067 T & Volume, 00068 Vector3<T> & Centroid 00069 ); 00070 00071 }; 00072 //------------------------------------------------------------------------- 00073 //========================================================================= 00074 00075 00076 //----------------------------------------------------------------------------- 00077 // Data Members -------------------------------------------------------------- 00078 private: 00079 }; // END CLASS CGAlgo 00080 //============================================================================= 00081 END_NAMESPACE_TAPs 00082 //----------------------------------------------------------------------------- 00083 // Include definition if TAPs_USE_EXPORT is not defined 00084 //#if !defined( TAPs_USE_EXPORT ) 00085 #include "TAPsCGAlgo.cpp" 00086 //#endif 00087 //----------------------------------------------------------------------------- 00088 #endif 00089 //34567890123456789012345678901234567890123456789012345678901234567890123456789 00090 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----