TAPs 0.7.7.3
TAPsMarchingCube_unfinished.cpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsMarchingCube.cpp
00003 ******************************************************************************/
00007 /******************************************************************************
00008 SUKITTI PUNAK   (10/11/2006)
00009 UPDATE          (10/12/2006)
00010 ******************************************************************************/
00011 #include "TAPsMarchingCube.hpp"
00012 // Using Inclusion Model (i.e. definitions are included in declarations)
00013 //                       (this name.cpp is included in name.hpp)
00014 // Each friend is defined directly inside its declaration.
00015 
00016 BEGIN_NAMESPACE_TAPs
00017 //=============================================================================
00018 //-----------------------------------------------------------------------------
00019 // Constructor
00020 template <typename T>
00021 MarchingCube<T>::MarchingCube ( GridGenerator<T> * pGridGenerator )
00022 //  : m_pGridGenerator( pGridGenerator )
00023 
00024 {
00025     if ( pGridGenerator ) {
00026         GenerateIsosurface( pGridGenerator );
00027     }
00028 }
00029 //-----------------------------------------------------------------------------
00030 // Destructor
00031 template <typename T>
00032 MarchingCube<T>::~MarchingCube ()
00033 {
00034     DeleteIsosurface();
00035 }
00036 /*
00037 //-----------------------------------------------------------------------------
00038 // Generate Grids with Input Dimension
00039 template <typename T>
00040 bool GridGenerator<T>::GenerateGridsWithDimension ( 
00041     T iGridWidth, T iGridHeight, T iGridDepth )
00042 {
00043     if ( !m_pModel )    return false;
00044     //------------------------------------------------------------------
00045     if (    iGridWidth  == m_atGridDimension[0]
00046         &&  iGridHeight == m_atGridDimension[1]
00047         &&  iGridDepth  == m_atGridDimension[2] )
00048     {
00049         return false;
00050     }
00051     //------------------------------------------------------------------
00052     DeleteGrids();
00053     //------------------------------------------------------------------
00054     // Set Dimension
00055     m_atGridDimension[0] = iGridWidth;
00056     m_atGridDimension[1] = iGridHeight;
00057     m_atGridDimension[2] = iGridDepth;
00058     //------------------------------------------------------------------
00059     // Set Size
00060     T xSize = ( m_tAABBMax[0] - m_tAABBMin[0] ) / m_atGridDimension[0];
00061     T ySize = ( m_tAABBMax[1] - m_tAABBMin[1] ) / m_atGridDimension[1];
00062     T zSize = ( m_tAABBMax[2] - m_tAABBMin[2] ) / m_atGridDimension[2];
00063     m_auiGridSize[0] = ceil( xSize ) + 1;
00064     m_auiGridSize[1] = ceil( ySize ) + 1;
00065     m_auiGridSize[2] = ceil( zSize ) + 1;
00066     //m_auiGridSize[0] = static_cast< unsigned int >( ceil( xSize ) ) + 1;
00067     //m_auiGridSize[1] = static_cast< unsigned int >( ceil( ySize ) ) + 1;
00068     //m_auiGridSize[2] = static_cast< unsigned int >( ceil( zSize ) ) + 1;
00069     //------------------------------------------------------------------
00070     GenerateGrids();
00071     //------------------------------------------------------------------
00072 #ifdef TAPs_DEBUG_MODE
00073 #ifdef TAPs_USE_WXWIDGETS
00074     wxLogError( wxT( "Grid Generator:" ) );
00075     wxLogError( wxT( "  w/ size: %i, %i, %i" ), m_auiGridSize[0], m_auiGridSize[1], m_auiGridSize[2] );
00076     wxLogError( wxT( "  w/ dim: %g, %g, %g" ), m_atGridDimension[0], m_atGridDimension[1], m_atGridDimension[2] );
00077 #else
00078 //      std::cerr << "Error: " << glewGetErrorString( err ) << std::endl;
00079 #endif
00080 #endif
00081     //------------------------------------------------------------------
00082     return true;
00083 }
00084 //*/
00085 //-----------------------------------------------------------------------------
00086 // Generate Isosurface
00087 template <typename T>
00088 bool MarchingCube<T>::GenerateIsosurface ( GridGenerator<T> * pGridGenerator )
00089 {
00090     if ( !pGridGenerator )  return false;
00091     //---------------------------------------------------------------
00092     
00093 }
00094 //-----------------------------------------------------------------------------
00095 // Delete Isosurface
00096 template <typename T>
00097 void MarchingCube<T>::DeleteIsosurface ()
00098 {
00099     m_vXVertex.~vector<T>();
00100     m_vFace.~vector<T>();
00101     for ( int i = 0; i < m_vviVertexRing1List.size(); ++i ) {
00102         m_vviVertexRing1List[i].~vector<T>();
00103     }
00104     m_vviVertexRing1List.~vector<T>();
00105 }
00106 //-----------------------------------------------------------------------------
00107 #if defined(__gl_h_) || defined(__GL_H__)
00108 //=============================================================================
00109 // DrawByOpenGL
00110 //-----------------------------------------------------------------------------
00111 template <typename T>
00112 void MarchingCube<T>::DrawByOpenGL ( GLenum drawStyle )
00113 {
00114 }
00115 //-----------------------------------------------------------------------------
00116 #endif
00117 //=============================================================================
00118 END_NAMESPACE_TAPs
00119 //-----------------------------------------------------------------------------
00120 //34567890123456789012345678901234567890123456789012345678901234567890123456789
00121 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines