Rhino C++ API
8.10
|
#include <opennurbs_plus_hiddenline.h>
Public Member Functions | |
ON_HLDCurve * | Curve (double t, int side=0) |
const ON_HLDCurve * | Curve (double t, int side=0) const |
void | Dump (ON_TextLog &log) const |
ON_NurbsCurve * | FullCurve () |
const ON_NurbsCurve * | FullCurve () const |
bool | IsEdgeCurve () const |
returns true if the curve is a BrepEdge of the source geometry. More... | |
bool | IsProjecting () const |
bool | IsValid (const ON_HiddenLineDrawing &hld, ON_TextLog *=nullptr) const |
ON_Curve * | PSpaceCurve () |
const ON_Curve * | PSpaceCurve () const |
void | SetFullCurve (ON_NurbsCurve *) |
void | SetPSpaceCurve (ON_Curve *) |
Public Attributes | |
ON_SimpleArray< ON_HLDCurve * > | m_C |
int | m_clipping_plane_index |
index into ON_HiddenLineDrawing::m_clipping_plane when m_type=section cut. More... | |
ON_COMPONENT_INDEX | m_CompInd |
component of source object part that generated this curve. More... | |
int | m_fci |
index of this FullCurve in ON_HiddenLineDrawing::m_full_curve. More... | |
double | m_OriginalDomainStart |
const ON_HLD_Object * | m_SourceObject |
pointer into source object in ON_HiddenLineDrawing::m_Object. More... | |
ON_SimpleArray< double > | m_t |
Increasing, partition of m_Crv->Domain()== ( m_t[0], *m_t.Last() ) More... | |
ON_SIL_EVENT::TYPE | m_type |
Friends | |
class | ON_HiddenLineDrawingImplBase |
class | TL_HiddenLineDrawingImpl |
class | TL_HLDBrepObj |
A hidden line drawing consists of curves generated from source objects in the m_object array. The curves correspond to edges, and silhouettes of source objects and intersections with cutting planes. These curves are represented as ON_HLDFullCurve's. An ON_HLDFullCurve is partitioned into hidden and visible segments called TL_HLDCurves.
ON_HLDCurve* ON_HLDFullCurve::Curve | ( | double | t, |
int | side = 0 |
||
) |
ON_HLDCurve containing parameter t side - optional - determines which side to return at breakpoints 0 = default < 0 curve that contains an interval [ t-, t ] , for some t- < t. > 0 curve that contains an interval [ t, t+ ], for some t+ > t.
const ON_HLDCurve* ON_HLDFullCurve::Curve | ( | double | t, |
int | side = 0 |
||
) | const |
void ON_HLDFullCurve::Dump | ( | ON_TextLog & | log | ) | const |
ON_NurbsCurve* ON_HLDFullCurve::FullCurve | ( | ) |
const ON_NurbsCurve* ON_HLDFullCurve::FullCurve | ( | ) | const |
FullCurve() is a curve in HLD-coordinates. So that we can freely apply the World2HLD transformation and its inverse the curve is a nurbs curve. If this ON_HLDFullCurve IsProjecting() and the containing ON_HiddenLineDrawing HasBeenFlattened then this curve will not be valid, since flattening projects this curve to a point. i.e Make sure to check for nullptr.
bool ON_HLDFullCurve::IsEdgeCurve | ( | ) | const |
returns true if the curve is a BrepEdge of the source geometry.
bool ON_HLDFullCurve::IsProjecting | ( | ) | const |
returns true if all the non clipped portions of this curve are projecting.
That is each curve segment projects to a point in the 2d hidden line drawing.
bool ON_HLDFullCurve::IsValid | ( | const ON_HiddenLineDrawing & | hld, |
ON_TextLog * | = nullptr |
||
) | const |
ON_Curve* ON_HLDFullCurve::PSpaceCurve | ( | ) |
const ON_Curve* ON_HLDFullCurve::PSpaceCurve | ( | ) | const |
If m_type sil_tangent *m_Pcrv may be the surface parameter space curve of the silhouette. In other cases it is nullptr.
void ON_HLDFullCurve::SetFullCurve | ( | ON_NurbsCurve * | ) |
void ON_HLDFullCurve::SetPSpaceCurve | ( | ON_Curve * | ) |
|
friend |
|
friend |
|
friend |
ON_SimpleArray<ON_HLDCurve*> ON_HLDFullCurve::m_C |
HLD_Curves that make up this full curve. C.Count() = t.Count()-1 C[i]->Domain() = [ t[i], t[i+1] ]
int ON_HLDFullCurve::m_clipping_plane_index |
index into ON_HiddenLineDrawing::m_clipping_plane when m_type=section cut.
ON_COMPONENT_INDEX ON_HLDFullCurve::m_CompInd |
component of source object part that generated this curve.
int ON_HLDFullCurve::m_fci |
index of this FullCurve in ON_HiddenLineDrawing::m_full_curve.
double ON_HLDFullCurve::m_OriginalDomainStart |
Initialized to ON_UNSET_VALUE. If the FullCurve is a closed curve. Rejoin can reparmeterize the curve by moving the seam.
When this has been done the original domain start is stored here. So to compute the source curve parameter from the ON_HLDFullCurve parameter double Source_t = Curve_t; if( m_OriginalDomainStart != ON_UNSET_VALUE) Source_t += m_OriginalDomainStart - Crv->Domain[0];
const ON_HLD_Object* ON_HLDFullCurve::m_SourceObject |
pointer into source object in ON_HiddenLineDrawing::m_Object.
ON_SimpleArray<double> ON_HLDFullCurve::m_t |
Increasing, partition of m_Crv->Domain()== ( m_t[0], *m_t.Last() )
ON_SIL_EVENT::TYPE ON_HLDFullCurve::m_type |