Celeritas 0.7.0-dev.264+develop.12c52268
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::orangeinp::ProtoInterface Class Referenceabstract

Construct a universe as part of an ORANGE geometry. More...

#include <ProtoInterface.hh>

Inheritance diagram for celeritas::orangeinp::ProtoInterface:
Inheritance graph
[legend]

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 (ProtoInterface const &)=default
 
ProtoInterfaceoperator= (ProtoInterface const &)=default
 
 ProtoInterface (ProtoInterface &&)=default
 
ProtoInterfaceoperator= (ProtoInterface &&)=default
 

Detailed Description

Construct a universe as part of an ORANGE geometry.

Each Proto (for proto-universe) will result in a unique UnivId and can be placed into multiple other universes. Each universe has:

The graph of Proto daughters must be acyclic.

Constructor & Destructor Documentation

◆ ProtoInterface() [1/3]

celeritas::orangeinp::ProtoInterface::ProtoInterface ( )
protecteddefault

Allow construction and assignment only through subclasses

◆ ~ProtoInterface()

celeritas::orangeinp::ProtoInterface::~ProtoInterface ( )
protecteddefault

Allow construction and assignment only through subclasses

◆ ProtoInterface() [2/3]

celeritas::orangeinp::ProtoInterface::ProtoInterface ( ProtoInterface const )
protecteddefault

Allow construction and assignment only through subclasses

◆ ProtoInterface() [3/3]

celeritas::orangeinp::ProtoInterface::ProtoInterface ( ProtoInterface &&  )
protecteddefault

Allow construction and assignment only through subclasses

Member Function Documentation

◆ build()

virtual void celeritas::orangeinp::ProtoInterface::build ( ProtoBuilder &  ) const
pure virtual

Construct a universe input from this object.

Implemented in celeritas::orangeinp::UnitProto.

◆ daughters()

virtual VecProto celeritas::orangeinp::ProtoInterface::daughters ( ) const
pure virtual

Get a non-owning set of all daughters referenced by this proto.

Implemented in celeritas::orangeinp::UnitProto.

◆ interior()

virtual SPConstObject celeritas::orangeinp::ProtoInterface::interior ( ) const
pure virtual

Get the boundary of this universe as an object.

Implemented in celeritas::orangeinp::UnitProto.

◆ label()

virtual std::string_view celeritas::orangeinp::ProtoInterface::label ( ) const
pure virtual

Short unique name of this object.

Implemented in celeritas::orangeinp::UnitProto.

◆ operator=() [1/2]

ProtoInterface & celeritas::orangeinp::ProtoInterface::operator= ( ProtoInterface &&  )
protecteddefault

Allow construction and assignment only through subclasses

◆ operator=() [2/2]

ProtoInterface & celeritas::orangeinp::ProtoInterface::operator= ( ProtoInterface const )
protecteddefault

Allow construction and assignment only through subclasses

◆ output()

virtual void celeritas::orangeinp::ProtoInterface::output ( JsonPimpl ) const
pure virtual

Write the proto to a JSON object.

Implemented in celeritas::orangeinp::UnitProto.


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