CVB++ 15.0
Point3DC< T, ENABLE > Class Template Referencefinal

Multi-purpose 3D vector class with confidence. More...

#include <cvb/point_3d_c.hpp>

Public Member Functions

 Point3DC () noexcept=default
 Creates a default point at (0, 0). More...
 
 Point3DC (T x, T y, T z) noexcept
 Create a point from the x-, y- and z-component. More...
 
 Point3DC (T x, T y, T z, T c) noexcept
 Create a point from the x-, y-, z- component and confidence. More...
 
 Point3DC (Point3D< T > point3d) noexcept
 Create a 3D point with confidence from a point. More...
 
template<std::size_t N>
 Point3DC (const T(&list)[N]) noexcept
 Construct a point with an initializer list. More...
 
X () const noexcept
 Gets the x-component of the point. More...
 
void SetX (T x) noexcept
 Sets the x-component of the point. More...
 
Y () const noexcept
 Gets the y-component of the point. More...
 
void SetY (T y)
 Sets the y-component of the point. More...
 
Z () const noexcept
 Gets the z-component of the point. More...
 
void SetZ (T z)
 Sets the z-component of the point. More...
 
Confidence () const noexcept
 Gets confidence of the point. More...
 
void SetConfidence (T c)
 Sets confidence of the point. More...
 
Length () const noexcept
 Gets the length of this point. More...
 
bool operator== (const Point3DC< T > &other) const noexcept
 Compares to an other point. More...
 
bool operator!= (const Point3DC< T > &other) const noexcept
 Compares to an other point. More...
 
template<class C >
 operator Point3DC< C > () const noexcept
 Enable casting.
 
Point3DC< T > & operator+= (const Point3DC< T > &point) noexcept
 Adds and assigns to this point. More...
 
Point3DC< T > & operator-= (const Point3DC< T > &point) noexcept
 Subtracts and assigns to this point. More...
 
Point3DC< T > & operator*= (const T &value) noexcept
 Multiplies by a scalar and assigns to this point. More...
 
Point3DC< T > & operator/= (const T &value) noexcept
 Divide by a scalar and assigns to this point. More...
 
const T & operator[] (int index) const noexcept
 Index based element access. More...
 
T & operator[] (int index) noexcept
 Index based element access. More...
 

Related Functions

(Note that these are not member functions.)

template<size_t I, class T , std::enable_if_t< less< I, 4 >::value, int > = 0>
auto get (const Point3DC< T > &point) noexcept -> decltype(point[I])
 Get's the I-th element of the Point3DC<T>. More...
 
template<size_t I, class T , std::enable_if_t< less< I, 4 >::value, int > = 0>
void set (Point3DC< T > &point, const T &val) noexcept
 Set's the value of the I-th element in the Point3DC<T> point. More...
 
template<class T >
Point3DC< T > operator+ (const Point3DC< T > &lhs, const Point3DC< T > &rhs)
 Add two points. More...
 
template<class T >
Point3DC< T > operator- (const Point3DC< T > &lhs, const Point3DC< T > &rhs)
 Subtracts two points. More...
 
template<class T >
operator* (const Point3DC< T > &lhs, const Point3DC< T > &rhs)
 Inner product of two point vectors. More...
 
template<class T >
Point3DC< T > operator* (const Point3DC< T > &lhs, const T &rhs)
 Multiply point with scalar. More...
 
template<class T >
Point3DC< T > operator/ (const Point3DC< T > &lhs, const T &rhs)
 Divide point by scalar. More...
 

Detailed Description

template<class T, class ENABLE = void>
class Cvb::Point3DC< T, ENABLE >

Multi-purpose 3D vector class with confidence.

Constructor & Destructor Documentation

◆ Point3DC() [1/5]

Point3DC ( )
defaultnoexcept

Creates a default point at (0, 0).

Exceptions
Doesnot throw any exception.

◆ Point3DC() [2/5]

Point3DC ( x,
y,
z 
)
inlinenoexcept

Create a point from the x-, y- and z-component.

Parameters
[in]xData to initialize with.
[in]yData to initialize with.
[in]zData to initialize with.
Exceptions
Doesnot throw any exception.

◆ Point3DC() [3/5]

Point3DC ( x,
y,
z,
c 
)
inlinenoexcept

Create a point from the x-, y-, z- component and confidence.

Parameters
[in]xData to initialize with.
[in]yData to initialize with.
[in]zData to initialize with.
[in]cData to initialize with.
Exceptions
Doesnot throw any exception.

◆ Point3DC() [4/5]

Point3DC ( Point3D< T >  point3d)
inlineexplicitnoexcept

Create a 3D point with confidence from a point.

Parameters
[in]point3d3D Point with x-, y- and z-component.
Exceptions
Doesnot throw any exception.

◆ Point3DC() [5/5]

Point3DC ( const T(&)  list[N])
inlinenoexcept

Construct a point with an initializer list.

Parameters
[in]listContaining exactly 4 elements.
Exceptions
Doesnot throw any exception.

Member Function Documentation

◆ Confidence()

T Confidence ( ) const
inlinenoexcept

Gets confidence of the point.

Returns
confidence.
Exceptions
Doesnot throw any exception.

◆ Length()

T Length ( ) const
inlinenoexcept

Gets the length of this point.

Returns
length of this point.
Exceptions
Doesnot throw any exception.

◆ operator!=()

bool operator!= ( const Point3DC< T > &  other) const
inlinenoexcept

Compares to an other point.

Parameters
[in]otherOther point.
Returns
True if not equal, otherwise false.
Exceptions
Doesnot throw any exception.

◆ operator*=()

Point3DC< T > & operator*= ( const T &  value)
inlinenoexcept

Multiplies by a scalar and assigns to this point.

Parameters
[in]valueThe scalar.
Returns
This point.
Exceptions
Doesnot throw any exception.

◆ operator+=()

Point3DC< T > & operator+= ( const Point3DC< T > &  point)
inlinenoexcept

Adds and assigns to this point.

Parameters
[in]pointOther point.
Returns
This point.
Exceptions
Doesnot throw any exception.

◆ operator-=()

Point3DC< T > & operator-= ( const Point3DC< T > &  point)
inlinenoexcept

Subtracts and assigns to this point.

Parameters
[in]pointOther point.
Returns
This point.
Exceptions
Doesnot throw any exception.

◆ operator/=()

Point3DC< T > & operator/= ( const T &  value)
inlinenoexcept

Divide by a scalar and assigns to this point.

Parameters
[in]valueThe scalar.
Returns
This point.
Exceptions
Doesnot throw any exception.

◆ operator==()

bool operator== ( const Point3DC< T > &  other) const
inlinenoexcept

Compares to an other point.

Parameters
[in]otherOther point.
Returns
True if equal, otherwise false.
Exceptions
Doesnot throw any exception.

◆ operator[]() [1/2]

const T & operator[] ( int  index) const
inlinenoexcept

Index based element access.

Parameters
[in]indexIndex of the element.
Returns
A const reference to the element.
Exceptions
Doesnot throw any exception.

◆ operator[]() [2/2]

T & operator[] ( int  index)
inlinenoexcept

Index based element access.

Parameters
[in]indexIndex of the element.
Returns
A reference to the element.
Exceptions
Doesnot throw any exception.

◆ SetConfidence()

void SetConfidence ( c)
inline

Sets confidence of the point.

Parameters
[in]cConfidence.
Exceptions
Doesnot throw any exception.

◆ SetX()

void SetX ( x)
inlinenoexcept

Sets the x-component of the point.

Parameters
[in]xX-component.
Exceptions
Doesnot throw any exception.

◆ SetY()

void SetY ( y)
inline

Sets the y-component of the point.

Parameters
[in]yY-component.
Exceptions
Doesnot throw any exception.

◆ SetZ()

void SetZ ( z)
inline

Sets the z-component of the point.

Parameters
[in]zZ-component.
Exceptions
Doesnot throw any exception.

◆ X()

T X ( ) const
inlinenoexcept

Gets the x-component of the point.

Returns
X-component.
Exceptions
Doesnot throw any exception.

◆ Y()

T Y ( ) const
inlinenoexcept

Gets the y-component of the point.

Returns
Y-component.
Exceptions
Doesnot throw any exception.

◆ Z()

T Z ( ) const
inlinenoexcept

Gets the z-component of the point.

Returns
Z-component.
Exceptions
Doesnot throw any exception.

Friends And Related Function Documentation

◆ get()

auto get ( const Point3DC< T > &  point) -> decltype(point[I])
related

Get's the I-th element of the Point3DC<T>.

See also
Block, Visit
Precondition
I < 4
Template Parameters
IThe index of the element.
Parameters
pointThe Point3DC<T> to retrieve the I-th element from.
Returns
The I-th element of point.

◆ operator*() [1/2]

T operator* ( const Point3DC< T > &  lhs,
const Point3DC< T > &  rhs 
)
related

Inner product of two point vectors.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [2/2]

Point3DC< T > operator* ( const Point3DC< T > &  lhs,
const T &  rhs 
)
related

Multiply point with scalar.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+()

Point3DC< T > operator+ ( const Point3DC< T > &  lhs,
const Point3DC< T > &  rhs 
)
related

Add two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-()

Point3DC< T > operator- ( const Point3DC< T > &  lhs,
const Point3DC< T > &  rhs 
)
related

Subtracts two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/()

Point3DC< T > operator/ ( const Point3DC< T > &  lhs,
const T &  rhs 
)
related

Divide point by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ set()

void set ( Point3DC< T > &  point,
const T &  val 
)
related

Set's the value of the I-th element in the Point3DC<T> point.

See also
Block, Visit
Precondition
I < 4
Template Parameters
IThe index of the element.
Parameters
pointThe Point3DC<T,K> to set the I-th value in.
valThe value to be written to the I-th element of point.