CGAL 6.2 - Triangulated Surface Mesh Simplification

Loading...
Searching...
No Matches
List of all members | Public Types
CGAL::Surface_mesh_simplification::GarlandHeckbert_plane_and_line_policies< TriangleMesh, GeomTraits > Class Template Reference
Reference Manual

`#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_plane_and_line_policies.h>`

## Definition

template<typename TriangleMesh, typename GeomTraits>
class CGAL::Surface_mesh_simplification::GarlandHeckbert_plane_and_line_policies< TriangleMesh, GeomTraits >

The class `GarlandHeckbert_plane_and_line_policies` regroups the cost and placement policies based on the Garland-Heckbert "Plane and line" strategy of Liu and colleagues [6].

This policy enhances the original Garland-Heckbert quadric error metrics by adding to the cost the distance to the line passing through the input vertices and aligned with their normals. Compared to the "classic" plane strategy, this strategy improves the speed and the quality of the result (see Section Garland-Heckbert Cost and Placement Strategy).

Note
  Both the cost and the placement policies must be used together as they internally use and share information associating quadrics to vertices. Note however, that they may still be wrapped with behavior-modifying classes such as `Constrained_placement` or `Bounded_normal_change_filter`.

Template Parameters

  TriangleMesh | is the type of surface mesh being simplified, and must be a model of the `MutableFaceGraph` and `HalfedgeListGraph` concepts.
  GeomTraits | must be a model of `Kernel`. If you have passed a traits class in the optional named parameters in the call to `edge_collapse()`, the types must be identical.

These policies depend on the third party Eigen library.

See also
  `GarlandHeckbert_policies`
  `GarlandHeckbert_plane_policies`
  `GarlandHeckbert_probabilistic_plane_policies`
  `GarlandHeckbert_triangle_policies`
  `GarlandHeckbert_probabilistic_triangle_policies`

## Public Types
typedef unspecified_type | Get_cost
| The type of the Garland-Heckbert cost functor, a model of the concept `GetCost`
typedef unspecified_type | Get_placement
| The type of the Garland-Heckbert placement functor, a model of the concept `GetPlacement`

## Creation
template<typename NamedParameters = parameters::Default_named_parameters>
| GarlandHeckbert_plane_and_line_policies (TriangleMesh &tmesh, const NamedParameters &np=parameters::default_values())
| initializes the Garland-Heckbert plane and line policies.

## Accessors
const Get_cost & | get_cost () const
const Get_placement & | get_placement () const

## Constructor & Destructor Documentation

## ◆ GarlandHeckbert_plane_and_line_policies()

template<typename TriangleMesh , typename GeomTraits >
template<typename NamedParameters = parameters::Default_named_parameters>

CGAL::Surface_mesh_simplification::GarlandHeckbert_plane_and_line_policies< TriangleMesh, GeomTraits >::GarlandHeckbert_plane_and_line_policies | ( | TriangleMesh & | tmesh,
|  | const NamedParameters & | np = `parameters::default_values()`
| ) |  |

initializes the Garland-Heckbert plane and line policies.

Template Parameters

  NamedParameters | a sequence of Named Parameters

Parameters

  tmesh | the triangle mesh
  np | an optional sequence of Named Parameters among the ones listed below

Optional Named Parameters

  a property map associating to each vertex of `tmesh` a normal direction for that vertex Type: a class model of `ReadablePropertyMap` with `boost::graph_traits<PolygonMesh>::vertex_descriptor` as key type and `Vector_3` as value type Default: an internal map filled using `CGAL::Polygon_mesh_processing::compute_vertex_normals` |
  a multiplier of the error value for boundary edges to preserve the boundaries Type: double Default: 100 |
  a value that defines the weight of the line policies compared to the plane policies Type: double Default: 0.01 |