23 const std::shared_ptr<const CylinderBounds>& cBounds,
24 std::unique_ptr<SurfaceArray> surfaceArray,
double thickness,
25 std::unique_ptr<ApproachDescriptor> ades,
LayerType laytyp)
27 Layer(std::move(surfaceArray), thickness, std::move(ades), laytyp) {
29 auto cVolumeBounds = std::make_shared<const CylinderVolumeBounds>(
33 std::make_unique<AbstractVolume>(
m_transform, cVolumeBounds);
58 m_approachDescriptor.reset(
nullptr);
61 if (m_representingVolume !=
nullptr) {
63 const std::vector<std::shared_ptr<const BoundarySurfaceT<AbstractVolume>>>&
64 bSurfaces = m_representingVolume->boundarySurfaces();
67 std::vector<std::shared_ptr<const Surface>> aSurfaces;
70 bSurfaces.at(
tubeInnerCover)->surfaceRepresentation().getSharedPtr());
73 bSurfaces.at(
tubeOuterCover)->surfaceRepresentation().getSharedPtr());
75 m_approachDescriptor =
76 std::make_unique<const GenericApproachDescriptor>(std::move(aSurfaces));
79 for (
auto& sfPtr : (m_approachDescriptor->containedSurfaces())) {
80 if (sfPtr !=
nullptr) {
81 auto& mutableSf = *(
const_cast<Surface*
>(sfPtr));
82 mutableSf.associateLayer(*
this);