Rhino C++ API  8.7
Classes | Public Member Functions | List of all members
ON_CurveSetOverlapCheck Class Reference

#include <opennurbs_plus_validate.h>

Public Member Functions

 ON_CurveSetOverlapCheck (const ON_SimpleArray< const ON_Curve * > &Crvs, double close_g0_tol, double good_g0_tol, double close_g1_tol, double good_g1_tol, double close_g2_tol, double good_g2_tol)
 
 ~ON_CurveSetOverlapCheck ()
 
bool Check ()
 Check both. More...
 
bool EndCheck ()
 
void GetProblemEvents (ON_SimpleArray< ON_2dex > &overlaps, ON_SimpleArray< ON_Interval > &overlap_subdoms, ON_SimpleArray< ON_4dex > &g0Probs, ON_SimpleArray< ON_4dex > &g1Probs, ON_SimpleArray< ON_4dex > &g2Probs)
 
bool OverlapCheck ()
 

Detailed Description

Class to check the relationship between pairs of curves in a set. Looks for pairs that overlap.
Only consider overlaps that start and end at curve endpoints. Check 5 points including endpoints Classify overlaps as match - curves seem to be identical to within close_g0_tol partial - overlap starts at an endpt of one curve and ends at an endpt of the other. parts of each curve are not contained in the overlap supercurve, subcurve - one curve is contained within the other. Looks for endpoints that are close but not close enough, wrt g0, g1, g2; If endpt A is within close_gx_tol of endtpt B, but not within good_gx_tol, it is reported. g0 tol is 3d distance. g1 tol is angle in radians g2 tol is a percentage - if fabs(kA - kB) < tol/200*(kA + kB), then within tol

Constructor & Destructor Documentation

◆ ON_CurveSetOverlapCheck()

ON_CurveSetOverlapCheck::ON_CurveSetOverlapCheck ( const ON_SimpleArray< const ON_Curve * > &  Crvs,
double  close_g0_tol,
double  good_g0_tol,
double  close_g1_tol,
double  good_g1_tol,
double  close_g2_tol,
double  good_g2_tol 
)

◆ ~ON_CurveSetOverlapCheck()

ON_CurveSetOverlapCheck::~ON_CurveSetOverlapCheck ( )

Member Function Documentation

◆ Check()

bool ON_CurveSetOverlapCheck::Check ( )

Check both.

◆ EndCheck()

bool ON_CurveSetOverlapCheck::EndCheck ( )

◆ GetProblemEvents()

void ON_CurveSetOverlapCheck::GetProblemEvents ( ON_SimpleArray< ON_2dex > &  overlaps,
ON_SimpleArray< ON_Interval > &  overlap_subdoms,
ON_SimpleArray< ON_4dex > &  g0Probs,
ON_SimpleArray< ON_4dex > &  g1Probs,
ON_SimpleArray< ON_4dex > &  g2Probs 
)
Parameters
overlap_subdomsof overlaps[n].i
g0ProbsCurve id, end, curve id, end

◆ OverlapCheck()

bool ON_CurveSetOverlapCheck::OverlapCheck ( )