#include <opennurbs_subd.h>
|
enum | ConcaveCornerOption : unsigned char { ConcaveCornerOption::Unset = 0,
ConcaveCornerOption::None = 1,
ConcaveCornerOption::AtMeshCorner = 2
} |
| Defines how concave corners are treated. More...
|
|
enum | ConvexCornerOption : unsigned char { ConvexCornerOption::Unset = 0,
ConvexCornerOption::None = 1,
ConvexCornerOption::AtMeshCorner = 2
} |
| Defines how convex corners are treated. More...
|
|
enum | InteriorCreaseOption : unsigned char { InteriorCreaseOption::Unset = 0,
InteriorCreaseOption::None = 1,
InteriorCreaseOption::AtMeshDoubleEdge = 2
} |
| Specifies the test used to determine when an interior mesh edge generates an interior SubD creased edge. More...
|
|
enum | TextureCoordinatesOption : unsigned char {
TextureCoordinatesOption::Unset = 0,
TextureCoordinatesOption::None = 1,
TextureCoordinatesOption::Automatic = 2,
TextureCoordinatesOption::Packed = 3,
TextureCoordinatesOption::CopyMapping = 4,
TextureCoordinatesOption::CopyCoordinates = 5
} |
| Specifies how texture coordinate information is transferred from the mesh to the SubD. More...
|
|
◆ ConcaveCornerOption
Defines how concave corners are treated.
Concave corner options
Enumerator |
---|
Unset | summary>The option is not set.
summary>No concave corners. In general, this is the best choice.
|
None | summary> A concave subd corner will appear at input mesh boundary vertices where the corner angle >= MinimumConcaveCornerAngleRadians() and the number of edges the end at the vertex is >= MinimumConcaveCornerEdgeCount(). /summary>
|
AtMeshCorner | |
◆ ConvexCornerOption
Defines how convex corners are treated.
Convex corner options
Enumerator |
---|
Unset | summary>The option is not set.
summary>No convex corners. In general,this is the best choice.
|
None | summary> A convex subd corner will appear at input mesh boundary vertices where the corner angle <= MaximumConvexCornerAngleRadians() and the number of edges the end at the vertex is <= MaximumConvexCornerEdgeCount(). /summary>
|
AtMeshCorner | |
◆ InteriorCreaseOption
Specifies the test used to determine when an interior mesh edge generates an interior SubD creased edge.
Custom interior crease options
Enumerator |
---|
Unset | summary>The interior crease test is not defined.
summary>No interior creases.
|
None | summary>An interior mesh double edge will create an interior SubD creased edge. An interior mesh double edge occurs when the sides of two mesh faces have have distinct vertex indices and identical vertex locations. /summary>
|
AtMeshDoubleEdge | |
◆ TextureCoordinatesOption
Specifies how texture coordinate information is transferred from the mesh to the SubD.
Texture coordinates
Enumerator |
---|
Unset | summary>The option is not set.
summary>No texture coordianate information is transferred from the mesh.
|
None | summary> If the mesh has a mapping, then TextureCoordinatesOption::CopyMapping is used. Otherwise if the mesh has texture coordinates, then TextureCoordinatesOption::CopyCoordinates is used. Otherwise TextureCoordinatesOption::Packed is used. /summary>
|
Automatic | summary> No texture coordianate information is transferred from the mesh. The SubD faces are packed. /summary>
|
Packed | summary>Texture coordinates mapping information is copied from the mesh. Generally this is the best choice because common mappings, like planar, will appear as most people expect on the SubD. /summary>
|
CopyMapping | summary> If a mesh has custom texture coordinates, the custom texture coordinates are transferred to the SubD. This requires more memory resources, slows subdivision evaluation, often produces unattractive results on n-gons, and distorts the texture when comes from a common mapping technique, like planar. This option may be useful when the mesh contains only triangles and quads and the custom texture coordinates are of high quality. /summary>
|
CopyCoordinates | |
◆ ON_SubDFromMeshParameters() [1/2]
ON_SubDFromMeshParameters::ON_SubDFromMeshParameters |
( |
| ) |
|
|
default |
◆ ~ON_SubDFromMeshParameters()
ON_SubDFromMeshParameters::~ON_SubDFromMeshParameters |
( |
| ) |
|
|
default |
◆ ON_SubDFromMeshParameters() [2/2]
◆ ConcaveCornerOptionFromUnsigned()
◆ ConvexCornerOptionFromUnsigned()
◆ CopyConcaveCornerTest()
Description: Copy all settings that control concave corner vertices are created. Parameters: source_options - [in] Returns: The currently selected concave corner option.
◆ CopyConvexCornerTest()
Description: Copy all settings that control how convex corner vertices are created. Parameters: source_options - [in] Returns: The currently selected convex corner option.
◆ CopyInteriorCreaseTest()
Description: Copy all settings that control how interior crease edges are created. Parameters: source_options - [in] Returns: The currently selected interior crease option.
◆ GetConcaveCornerOption()
Returns: The currently selected concave corner option.
◆ GetConvexCornerOption()
Returns: The currently selected convex corner option.
◆ GetInteriorCreaseOption()
Returns: The interior crease option.
◆ GetTextureCoordinatesOption()
Returns: The texture coorindates option.
◆ InteriorCreaseOptionFromUnsigned()
◆ InterpolateMeshVertices()
bool ON_SubDFromMeshParameters::InterpolateMeshVertices |
( |
| ) |
const |
Returns: false - In ON_SubD::CreateFromMesh(), input mesh vertex locations will be used to set subd vertex control net locations. true - In ON_SubD::CreateFromMesh(), input mesh vertex locations will be used to set subd vertex limit surface locations. Remark: Interpolation computation is available in Rhino, Rhino compute, Rhino Inside, Grasshopper. Interpolation computation is not available in the opennurbs IO toolkit.
◆ MaximumConvexCornerAngleRadians()
double ON_SubDFromMeshParameters::MaximumConvexCornerAngleRadians |
( |
| ) |
const |
Description: If ConvexCornerTest() ConvexCornerOption::at_mesh_corner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount() edges and the corner angle is <= MaximumConvexCornerAngleRadians().
The default value is 2pi/3 = 120 degrees. Returns: The maximum corner angle.
◆ MaximumConvexCornerEdgeCount()
unsigned int ON_SubDFromMeshParameters::MaximumConvexCornerEdgeCount |
( |
| ) |
const |
Description: If ConvexCornerTest() ConvexCornerOption::at_mesh_corner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount() edges and the corner angle is <= MaximumConvexCornerAngleRadians(). Returns: The maximum number of edges at a convex corner vertex.
◆ MergeColinearBoundaryEdges()
bool ON_SubDFromMeshParameters::MergeColinearBoundaryEdges |
( |
| ) |
const |
◆ MergeColinearInteriorEdges()
bool ON_SubDFromMeshParameters::MergeColinearInteriorEdges |
( |
| ) |
const |
◆ MinimumConcaveCornerAngleRadians()
double ON_SubDFromMeshParameters::MinimumConcaveCornerAngleRadians |
( |
| ) |
const |
Description: If ConcaveCornerTest() ConcaveCornerOption::AtMeshConcaveCorner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount() edges and the corner angle is >= MinimumConcaveCornerAngleRadians(). Returns: The minimum corner angle.
◆ MinimumConcaveCornerEdgeCount()
unsigned int ON_SubDFromMeshParameters::MinimumConcaveCornerEdgeCount |
( |
| ) |
const |
Description: If ConcaveCornerTest() ConcaveCornerOption::AtMeshConcaveCorner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount() edges and the corner angle is >= MinimumConcaveCornerAngleRadians(). Returns: The minimum number of edges at a concave corner vertex.
◆ operator=()
◆ SetConcaveCornerOption()
Parameters: concave_corner_option - [in]
◆ SetConvexCornerOption()
Parameters: convex_corner_option - [in]
◆ SetInteriorCreaseOption()
Parameters: interior_crease_option - [in]
◆ SetInterpolateMeshVertices()
void ON_SubDFromMeshParameters::SetInterpolateMeshVertices |
( |
bool |
bInterpolateMeshVertices | ) |
|
Parameters: false In ON_SubD::CreateFromMesh(), input mesh vertex locations will be used to set subd vertex control net locations. This is the fastest and most robust way to create a subd from a mesh. true In ON_SubD::CreateFromMesh(), input mesh vertex locations will be used to set subd vertex limit surface locations. If there are a large number of vertices, this option can require lots of computation. Remark: Interpolation computation is available in Rhino, Rhino compute, Rhino Inside, Grasshopper. Interpolation computation is not available in the opennurbs IO toolkit.
◆ SetMaximumConvexCornerAngleRadians()
void ON_SubDFromMeshParameters::SetMaximumConvexCornerAngleRadians |
( |
double |
maximum_convex_corner_angle_radians | ) |
|
Description: If ConvexCornerTest() ConvexCornerOption::at_mesh_corner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount() edges and the corner angle is <= MaximumConvexCornerAngleRadians().
The default value is 2pi/3 = 120 degrees. Parameters: maximum_convex_corner_angle_radians - [in] > 0.0 and < ON_PI
◆ SetMaximumConvexCornerEdgeCount()
void ON_SubDFromMeshParameters::SetMaximumConvexCornerEdgeCount |
( |
unsigned int |
maximum_convex_corner_edge_count | ) |
|
Description: If ConvexCornerTest() ConvexCornerOption::at_mesh_corner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is <= MaximumConvexCornerEdgeCount() edges and the corner angle is <= MaximumConvexCornerAngleRadians(). Parameters: maximum_convex_corner_edge_count - [in]
◆ SetMergeColinearBoundaryEdges()
void ON_SubDFromMeshParameters::SetMergeColinearBoundaryEdges |
( |
bool |
bMergeColinearBoundaryEdges | ) |
|
Parameters: bMergeColinearBoundaryEdges - [in] true In ON_SubD::CreateFromMesh(), colinear boundary edges belonging to the same face are merged into a single edge. In general, this is the best choice and leads to the highest quality of SubD object. false In ON_SubD::CreateFromMesh(), each mesh boundary edge becomes a SubD boundary edge. Use this when the boundary topology of the mesh and SubD should be identical.
◆ SetMergeColinearInteriorEdges()
void ON_SubDFromMeshParameters::SetMergeColinearInteriorEdges |
( |
bool |
bMergeColinearInteriorEdges | ) |
|
Parameters: bMergeColinearInteriorEdges - [in] true In ON_SubD::CreateFromMesh(), colinear interior edges between two faces are merged into a single edge. In general, this is the best choice and leads to the highest quality of SubD object. false In ON_SubD::CreateFromMesh(), each mesh interior edge becomes a SubD interior edge. Use this when the interior topology of the mesh and SubD should be identical.
◆ SetMinimumConcaveCornerAngleRadians()
void ON_SubDFromMeshParameters::SetMinimumConcaveCornerAngleRadians |
( |
double |
minimum_concave_corner_angle_radians | ) |
|
Description: If ConcaveCornerTest() ConcaveCornerOption::AtMeshConcaveCorner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount() edges and the corner angle is >= MinimumConcaveCornerAngleRadians(). Parameters: minimum_concave_corner_angle_radians - [in] > ON_PI and <= ON_2PI
◆ SetMinimumConcaveCornerEdgeCount()
void ON_SubDFromMeshParameters::SetMinimumConcaveCornerEdgeCount |
( |
unsigned int |
minimum_concave_corner_edge_count | ) |
|
Description: If ConcaveCornerTest() = ConcaveCornerOption::AtMeshConcaveCorner, then an input mesh boundary vertex becomes a sub-D corner when the number of edges that end at the vertex is >= MinimumConcaveCornerEdgeCount() edges and the corner angle is >= MinimumConcaveCornerAngleRadians(). Parameters: minimum_concave_corner_edge_count - [in]
◆ SetTextureCoordinatesOption()
Description: Set the texture coordinates option. Parameters: texture_coordinates_opton - [in]
◆ TextureCoordinatesOptionFromUnsigned()
◆ ConvexAndConcaveCornersAndInteriorCreases
Create an interior sub-D crease along all input mesh double edges. Look for convex corners at sub-D vertices with 2 edges or fewer that have an included angle <= 120 degrees. Look for concave corners at sub-D vertices with 3 edges or more that have an included angle >= 240 degrees.
◆ ConvexCornersAndInteriorCreases
Create an interior sub-D crease along all input mesh double edges. Look for convex corners at sub-D vertices with 2 edges or fewer that have an included angle <= 120 degrees.
◆ InteriorCreases
Create an interior sub-D crease along all input mesh double edges.
◆ Smooth
No interior creases and no corners.
Crease options