|
Lagrange
|
Subdivision surfaces. More...
Classes | |
| class | InterpolatedAttributes |
| Helper class to select which attributes to interpolate. More... | |
| struct | SubdivisionOptions |
| Mesh subdivision options. More... | |
Enumerations | |
| enum class | SchemeType { Bilinear , CatmullClark , Loop } |
| Subdivision scheme. More... | |
| enum class | VertexBoundaryInterpolation { None , EdgeOnly , EdgeAndCorner } |
| Boundary Interpolation Rules. More... | |
| enum class | FaceVaryingInterpolation { None , CornersOnly , CornersPlus1 , CornersPlus2 , Boundaries , All } |
| Face-varying Interpolation Rules. More... | |
| enum class | RefinementType { Uniform , EdgeAdaptive } |
| Topology refinement method. More... | |
Functions | |
| template<typename Scalar , typename Index > | |
| SurfaceMesh< Scalar, Index > | subdivide_mesh (const SurfaceMesh< Scalar, Index > &mesh, const SubdivisionOptions &options={}) |
| Evaluates the subdivision surface of a polygonal mesh. More... | |
| template<typename Scalar , typename Index > | |
| SurfaceMesh< Scalar, Index > | midpoint_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
| Performs one step of midpoint subdivision for triangle meshes. More... | |
| template<typename Scalar , typename Index > | |
| SurfaceMesh< Scalar, Index > | sqrt_subdivision (const SurfaceMesh< Scalar, Index > &mesh) |
| Performs one step of sqrt(3)-subdivision. More... | |
Subdivision surfaces.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Subdivision scheme.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Boundary Interpolation Rules.
Boundary interpolation rules control how subdivision and the limit surface behave for faces adjacent to boundary edges and vertices.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Face-varying Interpolation Rules.
Face-varying interpolation rules control how face-varying data is interpolated both in the interior of face-varying regions (smooth or linear) and at the boundaries where it is discontinuous (constrained to be linear or "pinned" in a number of ways). Where the topology is continuous and the interpolation chosen to be smooth, the behavior of face-varying interpolation will match that of the vertex interpolation.
|
strong |
#include <lagrange/subdivision/mesh_subdivision.h>
Topology refinement method.
| SurfaceMesh< Scalar, Index > subdivide_mesh | ( | const SurfaceMesh< Scalar, Index > & | mesh, |
| const SubdivisionOptions & | options = {} |
||
| ) |
| SurfaceMesh< Scalar, Index > midpoint_subdivision | ( | const SurfaceMesh< Scalar, Index > & | mesh | ) |
#include <lagrange/subdivision/midpoint_subdivision.h>
Performs one step of midpoint subdivision for triangle meshes.
| [in,out] | mesh | Input mesh to subdivide. |
| SurfaceMesh< Scalar, Index > sqrt_subdivision | ( | const SurfaceMesh< Scalar, Index > & | mesh | ) |
#include <lagrange/subdivision/sqrt_subdivision.h>
Performs one step of sqrt(3)-subdivision.
Implementation based on:
Kobbelt, Leif. "√3-subdivision." Proceedings of the 27th annual conference on Computer graphics and interactive techniques. 2000. https://doi.org/10.1145/344779.344835
| [in] | mesh | Input mesh to subdivide. Only triangle meshes are supported. |