22 #if !defined(ON_POINT_INC_) 67 #if defined(OPENNURBS_WALL) 69 ON_DEPRECATED_MSG(
"Use interval = ON_Interval::EmptyInterval;")
99 double normalized_parameter
116 double NormalizedParameterAt (
117 double interval_parameter
123 double& operator[](
int);
124 double operator[](
int)
const;
125 double& operator[](
unsigned int);
126 double operator[](
unsigned int)
const;
131 double Length()
const;
133 bool IsIncreasing()
const;
134 bool IsDecreasing()
const;
135 bool IsInterval()
const;
136 bool IsSingleton()
const;
137 bool IsEmptyInterval()
const;
138 bool IsValid()
const;
140 #if defined(OPENNURBS_WALL) 141 ON_DEPRECATED_MSG(
"Use IsEmptyInterval()")
143 bool IsEmptySet()
const;
145 bool MakeIncreasing();
185 bool bTestOpenInterval =
false 203 bool bProperSubSet =
false 320 #if defined(OPENNURBS_WALL) 342 operator const double*()
const;
403 double& operator[](
int);
404 double operator[](
int)
const;
405 double& operator[](
unsigned int);
406 double operator[](
unsigned int)
const;
412 bool IsValid()
const;
418 bool IsUnset()
const;
421 void Set(
double x,
double y);
425 int MaximumCoordinateIndex()
const;
426 double MaximumCoordinate()
const;
428 int MinimumCoordinateIndex()
const;
429 double MinimumCoordinate()
const;
431 ON_DEPRECATED_MSG(
"Use p = ON_2dPoint::Origin;")
445 bool IsNotZero()
const;
464 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
508 explicit ON_3dPoint(
double x,
double y,
double z);
509 #if defined(OPENNURBS_WALL) 528 operator const double*()
const;
589 double& operator[](
int);
590 double operator[](
int)
const;
591 double& operator[](
unsigned int);
592 double operator[](
unsigned int)
const;
598 bool IsValid()
const;
604 bool IsUnset()
const;
607 void Set(
double x,
double y,
double z);
611 int MaximumCoordinateIndex()
const;
612 double MaximumCoordinate()
const;
614 int MinimumCoordinateIndex()
const;
615 double MinimumCoordinate()
const;
617 double Fuzz(
double tolerance = ON_ZERO_TOLERANCE )
const;
619 #if defined(OPENNURBS_WALL) 621 ON_DEPRECATED_MSG(
"Use p = ON_3dPoint::Origin;")
636 bool IsNotZero()
const;
657 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
686 double EuclideanX()
const;
696 double EuclideanY()
const;
706 double EuclideanZ()
const;
719 explicit ON_4dPoint(
double x,
double y,
double z,
double w);
750 static double InnerProduct(
757 operator const double*()
const;
795 static int ProjectiveCompare(
805 static int DictionaryCompare(
824 double& operator[](
int);
825 double operator[](
int)
const;
826 double& operator[](
unsigned int);
827 double operator[](
unsigned int)
const;
833 bool IsValid()
const;
839 bool IsUnset()
const;
842 void Set(
double x,
double y,
double z,
double w);
844 int MaximumCoordinateIndex()
const;
845 double MaximumCoordinate()
const;
847 int MinimumCoordinateIndex()
const;
848 double MinimumCoordinate()
const;
858 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
922 operator const double*()
const;
985 double& operator[](
int);
986 double operator[](
int)
const;
987 double& operator[](
unsigned int);
988 double operator[](
unsigned int)
const;
994 bool IsValid()
const;
1000 bool IsUnset()
const;
1003 void Set(
double x,
double y);
1005 int MaximumCoordinateIndex()
const;
1006 double MaximumCoordinate()
const;
1008 int MinimumCoordinateIndex()
const;
1009 double MinimumCoordinate()
const;
1011 double LengthSquared()
const;
1012 double Length()
const;
1037 double angle_tolerance = ON_DEFAULT_ANGLE_TOLERANCE
1040 bool IsPerpendicularTo(
1045 double angle_tolerance = ON_DEFAULT_ANGLE_TOLERANCE
1048 ON_DEPRECATED_MSG(
"Use v = ON_2dVector::ZeroVector;")
1051 ON_DEPRECATED_MSG("Use v = -v;")
1075 double tiny_tol = ON_ZERO_TOLERANCE
1080 bool IsZero() const;
1086 bool IsNotZero() const;
1090 bool IsUnitVector() const;
1093 bool PerpendicularTo(
1099 bool PerpendicularTo(
1119 ON__UINT32 DataCRC(ON__UINT32 current_remainder) const;
1123 ON_2dVector operator*(
int, const ON_2dVector&);
1126 ON_2dVector operator*(
float, const ON_2dVector&);
1129 ON_2dVector operator*(
double, const ON_2dVector&);
1153 const ON_2dVector& A,
1154 const ON_2dVector& B
1159 ON_IsOrthogonalFrame(
1166 ON_IsOrthonormalFrame(
1173 ON_IsRightHandFrame(
1189 ON_3dVector() =
default;
1190 ~ON_3dVector() =
default;
1191 ON_3dVector(
const ON_3dVector&) =
default;
1192 ON_3dVector& operator=(
const ON_3dVector&) =
default;
1195 static const ON_3dVector ZeroVector;
1196 static const ON_3dVector XAxis;
1197 static const ON_3dVector YAxis;
1198 static const ON_3dVector ZAxis;
1199 static const ON_3dVector UnsetVector;
1200 static const ON_3dVector NanVector;
1208 const ON_3dVector& lhs,
1209 const ON_3dVector& rhs
1219 static const ON_3dVector& UnitVector(
1223 explicit ON_3dVector(
double x,
double y,
double z);
1224 #if defined(OPENNURBS_WALL) 1228 ON_3dVector(
const ON_2dVector& );
1229 explicit ON_3dVector(
const ON_2dPoint& );
1231 explicit ON_3dVector(
const double*);
1237 explicit ON_3dVector(
const float*);
1241 operator const double*()
const;
1244 ON_3dVector& operator=(
const ON_2dVector&);
1245 ON_3dVector& operator=(
const ON_2dPoint&);
1247 ON_3dVector& operator=(
const double*);
1253 ON_3dVector& operator=(
const float*);
1255 ON_3dVector operator-()
const;
1257 ON_3dVector& operator*=(
double);
1258 ON_3dVector& operator/=(
double);
1259 ON_3dVector& operator+=(
const ON_3dVector&);
1260 ON_3dVector& operator-=(
const ON_3dVector&);
1263 double operator*(
const ON_3dVector&)
const;
1267 ON_3dVector operator*(
int)
const;
1268 ON_3dVector operator/(
int)
const;
1269 ON_3dVector operator*(
float)
const;
1270 ON_3dVector operator/(
float)
const;
1271 ON_3dVector operator*(
double)
const;
1272 ON_3dVector operator/(
double)
const;
1274 ON_3dVector operator+(
const ON_3dVector&)
const;
1276 ON_3dVector operator-(
const ON_3dVector&)
const;
1278 ON_3dVector operator+(
const ON_2dVector&)
const;
1279 ON_3dPoint operator+(
const ON_2dPoint&)
const;
1280 ON_3dVector operator-(
const ON_2dVector&)
const;
1281 ON_3dPoint operator-(
const ON_2dPoint&)
const;
1292 ON_3dVector operator*(
const ON_Xform&)
const;
1294 bool operator==(
const ON_3dVector&)
const;
1295 bool operator!=(
const ON_3dVector&)
const;
1298 bool operator<=(
const ON_3dVector&)
const;
1299 bool operator>=(
const ON_3dVector&)
const;
1300 bool operator<(
const ON_3dVector&)
const;
1301 bool operator>(
const ON_3dVector&)
const;
1304 double& operator[](
int);
1305 double operator[](
int)
const;
1306 double& operator[](
unsigned int);
1307 double operator[](
unsigned int)
const;
1313 bool IsValid()
const;
1319 bool IsUnset()
const;
1322 void Set(
double x,
double y,
double z);
1324 int MaximumCoordinateIndex()
const;
1325 double MaximumCoordinate()
const;
1327 int MinimumCoordinateIndex()
const;
1328 double MinimumCoordinate()
const;
1330 double LengthSquared()
const;
1331 double Length()
const;
1353 const ON_3dVector& other,
1354 double angle_tolerance = ON_DEFAULT_ANGLE_TOLERANCE
1357 bool IsPerpendicularTo(
1361 const ON_3dVector& other,
1362 double angle_tolerance = ON_DEFAULT_ANGLE_TOLERANCE
1365 double Fuzz(
double tolerance = ON_ZERO_TOLERANCE )
const;
1367 #if defined(OPENNURBS_WALL) 1369 ON_DEPRECATED_MSG(
"Use v = ON_3dVector::ZeroVector;")
1373 #if defined(OPENNURBS_WALL) 1375 ON_DEPRECATED_MSG(
"Use v = -v;")
1380 double LengthAndUnitize();
1387 ON_3dVector UnitVector()
const;
1400 double tiny_tol = ON_ZERO_TOLERANCE
1405 bool IsZero()
const;
1411 bool IsNotZero()
const;
1416 bool IsUnitVector()
const;
1419 bool PerpendicularTo(
1425 bool PerpendicularTo(
1450 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
1477 double xx,
double yy,
double zz,
double dd
1482 double x,
double y,
double z,
double d
1485 double MaximumCoefficient()
const;
1514 bool IsValid()
const;
1537 double& operator[](
int);
1538 double& operator[](
unsigned int);
1539 double operator[](
int)
const;
1540 double operator[](
unsigned int)
const;
1548 double DirectionLength()
const;
1564 double angle_tolerance = ON_DEFAULT_ANGLE_TOLERANCE
1578 double ValueAt(
double x,
double y,
double z)
const;
1585 size_t point_list_count,
1602 size_t point_list_count,
1627 size_t point_index_count,
1628 const unsigned int* point_index_list,
1633 size_t point_index_count,
1634 size_t point_index_stride,
1635 const unsigned int* point_index_list,
1663 double value_range[2]
1670 double value_range[2]
1680 double ZeroTolerance()
const;
1701 bool Transform(
const ON_Xform& xform );
1757 double MaximumValueAt(
1761 const double* points,
1786 double MinimumValueAt(
1790 const double* points,
1816 double MaximumAbsoluteValueAt(
1820 const double* points,
1853 double endpoint_tolerance,
1854 double interior_tolerance,
1868 #if defined(ON_DLL_TEMPLATE) 1928 ON_IsOrthogonalFrame(
1936 ON_IsOrthonormalFrame(
1944 ON_IsRightHandFrame(
1955 #if !defined(OPENNURBS_WALL) 1958 #define ON_unset_point ON_3dPoint::UnsetPoint 1960 #define ON_UNSET_POINT ON_3dPoint::UnsetPoint 1962 #define ON_UNSET_VECTOR ON_3dVector::UnsetVector 1964 #define ON_origin ON_3dPoint::Origin 1966 #define ON_xaxis ON_3dVector::XAxis 1968 #define ON_yaxis ON_3dVector::YAxis 1970 #define ON_zaxis ON_3dVector::ZAxis 1972 #define ON_forigin ON_3fPoint::Origin 1974 #define ON_fxaxis ON_3fVector::XAxis 1976 #define ON_fyaxis ON_3fVector::YAxis 1978 #define ON_fzaxis ON_3fVector::ZAxis 1982 #include "opennurbs_fpoint.h" 1993 double GaussianCurvature()
const;
1994 double MeanCurvature()
const;
1995 double MinimumRadius()
const;
1996 double MaximumRadius()
const;
2000 #if defined(ON_DLL_TEMPLATE) 2040 bool bGrowBox =
false 2044 bool SwapCoordinates(
int,
int);
2063 bool bGrowBox =
false 2066 bool SwapCoordinates(
int,
int);
2093 int point_dimension,
2097 const double* points
2109 int point_dimension,
2133 bool GetBoundingBox(
2135 int bGrowBox =
false 2152 bool bGrowBox =
false 2171 bool GetTightBoundingBox(
2173 bool bGrowBox =
false,
2197 bool SwapCoordinates(
2232 double angle_in_radians,
2265 bool GetClosestPoint(
2267 int* closest_point_index,
2268 double maximum_distance = 0.0
2289 bool bGrowBox =
false 2294 bool SwapCoordinates(
int,
int);
2311 bool SwapCoordinates(
int,
int);
2328 bool SwapCoordinates(
int,
int);
2347 bool bGrowBox =
false 2351 bool SwapCoordinates(
int,
int);
2374 bool SwapCoordinates(
int,
int);
2392 bool bGrowBow =
false 2396 bool SwapCoordinates(
int,
int);
2413 bool bGrowBox =
false 2417 bool SwapCoordinates(
int,
int);
2467 size_t point_stride,
2468 const double* point_array
2474 size_t point_stride,
2475 const float* point_array
2518 unsigned int SetFromDoubleArray(
2520 size_t point_stride,
2521 const double* point_array
2537 unsigned int SetFromFloatArray(
2539 size_t point_stride,
2540 const float* point_array
2551 unsigned int SetFromMesh(
2561 unsigned int Precision()
const;
2567 bool DoublePrecision()
const;
2573 bool SinglePrecision()
const;
2594 unsigned int point_index,
2598 if ( point_index < m_point_count )
2602 const double* p = m_dP + (point_index*m_point_stride);
2609 const float* p = m_fP + (point_index*m_point_stride);
2617 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2630 unsigned int point_index
2634 if ( point_index < m_point_count )
2638 const double* p = m_dP + (point_index*m_point_stride);
2645 const float* p = m_fP + (point_index*m_point_stride);
2653 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2658 inline ON_3dPoint operator[](
int point_index)
const 2661 if ( point_index >= 0 && ((
unsigned int)point_index) < m_point_count )
2665 const double* p = m_dP + (point_index*m_point_stride);
2672 const float* p = m_fP + (point_index*m_point_stride);
2680 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2685 inline ON_3dPoint operator[](
unsigned int point_index)
const 2688 if ( point_index < m_point_count )
2692 const double* p = m_dP + (point_index*m_point_stride);
2699 const float* p = m_fP + (point_index*m_point_stride);
2707 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2712 inline ON_3dPoint operator[](ON__INT64 point_index)
const 2715 if ( point_index >= 0 && ((ON__UINT64)point_index) < m_point_count )
2719 const double* p = m_dP + (point_index*m_point_stride);
2726 const float* p = m_fP + (point_index*m_point_stride);
2734 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2739 inline ON_3dPoint operator[](ON__UINT64 point_index)
const 2742 if ( point_index < m_point_count )
2746 const double* p = m_dP + (point_index*m_point_stride);
2753 const float* p = m_fP + (point_index*m_point_stride);
2761 buffer[0] = buffer[1] = buffer[2] = ON_UNSET_VALUE;
2766 inline unsigned int PointCount()
const 2768 return m_point_count;
2771 inline unsigned int PointStride()
const 2773 return m_point_stride;
2776 inline const double* PointDoubleArray()
const 2781 inline const float* PointFloatArray()
const 2790 unsigned int GetMeshFacePoints(
2799 unsigned int GetMeshNgonPoints(
2801 size_t ngon_points_capacity,
2809 unsigned int GetMeshNgonPoints(
2818 unsigned int GetQuadPoints(
2819 const int quad_point_indices[4],
2827 unsigned int GetQuadPoints(
2828 const unsigned int quad_point_indices[4],
2836 unsigned int GetTrianglePoints(
2837 const int triangle_point_indices[3],
2845 unsigned int GetTrianglePoints(
2846 const unsigned int triangle_point_indices[3],
2854 unsigned int GetPoints(
2855 int point_index_count,
2856 const int* point_index_list,
2864 unsigned int GetPoints(
2865 unsigned int point_index_count,
2866 const unsigned int* point_index_list,
2874 unsigned int GetPoints(
2883 unsigned int GetPoints(
2884 int point_index_count,
2885 const int* point_index_list,
2893 unsigned int GetPoints(
2894 unsigned int point_index_count,
2895 const unsigned int* point_index_list,
2900 unsigned int m_point_count;
2901 unsigned int m_point_stride;
2955 static int ComparePointer(
2969 bool IsZero()
const;
2994 #if defined(ON_DLL_TEMPLATE) 3040 bool IsZero()
const;
3050 double Width(
void)
const;
3051 double Height(
void)
const;
3062 bool IsRectEmpty(
void)
const;
3063 bool IsRectNull(
void)
const;
3064 void SetRectEmpty(
void) { *
this = Zero; }
3065 void SetRect(
double l,
double t,
double r,
double b);
3069 void OffsetRect(
double,
double);
3071 void InflateRect(
double,
double);
3072 void InflateRect(
double,
double,
double,
double);
3073 void DeflateRect(
double,
double);
3076 void NormalizeRect();
3085 #if defined(ON_DLL_TEMPLATE) Definition: opennurbs_point.h:2231
Definition: opennurbs_point.h:2374
Definition: opennurbs_fpoint.h:556
Definition: opennurbs_fpoint.h:832
Definition: opennurbs_point.h:2255
Definition: opennurbs_point.h:1933
static const ON_Interval ZeroToTwoPi
Definition: opennurbs_point.h:51
static const ON_Interval Nan
Definition: opennurbs_point.h:52
Definition: opennurbs_point.h:2335
Definition: opennurbs_point.h:2289
static const ON_Interval ZeroToOne
Definition: opennurbs_point.h:50
Definition: opennurbs_point.h:2356
Definition: opennurbs_point.h:2312
Definition: opennurbs_fpoint.h:211
Definition: opennurbs_point.h:1422
Class ON_2dSize.
Definition: opennurbs_point.h:2844
Definition: opennurbs_point.h:277
Definition: opennurbs_mesh.h:1245
Definition: opennurbs_point.h:2018
Definition: opennurbs_point.h:648
Definition: opennurbs_bounding_box.h:25
Definition: opennurbs_point.h:1996
Definition: opennurbs_mesh.h:2188
Definition: opennurbs_point.h:2272
Definition: opennurbs_line.h:20
Definition: opennurbs_point.h:2932
Definition: opennurbs_mesh.h:790
static const ON_Interval EmptyInterval
Definition: opennurbs_point.h:49
Definition: opennurbs_bezier.h:150
Definition: opennurbs_fpoint.h:38
Definition: opennurbs_point.h:460
Definition: opennurbs_plane.h:20
Definition: opennurbs_fpoint.h:385
Typically the vector portion is a unit vector and m_d = -(x*P.x + y*P.y + z*P.z) for a point P on the...
Definition: opennurbs_point.h:1433
Definition: opennurbs_point.h:839
Definition: opennurbs_point.h:1152
Definition: opennurbs_point.h:46
Definition: opennurbs_point.h:1973