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

#include <opennurbs_subd.h>

Public Types

enum  : unsigned int { MaximumCornerAngleIndex = 72 }
 

Public Member Functions

 ON_SubDSectorType ()=default
 
 ON_SubDSectorType (const ON_SubDSectorType &)=default
 
unsigned int ComponentRingCount () const
 
unsigned int CornerSectorAngleIndex () const
 
double CornerSectorAngleRadians () const
 
unsigned int EdgeCount () const
 
Returns
Number of edges attached to the center vertex.
More...
 
unsigned int FaceCount () const
 
Returns
Number of faces in the sector.
More...
 
unsigned int FacetEdgeCount () const
 
unsigned int GetAllEigenvalues (double *eigenvalues, size_t eigenvalues_capacity)
 
unsigned int GetSubdivisionMatrix (double **S, size_t matrix_capacity) const
 
unsigned int GetSubdivisionMatrix (double *S, size_t S_capacity) const
 
double GetSubdominantEigenvectors (double *E1, size_t E1_capacity, double *E2, size_t E2_capacity) const
 
unsigned int GetSurfaceEvaluationCoefficients (double *LPev, size_t LPev_capacity, double *LT0ev, size_t LT0ev_capacity, double *LT1ev, size_t LT1ev_capacity) const
 
bool IsConcaveCornerSector () const
 
bool IsConvexCornerSector () const
 
bool IsCornerSector () const
 
bool IsCreaseSector () const
 
bool IsDartSector () const
 
bool IsSmoothSector () const
 
bool IsValid () const
 
ON_SubDSectorTypeoperator= (const ON_SubDSectorType &)=default
 
unsigned int PointRingCount () const
 
double SectorCoefficient () const
 
ON_SubDSectorRingSubD (double radius, double sector_angle_radians, ON_SubD *subd) const
 
unsigned int SectorTypeHash () const
 
double SubdominantEigenvalue () const
 
unsigned int SubdominantEigenvalueMulitiplicity () const
 
bool SurfaceEvaluationCoefficientsAvailable () const
 
double SurfaceNormalSign () const
 SurfaceNormalSign() is a debugging tool - slow and not useful in general. More...
 
ON_SubDVertexTag VertexTag () const
 

Static Public Member Functions

static double AngleRadiansFromCornerAngleIndex (unsigned int corner_angle_index)
 
static double ClampCornerSectorAngleRadians (double corner_sector_angle_radians)
 
static int Compare (const ON_SubDSectorType &a, const ON_SubDSectorType &b)
 
static int Compare (const ON_SubDSectorType *, const ON_SubDSectorType *)
 
static double CopyEdgeSectorCoefficient (const class ON_SubDEdge *edge, const class ON_SubDVertex *vertex, double error_return_value)
 Copy the sector coefficient that is currently set on the edge. The sector coefficient is a property of a smooth edge end that is attached to a dart, crease, or corner vertex. In all other cases the sector coefficient is ignored. The value of the sector coefficient is constant throughout subdivision and this function is used to copy edge sector coefficients during subdivision. Every smooth edge in a sector has the same sector coefficient at the central vertex. More...
 
static unsigned int CornerAngleIndexFromCornerAngleRadians (double angle_radians)
 
static double CornerSectorAngleRadiansFromEdges (ON_SubDEdgePtr sector_boundary_edge0_ptr, ON_SubDEdgePtr sector_boundary_edge1_ptr)
 
static double CornerSectorCoefficient (unsigned int sector_face_count, double corner_sector_angle_radians)
 
static double CreaseSectorCoefficient (unsigned int sector_face_count)
 
static ON_SubDSectorType Create (const class ON_SubDEdge *edge, unsigned int edge_vertex_index)
 
static ON_SubDSectorType Create (const class ON_SubDFace *face, const class ON_SubDVertex *vertex)
 
static ON_SubDSectorType Create (const class ON_SubDFace *face, unsigned int face_vertex_index)
 
static ON_SubDSectorType Create (const ON_SubDSectorIterator &sit)
 
static ON_SubDSectorType Create (ON_SubDVertexTag vertex_tag, unsigned int sector_face_count, double corner_sector_angle_radians)
 
static ON_SubDSectorType CreateCornerSectorType (unsigned int sector_face_count, double sector_corner_angle_radians)
 
static ON_SubDSectorType CreateCreaseSectorType (unsigned int sector_face_count)
 
static ON_SubDSectorType CreateDartSectorType (unsigned int sector_face_count)
 
static ON_SubDSectorType CreateSmoothSectorType (unsigned int sector_face_count)
 
static double DartSectorCoefficient (unsigned int sector_face_count)
 
static bool IsValidCornerSectorAngleRadians (double corner_sector_angle_radians)
 
static bool IsValidSectorCoefficientValue (double coefficient_value, bool bAllowUnsetTaggedEndCoefficient)
 
static unsigned int MinimumSectorEdgeCount (ON_SubDVertexTag vertex_tag)
 
static unsigned int MinimumSectorFaceCount (ON_SubDVertexTag vertex_tag)
 
static double SectorCoefficientCalculationError ()
 
static unsigned int SectorEdgeCountFromFaceCount (ON_SubDVertexTag vertex_tag, unsigned int sector_face_count)
 
static unsigned int SectorFaceCountFromEdgeCount (ON_SubDVertexTag vertex_tag, unsigned int sector_edge_count)
 
static unsigned int SectorPointRingCountFromEdgeCount (ON_SubDVertexTag vertex_tag, unsigned int sector_edge_count)
 
static unsigned int SectorPointRingCountFromFaceCount (ON_SubDVertexTag vertex_tag, unsigned int sector_face_count)
 
static double SmoothSectorCoefficient ()
 

Static Public Attributes

static const ON_SubDSectorType Empty
 
static const double ErrorCornerSectorAngle
 This value is indicate a corner sector angle calculation failed. More...
 
static const double ErrorSectorCoefficient
 This value indicates an edge sector coefficient calculation failed. More...
 
static const double ErrorSectorTheta
 This value is used to indicate a sector theta calculation failed. More...
 
static const double IgnoredCornerSectorAngle
 = 0.0; More...
 
static const double IgnoredSectorCoefficient
 = 0.0; More...
 
static const double MaximumCornerAngleRadians
 ON_SubDSectorType::MaximumCornerAngleRadians = 2.0*ON_PI - ON_SubDSectorType::MinimumCornerAngleRadians;. More...
 
static const double MinimumCornerAngleRadians
 ON_SubDSectorType::MinimumCornerAngleRadians = (2.0*ON_PI)/((double)(ON_SubDSectorType::MaximumCornerAngleIndex));. More...
 
static const double SmoothSectorTheta
 This value is used for smooth sector thetas. More...
 
static const double UnsetCornerSectorAngle
 = -8881.0; More...
 
static const double UnsetSectorCoefficient
 = -8883.0; More...
 
static const double UnsetSectorTheta
 This value is used to indicate a sector theta needs to be set. More...
 

Detailed Description

ON_SubDSectorType