22 #ifndef _vctFixedSizeVector_h
23 #define _vctFixedSizeVector_h
51 template <
class _elementType, vct::
size_type _size>
53 _size, 1, _elementType,
54 typename vctFixedSizeVectorTraits<_elementType, _size, 1>::array
93 template <
class __elementType, str
ide_type __str
ide,
class __dataPtrType>
103 template <str
ide_type __str
ide>
109 template <str
ide_type __str
ide>
120 template <str
ide_type __str
ide,
class __dataPtrType>
130 template<
class __elementType>
146 template <
class __vectorOwnerType>
176 (*this)[0] = element0;
177 (*this)[1] = element1;
182 const value_type & element2) {
184 (*this)[0] = element0;
185 (*this)[1] = element1;
186 (*this)[2] = element2;
191 const value_type & element2,
const value_type & element3) {
193 (*this)[0] = element0;
194 (*this)[1] = element1;
195 (*this)[2] = element2;
196 (*this)[3] = element3;
212 const value_type element2,
const value_type element3,
const value_type element4, ...)
215 (*this)[0] = element0;
216 (*this)[1] = element1;
217 (*this)[2] = element2;
218 (*this)[3] = element3;
219 (*this)[4] = element4;
221 va_start(nextArg, element4);
241 template <str
ide_type __str
ide,
class __elementType,
class __dataPtrType>
246 template <str
ide_type __str
ide>
251 template <str
ide_type __str
ide,
class __elementType>
268 _elementType temp[_size];
271 for (index = 0; index < _size; index++) {
272 inputStream >> temp[index];
273 if (inputStream.fail()) {
279 if (!isspace(delimiter)) {
280 if (index < _size-1) {
283 if (c != delimiter) {
292 for (index = 0; index < _size; index++)
293 (*
this)[index] = temp[index];
303 for (index = 0; index < mySize; ++index) {
324 result.
SumOf(vector1, vector2);
381 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
384 const _elementType & scalar)
387 result.
SumOf(vector, scalar);
392 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
395 const _elementType & scalar)
403 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
406 const _elementType & scalar)
414 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
417 const _elementType & scalar)
420 result.
RatioOf(vector, scalar);
432 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
439 result.
SumOf(scalar, vector);
444 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
455 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
466 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
472 result.
RatioOf(scalar, vector);
484 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
498 #ifndef SWIG // SWIG 1.3.22 doesn't like _size1 + _size2 for the template "instantiation" of vector
508 subvector1.
Assign(vector1);
509 subvector2.Assign(vector2);
523 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
528 VoVi<typename vctUnaryOperations<_elementType>::AbsValue>::
529 Unfold(result, *
this);
534 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
539 VoVi<typename vctUnaryOperations<_elementType>::Negation>::
540 Unfold(result, *
this);
545 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
550 VoVi<typename vctUnaryOperations<_elementType>::Floor>::
551 Unfold(result, *
this);
556 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
561 VoVi<typename vctUnaryOperations<_elementType>::Ceil>::
562 Unfold(result, *
this);
567 template <vct::
size_type _size, vct::str
ide_type _str
ide,
class _elementType,
class _dataPtrType>
580 class _elementOperationType>
586 VoViVi<_elementOperationType>::Unfold(result, vector1, vector2);
594 class _elementOperationType>
597 const _elementType & scalar) {
600 VoViSi<_elementOperationType>::Unfold(result, vector, scalar);
606 #endif // _vctFixedSizeVector_h
size_t index_type
Definition: vctContainerTraits.h:36
vctFixedSizeVectorBase< _size, 1, _elementType, typename VectorTraits::array > BaseType
Definition: vctFixedSizeVector.h:68
vctFixedSizeVectorTraits< _elementType, _size, 1 > VectorTraits
Definition: vctFixedSizeVector.h:64
vctFixedSizeVector(const vctFixedSizeConstVectorRef< _elementType, _size, __stride > &vector)
Definition: vctFixedSizeVector.h:105
Definition: vctFixedSizeVector.h:74
#define CMN_ASSERT(expr)
Definition: cmnAssert.h:90
vctFixedSizeVector(const __elementType *elements)
Definition: vctFixedSizeVector.h:132
VectorValueType Floor(void) const
Definition: vctFixedSizeVector.h:547
An implementation of the ``abstract'' vctFixedSizeVectorBase.
Definition: vctFixedSizeVectorRef.h:46
vctFixedSizeVector< _elementType, _size > operator-(const vctFixedSizeConstVectorBase< _size, _vector1Stride, _elementType, _vector1Data > &vector1, const vctFixedSizeConstVectorBase< _size, _vector2Stride, _elementType, _vector2Data > &vector2)
Definition: vctFixedSizeVector.h:332
VectorValueType Ceil(void) const
Definition: vctFixedSizeVector.h:558
vctFixedSizeVector< _elementType, _size > operator+(const vctFixedSizeConstVectorBase< _size, _vector1Stride, _elementType, _vector1Data > &vector1, const vctFixedSizeConstVectorBase< _size, _vector2Stride, _elementType, _vector2Data > &vector2)
Definition: vctFixedSizeVector.h:320
vctFixedSizeVector< _elementType, _size1+_size2 > operator&(const vctFixedSizeConstVectorBase< _size1, _stride1, _elementType, _dataPtr1 > &vector1, const vctFixedSizeConstVectorBase< _size2, _stride2, _elementType, _dataPtr2 > &vector2)
Definition: vctFixedSizeVector.h:502
cmnVaArgPromotion< _elementType >::Type VaArgPromotion
Definition: cmnTypeTraits.h:167
An implementation of the ``abstract'' vctFixedSizeConstVectorBase.
Definition: vctFixedSizeConstVectorRef.h:50
ThisType & NormalizedSelf(void)
Definition: vctFixedSizeVectorBase.h:1363
size_t size_type
Definition: vctContainerTraits.h:35
vctFixedSizeVector(const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, _elementType, __dataPtrType > &vector, value_type lastElement)
Definition: vctFixedSizeVector.h:122
vctFixedSizeVector< _elementType, _size > operator*(const vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType > &vector, const _elementType &scalar)
Definition: vctFixedSizeVector.h:405
vctFixedSizeVector(const value_type &element0, const value_type &element1)
Definition: vctFixedSizeVector.h:174
vctFixedSizeVector< _elementType, 3 > vctCrossProduct(const vctFixedSizeConstVectorBase< 3, _vector1Stride, _elementType, _vector1Data > &vector1, const vctFixedSizeConstVectorBase< 3, _vector2Stride, _elementType, _vector2Data > &vector2)
Definition: vctFixedSizeVector.h:350
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
ThisType & Assign(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &other)
Definition: vctFixedSizeVectorBase.h:274
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
vctFixedSizeVector(const vctFixedSizeVectorRef< _elementType, _size, __stride > &vector)
Definition: vctFixedSizeVector.h:111
VectorValueType Abs(void) const
Definition: vctFixedSizeVector.h:525
ThisType & NegationOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &otherVector)
Definition: vctFixedSizeVectorBase.h:1286
vctFixedSizeVector< bool, _size > vctFixedSizeVectorElementwiseCompareScalar(const vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType > &vector, const _elementType &scalar)
Definition: vctFixedSizeVector.h:596
void cmnDeSerializeRaw(std::istream &inputStream, _elementType &data)
Definition: cmnDeSerializer.h:82
Define common container related types based on the properties of a fixed size container.
Definition: vctFixedSizeVectorTraits.h:45
TypeTraits::VaArgPromotion ElementVaArgPromotion
Definition: vctFixedSizeVector.h:72
size_type size(void) const
Definition: vctFixedSizeConstVectorBase.h:205
bool FromStreamRaw(std::istream &inputStream, const char delimiter= ' ')
Definition: vctFixedSizeVector.h:266
void DeSerializeRaw(std::istream &inputStream)
Definition: vctFixedSizeVector.h:299
vctFixedSizeVector< value_type, _size > ThisType
Definition: vctFixedSizeVector.h:67
vctFixedSizeVector< bool, _size > vctFixedSizeVectorElementwiseCompareVector(const vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType > &vector1, const vctFixedSizeConstVectorBase< _size, __stride, _elementType, __dataPtrType > &vector2)
Definition: vctFixedSizeVector.h:582
Declaration of vctFixedSizeVectorRef.
value_type SetAll(const value_type &value)
Definition: vctFixedSizeVectorBase.h:241
vctFixedSizeVector(const value_type &element0, const value_type &element1, const value_type &element2, const value_type &element3)
Definition: vctFixedSizeVector.h:190
VectorValueType Normalized(void) const
Definition: vctFixedSizeVector.h:569
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeVectorBase.h:76
vctFixedSizeVector< _elementType, _size > operator/(const vctFixedSizeConstVectorBase< _size, _stride, _elementType, _dataPtrType > &vector, const _elementType &scalar)
Definition: vctFixedSizeVector.h:416
void CrossProductOf(const vctFixedSizeConstVectorBase< 3, __stride1, _elementType, __dataPtr1Type > &inputVector1, const vctFixedSizeConstVectorBase< 3, __stride2, _elementType, __dataPtr2Type > &inputVector2)
Definition: vctFixedSizeVectorBase.h:782
ThisType & RatioOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition: vctFixedSizeVectorBase.h:1013
BaseType::CopyType CopyType
Definition: vctFixedSizeVector.h:69
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
VectorValueType Negation(void) const
Definition: vctFixedSizeVector.h:536
ThisType & SumOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition: vctFixedSizeVectorBase.h:809
vctFixedSizeVector()
Definition: vctFixedSizeVector.h:78
reference Element(size_type index)
Definition: vctFixedSizeVectorBase.h:213
Definition: vctDynamicConstVectorBase.h:77
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeConstVectorBase.h:107
vctFixedSizeVector(const value_type element0, const value_type element1, const value_type element2, const value_type element3, const value_type element4,...)
Definition: vctFixedSizeVector.h:211
pointer Pointer(size_type index=0)
Definition: vctFixedSizeVectorBase.h:226
ThisType & ConcatenationOf(const vctFixedSizeConstVectorBase< SIZEMINUSONE, __stride, __elementTypeVector, __dataPtrType > &other, __elementType last)
Definition: vctFixedSizeVectorBase.h:527
vctFixedSizeVector< _elementType, 3 > operator%(const vctFixedSizeConstVectorBase< 3, _vector1Stride, _elementType, _vector1Data > &vector1, const vctFixedSizeConstVectorBase< 3, _vector2Stride, _elementType, _vector2Data > &vector2)
Definition: vctFixedSizeVector.h:366
A collection of useful information about the C++ basic types, represented in a generic programming wa...
Definition: cmnTypeTraits.h:155
ThisType & DifferenceOf(const vctFixedSizeConstVectorBase< _size, __stride1, value_type, __dataPtrType1 > &vector1, const vctFixedSizeConstVectorBase< _size, __stride2, value_type, __dataPtrType2 > &vector2)
Definition: vctFixedSizeVectorBase.h:820
vctFixedSizeVector(const vctFixedSizeConstVectorBase< _size, __stride, __elementType, __dataPtrType > &vector)
Definition: vctFixedSizeVector.h:95
Container class for the recursive engines.
Definition: vctFixedSizeVectorRecursiveEngines.h:76
vctFixedSizeVector(const value_type &value)
Definition: vctFixedSizeVector.h:84
ThisType & operator=(const ThisType &other)
Definition: vctFixedSizeVector.h:237
ThisType & ProductOf(const vctFixedSizeConstVectorBase< _size, __stride, value_type, __dataPtrType > &vector, const value_type scalar)
Definition: vctFixedSizeVectorBase.h:1003
vctFixedSizeVector(const value_type &element0, const value_type &element1, const value_type &element2)
Definition: vctFixedSizeVector.h:181
vctFixedSizeVector(const vctDynamicConstVectorBase< __vectorOwnerType, value_type > &vector)
Definition: vctFixedSizeVector.h:147