Rhino C++ API
8.14
|
#include <opennurbs_plus_x.h>
Public Types | |
enum | TYPE : unsigned int { TYPE::unset = 0, TYPE::transverse = 1, TYPE::tangent = 2, TYPE::overlap = 3, TYPE::transverse_point = 4, TYPE::tangent_point = 5, TYPE::unknown = 0xE, TYPE::none = 0xF } |
Public Member Functions | |
ON_SSX_EVENT () ON_NOEXCEPT | |
NO VIRTUAL FUNCTIONS IN THIS CLASS. More... | |
ON_SSX_EVENT (const ON_SSX_EVENT &) | |
copies m_curveA, m_curveB, m_curve3d More... | |
~ON_SSX_EVENT () | |
deletes m_curveA, m_curveB, m_curve3d More... | |
void | Dump (ON_TextLog &text_log) const |
bool | IsCurveEvent () const |
bool | IsOverlapEvent () const |
bool | IsPointEvent () const |
bool | IsTangentEvent () const |
bool | IsTinyEvent (double tiny_tolerance) const |
bool | IsValid (ON_TextLog *text_log, double intersection_tolerance, double overlap_tolerance, double fitting_tolerance, const class ON_Surface *surfaceA, const class ON_Interval *surfaceA_domain0, const class ON_Interval *surfaceA_domain1, const class ON_Surface *surfaceB, const class ON_Interval *surfaceB_domain0, const class ON_Interval *surfaceB_domain1) const |
ON_SSX_EVENT & | operator= (const ON_SSX_EVENT &src) |
copies m_curveA, m_curveB, m_curve3d More... | |
Public Attributes | |
ON_Curve * | m_curve3d |
3d surface B parameter space curve More... | |
ON_Curve * | m_curveA |
2d surface A parameter space curve More... | |
ON_Curve * | m_curveB |
2d surface B parameter space curve More... | |
ON_3dPoint | m_point3d |
3d intersection point More... | |
ON_3dPoint | m_pointA |
2d surfaceA parameter space point with z = 0 More... | |
ON_3dPoint | m_pointB |
2d surfaceB parameter space point with z = 0 More... | |
TYPE | m_type |
ON_U | m_user |
The ON_SSX_EVENT class is used to report surface-surface intersection events.
|
strong |
ON_SSX_EVENT::ON_SSX_EVENT | ( | ) |
NO VIRTUAL FUNCTIONS IN THIS CLASS.
ON_SSX_EVENT::~ON_SSX_EVENT | ( | ) |
deletes m_curveA, m_curveB, m_curve3d
ON_SSX_EVENT::ON_SSX_EVENT | ( | const ON_SSX_EVENT & | ) |
copies m_curveA, m_curveB, m_curve3d
void ON_SSX_EVENT::Dump | ( | ON_TextLog & | text_log | ) | const |
bool ON_SSX_EVENT::IsCurveEvent | ( | ) | const |
Returns: True if m_type is ssx_transverse or ssx_tangent. See Also: ON_SSX_EVENT::IsPointEvent ON_SSX_EVENT::IsTinyEvent
bool ON_SSX_EVENT::IsOverlapEvent | ( | ) | const |
Returns: True if m_type is ssx_overlap.
bool ON_SSX_EVENT::IsPointEvent | ( | ) | const |
Returns: True if m_type is ssx_transverse_point or ssx_tangent_point. See Also: ON_SSX_EVENT::IsCurveEvent ON_SSX_EVENT::IsTinyEvent
bool ON_SSX_EVENT::IsTangentEvent | ( | ) | const |
Returns: True if m_type is ssx_tangent, or ssx_tangent_point.
bool ON_SSX_EVENT::IsTinyEvent | ( | double | tiny_tolerance | ) | const |
Description: This function can be used to detect intersection events that are "nearly" points. Parameters: tiny_tolerance - [in] Returns: True if m_type is ssx_transverse_point or ssx_tangent_point, or, m_type is ssx_transverse, ssx_tangent or ssx_overlap and length of the longest side of m_curve3d's bounding box is <= tiny_tolerance. See Also: ON_SSX_EVENT::IsPointEvent ON_SSX_EVENT::IsCurveEvent
bool ON_SSX_EVENT::IsValid | ( | ON_TextLog * | text_log, |
double | intersection_tolerance, | ||
double | overlap_tolerance, | ||
double | fitting_tolerance, | ||
const class ON_Surface * | surfaceA, | ||
const class ON_Interval * | surfaceA_domain0, | ||
const class ON_Interval * | surfaceA_domain1, | ||
const class ON_Surface * | surfaceB, | ||
const class ON_Interval * | surfaceB_domain0, | ||
const class ON_Interval * | surfaceB_domain1 | ||
) | const |
Description: Check intersection event values to make sure they are valid. Parameters: text_log - [in] If not null and an error is found, then a description of the error is printed to text_log. intersection_tolerance - [in] 0.0 or value used in intersection calculation. overlap_tolerance - [in] 0.0 or value used in intersection calculation. fitting_tolerance - [in] 0.0 or value used in intersection calculation. surfaceA - [in] nullptr or surfaceA passed to intersection calculation. surfaceA_domain0 - [in] nullptr or surfaceA "u" domain used in intersection calculation. surfaceA_domain1 - [in] nullptr or surfaceA "v" domain used in intersection calculation. surfaceB - [in] nullptr or surfaceB passed to intersection calculation. surfaceB_domain0 - [in] nullptr or surfaceB "u" domain used in intersection calculation. surfaceB_domain1 - [in] nullptr or surfaceB "v" domain used in intersection calculation. Returns: True if event is valid.
ON_SSX_EVENT& ON_SSX_EVENT::operator= | ( | const ON_SSX_EVENT & | src | ) |
copies m_curveA, m_curveB, m_curve3d
ON_Curve* ON_SSX_EVENT::m_curve3d |
3d surface B parameter space curve
ON_Curve* ON_SSX_EVENT::m_curveA |
2d surface A parameter space curve
If m_type = ssx_transverse, ssx_tangent, or ssx_overlap, then the intersection curves are returned here.
In all cases the 3 curves are compatibly oriented. For ssx_transverse events, the 3d curve direction agrees with SurfaceNormalB x SurfaceNormalA For ssx_tangent events, the orientation is random. For ssx_overlap events, the overlap is to the left of m_curveA. These curves are deleted by ~ON_SSX_EVENT(). If you want to harvest a curve for long term use, set the pointer to nullptr.
ON_Curve* ON_SSX_EVENT::m_curveB |
2d surface B parameter space curve
ON_3dPoint ON_SSX_EVENT::m_point3d |
3d intersection point
ON_3dPoint ON_SSX_EVENT::m_pointA |
2d surfaceA parameter space point with z = 0
If m_type = ssx_transverse_point or ssx_tangent_point, the the points are returned here
ON_3dPoint ON_SSX_EVENT::m_pointB |
2d surfaceB parameter space point with z = 0
TYPE ON_SSX_EVENT::m_type |
ON_U ON_SSX_EVENT::m_user |
This field is a scratch field for users. The constructor sets it to zero and the intersectors never use it.