| Rhino C++ API
    8.24
    | 
#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.
 1.8.17
 1.8.17