1 #ifndef SIMPT_EDITOR_EDITABLE_MESH_H_INCLUDED
2 #define SIMPT_EDITOR_EDITABLE_MESH_H_INCLUDED
24 #include <boost/property_tree/ptree.hpp>
61 bool CanSplitCell(
Node* node1,
Node* node2,
Cell* cell =
nullptr)
const;
76 Cell* CreateCell(
Node* node1,
Node* node2,
const QPointF& newPoint);
83 void DeleteCells(
const std::list<Cell*>& cells);
94 bool DeleteTwoDegreeNode(
Node* node);
104 bool DisplaceNode(
Node* node,
double x,
double y);
109 std::shared_ptr<SimPT_Sim::Mesh>& GetMesh();
118 bool IsDeletableCell(
Cell* cell)
const;
127 bool IsDeletableNode(
Node* node)
const;
140 void ReplaceCell(
Cell* cell, std::list<QPolygonF> newCells);
154 std::vector<Cell*> SplitCell(
Node* node1,
Node* node2);
165 std::vector<Cell*> SplitCell(
Cell* cell,
Node* node1,
Node* node2);
179 bool DeleteTwoDegreeNodeInconsistent(
Node* node);
207 bool IsConsistent(
const std::list<QLineF>& excluded,
const std::list<QLineF>& included)
const;
216 bool IsConsistent(
Node* node)
const;
224 void SetAtBoundary(
Node* node);
227 std::shared_ptr<SimPT_Sim::Mesh> m_mesh;
228 std::vector<Cell*>& m_cells;
229 std::vector<Node*>& m_nodes;
230 std::vector<Wall*>& m_walls;
232 static constexpr
double g_accuracy = 1.0e-12;
237 #endif // end_of_include_guard
A cell contains walls and nodes.
Namespace for SimPT tissue editor package.
Namespace for the core simulator.
An Edge connects two nodes and is ambidextrous.
An editable mesh with actions to alter the construction of the mesh.