\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 5.0.1 - 3D Surface Subdivision Methods
CGAL::CatmullClark_mask_3< PolygonMesh, VertexPointMap > Class Template Reference

#include <CGAL/Subdivision_method_3/subdivision_masks_3.h>

Inherits from

CGAL::Linear_mask_3< PolygonMesh, VertexPointMap >.

Definition

template<class PolygonMesh, class VertexPointMap = typename boost::property_map<PolygonMesh, vertex_point_t>::type>
class CGAL::CatmullClark_mask_3< PolygonMesh, VertexPointMap >

The geometry mask of Catmull-Clark subdivision.

A stencil determines a source neighborhood whose points contribute to the position of a refined point. The geometry mask of a stencil specifies the computation on the nodes of the stencil. CatmullClark_mask_3 implements the geometry masks of Catmull-Clark subdivision on models of MutableFaceGraph, such as Polyhedron_3 and Surface_mesh.

Template Parameters
PolygonMeshmust be a model of the concept MutableFaceGraph.
VertexPointMapmust be a model of WritablePropertyMap with value type Point_3
CCBorderMask.svg
Is Model Of:
PQQMask_3
See also
CGAL::Subdivision_method_3

Public Types

typedef PolygonMesh Mesh
 
- Public Types inherited from CGAL::Linear_mask_3< PolygonMesh, VertexPointMap >
typedef PolygonMesh Mesh
 
- Public Types inherited from CGAL::PQQ_stencil_3< PolygonMesh, VertexPointMap >
typedef PolygonMesh Mesh
 
typedef boost::property_map< Mesh, vertex_point_t >::type Vertex_pmap
 
typedef boost::graph_traits< Mesh >::vertex_descriptor vertex_descriptor
 
typedef boost::graph_traits< Mesh >::halfedge_descriptor halfedge_descriptor
 
typedef boost::graph_traits< Mesh >::face_descriptor face_descriptor
 
typedef boost::property_traits< Vertex_pmap >::value_type Point
 
typedef Kernel_traits< Point >::Kernel Kernel
 
typedef Kernel::FT FT
 
typedef Kernel::Vector_3 Vector
 

Creation

 CatmullClark_mask_3 (Mesh *pmesh)
 Constructor. More...
 
 CatmullClark_mask_3 (Mesh *pmesh, VertexPointMap vpmap)
 Constructor with a custom vertex point property map.
 

Stencil functions

void edge_node (halfedge_descriptor edge, Point &pt)
 computes the Catmull-Clark edge-point pt of the edge edge.
 
void vertex_node (vertex_descriptor vertex, Point &pt)
 computes the Catmull-Clark vertex-point pt of the vertex vertex.
 
void border_node (halfedge_descriptor edge, Point &ept, Point &vpt)
 computes the Catmull-Clark edge-point ept and the Catmull-Clark vertex-point vpt of the border edge edge. More...
 

Additional Inherited Members

- Public Member Functions inherited from CGAL::Linear_mask_3< PolygonMesh, VertexPointMap >
 Linear_mask_3 (Mesh *pmesh)
 
 Linear_mask_3 (Mesh *pmesh, VertexPointMap vpmap)
 
void face_node (face_descriptor facet, Point &pt)
 
void edge_node (halfedge_descriptor edge, Point &pt)
 
void vertex_node (vertex_descriptor vertex, Point &pt)
 
void border_node (halfedge_descriptor edge, Point &ept, Point &)
 
- Public Member Functions inherited from CGAL::PQQ_stencil_3< PolygonMesh, VertexPointMap >
 PQQ_stencil_3 (Mesh *pmesh)
 
 PQQ_stencil_3 (Mesh *pmesh, VertexPointMap vpmap)
 
void face_node (face_descriptor, Point &)
 
void edge_node (halfedge_descriptor, Point &)
 
void vertex_node (vertex_descriptor, Point &)
 
void border_node (halfedge_descriptor, Point &, Point &)
 
- Public Attributes inherited from CGAL::PQQ_stencil_3< PolygonMesh, VertexPointMap >
Mesh * pmesh
 
VertexPointMap vpmap
 

Constructor & Destructor Documentation

◆ CatmullClark_mask_3()

template<class PolygonMesh , class VertexPointMap = typename boost::property_map<PolygonMesh, vertex_point_t>::type>
CGAL::CatmullClark_mask_3< PolygonMesh, VertexPointMap >::CatmullClark_mask_3 ( Mesh *  pmesh)

Constructor.

The default vertex point property map, get(vertex_point, pmesh), is used.

Member Function Documentation

◆ border_node()

template<class PolygonMesh , class VertexPointMap = typename boost::property_map<PolygonMesh, vertex_point_t>::type>
void CGAL::CatmullClark_mask_3< PolygonMesh, VertexPointMap >::border_node ( halfedge_descriptor  edge,
Point &  ept,
Point &  vpt 
)

computes the Catmull-Clark edge-point ept and the Catmull-Clark vertex-point vpt of the border edge edge.