You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* initial work on affine
* add center option to logmap strategy
* use source initial guess for surface centers
* Revert "use source initial guess for surface centers"
This reverts commit cb3dea1.
* add adaptive affine heat method
* docs for affine heat method
* add caveat about intrinsic tangent space alignment
Copy file name to clipboardExpand all lines: docs/docs/surface/algorithms/vector_heat_method.md
+47-7Lines changed: 47 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@ This section describes the _Vector Heat Method_ in geometry-central, which compu
2
2
3
3
Note that these quantities all depend on the _intrinsic_ geometry of a surface (via the `IntrinsicGeometryInterface`). Therefore, these routines can be run on abstract geometric domains as well as traditional surfaces in 3D.
4
4
5
-
These algorithms are described in [The Vector Heat Method](http://www.cs.cmu.edu/~kmcrane/Projects/VectorHeatMethod/paper.pdf).
5
+
These algorithms are described in [The Vector Heat Method](http://www.cs.cmu.edu/~kmcrane/Projects/VectorHeatMethod/paper.pdf) and [The Affine Heat Method](https://www.yousufsoliman.com/projects/the-affine-heat-method.html).
Compute the nearest-neighbor extension of scalar data defined at isolated vertices to the entire domain. The input is a list of vertices and their corresponding values.
Compute the nearest-neighbor extension of scalar data defined at isolated points to the entire domain. The input is a list of [surface points](../../utilities/surface_point/) and their corresponding values.
60
60
@@ -83,25 +83,56 @@ The _logarithmic map_ is a very special 2D local parameterization of a surface a
These routines compute the logarithmic map using the vector heat method.
86
+
These routines compute the logarithmic map using the vector heat method or the affine heat method. Several strategies are available, specified by the `LogMapStrategy` enum:
- `LogMapStrategy::VectorHeat`: the original algorithm from "The Vector Heat Method". Fast, but may have some distortion and warping.
89
+
- `LogMapStrategy::AffineLocal`: the fast local algorithm from "The Affine Heat Method". Fast & highly accurate near source. Generates extremely regular coordinates, but may have artifacts if you do not use an intrinsic Delaunay triangulation (see below).
90
+
- `LogMapStrategy::AffineAdaptive`: the global algorithm from "The Affine Heat Method". Highest quality. Requires factoring a new matrix each time, so it is significantly slower for repeated solves, though roughly similar cost if just solving once.
Compute the logarithmic map with respect to the given source point, which is a general [surface point](../../utilities/surface_point/).
98
102
99
103
The angular coordinate of the log map will be respect to the tangent space of the source vertex, edge, or face.
100
104
105
+
!!! note "intrinsic triangulations make logmaps much more accurate"
106
+
107
+
Using an [intrinsic triangulation](/surface/intrinsic_triangulations/basics) will make your logarithmic maps dramatically more accurate, especially on meshes with irregular triangles, at little cost. The `AffineLocal` strategy in particular benefits greatly from operating on a Delaunay intrinsic triangulation.
108
+
109
+
**Example: log maps with intrinsic triangulations**
By default, the resulting logarithmic map has coordinates defined in the tangent space of the source point on the intrinsic mesh. At vertices these spaces are the same, but at a general `SurfacePoint` inside some face you might want to align tangent spaces; see the [intrinsic triangulation](/surface/intrinsic_triangulations/basics) documentation for details. There may or may not be a builtin method to do the alignment, depending on your setting.
130
+
131
+
101
132
102
133
## Citation
103
134
104
-
If these algorithms contribute to academic work, please cite the following paper:
135
+
If these algorithms contribute to academic work, please cite the following paper(s):
105
136
106
137
```bib
107
138
@article{sharp2019vector,
@@ -114,4 +145,13 @@ If these algorithms contribute to academic work, please cite the following paper
0 commit comments