/*
    C++ Mesh Generation Library
    Copyright (c) 2000echet <eric at bechet dot ca>

    This file is part of the C++ Mesh Generation Library.

    See the NOTICE & LICENSE files for conditions.
*/
#ifndef FM_ELEMENT_H
#define FM_ELEMENT_H

#include <set>
#include <map>
#include <vector>

using namespace std;

namespace FM
{

  template <class N> class Element
  {
  public:
    virtual void GetNodes ( vector<N> &tab ) =0;
    virtual void GetNeighbors ( vector<Element<N> > &tab ) =0;
    virtual void CommonNodes ( const Element<N> &other,vector<N> &tabcommon,vector<N> &tabother );
    virtual int GetDim() =0;
    virtual int GetNbNeighbors() =0;
    virtual bool operator < ( const Element<N> &other ) =0;
  };

}
#endif //FM_ELEMENT_H
 
