DGtal  1.5.beta
testMeshWriter.cpp File Reference
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/helpers/StdDefs.h"
#include "DGtal/shapes/Mesh.h"
#include "DGtal/io/writers/MeshWriter.h"
Include dependency graph for testMeshWriter.cpp:

Go to the source code of this file.

Functions

bool testMeshWriter ()
 
int main (int argc, char **argv)
 

Detailed Description

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author
Bertrand Kerautret (kerau.nosp@m.tre@.nosp@m.loria.nosp@m..fr ) LORIA (CNRS, UMR 7503), University of Nancy, France
Date
2012/07/08

Functions for testing class MeshWriter.

This file is part of the DGtal library.

Definition in file testMeshWriter.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 113 of file testMeshWriter.cpp.

114 {
115  trace.beginBlock ( "Testing class MeshWriter" );
116  trace.info() << "Args:";
117  for ( int i = 0; i < argc; ++i )
118  trace.info() << " " << argv[ i ];
119  trace.info() << endl;
120 
121  bool res = testMeshWriter(); // && ... other tests
122  trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
123  trace.endBlock();
124  return res ? 0 : 1;
125 }
void beginBlock(const std::string &keyword="")
std::ostream & emphase()
std::ostream & info()
double endBlock()
Trace trace
Definition: Common.h:153
bool testMeshWriter()

References DGtal::Trace::beginBlock(), DGtal::Trace::emphase(), DGtal::Trace::endBlock(), DGtal::Trace::info(), testMeshWriter(), and DGtal::trace.

◆ testMeshWriter()

bool testMeshWriter ( )

Example of a test. To be completed.

[MeshWriterUseMeshCreation]

[MeshWriterUseMeshCreation] [MeshWriterUseMeshExport]

[MeshWriterUseMeshExport]

Definition at line 53 of file testMeshWriter.cpp.

54 {
55  unsigned int nbok = 0;
56  unsigned int nb = 0;
58  // Constructing the mesh to export in OFF format
59  Mesh<Point> aMesh(true);
60  vector<Point> vectVertex;
61  Point p1(0, 0, 0);
62  Point p2(1, 0, 0);
63  Point p3(1, 1, 0);
64  Point p4(0, 1, 0);
65  Point p11(0, 0, 1);
66  Point p21(1, 0, 1);
67  Point p31(1, 1, 1);
68  Point p41(0, 1, 1);
69  aMesh.addVertex(p1);
70  aMesh.addVertex(p2);
71  aMesh.addVertex(p3);
72  aMesh.addVertex(p4);
73  aMesh.addVertex(p11);
74  aMesh.addVertex(p21);
75  aMesh.addVertex(p31);
76  aMesh.addVertex(p41);
77 
78  vector<DGtal::Color> vectColor;
79  DGtal::Color col (250,0,0, 200);
80  DGtal::Color col2 (250,250,0, 200);
81 
82  aMesh.addQuadFace(0,1,2,3, col);
83  aMesh.addQuadFace(4,5,6,7, col2);
84  aMesh.addQuadFace(0,1,5,4, col);
85 
88  bool isOK = aMesh >> "test.off";
90  nb++;
91  bool isOK2 = aMesh >> "testColor.obj";
92  nb++;
93  std::fstream exportObj;
94  exportObj.open("test.obj", std::fstream::out);
95  bool isOK3 = MeshWriter<Point>::export2OBJ(exportObj, aMesh);
96 
97  nb++;
98 
99  trace.beginBlock ( "Testing block ..." );
100  nbok += isOK ? 1 : 0;
101  nbok += isOK2 ? 1 : 0;
102  nbok += isOK3 ? 1 : 0;
103 
104  trace.info() << "(" << nbok << "/" << nb << ") "
105  << "true == true" << std::endl;
106  trace.endBlock();
107  return nbok == nb;
108 }
Structure representing an RGB triple with alpha component.
Definition: Color.h:68
Aim: This class is defined to represent a surface mesh through a set of vertices and faces....
Definition: Mesh.h:92
Aim: Export a Mesh (Mesh object) in different format as OFF and OBJ).
Definition: MeshWriter.h:77

References DGtal::Mesh< TPoint >::addQuadFace(), DGtal::Mesh< TPoint >::addVertex(), DGtal::Trace::beginBlock(), DGtal::Trace::endBlock(), DGtal::Trace::info(), and DGtal::trace.

Referenced by main().