TAPs 0.7.7.3
TAPsCGAlgo.hpp
Go to the documentation of this file.
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----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines