Cone Parametrization
Cone parametrization methods are a way to compute the parametrization of any surface with any topology. To understand the intuition that motivates them, one can think of a parametrization firstly as a process that displaces the curvature of a surface from its original distribution to zero everywhere except on the boundary. In the case of conformal maps, this idea is expressed by the Yamabe equation, that links the conformal parametrization, described by a scale factor \(u\), to the original and target Gaussian curvatures \(K\) and \(\hat{K}\) by:
This curvature displacement is the source of the parametrization's distortion and needs to be minimal in some sense. In an effort to reduce distortion, one can try to find a suitable target curvature distribution \(\hat{K}\) such that, for instance, the amplitude of \(u\) is minimized. This introduces specific vertices called cones (also called singularities) with non-zero angle defect in the parametrization. Cone parametrization therefore aim at finding a sparse set of cones that concentrate the whole curvature of the considered surface. From such a distribution, it is possible to retrieve \(uv\)-coordinates and an embedding in the plane by forcing these cones to lay on the boundary of the parametric domain. More precisely, given a set of cone vertices \(S \subset V\), the following general algorithm can be applied:
- Perform cuts on edges in order to link every cone vertex (see the
SingularityCutter
class); - Eventually perform additional cuts along non-contractible cycles in order to retrieve a disk topology;
- Apply any parametrization algorithm to the cut mesh.
ConformalConeParametrization
Bases: BaseParametrization
Given a user-defined cone distribution on the surface, this algorithm cuts an input surface mesh into a disk topology and parametrize it using conformal mapping
References
-
[1] Conformal equivalence of triangle meshes, Springborn B., Schröder P. and Pinkall U., ACM Transaction on Graphics, 2008
-
[2] Boundary first flattening, Sawhney R. and Crane K., ACM Transaction on Graphics, 2018
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
SurfaceMesh
|
Input mesh |
required |
cones
|
Attribute
|
float Attribute on vertices. Gives the target angle defects of vertices |
required |
verbose
|
bool
|
verbose mode. Defaults to False. |
False
|
Other Parameters:
Name | Type | Description |
---|---|---|
use_cotan |
bool
|
If True, uses cotangents in the laplacian matrix. Defaults to True. |
debug |
bool, optional)
|
debug mode. Generates additional output. Defaults to False. |
cut_graph
property
The seams returned as a polyline
Returns:
Name | Type | Description |
---|---|---|
PolyLine |
PolyLine
|
seams |
cut_mesh
property
The mesh where seams have been disconnected and are now boundary edges
Returns:
Name | Type | Description |
---|---|---|
SurfaceMesh |
SurfaceMesh
|
the mesh where seams have been disconnected |
flat_mesh
property
A flat representation of the mesh where uv-coordinates are copied to xy.
Returns:
Name | Type | Description |
---|---|---|
SurfaceMesh |
SurfaceMesh
|
the flat mesh |
frame_field
property
Local frames of reference rendered as a polyline
run()
Computes the parametrization