cisst-saw
|
#include <vctBarycentricVector.h>
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 |
![]() | |
VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) | |
vctFixedSizeVector () | |
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, 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) | |
ThisType & | operator= (const value_type &value) |
bool | FromStreamRaw (std::istream &inputStream, const char delimiter= ' ') |
void | DeSerializeRaw (std::istream &inputStream) |
template<stride_type __stride> | |
vctFixedSizeVector (const vctFixedSizeConstVectorRef< _elementType, _size, __stride > &vector) | |
template<stride_type __stride> | |
vctFixedSizeVector (const vctFixedSizeVectorRef< _elementType, _size, __stride > &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,...) | |
ThisType & | operator= (const ThisType &other) |
template<stride_type __stride, class __elementType , class __dataPtrType > | |
ThisType & | operator= (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other) |
template<stride_type __stride> | |
ThisType & | operator= (const vctFixedSizeConstVectorRef< value_type, _size, __stride > &other) |
template<stride_type __stride, class __elementType > | |
ThisType & | operator= (const vctFixedSizeConstVectorRef< __elementType, _size, __stride > &other) |
![]() | |
VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) | |
iterator | begin (void) |
const_iterator | begin (void) const |
iterator | end (void) |
const_iterator | end (void) const |
reverse_iterator | rbegin (void) |
const_reverse_iterator | rbegin (void) const |
reverse_iterator | rend (void) |
const_reverse_iterator | rend (void) const |
reference | operator[] (size_type index) |
const_reference | operator[] (size_type index) const |
reference | at (size_type index) throw (std::out_of_range) |
const_reference | at (size_type index) const throw (std::out_of_range) |
reference | operator() (size_type index) throw (std::out_of_range) |
const_reference | operator() (size_type index) const throw (std::out_of_range) |
reference | Element (size_type index) |
const_reference | Element (size_type index) const |
pointer | Pointer (size_type index=0) |
const_pointer | Pointer (size_type index=0) const |
value_type | SetAll (const value_type &value) |
bool | Zeros (void) |
ThisType & | Assign (const value_type element0, const value_type element1, const value_type element2, const value_type element3, const value_type element4,...) |
ThisType & | Assign (const value_type *elements) |
ThisType & | Assign (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other) |
ThisType & | ConcatenationOf (const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, __elementTypeVector, __dataPtrType > &other, __elementType last) |
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) |
ThisType & | AddProductOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | AddElementwiseProductOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | Assign (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other) |
ThisType & | operator= (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other) |
ThisType & | Assign (const value_type element0) throw (std::runtime_error) |
ThisType & | Assign (const value_type element0, const value_type element1) throw (std::runtime_error) |
ThisType & | Assign (const value_type element0, const value_type element1, const value_type element2) throw (std::runtime_error) |
ThisType & | Assign (const value_type element0, const value_type element1, const value_type element2, const value_type element3) throw (std::runtime_error) |
ThisType & | ForceAssign (const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other) |
ThisType & | ForceAssign (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &other) |
bool | FastCopyOf (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &source, bool performSafetyChecks=true) throw (std::runtime_error) |
bool | FastCopyOf (const vctFixedSizeConstVectorBase< SIZE, STRIDE, value_type, __dataPtrType > &source, bool performSafetyChecks=true) throw (std::runtime_error) |
value_type & | X (void) |
const value_type & | X (void) const |
value_type & | Y (void) |
const value_type & | Y (void) const |
value_type & | Z (void) |
const value_type & | Z (void) const |
value_type & | W (void) |
const value_type & | W (void) const |
vctFixedSizeVectorRef < _elementType, 2, _stride > | XY (void) |
vctFixedSizeConstVectorRef < _elementType, 2, _stride > | XY (void) const |
vctFixedSizeVectorRef < _elementType, 2, 2 *_stride > | XZ (void) |
vctFixedSizeConstVectorRef < _elementType, 2, 2 *_stride > | XZ (void) const |
vctFixedSizeVectorRef < _elementType, 2, 3 *_stride > | XW (void) |
vctFixedSizeConstVectorRef < _elementType, 2, 3 *_stride > | XW (void) const |
vctFixedSizeVectorRef < _elementType, 2, _stride > | YZ (void) |
vctFixedSizeConstVectorRef < _elementType, 2, _stride > | YZ (void) const |
vctFixedSizeVectorRef < _elementType, 2, 2 *_stride > | YW (void) |
vctFixedSizeConstVectorRef < _elementType, 2, 2 *_stride > | YW (void) const |
vctFixedSizeVectorRef < _elementType, 2, _stride > | ZW (void) |
vctFixedSizeConstVectorRef < _elementType, 2, _stride > | ZW (void) const |
vctFixedSizeVectorRef < _elementType, 3, _stride > | XYZ (void) |
vctFixedSizeConstVectorRef < _elementType, 3, _stride > | XYZ (void) const |
vctFixedSizeVectorRef < _elementType, 3, _stride > | YZW (void) |
vctFixedSizeConstVectorRef < _elementType, 3, _stride > | YZW (void) const |
vctFixedSizeVectorRef < _elementType, 4, _stride > | XYZW (void) |
vctFixedSizeConstVectorRef < _elementType, 4, _stride > | XYZW (void) const |
RowConstMatrixRefType | AsRowMatrix (void) const |
RowMatrixRefType | AsRowMatrix (void) |
ColConstMatrixRefType | AsColMatrix (void) const |
ColMatrixRefType | AsColMatrix (void) |
vctFixedSizeConstVectorRef < _elementType, __subSize, _stride > | Ref (const size_type startPosition=0) const throw (std::out_of_range) |
vctFixedSizeVectorRef < _elementType, __subSize, _stride > | Ref (const size_type startPosition=0) throw (std::out_of_range) |
ThisType & | SumOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | DifferenceOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | ElementwiseProductOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | ElementwiseRatioOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | ElementwiseMinOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | ElementwiseMaxOf (const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2) |
ThisType & | Add (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | Subtract (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | ElementwiseMultiply (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | ElementwiseDivide (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | ElementwiseMin (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | ElementwiseMax (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | operator+= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | operator-= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | SwapElementsWith (vctFixedSizeVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | SumOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar) |
ThisType & | DifferenceOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar) |
ThisType & | ProductOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar) |
ThisType & | RatioOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar) |
ThisType & | ClippedAboveOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type upperBound) |
ThisType & | ClippedBelowOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type lowerBound) |
ThisType & | SumOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | DifferenceOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | ProductOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | RatioOf (const value_type scalar, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | ClippedAboveOf (const value_type upperBound, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | ClippedBelowOf (const value_type lowerBound, const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector) |
ThisType & | Add (const value_type scalar) |
ThisType & | Subtract (const value_type scalar) |
ThisType & | operator+= (const value_type scalar) |
ThisType & | operator-= (const value_type scalar) |
ThisType & | Multiply (const value_type scalar) |
ThisType & | Divide (const value_type scalar) |
ThisType & | ClipAbove (const value_type upperBound) |
ThisType & | ClipBelow (const value_type lowerBound) |
ThisType & | operator*= (const value_type scalar) |
ThisType & | operator/= (const value_type scalar) |
ThisType & | ProductOf (const vctFixedSizeConstMatrixBase< _size, __matrixCols, __matrixRowStride, __matrixColStride, _elementType, __matrixDataPtrType > &inputMatrix, const vctFixedSizeConstVectorBase< __matrixCols, __vectorStride, _elementType, __vectorDataPtrType > &inputVector) |
ThisType & | ProductOf (const vctFixedSizeConstVectorBase< __vectorSize, __vectorStride, _elementType, __vectorDataPtrType > &inputVector, const vctFixedSizeConstMatrixBase< __vectorSize, _size, __matrixRowStride, __matrixColStride, _elementType, __matrixDataPtrType > &inputMatrix) |
ThisType & | AbsOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | NegationOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | FloorOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | CeilOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) |
ThisType & | NormalizedOf (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) throw (std::runtime_error) |
ThisType & | AbsSelf (void) |
ThisType & | NegationSelf (void) |
ThisType & | FloorSelf (void) |
ThisType & | CeilSelf (void) |
ThisType & | NormalizedSelf (void) throw (std::runtime_error) |
![]() | |
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 throw (std::out_of_range) |
const_reference | operator() (size_type index) const throw (std::out_of_range) |
const_reference | Element (size_type index) const |
const_pointer | Pointer (size_type index=0) const |
bool | ValidIndex (size_type index) const |
template<vct::size_type __subSize> | |
vctFixedSizeConstVectorRef < _elementType, __subSize, _stride > | Ref (const size_type startPosition=0) const throw (std::out_of_range) |
template<stride_type __stride, class __dataPtrType > | |
value_type | DotProduct (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
std::string | ToString (void) const |
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 |
const value_type & | X (void) const |
const value_type & | Y (void) const |
const value_type & | Z (void) const |
const value_type & | W (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 |
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 |
template<size_type __size, stride_type __stride, class __dataPtrType > | |
bool | FastCopyCompatible (const vctFixedSizeConstVectorBase< __size, __stride, value_type, __dataPtrType > &source) const |
template<class __vectorOwnerType > | |
bool | FastCopyCompatible (const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &source) const |
template<stride_type __stride, class __dataPtrType > | |
bool | Equal (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | operator== (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | AlmostEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector, value_type tolerance) const |
template<stride_type __stride, class __dataPtrType > | |
bool | AlmostEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | NotEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | operator!= (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | Lesser (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | LesserOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | Greater (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
bool | GreaterOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseNotEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseLesser (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseLesserOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseGreater (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
template<stride_type __stride, class __dataPtrType > | |
BoolVectorValueType | ElementwiseGreaterOrEqual (const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector) const |
bool | Equal (const value_type &scalar) const |
bool | operator== (const value_type &scalar) const |
bool | NotEqual (const value_type &scalar) const |
bool | operator!= (const value_type &scalar) const |
bool | Lesser (const value_type &scalar) const |
bool | LesserOrEqual (const value_type &scalar) const |
bool | Greater (const value_type &scalar) const |
bool | GreaterOrEqual (const value_type &scalar) const |
BoolVectorValueType | ElementwiseEqual (const value_type &scalar) const |
BoolVectorValueType | ElementwiseNotEqual (const value_type &scalar) const |
BoolVectorValueType | ElementwiseLesser (const value_type &scalar) const |
BoolVectorValueType | ElementwiseLesserOrEqual (const value_type &scalar) const |
BoolVectorValueType | ElementwiseGreater (const value_type &scalar) const |
BoolVectorValueType | ElementwiseGreaterOrEqual (const value_type &scalar) const |
VectorValueType | Abs (void) const |
VectorValueType | Negation (void) const |
VectorValueType | Floor (void) const |
VectorValueType | Ceil (void) const |
VectorValueType | Normalized (void) const throw (std::runtime_error) |
Additional Inherited Members | |
![]() | |
void | ThrowUnlessValidIndex (size_type index) const throw (std::out_of_range) |
![]() | |
_dataPtrType | Data |
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.
typedef vctFixedSizeVector<_elementType, _size> vctBarycentricVector< _elementType, _size >::BaseType |
typedef vctBarycentricVector<_elementType, _size> vctBarycentricVector< _elementType, _size >::ThisType |
typedef class cmnTypeTraits< value_type > vctBarycentricVector< _elementType, _size >::TypeTraits |
|
inline |
Default constructor – call base class def. ctor
|
inline |
copy constructor for vctBarycentricVector object
|
inline |
copy constructor for vctFixedSizeVector object
|
inline |
copy constructor from a general vector
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
return true iff one of the coodinates is zero, up to the given tolerance. This is not a membership test.
|
inline |
return true iff the sum of elements of this vector is equal to 1 up to the given tolerance. See class documentation.
|
inline |
return (IsMember(tolerance) && HasZero(tolerance));
|
inline |
return true iff all the coordinates are greater than or equal to the given tolerance. See class documentation.
|
inline |
return true iff all the coodinates are greater than -tolerance. See class documentation.
|
inline |
return true iff a the vector is a member and a coordinate is equal to 1 up to a given tolerance
|
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).
vctBarycentricVector< _elementType, _size >::VCT_CONTAINER_TRAITS_TYPEDEFS | ( | _elementType | ) |