Some changed based on the current manual

This commit is contained in:
Fernando Cacciola 2006-09-13 00:13:03 +00:00
parent fa963c796b
commit f4bc137424
6 changed files with 125 additions and 43 deletions

2
.gitattributes vendored
View File

@ -2080,6 +2080,8 @@ Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Ed
Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Partial_collapse_data.h -text Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Partial_collapse_data.h -text
Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Set_full_collapse_data.h -text Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Set_full_collapse_data.h -text
Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Set_partial_collapse_data.h -text Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Set_partial_collapse_data.h -text
Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Polyhedron.h -text
Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Vertex_is_fixed_map_always_false.h -text
Surface_mesh_simplification/test/Surface_mesh_simplification/edge_collapse_test.cpp -text Surface_mesh_simplification/test/Surface_mesh_simplification/edge_collapse_test.cpp -text
Surface_mesh_simplification/test/Surface_mesh_simplification/edge_collapse_test.kdevelop -text Surface_mesh_simplification/test/Surface_mesh_simplification/edge_collapse_test.kdevelop -text
Surface_mesher/demo/Surface_mesher/windows/Mesh.suo -text Surface_mesher/demo/Surface_mesher/windows/Mesh.suo -text

View File

@ -179,48 +179,49 @@ Some lines are marked with \ccc{<==== NOTICE THIS} to drive the attention to an
This example illustrates the simplest of the cases using an ordinary polyhedron as surface and all default policies. This example illustrates the simplest of the cases using an ordinary polyhedron as surface and all default policies.
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_polyhedron.cpp}
\subsubsection{Example Using Enriched Polyhedron} \subsubsection{Example Using Enriched Polyhedron}
This example shows how to use an enriched polyhedron which stores the extra pointer in the halfedges. This example shows how to use an enriched polyhedron which stores the extra pointer in the halfedges.
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_enriched_polyhedron_example.cpp}
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_enriched_polyhedron.cpp}
\subsubsection{Example using Non-Default Cost Strategy} \subsubsection{Example using Non-Default Cost Strategy}
This example shows how to use a cost strategy other than the default. This example shows how to use a cost strategy other than the default.
\ccIncludeExampleCode{Surface_mesh_simplification/MP_edge_collapse_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/MP_edge_collapse_polyhedron.cpp}
\subsubsection{Example using a full cache for the Collapse Data} \subsubsection{Example using a full cache for the Collapse Data}
This example shows how to use a full collapse-data cache for efficiency. The setup in this case is slightly different for the default cost-strategy (Lindstrom-Turk) than for alternative strategies, so both cases are shown. This example shows how to use a full collapse-data cache for efficiency. The setup in this case is slightly different for the default cost-strategy (Lindstrom-Turk) than for alternative strategies, so both cases are shown.
\ccIncludeExampleCode{Surface_mesh_simplification/Edge_collapse_fully_cached_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/Edge_collapse_fully_cached_polyhedron.cpp}
\subsubsection{Example using a Visitor} \subsubsection{Example using a Visitor}
This example shows how to use a visitor to track the simplification process. It also shows how to setup the Lindstrom-Turk cost strategy but with a partial case (unlike a full cache as in the previous example). This example shows how to use a visitor to track the simplification process. It also shows how to setup the Lindstrom-Turk cost strategy but with a partial case (unlike a full cache as in the previous example).
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_visited_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_visited_polyhedron.cpp}
\subsubsection{Example using Fixed Vertices via an external Property Map} \subsubsection{Example using Fixed Vertices via an external Property Map}
This example shows how to fix vertices to prevent edges from being collapsed, using an ordinary polyhedron and external maps. This example shows how to fix vertices to prevent edges from being collapsed, using an ordinary polyhedron and external maps.
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_with_fixed_vertices_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_with_fixed_vertices_polyhedron.cpp}
\subsubsection{Example using Fixed Vertices via an Enriched Polyhedron} \subsubsection{Example using Fixed Vertices via an Enriched Polyhedron}
This example shows how to fix vertices to prevent edges from being collapsed using an enriched polyhedron. This example shows how to fix vertices to prevent edges from being collapsed using an enriched polyhedron.
\ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example.cpp} \ccIncludeExampleCode{Surface_mesh_simplification/LT_edge_collapse_with_fixed_vertices_enriched_polyhedron.cpp}
% +------------------------------------------------------------------------+ % +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of sfsooter %%RefPage: end of main body, begin of sfsooter

View File

@ -11,7 +11,7 @@
%\input{Surface_mesh_simplification/PkgDescription.tex} %\input{Surface_mesh_simplification/PkgDescription.tex}
\minitoc %\minitoc
\input{Surface_mesh_simplification/Surface_mesh_simplification.tex} \input{Surface_mesh_simplification/Surface_mesh_simplification.tex}

View File

@ -31,50 +31,50 @@ LDFLAGS = $(CGAL_LDFLAGS)
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
all: \ all: \
LT_edge_collapse_polyhedron_example \ LT_edge_collapse_polyhedron \
LT_edge_collapse_enriched_polyhedron_example \ LT_edge_collapse_enriched_polyhedron \
MP_edge_collapse_polyhedron_example \ MP_edge_collapse_polyhedron \
Edge_collapse_fully_cached_polyhedron_example \ Edge_collapse_fully_cached_polyhedron \
LT_edge_collapse_visited_polyhedron_example \ LT_edge_collapse_visited_polyhedron \
LT_edge_collapse_with_fixed_vertices_polyhedron_example \ LT_edge_collapse_with_fixed_vertices_polyhedron \
LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example \ LT_edge_collapse_with_fixed_vertices_enriched_polyhedron \
LT_edge_collapse_polyhedron_example$(EXE_EXT): LT_edge_collapse_polyhedron_example$(OBJ_EXT) LT_edge_collapse_polyhedron$(EXE_EXT): LT_edge_collapse_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_polyhedron \
LT_edge_collapse_polyhedron_example$(OBJ_EXT) $(LDFLAGS) LT_edge_collapse_polyhedron$(OBJ_EXT) $(LDFLAGS)
LT_edge_collapse_enriched_polyhedron_example$(EXE_EXT): LT_edge_collapse_enriched_polyhedron_example$(OBJ_EXT) LT_edge_collapse_enriched_polyhedron$(EXE_EXT): LT_edge_collapse_enriched_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_enriched_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_enriched_polyhedron \
LT_edge_collapse_enriched_polyhedron_example$(OBJ_EXT) $(LDFLAGS) LT_edge_collapse_enriched_polyhedron$(OBJ_EXT) $(LDFLAGS)
MP_edge_collapse_polyhedron_example$(EXE_EXT): MP_edge_collapse_polyhedron_example$(OBJ_EXT) MP_edge_collapse_polyhedron$(EXE_EXT): MP_edge_collapse_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)MP_edge_collapse_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)MP_edge_collapse_polyhedron \
MP_edge_collapse_polyhedron_example$(OBJ_EXT) $(LDFLAGS) MP_edge_collapse_polyhedron$(OBJ_EXT) $(LDFLAGS)
Edge_collapse_fully_cached_polyhedron_example$(EXE_EXT): Edge_collapse_fully_cached_polyhedron_example$(OBJ_EXT) Edge_collapse_fully_cached_polyhedron$(EXE_EXT): Edge_collapse_fully_cached_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Edge_collapse_fully_cached_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Edge_collapse_fully_cached_polyhedron \
Edge_collapse_fully_cached_polyhedron_example$(OBJ_EXT) $(LDFLAGS) Edge_collapse_fully_cached_polyhedron$(OBJ_EXT) $(LDFLAGS)
LT_edge_collapse_visited_polyhedron_example$(EXE_EXT): LT_edge_collapse_visited_polyhedron_example$(OBJ_EXT) LT_edge_collapse_visited_polyhedron$(EXE_EXT): LT_edge_collapse_visited_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_visited_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_visited_polyhedron \
LT_edge_collapse_visited_polyhedron_example$(OBJ_EXT) $(LDFLAGS) LT_edge_collapse_visited_polyhedron$(OBJ_EXT) $(LDFLAGS)
LT_edge_collapse_with_fixed_vertices_polyhedron_example$(EXE_EXT): LT_edge_collapse_with_fixed_vertices_polyhedron_example$(OBJ_EXT) LT_edge_collapse_with_fixed_vertices_polyhedron$(EXE_EXT): LT_edge_collapse_with_fixed_vertices_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_with_fixed_vertices_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_with_fixed_vertices_polyhedron \
LT_edge_collapse_with_fixed_vertices_polyhedron_example$(OBJ_EXT) $(LDFLAGS) LT_edge_collapse_with_fixed_vertices_polyhedron$(OBJ_EXT) $(LDFLAGS)
LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example$(EXE_EXT): LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example$(OBJ_EXT) LT_edge_collapse_with_fixed_vertices_enriched_polyhedron$(EXE_EXT): LT_edge_collapse_with_fixed_vertices_enriched_polyhedron$(OBJ_EXT)
$(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example \ $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)LT_edge_collapse_with_fixed_vertices_enriched_polyhedron \
LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example$(OBJ_EXT) $(LDFLAGS) LT_edge_collapse_with_fixed_vertices_enriched_polyhedron$(OBJ_EXT) $(LDFLAGS)
clean: \ clean: \
LT_edge_collapse_polyhedron_example.clean \ LT_edge_collapse_polyhedron.clean \
LT_edge_collapse_enriched_polyhedron_example.clean \ LT_edge_collapse_enriched_polyhedron.clean \
MP_edge_collapse_polyhedron_example.clean \ MP_edge_collapse_polyhedron.clean \
Edge_collapse_fully_cached_polyhedron_example.clean \ Edge_collapse_fully_cached_polyhedron.clean \
LT_edge_collapse_visited_polyhedron_example.clean \ LT_edge_collapse_visited_polyhedron.clean \
LT_edge_collapse_with_fixed_vertices_polyhedron_example.clean \ LT_edge_collapse_with_fixed_vertices_polyhedron.clean \
LT_edge_collapse_with_fixed_vertices_enriched_polyhedron_example.clean \ LT_edge_collapse_with_fixed_vertices_enriched_polyhedron.clean \
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
# suffix rules # suffix rules

View File

@ -0,0 +1,31 @@
// Copyright (c) 2005, 2006 Fernando Luis Cacciola Carballal. All rights reserved.
//
// This file is part of CGAL (www.cgal.org); you may redistribute it under
// the terms of the Q Public License version 1.0.
// See the file LICENSE.QPL distributed with CGAL.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// $URL: svn+ssh://fcacciola@scm.gforge.inria.fr/svn/cgal/trunk/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification_edge_collapse.h $
// $Id: Surface_mesh_simplification_edge_collapse.h 33697 2006-08-24 17:52:41Z fcacciola $
//
// Author(s) : Fernando Cacciola <fernando_cacciola@ciudad.com.ar>
//
#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLYHEDRON_H
#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLYHEDRON_H
#include <CGAL/Polyhedron_3.h>
#include <CGAL/boost/graph/Polyhedron_BGL.h>
#include <CGAL/boost/graph/Polyhedron_extended_BGL.h>
#include <CGAL/boost/graph/Polyhedron_BGL_properties.h>
#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLYHEDRON_H
// EOF //

View File

@ -0,0 +1,48 @@
// Copyright (c) 2006 Geometry Factory (France).
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org); you may redistribute it under
// the terms of the Q Public License version 1.0.
// See the file LICENSE.QPL distributed with CGAL.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// $URL: svn+ssh://fcacciola@scm.gforge.inria.fr/svn/cgal/trunk/Surface_mesh_simplification/include/CGAL/Surface_mesh_simplification/Vertex_is_fixed_map_always_false.h $
// $Id: Vertex_is_fixed_map_always_false.h 33858 2006-08-30 12:18:43Z fcacciola $
//
//
// Author(s): Fernando Cacciola <fernando.cacciola@gmail.com>
#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_IS_VERTEX_FIXED_MAP_ALWAYS_FALSE_H
#define CGAL_SURFACE_MESH_SIMPLIFICATION_IS_VERTEX_FIXED_MAP_ALWAYS_FALSE_H
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
CGAL_BEGIN_NAMESPACE
template<class Graph_>
class Vertex_is_fixed_map_always_false : public boost::put_get_helper<bool, Vertex_is_fixed_map_always_false<Graph_> >
{
private:
typedef Graph_ Graph ;
public:
typedef boost::readable_property_map_tag category;
typedef bool value_type;
typedef bool reference;
typedef typename boost::graph_traits<Graph const>::vertex_descriptor key_type;
reference operator[](key_type const& v) const { return false ; }
};
CGAL_END_NAMESPACE
#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_IS_VERTEX_FIXED_MAP_ALWAYS_FALSE_H