42 #include <boost/enable_shared_from_this.hpp> 43 #include "VesselSegment.hpp" 44 #include "VesselNode.hpp" 45 #include "DimensionalChastePoint.hpp" 46 #include "UnitCollection.hpp" 47 #include "VesselFlowProperties.hpp" 68 template<
unsigned DIM>
76 std::vector<boost::shared_ptr<VesselSegment<DIM> > >
mSegments;
81 std::vector<boost::shared_ptr<VesselNode<DIM> > >
mNodes;
132 static boost::shared_ptr<Vessel<DIM> > Create(boost::shared_ptr<
VesselSegment<DIM> > pSegment);
139 static boost::shared_ptr<Vessel<DIM> > Create(std::vector<boost::shared_ptr<
VesselSegment<DIM> > > segments);
146 static boost::shared_ptr<Vessel<DIM> > Create(std::vector<boost::shared_ptr<
VesselNode<DIM> > > nodes);
154 static boost::shared_ptr<Vessel<DIM> > Create(boost::shared_ptr<
VesselNode<DIM> > pStartNode,
178 void CopyDataFromExistingVessel(boost::shared_ptr<
Vessel<DIM> > pTargetVessel);
187 double distanceTolerance = 1.e-6);
206 std::vector<boost::shared_ptr<Vessel<DIM> > > GetConnectedVessels();
211 boost::shared_ptr<VesselNode<DIM> > GetEndNode();
218 boost::shared_ptr<VesselFlowProperties<DIM> > GetFlowProperties()
const;
225 boost::shared_ptr<VesselNode<DIM> > GetNodeAtOppositeEnd(boost::shared_ptr<
VesselNode<DIM> > pQueryNode);
232 units::quantity<unit::length> GetLength()
const;
239 units::quantity<unit::length> GetRadius()
const;
246 boost::shared_ptr<VesselNode<DIM> > GetNode(
unsigned index);
253 std::vector<boost::shared_ptr<VesselNode<DIM> > > GetNodes();
260 const std::vector<boost::shared_ptr<VesselNode<DIM> > >& rGetNodes();
266 unsigned GetNumberOfNodes();
271 unsigned GetNumberOfSegments();
277 std::map<std::string, double> GetOutputData();
283 boost::shared_ptr<VesselSegment<DIM> > GetSegment(
unsigned index);
288 std::vector<boost::shared_ptr<VesselSegment<DIM> > > GetSegments();
293 boost::shared_ptr<VesselNode<DIM> > GetStartNode();
299 bool IsConnectedTo(boost::shared_ptr<
Vessel<DIM> > pOtherVessel);
316 void SetRadius(units::quantity<unit::length> radius);
336 boost::shared_ptr<Vessel<DIM> > Shared();
std::vector< boost::shared_ptr< VesselSegment< DIM > > > mSegments
std::vector< boost::shared_ptr< VesselNode< DIM > > > mNodes
boost::shared_ptr< VesselFlowProperties< DIM > > mpFlowProperties