#ifndef CONTACTFLEXUTILS_H
#define CONTACTFLEXUTILS_H

namespace CompuCell3D {

   class OrderedTypePair:public std::pair<unsigned char,unsigned char>{
      public:
      OrderedTypePair(unsigned char _type1=0,unsigned char _type2=0)            
         {
            assign(_type1,_type2);
         }

      void assign(unsigned char _type1,unsigned char _type2)
         {
            first=_type1;
            second=_type2;
            if(first>second){
               std::swap(first,second);
            }
         }

         
   };
//    class OrderedTypePair{
//       public:
//          OrderedTypePair(unsigned char _type1=0,unsigned char _type2=0):
//             type1(_type1),type2(_type2)
//          {
//             if(type1>type2){
//                std::swap(type1,type2);               
//             }
//          }
//          bool operator < (OrderedTypePair _typePair){
//             if(this->type1 < _typePair->type1)
//                return true;
//             else if (this->type1 = _typePair->type1){
//                if(this->type2 < _typePair->type2){
//                   return true;
//                }else{
//                   return false;
//                }
//             }else{
//                return false;
//             }               
//          }
//          
//          unsigned char type1,type2;
//          
// 
//    };

   class HaptotaxisData{
      public:
         float lambda;
         Field3DImpl<float> * field;
   };

};
#endif
