TAPs 0.7.7.3
TAPsVectorSet.hpp
Go to the documentation of this file.
00001 /******************************************************************************
00002 TAPsVectorSet.hpp
00003 ******************************************************************************/
00009 /******************************************************************************
00010 SUKITTI PUNAK   (07/12/2005)
00011 UPDATE          (08/18/2010)
00012 ******************************************************************************/
00013 #ifndef TAPs_VECTOR_SET_HPP
00014 #define TAPs_VECTOR_SET_HPP
00015 
00016 #include "../Core/TAPsMath.hpp"
00017 #include <vector>
00018 
00019 BEGIN_NAMESPACE_TAPs__Simulation
00020 //=============================================================================
00021 template <typename T>
00022 class VectorSet : public std::vector<T> {
00023 //=============================================================================
00024 public:
00025     //-------------------------------------------------------------------------
00026     // Output Operator <<
00027     friend std::ostream & operator<< ( std::ostream &output, VectorSet<T> const &v )
00028     {
00029         //output << typeid(*this).name() << "( ";
00030         output << "VectorSet<" << typeid(T).name() << ">( ";
00031         int i;
00032         if ( 0 == v.size() ) {
00033             output << "Empty )";
00034         }
00035         else {
00036             for ( i = 0; i < static_cast<int>(v.size()-1); ++i )
00037             {
00038                 output << v[i] << ", ";
00039             }
00040             output << v[i] << " )";
00041         }
00042         return output;
00043     }
00044     //-------------------------------------------------------------------------
00045     // Constructors and Destructor
00046     VectorSet ();
00047     VectorSet ( int size );
00048     VectorSet ( T const af[], int size );
00049     VectorSet ( VectorSet<T> const &v );
00050     ~VectorSet ();
00051     //-------------------------------------------------------------------------
00052     // Assignment Operator
00053     VectorSet<T> & operator= ( VectorSet<T> const &v );
00054     //-------------------------------------------------------------------------
00055     // Arithmetic Operators
00056     VectorSet<T> operator- () const;    // negation
00057     VectorSet<T> operator+ ( VectorSet<T> const &v ) const;
00058     VectorSet<T> operator- ( VectorSet<T> const &v ) const;
00059     VectorSet<T> operator* ( VectorSet<T> const &v ) const;
00060     VectorSet<T> operator/ ( VectorSet<T> const &v ) const;
00061     VectorSet<T> operator* ( T s ) const;
00062     VectorSet<T> operator/ ( T s ) const;
00063     friend VectorSet<T> operator* ( T s, VectorSet<T> const &v )    { return v*s; }
00064     //-------------------------------------------------------------------------
00065     // Arithmetic Update Operators
00066     VectorSet<T> & operator+= ( VectorSet<T> const &v );
00067     VectorSet<T> & operator-= ( VectorSet<T> const &v );
00068     VectorSet<T> & operator*= ( VectorSet<T> const &v );
00069     VectorSet<T> & operator/= ( VectorSet<T> const &v );
00070     VectorSet<T> & operator*= ( T s );
00071     VectorSet<T> & operator/= ( T s );
00072 }; // END CLASS VectorSet
00073 //=============================================================================
00074 END_NAMESPACE_TAPs__Simulation
00075 //-----------------------------------------------------------------------------
00076 // Include definition if TAPs_USE_EXPORT is not defined
00077 //#if !defined( TAPs_USE_EXPORT )
00078     #include "TAPsVectorSet.cpp"
00079 //#endif
00080 //-----------------------------------------------------------------------------
00081 #endif
00082 //345678901234567890123456789012345678901234567890123456789012345678901234567890
00083 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines