/*========================================================================= Copyright (c) Kitware Inc. All rights reserved. =========================================================================*/ // This class was written by Daniel Aguilera and Philippe Pebay // This work was supported by Commissariat a l'Energie Atomique (CEA/DIF) #ifndef CELL_H #define CELL_H #include <vector> #include <vtkType.h> class Node; class Cell { public: Cell (int id, std::vector<Node*> nodes); ~Cell (); void replaceNode (Node * oldNode, Node * newNode); bool isRefined () {return _refined;} int getId () {return _id;} vtkIdType * getNodeIds(); void setNeighbours(int idx1, int idx2, int idy1, int idy2, int idz1, int idz2) {}; void refine (); void refineIfNeeded(); static void setRefine (int refine) {_refineNumber = refine;} static void setR (double R) {_R = R;} static int getCount() {return _count;} protected: std::vector<Node*> _nodes; std::vector<Cell*> _cells; bool _refined; int _id; vtkIdType * _nodeIds; private: double computeValue (Node * n); static int _count; static int _refinedCount; static int _refineNumber; static double _R; } ; #endif /* CELL_H */