Rhino C++ API  8.10
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
ON_SubD Class Reference

#include <opennurbs_subd.h>

Inheritance diagram for ON_SubD:
ON_Geometry ON_Object

Public Types

enum  : unsigned int { maximum_subd_level = 128 }
 
enum  : unsigned int { TextureImageSuggestedMinimumSize = 1024 }
 
enum  AutomaticMeshToSubDContext : unsigned char { AutomaticMeshToSubDContext::Unset = 0, AutomaticMeshToSubDContext::Rhino5BoxModeTSpline = 1, AutomaticMeshToSubDContext::FBXMeshWithDivisionLevels = 2 }
 ON_SubD::AutomaticMeshToSubDContext identifies a context where meshes can automatically be converted to subds. More...
 
enum  ChainType : unsigned char {
  ChainType::Unset = 0, ChainType::MixedTag = 1, ChainType::EqualEdgeTag = 2, ChainType::EqualEdgeAndVertexTag = 3,
  ChainType::EqualEdgeTagAndOrdinary = 4, ChainType::EqualEdgeAndVertexTagAndOrdinary = 5
}
 SubD::ChainType specifies what edge and vertex tag tests are used when creating edge chains. More...
 
enum  NurbsSurfaceType : unsigned char {
  NurbsSurfaceType::Unset = 0, NurbsSurfaceType::Large = 1, NurbsSurfaceType::Medium = 2, NurbsSurfaceType::Small = 3,
  NurbsSurfaceType::Unprocessed = 4
}
 ON_SubD::NurbsSurfaceType specifies what type of NURBS surfaces are returned by ON_SubD.GetSurfaceNurbsFragments() More...
 
enum  PatchStyle : unsigned char {
  PatchStyle::Unset = 0, PatchStyle::Automatic = 1, PatchStyle::SingleFace = 2, PatchStyle::TriangleFan = 3,
  PatchStyle::QuadOrTriangleFan = 4, PatchStyle::Triangulated = 5
}
 SubD::PatchStyle identifies the style of patch used to fill holes. More...
 
enum  SubDFriendlyKnotType : unsigned char {
  SubDFriendlyKnotType::Unset = 0, SubDFriendlyKnotType::UnclampedUniform = 1, SubDFriendlyKnotType::ClampedUniform = 2, SubDFriendlyKnotType::ClampedPiecewiseUniform = 4,
  SubDFriendlyKnotType::Unfriendly = 127
}
 ON_SubD::SubDFriendlyKnotType identifies the types of subd friendly NURBS knot vectors. SubD friendly NURBS curves and surfacaes are always cubic and nonrational. Any time there is a multiple knot, the 2nd derivative is zero at the corresponding parameter. SubD friendly NURBS curves are either periodic or have zero 2nd derivative at the ends. More...
 
enum  VertexFacetType : unsigned char {
  VertexFacetType::Unset = 0, VertexFacetType::Tri = 3, VertexFacetType::Quad = 4, VertexFacetType::Ngon = 5,
  VertexFacetType::Mixed = 0xFF
}
 Summarizes the number of edges in faces in the whole object. More...
 
- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
}
 

Public Member Functions

 ON_SubD () ON_NOEXCEPT
 
 ON_SubD (const ON_SubD &src)
 
virtual ~ON_SubD ()
 
const class ON_SubDLevel & ActiveLevel () const
 
unsigned int ActiveLevelIndex () const
 
class ON_SubDEdgeAddEdge (class ON_SubDVertex *v0, class ON_SubDVertex *v1)
 
class ON_SubDEdgeAddEdge (ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, class ON_SubDVertex *v1)
 
class ON_SubDEdgeAddEdge (ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, class ON_SubDVertex *v1, ON_SubDEdgeSharpness sharpness)
 
class ON_SubDEdgeAddEdgeForExperts (unsigned int candidate_edge_id, ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, double v0_sector_coefficient, class ON_SubDVertex *v1, double v1_sector_coefficient, ON_SubDEdgeSharpness sharpness, unsigned int initial_face_capacity)
 
class ON_SubDEdgeAddEdgeForExperts (unsigned int candidate_edge_id, ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, double v0_sector_coefficient, class ON_SubDVertex *v1, double v1_sector_coefficient, unsigned int initial_face_capacity)
 
class ON_SubDEdgeAddEdgeWithSectorCoefficients (ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, double v0_sector_coefficient, class ON_SubDVertex *v1, double v1_sector_coefficient)
 
class ON_SubDEdgeAddEdgeWithSectorCoefficients (ON_SubDEdgeTag edge_tag, class ON_SubDVertex *v0, double v0_sector_coefficient, class ON_SubDVertex *v1, double v1_sector_coefficient, ON_SubDEdgeSharpness sharpness)
 
class ON_SubDFaceAddFace (class ON_SubDEdge *const *edges, unsigned int edge_count)
 
class ON_SubDFaceAddFace (const class ON_SubDEdgePtr *edges, unsigned int edge_count)
 
class ON_SubDFaceAddFace (const ON_SimpleArray< ON_SubDEdge * > &edges)
 
class ON_SubDFaceAddFace (const ON_SimpleArray< ON_SubDEdgePtr > &edges)
 
bool AddFaceEdgeConnection (ON_SubDFace *face, unsigned int i, ON_SubDEdge *edge, ON__UINT_PTR edge_direction)
 
bool AddFaceEdgeConnection (ON_SubDFace *face, unsigned int i, ON_SubDEdgePtr eptr)
 
bool AddFaceEdgeConnection (ON_SubDFace *face, unsigned int i, ON_SubDEdgePtr eptr, bool bAddbAddFaceToRelativeVertex0, bool bAddbAddFaceToRelativeVertex1)
 
class ON_SubDFaceAddFaceForExperts (unsigned candidate_face_id, const class ON_SubDEdgePtr *edge, unsigned int edge_count)
 
bool AddFaceTexturePoints (const class ON_SubDFace *face, const class ON_3dPoint *texture_points, size_t texture_points_count) const
 
class ON_SubDFaceAddQuadFace (class ON_SubDEdge *edge0, class ON_SubDEdge *edge1, class ON_SubDEdge *edge2, class ON_SubDEdge *edge3)
 
class ON_SubDFaceAddQuadFace (ON_SubDEdgePtr edge0, ON_SubDEdgePtr edge1, ON_SubDEdgePtr edge2, ON_SubDEdgePtr edge3)
 
unsigned AddSymmetrySetsToComponentList (bool bAddVertexSymmetrySets, bool bAddEdgeSymmetrySets, bool bAddFaceSymmetrySets, ON_SimpleArray< ON_COMPONENT_INDEX > &component_list) const
 
unsigned AddSymmetrySetsToComponentList (bool bAddVertexSymmetrySets, bool bAddEdgeSymmetrySets, bool bAddFaceSymmetrySets, ON_SimpleArray< ON_SubDComponentPtr > &component_list) const
 
class ON_SubDFaceAddTriangleFace (class ON_SubDEdge *edge0, class ON_SubDEdge *edge1, class ON_SubDEdge *edge2)
 
class ON_SubDFaceAddTriangleFace (ON_SubDEdgePtr edge0, ON_SubDEdgePtr edge1, ON_SubDEdgePtr edge2)
 
class ON_SubDVertexAddVertex (const double *P)
 
class ON_SubDVertexAddVertex (ON_SubDVertexTag vertex_tag, const double *P)
 
class ON_SubDVertexAddVertexForExperts (unsigned int candidate_vertex_id, ON_SubDVertexTag vertex_tag, const double *P, unsigned int initial_edge_capacity, unsigned int initial_face_capacity)
 
ON_AggregateComponentStatus AggregateComponentStatus () const override
 virtual More...
 
unsigned int AggregateEdgeAttributes () const
 
unsigned int AllocateFaceTexturePoints (const class ON_SubDFace *face) const
 
unsigned int Append (const ON_SubD &subd, double tolerance, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, bool bMarkMergedComponents, bool bMarkAddedComponents)
 
unsigned int Append (const ON_SubD &subd, double tolerance, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, bool bMarkMergedComponents, bool bMarkAddedComponents, bool bPermitDisjointAppend, ON_SimpleArray< ON_SubDComponentPtrPair > *merge_map)
 
unsigned int Append (const ON_SubD &subd, double tolerance, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, const ON_SubDComponentTest &this_vertex_filter, const ON_SubDComponentTest &subd_vertex_filter, bool bMarkMergedComponents, bool bMarkAddedComponents, bool bPermitDisjointAppend, ON_SimpleArray< ON_SubDComponentPtrPair > *merge_map)
 
unsigned int AppendDisjoint (const ON_SubD &disjoint_subd, bool bMarkOriginalComponents, bool bMarkAddedComponents)
 
unsigned int AppendDisjoint (const ON_SubD &disjoint_subd, bool bMarkOriginalComponents, bool bMarkAddedComponents, ON_SimpleArray< ON_SubDComponentPtrPair > *merge_map)
 
unsigned int AutoBridge (ON_SubDEdgeTag bridge_boundary_edge_tag, const ON_SubDEdgePtr *start_edges, const ON_SubDEdgePtr *end_edges, unsigned int edge_count, bool bMarkNewFaces)
 
unsigned int AutoBridge (ON_SubDEdgeTag bridge_boundary_edge_tag, const ON_SubDEdgePtr start_edge, const ON_SubDEdgePtr end_edge, bool bMarkNewFaces)
 
unsigned int AutoMultiPatch (ON_SubD::PatchStyle patch_style, ON_SubDEdgeTag patch_boundary_edge_tag, const ON_SimpleArray< const ON_SubDEdge * > &unsorted_edges, bool bMarkNewFaces)
 
unsigned int AutoMultiPatch (ON_SubD::PatchStyle patch_style, ON_SubDEdgeTag patch_edge_tag, const ON_SimpleArray< ON_SubDEdgePtr > &unsorted_edges, bool bMarkNewFaces)
 
const ON_SubDComponentPtr AutoPatch (ON_SubD::PatchStyle patch_style, ON_SubDEdgeTag patch_boundary_edge_tag, const ON_SimpleArray< ON_SubDEdgePtr > &edges, bool bMarkNewFaces)
 
ON_BrepBrepForm (ON_Brep *brep=nullptr) const override
 virtual More...
 
ON__UINT64 ChangeGeometryContentSerialNumberForExperts (bool bChangePreservesSymmetry)
 
ON__UINT64 ChangeRenderContentSerialNumber () const
 
void Clear ()
 
void ClearBoundingBox () override
 virtual More...
 
unsigned int ClearComponentGroupIds (bool bClearVertexGroupIds, bool bClearEdgeGroupIds, bool bClearFaceGroupIds) const
 
unsigned int ClearComponentMarkBits (bool bClearVertexMarkBits, bool bClearEdgeMarkBits, bool bClearFaceMarkBits) const
 
unsigned int ClearComponentMarks () const
 
unsigned int ClearComponentMarks (bool bClearVertexMarks, bool bClearEdgeMarks, bool bClearFaceMarks, ON_SimpleArray< const class ON_SubDComponentBase * > *marked_component_list) const
 
unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const override
 virtual More...
 
unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const override
 virtual More...
 
unsigned int ClearComponentStates (ON_SubDComponentPtr component_ptr, ON_ComponentStatus states_to_clear) const
 
**void ClearControlNetComponentTree ()
 
unsigned int ClearEdgeGroupIds () const
 
unsigned int ClearEdgeMarkBits () const
 
unsigned int ClearEdgeMarks () const
 
unsigned int ClearEdgeSharpness ()
 Converts all sharp edges to smooth edges. See ON_SubDEdge::IsSharp() for more information about sharp edges. More...
 
void ClearEvaluationCache () const
 
unsigned int ClearFaceGroupIds () const
 
unsigned int ClearFaceMarkBits () const
 
unsigned int ClearFaceMarks () const
 
void ClearFacePackIds ()
 
void ClearFacePackingTopologyHashForExperts () const
 
void ClearFragmentColors (bool bClearFragmentColorsMappingTag)
 
void ClearFragmentTextureCoordinatesTextureSettingsHash () const
 
**void ClearFragmentTree ()
 
unsigned int ClearGroupIds () const
 
unsigned int ClearHigherSubdivisionLevels (unsigned int max_level_index)
 
unsigned ClearInactiveLevels ()
 
unsigned int ClearLowerSubdivisionLevels (unsigned int min_level_index)
 
unsigned int ClearMarkBits () const
 
unsigned int ClearPerFaceColors () const
 
unsigned int ClearPerFaceMaterialChannelIndices ()
 
void ClearSymmetry ()
 
unsigned ClearSymmetrySetForExperts (const ON_SubDEdge *edge)
 
unsigned ClearSymmetrySetForExperts (const ON_SubDFace *face)
 
unsigned ClearSymmetrySetForExperts (const ON_SubDVertex *vertex)
 
unsigned ClearSymmetrySetForExperts (ON_SubDComponentPtr cptr)
 
void ClearSymmetrySetNextForExperts (const ON_SubDEdge *edge)
 
void ClearSymmetrySetNextForExperts (const ON_SubDFace *face)
 
void ClearSymmetrySetNextForExperts (const ON_SubDVertex *vertex)
 
void ClearSymmetrySetNextForExperts (ON_SubDComponentPtr component)
 
void ClearSymmetrySetsForExperts ()
 
unsigned int ClearTexturePoints () const
 
unsigned int ClearVertexGroupIds () const
 
unsigned int ClearVertexMarkBits () const
 
unsigned int ClearVertexMarks () const
 
const ON_MappingTag ColorsMappingTag () const
 
unsigned int CombineBoundaryEdgeChains (const ON_SimpleArray< const ON_SubDEdge * > &edge_chain0, const ON_SimpleArray< const ON_SubDEdge * > &edge_chain1, double combined_edge_location, ON_SubDEdgeTag combined_edge_tag)
 
unsigned int CombineBoundaryEdgeChains (const ON_SimpleArray< ON_COMPONENT_INDEX > &edge_chain0, const ON_SimpleArray< ON_COMPONENT_INDEX > &edge_chain1, double combined_edge_location, ON_SubDEdgeTag combined_edge_tag)
 
unsigned int CombineBoundaryEdgeChains (const ON_SimpleArray< ON_SubDComponentPtr > &edge_chain0, const ON_SimpleArray< ON_SubDComponentPtr > &edge_chain1, double combined_edge_location, ON_SubDEdgeTag combined_edge_tag)
 
unsigned int CombineBoundaryEdgeChains (const ON_SimpleArray< ON_SubDEdgePtr > &edge_chain0, const ON_SimpleArray< ON_SubDEdgePtr > &edge_chain1, double combined_edge_location, ON_SubDEdgeTag combined_edge_tag)
 
bool CombineBoundaryEdges (const ON_SubDEdge *edge0, const ON_SubDEdge *edge1, double merged_edge_location, ON_SubDEdgeTag merged_edge_tag)
 
bool CombineBoundaryEdges (const ON_SubDEdgePtr edge0, const ON_SubDEdgePtr edge1, double merged_edge_location, ON_SubDEdgeTag merged_edge_tag)
 
unsigned int CombineBoundaryVertices (const ON_SimpleArray< const ON_SubDVertex * > &ci_list, ON_SubDVertexTag combined_vertex_tag)
 
unsigned int CombineBoundaryVertices (const ON_SimpleArray< ON_COMPONENT_INDEX > &vertex_list, ON_SubDVertexTag combined_vertex_tag)
 
bool CombineBoundaryVertices (const ON_SubDVertex *vertex0, const ON_SubDVertex *vertex1, ON_3dPoint combined_vertex_control_net_point, ON_SubDVertexTag combined_vertex_tag)
 
unsigned ComponentCount (ON_SubDComponentPtr::Type component_type) const
 ON_SubD::VertexCount(), ON_SubD::EdgeCount(), or ON_SubD::FaceCount() is returned, depending on the value of component_type. More...
 
ON_COMPONENT_INDEX ComponentIndex () const override
 virtual More...
 
unsigned int ComponentPtrFromComponentIndex (const ON_COMPONENT_INDEX *ci_list, size_t ci_count, bool bIncludeVertices, bool bIncludeEdges, bool bIncludeFaces, ON_SimpleArray< ON_SubDComponentPtr > &cptr_list) const
 
unsigned int ComponentPtrFromComponentIndex (const ON_COMPONENT_INDEX *ci_list, size_t ci_count, ON_SimpleArray< ON_SubDComponentPtr > &cptr_list) const
 
const ON_SubDComponentPtr ComponentPtrFromComponentIndex (ON_COMPONENT_INDEX component_index) const
 
ON__UINT64 ComponentStatusSerialNumber () const
 
bool ContentIsSymmetric () const
 
bool CopyEvaluationCacheForExperts (const ON_SubD &src)
 
const ON_Symmetry CreateRotateSymmetryFromTwoFacesAndAxis (unsigned primary_face_id, unsigned secondary_face_id, ON_Line rotation_axis, double cleanup_tolerance) const
 
ON_SubDCreateSymmetryPrimaryMotif (ON_Symmetry symmetry, ON_SubDComponentIdList &motif_outer_vertex_list, ON_SubD *destination_subd) const
 
ON__UINT32 DataCRC (ON__UINT32 current_remainder) const override
 virtual More...
 
bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) override
 virtual More...
 
bool DeleteComponents (const ON_SimpleArray< ON_SubDComponentPtr > &cptr_list, bool bMarkDeletedFaceEdges)
 
bool DeleteComponents (const ON_SubDComponentPtr *cptr_list, size_t cptr_count, bool bMarkDeletedFaceEdges)
 
bool DeleteComponentsForExperts (const ON_SubDComponentPtr *cptr_list, size_t cptr_count, bool bDeleteIsolatedEdges, bool bUpdateTagsAndCoefficients, bool bMarkDeletedFaceEdges)
 
unsigned int DeleteFacesOnPlane (ON_PlaneEquation plane_equation, double distance_tolerance)
 
bool DeleteMarkedComponents (bool bDeleteMarkedComponents, ON__UINT8 mark_bits, bool bMarkDeletedFaceEdges)
 
bool DeleteMarkedComponentsForExperts (bool bDeleteMarkedComponents, ON__UINT8 mark_bits, bool bDeleteIsolatedEdges, bool bUpdateTagsAndCoefficients, bool bMarkDeletedFaceEdges)
 
void Destroy ()
 
void DestroyRuntimeCache (bool bDelete=true) override
 virtual More...
 
int Dimension () const override
 virtual More...
 
unsigned int DissolveOrDelete (const ON_SimpleArray< ON_COMPONENT_INDEX > &ci_list)
 
unsigned int DissolveOrDelete (const ON_SimpleArray< ON_SubDComponentPtr > &cptr_list)
 
void Dump (ON_TextLog &) const override
 virtual More...
 
unsigned int DumpTopology (ON_2udex vertex_id_range, ON_2udex edge_id_range, ON_2udex face_id_range, ON_TextLog &) const
 
unsigned int DumpTopology (ON_TextLog &) const
 
class ON_SubDEdgeArray EdgeArray () const
 
unsigned int EdgeCount () const
 
const class ON_SubDEdgeEdgeFromComponentIndex (ON_COMPONENT_INDEX component_index) const
 
const class ON_SubDEdgeEdgeFromId (unsigned int edge_id) const
 
const ON_SHA1_Hash EdgeHash (ON_SubDHashType hash_type) const
 
class ON_SubDEdgeIterator EdgeIterator () const
 
bool EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const override
 virtual More...
 
ON_WIP_SDK bool ExpandEdges (const ON_SimpleArray< const ON_SubDEdge * > &unsorted_edges, ON_SubDExpandEdgesParameters parameters)
 
ON_WIP_SDK bool ExpandEdges (const ON_SimpleArray< ON_COMPONENT_INDEX > &unsorted_edges, ON_SubDExpandEdgesParameters parameters)
 
ON_WIP_SDK bool ExpandEdges (const ON_SimpleArray< ON_SubDEdgePtr > &edges, ON_SubDExpandEdgesParameters parameters)
 
ON_SubDExtractMarkedComponents (ON__UINT8 mark_bits, ON_SubD *destination_subd) const
 
unsigned int Extrude (const ON_Xform &xform)
 
unsigned int ExtrudeComponents (const ON_Xform &xform, const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
unsigned int ExtrudeComponents (const ON_Xform &xform, const ON_COMPONENT_INDEX *ci_list, size_t ci_count, bool bExtrudeBoundaries, bool bPermitNonManifoldEdgeCreation)
 
unsigned int ExtrudeComponents (const ON_Xform &xform, const ON_SubDComponentPtr *cptr_list, size_t cptr_count)
 
unsigned int ExtrudeComponents (const ON_Xform &xform, const ON_SubDComponentPtr *cptr_list, size_t cptr_count, bool bExtrudeBoundaries, bool bPermitNonManifoldEdgeCreation)
 
class ON_SubDFaceArray FaceArray () const
 
unsigned int FaceCount () const
 
const class ON_SubDFaceFaceFromComponentIndex (ON_COMPONENT_INDEX component_index) const
 
const class ON_SubDFaceFaceFromId (unsigned int face_id) const
 
const ON_SHA1_Hash FaceHash (ON_SubDHashType hash_type) const
 
class ON_SubDFaceIterator FaceIterator () const
 
const ON_UUID FacePackingId () const
 
bool FacePackingIsValid (bool bIfValidThenUpdateFacePackingTopologyHash) const
 
const ON_SubDHash FacePackingTopologyHash () const
 
bool FacesArePacked () const
 
const ON_SubDEdgePtr FindEdge (const class ON_SubDVertex *v0, const class ON_SubDVertex *v1) const
 
const ON_SubDEdgePtr FindOrAddEdge (class ON_SubDVertex *v0, class ON_SubDVertex *v1)
 
class ON_SubDFaceFindOrAddFace (ON_SubDEdgeTag new_edge_tag, const class ON_SubDVertex *face_vertices[], size_t face_vertex_count)
 
const class ON_SubDVertexFindOrAddVertex (const double *control_net_point, double distance_tolerance)
 
const class ON_SubDVertexFindVertex (const double *control_net_point, double distance_tolerance) const
 
const ON_SubDComponentPtr FirstComponent (ON_SubDComponentPtr::Type component_type) const
 ON_SubD::FirstVertex(), ON_SubD::FirstEdge(), or ON_SubD::FirstFace() is returned, depending on the value of component_type. More...
 
const class ON_SubDEdgeFirstEdge () const
 
const class ON_SubDFaceFirstFace () const
 
const class ON_SubDVertexFirstVertex () const
 
const ON_MappingTag FragmentColorsMappingTag () const
 
const ON_SHA1_Hash FragmentColorsSettingsHash () const
 
const ON_SHA1_Hash FragmentTextureCoordinatesTextureSettingsHash () const
 
*ON_RTreeRef FragmentTree () const
 
ON__UINT64 GeometryContentSerialNumber () const
 
const ON_SHA1_Hash GeometryHash () const
 
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
More...
 
unsigned int GetBoundaryEdgeChains (unsigned int minimum_face_count, unsigned int maximum_face_count, ON_SimpleArray< ON_SubDEdgePtr > &boundary_edge_chains) const
 
unsigned int GetComponentStatus (bool bGetVertexStatus, bool bGetEdgeStatus, bool bGetFaceStatus, bool bClearStatus, ON_ComponentStatus status_mask, ON_SimpleArray< const class ON_SubDComponentBase * > &component_list, ON_SimpleArray< ON_ComponentStatus > &status_list) const
 
unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const override
 virtual More...
 
unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_SubDComponentPtr > &components_with_set_states) const
 
unsigned int GetConnectedRegions (bool bManifoldRegions, ON_SimpleArray< ON_SubD * > &connected_regions) const
 
class ON_MeshGetControlNetMesh (class ON_Mesh *mesh, ON_SubDGetControlNetMeshPriority priority) const
 
unsigned int GetMarkedComponents (bool bAddMarkedComponents, ON__UINT8 mark_bits, bool bIncludeVertices, bool bIncludeEdges, bool bIncludeFaces, ON_SimpleArray< class ON_SubDComponentPtr > &component_list) const
 
unsigned int GetMarkedComponents (bool bIncludeVertices, bool bIncludeEdges, bool bIncludeFaces, ON_SimpleArray< const class ON_SubDComponentBase * > &marked_component_list) const
 
unsigned int GetMeshFragments (const class ON_SubDDisplayParameters &display_parameters, ON__UINT_PTR fragment_callback_context, bool(*fragment_callback_function)(ON__UINT_PTR, const class ON_SubDMeshFragment *)) const
 
ON_BrepGetSurfaceBrep (const ON_SubDToBrepParameters &brep_parameters, ON_Brep *destination_brep) const
 
class ON_MeshGetSurfaceMesh (const class ON_SubDDisplayParameters &display_parameters, class ON_Mesh *mesh) const
 
unsigned int GetSurfaceMeshWireframe (ON__UINT_PTR curve_callback_context, bool(*curve_callback_function)(ON__UINT_PTR, const ON_SubDEdgePtr *, unsigned int, const class ON_NurbsCurve &)) const
 
unsigned int GetSurfaceNurbs (ON_SubD::NurbsSurfaceType nurbs_surface_type, ON__UINT_PTR callback_context, bool(*nurbs_callback_function)(ON__UINT_PTR, const class ON_SubDFaceRegion &, class ON_NurbsSurface *)) const
 
unsigned int GetSurfaceNurbs (ON_SubD::NurbsSurfaceType nurbs_surface_type, ON_SimpleArray< ON_NurbsSurface * > &patches) const
 
unsigned int GetSurfaceNurbs (ON_SubD::NurbsSurfaceType nurbs_surface_type, ON_SimpleArray< ON_SubDFaceRegionAndNurbs > &patches) const
 
unsigned int GetSurfaceNurbsFragments (const class ON_SubDDisplayParameters &display_parameters, ON__UINT_PTR callback_context, bool(*begin_face_callback_function)(ON__UINT_PTR, const class ON_SubDFaceRegion &), bool(*fragment_callback_function)(ON__UINT_PTR, const class ON_SubDSurfaceNurbsFragment *)) const
 
bool GetSurfacePointLinearSystem (ON_Matrix &m, ON_SimpleArray< const ON_SubDVertex * > &v) const
 
bool GetSurfacePointLinearSystem (ON_SimpleArray< ON_SubDVertexSurfacePointCoefficient > &coefficients, ON_2udex *coefficient_matrix_size) const
 
unsigned int GetSurfaceWireframe (ON_SubDEdgeTag edge_tag, unsigned int minimum_face_count, unsigned int maximum_face_count, ON_SubD::ChainType chain_type, ON__UINT_PTR curve_callback_context, bool(*curve_callback_function)(ON__UINT_PTR, const ON_SubDEdgePtr *, unsigned int, const class ON_NurbsCurve &)) const
 
unsigned int GetSurfaceWireframe (ON_SubDEdgeTag edge_tag, unsigned int minimum_face_count, unsigned int maximum_face_count, ON_SubD::ChainType chain_type, ON_SimpleArray< ON_NurbsCurve * > &nurbs_curves) const
 
unsigned GetSymmetrySet (const ON_SubDComponentPtr cptr, bool bMotifFirst, ON_SimpleArray< ON_SubDComponentPtr > &component_symmetry_set) const
 
unsigned GetSymmetrySet (const ON_SubDEdge *edge, bool bPrimaryMotifFirst, ON_SimpleArray< const ON_SubDEdge * > &edge_symmetry_set) const
 
unsigned GetSymmetrySet (const ON_SubDFace *face, bool bPrimaryMotifFirst, ON_SimpleArray< const ON_SubDFace * > &face_symmetry_set) const
 
unsigned GetSymmetrySet (const ON_SubDVertex *vertex, bool bPrimaryMotifFirst, ON_SimpleArray< const ON_SubDVertex * > &vertex_symmetry_set) const
 
bool GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const override
 virtual ON_Geometry GetTightBoundingBox override
More...
 
unsigned int GetWireframeEdgeChains (ON_SubDEdgeTag edge_tag, unsigned int minimum_face_count, unsigned int maximum_face_count, ON_SubD::ChainType chain_type, ON__UINT_PTR edge_chain_callback_context, bool(*edge_chain_callback_function)(ON__UINT_PTR, const ON_SubDEdgePtr *, unsigned int)) const
 
bool GlobalSubdivide ()
 
bool GlobalSubdivide (unsigned int count)
 
unsigned int GlobalSubdivideQuadCount () const
 
unsigned int GlobalSubdivideQuadCount (unsigned int subdivision_count) const
 
unsigned int GroupConnectedRegions (bool bManifoldRegions) const
 
bool GrowEdgeFaceArray (ON_SubDEdge *e, size_t capacity)
 
bool GrowFaceEdgeArray (ON_SubDFace *f, size_t capacity)
 
bool GrowVertexEdgeArray (ON_SubDVertex *v, size_t capacity)
 
bool GrowVertexFaceArray (ON_SubDVertex *v, size_t capacity)
 
bool HasBrepForm () const override
 virtual More...
 
bool HasFragmentColors () const
 Determing if this SubD's mesh fragments have per vertex color settings. More...
 
bool HasFragmentColors (ON_MappingTag color_mapping_tag) const
 
bool HasFragmentColors (ON_SHA1_Hash color_settings_hash) const
 
bool HasFragmentColors (ON_SHA1_Hash color_settings_hash, ON_MappingTag color_mapping_tag) const
 
bool HasFragmentTextureCoordinates () const
 Determing if this SubD's mesh fragments have per vertex texture coordinates. More...
 
bool HasFragmentTextureCoordinates (ON_MappingTag texture_mapping_tag) const
 
bool HasFragmentTextureCoordinates (ON_SHA1_Hash texture_settings_hash) const
 
bool HasFragmentTextureCoordinates (ON_SHA1_Hash texture_settings_hash, ON_MappingTag texture_mapping_tag) const
 
bool HasPerFaceColors () const
 
bool HasPerFaceColorsFromPackId () const
 
bool HasPerFaceColorsFromSymmetryMotif () const
 
bool HasPerFaceMaterialChannelIndices () const
 
bool HasSharpEdges () const
 Determine if this SubD has sharp edges. See ON_SubDEdge::IsSharp() for more information about sharp edges. More...
 
const ON_SubDComponentPtr InSubD (const class ON_SubDComponentBase *b) const
 
bool InSubD (const class ON_SubDEdge *edge) const
 
bool InSubD (const class ON_SubDFace *face) const
 
bool InSubD (const class ON_SubDVertex *vertex) const
 
bool InSubD (ON_SubDComponentPtr cptr) const
 
bool InterpolateControlNet ()
 
bool InterpolateSurfacePoints (const ON_SimpleArray< const ON_SubDVertex * > &vertices, const ON_SimpleArray< ON_3dPoint > &surface_points)
 
bool InterpolateSurfacePoints (const ON_SimpleArray< ON_3dPoint > &surface_points)
 
bool InterpolateSurfacePoints (const ON_SimpleArray< ON_COMPONENT_INDEX > &vertices, const ON_SimpleArray< ON_3dPoint > &surface_points)
 
bool InterpolateSurfacePoints (const ON_SimpleArray< ON_SubDComponentPtr > &vertices, const ON_SimpleArray< ON_3dPoint > &surface_points)
 
bool InterpolateSurfacePoints (const ON_SimpleArray< ON_SubDVertexPtr > &vertices, const ON_SimpleArray< ON_3dPoint > &surface_points)
 
bool IsDeformable () const override
 virtual More...
 
bool IsEmpty () const
 
bool IsManifold () const
 
bool IsManifold (bool &bIsOriented, bool &bHasBoundary) const
 
bool IsMorphable () const override
 virtual More...
 
bool IsNotEmpty () const
 
bool IsOriented () const
 returns true if all facets are consistently oriented More...
 
bool IsSolid () const
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 virtual More...
 
const class ON_SubDEdgeLastEdge () const
 
const class ON_SubDFaceLastFace () const
 
const class ON_SubDVertexLastVertex () const
 
unsigned int LevelCount () const
 
const class ON_SubDLevel & LevelForExperts (unsigned int level_index) const
 If a level exists, get it More...
 
bool LocalSubdivide (class ON_SubDFace const *const *face_list, size_t face_count)
 
bool LocalSubdivide (const ON_SimpleArray< const class ON_SubDFace * > &face_list)
 
bool LocalSubdivide (const ON_SimpleArray< ON_COMPONENT_INDEX > &face_list)
 
bool MakeDeformable () override
 virtual More...
 
bool MakeReflectSymmetric (ON_Symmetry symmetry)
 
bool MakeSymmetric (ON_Symmetry symmetry)
 
bool MakeSymmetric (ON_Symmetry symmetry, bool bIgnoredParameter1, bool bIgnoredParameter2)
 
void MarkAggregateComponentStatusAsNotCurrent () const override
 virtual More...
 
unsigned int MarkConnectedRegion (const ON_SubDComponentPtr seed_component, bool bManifoldRegions) const
 
void MemoryRelocate () override
 virtual More...
 
unsigned int Merge (const ON_SubD &subd, const class ON_SubDComponentPtrPair *vertex_pairs, size_t vertex_pairs_count, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, bool bMarkMergedComponents, bool bMarkAddedComponents)
 
unsigned int Merge (const ON_SubD &subd, const class ON_SubDComponentPtrPair *vertex_pairs, size_t vertex_pairs_count, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, const ON_SubDComponentTest &this_vertex_filter, const ON_SubDComponentTest &subd_vertex_filter, bool bMarkMergedComponents, bool bMarkAddedComponents)
 
unsigned int Merge (const ON_SubD &subd, const ON_SimpleArray< ON_SubDComponentPtrPair > &vertex_pairs, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, bool bMarkMergedComponents, bool bMarkAddedComponents)
 
unsigned int Merge (const ON_SubD &subd, const ON_SimpleArray< ON_SubDComponentPtrPair > &vertex_pairs, ON_SubDEdgeTag prefered_merged_edge_tag, bool bMergeAllCoincidentVertices, const ON_SubDComponentTest &this_vertex_filter, const ON_SubDComponentTest &subd_vertex_filter, bool bMarkMergedComponents, bool bMarkAddedComponents)
 
unsigned int MergeColinearEdges (bool bMergeBoundaryEdges, bool bMergeInteriorCreaseEdges, bool bMergeInteriorSmoothEdges, double distance_tolerance, double maximum_aspect, double sin_angle_tolerance)
 
ON_SubDEdgePtr MergeConsecutiveEdges (ON_SubDEdgePtr eptr0, ON_SubDEdgePtr eptr1)
 
const class ON_SubDFaceMergeFaces (const class ON_SubDEdge *edge)
 
const class ON_SubDFaceMergeFaces (const class ON_SubDVertex *vertex)
 
const class ON_SubDFaceMergeFaces (const ON_SimpleArray< const ON_SubDFace * > &face_list, bool bFaceListMayBeInvalid)
 
const class ON_SubDFaceMergeFaces (const ON_SubDFacePtr *face_list, size_t face_count, bool bFaceListMayBeInvalid)
 
const class ON_SubDFaceMergeFaces (ON_SubDFace const *const *face_list, size_t face_count, bool bFaceListMayBeInvalid)
 
unsigned int MergeFaceSets (const ON_SimpleArray< const ON_SubDFace * > &face_list)
 
unsigned int MergeFaceSets (const ON_SimpleArray< ON_COMPONENT_INDEX > &ci_list, bool bMergeSharedEdges)
 
unsigned int MergeFaceSets (const ON_SimpleArray< ON_SubDComponentPtr > &cptr_list, bool bMergeSharedEdges)
 
unsigned int MergeFaceSets (const ON_SubDComponentPtr *cptr_list, size_t cptr_count, bool bMergeSharedEdges)
 
unsigned int MeshFragmentCount () const
 
bool Morph (const ON_SpaceMorph &morph) override
 virtual More...
 
ON::object_type ObjectType () const override
 virtual More...
 
ON_SubDOffset (double offset_distance, bool bOffsetSurface, bool bBothSides, bool bMakeSolid, bool bPreserveSymmetry, ON_SubD *destination_subd) const
 
ON_SubDOffset (double offset_distance, bool bOffsetSurface, bool bBothSides, bool bMakeSolid, ON_SubD *destination_subd) const
 
ON_SubDOffset (ON_3dVector offset_direction, bool bOffsetSurface, bool bBothSides, bool bMakeSolid, bool bPreserveSymmetry, ON_SubD *destination_subd) const
 
ON_SubDOffset (ON_3dVector offset_direction, bool bOffsetSurface, bool bBothSides, bool bMakeSolid, ON_SubD *destination_subd) const
 
ON_SubDoperator= (const ON_SubD &src)
 
bool Orient () const
 Attempts to orient all facet to match the first facet. More...
 
unsigned int PackFaces ()
 
unsigned int PackFaces (ON_UUID face_packing_id)
 
unsigned int ProjectVerticesToPlane (ON_PlaneEquation plane_equation, double distance_tolerance)
 
class ON_BrepProxyBrep (ON_Brep *destination_brep) const
 SubD proxy brep interface. More...
 
const class ON_BrepEdgeProxyBrepEdge (const ON_Brep *proxy_brep, unsigned subd_edge_id, const class ON_BrepEdge *prev_proxy_edge) const
 
const class ON_BrepFaceProxyBrepFace (const ON_Brep *proxy_brep, unsigned subd_face_id, const class ON_BrepFace *prev_proxy_face) const
 
const class ON_BrepVertexProxyBrepVertex (const ON_Brep *proxy_brep, unsigned subd_vertex_id) const
 
bool Read (ON_BinaryArchive &archive) override
 virtual More...
 
unsigned int RemoveAllCreases ()
 
bool RemoveEdgeVertexConnection (ON_SubDEdge *e, ON_SubDVertex *v)
 
ON_SubDVertexRemoveEdgeVertexConnection (ON_SubDEdge *e, unsigned evi)
 
bool RemoveFaceConnections (ON_SubDFace *face)
 
bool RemoveFaceEdgeConnection (ON_SubDFace *face, ON_SubDEdge *edge)
 
bool RemoveFaceEdgeConnection (ON_SubDFace *face, unsigned int i)
 
bool RemoveFaceEdgeConnection (ON_SubDFace *face, unsigned int i, ON_SubDEdgePtr &removed_edge)
 
unsigned int RemoveZeroLengthEdges ()
 
ON__UINT64 RenderContentSerialNumber () const
 
unsigned int ReplaceFaceWithTrianglation (class ON_SubDFace *face, ON_3dVector triangluation_plane_normal, bool bMarkFaces)
 
const class ON_SubDVertexReplaceFaceWithTriangleFan (class ON_SubDFace *face, ON_3dPoint fan_center_point, bool bMarkFaces)
 
bool ReturnEdgeForExperts (ON_SubDEdge *e)
 
bool ReturnFaceForExperts (ON_SubDFace *f)
 
bool ReturnVertexForExperts (ON_SubDVertex *v)
 
bool ReverseOrientation () const
 reverses the orientation of all facets More...
 
ON__UINT64 RuntimeSerialNumber () const
 
ON_SubDComponentPtrPair SeparateInteriorEdge (ON_SubDEdgePtr interior_edge, const ON_SubDEdge *separator0, const ON_SubDEdge *separator1)
 
unsigned int SeparateInteriorEdgeChains (const ON_SimpleArray< const ON_SubDEdge * > &edge_chains, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdgeChains (const ON_SimpleArray< ON_COMPONENT_INDEX > &edge_chains, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdgeChains (const ON_SimpleArray< ON_SubDComponentPtr > &edge_chains, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdgeChains (const ON_SimpleArray< ON_SubDEdgePtr > &edge_chains, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdges (const ON_SimpleArray< const ON_SubDEdge * > &edges, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdges (const ON_SimpleArray< ON_COMPONENT_INDEX > &edges, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdges (const ON_SimpleArray< ON_SubDComponentPtr > &edges, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
unsigned int SeparateInteriorEdges (const ON_SimpleArray< ON_SubDEdgePtr > &edges, ON_SimpleArray< ON_SubDComponentPtrPair > *separated_edges)
 
const ON_SimpleArray< const ON_SubDVertex * > SeparateVertex (ON_SubDVertex *vertex, bool bApplyCreaseBias)
 
const ON_SimpleArray< const ON_SubDVertex * > SeparateVertex (ON_SubDVertex *vertex, const ON_SubDEdge *separator0, const ON_SubDEdge *separator1)
 
void SetColorsMappingTag (const class ON_MappingTag &) const
 
void SetComponentMarkBitsFromSymmetryMotif () const
 
unsigned int SetComponentMarks (bool bClearBeforeSet, const ON_SimpleArray< const class ON_SubDComponentBase * > &marked_component_list) const
 
unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const override
 virtual More...
 
unsigned int SetComponentStates (ON_SubDComponentPtr component_ptr, ON_ComponentStatus states_to_set) const
 
unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const override
 virtual More...
 
unsigned int SetComponentStatus (ON_ComponentStatus status_mask, const ON_SimpleArray< const class ON_SubDComponentBase * > &component_list, const ON_SimpleArray< ON_ComponentStatus > &status_list) const
 
unsigned int SetComponentStatus (ON_SubDComponentPtr component_ptr, ON_ComponentStatus status_to_copy) const
 
void SetContentIsSymmetricForExperts (bool bContentIsSymmetric) const
 
bool SetCurvatureColorAnalysisColors (bool bUpdateSurfaceMeshCache, bool bLazyColorSet, ON_SurfaceCurvatureColorMapping kappa_colors) const
 Set the SubD's mesh fragment colors from the principal surface curvatures. The color ON_MappingTag::CurvatureAnalysisColor(kappa_style,kappa_range) is assigned to the fragments's vertex color setting. More...
 
bool SetDraftAngleColorAnalysisColors (bool bUpdateSurfaceMeshCache, bool bLazyColorSet, ON_SurfaceDraftAngleColorMapping draft_angle_colors) const
 Set the SubD's mesh fragment colors from the draft angle of the surface normals. More...
 
unsigned int SetEdgeSharpness (const class ON_SubDEdgeChain &edge_chain, ON_SubDEdgeSharpness edge_chain_sharpness, bool bPreserveSymmetry)
 Set or change edge sharpness. More...
 
unsigned int SetEdgeSharpness (const ON_SimpleArray< ON_SubDEdgePtr > &edge_ptrs, const ON_SimpleArray< ON_SubDEdgeSharpness > &edge_sharpness, bool bPreserveSymmetry)
 Set or change edge sharpness. More...
 
unsigned int SetEdgeSharpness (const ON_SimpleArray< ON_SubDEdgePtr > &edge_ptrs, ON_SubDEdgeSharpness sharpness, bool bPreserveSymmetry)
 Set or change edge sharpness. More...
 
unsigned int SetEdgeSharpness (size_t edge_count, const ON_SubDEdgePtr *edge_ptrs, const ON_SubDEdgeSharpness *edge_sharpness, size_t edge_sharpness_stride, bool bPreserveSymmetry)
 Set or change edge sharpness. More...
 
unsigned int SetEdgeSharpness (size_t edge_count, const ON_SubDEdgePtr *edge_ptrs, ON_SubDEdgeSharpness sharpness, bool bPreserveSymmetry)
 Set or change edge sharpness. More...
 
unsigned int SetEdgeTags (const ON_COMPONENT_INDEX *ci_list, size_t ci_count, ON_SubDEdgeTag edge_tag)
 
unsigned int SetEdgeTags (const ON_SimpleArray< ON_SubDComponentPtr > &cptr_list, ON_SubDEdgeTag edge_tag)
 
unsigned int SetEdgeTags (const ON_SubDComponentPtr *cptr_list, size_t cptr_count, ON_SubDEdgeTag edge_tag)
 
bool SetFaceBoundary (ON_SubDFace *face, const ON_SimpleArray< ON_SubDEdgePtr > &edges)
 
bool SetFaceBoundary (ON_SubDFace *face, const ON_SubDEdgePtr *edges, size_t edge_count)
 
bool SetFacePackingIdForExperts (ON_UUID custom_packing_id)
 
bool SetFragmentColorsFromCallback (bool bLazySet, ON_SHA1_Hash fragment_colors_settings_hash, ON_MappingTag fragment_colors_mapping_tag, ON__UINT_PTR callback_context, const ON_Color(*color_callback)(ON__UINT_PTR callback_context, const ON_MappingTag &mapping_tag, const ON_SubD &subd, ON_SubDComponentPtr cptr, const ON_3dPoint &P, const ON_3dVector &N, const ON_3dPoint &T, const ON_SurfaceCurvature &K)) const
 
void SetFragmentColorsMappingTag (const class ON_MappingTag &) const
 
bool SetFragmentTextureCoordinates (const class ON_TextureMapping &mapping, bool bLazy) const
 
void SetPerFaceColorsFromPackId () const
 
void SetPerFaceColorsFromSymmetryMotif () const
 
void SetSubDAppearance (ON_SubDComponentLocation subd_appearance) const
 
void SetSymmetryForExperts (const class ON_Symmetry &symmetry, bool SetContentSerialNumber)
 
bool SetSymmetrySet (const ON_SimpleArray< const ON_SubDEdge * > &edge_symmetry_set, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SimpleArray< const ON_SubDFace * > &face_symmetry_set, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SimpleArray< const ON_SubDVertex * > &vertex_symmetry_set, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SimpleArray< ON_SubDComponentPtr > &component_symmetry_set, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SubDComponentPtr *component_symmetry_set, size_t component_symmetry_set_count, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SubDEdge *const *edge_symmetry_set, size_t edge_symmetry_set_count, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SubDFace *const *face_symmetry_set, size_t face_symmetry_set_count, unsigned primary_motif_index)
 
bool SetSymmetrySet (const ON_SubDVertex *const *vertex_symmetry_set, size_t vertex_symmetry_set_count, unsigned primary_motif_index)
 
bool SetSymmetrySetNextForExperts (bool bComponentIsPrimaryMotif, ON_SubDComponentPtr component, ON_SubDComponentPtr next_component)
 
bool SetSymmetrySetNextForExperts (bool bEdgeIsPrimaryMotif, const ON_SubDEdge *edge, const ON_SubDEdge *next_edge)
 
bool SetSymmetrySetNextForExperts (bool bFaceIsPrimaryMotif, const ON_SubDFace *face, const ON_SubDFace *next_face)
 
bool SetSymmetrySetNextForExperts (bool bVertexIsPrimaryMotif, const ON_SubDVertex *vertex, const ON_SubDVertex *next_vertex)
 
bool SetSymmetrySetsForExperts (bool bUseCleanupTolerance)
 
void SetTextureCoordinateType (ON_SubDTextureCoordinateType texture_coordinate_type) const
 
void SetTextureMappingTag (const class ON_MappingTag &) const
 
bool SetVertexSurfacePoint (unsigned int vertex_id, ON_3dPoint vertex_surface_point)
 Set the location of a single vertex surface point. This function is not suitable for setting the locations of multiple vertex surface points that are topologically near to each other. More...
 
unsigned int SetVertexTags (const ON_COMPONENT_INDEX *ci_list, size_t ci_count, ON_SubDVertexTag vertex_tag)
 
unsigned int SetVertexTags (const ON_SubDComponentPtr *cptr_list, size_t cptr_count, ON_SubDVertexTag vertex_tag)
 
void ShareContentsFrom (ON_SubD &subd)
 
void ShareDimple (const class ON_SubDMeshImpl &)
 
void ShareDimple (const ON_SubD &)
 
unsigned int SharpEdgeCount () const
 Number of sharp edges. See ON_SubDEdge::IsSharp() for more information about sharp edges. More...
 
unsigned int SharpEdgeCount (ON_SubDEdgeSharpness &sharpness_range) const
 Get the range of sharpness values assigned to sharp edges and return the number of sharp edges. See ON_SubDEdge::IsSharp() for more information about sharp edges. More...
 
unsigned int SizeOf () const override
 virtual More...
 
size_t SizeOfActiveElements () const
 
size_t SizeOfActiveMeshFragments () const
 
size_t SizeOfAllElements () const
 
size_t SizeOfAllMeshFragments () const
 
size_t SizeOfUnusedElements () const
 
size_t SizeOfUnusedMeshFragments () const
 
unsigned int SnapPointsToPlane (ON_PlaneEquation plane_equation, double distance_tolerance)
 
*int SolidOrientation () const
 
const class ON_SubDEdgeSpinEdge (class ON_SubDEdge *edge, bool spin_clockwise=false)
 
const ON_SubDEdgePtr SpinEdge (ON_SubDEdgePtr eptr, bool spin_clockwise=false)
 
const class ON_SubDEdgeSplitEdge (class ON_SubDEdge *edge, ON_3dPoint vertex_location)
 
const ON_SubDEdgePtr SplitEdge (ON_SubDEdgePtr eptr, ON_3dPoint vertex_location, unsigned new_edge_end)
 
const class ON_SubDEdgeSplitFace (class ON_SubDFace *face, const class ON_SubDVertex *v0, const class ON_SubDVertex *v1)
 
const ON_SubDEdgePtr SplitFace (class ON_SubDFace *face, const class ON_SubDVertex *v0, const class ON_SubDVertex *v1, unsigned new_face_side)
 
const class ON_SubDEdgeSplitFace (class ON_SubDFace *face, unsigned int fvi0, unsigned int fvi1)
 
const ON_SubDEdgePtr SplitFace (class ON_SubDFace *face, unsigned int fvi0, unsigned int fvi1, unsigned new_face_side)
 
ON_SubDComponentLocation SubDAppearance () const
 
class ON_SubDMesh SubDControlNetMesh () const
 
const ON_SubDHash SubDHash (ON_SubDHashType hash_type, bool bForceUpdate) const
 
const class ON_SubDimple * SubDimple () const
 
unsigned int SubDimpleUseCount () const
 
void SubDModifiedNofification ()
 
class ON_SubDMesh SubDSurfaceMesh () const
 
bool SurfaceMeshCacheExists (bool bTextureCoordinatesExist, bool bCurvaturesExist, bool bColorsExist) const
 Determine if the limit surface mesh fragments exist. More...
 
bool SwapCoordinates (int i, int j) override
 virtual More...
 
void SwapDimple (class ON_SubDMeshImpl &)
 
void SwapDimple (ON_SubD &)
 
const class ON_SymmetrySymmetry () const
 
unsigned SymmetrySetCount (const ON_SubDEdge *edge) const
 
unsigned SymmetrySetCount (const ON_SubDFace *face) const
 
unsigned SymmetrySetCount (const ON_SubDVertex *vertex) const
 
unsigned SymmetrySetCount (ON_SubDComponentPtr cptr) const
 
const ON_SubDEdgeSymmetrySetNext (const ON_SubDEdge *edge) const
 
const ON_SubDEdgePtr SymmetrySetNext (const ON_SubDEdgePtr edge_ptr) const
 
const ON_SubDFaceSymmetrySetNext (const ON_SubDFace *face) const
 
const ON_SubDVertexSymmetrySetNext (const ON_SubDVertex *vertex) const
 
const ON_SubDComponentPtr SymmetrySetNext (ON_SubDComponentPtr cptr) const
 
const ON_SubDEdgeSymmetrySetPrimaryMotif (const ON_SubDEdge *edge) const
 
const ON_SubDFaceSymmetrySetPrimaryMotif (const ON_SubDFace *face) const
 
const ON_SubDVertexSymmetrySetPrimaryMotif (const ON_SubDVertex *vertex) const
 
const ON_SubDComponentPtr SymmetrySetPrimaryMotif (ON_SubDComponentPtr cptr) const
 
ON_SubDTextureCoordinateType TextureCoordinateType () const
 
bool TextureMappingRequired () const
 
const ON_MappingTag TextureMappingTag (bool bIgnoreTextureCoordinateType) const
 
unsigned int TexturePointsAreSet () const
 
const ON_SHA1_Hash TextureSettingsHash () const
 
const ON_SHA1_Hash TopologyHash () const
 
bool Transform (const ON_Xform &xform) override
 virtual More...
 
unsigned int TransformComponents (const ON_Xform &xform, const ON_COMPONENT_INDEX *ci_list, size_t ci_count, ON_SubDComponentLocation component_location)
 
unsigned int TransformComponents (const ON_Xform &xform, const ON_SubDComponentPtr *cptr_list, size_t cptr_count, ON_SubDComponentLocation component_location)
 
unsigned int UnselectComponents (bool bUnselectAllVertices, bool bUnselectAllEdges, bool bUnselectAllFaces) const
 
unsigned int UpdateAllTagsAndSectorCoefficients (bool bUnsetValuesOnly)
 
unsigned int UpdateEdgeSectorCoefficients (bool bUnsetSectorCoefficientsOnly) const
 
unsigned int UpdateEdgeTags (bool bUnsetEdgeTagsOnly)
 
unsigned int UpdateSurfaceMeshCache (bool bLazyUpdate)
 
unsigned int UpdateSurfaceMeshCache (bool bLazyUpdate, bool bComputeCurvature)
 
unsigned int UpdateSurfaceMeshCache (bool bLazyUpdate, bool bComputeCurvature, bool bSetUnchangedFaceColor, ON_Color unchanged_face_color, bool bSetUpdatedFaceColor, ON_Color updated_face_color)
 
unsigned int UpdateSurfaceMeshCache (bool bLazyUpdate, bool bSetUnchangedFaceColor, ON_Color unchanged_face_color, bool bSetUpdatedFaceColor, ON_Color updated_face_color)
 
bool UpdateSymmetry (const ON_SimpleArray< unsigned int > &moved_vertices, bool bPermitTopologyChange)
 
unsigned int UpdateVertexTags (bool bUnsetVertexTagsOnly)
 
class ON_SubDVertexArray VertexArray () const
 
unsigned int VertexCount () const
 
const class ON_SubDVertexVertexFromComponentIndex (ON_COMPONENT_INDEX component_index) const
 
const class ON_SubDVertexVertexFromId (unsigned int vertex_id) const
 
const ON_SHA1_Hash VertexHash (ON_SubDHashType hash_type) const
 
class ON_SubDVertexIterator VertexIterator () const
 
bool Write (ON_BinaryArchive &archive) const override
 virtual More...
 
- Public Member Functions inherited from ON_Geometry
 ON_Geometry ()=default
 
 ON_Geometry (const ON_Geometry &)=default
 
 ~ON_Geometry ()=default
 
ON_BoundingBox BoundingBox () const
 
bool GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const
 
bool GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const
 
virtual bool Morph (const class ON_SpaceMorph &morph)
 
ON_Geometryoperator= (const ON_Geometry &)=default
 
bool Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Scale (double scale_factor)
 
const ON_BoundingBox TightBoundingBox () const
 
bool Translate (const ON_3dVector &translation_vector)
 
- Public Member Functions inherited from ON_Object
 ON_Object () ON_NOEXCEPT
 
 ON_Object (const ON_Object &)
 
virtual ~ON_Object ()
 
bool AttachUserData (class ON_UserData *pUserData)
 
unsigned int ClearAllComponentStates () const
 
void CopyUserData (const ON_Object &source_object)
 
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
bool DetachUserData (class ON_UserData *pUserData)
 
void EmergencyDestroy ()
 
class ON_UserDataFirstUserData () const
 
class ON_UserDataGetUserData (const ON_UUID &userdata_uuid) const
 
bool GetUserString (const wchar_t *key, ON_wString &string_value) const
 
int GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const
 
int GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const
 
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
 
bool IsKindOf (const ON_ClassId *pClassId) const
 
virtual ON_UUID ModelObjectId () const
 
void MoveUserData (ON_Object &source_object)
 
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
 
ON_Objectoperator= (const ON_Object &)
 
void PurgeUserData ()
 
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
 
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
 
bool ThisIsNullptr (bool bSilentError) const
 
void TransformUserData (const class ON_Xform &xform)
 
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
 
int UserStringCount () const
 

Static Public Member Functions

static bool AutomaticMeshToSubD (ON_SubD::AutomaticMeshToSubDContext context)
 
static void AutomaticMeshToSubDRestoreDefaults (ON_SubD::AutomaticMeshToSubDContext context)
 
static unsigned int ComponentRingEdgeCount (size_t component_ring_count)
 
static unsigned int ComponentRingFaceCount (size_t component_ring_count)
 
static bool ComponentRingIsValid (const ON_SubDComponentPtr *component_ring, size_t component_ring_count)
 
static double ControlPointRadiusFromSurfacePointRadius (unsigned int point_count, double surface_point_radius)
 
static ON_SubDCreateControlNetFromNurbsCurves (const ON_ClassArray< ON_NurbsCurve > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromNurbsCurves (const ON_ObjectArray< ON_NurbsCurve > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromNurbsCurves (const ON_SimpleArray< const ON_NurbsCurve * > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromPolylines (const ON_ClassArray< ON_Polyline > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromPolylines (const ON_ClassArray< ON_PolylineCurve > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromPolylines (const ON_ObjectArray< ON_PolylineCurve > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromPolylines (const ON_SimpleArray< const ON_Polyline * > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateControlNetFromPolylines (const ON_SimpleArray< const ON_PolylineCurve * > &polylines, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateCylinder (const class ON_Cylinder &cylinder, unsigned circumference_face_count, unsigned height_face_count, ON_SubDEndCapStyle end_cap_style, ON_SubDEdgeTag end_cap_edge_tag, ON_SubDComponentLocation radius_location, ON_SubD *destination_subd)
 
static ON_SubDCreateFromBoundary (const class ON_Curve &curve, ON_SubD *destination_subd)
 
static ON_SubDCreateFromBoundaryControlPoints (const class ON_SimpleArray< ON_3dPoint > &boundary_control_points, ON_SubD *destination_subd)
 
static ON_SubDCreateFromLoftCurves (const ON_ClassArray< ON_NurbsCurve > &curves, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateFromLoftCurves (const ON_ObjectArray< ON_NurbsCurve > &curves, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateFromLoftCurves (const ON_SimpleArray< const ON_NurbsCurve * > &curves, bool bPeriodicClosedLoft, bool bCorners, unsigned int span_divisions, ON_SubD *destination_subd)
 
static ON_SubDCreateFromMesh (const class ON_Mesh *level_zero_mesh, const class ON_SubDFromMeshParameters *from_mesh_parameters, ON_SubD *subd)
 
static ON_SubDCreateFromSurface (const class ON_Surface &surface, const ON_SubDFromSurfaceParameters *from_surface_parameters, ON_SubD *destination_subd)
 
static ON_SubDCreateSubDBox (const ON_3dPoint corners[8], double edge_sharpness, unsigned int facecount_x, unsigned int facecount_y, unsigned int facecount_z, ON_SubD *destination_subd)
 
static ON_SubDCreateSubDBox (const ON_3dPoint corners[8], ON_SubDEdgeTag edge_tag, unsigned int facecount_x, unsigned int facecount_y, unsigned int facecount_z, ON_SubD *destination_subd)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const class ON_Curve &curve, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const class ON_Curve &curve, int cv_count, bool bPeriodicClosedCurve, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const class ON_Curve &curve, int cv_count, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const double *points, size_t point_count, int point_stride, bool bInterpolatePoints, bool bPeriodicClosedCurve, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const double *points, size_t point_count, int point_stride, bool bInterpolatePoints, bool bPeriodicClosedCurve, const bool *creases, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const ON_3dPoint *points, size_t point_count, bool bInterpolatePoints, bool bPeriodicClosedCurve, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const ON_SimpleArray< ON_3dPoint > &points, bool bInterpolatePoints, bool bPeriodicClosedCurve, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (const ON_SubDEdgePtr *edge_chain, size_t edge_count, class ON_NurbsCurve *destination_curve)
 
static class ON_NurbsCurveCreateSubDFriendlyCurve (ON_SimpleArray< ON_SubDEdgePtr > &edge_chain, class ON_NurbsCurve *destination_curve)
 
static bool CreateSubDFriendlyIsoCurves (const class ON_Surface &surface, int iso_dir, ON_ClassArray< ON_NurbsCurve > &loft_curves, bool &bPeriodicClosedLoft, ON_SimpleArray< bool > &loft_creases, ON_SimpleArray< double > &loft_parameters)
 
static class ON_NurbsSurfaceCreateSubDFriendlySurface (const class ON_Surface &surface, class ON_NurbsSurface *destination_surface)
 
static class ON_NurbsSurfaceCreateSubDFriendlySurface (const ON_ClassArray< ON_NurbsCurve > &cubic_curves, bool bPeriodicClosedLoft, class ON_NurbsSurface *destination_surface)
 
static class ON_NurbsSurfaceCreateSubDFriendlySurface (const ON_ObjectArray< ON_NurbsCurve > &cubic_curves, bool bPeriodicClosedLoft, class ON_NurbsSurface *destination_surface)
 
static class ON_NurbsSurfaceCreateSubDFriendlySurface (const ON_SimpleArray< const ON_NurbsCurve * > &cubic_curves, bool bPeriodicClosedLoft, class ON_NurbsSurface *destination_surface)
 
static class ON_NurbsSurfaceCreateSubDFriendlySurface (const ON_SimpleArray< const ON_NurbsCurve * > &cubic_curves, bool bPeriodicClosedLoft, const bool *creases, class ON_NurbsSurface *destination_surface)
 
static ON_SubDCreateSubDGlobeSphere (const ON_Sphere sphere, ON_SubDComponentLocation vertex_location, unsigned axial_face_count, unsigned equatorial_face_count, ON_SubD *destination_subd)
 Creates a SubD sphere made from polar triangle fans and bands of quads. The result resembles a globe with triangle fans at the poles and the edges forming latitude parallels and longitude meridians. More...
 
static ON_SubDCreateSubDIcosahedron (const ON_Sphere sphere, ON_SubDComponentLocation vertex_location, ON_SubD *destination_subd)
 Creates a SubD sphere based on an icosohedron (20 triangular faces and 5 valent vertices). This is a goofy topology for a Catmull Clark subdivision surface (all triangles, all vertices have 5 edges). You may want to consider using the much behaved result from ON_SubD::CreateSubDQuadSphere(sphere, vertex_location, 1, destination_subd) or even the result from ON_SubD::CreateSubDGlobeSphere(). More...
 
static ON_SubDCreateSubDQuadSphere (const ON_Sphere sphere, ON_SubDComponentLocation vertex_location, unsigned quad_subdivision_level, ON_SubD *destination_subd)
 Creates a SubD sphere made from quad faces. More...
 
static ON_SubDCreateSubDTriSphere (const ON_Sphere sphere, ON_SubDComponentLocation vertex_location, unsigned tri_subdivision_level, ON_SubD *destination_subd)
 Creates a SubD sphere made from triangular faces. This is a goofy topology for a Catmull Clark subdivision surface (all triangles and all vertices have 5 or 6 edges). You may want to consider using the much behaved result from ON_SubD::CreateSubDQuadSphere() or even the result from ON_SubD::CreateSubDGlobeSphere(). More...
 
static bool EdgesAreConsecutive (ON_SubDEdgePtr eptr0, ON_SubDEdgePtr eptr1)
 
static ON_SubDEdgeTag EdgeTagFromContext (unsigned int edge_face_count, const ON_SubDVertex *v0, const ON_SubDVertex *v1)
 
static ON_SubDEdgeTag EdgeTagFromContext (unsigned int edge_face_count, const ON_SubDVertexTag v0_tag, const ON_SubDVertexTag v1_tag)
 
static ON_SubDEdgeTag EdgeTagFromUnsigned (unsigned int edge_tag_as_unsigned)
 
static bool EdgeTagIsSet (ON_SubDEdgeTag edge_tag)
 
static const ON_wString EdgeTagToString (ON_SubDEdgeTag edge_tag, bool bVertose)
 
static bool GetBoundaryEdgeChain (ON_SubDEdgePtr first_edge, bool bUseEdgeMarks, ON_SimpleArray< ON_SubDEdgePtr > &boundary_edge_chain)
 
static unsigned int GetQuadSectorPointRing (bool bPermitNoSubdivisions, bool bObsoleteAndIgnoredParameter, const class ON_SubDVertex *obsolete_and_ignored_parameter, const class ON_SubDComponentPtr *component_ring, size_t component_ring_count, double *point_ring, size_t point_ring_stride)
 
static unsigned int GetQuadSectorPointRing (bool bPermitNoSubdivisions, const class ON_SubDComponentPtr *component_ring, size_t component_ring_count, unsigned int &subdivision_count, double *point_ring, size_t point_ring_stride)
 Get a ring of points that can be mulitplied by subdivsion and limit point matrices to calculate the subdivision point and limit point for the central vertex in component_ring[0]. No input validation is performed. This function will crash if the input is not valid. Call GetSubdivisionPointRing() if you want a crash proof call. More...
 
static unsigned int GetSectorComponentRing (const class ON_SubDSectorIterator &sit, ON_SimpleArray< ON_SubDComponentPtr > &component_ring)
 
static unsigned int GetSectorComponentRing (const class ON_SubDSectorIterator &sit, ON_SubDComponentPtr *component_ring, size_t component_ring_capacity)
 
static unsigned int GetSectorPointRing (bool bSubdivideIfNeeded, const class ON_SubDSectorIterator &sit, double *point_ring, size_t point_ring_capacity, size_t point_ring_stride)
 
static unsigned int GetSectorPointRing (bool bSubdivideIfNeeded, const class ON_SubDSectorIterator &sit, ON_SimpleArray< ON_3dPoint > &point_ring)
 
static unsigned int GetSectorPointRing (bool bSubdivideIfNeeded, const ON_SubDComponentPtr *component_ring, size_t component_ring_count, double *subd_point_ring, size_t subd_point_ring_capacity, size_t subd_point_ring_stride)
 
static unsigned int GetSectorPointRing (bool bSubdivideIfNeeded, size_t component_ring_count, const ON_SubDComponentPtr *component_ring, ON_SimpleArray< ON_3dPoint > &point_ring)
 
static unsigned int GetSectorPointRing (const class ON_SubDSectorIterator &sit, unsigned &subdivision_count, double *point_ring, size_t point_ring_capacity, size_t point_ring_stride)
 
static unsigned int GetSectorPointRing (const class ON_SubDSectorIterator &sit, unsigned &subdivision_count, ON_SimpleArray< ON_3dPoint > &point_ring)
 Get a ring of points that can be used to calculate the subdivision and limit points of sit.CenterVertex(). More...
 
static unsigned int GetSectorSubdivisionPointRing (const ON_SubDComponentPtr *component_ring, size_t component_ring_count, ON_SimpleArray< ON_3dPoint > &subd_point_ring)
 
static unsigned int GetSectorSubdivsionPointRing (const ON_SubDComponentPtr *component_ring, size_t component_ring_count, double *point_ring, size_t point_ring_capacity, size_t point_ring_stride)
 
static bool IsBuiltInFacePackingId (ON_UUID candidate_id)
 
static bool IsSubDFriendlyCurve (const ON_Curve *curve)
 
static bool IsSubDFriendlySurface (const ON_Surface *surface)
 
static bool IsValidSectorEdgeCount (ON_SubDVertexTag vertex_tag, unsigned int sector_edge_count)
 
static bool IsValidSectorFaceCount (ON_SubDVertexTag vertex_tag, unsigned int sector_face_count)
 
static ON_SubD::SubDFriendlyKnotType NurbsKnotType (int order, int cv_count, const double *knots)
 
static ON_SubD::SubDFriendlyKnotType NurbsKnotType (int order, int cv_count, const double *knots, ON_SimpleArray< double > *triple_knots)
 
static unsigned char ObsoleteTextureDomainTypeFromTextureCoordinateType (ON_SubDTextureCoordinateType texture_coordinate_type)
 
static void SetAutomaticMeshToSubD (ON_SubD::AutomaticMeshToSubDContext context, bool bAutomaticallyCreateSubD)
 
static const class ON_SubDVertexSubdivideSector (const class ON_SubDVertex *center_vertex, const class ON_SubDComponentPtr *component_ring, size_t component_ring_count, class ON_SubD_FixedSizeHeap &fsh)
 
static double SurfacePointRadiusFromControlPointRadius (unsigned int point_count, double control_point_radius)
 
static void SwapContents (ON_SubD &a, ON_SubD &b)
 
static ON_SubDTextureCoordinateType TextureCoordinateTypeFromObsoleteTextureDomainType (unsigned int obsolete_texture_domain_type_as_unsigned)
 
static ON_SubDTextureCoordinateType TextureCoordinateTypeFromUnsigned (unsigned int texture_coordinate_type_as_unsigned)
 
static const ON_wString TextureCoordinateTypeToString (ON_SubDTextureCoordinateType texture_domain_type)
 
static const ON_2udex TextureDomainGridSize (unsigned minimum_rectangle_count, double image_width, double image_height)
 
static const ON_SHA1_Hash TextureSettingsHash (ON_SubDTextureCoordinateType texture_coordinate_type, const class ON_MappingTag &texture_mapping_tag)
 
static ON_SubDComponentLocation ToggleSubDAppearanceValue (ON_SubDComponentLocation subd_appearance)
 
static ON_SubDToSubD (const class ON_Geometry *geometry, const class ON_SubDFromMeshParameters *from_mesh_parameters, const class ON_SubDFromSurfaceParameters *from_surface_parameters, ON_SubD *destination_subd)
 
static ON_SubD::VertexFacetType VertexFacetTypeFromUnsigned (unsigned int vertex_facet_type_as_unsigned)
 
static ON_SubDVertexTag VertexTagFromUnsigned (unsigned int vertex_tag_as_unsigned)
 
static bool VertexTagIsSet (ON_SubDVertexTag vertex_tag)
 
static const ON_wString VertexTagToString (ON_SubDVertexTag vertex_tag, bool bVertose)
 

Public Attributes

**ON_RTreeRef ControlNetComponentTree bool const
 

Static Public Attributes

static const ON_UUID CustomFacePackingId
 The custom face packing is typically used when a subd creation function sets a custom face packing different from the default. Typically this happens when there are quad packs that align well with the overall geometry or to reduce texture distortion. It is used to indicate the built-in automatic face packing was not applied. {91FD7018-8BBE-4492-8D2E-E8761C505ACF} More...
 
static const ON_UUID DefaultFacePackingId
 ADD NEW PackFaces ids above this comment and below FastAndSimplePackFacesId. More...
 
static const ON_SubDComponentLocation DefaultSubDAppearance
 = ON_SubDComponentLocation::Surface More...
 
static const ON_SubDTextureCoordinateType DefaultTextureCoordinateType
 = ON_SubDTextureCoordinateType::Packed More...
 
static const ON_SubD Empty
 
static unsigned int ErrorCount
 
static const ON_UUID FastAndSimpleFacePackingId
 The fast and simple face packing uses topology, vertex tags, and edge tags to group quads into rectangular grids. It does not perform geometric feature analysis. {C3D8DD54-F8C8-4455-BB0E-2A2F4988EC81} More...
 
static const ON_UUID GlobeSphereFacePackingId
 The globe sphere face packing is used by ON_SubD::CreateSubDGlobeSphere. The equatorial band of quads is assigned a central horizontal strip of texture space while the polar triangle fans are assigned horizontal strips from the bottom and top of texture space. The heights of the horizontal strips of texture space are chosen to minimize distortion as latitude varies. {63CA2FC1-8F6C-4EFC-9A07-C6A26A8C93FB} More...
 
static const ON_UUID QuadSphereFacePackingId
 The quad sphere face packing is used by ON_SubD::CreateSubDQuadSphere. It divides the quad sphere into two similar sets (like a baseball cover) and assigns the bottom third of texture space to the first region and the top third to the second region. The middle third is unmapped so that texture distortion is uniform for each quad. {9C491E5C-2B46-48AA-BD43-7B18FDC52D58} More...
 
- Static Public Attributes inherited from ON_Geometry
const static ON_Geometry Unset
 

Friends

class ON_SubDRef
 

Detailed Description

ON_SubD