cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vctForwardDeclarations.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Anton Deguet
7  Created on: 2004-10-25
8 
9  (C) Copyright 2004-2007 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
21 #pragma once
22 #ifndef _vctForwardDeclarations_h
23 #define _vctForwardDeclarations_h
24 
32 
41 
43 const bool VCT_ROW_MAJOR = true;
44 
46 const bool VCT_COL_MAJOR = false;
47 
50 
53 
55 
56 
61 const bool VCT_NORMALIZE = true;
62 
69 const bool VCT_DO_NOT_NORMALIZE = false;
70 
71 
72 // iterators
73 template <class _ownerType, bool _forward>
75 
76 template <class _ownerType, bool _forward>
78 
79 
80 // fixed size vectors
81 template <vct::size_type _size, vct::stride_type _stride, class _elementType, class _dataPtrType>
83 
84 template <vct::size_type _size, vct::stride_type _stride, class _elementType, class _dataPtrType>
86 
87 template <class _elementType, vct::size_type _size, vct::stride_type _stride>
89 
90 template <class _elementType, vct::size_type _size, vct::stride_type _stride>
92 
93 template <class _elementType, vct::size_type _size>
94 class vctFixedSizeVector;
95 
96 
97 // fixed size matrices
98 template <vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride,
99  vct::stride_type _colStride, class _elementType, class _dataPtrType>
101 
102 template <vct::size_type _rows, vct::size_type _cols, vct::stride_type _rowStride,
103  vct::stride_type _colStride, class _elementType, class _dataPtrType>
105 
106 template <class _elementType, vct::size_type _rows, vct::size_type _cols,
107  vct::stride_type _rowStride, vct::stride_type _colStride>
109 
110 template <class _elementType, vct::size_type _rows, vct::size_type _cols,
111  vct::stride_type _rowStride, vct::stride_type _colStride>
113 
114 template <class _elementType, vct::size_type _rows, vct::size_type _cols,
115  bool _rowMajor = VCT_ROW_MAJOR>
116 class vctFixedSizeMatrix;
117 
118 
119 // dynamic vectors
120 template <class _vectorOwnerType, class _elementType>
122 
123 template <class _vectorOwnerType, class _elementType>
125 
126 template <class _elementType>
128 
129 template <class _elementType>
130 class vctDynamicVectorRef;
131 
132 template <class _elementType>
133 class vctDynamicVector;
134 
135 template <class _elementType>
137 
138 template <class _elementType>
140 
141 template <class _elementType>
143 
144 
145 // dynamic matrices
146 template <class _matrixOwnerType, class _elementType>
148 
149 template <class _matrixOwnerType, class _elementType>
151 
152 template <class _elementType>
154 
155 template <class _elementType>
156 class vctDynamicMatrixRef;
157 
158 template <class _elementType>
159 class vctDynamicMatrix;
160 
161 template <class _elementType>
163 
164 template <class _elementType>
166 
167 template <class _elementType>
169 
170 
171 // dynamic nArrays
172 template <class _nArrayOwnerType, class _elementType, vct::size_type _dimension>
174 
175 template <class _nArrayOwnerType, class _elementType, vct::size_type _dimension>
177 
178 template <class _elementType, vct::size_type _dimension>
180 
181 template <class _elementType, vct::size_type _dimension>
182 class vctDynamicNArrayRef;
183 
184 template <class _elementType, vct::size_type _dimension>
185 class vctDynamicNArray;
186 
187 template <class _elementType, vct::size_type _dimension>
189 
190 template <class _elementType, vct::size_type _dimension>
192 
193 template <class _elementType, vct::size_type _dimension>
195 
196 
197 // transformations
198 template <class _containerType> class vctMatrixRotation3ConstBase;
199 template <class _containerType> class vctMatrixRotation3Base;
200 template <class _elementType, bool _rowMajor = VCT_ROW_MAJOR> class vctMatrixRotation3;
201 template <class _elementType, vct::stride_type _rowStride, vct::stride_type _colStride> class vctMatrixRotation3Ref;
202 template <class _elementType, vct::stride_type _rowStride, vct::stride_type _colStride> class vctMatrixRotation3ConstRef;
203 
204 template <class _containerType>
206 
207 template <class _containerType>
209 
210 template <class _elementType>
212 
213 template <class _containerType>
215 template <class _elementType>
217 
218 namespace vctEulerRotation3Order {
219  //enum OrderType { XZX, XZY, XYX, XYZ, YXY, YXZ, YZY, YZX, ZYZ, ZYX, ZXZ, ZXY };
220  typedef enum { ZYZ, ZYX } OrderType;
221 };
222 
223 template <vctEulerRotation3Order::OrderType _order>
224 class vctEulerRotation3;
225 
226 template <class _containerType>
228 
229 class vctAngleRotation2;
230 
231 template <class _rotationType>
233 
234 template <class _containerType> class vctFrame4x4ConstBase;
235 template <class _containerType> class vctFrame4x4Base;
236 template <class _elementType, bool _rowMajor = VCT_ROW_MAJOR> class vctFrame4x4;
237 
238 
239 #endif // _vctForwardDeclarations_h
240 
Template base class for a 4x4 frame.
Definition: vctForwardDeclarations.h:234
A template for a fixed size matrix with fixed spacing in memory.
Definition: vctFixedSizeConstMatrixBase.h:103
Definition: vctEulerRotation3.h:153
A vector object of dynamic size.
Definition: vctDynamicVector.h:127
Definition: vctDynamicNArray.h:271
An nArray object of dynamic size.
Definition: vctDynamicNArray.h:122
Definition: vctDynamicMatrixBase.h:42
Dynamic vector referencing existing memory (const)
Definition: vctDynamicConstVectorRef.h:79
Define a rotation based on an angle for a space of dimension 2.
Definition: vctAngleRotation2.h:46
const bool VCT_ROW_MAJOR
Definition: vctForwardDeclarations.h:43
Portability across compilers and operating systems tools.
Define a quaternion container.
Definition: vctForwardDeclarations.h:205
An implementation of the ``abstract'' vctFixedSizeVectorBase.
Definition: vctFixedSizeVectorRef.h:46
Definition: vctDynamicNArrayOwner.h:36
Definition: vctDynamicConstNArrayBase.h:155
Dynamic vector referencing existing memory.
Definition: vctDynamicVectorRef.h:77
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:202
An implementation of the ``abstract'' vctFixedSizeConstVectorBase.
Definition: vctFixedSizeConstVectorRef.h:50
A matrix object of dynamic size.
Definition: vctDynamicMatrix.h:136
size_t size_type
Definition: vctContainerTraits.h:35
const bool VCT_DEFAULT_STORAGE
Definition: vctForwardDeclarations.h:49
Template base class for a 4x4 frame.
Definition: vctForwardDeclarations.h:236
Dynamic matrix referencing existing memory.
Definition: vctDynamicMatrixRef.h:74
Template base class for a 4x4 frame.
Definition: vctForwardDeclarations.h:235
Definition: vctForwardDeclarations.h:220
Dynamic nArray referencing existing memory (const)
Definition: vctDynamicConstNArrayRef.h:89
Definition: vctDynamicConstMatrixBase.h:77
Implementation of a fixed-size vector using template metaprogramming.
Definition: vctFixedSizeVector.h:52
Define a rotation based on an axis and an angle for a space of dimension 3.
Definition: vctAxisAngleRotation3.h:94
const bool VCT_FORTRAN_ORDER
Definition: vctForwardDeclarations.h:52
Definition: vctDynamicNArrayRefOwner.h:36
Definition: vctDynamicMatrix.h:419
A template for a fixed size matrix with fixed spacings in memory.
Definition: vctFixedSizeMatrixBase.h:58
Definition: vctForwardDeclarations.h:77
Define a rotation based on the rodriguez representation for a space of dimension 3. This representation is based on a vector. The direction of the vector determines the axis of rotation and its norm defines the amplitude of the rotation.
Definition: vctForwardDeclarations.h:216
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:199
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:201
Dynamic matrix referencing existing memory (const)
Definition: vctDynamicConstMatrixRef.h:79
OrderType
Definition: vctForwardDeclarations.h:220
Definition: vctDynamicVector.h:392
An implementation of the ``abstract'' vctFixedSizeMatrixBase.
Definition: vctFixedSizeMatrixRef.h:46
Basic traits for the cisstVector containers.
Define a rotation matrix for a space of dimension 2.
Definition: vctForwardDeclarations.h:227
Dynamic nArray referencing existing memory.
Definition: vctDynamicNArrayRef.h:87
Definition: vctDynamicMatrixOwner.h:38
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:198
_ownerType::value_type _elementType
Definition: vctVarStrideNArrayIterator.h:53
Implementation of a fixed-size matrix using template metaprogramming.
Definition: vctFixedSizeMatrix.h:52
Definition: vctDynamicMatrixRefOwner.h:39
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeVectorBase.h:76
Definition: vctDynamicVectorRefOwner.h:39
Definition: vctDynamicNArrayBase.h:42
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
Definition: vctForwardDeclarations.h:74
Definition: vctDynamicConstVectorBase.h:77
Definition: vctForwardDeclarations.h:220
An implementation of the ``abstract'' vctFixedSizeConstMatrixBase.
Definition: vctFixedSizeConstMatrixRef.h:50
A template for a fixed length vector with fixed spacing in memory.
Definition: vctFixedSizeConstVectorBase.h:107
Template base class for a frame.
Definition: vctForwardDeclarations.h:232
const bool VCT_NORMALIZE
Definition: vctForwardDeclarations.h:61
const bool VCT_DO_NOT_NORMALIZE
Definition: vctForwardDeclarations.h:69
Define a rotation quaternion for a space of dimension 3.
Definition: vctForwardDeclarations.h:208
const bool VCT_COL_MAJOR
Definition: vctForwardDeclarations.h:46
Definition: vctDynamicVectorOwner.h:36
Define a rotation based on the rodriguez representation for a space of dimension 3.
Definition: vctForwardDeclarations.h:214
Definition: vctDynamicVectorBase.h:61
Define a rotation matrix for a space of dimension 3.
Definition: vctForwardDeclarations.h:200