1 #ifndef WALL_H_INCLUDED
2 #define WALL_H_INCLUDED
25 #include <boost/property_tree/ptree.hpp>
55 Cell* GetC1()
const {
return m_c1; }
58 Cell* GetC2()
const {
return m_c2; }
61 std::vector<Edge> GetEdges()
const;
64 unsigned int GetIndex()
const {
return m_wall_index; }
67 std::array<double, 3> GetInfluxVector(
Cell* c)
const;
70 Node* GetN1()
const {
return m_n1; }
73 Node* GetN2()
const {
return m_n2; }
79 std::array<double, 3> GetWallVector(
Cell* c)
const;
106 bool IsIntersectingWithDivisionPlane(
const std::array<double, 3>& p1,
107 const std::array<double, 3>& p2)
const;
113 std::ostream& Print(std::ostream& os)
const;
116 virtual void ReadPtree(boost::property_tree::ptree
const& wall_pt);
119 void SetC1(
Cell* c) { m_c1 = c; }
122 void SetC2(
Cell* c) { m_c2 = c; }
125 void SetN1(
Node* n) { m_n1 = n; }
128 void SetN2(
Node* n) { m_n2 = n; }
147 virtual boost::property_tree::ptree
ToPtree()
const;
151 template<
typename T,
size_t N>
162 void CalculateLength()
const;
169 unsigned int m_wall_index;
172 mutable double m_length;
173 mutable bool m_length_dirty;
177 std::ostream& operator<<(std::ostream& os,
const Wall& w);
181 #endif // end_of_include_guard
bool IsAtBoundary() const
Checks whether a wall is at the boundary of the mesh.
A cell contains walls and nodes.
Namespace for SimPT tissue editor package.
bool IncludesNode(const Node *node) const
Checks whether edge is part of this wall.
bool IncludesEdge(const Edge &edge) const
Checks whether edge is part of this wall.
Namespace for the core simulator.
An Edge connects two nodes and is ambidextrous.
void SetLengthDirty() const
Sets the 'dirty bit' i.e. length will recalculated on first use.
Interface for WallAttributes.
Attributes associated with a wall.
virtual boost::property_tree::ptree ToPtree() const
Convert the wall to a ptree.
double GetLength() const
Returns (and calculates, if length marked as dirty) the length along all nodes.
Interface and implementation for SegmentedVector class.
Structure of cells; key data structure.
An editable mesh with actions to alter the construction of the mesh.
A cell wall, runs between cell corner points and consists of wall elements.
Container that stores objects "almost contiguously" and guarantees that pointers/iterators are not in...
bool IsSam() const
True if the Wall adheres to the SAM (shoot apical meristem)