DLG4::VolumeBuilders
A fluent interface for Geant4 geometry definition.
Loading...
Searching...
No Matches
Protected Member Functions | Friends | List of all members
IStructureBuilder Class Referenceabstract

#include <ISolidBuilder.hh>

Protected Member Functions

virtual G4VSolid * SolidConstructor (const G4String &name)=0
 
virtual ~IStructureBuilder ()=default
 
virtual SharedPtr< IStructureBuilderclone_impl () const =0
 
virtual StructureBuilder ToStructureView () const =0
 
virtual VolumeBuilder ToVolumeBuilder () const =0
 

Friends

class VolumeBuilderCore
 
class StructureBuilderCore
 
template<typename T >
class StructureBuilderBase
 
class AssemblyCore
 

Detailed Description

a non-fluent polymorphic class to access the derived solid-builder from a base reference: This gets used by VolumeBuiderReference to store pointers to derived methods.

a non-fluent polymorphic class to access the derived solid-builder from a base reference: This gets used by VolumeBuiderReference to store pointers to derived methods.

Definition at line 36 of file ISolidBuilder.hh.

Constructor & Destructor Documentation

◆ ~IStructureBuilder()

virtual ~IStructureBuilder ( )
protectedvirtualdefault

Member Function Documentation

◆ clone_impl()

virtual SharedPtr< IStructureBuilder > clone_impl ( ) const
protectedpure virtual

◆ SolidConstructor()

virtual G4VSolid * SolidConstructor ( const G4String &  name)
protectedpure virtual

◆ ToStructureView()

virtual StructureBuilder ToStructureView ( ) const
protectedpure virtual

Implemented in StructureBuilderCore.

◆ ToVolumeBuilder()

virtual VolumeBuilder ToVolumeBuilder ( ) const
protectedpure virtual

Implemented in VolumeBuilderCore.

Friends And Related Symbol Documentation

◆ AssemblyCore

friend class AssemblyCore
friend

Definition at line 42 of file ISolidBuilder.hh.

◆ StructureBuilderBase

template<typename T >
friend class StructureBuilderBase
friend

Definition at line 41 of file ISolidBuilder.hh.

◆ StructureBuilderCore

friend class StructureBuilderCore
friend

A type-erased (data shared view) view of a builder or assembly, ie a "structure.".

Can hold other structures, creating placement hierarchies. Behaves like a buidler, but only for logical volume properties and placement related commands. You can set VisAtt on a structure, and can set offsets and rotations of the whole structure for placement.

While this base view only supports limited methods, it is fully polymorphic and builder objects internally can trigger their full build chain.

This derived clas really exists for parallelism with VolumeBuilderCore.

See also
VolumeBuilder for inherited methods.

Definition at line 39 of file ISolidBuilder.hh.

◆ VolumeBuilderCore

friend class VolumeBuilderCore
friend

A polymorphic, type-erased "view" of any specialized builder.

Use it to assign a specialized builder to a generic builder. But you don't use it directly. It has no direct public ctors or factories, but BuilderView(your_other_builder_object) constructs it as i_shared_ptr<VolumeBuilderCore> ( pointer-wrapped builder). Or pass your builder to something expecting a BuilderView, like ex: a std::vector<BuilderViewr>, aka a BuilderViewList.

See also
VolumeBuilder for inherited methods.

Definition at line 38 of file ISolidBuilder.hh.


The documentation for this class was generated from the following file: