Rhino C++ API  8.6
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
ON_3dPoint Class Reference

#include <opennurbs_point.h>

Inheritance diagram for ON_3dPoint:
ON_HLDPoint

Public Member Functions

 ON_3dPoint ()=default
 x,y,z not initialized More...
 
 ON_3dPoint (const class ON_2fPoint &)
 from 2f point More...
 
 ON_3dPoint (const class ON_2fVector &)
 from 2f point More...
 
 ON_3dPoint (const class ON_3fPoint &)
 from 3f point More...
 
 ON_3dPoint (const class ON_3fVector &)
 from 3f point More...
 
 ON_3dPoint (const class ON_4fPoint &h)
 from 4f point- h.w must be non-zero More...
 
 ON_3dPoint (const double *)
 from double[3] array More...
 
 ON_3dPoint (const float *)
 from float[3] array More...
 
 ON_3dPoint (const ON_2dPoint &)
 from 2d point More...
 
 ON_3dPoint (const ON_2dVector &)
 from 2d vector More...
 
 ON_3dPoint (const ON_3dPoint &)=default
 
 ON_3dPoint (const ON_3dVector &)
 from 3d vector More...
 
 ON_3dPoint (const ON_4dPoint &h)
 from 4d point - h.w must be non-zero More...
 
 ON_3dPoint (double x, double y, double z)
 
 ~ON_3dPoint ()=default
 
ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
 
double DistanceTo (const ON_3dPoint &) const
 
double DistanceToSquared (const ON_3dPoint &) const
 
double Fuzz (double tolerance=ON_ZERO_TOLERANCE) const
 tolerance to use when comparing 3d points More...
 
bool IsCoincident (const ON_3dPoint &P) const
 
bool IsNan () const
 
bool IsNotZero () const
 
bool IsUnset () const
 
bool IsUnsetOrNan () const
 
bool IsValid () const
 
bool IsZero () const
 
double MaximumCoordinate () const
 absolute value of maximum coordinate More...
 
int MaximumCoordinateIndex () const
 
double MinimumCoordinate () const
 absolute value of minimum coordinate More...
 
int MinimumCoordinateIndex () const
 
 operator const double * () const
 
 operator double * ()
 (double*) conversion operators More...
 
bool operator!= (const ON_3dPoint &) const
 
double operator* (const ON_3dPoint &) const
 dot product for points acting as vectors More...
 
double operator* (const ON_3dVector &) const
 dot product for points acting as vectors More...
 
ON_3dPoint operator* (const ON_Xform &) const
 
ON_3dPoint operator* (double) const
 
ON_3dPoint operator* (float) const
 
ON_3dPoint operator* (int) const
 
ON_3dPointoperator*= (double)
 
ON_3dPoint operator+ (const ON_2dPoint &) const
 
ON_3dPoint operator+ (const ON_2dVector &) const
 
ON_3dPoint operator+ (const ON_2fPoint &) const
 
ON_3dPoint operator+ (const ON_2fVector &) const
 
ON_3dPoint operator+ (const ON_3dPoint &) const
 
ON_3dPoint operator+ (const ON_3dVector &) const
 
ON_3dPoint operator+ (const ON_3fPoint &) const
 
ON_3dPoint operator+ (const ON_3fVector &) const
 
ON_3dPointoperator+= (const ON_3dVector &)
 
ON_3dVector operator- (const ON_2dPoint &) const
 
ON_3dPoint operator- (const ON_2dVector &) const
 
ON_3dVector operator- (const ON_2fPoint &) const
 
ON_3dPoint operator- (const ON_2fVector &) const
 
ON_3dVector operator- (const ON_3dPoint &) const
 
ON_3dPoint operator- (const ON_3dVector &) const
 
ON_3dVector operator- (const ON_3fPoint &) const
 
ON_3dPoint operator- (const ON_3fVector &) const
 
ON_3dPointoperator-= (const ON_3dVector &)
 
ON_3dPoint operator/ (double) const
 
ON_3dPoint operator/ (float) const
 
ON_3dPoint operator/ (int) const
 
ON_3dPointoperator/= (double)
 
bool operator< (const ON_3dPoint &) const
 
bool operator<= (const ON_3dPoint &) const
 dictionary order comparisons More...
 
ON_3dPointoperator= (const class ON_2fPoint &)
 
ON_3dPointoperator= (const class ON_2fVector &)
 
ON_3dPointoperator= (const class ON_3fPoint &)
 
ON_3dPointoperator= (const class ON_3fVector &)
 
ON_3dPointoperator= (const class ON_4fPoint &)
 
ON_3dPointoperator= (const double *)
 point = double[3] support More...
 
ON_3dPointoperator= (const float *)
 point = float[3] support More...
 
ON_3dPointoperator= (const ON_2dPoint &)
 use implicit operator=(const ON_3dPoint&) More...
 
ON_3dPointoperator= (const ON_2dVector &)
 
ON_3dPointoperator= (const ON_3dPoint &)=default
 
ON_3dPointoperator= (const ON_3dVector &)
 
ON_3dPointoperator= (const ON_4dPoint &)
 
bool operator== (const ON_3dPoint &) const
 
bool operator> (const ON_3dPoint &) const
 
bool operator>= (const ON_3dPoint &) const
 
double & operator[] (int)
 index operators mimic double[3] behavior More...
 
double operator[] (int) const
 
double & operator[] (unsigned int)
 
double operator[] (unsigned int) const
 
void Rotate (double angle, const ON_3dVector &axis, const ON_3dPoint &center)
 
void Rotate (double sin_angle, double cos_angle, const ON_3dVector &axis, const ON_3dPoint &center)
 
void Set (double x, double y, double z)
 set 3d point value More...
 
void Transform (const ON_Xform &)
 
void Zero ()
 set all coordinates to zero; More...
 

Static Public Member Functions

static int Compare (const ON_3dPoint &lhs, const ON_3dPoint &rhs)
 
static const ON_3dPoint Midpoint (const ON_3dPoint &A, const ON_3dPoint &B)
 

Public Attributes

double x
 
double y
 
double z
 

Static Public Attributes

static const ON_3dPoint NanPoint
 (ON_DBL_QNAN,ON_DBL_QNAN,ON_DBL_QNAN) More...
 
static const ON_3dPoint Origin
 (0.0,0.0,0.0) More...
 
static const ON_3dPoint UnsetPoint
 (ON_UNSET_VALUE,ON_UNSET_VALUE,ON_UNSET_VALUE) More...
 

Detailed Description

ON_3dPoint

Constructor & Destructor Documentation

◆ ON_3dPoint() [1/14]

ON_3dPoint::ON_3dPoint ( )
default

x,y,z not initialized

◆ ~ON_3dPoint()

ON_3dPoint::~ON_3dPoint ( )
default

◆ ON_3dPoint() [2/14]

ON_3dPoint::ON_3dPoint ( const ON_3dPoint )
default

◆ ON_3dPoint() [3/14]

ON_3dPoint::ON_3dPoint ( double  x,
double  y,
double  z 
)
explicit

◆ ON_3dPoint() [4/14]

ON_3dPoint::ON_3dPoint ( const ON_2dPoint )

from 2d point

◆ ON_3dPoint() [5/14]

ON_3dPoint::ON_3dPoint ( const ON_4dPoint h)
explicit

from 4d point - h.w must be non-zero

◆ ON_3dPoint() [6/14]

ON_3dPoint::ON_3dPoint ( const ON_2dVector )
explicit

from 2d vector

◆ ON_3dPoint() [7/14]

ON_3dPoint::ON_3dPoint ( const ON_3dVector )

from 3d vector

◆ ON_3dPoint() [8/14]

ON_3dPoint::ON_3dPoint ( const double *  )
explicit

from double[3] array

◆ ON_3dPoint() [9/14]

ON_3dPoint::ON_3dPoint ( const class ON_2fPoint )
explicit

from 2f point

◆ ON_3dPoint() [10/14]

ON_3dPoint::ON_3dPoint ( const class ON_3fPoint )

from 3f point

◆ ON_3dPoint() [11/14]

ON_3dPoint::ON_3dPoint ( const class ON_4fPoint h)
explicit

from 4f point- h.w must be non-zero

◆ ON_3dPoint() [12/14]

ON_3dPoint::ON_3dPoint ( const class ON_2fVector )
explicit

from 2f point

◆ ON_3dPoint() [13/14]

ON_3dPoint::ON_3dPoint ( const class ON_3fVector )
explicit

from 3f point

◆ ON_3dPoint() [14/14]

ON_3dPoint::ON_3dPoint ( const float *  )
explicit

from float[3] array

Member Function Documentation

◆ Compare()

static int ON_3dPoint::Compare ( const ON_3dPoint lhs,
const ON_3dPoint rhs 
)
static

Description: A well ordered dictionary compare function that is nan aware and can be used for robust sorting.

◆ DataCRC()

ON__UINT32 ON_3dPoint::DataCRC ( ON__UINT32  current_remainder) const

◆ DistanceTo()

double ON_3dPoint::DistanceTo ( const ON_3dPoint ) const

◆ DistanceToSquared()

double ON_3dPoint::DistanceToSquared ( const ON_3dPoint ) const

◆ Fuzz()

double ON_3dPoint::Fuzz ( double  tolerance = ON_ZERO_TOLERANCE) const

tolerance to use when comparing 3d points

◆ IsCoincident()

bool ON_3dPoint::IsCoincident ( const ON_3dPoint P) const

In opennurbs points within ON_ZERO_TOLERANCE are generally considered to be the same. Returns: True if for each coordinate pair, |a-b| <= ON_ZERO_TOLERANCE or |a-b| <= (fabs(a)+fabs(b))*ON_RELATIVE_TOLERANCE.

◆ IsNan()

bool ON_3dPoint::IsNan ( ) const

Returns: True if any coordinate is a nan.

◆ IsNotZero()

bool ON_3dPoint::IsNotZero ( ) const

Returns: true if at lease one coordinate is not zero and no coordinates are unset or nans.

◆ IsUnset()

bool ON_3dPoint::IsUnset ( ) const

Returns: True if any coordinate is ON_UNSET_VALUE or ON_UNSET_POSITIVE_VALUE

◆ IsUnsetOrNan()

bool ON_3dPoint::IsUnsetOrNan ( ) const

Returns: True if any coordinate is ON_UNSET_VALUE, ON_UNSET_POSITIVE_VALUE, or a nan

◆ IsValid()

bool ON_3dPoint::IsValid ( ) const

Returns: False if any coordinate is infinite, a nan, or ON_UNSET_VALUE.

◆ IsZero()

bool ON_3dPoint::IsZero ( ) const

Returns: true if all coordinates are not zero and no coordinates are nans. false otherwise.

◆ MaximumCoordinate()

double ON_3dPoint::MaximumCoordinate ( ) const

absolute value of maximum coordinate

◆ MaximumCoordinateIndex()

int ON_3dPoint::MaximumCoordinateIndex ( ) const

◆ Midpoint()

static const ON_3dPoint ON_3dPoint::Midpoint ( const ON_3dPoint A,
const ON_3dPoint B 
)
static

Returns: (A+B)/2 Remarks: Exact when coordinates are equal and prevents overflow.

◆ MinimumCoordinate()

double ON_3dPoint::MinimumCoordinate ( ) const

absolute value of minimum coordinate

◆ MinimumCoordinateIndex()

int ON_3dPoint::MinimumCoordinateIndex ( ) const

◆ operator const double *()

ON_3dPoint::operator const double * ( ) const

◆ operator double *()

ON_3dPoint::operator double * ( )

(double*) conversion operators

◆ operator!=()

bool ON_3dPoint::operator!= ( const ON_3dPoint ) const

◆ operator*() [1/6]

double ON_3dPoint::operator* ( const ON_3dPoint ) const

dot product for points acting as vectors

◆ operator*() [2/6]

double ON_3dPoint::operator* ( const ON_3dVector ) const

dot product for points acting as vectors

◆ operator*() [3/6]

ON_3dPoint ON_3dPoint::operator* ( const ON_Xform ) const

◆ operator*() [4/6]

ON_3dPoint ON_3dPoint::operator* ( double  ) const

◆ operator*() [5/6]

ON_3dPoint ON_3dPoint::operator* ( float  ) const

◆ operator*() [6/6]

ON_3dPoint ON_3dPoint::operator* ( int  ) const

◆ operator*=()

ON_3dPoint& ON_3dPoint::operator*= ( double  )

◆ operator+() [1/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_2dPoint ) const

◆ operator+() [2/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_2dVector ) const

◆ operator+() [3/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_2fPoint ) const

◆ operator+() [4/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_2fVector ) const

◆ operator+() [5/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_3dPoint ) const

◆ operator+() [6/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_3dVector ) const

◆ operator+() [7/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_3fPoint ) const

◆ operator+() [8/8]

ON_3dPoint ON_3dPoint::operator+ ( const ON_3fVector ) const

◆ operator+=()

ON_3dPoint& ON_3dPoint::operator+= ( const ON_3dVector )

◆ operator-() [1/8]

ON_3dVector ON_3dPoint::operator- ( const ON_2dPoint ) const

◆ operator-() [2/8]

ON_3dPoint ON_3dPoint::operator- ( const ON_2dVector ) const

◆ operator-() [3/8]

ON_3dVector ON_3dPoint::operator- ( const ON_2fPoint ) const

◆ operator-() [4/8]

ON_3dPoint ON_3dPoint::operator- ( const ON_2fVector ) const

◆ operator-() [5/8]

ON_3dVector ON_3dPoint::operator- ( const ON_3dPoint ) const

◆ operator-() [6/8]

ON_3dPoint ON_3dPoint::operator- ( const ON_3dVector ) const

◆ operator-() [7/8]

ON_3dVector ON_3dPoint::operator- ( const ON_3fPoint ) const

◆ operator-() [8/8]

ON_3dPoint ON_3dPoint::operator- ( const ON_3fVector ) const

◆ operator-=()

ON_3dPoint& ON_3dPoint::operator-= ( const ON_3dVector )

◆ operator/() [1/3]

ON_3dPoint ON_3dPoint::operator/ ( double  ) const

◆ operator/() [2/3]

ON_3dPoint ON_3dPoint::operator/ ( float  ) const

◆ operator/() [3/3]

ON_3dPoint ON_3dPoint::operator/ ( int  ) const

◆ operator/=()

ON_3dPoint& ON_3dPoint::operator/= ( double  )

◆ operator<()

bool ON_3dPoint::operator< ( const ON_3dPoint ) const

◆ operator<=()

bool ON_3dPoint::operator<= ( const ON_3dPoint ) const

dictionary order comparisons

◆ operator=() [1/12]

ON_3dPoint& ON_3dPoint::operator= ( const class ON_2fPoint )

◆ operator=() [2/12]

ON_3dPoint& ON_3dPoint::operator= ( const class ON_2fVector )

◆ operator=() [3/12]

ON_3dPoint& ON_3dPoint::operator= ( const class ON_3fPoint )

◆ operator=() [4/12]

ON_3dPoint& ON_3dPoint::operator= ( const class ON_3fVector )

◆ operator=() [5/12]

ON_3dPoint& ON_3dPoint::operator= ( const class ON_4fPoint )

◆ operator=() [6/12]

ON_3dPoint& ON_3dPoint::operator= ( const double *  )

point = double[3] support

◆ operator=() [7/12]

ON_3dPoint& ON_3dPoint::operator= ( const float *  )

point = float[3] support

◆ operator=() [8/12]

ON_3dPoint& ON_3dPoint::operator= ( const ON_2dPoint )

◆ operator=() [9/12]

ON_3dPoint& ON_3dPoint::operator= ( const ON_2dVector )

◆ operator=() [10/12]

ON_3dPoint& ON_3dPoint::operator= ( const ON_3dPoint )
default

◆ operator=() [11/12]

ON_3dPoint& ON_3dPoint::operator= ( const ON_3dVector )

◆ operator=() [12/12]

ON_3dPoint& ON_3dPoint::operator= ( const ON_4dPoint )

◆ operator==()

bool ON_3dPoint::operator== ( const ON_3dPoint ) const

◆ operator>()

bool ON_3dPoint::operator> ( const ON_3dPoint ) const

◆ operator>=()

bool ON_3dPoint::operator>= ( const ON_3dPoint ) const

◆ operator[]() [1/4]

double& ON_3dPoint::operator[] ( int  )

index operators mimic double[3] behavior

◆ operator[]() [2/4]

double ON_3dPoint::operator[] ( int  ) const

◆ operator[]() [3/4]

double& ON_3dPoint::operator[] ( unsigned int  )

◆ operator[]() [4/4]

double ON_3dPoint::operator[] ( unsigned int  ) const

◆ Rotate() [1/2]

void ON_3dPoint::Rotate ( double  angle,
const ON_3dVector axis,
const ON_3dPoint center 
)
Parameters
angleangle in radians
axisaxis of rotation
centercenter of rotation

◆ Rotate() [2/2]

void ON_3dPoint::Rotate ( double  sin_angle,
double  cos_angle,
const ON_3dVector axis,
const ON_3dPoint center 
)
Parameters
sin_anglesin(angle)
cos_anglecos(angle)
axisaxis of rotation
centercenter of rotation

◆ Set()

void ON_3dPoint::Set ( double  x,
double  y,
double  z 
)

set 3d point value

◆ Transform()

void ON_3dPoint::Transform ( const ON_Xform )

These transform the point in place. The transformation matrix acts on the left of the point; i.e., result = transformation*point

◆ Zero()

void ON_3dPoint::Zero ( )

set all coordinates to zero;

Member Data Documentation

◆ NanPoint

const ON_3dPoint ON_3dPoint::NanPoint
static

(ON_DBL_QNAN,ON_DBL_QNAN,ON_DBL_QNAN)

◆ Origin

const ON_3dPoint ON_3dPoint::Origin
static

(0.0,0.0,0.0)

◆ UnsetPoint

const ON_3dPoint ON_3dPoint::UnsetPoint
static

(ON_UNSET_VALUE,ON_UNSET_VALUE,ON_UNSET_VALUE)

◆ x

double ON_3dPoint::x

◆ y

double ON_3dPoint::y

◆ z

double ON_3dPoint::z