Celeritas
0.5.0-56+6b053cd
|
Construct a universe as part of an ORANGE geometry. More...
#include <ProtoInterface.hh>
Public Types | |
Type aliases | |
using | SPConstObject = std::shared_ptr< ObjectInterface const > |
using | SPConstProto = std::shared_ptr< ProtoInterface const > |
using | VecProto = std::vector< ProtoInterface const * > |
using | ProtoBuilder = detail::ProtoBuilder |
Public Member Functions | |
virtual std::string_view | label () const =0 |
Short unique name of this object. | |
virtual SPConstObject | interior () const =0 |
Get the boundary of this universe as an object. | |
virtual VecProto | daughters () const =0 |
Get a non-owning set of all daughters referenced by this proto. | |
virtual void | build (ProtoBuilder &) const =0 |
Construct a universe input from this object. | |
virtual void | output (JsonPimpl *) const =0 |
Write the proto to a JSON object. | |
Protected Member Functions | |
ProtoInterface ()=default | |
virtual | ~ProtoInterface ()=default |
CELER_DEFAULT_COPY_MOVE (ProtoInterface) | |
Construct a universe as part of an ORANGE geometry.
Each Proto (for proto-universe) will result in a unique UniverseId and can be placed into multiple other universes. Each universe has:
The graph of Proto daughters must be acyclic.
|
protecteddefault |
Allow construction and assignment only through subclasses
|
protectedvirtualdefault |
Allow construction and assignment only through subclasses
|
protected |
Allow construction and assignment only through subclasses