25 const std::shared_ptr<const Transform3D>&
transform,
26 const std::shared_ptr<const CylinderBounds>& cBounds,
27 std::unique_ptr<SurfaceArray> surfaceArray,
double thickness,
28 std::unique_ptr<ApproachDescriptor> ades,
LayerType laytyp)
30 Layer(std::move(surfaceArray), thickness, std::move(ades), laytyp) {
32 auto cVolumeBounds = std::make_shared<const CylinderVolumeBounds>(
36 std::make_unique<AbstractVolume>(
m_transform, cVolumeBounds);
61 m_approachDescriptor.reset(
nullptr);
64 if (m_representingVolume !=
nullptr) {
66 const std::vector<std::shared_ptr<const BoundarySurfaceT<AbstractVolume>>>&
67 bSurfaces = m_representingVolume->boundarySurfaces();
70 std::vector<std::shared_ptr<const Surface>> aSurfaces;
73 bSurfaces.at(
tubeInnerCover)->surfaceRepresentation().getSharedPtr());
76 bSurfaces.at(
tubeOuterCover)->surfaceRepresentation().getSharedPtr());
78 m_approachDescriptor =
79 std::make_unique<const GenericApproachDescriptor>(std::move(aSurfaces));
82 for (
auto& sfPtr : (m_approachDescriptor->containedSurfaces())) {
83 if (sfPtr !=
nullptr) {
84 auto& mutableSf = *(
const_cast<Surface*
>(sfPtr));
85 mutableSf.associateLayer(*
this);