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

9-17-03 LW added in conjunction with inferred curve osnap testing More...

#include <rhinoSdkSnap.h>

Inheritance diagram for CRhinoInferredCurve:
ON_BezierCurve

Public Types

enum  eCurveStyle { csSegment, csInfinite, csRay }
 

Public Member Functions

 CRhinoInferredCurve ()
 
 CRhinoInferredCurve (const CRhinoInferredCurve &src)
 
 CRhinoInferredCurve (int dim, BOOL israt, int order)
 
 ~CRhinoInferredCurve ()
 
BOOL Create (int dim, int israt, int order)
 
CRhinoInferredCurveoperator= (const CRhinoInferredCurve &src)
 
CRhinoAppSettings::osnap_mode SnapTo (const CRhinoSnapContext &snap_context, CRhinoSnapEvent &snap_event) const
 
- Public Member Functions inherited from ON_BezierCurve
 ON_BezierCurve ()
 
 ON_BezierCurve (const ON_2dPointArray &)
 sets control points More...
 
 ON_BezierCurve (const ON_3dPointArray &)
 sets control points More...
 
 ON_BezierCurve (const ON_4dPointArray &)
 sets control points More...
 
 ON_BezierCurve (const ON_BezierCurve &)
 
 ON_BezierCurve (const ON_PolynomialCurve &)
 
 ON_BezierCurve (int dim, bool bIsRational, int order)
 
 ~ON_BezierCurve ()
 
ON_BoundingBox BoundingBox () const
 
bool ChangeDimension (int desired_dimension)
 
bool ChangeWeights (int i0, double w0, int i1, double w1)
 
const ON_4dPoint ControlPoint (int cv_index) const
 
double ControlPolygonLength () const
 
bool Create (int dim, bool bIsRational, int order)
 
ON_3dVector CurvatureAt (double t) const
 
double * CV (int cv_index) const
 
int CVCount () const
 
int CVSize () const
 
ON::point_style CVStyle () const
 
int Degree () const
 
ON_3dVector DerivativeAt (double t) const
 
void Destroy ()
 
int Dimension () const
 
ON_Interval Domain () const
 
void Dump (ON_TextLog &) const
 for debugging More...
 
void EmergencyDestroy ()
 call if memory used by ON_NurbsCurve becomes invalid More...
 
bool Ev1Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative) const
 
bool Ev2Der (double t, ON_3dPoint &point, ON_3dVector &first_derivative, ON_3dVector &second_derivative) const
 
bool Evaluate (double t, int der_count, int v_stride, double *v) const
 
bool EvCurvature (double t, ON_3dPoint &point, ON_3dVector &tangent, ON_3dVector &kappa) const
 
bool EvPoint (double t, ON_3dPoint &point) const
 
bool EvTangent (double t, ON_3dPoint &point, ON_3dVector &tangent) const
 
int FindRoots (double *root, double tol=ON_ZERO_TOLERANCE) const
 
bool GetBBox (double *box_min, double *box_max, bool bGrowBox=false) const
 
bool GetBoundingBox (ON_BoundingBox &bbox, int bGrowBox=false) const
 
bool GetClosestPoint (ON_3dPoint P, double *t, double maximum_distance=0.0, const ON_Interval *sub_domain=0) const
 
bool GetCV (int cv_index, ON::point_style pointstyle, double *cv) const
 
bool GetCV (int cv_index, ON_3dPoint &point) const
 
bool GetCV (int cv_index, ON_4dPoint &point) const
 
bool GetLocalClosestPoint (ON_3dPoint P, double seed_parameter, double *t, const ON_Interval *sub_domain=0) const
 
bool GetLocalCurveIntersection (const ON_BezierCurve *other_bezcrv, double this_seed_t, double other_seed_t, double *this_t, double *other_t, const ON_Interval *this_domain=0, const ON_Interval *other_domain=0) const
 
bool GetLocalSurfaceIntersection (const ON_BezierSurface *bezsrf, double seed_t, double seed_u, double seed_v, double *t, double *u, double *v, const ON_Interval *tdomain=0, const ON_Interval *udomain=0, const ON_Interval *vdomain=0) const
 
int GetNurbForm (ON_NurbsCurve &nurbs_curve) const
 
bool GetTightBoundingBox (ON_BoundingBox &tight_bbox, bool bGrowBox=false, const ON_Xform *xform=nullptr) const
 
bool IncreaseDegree (int desired_degree)
 
int IntersectCurve (const ON_BezierCurve *bezierB, ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, const ON_Interval *bezierA_domain=0, const ON_Interval *bezierB_domain=0) const
 
int IntersectSelf (ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0) const
 
int IntersectSurface (const ON_BezierSurface *bezsrfB, ON_SimpleArray< ON_X_EVENT > &x, double intersection_tolerance=0.0, double overlap_tolerance=0.0, const ON_Interval *bezierA_domain=0, const ON_Interval *bezsrfB_udomain=0, const ON_Interval *bezsrfB_vdomain=0) const
 
bool IsRational () const
 
bool IsValid () const
 
bool Loft (const ON_3dPointArray &points)
 
bool Loft (int pt_dim, int pt_count, int pt_stride, const double *pt, int t_stride, const double *t)
 
bool MakeNonRational ()
 
bool MakeRational ()
 
bool Morph (const ON_SpaceMorph &morph)
 
ON_BezierCurve operator* (const ON_BezierCurve &B) const
 
ON_BezierCurve operator* (double a) const
 
ON_BezierCurve operator+ (const double *v) const
 
ON_BezierCurve operator+ (const ON_BezierCurve &B) const
 
ON_BezierCurve operator+ (ON_3dVector v) const
 Arithmetic operations. More...
 
ON_BezierCurve operator- (const double *v) const
 
ON_BezierCurve operator- (const ON_BezierCurve &crv) const
 
ON_BezierCurve operator- (ON_3dVector v) const
 
ON_BezierCurveoperator= (const ON_2dPointArray &)
 sets control points More...
 
ON_BezierCurveoperator= (const ON_3dPointArray &)
 sets control points More...
 
ON_BezierCurveoperator= (const ON_4dPointArray &)
 sets control points More...
 
ON_BezierCurveoperator= (const ON_BezierCurve &)
 
ON_BezierCurveoperator= (const ON_PolynomialCurve &)
 
int Order () const
 order = degree + 1 More...
 
ON_3dPoint PointAt (double t) const
 
bool Reparameterize (double c)
 
bool Reparametrize (double)
 
bool ReserveCVCapacity (int desired_cv_capacity)
 Tools for managing CV and knot memory. More...
 
bool Reverse ()
 
bool Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
 
bool Scale (double scale_factor)
 
bool ScaleConrolPoints (int i, double w)
 
bool SetCV (int cv_index, const ON_3dPoint &point)
 
bool SetCV (int cv_index, const ON_4dPoint &point)
 
bool SetCV (int cv_index, ON::point_style pointstyle, const double *cv)
 
bool SetWeight (int cv_index, double weight)
 
bool Split (double t, ON_BezierCurve &left_side, ON_BezierCurve &right_side) const
 
ON_3dVector TangentAt (double t) const
 
bool Transform (const ON_Xform &xform)
 
bool Translate (const ON_3dVector &translation_vector)
 
bool Trim (const ON_Interval &interval)
 
double Weight (int cv_index) const
 
bool ZeroCVs ()
 

Public Attributes

bool m_bActive
 9-22-03 Lowell added flag 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
 Index to possible associated smart point. <0 if not set. More...
 
eCurveStyle m_style
 
int m_type
 
- Public Attributes inherited from ON_BezierCurve
double * m_cv
 The i-th cv begins at cv[i*m_cv_stride]. More...
 
int m_cv_capacity
 
int m_cv_stride
 Number of doubles per cv ( >= ((m_is_rat)?m_dim+1:m_dim) ) More...
 
int m_dim
 Implementation. More...
 
int m_is_rat
 1 if bezier is rational, 0 if bezier is not rational More...
 
int m_order
 order = degree+1 More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ON_BezierCurve
static ON_BezierCurve CrossProduct (const ON_BezierCurve &A, ON_3dVector V)
 
static ON_BezierCurve Derivative (const ON_BezierCurve &A)
 
static bool Derivative (const ON_BezierCurve &A, ON_BezierCurve &derivativeA)
 
static ON_BezierCurve DotProduct (const ON_BezierCurve &A, const double *B)
 
static ON_BezierCurve DotProduct (const ON_BezierCurve &A, const ON_BezierCurve &B)
 
static ON_BezierCurve DotProduct (const ON_BezierCurve &A, ON_3dVector B)
 

Detailed Description

9-17-03 LW added in conjunction with inferred curve osnap testing

Member Enumeration Documentation

◆ eCurveStyle

Enumerator
csSegment 

use defined segment

csInfinite 

extend to edge of viewport each way

csRay 

extend to edge of viewport past last end

Constructor & Destructor Documentation

◆ CRhinoInferredCurve() [1/3]

CRhinoInferredCurve::CRhinoInferredCurve ( )

◆ ~CRhinoInferredCurve()

CRhinoInferredCurve::~CRhinoInferredCurve ( )

◆ CRhinoInferredCurve() [2/3]

CRhinoInferredCurve::CRhinoInferredCurve ( int  dim,
BOOL  israt,
int  order 
)

◆ CRhinoInferredCurve() [3/3]

CRhinoInferredCurve::CRhinoInferredCurve ( const CRhinoInferredCurve src)

Member Function Documentation

◆ Create()

BOOL CRhinoInferredCurve::Create ( int  dim,
int  israt,
int  order 
)

◆ operator=()

CRhinoInferredCurve& CRhinoInferredCurve::operator= ( const CRhinoInferredCurve src)

◆ SnapTo()

CRhinoAppSettings::osnap_mode CRhinoInferredCurve::SnapTo ( const CRhinoSnapContext snap_context,
CRhinoSnapEvent snap_event 
) const

Member Data Documentation

◆ m_bActive

bool CRhinoInferredCurve::m_bActive

9-22-03 Lowell added flag

curve currently being drawn

◆ m_parallel_point_index

int CRhinoInferredCurve::m_parallel_point_index

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

◆ m_smart_point_index

int CRhinoInferredCurve::m_smart_point_index

Index to possible associated smart point. <0 if not set.

◆ m_style

eCurveStyle CRhinoInferredCurve::m_style

◆ m_type

int CRhinoInferredCurve::m_type

The type of inferred curve. 0=notset 1=ortho, 2=tan 4=perp, 8=tan_parallel 16=perp_parallel, 32=guide can be a combination of the types