void ConstructCellInfo(vector<Cell>& cells, vector<Edge>& edges, vector<Point>& vertex_infos);
void SetCellPerimeter(vector<Cell>& cells, vector<Edge>& edges);
void SetIndividualCellPerimeter(const int cellindex,
vector<Cell>& cells, vector<Edge>& edges);
void SetCellArea(vector<CellPoint>& cellpoints, vector<Cell>& cells,
vector<Edge>& edges, vector<Point>& vertex_infos,
const double sx, const double sy);
void SetIndividualCellArea(const int cellindex,
vector<CellPoint>& cellpoints, vector<Cell>& cells,
vector<Edge>& edges, vector<Point>& vertex_infos,
const double sx, const double sy);
void VertexPerturbationOnAttachedCells(const int cellindex,
vector<CellPoint>& cellpoints, const vector<Cell>& cells,
vector<Point>& vertex_infos,
const double dx, const double dy, const double sx, const double sy);
void CalcPerimeterAndAreaOfAttachedCells(const int cellindex,
vector<CellPoint>& cellpoints, vector<Cell>& cells,
vector<Edge>& edges, vector<Point>& vertex_infos,
const double sx, const double sy);