Nico Kruithof
This package allows to build a triangular mesh of a skin surface. Skin surfaces are used for modeling large molecules in biological computing. The surface is defined by a set of balls, representing the atoms of the molecule, and a shrink factor that determines the size of the smooth patches gluing the balls together. The construction of a triangular mesh of a smooth skin surface is often necessary for further analysis and for fast visualization. This package provides functions to construct a triangular mesh approximating the skin surface from a set of balls and a shrink factor. It also contains code to subdivide the mesh efficiently.
Concepts
Classes
Functions
|
template<class WP_iterator , class Polyhedron > |
void | CGAL::make_skin_surface_mesh_3 (Polyhedron &p, WP_iterator begin, WP_iterator end, double shrink_factor=.5, int nSubdivisions=0, bool grow_balls=true) |
| constructs a mesh of the skin surface defined by the weighted points and the shrink factor.
|
|
template<typename SkinSurface_3 , typename Polyhedron > |
void | CGAL::mesh_skin_surface_3 (const SkinSurface_3 &skin_surface, Polyhedron &p) |
| constructs a mesh of the skin_surface in p .
|
|
template<class SkinSurface_3 , class Polyhedron > |
void | CGAL::subdivide_skin_surface_mesh_3 (const SkinSurface_3 &skin_surface, Polyhedron &p, int nSubdiv=1) |
| subdivides a skin surface mesh constructed by the function mesh_skin_surface_3() using nSubdiv 1-4 split operations (each triangle is split into four sub-triangles) and the new vertices are moved towards the skin surface.
|
|
◆ make_skin_surface_mesh_3()
template<class WP_iterator , class Polyhedron >
void CGAL::make_skin_surface_mesh_3 |
( |
Polyhedron & |
p, |
|
|
WP_iterator |
begin, |
|
|
WP_iterator |
end, |
|
|
double |
shrink_factor = .5 , |
|
|
int |
nSubdivisions = 0 , |
|
|
bool |
grow_balls = true |
|
) |
| |
#include <CGAL/make_skin_surface_mesh_3.h>
constructs a mesh of the skin surface defined by the weighted points and the shrink factor.
The function make_skin_surface_mesh_3()
constructs a mesh isotopic to the skin surface based on the algorithm in [2]. It takes as input a range of weighted points and a shrink factor and outputs the mesh in a Polyhedron_3
object. A number of subdivision steps might be applied to refine the mesh.
- Template Parameters
-
WP_iterator | must be an input iterator with weighted points as value type. |
Polyhedron | must be an instance of Polyhedron_3 . |
- Precondition
Polyhedron::HDS
can be used as the template argument of the Polyhedron_incremental_builder_3<HDS>
.
- Examples
- Skin_surface_3/skin_surface_simple.cpp.
◆ mesh_skin_surface_3()
void CGAL::mesh_skin_surface_3 |
( |
const SkinSurface_3 & |
skin_surface, |
|
|
Polyhedron & |
p |
|
) |
| |
◆ subdivide_skin_surface_mesh_3()
void CGAL::subdivide_skin_surface_mesh_3 |
( |
const SkinSurface_3 & |
skin_surface, |
|
|
Polyhedron & |
p, |
|
|
int |
nSubdiv = 1 |
|
) |
| |