Rhino C++ API  8.14
Public Types | Public Member Functions | Public Attributes | List of all members
CRhinoIntSnapCandidate Class Reference

#include <rhinoSdkSnap.h>

Public Types

enum  eCase { ccNormal = 0, ccActive, ccInferred }
 

Public Member Functions

 CRhinoIntSnapCandidate ()
 
const ON_BezierCurveBezierCurve () const
 

Public Attributes

ON_Xform m_b2w
 
bool m_bCheckVisibility
 
ON_BezierCurve m_bez
 Use for "phantom" smart-tracking lines. More...
 
int m_case
 
const class CRhCurveDisplay * m_cd
 Curve display bezier list to intersect. More...
 
int m_cd_seg_index
 seed index for finding the real intersection More...
 
CRhinoSnapEvent m_event
 
ON_Xform m_near_snap_xform
 This transforms the bezier into snapping coordinates. More...
 
int m_parallel_point_index
 index to possible associated smart point parallel lines come from. <0 if not set More...
 
int m_smart_point_index
 2 Oct 2003, Mikko added a setting that tells which smart point the candidate belongs to if any. More...
 
ON_Line m_tanline
 
int m_type
 

Member Enumeration Documentation

◆ eCase

9-22-03 Lowell Added flag so active curves can be recognized and excluded from overlap cases in int osnap testing

Enumerator
ccNormal 
ccActive 
ccInferred 

Constructor & Destructor Documentation

◆ CRhinoIntSnapCandidate()

CRhinoIntSnapCandidate::CRhinoIntSnapCandidate ( )

Member Function Documentation

◆ BezierCurve()

const ON_BezierCurve& CRhinoIntSnapCandidate::BezierCurve ( ) const

Description: Use BezierCurve() to get the bezier to intersect.

Member Data Documentation

◆ m_b2w

ON_Xform CRhinoIntSnapCandidate::m_b2w

This transform maps the bezier into world coordinates. For "oridinary" objects it is the identity. For instance references, the bezier is instance definition geometry and m_b2w maps it to the referenced location in world space.

◆ m_bCheckVisibility

bool CRhinoIntSnapCandidate::m_bCheckVisibility

18 Sept 2014, Mikko: If true osnap will only snap to this candidate if the snap location is visible and not covered by shaded objects.

◆ m_bez

ON_BezierCurve CRhinoIntSnapCandidate::m_bez

Use for "phantom" smart-tracking lines.

◆ m_case

int CRhinoIntSnapCandidate::m_case

◆ m_cd

const class CRhCurveDisplay* CRhinoIntSnapCandidate::m_cd

Curve display bezier list to intersect.

The portion of the curve that will be used to look for intersection snaps is either a bezier segment in m_cd or m_bez. Use the BezierCurve() function to get the right one.

◆ m_cd_seg_index

int CRhinoIntSnapCandidate::m_cd_seg_index

seed index for finding the real intersection

◆ m_event

CRhinoSnapEvent CRhinoIntSnapCandidate::m_event

◆ m_near_snap_xform

ON_Xform CRhinoIntSnapCandidate::m_near_snap_xform

This transforms the bezier into snapping coordinates.

◆ m_parallel_point_index

int CRhinoIntSnapCandidate::m_parallel_point_index

index to possible associated smart point parallel lines come from. <0 if not set

◆ m_smart_point_index

int CRhinoIntSnapCandidate::m_smart_point_index

2 Oct 2003, Mikko added a setting that tells which smart point the candidate belongs to if any.

◆ m_tanline

ON_Line CRhinoIntSnapCandidate::m_tanline

7 Oct 2003, Mikko added near point tangent vector. If 2 lines overlap and third line intersects them, it's hard to snap to the intersection because Rhino tends to find the overlapping lines as the 2 closest candidates. Adding a tangent line to help sort out those cases.

◆ m_type

int CRhinoIntSnapCandidate::m_type

4 Oct 2003, Mikko added a setting that tells the inferred line type. 0=notset 1=ortho 2=tan 4=perp 8=tan_parallel 16=perp_parallel can be a combination of the types