31 class DetectorElementBase;
33 class ISurfaceMaterial;
36 class IVisualization3D;
53 public std::enable_shared_from_this<Surface> {
107 template <
class T,
typename... Args>
109 return std::shared_ptr<T>(
new T(std::forward<Args>(
args)...));
188 const Vector2D& lposition)
const = 0;
388 const Vector3D& direction)
const = 0;
408 std::ostream& sl)
const;
411 virtual std::string
name()
const = 0;
426 size_t lseg)
const = 0;