2#ifndef STRUCTUREBUILDER_HPP
3#define STRUCTUREBUILDER_HPP
55 std::enable_if_t<std::is_base_of_v<IStructureBuilder, T>,
59 G4VSolid *SolidConstructor(
const G4String &name)
override {
60 throw std::runtime_error(
61 "Error in StructureBuilderReference::SolidConstructor(const G4String &name) "
62 + this->builder_configs_->name +
" \n" +
63 "SolidConstructor(const G4String &name) is not implemented.");
71 SharedPtr<IStructureBuilder>
clone_impl()
const override;
A type-erased (data shared view) view of a builder or assembly, ie a "structure.".
SharedPtr< IStructureBuilder > clone_impl() const override
StructureBuilderReference & operator=(const StructureBuilderReference &other)=delete
StructureView ToStructureView() const override
A type-erased (data shared view) view of a builder or assembly, ie a "structure.".
friend class StructureBuilderReference
VolumeBuilder: Common functionality for volume builder classes.
A wrapper for std::shared_ptr that allows and facilitates many implicit(i) type conversions.
SharedPtr< StructureBuilderReference > StructureView
Common interface for all structure types.