Lagrange
Loading...
Searching...
No Matches
lagrange::subdivision Namespace Reference

Subdivision surfaces. More...

Classes

struct  InterpolatedAttributeIds
 
class  InterpolatedAttributes
 Helper class to select which attributes to interpolate. More...
 
struct  MeshConverter
 
struct  SharpnessOptions
 Input options for the compute_sharpness function. More...
 
struct  SharpnessResults
 Attribute ids returned by the compute_sharpness function. More...
 
struct  SubdivisionOptions
 Mesh subdivision options. More...
 

Typedefs

using SubdivisionScheme = OpenSubdiv::Sdc::SchemeType
 

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>
SharpnessResults compute_sharpness (SurfaceMesh< Scalar, Index > &mesh, const SharpnessOptions &options={})
 Compute subdivision options to handle sharp edges and vertices based on existing mesh attributes.
 
template<typename input_meshType, typename output_meshType>
std::unique_ptr< output_meshType > subdivide_mesh (const input_meshType &input_mesh, SubdivisionScheme scheme_type, int maxlevel, OpenSubdiv::Sdc::Options::VtxBoundaryInterpolation vertexInterp=OpenSubdiv::Sdc::Options::VTX_BOUNDARY_EDGE_ONLY, OpenSubdiv::Sdc::Options::FVarLinearInterpolation primvarInterp=OpenSubdiv::Sdc::Options::FVAR_LINEAR_ALL)
 
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.
 
template<typename Scalar, typename Index>
SurfaceMesh< Scalar, Index > midpoint_subdivision (const SurfaceMesh< Scalar, Index > &mesh)
 Performs one step of midpoint subdivision for triangle meshes.
 
template<typename Scalar, typename Index>
SurfaceMesh< Scalar, Index > sqrt_subdivision (const SurfaceMesh< Scalar, Index > &mesh)
 Performs one step of sqrt(3)-subdivision.
 
template<typename Scalar, typename Index>
SurfaceMesh< Scalar, Index > subdivide_edge_adaptive (const SurfaceMesh< Scalar, Index > &input_mesh, OpenSubdiv::Far::TopologyRefiner &topology_refiner, const InterpolatedAttributeIds &interpolated_attr, const SubdivisionOptions &options)
 
template<typename Scalar, typename Index>
SurfaceMesh< Scalar, Index > subdivide_uniform (const SurfaceMesh< Scalar, Index > &input_mesh, OpenSubdiv::Far::TopologyRefiner &topology_refiner, const InterpolatedAttributeIds &interpolated_attr, const SubdivisionOptions &options)
 

Detailed Description

Subdivision surfaces.