|
| | VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) |
| | VCT_NARRAY_TRAITS_TYPEDEFS (DIMENSION) |
| | vctDynamicNArrayRef () |
| | vctDynamicNArrayRef (const ThisType &other) |
| | vctDynamicNArrayRef (pointer dataPointer, const nsize_type &sizes, const nstride_type &strides) |
| template<class __ownerType> |
| | vctDynamicNArrayRef (vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION > &otherNArray) |
| template<class __ownerType> |
| | vctDynamicNArrayRef (vctDynamicConstVectorBase< __ownerType, _elementType > &vector) |
| template<size_type __size, stride_type __stride, typename __dataPtrType> |
| | vctDynamicNArrayRef (vctFixedSizeConstVectorBase< __size, __stride, _elementType, __dataPtrType > &vector) |
| template<class __ownerType> |
| | vctDynamicNArrayRef (vctDynamicConstMatrixBase< __ownerType, _elementType > &matrix) |
| template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType> |
| | vctDynamicNArrayRef (vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &matrix) |
| void | SetRef (pointer dataPointer, const nsize_type &sizes, const nstride_type &strides) |
| template<class __ownerType> |
| void | SetRef (vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION > &otherNArray) |
| template<class __ownerType> |
| void | SubarrayOf (vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION > &otherNArray, const nsize_type &startPosition, const nsize_type &lengths) |
| template<class __ownerType> |
| void | PermutationOf (vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION > &otherNArray, const ndimension_type &dimensions) |
| template<class __ownerType> |
| void | SliceOf (vctDynamicNArrayBase< __ownerType, _elementType, DIMENSION+1 > &otherNArray, dimension_type dimension, size_type index) |
| template<class __ownerType> |
| void | SetRef (vctDynamicConstVectorBase< __ownerType, _elementType > &vector) |
| template<size_type __size, stride_type __stride, typename __dataPtrType> |
| void | SetRef (vctFixedSizeConstVectorBase< __size, __stride, _elementType, __dataPtrType > &vector) |
| template<class __ownerType> |
| void | SetRef (vctDynamicConstMatrixBase< __ownerType, _elementType > &matrix) |
| template<size_type __rows, size_type __cols, stride_type __rowStride, stride_type __colStride, typename __dataPtrType> |
| void | SetRef (vctFixedSizeConstMatrixBase< __rows, __cols, __rowStride, __colStride, _elementType, __dataPtrType > &matrix) |
- Parameters
-
| other | the nArray to be copied. |
|
| ThisType & | operator= (const ThisType &other) |
| ThisType & | operator= (const vctDynamicConstNArrayRef< _elementType, DIMENSION > &other) |
| template<class __nArrayOwnerType, typename __elementType> |
| ThisType & | operator= (const vctDynamicNArrayBase< __nArrayOwnerType, __elementType, DIMENSION > &other) |
| ThisType & | operator= (const value_type &value) |
| | VCT_CONTAINER_TRAITS_TYPEDEFS (_elementType) |
| | VCT_NARRAY_TRAITS_TYPEDEFS (_dimension) |
| ThisType & | Assign (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &other) |
| ThisType & | operator= (const vctDynamicConstNArrayBase< __nArrayOwnerType, __elementType, DIMENSION > &other) |
| ThisType & | ForceAssign (const vctDynamicConstNArrayBase< __nArrayOwnerType, __elementType, DIMENSION > &other) |
| bool | FastCopyOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &source, bool performSafetyChecks=true) CISST_THROW(std |
| ThisType & | SumOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | DifferenceOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | ElementwiseProductOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | ElementwiseRatioOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | ElementwiseMinOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | ElementwiseMaxOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | Add (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | Subtract (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | ElementwiseMultiply (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | ElementwiseDivide (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | ElementwiseMin (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | ElementwiseMax (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | operator+= (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | operator-= (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | ProductOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type scalar) |
| ThisType & | RatioOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type scalar) |
| ThisType & | ClippedAboveOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type lowerBound) |
| ThisType & | ClippedBelowOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &nArray, const value_type upperBound) |
| 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 & | AddProductOf (const value_type scalar, const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | AddElementwiseProductOf (const vctDynamicConstNArrayBase< __nArrayOwnerType1, value_type, DIMENSION > &nArray1, const vctDynamicConstNArrayBase< __nArrayOwnerType2, value_type, DIMENSION > &nArray2) |
| ThisType & | AbsOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | NegationOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | FloorOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | CeilOf (const vctDynamicConstNArrayBase< __nArrayOwnerType, value_type, DIMENSION > &otherNArray) |
| ThisType & | AbsSelf (void) |
| ThisType & | NegationSelf (void) |
| ThisType & | FloorSelf (void) |
| ThisType & | CeilSelf (void) |
| iterator | begin (void) |
| iterator | end (void) |
| reverse_iterator | rbegin (void) |
| reverse_iterator | rend (void) |
| const OwnerType & | Owner (void) const |
| pointer | Pointer (const nsize_type &indices) |
| reference | at (size_type metaIndex) CISST_THROW(std |
| reference | operator() (const nsize_type &coordinates) CISST_THROW(std |
| reference | Element (const nsize_type &coordinates) |
| SubarrayRefType | Subarray (const nsize_type &startPosition, const nsize_type &lengths) |
| PermutationRefType | Permutation (const ndimension_type &dimensions) |
| SliceRefType | Slice (dimension_type dimension, size_type index) |
| SliceRefType | operator[] (size_type index) |
| value_type | SetAll (const value_type value) |
| bool | Zeros (void) |
template<class _elementType,
vct::size_type _dimension>
class vctDynamicNArrayRef< _elementType, _dimension >
Dynamic nArray referencing existing memory.
The class vctDynamicNArrayRef allows to create a nArray overlaying an existing block of memory. It can be used to manipulate a container created by another toolkit (i.e. OpenGL, vtk, ...) or a cisstVector container using different parameters (different size, storage order or stride).
To setup the overlay, one can use either the constructors or the SetRef methods. When used with a cisst container, the SetRef methods can infer some of the memory layout information (pointer on first element, sizes, strides). When used to overlay existing memory referenced by a pointer, the user has to provide all the required information. In any case, the Ref object doesn't allocate nor free memory.
For example to manipulate the first five elements of a nArray, one can do:
first5x5.
SetRef(wholeNArray, size_type(0, 0), size_type(5, 5));
value_type SetAll(const value_type value)
Definition vctDynamicNArrayBase.h:337
Definition vctForwardDeclarations.h:183
vctDynamicNArrayRef()
Definition vctDynamicNArrayRef.h:106
void SetRef(pointer dataPointer, const nsize_type &sizes, const nstride_type &strides)
Definition vctDynamicNArrayRef.h:180
void vctRandom(vctDynamicMatrixBase< _matrixOwnerType, _elementType > &matrix, const typename vctDynamicMatrixBase< _matrixOwnerType, _elementType >::value_type min, const typename vctDynamicMatrixBase< _matrixOwnerType, _elementType >::value_type max)
Definition vctRandomDynamicMatrix.h:47
- Note
- On top of the SetRef methods provided for the cisst vectors and matrices (see vctDynamicVectorRef and vctDynamicMatrixRef), the ref classes for nArrays provides the methods SubarrayOf (re-size, same dimension), PermutationOf (same dimension, same sizes but different ordering of dimensions), SliceOf (reduce dimension by 1). By combining different Refs created using a mix of these methods, one can create any desired overlay.
-
Make sure the underlying memory is not freed after the Ref object is created and before it is used. This would lead to faulty memory access and potential bugs.
-
vctDynamicNArrayRef can perform const and non-const operations. It can be initialized with a non-const object only (
value_type *). For a const Ref, see vctDynamicConstNArrayRef.
- See also
- vctDynamicNArray, vctDynamicConstNArrayRef
- Parameters
-
| _elementType | Type of elements referenced. Also defined as value_type. |
| _dimension | Dimension of the nArray ref. |