cisst-saw
Loading...
Searching...
No Matches
vctBarycentricVector< _elementType, _size > Class Template Reference

#include <vctBarycentricVector.h>

Inheritance diagram for vctBarycentricVector< _elementType, _size >:
vctFixedSizeVector< _elementType, _size > vctFixedSizeVectorBase< _size, 1, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array > vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >

Public Types

typedef vctFixedSizeVector< _elementType, _size > BaseType
typedef vctBarycentricVector< _elementType, _size > ThisType
typedef class cmnTypeTraits< value_typeTypeTraits
Public Types inherited from vctFixedSizeVector< _elementType, _size >
enum  { SIZEMINUSONE = _size - 1 }
typedef vctFixedSizeVectorTraits< _elementType, _size, 1 > VectorTraits
typedef vctFixedSizeVector< value_type, _size > ThisType
typedef vctFixedSizeVectorBase< _size, 1, _elementType, typename VectorTraits::arrayBaseType
typedef BaseType::CopyType CopyType
typedef class cmnTypeTraits< value_typeTypeTraits
typedef TypeTraits::VaArgPromotion ElementVaArgPromotion
Public Types inherited from vctFixedSizeVectorBase< _size, 1, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
enum  
enum  
enum  
typedef vctFixedSizeVectorTraits< _elementType, _size, _stride > VectorTraits
typedef vctFixedSizeVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array > ThisType
typedef vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array > BaseType
typedef BaseType::CopyType CopyType
typedef cmnTypeTraits< value_typeTypeTraits
typedef VectorTraits::iterator iterator
typedef VectorTraits::const_iterator const_iterator
typedef VectorTraits::reverse_iterator reverse_iterator
typedef VectorTraits::const_reverse_iterator const_reverse_iterator
typedef BaseType::RowConstMatrixRefType RowConstMatrixRefType
typedef BaseType::RowMatrixRefType RowMatrixRefType
typedef BaseType::ColConstMatrixRefType ColConstMatrixRefType
typedef BaseType::ColMatrixRefType ColMatrixRefType
Public Types inherited from vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
enum  
enum  
typedef vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array > ThisType
typedef vctFixedSizeVectorTraits< _elementType, _size, _stride > VectorTraits
typedef VectorTraits::iterator iterator
typedef VectorTraits::const_iterator const_iterator
typedef VectorTraits::reverse_iterator reverse_iterator
typedef VectorTraits::const_reverse_iterator const_reverse_iterator
typedef vctFixedSizeConstMatrixRef< _elementType, 1, _size, _stride *_size, _stride > RowConstMatrixRefType
typedef vctFixedSizeMatrixRef< _elementType, 1, _size, _stride *_size, _stride > RowMatrixRefType
typedef vctFixedSizeConstMatrixRef< _elementType, _size, 1, _stride, _stride *_size > ColConstMatrixRefType
typedef vctFixedSizeMatrixRef< _elementType, _size, 1, _stride, _stride *_size > ColMatrixRefType
typedef vctFixedSizeVector< _elementType, _size > VectorValueType
typedef vctFixedSizeVector< _elementType, _size > CopyType
typedef vctFixedSizeVector< bool, _size > BoolVectorValueType

Public Member Functions

 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 vctBarycentricVector ()
 vctBarycentricVector (const ThisType &other)
 vctBarycentricVector (const BaseType &other)
template<stride_type __stride, class __dataPtrType>
 vctBarycentricVector (const vctFixedSizeVectorBase< _size, __stride, _elementType, __dataPtrType > &other)
 vctBarycentricVector (_elementType value)
 vctBarycentricVector (_elementType element0, _elementType element1)
 vctBarycentricVector (_elementType element0, _elementType element1, _elementType element2)
 vctBarycentricVector (_elementType element0, _elementType element1, _elementType element2, _elementType element3)
 vctBarycentricVector (_elementType element0, _elementType element1, _elementType element2, _elementType element3, _elementType element4,...)
bool IsBarycentric (const _elementType tolerance=TypeTraits::Tolerance()) const
bool IsInterior (const _elementType tolerance=TypeTraits::Tolerance()) const
bool IsMember (const _elementType tolerance=TypeTraits::Tolerance()) const
bool HasZero (const _elementType tolerance=TypeTraits::Tolerance()) const
bool IsBoundary (const _elementType tolerance=TypeTraits::Tolerance()) const
bool IsVertex (const _elementType tolerance=TypeTraits::Tolerance()) const
ThisType ScaleToBarycentric (const _elementType tolerance=TypeTraits::Tolerance()) const
Public Member Functions inherited from vctFixedSizeVector< _elementType, _size >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
 vctFixedSizeVector ()
 vctFixedSizeVector (const ThisType &other)
 vctFixedSizeVector (const value_type &value)
template<class __elementType, stride_type __stride, class __dataPtrType>
 vctFixedSizeVector (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &vector)
template<stride_type __stride>
 vctFixedSizeVector (const vctFixedSizeConstVectorRef< _elementType, _size, __stride > &vector)
template<stride_type __stride>
 vctFixedSizeVector (const vctFixedSizeVectorRef< _elementType, _size, __stride > &vector)
template<stride_type __stride, class __dataPtrType>
 vctFixedSizeVector (const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, _elementType, __dataPtrType > &vector, value_type lastElement)
template<class __elementType>
 vctFixedSizeVector (const __elementType *elements)
template<class __vectorOwnerType>
 vctFixedSizeVector (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector)
 vctFixedSizeVector (const value_type &element0, const value_type &element1)
 vctFixedSizeVector (const value_type &element0, const value_type &element1, const value_type &element2)
 vctFixedSizeVector (const value_type &element0, const value_type &element1, const value_type &element2, const value_type &element3)
 vctFixedSizeVector (const value_type element0, const value_type element1, const value_type element2, const value_type element3, const value_type element4,...)
ThisTypeoperator= (const ThisType &other)
template<stride_type __stride, class __elementType, class __dataPtrType>
ThisTypeoperator= (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
template<stride_type __stride>
ThisTypeoperator= (const vctFixedSizeConstVectorRef< value_type, _size, __stride > &other)
template<stride_type __stride, class __elementType>
ThisTypeoperator= (const vctFixedSizeConstVectorRef< __elementType, _size, __stride > &other)
ThisTypeoperator= (const value_type &value)
bool FromStreamRaw (std::istream &inputStream, const char delimiter=' ')
void DeSerializeRaw (std::istream &inputStream)
Public Member Functions inherited from vctFixedSizeVectorBase< _size, 1, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
iterator begin (void)
iterator end (void)
reverse_iterator rbegin (void)
reverse_iterator rend (void)
reference operator[] (size_type index)
reference at (size_type index) CISST_THROW(std
reference operator() (size_type index) CISST_THROW(std
reference Element (size_type index)
pointer Pointer (size_type index=0)
value_type SetAll (const value_type &value)
bool Zeros (void)
ThisTypeAssign (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
ThisTypeoperator= (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
ThisTypeForceAssign (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
bool FastCopyOf (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &source, bool performSafetyChecks=true) CISST_THROW(std
ThisTypeConcatenationOf (const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, __elementTypeVector, __dataPtrType > &other, __elementType last)
value_typeX (void)
value_typeY (void)
value_typeZ (void)
value_typeW (void)
vctFixedSizeVectorRef< _elementType, 2, _stride > XY (void)
vctFixedSizeVectorRef< _elementType, 2, 2 *_stride > XZ (void)
vctFixedSizeVectorRef< _elementType, 2, 3 *_stride > XW (void)
vctFixedSizeVectorRef< _elementType, 2, _stride > YZ (void)
vctFixedSizeVectorRef< _elementType, 2, 2 *_stride > YW (void)
vctFixedSizeVectorRef< _elementType, 2, _stride > ZW (void)
vctFixedSizeVectorRef< _elementType, 3, _stride > XYZ (void)
vctFixedSizeVectorRef< _elementType, 3, _stride > YZW (void)
vctFixedSizeVectorRef< _elementType, 4, _stride > XYZW (void)
RowConstMatrixRefType AsRowMatrix (void) const
ColConstMatrixRefType AsColMatrix (void) const
vctFixedSizeConstVectorRef< _elementType, __subSize, _stride > Ref (const size_type startPosition=0) const CISST_THROW(std
void SelectFrom (const vctFixedSizeConstVectorBase< __inputSize, __inputStride, _elementType, __inputDataPtrType > &input, const vctFixedSizeConstVectorBase< _size, __indexStride, index_type, __indexDataPtrType > &index)
void CrossProductOf (const vctFixedSizeConstVectorBase< 3, __stride1, _elementType, __dataPtr1Type > &inputVector1, const vctFixedSizeConstVectorBase< 3, __stride2, _elementType, __dataPtr2Type > &inputVector2)
ThisTypeSumOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeDifferenceOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeElementwiseProductOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeElementwiseRatioOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeElementwiseMinOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeElementwiseMaxOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeAdd (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeSubtract (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeElementwiseMultiply (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeElementwiseDivide (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeElementwiseMin (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeElementwiseMax (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeoperator+= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeoperator-= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeSwapElementsWith (vctFixedSizeVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeProductOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
ThisTypeRatioOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
ThisTypeClippedAboveOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type upperBound)
ThisTypeClippedBelowOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type lowerBound)
ThisTypeMultiply (const value_type scalar)
ThisTypeDivide (const value_type scalar)
ThisTypeClipAbove (const value_type upperBound)
ThisTypeClipBelow (const value_type lowerBound)
ThisTypeoperator*= (const value_type scalar)
ThisTypeoperator/= (const value_type scalar)
ThisTypeAddProductOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeAddElementwiseProductOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
ThisTypeAbsOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeNegationOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeFloorOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeCeilOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
ThisTypeNormalizedOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) CISST_THROW(std
ThisTypeAbsSelf (void)
ThisTypeNegationSelf (void)
ThisTypeFloorSelf (void)
ThisTypeCeilSelf (void)
ThisTypeNormalizedSelf (void) CISST_THROW(std
Public Member Functions inherited from vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
 VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType)
const_iterator begin (void) const
const_iterator end (void) const
const_reverse_iterator rbegin (void) const
const_reverse_iterator rend (void) const
size_type size (void) const
size_type max_size (void) const
difference_type stride (void) const
bool empty (void) const
const_reference operator[] (size_type index) const
const_reference at (size_type index) const CISST_THROW(std
const_reference operator() (size_type index) const CISST_THROW(std
const_reference Element (size_type index) const
const_pointer Pointer (size_type index=0) const
bool ValidIndex (size_type index) const
const value_typeX (void) const
const value_typeY (void) const
const value_typeZ (void) const
const value_typeW (void) const
vctFixedSizeConstVectorRef< _elementType, 2, _stride > XY (void) const
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > XZ (void) const
vctFixedSizeConstVectorRef< _elementType, 2, 3 *_stride > XW (void) const
vctFixedSizeConstVectorRef< _elementType, 2, _stride > YZ (void) const
vctFixedSizeConstVectorRef< _elementType, 2, 2 *_stride > YW (void) const
vctFixedSizeConstVectorRef< _elementType, 2, _stride > ZW (void) const
vctFixedSizeConstVectorRef< _elementType, 3, _stride > XYZ (void) const
vctFixedSizeConstVectorRef< _elementType, 3, _stride > YZW (void) const
vctFixedSizeConstVectorRef< _elementType, 4, _stride > XYZW (void) const
RowConstMatrixRefType AsRowMatrix (void) const
ColConstMatrixRefType AsColMatrix (void) const
vctFixedSizeConstVectorRef< _elementType, __subSize, _stride > Ref (const size_type startPosition=0) const CISST_THROW(std
value_type SumOfElements (void) const
value_type ProductOfElements (void) const
value_type NormSquare (void) const
NormType Norm (void) const
bool IsNormalized (_elementType tolerance=cmnTypeTraits< _elementType >::Tolerance()) const
value_type L1Norm (void) const
value_type LinfNorm (void) const
value_type MaxElement (void) const
value_type MinElement (void) const
value_type MaxAbsElement (void) const
value_type MinAbsElement (void) const
void MinAndMaxElement (value_type &minElement, value_type &maxElement) const
bool IsPositive (void) const
bool IsNonNegative (void) const
bool IsNonPositive (void) const
bool IsNegative (void) const
bool All (void) const
bool Any (void) const
bool IsFinite (void) const
bool HasNaN (void) const
bool IsCompact (void) const
bool IsFortran (void) const
bool FastCopyCompatible (const vctFixedSizeConstVectorBase< __size, __stride, value_type, __dataPtrType > &source) const
value_type DotProduct (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool Equal (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool operator== (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool AlmostEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector, value_type tolerance) const
bool NotEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool operator!= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool Lesser (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool LesserOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool Greater (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
bool GreaterOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseNotEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseLesser (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseLesserOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseGreater (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
BoolVectorValueType ElementwiseGreaterOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const
VectorValueType Abs (void) const
VectorValueType Negation (void) const
VectorValueType Floor (void) const
VectorValueType Ceil (void) const
VectorValueType Normalized(void) const CISST_THROW(std void ToStream (std::ostream &outputStream) const
void ToStreamRaw (std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const
void SerializeRaw (std::ostream &outputStream) const

Additional Inherited Members

Protected Member Functions inherited from vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
void ThrowUnlessValidIndex (size_type index) const CISST_THROW(std
Protected Attributes inherited from vctFixedSizeConstVectorBase< _size, _stride, _elementType, vctFixedSizeVectorTraits< _elementType, _size, 1 >::array >
vctFixedSizeVectorTraits< _elementType, _size, 1 >::array Data

Detailed Description

template<class _elementType, vct::size_type _size>
class vctBarycentricVector< _elementType, _size >

class vctBarycentricVector is derived from vctFixedSizeVector and has the same basic functionality. It contains a few additional functions meant to simplify dealing with vectors of barycentric coordinates. For our general definition, a set of coordinates is barycentric if it sums to 1. When a barycentric vector is used to parametrize a simplex geometrical object, all interior points have all-positive coordinates. All member points (including the boundary) have non-negative coordinates. A boundary point has one or more of its coordinates zero. A vertex has one coordinate equal to 1, and the others zero.

I have decided to derive this class from vctFixedSizeVector, which means that the operations can only be performed on locally owned memory (as opposed to a referenced vector). The reason was that it would be too hard to regenerate this set of operations as a subclass for each vector type. In addition, most of the operations here are const methods, and in the case of computing a new set of coordinates, they return it by value. Therefore, vctBarycentricVector is safer to use than other library objects, but on the other hand the operations may be somewhat slower.

I did not provide the full set of constructors as I have with vctFixedSizeVector, and therefore the use of a vctBarycentricVector should be more explicit in terms of type conversions than vctFixedSizeVector.

Many operations on vctBarycentricVector require a tolerance argument, which is given with a default value. The tolerance argument must be non-negative, or else the result is undefined. The current implementation does not test for it, but assumes it. In most cases, we compare absolute values of numbers to the tolerance.

Member Typedef Documentation

◆ BaseType

template<class _elementType, vct::size_type _size>
typedef vctFixedSizeVector<_elementType, _size> vctBarycentricVector< _elementType, _size >::BaseType

◆ ThisType

template<class _elementType, vct::size_type _size>
typedef vctBarycentricVector<_elementType, _size> vctBarycentricVector< _elementType, _size >::ThisType

◆ TypeTraits

template<class _elementType, vct::size_type _size>
typedef class cmnTypeTraits< value_type > vctBarycentricVector< _elementType, _size >::TypeTraits

Constructor & Destructor Documentation

◆ vctBarycentricVector() [1/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( )
inline

Default constructor – call base class def. ctor

◆ vctBarycentricVector() [2/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( const ThisType & other)
inline

copy constructor for vctBarycentricVector object

◆ vctBarycentricVector() [3/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( const BaseType & other)
inline

copy constructor for vctFixedSizeVector object

◆ vctBarycentricVector() [4/9]

template<class _elementType, vct::size_type _size>
template<stride_type __stride, class __dataPtrType>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( const vctFixedSizeVectorBase< _size, __stride, _elementType, __dataPtrType > & other)
inline

copy constructor from a general vector

◆ vctBarycentricVector() [5/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( _elementType value)
inline

◆ vctBarycentricVector() [6/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( _elementType element0,
_elementType element1 )
inline

◆ vctBarycentricVector() [7/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( _elementType element0,
_elementType element1,
_elementType element2 )
inline

◆ vctBarycentricVector() [8/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( _elementType element0,
_elementType element1,
_elementType element2,
_elementType element3 )
inline

◆ vctBarycentricVector() [9/9]

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::vctBarycentricVector ( _elementType element0,
_elementType element1,
_elementType element2,
_elementType element3,
_elementType element4,
... )
inline

Member Function Documentation

◆ HasZero()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::HasZero ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return true iff one of the coodinates is zero, up to the given tolerance. This is not a membership test.

◆ IsBarycentric()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::IsBarycentric ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return true iff the sum of elements of this vector is equal to 1 up to the given tolerance. See class documentation.

◆ IsBoundary()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::IsBoundary ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return (IsMember(tolerance) && HasZero(tolerance));

◆ IsInterior()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::IsInterior ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return true iff all the coordinates are greater than or equal to the given tolerance. See class documentation.

◆ IsMember()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::IsMember ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return true iff all the coodinates are greater than -tolerance. See class documentation.

◆ IsVertex()

template<class _elementType, vct::size_type _size>
bool vctBarycentricVector< _elementType, _size >::IsVertex ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return true iff a the vector is a member and a coordinate is equal to 1 up to a given tolerance

◆ ScaleToBarycentric()

template<class _elementType, vct::size_type _size>
ThisType vctBarycentricVector< _elementType, _size >::ScaleToBarycentric ( const _elementType tolerance = TypeTraits::Tolerance()) const
inline

return a barycentric scaled version of this vector, that is, a vector whose sum of elements is 1. If the sum of this vector is zero up to the given tolerance, return a zero vector (which is not barycentric).

◆ VCT_CONTAINER_TRAITS_TYPEDEFS()

template<class _elementType, vct::size_type _size>
vctBarycentricVector< _elementType, _size >::VCT_CONTAINER_TRAITS_TYPEDEFS ( _elementType )

The documentation for this class was generated from the following file: