/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */ /* $Id: vctForwardDeclarations.h,v 1.21 2007/04/26 19:33:58 anton Exp $ Author(s): Anton Deguet Created on: 2004-10-25 (C) Copyright 2004-2007 Johns Hopkins University (JHU), All Rights Reserved. --- begin cisst license - do not edit --- This software is provided "as is" under an open source license, with no warranty. The complete license can be found in license.txt and http://www.cisst.org/cisst/license.txt. --- end cisst license --- */ #ifndef _vctForwardDeclarations_h #define _vctForwardDeclarations_h /*! \file \brief Forward declarations and \#define for cisstVector \ingroup cisstVector */ /*! \name Definition of the storage order used for the matrices. The default for cisstVector is row major (#VCT_ROW_MAJOR) which is the default convention for C/C++ code. In order to support some numerical libraries in Fortran (or Fortran compatible), cisstVector also support column major order (#VCT_COL_MAJOR). */ //@{ /*! Value to use for a row major storage order. */ const bool VCT_ROW_MAJOR = true; /*! Value to use for a column major storage order. */ const bool VCT_COL_MAJOR = false; /*! Default storage order used in cisstVector. */ const bool VCT_DEFAULT_STORAGE = VCT_ROW_MAJOR; /*! More friendly value to use for Fortran storage. Equivalent to #VCT_COL_MAJOR. */ const bool VCT_FORTRAN_ORDER = VCT_COL_MAJOR; //@} /*! Value used to force the normalization of the input for rotation constructors. See classes vctMatrixRotation3Base, vctQuaternionRotation3Base, vctAxisAngleRotation3, vctRodriguezRotation3Base, etc. */ const bool VCT_NORMALIZE = true; /*! Value used to NOT force the normalization of the input for rotation constructors. Not only the input will not be normalized, but the constructor or method will not check if the input is normalized. See classes vctMatrixRotation3Base, vctQuaternionRotation3Base, vctAxisAngleRotation3, vctRodriguezRotation3Base, etc. */ const bool VCT_DO_NOT_NORMALIZE = false; // fixed size vectors template class vctFixedSizeConstVectorBase; template class vctFixedSizeVectorBase; template class vctFixedSizeConstVectorRef; template class vctFixedSizeVectorRef; template class vctFixedSizeVector; // fixed size matrices template class vctFixedSizeConstMatrixBase; template class vctFixedSizeMatrixBase; template class vctFixedSizeConstMatrixRef; template class vctFixedSizeMatrixRef; template class vctFixedSizeMatrix; // dynamic vectors template class vctDynamicConstVectorBase; template class vctDynamicVectorBase; template class vctDynamicConstVectorRef; template class vctDynamicVectorRef; template class vctDynamicVector; template class vctReturnDynamicVector; // dynamic matrices template class vctDynamicConstMatrixBase; template class vctDynamicMatrixBase; template class vctDynamicConstMatrixRef; template class vctDynamicMatrixRef; template class vctDynamicMatrix; template class vctReturnDynamicMatrix; // dynamic nArrays template class vctDynamicConstNArrayBase; template class vctDynamicNArrayBase; template class vctDynamicConstNArrayRef; template class vctDynamicNArrayRef; template class vctDynamicNArray; template class vctReturnDynamicNArray; // transformations template class vctMatrixRotation3Base; template class vctQuaternionBase; template class vctQuaternionRotation3Base; template class vctAxisAngleRotation3; template class vctRodriguezRotation3Base; template class vctRodriguezRotation3; template class vctMatrixRotation2Base; class vctAngleRotation2; template class vctFrameBase; #endif // _vctForwardDeclarations_h // **************************************************************************** // Change History // **************************************************************************** // // $Log: vctForwardDeclarations.h,v $ // Revision 1.21 2007/04/26 19:33:58 anton // All files in libraries: Applied new license text, separate copyright and // updated dates, added standard header where missing. // // Revision 1.20 2007/03/08 04:29:25 anton // cisstVector NArray: Now templated by dimension (see #258). Added template // specialization for slices of dimension 1 NArray to return value_type. Used // Ofri's implementation of IncrementPointer() in loop engines (previous one did // not handle more than dimension 3). Also renamed DimSize, DimStride and // Dimension to size(d), stride(d), and dimensioni (for STL flavor). // // Revision 1.19 2007/01/29 03:29:37 anton // cisstVector: Update quaternion and quaternion based rotation to reflect new // class structure (see ticket #263). // // Revision 1.18 2007/01/26 21:23:22 anton // cisstVector: Updated vctMatrixRotation3 code to reflect new design (i.e. avoid // derived class and use typedef instead, see ticket #263. // // Revision 1.17 2006/12/09 04:13:25 anton // cisstVector: Imported code for NArray from Daniel Li with minor cleanup // for license, dos2unix, a few renamed methods and port to gcc. // // Revision 1.16 2006/11/20 20:33:20 anton // Licensing: Applied new license to cisstCommon, cisstVector, cisstNumerical, // cisstInteractive, cisstImage and cisstOSAbstraction. // // Revision 1.15 2005/12/28 15:48:15 anton // vctForwardDeclarations.h: Use VCT_ROW_MAJOR instead of true. // // Revision 1.14 2005/12/08 22:18:42 anton // vctForwardDeclarations.h: Define VCT_ROW_MAJOR and others constants related // to storage order as "const bool" instead of #define. // // Revision 1.13 2005/12/07 23:14:03 anton // vctForwardDeclarations.h: Converted VCT_NORMALIZE and VCT_DO_NOT_NORMALIZE // to const bool. // // Revision 1.12 2005/12/01 22:11:57 anton // cisstVector: 2D transformations, added a base class for rotation matrix 2. // // Revision 1.11 2005/11/15 03:26:47 anton // vctForwardDeclarations: Added VCT_DO_NOT_NORMALIZE // // Revision 1.10 2005/10/06 16:56:37 anton // Doxygen: Corrected errors and some warnings detected by Doxygen 1.4.3. // // Revision 1.9 2005/09/26 15:41:47 anton // cisst: Added modelines for emacs and vi. // // Revision 1.8 2005/09/01 06:18:08 anton // cisstVector transformations: Added a level of abstraction for all classes // derived from fixed size containers (vctQuaternion, vctQuaternionRotation3, // vctMatrixRotation3, vctRodriguezRotation3). These classes are now derived // from vctXyzBase<_containerType>. This will ease the SWIG wrapping. // // Revision 1.7 2005/05/19 19:29:01 anton // cisst libs: Added the license to cisstCommon and cisstVector // // Revision 1.6 2005/02/24 01:51:50 anton // cisstVector: Added classes vctAngleRotation2 and vctMatrixRotation2. This // code has not been tested. The normalization and conversion methods have // to be reviewed. // // Revision 1.5 2005/02/04 16:56:54 anton // cisstVector: Added classes vctAxisAngleRotation3 and vctRodriguezRotation3 // as planed in ticket #109. Also updated vctMatrixRotation3 to use these new // classes. Other updates include vctRandom(rotation), new vctTypes and // forward declarations. // // Revision 1.4 2005/02/03 19:08:10 anton // vctForwardDeclarations: Added VCT_FORTRAN_ORDER and VCT_NORMALIZE. // // Revision 1.3 2004/11/08 18:10:17 anton // cisstVector: Completed the use of VCT_STORAGE_ORDER, added related Doxygen // documentation. // // Revision 1.2 2004/11/03 22:26:12 anton // cisstVector: Better support of storage order. Added VCT_COL_MAJOR, // VCT_ROW_MAJOR and VCT_DEFAULT_STORAGE as well as the methods IsColMajor(), // IsRowMajor(), IsCompact() and IsFortran(). // // Revision 1.1 2004/10/25 19:19:54 anton // cisstVector: Created vctForwardDeclarations.h and removed forward // declarations of classes in all other files. Added some constructors // for vector references to reference fixed size from dynamic and vice versa. // // // ****************************************************************************