Rhino C++ API
8.13
|
#include <opennurbs_plus.h>
Public Member Functions | |
ON_SurfaceTreeBezier () | |
ON_SurfaceTreeBezier (const ON_BezierSurface &bezier_surface) | |
bool | IsFartherThan (double d, const ON_3dPoint &P) const |
bool | IsFartherThan (double d, const ON_BoundingBox &bbox) const |
bool | IsFartherThan (double d, const ON_CurveTreeBezier &other) const |
bool | IsFartherThan (double d, const ON_SurfaceTreeBezier &other) const |
double | MaximumDistanceTo (const class ON_SurfaceTreeBezier &stbez) const |
double | MaximumDistanceTo (const ON_CurveTreeBezier &other) const |
double | MaximumDistanceTo (ON_3dPoint P) const |
double | MaximumDistanceTo (ON_BoundingBox bbox) const |
double | MinimumDistanceTo (const class ON_SurfaceTreeBezier &stbez) const |
double | MinimumDistanceTo (const ON_CurveTreeBezier &other) const |
double | MinimumDistanceTo (ON_3dPoint P) const |
double | MinimumDistanceTo (ON_BoundingBox bbox) const |
bool | SetBezier (const ON_BezierSurface &bezier_surface) |
bool | SetLeafBox () |
Public Member Functions inherited from ON_BezierSurface | |
ON_BezierSurface () | |
ON_BezierSurface (const ON_BezierSurface &) | |
ON_BezierSurface (const ON_PolynomialSurface &) | |
ON_BezierSurface (int dim, bool is_rat, int order0, int order1) | |
~ON_BezierSurface () | |
ON_BoundingBox | BoundingBox () const |
bool | Create (int dim, bool is_rat, int order0, int order1) |
double * | CV (int cv_index0, int cv_index1) const |
int | CVSize () const |
ON::point_style | CVStyle () const |
int | Degree (int) const |
void | Destroy () |
int | Dimension () const |
ON_Interval | Domain (int) const |
void | Dump (ON_TextLog &) const |
for debugging More... | |
void | EmergencyDestroy () |
call if memory used by ON_NurbsCurve becomes invalid More... | |
bool | Evaluate (double, double, int, int, double *) const |
bool | GetBBox (double *, double *, bool bGrowBox=false) const |
bool | GetBoundingBox (ON_BoundingBox &bbox, int bGrowBox) const |
bool | GetClosestPoint (ON_3dPoint P, double *s, double *t, double maximum_distance=0.0, const ON_Interval *sub_domain0=0, const ON_Interval *sub_domain1=0) const |
bool | GetCV (int, int, ON::point_style, double *) const |
bool | GetCV (int, int, ON_3dPoint &) const |
bool | GetCV (int, int, ON_4dPoint &) const |
bool | GetLocalClosestPoint (ON_3dPoint P, double s_seed, double t_seed, double *s, double *t, const ON_Interval *sub_domain0=0, const ON_Interval *sub_domain1=0) const |
int | GetNurbForm (ON_NurbsSurface &) const |
bool | GetSurfaceSize (double *width, double *height) const |
ON_BezierCurve * | IsoCurve (int dir, double c, ON_BezierCurve *iso=nullptr) const |
returns the isocurve. More... | |
bool | IsRational () const |
true if NURBS curve is rational More... | |
bool | IsSingular (int) const |
bool | IsValid () const |
bool | Loft (const ON_ClassArray< ON_BezierCurve > &curve_list) |
bool | Loft (int count, const ON_BezierCurve *const *curve_list) |
bool | MakeNonRational () |
bool | MakeRational () |
bool | Morph (const ON_SpaceMorph &morph) |
ON_BezierSurface & | operator= (const ON_BezierSurface &) |
ON_BezierSurface & | operator= (const ON_PolynomialSurface &) |
int | Order (int) const |
= IsRational() ? Dim()+1 : Dim() More... | |
ON_3dPoint | PointAt (double s, double t) const |
bool | ReserveCVCapacity (int) |
Tools for managing CV and knot memory. More... | |
bool | Reverse (int) |
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 | SetCV (int, int, const ON_3dPoint &) |
bool | SetCV (int, int, const ON_4dPoint &) |
bool | SetCV (int, int, ON::point_style, const double *) |
bool | SetWeight (int, int, double) |
bool | Split (int, double, ON_BezierSurface &, ON_BezierSurface &) const |
bool | Transform (const ON_Xform &) |
bool | Translate (const ON_3dVector &translation_vector) |
bool | Transpose () |
transpose surface parameterization (swap "s" and "t") More... | |
bool | Trim (int dir, const ON_Interval &domain) |
double | Weight (int, int) const |
bool | ZeroCVs () |
zeros control vertices and, if rational, sets weights to 1 More... | |
Public Attributes | |
ON_SurfaceLeafBox | m_leafbox |
Public Attributes inherited from ON_BezierSurface | |
double * | m_cv |
int | m_cv_capacity |
if 0, then destructor does not free m_cv More... | |
int | m_cv_stride [2] |
int | m_dim |
Implementation. More... | |
int | m_is_rat |
0 = no, 1 = yes More... | |
int | m_order [2] |
order = degree+1 >= 2 More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ON_BezierSurface | |
static ON_BezierSurface * | InterpolateGrid (const double *point_grid, int dim, int point_count0, int point_count1, size_t point_stride0, size_t point_stride1, ON_BezierSurface *dest) |
Interpolate arectangular grid of points so that bez(i/(point_count0 - 1), i/(point_count1 - 1))) = point_grid[i][j]. The returned bezier has order (point_count0,point_count1). Be aware that interpolation of irregular grids can create surfaces with extreme oscillations. More... | |
static ON_BezierSurface * | InterpolateGrid (const ON_3dPoint *point_grid, int point_count0, int point_count1, size_t point_stride0, size_t point_stride1, ON_BezierSurface *dest) |
Interpolate arectangular grid of 3d points so that bez(i/(point_count0 - 1), i/(point_count1 - 1))) = point_grid[i][j] More... | |
static bool | MatchTangency (ON_SimpleArray< ON_BezierSurface * > &BezArray, ON_3dPoint P, ON_3dVector N, double *pMaxAngleDeviation) |
ON_SurfaceTreeBezier::ON_SurfaceTreeBezier | ( | ) |
C++ defaults for destruction, copy construction, and operator= work fine.
ON_SurfaceTreeBezier::ON_SurfaceTreeBezier | ( | const ON_BezierSurface & | bezier_surface | ) |
bool ON_SurfaceTreeBezier::IsFartherThan | ( | double | d, |
const ON_3dPoint & | P | ||
) | const |
Description: Quickly determine if the shortest distance from the point P to this bezier curve is greater than d. Parameters: d - [in] distance (> 0.0) P - [in] Returns: True if the shortest distance from the point P to this bezier curve is greater than d. It is not the case that false means that the shortest distance is less than or equal to d.
bool ON_SurfaceTreeBezier::IsFartherThan | ( | double | d, |
const ON_BoundingBox & | bbox | ||
) | const |
Description: Quickly determine if the shortest distance from the bounding box to this bezier curve is greater than d. Parameters: d - [in] distance (> 0.0) bbox - [in] Returns: True if the shortest distance from the bounding box to this bezier curve is greater than d. It is not the case that false means that the shortest distance is less than or equal to d.
bool ON_SurfaceTreeBezier::IsFartherThan | ( | double | d, |
const ON_CurveTreeBezier & | other | ||
) | const |
Description: Quickly determine if the shortest distance from the other bezier to this bezier curve is greater than d. Parameters: d - [in] distance (> 0.0) other - [in] Returns: True if the shortest distance from the other bezier to this bezier curve is greater than d. It is not the case that false means that the shortest distance is less than or equal to d.
bool ON_SurfaceTreeBezier::IsFartherThan | ( | double | d, |
const ON_SurfaceTreeBezier & | other | ||
) | const |
Description: Quickly determine if the shortest distance from the other bezier to this bezier curve is greater than d. Parameters: d - [in] distance (> 0.0) other - [in] Returns: True if the shortest distance from the other bezier to this bezier curve is greater than d. It is not the case that false means that the shortest distance is less than or equal to d.
double ON_SurfaceTreeBezier::MaximumDistanceTo | ( | const class ON_SurfaceTreeBezier & | stbez | ) | const |
Description: Quickly find an upper bound on the distance between a pair of bezier surfaces. Parameters: stbez - [in] other surface Returns: A distance that is greater than or equal to the longest distance from this surface to the other. Put another way, if Q is any point on this bezier surface and P is any point on the othr bezier surface, then then P.DistanceTo(Q) <= MaximumDistanceTo(other).
double ON_SurfaceTreeBezier::MaximumDistanceTo | ( | const ON_CurveTreeBezier & | other | ) | const |
Description: Quickly find an upper bound on the distance between this surface and a bezier curve. Parameters: other - [in] a bezier curve Returns: A distance that is greater than or equal to the longest distance from this surface to the curve. Put another way, if Q is any point on this bezier surface and P is any point on the bezier curve, then then P.DistanceTo(Q) <= MaximumDistanceTo(other).
double ON_SurfaceTreeBezier::MaximumDistanceTo | ( | ON_3dPoint | P | ) | const |
Description: Quickly find an upper bound on the distance from a point to this bezier surface. Parameters: pt - [in] Returns: A distance that is greater than or equal to the longest distance from P to a point on the bezier surface.
Put another way, if Q is any point on the bezier surface, then P.DistanceTo(Q) <= MaximumDistanceTo(P);
double ON_SurfaceTreeBezier::MaximumDistanceTo | ( | ON_BoundingBox | bbox | ) | const |
Description: Quickly find an upper bound on the distance between the bezier surface and a bounding box. Parameters: bbox - [in] Returns: A distance that is greater than or equal to the longest distance from this surface to the bounding box. Put another way, if Q is any point on this bezier surface and P is any point in bbox, then P.DistanceTo(Q) <= MaximumDistanceTo(bbox).
double ON_SurfaceTreeBezier::MinimumDistanceTo | ( | const class ON_SurfaceTreeBezier & | stbez | ) | const |
Description: Quickly find a lower bound on the distance between a pair of bezier surfaces. Parameters: stbez - [in] other bezier surface Returns: A distance that is less than or equal to the shortest distance from this surface to the other surface. Put another way, if Q is any point on this bezier surface and P is any point on the bezier surface, then then P.DistanceTo(Q) >= MinimumDistanceTo(other).
double ON_SurfaceTreeBezier::MinimumDistanceTo | ( | const ON_CurveTreeBezier & | other | ) | const |
Description: Quickly find a lower bound on the distance between this surface and a bezier curve. Parameters: other - [in] a bezier curve Returns: A distance that is less than or equal to the shortest distance from this surface to the curve. Put another way, if Q is any point on this bezier surface and P is any point on the bezier curve, then then P.DistanceTo(Q) >= MinimumDistanceTo(other).
double ON_SurfaceTreeBezier::MinimumDistanceTo | ( | ON_3dPoint | P | ) | const |
Description: Quickly find a lower bound on the distance from a point to this bezier surface. Parameters: P - [in] Returns: A distance that is less than or equal to the shortest distance from P to a point on the bezier surface. Put another way, if Q is any point on the bezier surface, then P.DistanceTo(Q) >= MinimumDistanceTo(P);
double ON_SurfaceTreeBezier::MinimumDistanceTo | ( | ON_BoundingBox | bbox | ) | const |
Description: Quickly find a lower bound on the distance between the bezier surface and a bounding box. Parameters: bbox - [in] Returns: A distance that is less than or equal to the shortest distance from this surface to the bounding box. Put another way, if Q is any point on this bezier surface and P is any point in bbox, then P.DistanceTo(Q) >= MinimumDistanceTo(bbox).
bool ON_SurfaceTreeBezier::SetBezier | ( | const ON_BezierSurface & | bezier_surface | ) |
Description: Copies bezier_surface and sets m_leafbox to be the smallest surface leaf box that contains the bezier surface. Returns: True if bezier_surface is valid and the leaf box is set.
bool ON_SurfaceTreeBezier::SetLeafBox | ( | ) |
Description: Sets m_leafbox to be the smallest surface leaf box that contains the bezier surface. Returns: True if this bezier is valid and the leaf box is set.
ON_SurfaceLeafBox ON_SurfaceTreeBezier::m_leafbox |