00001 00002 // 00003 // Title : CoordinateVector.h 00004 // Project : OSCAR Version 2.0 00005 // Created : 7/19/02 00006 // Author : Chetan Kapoor 00007 // Platforms : All 00008 // Copyright : The University of Texas at Austin, 2002. All rights reserved. 00009 // 00010 // This software and documentation constitute an unpublished work 00011 // and contain valuable trade secrets and proprietary information 00012 // belonging to the University. None of the foregoing material may be 00013 // copied or duplicated or disclosed without the express, written 00014 // permission of University. THE UNIVERSITY EXPRESSLY DISCLAIMS ANY 00015 // AND ALL WARRANTIES CONCERNING THIS SOFTWARE AND DOCUMENTATION, 00016 // INCLUDING ANY WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 00017 // PARTICULAR PURPOSE, AND WARRANTIES OF PERFORMANCE, AND ANY WARRANTY 00018 // THAT MIGHT OTHERWISE ARISE FROM COURSE OF DEALING OR USAGE OF TRADE. 00019 // NO WARRANTY IS EITHER EXPRESS OR IMPLIED WITH RESPECT TO THE USE OF 00020 // THE SOFTWARE OR DOCUMENTATION. Under no circumstances shall the 00021 // University be liable for incidental, special, indirect, direct or 00022 // consequential damages or loss of profits, interruption of business, 00023 // or related expenses which may arise from use of software or documentation, 00024 // including but not limited to those resulting from defects in software 00025 // and/or documentation, or loss or inaccuracy of data of any kind. 00026 // 00027 // Purpose : This file contains the declaration of class CoordinateVector 00028 //----------------------------------------------------------------------------- 00029 // 00030 // $Revisions$ 00031 // 00032 // $Log: CoordinateVector.h,v $ 00033 // Revision 1.14 2005/03/18 23:05:22 chetan 00034 // Fixed g++ compile warnings. Removed virtual inheritance from Base, added initialization of base class in copy constructors, added newline at EOF 00035 // 00036 // Revision 1.13 2005/03/18 16:39:28 chetan 00037 // Fixed compile warnings under g++ 00038 // 00039 // Revision 1.12 2005/03/14 22:04:14 pmarch 00040 // Added to namespace OSCAR and removed "RR" from front of class names. 00041 // 00042 // Revision 1.11 2004/07/30 19:05:13 chetan 00043 // Getting rid of warnings (level 4) in VC++ 6.0 00044 // 00045 // Revision 1.10 2004/07/19 16:37:04 edjung 00046 // -made fix to constructors for ANSI C++ compliance with temporary OSCARError objects 00047 // -added DUMMY_ERROR class 00048 // 00049 // Revision 1.9 2004/06/08 22:58:04 chetan 00050 // Added the Grow method 00051 // 00052 // Revision 1.8 2004/06/07 20:29:36 chetan 00053 // Made the Grow method protected. Primarily done for efficiency purposes and to prevent unexpected behavior 00054 // 00055 // Revision 1.7 2004/05/26 20:02:02 pmarch 00056 // Added /defgroup and /ingroup tags. 00057 // 00058 // Revision 1.6 2004/04/19 13:36:16 eswint 00059 // - Added explicit keyword to constructor CoordinateVector(int, double*) 00060 // 00061 // Revision 1.5 2003/09/09 17:13:13 eswint 00062 // - Changed #include "Math/..." to #include "..." 00063 // 00064 // Revision 1.4 2003/09/05 16:19:36 eswint 00065 // - Corrected comment in operator=(Vector) 00066 // 00067 // Revision 1.3 2003/09/05 03:41:43 eswint 00068 // - Added operator=(Vector). Needs more work for error checking, also questions about the appropriatness for the behavior of operator=(RRCoodinateVector). 00069 // 00070 // Revision 1.2 2003/09/04 22:48:00 eswint 00071 // - Change default arguments: OSCARError(0,"No Error"...) to OSCARError(noError) and String(" ") to String("") 00072 // 00073 // Revision 1.1 2003/08/18 15:23:42 eswint 00074 // Initial Commit 00075 // 00076 // 00078 #ifndef CoordinateVector_H 00079 #define CoordinateVector_H 00080 00081 #include "CoordinateSpace.h" 00082 #include "Matrix.h" 00083 #include "Vector.h" 00084 00086 namespace OSCAR { 00102 class CoordinateVector : public CoordinateSpace, public Vector 00103 { 00104 public: 00105 00118 explicit CoordinateVector(unsigned int size, const double* array = 0); 00119 00120 00135 CoordinateVector(unsigned int size, const CoordinateStatusArray& statArray, OSCARError& err = DUMMY_ERROR(noError)); 00136 00155 CoordinateVector(unsigned int size, const CoordinateStatusArray& statArray, const double* array, OSCARError& err = DUMMY_ERROR(noError)); 00156 00164 CoordinateVector(const CoordinateVector& rhs); 00165 00171 virtual ~CoordinateVector(); 00172 00181 CoordinateVector& operator=(const CoordinateVector& rhs); 00182 00191 CoordinateVector& operator=(const Vector& rhs); 00192 00200 CoordinateVector& operator=(const double rhs) { VectorNumeric<double>::operator=(rhs); return *this;} 00201 00209 bool Grow(unsigned int growth); 00210 00211 }; 00212 00213 #include "Math/CoordinateVector.ipp" 00214 } 00215 #endif // ifndef CoordinateVector_H
| RRG Homepage | OSCAR Overview | OSCAR Tutorials | Simulations |