30 const std::shared_ptr<const CylinderBounds>& cBounds,
31 std::unique_ptr<SurfaceArray> surfaceArray,
double thickness,
32 std::unique_ptr<ApproachDescriptor> ades,
LayerType laytyp)
34 Layer(std::
move(surfaceArray), thickness, std::
move(ades), laytyp) {
36 auto cVolumeBounds = std::make_shared<const CylinderVolumeBounds>(
40 std::make_unique<AbstractVolume>(
m_transform, cVolumeBounds);
65 m_approachDescriptor.reset(
nullptr);
68 if (m_representingVolume !=
nullptr) {
70 const std::vector<std::shared_ptr<const BoundarySurfaceT<AbstractVolume>>>&
71 bSurfaces = m_representingVolume->boundarySurfaces();
74 std::vector<std::shared_ptr<const Surface>> aSurfaces;
77 bSurfaces.at(
tubeInnerCover)->surfaceRepresentation().getSharedPtr());
80 bSurfaces.at(
tubeOuterCover)->surfaceRepresentation().getSharedPtr());
82 m_approachDescriptor =
83 std::make_unique<const GenericApproachDescriptor>(
std::move(aSurfaces));
86 for (
auto& sfPtr : (m_approachDescriptor->containedSurfaces())) {
87 if (sfPtr !=
nullptr) {
88 auto& mutableSf = *(
const_cast<Surface*
>(sfPtr));
89 mutableSf.associateLayer(*
this);