28 class ISurfaceMaterial;
31 namespace Experimental {
33 struct NavigationState;
43 class Portal :
public std::enable_shared_from_this<Portal> {
57 std::array<std::vector<std::shared_ptr<DetectorVolume>>, 2
u>;
63 static std::shared_ptr<Portal>
makeShared(std::shared_ptr<Surface> surface);
118 void fuse(std::shared_ptr<Portal>& other) noexcept(
false);
129 std::vector<std::shared_ptr<DetectorVolume>> attachedVolumes);
139 std::vector<std::shared_ptr<DetectorVolume>>
140 attachedVolumes) noexcept(
false);