MC_int_pair.cpp

Go to the documentation of this file.
00001 
00002 #include <MC_int_pair.hpp>
00003 
00004 namespace mesh_conv
00005 {
00006 
00007 
00008     MC_int_pair::MC_int_pair(){u0=0;u1=0;}
00009     MC_int_pair::MC_int_pair(const MC_int_pair& input){u0=input.u0;u1=input.u1;}
00010     MC_int_pair::MC_int_pair(const int& _u0,const int& _u1){u0=_u0;u1=_u1;}
00011     MC_int_pair::~MC_int_pair(){}
00012 
00013     bool operator==(const MC_int_pair& p0,const MC_int_pair& p1)
00014     {
00015         if( ( (p0.u0==p1.u0) && (p0.u1==p1.u1) ) || ( (p0.u0==p1.u1) && (p0.u1==p1.u0) ))
00016             return true;
00017         return false;
00018     }
00019 
00020     bool operator!=(const MC_int_pair& p0,const MC_int_pair& p1)
00021     {
00022         if( ( (p0.u0==p1.u0) && (p0.u1==p1.u1) ) || ( (p0.u0==p1.u1) && (p0.u1==p1.u0) ))
00023             return false;
00024         return true;
00025     }
00026 
00027     MC_int_pair& MC_int_pair::operator=(const MC_int_pair& to_copy)
00028                                        {
00029         u0=to_copy[0];
00030         u1=to_copy[1];
00031         return *this;
00032     }
00033 
00034     std::ostream& operator<<(std::ostream& stream, const MC_int_pair& p)
00035     {
00036         stream<<"("<<p[0]<<","<<p[1]<<")";
00037         return stream;
00038     }
00039 
00040     void MC_int_pair::assert_bounds(const int& u) const
00041     {
00042         if(u!=0 && u!=1)
00043         {std::cout<<"Error in MC_int_pair::assert_bounds("<<u<<"), index must be 0 or 1"<<std::endl;exit(-1);}
00044     }
00045 
00046     const int& MC_int_pair::operator[](const int& k) const
00047     {
00048         assert_bounds(k);
00049         if(k==0) return u0;
00050         return u1;
00051     }
00052     int& MC_int_pair::operator[](const int& k)
00053     {
00054         assert_bounds(k);
00055         if(k==0) return u0;
00056         return u1;
00057     }
00058     const int& MC_int_pair::operator()(const int& k) const
00059     {
00060         assert_bounds(k);
00061         if(k==0) return u0;
00062         return u1;
00063     }
00064     int& MC_int_pair::operator()(const int& k)
00065     {
00066         assert_bounds(k);
00067         if(k==0) return u0;
00068         return u1;
00069     }
00070 
00071     MC_int_pair MC_int_pair::ordonated() const
00072     {
00073         if(u0<u1)
00074             return MC_int_pair(u0,u1);
00075         return MC_int_pair(u1,u0);
00076     }
00077 
00078 
00079     MC_int_pair operator+(const MC_int_pair& p,const int& a)
00080     {return MC_int_pair(p[0]+a,p[1]+a);}
00081     MC_int_pair operator-(const MC_int_pair& p,const int& a)
00082     {return MC_int_pair(p[0]-a,p[1]-a);}
00083 
00084 }

Generated on Sun Apr 18 20:24:47 2010 by  doxygen 1.6.1