]> Creatis software - cpMesh.git/blob - appli/examples/example_QuadEdgeMeshToSimplexMesh.cxx
d70d89f52ae635afadb871e07fe6b717c35ff709
[cpMesh.git] / appli / examples / example_QuadEdgeMeshToSimplexMesh.cxx
1 #include <cmath>
2 #include <cstdlib>
3 #include <iostream>
4 #include <string>
5
6 #include <cpm/DataStructures/QuadEdgeMesh.h>
7 #include <cpm/DataStructures/SimplexMesh.h>
8 #include <cpm/Algorithms/QuadEdge/MeshToDualFilter.h>
9 #include <cpm/IO/MeshReader.h>
10
11 // -------------------------------------------------------------------------
12 const unsigned int Dimension = 3;
13 const unsigned int Order = 2;
14
15 typedef float TScalar;
16 typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh;
17 typedef cpm::DataStructures::SimplexMesh< TScalar, Order, Dimension > TSimplex;
18
19 // -------------------------------------------------------------------------
20 int main( int argc, char* argv[] )
21 {
22   if( argc < 2 )
23   {
24     std::cerr
25       << "Usage: " << argv[ 0 ]
26       << " input_mesh"
27       << std::endl;
28     return( 1 );
29
30   } // fi
31
32   typedef cpm::IO::MeshReader< TMesh > TReader;
33   TReader::Pointer reader = TReader::New( );
34   reader->SetFileName( argv[ 1 ] );
35
36   typedef
37     cpm::Algorithms::QuadEdge::MeshToDualFilter< TMesh, TSimplex >
38     TDualFilter;
39   TDualFilter::Pointer dual_filter = TDualFilter::New( );
40   dual_filter->SetInput( reader->GetOutput( ) );
41   dual_filter->Update( );
42
43   std::cout << "Simplex mesh correctly constructred: ";
44   if( dual_filter->GetOutput( )->VerifySimplexOrder( ) )
45     std::cout << "YES" << std::endl;
46   else
47     std::cout << "NO" << std::endl;
48   
49   return( 0 );
50 }
51
52 // eof - $RCSfile$