36 #ifndef VESSELNODE_HPP_ 37 #define VESSELNODE_HPP_ 42 #include <boost/enable_shared_from_this.hpp> 43 #include "ChasteSerialization.hpp" 44 #include "SmartPointers.hpp" 45 #include "DimensionalChastePoint.hpp" 46 #include "AbstractVesselNetworkComponent.hpp" 47 #include "NodeFlowProperties.hpp" 48 #include "UblasVectorInclude.hpp" 49 #include "UnitCollection.hpp" 50 #include "VesselSegment.hpp" 55 template<
unsigned DIM>
64 template<
unsigned DIM>
80 template<
class Archive>
81 void serialize(Archive & ar,
const unsigned int version)
83 ar & boost::serialization::base_object<AbstractVesselNetworkComponent<DIM> >(*this);
103 std::vector<boost::weak_ptr<VesselSegment<DIM> > >
mSegments;
132 VesselNode(
double v1,
double v2,
double v3, units::quantity<unit::length> referenceLength);
142 VesselNode(
double v1 = 0.0,
double v2 = 0.0,
double v3 = 0.0);
171 static boost::shared_ptr<VesselNode<DIM> >
Create(
double v1 = 0.0,
double v2 = 0.0,
double v3 = 0.0);
182 static boost::shared_ptr<VesselNode<DIM> >
Create(
double v1,
double v2,
double v3, units::quantity<unit::length> referenceLength);
206 static boost::shared_ptr<VesselNode<DIM> >
Create(boost::shared_ptr<
VesselNode<DIM> > pExistingNode);
262 boost::shared_ptr<VesselSegment<DIM> >
GetSegment(
unsigned index)
const;
269 std::vector<boost::shared_ptr<VesselSegment<DIM> > >
GetSegments()
const;
335 void SetLocation(
double x,
double y,
double z=0.0, units::quantity<unit::length> referenceLength = 1.e-6*unit::metres);
363 #include "SerializationExportWrapper.hpp" bool IsCoincident(const DimensionalChastePoint< DIM > &rLocation) const
unsigned GetNumberOfSegments() const
static boost::shared_ptr< VesselNode< DIM > > Create(double v1=0.0, double v2=0.0, double v3=0.0)
DimensionalChastePoint< DIM > mLocation
void SetComparisonId(unsigned id)
unsigned GetComparisonId()
void SetLocation(const DimensionalChastePoint< DIM > &rLocation)
bool IsAttachedTo(const boost::shared_ptr< VesselSegment< DIM > > pSegment) const
void RemoveSegment(boost::shared_ptr< VesselSegment< DIM > > pVesselSegment)
units::quantity< unit::length > GetDistance(const DimensionalChastePoint< DIM > &rLocation) const
std::vector< boost::shared_ptr< VesselSegment< DIM > > > GetSegments() const
boost::shared_ptr< NodeFlowProperties< DIM > > mpFlowProperties
void AddSegment(boost::shared_ptr< VesselSegment< DIM > > pVesselSegment)
boost::shared_ptr< NodeFlowProperties< DIM > > GetFlowProperties() const
std::map< std::string, double > GetOutputData()
VesselNode(double v1, double v2, double v3, units::quantity< unit::length > referenceLength)
const DimensionalChastePoint< DIM > & rGetLocation() const
units::quantity< unit::length > GetReferenceLengthScale() const
unsigned mPtrComparisonId
void SetReferenceLengthScale(units::quantity< unit::length > lenthScale)
void serialize(Archive &ar, const unsigned int version)
std::vector< boost::weak_ptr< VesselSegment< DIM > > > mSegments
void SetIsMigrating(bool isMigrating)
friend class boost::serialization::access
void SetFlowProperties(const NodeFlowProperties< DIM > &rFlowProperties)
boost::shared_ptr< VesselSegment< DIM > > GetSegment(unsigned index) const