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 }