36 #ifndef VESSELNETWORKGENERATOR_HPP_ 37 #define VESSELNETWORKGENERATOR_HPP_ 41 #include "VesselNetwork.hpp" 43 #include "VesselNode.hpp" 45 #include "UblasVectorInclude.hpp" 46 #include "UnitCollection.hpp" 47 #include "DimensionalChastePoint.hpp" 64 REGULAR, UNIFORM, TWO_LAYER, CUSTOM
69 template<
unsigned DIM>
98 boost::shared_ptr<VesselNetwork<DIM> > GenerateParrallelNetwork(boost::shared_ptr<
Part<DIM> > domain,
99 units::quantity<unit::per_area> targetDensity,
101 units::quantity<unit::length> exclusionDistance = 0.0*unit::metres,
102 bool useBbox =
false,
114 boost::shared_ptr<VesselNetwork<DIM> > Generate3dNetwork(boost::shared_ptr<
Part<DIM> > domain,
115 std::vector<units::quantity<unit::per_area> > targetDensity,
117 units::quantity<unit::length> exclusionDistance = 0.0*unit::metres,
118 bool useBbox =
false,
125 boost::shared_ptr<VesselNetwork<DIM> > GenerateHexagonalNetwork(units::quantity<unit::length> width,
126 units::quantity<unit::length> height,
127 units::quantity<unit::length> vesselLength);
131 boost::shared_ptr<VesselNetwork<DIM> > GenerateHexagonalUnit(units::quantity<unit::length> vesselLength);
136 boost::shared_ptr<VesselNetwork<DIM> > GenerateBifurcationUnit(units::quantity<unit::length> vesselLength,
142 boost::shared_ptr<VesselNetwork<DIM> > GenerateSingleVessel(units::quantity<unit::length> vesselLength,
144 unsigned divisions = 0,
unsigned axis = 2);
149 boost::shared_ptr<VesselNetwork<DIM> > GenerateOvalNetwork(units::quantity<unit::length> scaleFactor,
150 unsigned num_increments = 40,
151 double a_param = 0.5,
152 double b_param = 1.0);
156 boost::shared_ptr<VesselNetwork<DIM> > GenerateFromPart(boost::shared_ptr<
Part<DIM> > part);
161 boost::shared_ptr<VesselNetwork<DIM> > GenerateVoronoiNetwork(units::quantity<unit::length> cubeX,
162 units::quantity<unit::length> cubeY,
163 units::quantity<unit::length> cubeZ,
unsigned numPoints = 400);
168 void PatternUnitByTranslation(boost::shared_ptr<
VesselNetwork<DIM> > pInputUnit, std::vector<unsigned> numberOfUnits);
171 units::quantity<unit::length> radius,
172 units::quantity<unit::length> thickess,
173 double azimuthExtent,
181 void SetReferenceLengthScale(units::quantity<unit::length> rReferenceLength);
units::quantity< unit::length > mReferenceLength