diff --git a/src/OpenMesh/Apps/CMakeLists.txt b/src/OpenMesh/Apps/CMakeLists.txt index f60e90f9d819f75143bca80e306926ca709dc420..b88bb6a872115da21ec8f2904d5f23232e8a6b40 100644 --- a/src/OpenMesh/Apps/CMakeLists.txt +++ b/src/OpenMesh/Apps/CMakeLists.txt @@ -7,6 +7,7 @@ find_package (GLEW) acg_qt4 () +add_subdirectory (Dualizer) add_subdirectory (Decimating/commandlineDecimater) add_subdirectory (Smoothing) add_subdirectory (Subdivider/commandlineSubdivider) diff --git a/src/OpenMesh/Apps/Dualizer/CMakeLists.txt b/src/OpenMesh/Apps/Dualizer/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..861f5fed76c1407b58a3ab323c503ce89e816ff6 --- /dev/null +++ b/src/OpenMesh/Apps/Dualizer/CMakeLists.txt @@ -0,0 +1,20 @@ +include (ACGCommon) + +include_directories ( + ../../.. + ${CMAKE_CURRENT_SOURCE_DIR} +) + +set (targetName Dualizer) + +# collect all header and source files +acg_append_files (headers "*.hh" .) +acg_append_files (sources "*.cc" .) + +acg_add_executable (${targetName} ${headers} ${sources}) + +target_link_libraries (${targetName} + OpenMeshCore + OpenMeshTools +) + diff --git a/src/OpenMesh/Apps/Dualizer/dualizer.cc b/src/OpenMesh/Apps/Dualizer/dualizer.cc new file mode 100644 index 0000000000000000000000000000000000000000..7fbf8d7702e5a92e192b54d02182254f03566d8f --- /dev/null +++ b/src/OpenMesh/Apps/Dualizer/dualizer.cc @@ -0,0 +1,75 @@ +/*===========================================================================*\ + * * + * OpenMesh * + * Copyright (C) 2001-2009 by Computer Graphics Group, RWTH Aachen * + * www.openmesh.org * + * * + *---------------------------------------------------------------------------* + * This file is part of OpenMesh. * + * * + * OpenMesh 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 with the * + * following exceptions: * + * * + * If other files instantiate templates or use macros * + * or inline functions from this file, or you compile this file and * + * link it with other files to produce an executable, this file does * + * not by itself cause the resulting executable to be covered by the * + * GNU Lesser General Public License. This exception does not however * + * invalidate any other reasons why the executable file might be * + * covered by the GNU Lesser General Public License. * + * * + * OpenMesh 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 Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU LesserGeneral Public * + * License along with OpenMesh. If not, * + * see . * + * * +\*===========================================================================*/ + +/*===========================================================================*\ + * * + * $Revision$ * + * $Date$ * + * * +\*===========================================================================*/ + +#include + +#include +#include + +#include + +typedef OpenMesh::PolyMesh_ArrayKernelT<> MyMesh; + + +int main(int argc, char **argv) +{ + MyMesh mesh; + + // read mesh from argv[1] + if ( !OpenMesh::IO::read_mesh(mesh, argv[1]) ) + { + std::cerr << "Cannot read mesh from file" << argv[1] << std::endl; + return 1; + } + + MyMesh *dual = OpenMesh::Util::MeshDual(mesh); + + // write mesh to output.obj + if ( !OpenMesh::IO::write_mesh(*dual, "output.obj") ) + { + std::cerr << "Cannot write mesh to file 'output.obj'" << std::endl; + return 1; + } + + delete dual; + + return 0; +}