8#ifndef VOLUMEBUILDERSTYPES_HH
9#define VOLUMEBUILDERSTYPES_HH
10#include <G4ThreeVector.hh>
19#define ONCE_MUTABLE mutable
22 class G4MaterialPtrOrString;
125 return std::const_pointer_cast<std::remove_const_t<T> >(sp_const);
std::shared_ptr< T > shared_from_this()
A type-erased (data shared view) view of a builder or assembly, ie a "structure.".
Builder class for simple Box solids.
A solid buider class that just wrap an existing G4VSolid.
a non-fluent polymorphic class to access the derived solid-builder from a base reference: This gets u...
Builder class for RZ mult-plane defined solids.
A type-erased (data shared view) view of a builder or assembly, ie a "structure.".
A type-erased (data shared view) view of a builder or assembly, ie a "structure.".
VolumeBuilder: Common functionality for volume builder classes.
A polymorphic, type-erased "view" of any specialized builder.
std::shared_ptr< T > shared_mutable_this(const std::enable_shared_from_this< T > *obj)
SharedPtr< VolumeBuilderCore > VolumeBuilder
SharedPtr< AssemblyCore > Assembly
Pointer to Assembly type to hold Structures, ie other assemblies or buidlers.
SharedPtr< BoxBuilderCore > BoxBuilder
Shared pointer to _internals_::BoxBuilderCore.
SharedPtr< RZBuilderCore > RZBuilder
Shared pointer to _internals_::RZBuilderCore.
SharedPtr< StructureBuilderCore > StructureBuilder
std::vector< VolumeBuilder > BuilderViewList
a user type to hold many builders
std::vector< StructureBuilder > StructureViewList
a user type to hold many structures
SharedPtr< FromG4VSolidCore > FromG4VSolid
Shared pointer to _internals_::FromG4VSolidCore.
_internals_::StructureViewList StructureViewList
a user type to hold many structures
_internals_::BuilderViewList BuilderViewList
a user type to hold many builders