Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
celeritas::orangeinp::JoinObjects< Op > Class Template Reference

Join all of the given objects with an intersection or union. More...

#include <CsgObject.hh>

Inheritance diagram for celeritas::orangeinp::JoinObjects< Op >:
Inheritance graph
[legend]

Public Types

Type aliases
using VecObject = std::vector< SPConstObject >
 
- Public Types inherited from celeritas::orangeinp::ObjectInterface
using SPConstObject = std::shared_ptr< ObjectInterface const >
 
using VolumeBuilder = detail::VolumeBuilder
 

Public Member Functions

 JoinObjects (std::string &&label, VecObject &&objects)
 Construct with a name and a vector of objects.
 
VecObject constdaughters () const
 Access the vector of daughter objects.
 
std::string_view label () const final
 Get the user-provided label.
 
NodeId build (VolumeBuilder &) const final
 Construct a volume from the joined objets.
 
void output (JsonPimpl *) const final
 Output to JSON.
 
- Public Member Functions inherited from celeritas::orangeinp::ObjectInterface
virtual ~ObjectInterface ()=0
 Anchored default destructor.
 

Static Public Member Functions

static SPConstObject or_object (std::string &&label, VecObject &&objects)
 Construct a joined object if nontrivial, or return the original.
 

Static Public Attributes

static constexpr OperatorToken op_token = Op
 Operation joining the daughters ("and" or "or")
 

Additional Inherited Members

- Protected Member Functions inherited from celeritas::orangeinp::ObjectInterface
 CELER_DEFAULT_COPY_MOVE (ObjectInterface)
 

Detailed Description

template<OperatorToken Op>
class celeritas::orangeinp::JoinObjects< Op >

Join all of the given objects with an intersection or union.

Member Function Documentation

◆ build()

template<OperatorToken Op>
NodeId celeritas::orangeinp::JoinObjects< Op >::build ( VolumeBuilder &  vb) const
finalvirtual

Construct a volume from the joined objets.

Implements celeritas::orangeinp::ObjectInterface.

◆ label()

template<OperatorToken Op>
std::string_view celeritas::orangeinp::JoinObjects< Op >::label ( ) const
inlinefinalvirtual

Get the user-provided label.

Implements celeritas::orangeinp::ObjectInterface.

◆ or_object()

template<OperatorToken Op>
auto celeritas::orangeinp::JoinObjects< Op >::or_object ( std::string &&  label,
VecObject &&  objects 
)
static

Construct a joined object if nontrivial, or return the original.

This should only be called if the label of the resulting object is not important.

◆ output()

template<OperatorToken Op>
void celeritas::orangeinp::JoinObjects< Op >::output ( JsonPimpl j) const
finalvirtual

Output to JSON.

Implements celeritas::orangeinp::ObjectInterface.


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