Rhino C++ API
8.12
|
#include <opennurbs_subd.h>
Public Member Functions | |
bool | ClearMark () const |
ON__UINT8 | ClearMarkBits () const |
void | ClearSavedSubdivisionPoints () const |
void | ClearSavedSubdivisionPoints (bool bClearNeighborhood) const |
const ON_3dPoint | DoubleSubdivisionPoint () const |
Get the location of the edge's subdivision vertex. More... | |
const ON_3dPoint | DoubleSubdivisionPoint (unsigned relative_subdivided_end_index) const |
Get the location of the subdivision point of the specified subdivison edge. Note that when an edge is subdivided one time a new subdivision vertex and two subdivision edges are created. If one of the subdivion edges are subdivided again, then that creates a subdivision vertex. This version of ON_SubDEdge::DoubleSubdivisionPoint(...) returns the location of that vertex. The subdivided_end_index parameter specifies which of the two initial subdivision edges are used. More... | |
class ON_SubDEdge * | Edge () const |
ON__UINT_PTR | EdgeDirection () const |
const class ON_SubDFace * | EdgeFace (int edge_face_index) const |
Get the edge's face ignoring orientation. More... | |
unsigned int | EdgeFaceCount () const |
unsigned int | EdgeId () const |
bool | EdgeIsCrease () const |
bool | EdgeIsCreaseOrSharp () const |
bool | EdgeIsDartCrease () const |
bool | EdgeIsHardCrease () const |
bool | EdgeIsSharp () const |
bool | EdgeIsSmooth () const |
bool | EdgeIsSmoothNotSharp () const |
ON_NurbsCurve * | EdgeSurfaceCurve (bool bClampEndKnots, ON_NurbsCurve *destination) const |
ON_SubDEdgeTag | EdgeTag () const |
ON_SubDEdgeType | EdgeType () const |
EdgeType() is typically used to generate text descriptions and in selection filtering. Do not confuse EdgeType() and EdgeTag(). More... | |
unsigned int | GetEdgeSurfaceCurveControlPoints (ON_3dPoint *cvs, size_t cv_capacity) const |
bool | HasInteriorEdgeTopology (bool bRequireOppositeFaceDirections) const |
bool | IsActive () const |
bool | IsNotNull () const |
bool | IsNotNullAndVerticesAreNotNull () const |
bool | IsNull () const |
bool | Mark () const |
ON__UINT8 | MarkBits () const |
const ON_SubDFace * | NeighborFace (const ON_SubDFace *face, bool bStopAtCrease) const |
const ON_3dVector | RelativeControlNetDirection () const |
const ON_Line | RelativeControlNetLine () const |
const ON_3dPoint | RelativeControlNetPoint (int relative_vertex_index) const |
const ON_3dVector | RelativeDirection () const |
const class ON_SubDFace * | RelativeFace (int relative_face_index) const |
bool | RelativeFaceMark (int relative_face_index, bool missing_face_return_value) const |
ON__UINT8 | RelativeFaceMarkBits (int relative_face_index, ON__UINT8 missing_face_return_value) const |
const ON_3dPoint | RelativePointAt (double normalized_edge_parameter, ON_SubDComponentLocation subd_appearance) const |
double | RelativeSectorCoefficient (int relative_vertex_index) const |
const ON_SubDEdgeSharpness | RelativeSharpness (bool bUseCreaseSharpness) const |
Edge sharpness oriented with respect to this ON_SubDEdgePointer's direction. More... | |
const class ON_SubDVertex * | RelativeVertex (int relative_vertex_index) const |
unsigned | RelativeVertexId (int relative_vertex_index) const |
bool | RelativeVertexMark (int relative_vertex_index, bool missing_vertex_return_value) const |
ON__UINT8 | RelativeVertexMarkBits (int relative_vertex_index, ON__UINT8 missing_vertex_return_value) const |
const ON_3dPoint | RelativeVertexPoint (int relative_vertex_index, ON_SubDComponentLocation point_location) const |
const ON_3dPoint | RelativeVertexSurfacePoint (int relative_vertex_index) const |
ON_SubDVertexTag | RelativeVertexTag (int relative_vertex_index) const |
const ON_SubDEdgePtr | Reversed () const |
bool | SetMark () const |
bool | SetMark (bool bMark) const |
ON__UINT8 | SetMarkBits (ON__UINT8 mark_bits) const |
void | SetRelativeSectorCoefficientForExperts (int relative_vertex_index, double relative_sector_coefficient) const |
void | SetRelativeSharpness (ON_SubDEdgeSharpness relative_sharpness) const |
const ON_ComponentStatus | Status () const |
const ON_3dPoint | SubdivisionPoint () const |
Get the SubD edge Catmull-Clark subdivision point. More... | |
const ON_3dPoint | SubdivisionPoint (unsigned subdivision_count) const |
Get the location of the edge's subdivision vertex. More... | |
Static Public Member Functions | |
static const ON_SubDEdgePtr | Create (const class ON_SubDComponentPtr &edge_component) |
static const ON_SubDEdgePtr | Create (const class ON_SubDEdge *edge) |
static const ON_SubDEdgePtr | Create (const class ON_SubDEdge *edge, ON__UINT_PTR direction) |
static const ON_SubDEdgePtr | Create (const class ON_SubDVertex *v0, const class ON_SubDVertex *v1) |
static const ON_SubDEdgePtr | CreateFromEndVertex (const class ON_SubDEdge *edge, const ON_SubDVertex *end_vertex) |
static const ON_SubDEdgePtr | CreateFromStartVertex (const class ON_SubDEdge *edge, const ON_SubDVertex *start_vertex) |
Public Attributes | |
ON__UINT_PTR | m_ptr |
Static Public Attributes | |
static const ON_SubDEdgePtr | Null |
bool ON_SubDEdgePtr::ClearMark | ( | ) | const |
Description: Clears (sets to false) the value of the component mark. Remarks: SubD components have a mutable runtime mark that can be used in any context where a single thread cares about the marks. It is widely used in many calculations to keep track of sets of components that are in a certain context specific state. Returns: Input value of Mark().
ON__UINT8 ON_SubDEdgePtr::ClearMarkBits | ( | ) | const |
void ON_SubDEdgePtr::ClearSavedSubdivisionPoints | ( | ) | const |
void ON_SubDEdgePtr::ClearSavedSubdivisionPoints | ( | bool | bClearNeighborhood | ) | const |
Description: Clears saved subdivision and limit surface information for this component. Parameters: bClearNeighborhood - [in] If true, all components attached to this component are also cleared.
|
static |
|
static |
Parameters: edge - [in] Returns: An ON_SubDEdgePtr pointing at edge with direction = 0 (not reversed).
|
static |
Parameters: edge - [in] direction - [in] 0: not reversed 1: reversed Returns: An ON_SubDEdgePtr pointing at edge with the specified direction.
|
static |
Parameters: v0 - [in] v1 - [in] Returns: If there is an edge connecting v0 and v1, then an ON_SubDEdgePtr pointing to that edge and oriented from v0 to v1 is returned. Otherwise ON_SubDEdgePtr::Null is returned.
|
static |
Parameters: edge - [in] end_vertex - [in] One of the edge's vertices. Returns: An ON_SubDEdgePtr pointing at edge with RelativeVertex(1) = end_vertex.
|
static |
Parameters: edge - [in] start_vertex - [in] One of the edge's vertices. Returns: An ON_SubDEdgePtr pointing at edge with RelativeVertex(0) = start_vertex.
const ON_3dPoint ON_SubDEdgePtr::DoubleSubdivisionPoint | ( | ) | const |
Get the location of the edge's subdivision vertex.
const ON_3dPoint ON_SubDEdgePtr::DoubleSubdivisionPoint | ( | unsigned | relative_subdivided_end_index | ) | const |
Get the location of the subdivision point of the specified subdivison edge. Note that when an edge is subdivided one time a new subdivision vertex and two subdivision edges are created. If one of the subdivion edges are subdivided again, then that creates a subdivision vertex. This version of ON_SubDEdge::DoubleSubdivisionPoint(...) returns the location of that vertex. The subdivided_end_index parameter specifies which of the two initial subdivision edges are used.
relative_subdivided_end_index | relative_subdivided_end_index = 0 or 1. The subdivision edge between this->SubDivisionPoint() and this->RelativeVertex(relative_subdivided_end_index).SubdivisionPoint() will be used to calculate the double subdivsion point. |
class ON_SubDEdge* ON_SubDEdgePtr::Edge | ( | ) | const |
Returns: The ON_SubDEdge this points at.
ON__UINT_PTR ON_SubDEdgePtr::EdgeDirection | ( | ) | const |
Returns: 0: this ON_SubDEdgePtr is oriented from Edge()->Vertex(0) to Edge()->Vertex(1). 1: this ON_SubDEdgePtr is oriented from Edge()->Vertex(1) to Edge()->Vertex(0).
const class ON_SubDFace* ON_SubDEdgePtr::EdgeFace | ( | int | edge_face_index | ) | const |
Get the edge's face ignoring orientation.
edge_face_index | ON_SubDEdge face index. |
unsigned int ON_SubDEdgePtr::EdgeFaceCount | ( | ) | const |
unsigned int ON_SubDEdgePtr::EdgeId | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsCrease | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsCreaseOrSharp | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsDartCrease | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsHardCrease | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsSharp | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsSmooth | ( | ) | const |
bool ON_SubDEdgePtr::EdgeIsSmoothNotSharp | ( | ) | const |
ON_NurbsCurve* ON_SubDEdgePtr::EdgeSurfaceCurve | ( | bool | bClampEndKnots, |
ON_NurbsCurve * | destination | ||
) | const |
Description: Get a cubic, uniform, nonrational, NURBS curve that is on the edge's limit curve with this->EdgeDirection() taken into account. Parameters: bClampEndKnots - [] If true, the end knots are clamped. Otherwise the end knots are (-2,-1,0,....,k1,k1+1,k1+2). destination - [in] If not nullptr, then the curve is created in this instance. Returns: A pointer to the curve or nullptr if the edge is not valid.
ON_SubDEdgeTag ON_SubDEdgePtr::EdgeTag | ( | ) | const |
Returns: If Edge() is not nullptr, Edge()->m_edge_tag is returned. Otherwise, ON_SubDEdgeTag::Unset is returned.
ON_SubDEdgeType ON_SubDEdgePtr::EdgeType | ( | ) | const |
EdgeType() is typically used to generate text descriptions and in selection filtering. Do not confuse EdgeType() and EdgeTag().
unsigned int ON_SubDEdgePtr::GetEdgeSurfaceCurveControlPoints | ( | ON_3dPoint * | cvs, |
size_t | cv_capacity | ||
) | const |
Description: Get limit curve control points with this->EdgeDirection() taken into account. Returns: 0 - failed. 4, 5, 7, 11: Number of cvs for a cubic uniform nonrational NURBS curve with (cv_count+2) knots = (-2,-1,0,1,2,3,4,5,6,7,8,9,10). Remarks: For exceptional cases,
bool ON_SubDEdgePtr::HasInteriorEdgeTopology | ( | bool | bRequireOppositeFaceDirections | ) | const |
bool ON_SubDEdgePtr::IsActive | ( | ) | const |
Returns: True if this edge is active in its parent subd or other relevant context. Remarks: When a component is in use, IsActive() = true. If was used and then deleted, IsActive() is false.
bool ON_SubDEdgePtr::IsNotNull | ( | ) | const |
Returns: True if this->Edge() is not nullptr.
bool ON_SubDEdgePtr::IsNotNullAndVerticesAreNotNull | ( | ) | const |
Returns: True if this->Edge() is not nullptr and both vertex pointers are not null as well.
bool ON_SubDEdgePtr::IsNull | ( | ) | const |
Returns: True if this->Edge() is nullptr.
bool ON_SubDEdgePtr::Mark | ( | ) | const |
Returns: The current value of the component mark ( m_status->RuntimeMark() ). Remarks: SubD components have a mutable runtime mark that can be used in any context where a single thread cares about the marks. It is widely used in many calculations to keep track of sets of components that are in a certain context specific state.
ON__UINT8 ON_SubDEdgePtr::MarkBits | ( | ) | const |
const ON_SubDFace* ON_SubDEdgePtr::NeighborFace | ( | const ON_SubDFace * | face, |
bool | bStopAtCrease | ||
) | const |
Description: Return the neighboring face. Parameters: face - [in] A face attached to this edge. bStopAtCrease - [in] If true and if m_edge_tag = ON_SubDEdgeTag::Crease, then nullptr is returned. Returns: If the m_face_count = 2, m_edge_tag is smooth or x or passes the crease tag test, one of m_face2[0,1] points a face, then the neighboring face is returned. In any other case, nullptr is returned.
const ON_3dVector ON_SubDEdgePtr::RelativeControlNetDirection | ( | ) | const |
const ON_Line ON_SubDEdgePtr::RelativeControlNetLine | ( | ) | const |
const ON_3dPoint ON_SubDEdgePtr::RelativeControlNetPoint | ( | int | relative_vertex_index | ) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection()) 1: return Edge()->Vertex(1-EdgeDirection()) Returns: The requested vertex control net point with EdgeDirection() taken into account. ON_3dPoint::NanPoint if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
const ON_3dVector ON_SubDEdgePtr::RelativeDirection | ( | ) | const |
Returns: The vector from RelativeVertex(0)->ControlNetPoint() to RelativeVertex(1)->ControlNetPoint(), or ON_3dVector::NanVector if the relative vertex pointers are nullptr.
const class ON_SubDFace* ON_SubDEdgePtr::RelativeFace | ( | int | relative_face_index | ) | const |
Description: Get the face on the left or right side of an oriented manifold or boundary edge. A face is on the "left side" if this ON_SubDEdgePtr is oriented so it points in the same direction as the face's oriented boundary. A face is on the "right side" if this ON_SubDEdgePtr is oriented so it points in the opposite direction as the face's oriented boundary. If an edge is nonmanifold (3 or more faces), then nullptr is always returned. If an edge has two faces that do not attach to this edge with opposite orientations (nonoriented manifold edge), then nullptr is returned.
Parameters: relative_face_index - [in] 0: return face on the left side of the edge with respect to EdgeOrientation(). 1: return face on the right side of the edge with respect to EdgeOrientation(). Returns: The requested face.
bool ON_SubDEdgePtr::RelativeFaceMark | ( | int | relative_face_index, |
bool | missing_face_return_value | ||
) | const |
Returns: this->RelativeFace(relative_face_index)->Mark();
ON__UINT8 ON_SubDEdgePtr::RelativeFaceMarkBits | ( | int | relative_face_index, |
ON__UINT8 | missing_face_return_value | ||
) | const |
Returns: this->RelativeFace(relative_face_index)->MarkBits();
const ON_3dPoint ON_SubDEdgePtr::RelativePointAt | ( | double | normalized_edge_parameter, |
ON_SubDComponentLocation | subd_appearance | ||
) | const |
double ON_SubDEdgePtr::RelativeSectorCoefficient | ( | int | relative_vertex_index | ) | const |
Description: 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.
Every smooth edge in a sector has the same sector coefficient at the central vertex. Parameters: relative_vertex_index - [in] Returns: If Edge() not nullptr, then If (relative_vertex_index = 0), returns Edge()->m_sector_coefficient(EdgeDirection()) If (relative_vertex_index = 0), returns Edge()->m_sector_coefficient(1-EdgeDirection()) Otherwise ON_SubDSectorType::ErrorSectorCoefficient is returned. Remarks: The name "sector coefficient" is used because is is a property of the vertex's sector (every edge in vertex sector has the same value at the tagged vertex). The sector coefficient does not change when a subdivision is applied.
const ON_SubDEdgeSharpness ON_SubDEdgePtr::RelativeSharpness | ( | bool | bUseCreaseSharpness | ) | const |
Edge sharpness oriented with respect to this ON_SubDEdgePointer's direction.
bUseCreaseSharpness | If the edge is a crease and bUseCreaseSharpness is false, then ON_SubDEdgeSharpness::Smooth is returned. If the edge is a crease and bUseCreaseSharpness is true, then ON_SubDEdgeSharpness::Crease is returned. |
const class ON_SubDVertex* ON_SubDEdgePtr::RelativeVertex | ( | int | relative_vertex_index | ) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection()) 1: return Edge()->Vertex(1-EdgeDirection()) Returns: The requested vertex with EdgeDirection() taken into account. nullptr if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
unsigned ON_SubDEdgePtr::RelativeVertexId | ( | int | relative_vertex_index | ) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection()) 1: return Edge()->Vertex(1-EdgeDirection()) Returns: The requested id of the vertex with EdgeDirection() taken into account. 0 if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
bool ON_SubDEdgePtr::RelativeVertexMark | ( | int | relative_vertex_index, |
bool | missing_vertex_return_value | ||
) | const |
ON__UINT8 ON_SubDEdgePtr::RelativeVertexMarkBits | ( | int | relative_vertex_index, |
ON__UINT8 | missing_vertex_return_value | ||
) | const |
const ON_3dPoint ON_SubDEdgePtr::RelativeVertexPoint | ( | int | relative_vertex_index, |
ON_SubDComponentLocation | point_location | ||
) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection())->Point(point_location) 1: return Edge()->Vertex(1-EdgeDirection())->Point(point_location) point_location - [in] Used to select control net or limit surface point. Returns: The requested vertex point with with EdgeDirection() taken into account. ON_3dPoint::NanPoint if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
const ON_3dPoint ON_SubDEdgePtr::RelativeVertexSurfacePoint | ( | int | relative_vertex_index | ) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection())->SurfacePoint() 1: return Edge()->Vertex(1-EdgeDirection())->SurfacePoint() Returns: The requested vertex surface point with EdgeDirection() taken into account. ON_3dPoint::NanPoint if relative_vertex_index, Edge() is nullptr, or Edge()->Vertex() is nullptr.
ON_SubDVertexTag ON_SubDEdgePtr::RelativeVertexTag | ( | int | relative_vertex_index | ) | const |
Parameters: relative_vertex_index - [in] 0: return Edge()->Vertex(EdgeDirection())->m_vertex_tag 1: return Edge()->Vertex(1-EdgeDirection())->m_vertex_tag Returns: The requested vertex with EdgeDirection() taken into account. If Edge() or Edge()->Vertex(EdgeDirection()) is nullptr, then ON_SubDVertexTag::Unset is returned.
const ON_SubDEdgePtr ON_SubDEdgePtr::Reversed | ( | ) | const |
Returns: A ON_SubDEdgePtr pointing at the same edge with the direction reversed from this.
bool ON_SubDEdgePtr::SetMark | ( | ) | const |
Description: Sets (sets to true) the value of the component mark. Remarks: SubD components have a mutable runtime mark that can be used in any context where a single thread cares about the marks. It is widely used in many calculations to keep track of sets of components that are in a certain context specific state. Returns: Input value of Mark().
bool ON_SubDEdgePtr::SetMark | ( | bool | bMark | ) | const |
Description: Sets the value of the component mark to bMark. Parameter: bMark - [in] Remarks: SubD components have a mutable runtime mark that can be used in any context where a single thread cares about the marks. It is widely used in many calculations to keep track of sets of components that are in a certain context specific state. Returns: Input value of Mark().
void ON_SubDEdgePtr::SetRelativeSectorCoefficientForExperts | ( | int | relative_vertex_index, |
double | relative_sector_coefficient | ||
) | const |
void ON_SubDEdgePtr::SetRelativeSharpness | ( | ON_SubDEdgeSharpness | relative_sharpness | ) | const |
const ON_ComponentStatus ON_SubDEdgePtr::Status | ( | ) | const |
Returns: this->Edge()->m_status.
const ON_3dPoint ON_SubDEdgePtr::SubdivisionPoint | ( | ) | const |
Get the SubD edge Catmull-Clark subdivision point.
const ON_3dPoint ON_SubDEdgePtr::SubdivisionPoint | ( | unsigned | subdivision_count | ) | const |
Get the location of the edge's subdivision vertex.
subdivision_count | subdivision_count >= 1 is the number of subdivisions to perform. |
ON__UINT_PTR ON_SubDEdgePtr::m_ptr |
For performance reasons, m_ptr is not initialized and no constructors are declared or implemented. If you require initialization, then use x = ON_SubDEdgePtr::Null or x = ON_SubDEdgePtr::Create(...).
|
static |