Celeritas  0.5.0-86+4a8eea4
Public Member Functions | Static Public Member Functions | List of all members
celeritas::orangeinp::PolyCone Class Referencefinal

A series of stacked cones or cylinders or combination of both. More...

#include <PolySolid.hh>

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

Public Member Functions

 PolyCone (std::string &&label, PolySegments &&segments, SolidEnclosedAngle &&enclosed)
 Build with label, axial segments, optional restriction.
 
NodeId build (VolumeBuilder &) const final
 Construct a volume from this shape. More...
 
void output (JsonPimpl *) const final
 Write the shape to JSON.
 
- Public Member Functions inherited from celeritas::orangeinp::PolySolidBase
 ~PolySolidBase () override
 Anchored default virtual destructor.
 
std::string_view label () const final
 Get the user-provided label.
 
PolySegments const & segments () const
 Axial segments.
 
SolidEnclosedAngle enclosed_angle () const
 Optional azimuthal angular restriction.
 
- Public Member Functions inherited from celeritas::orangeinp::ObjectInterface
virtual ~ObjectInterface ()=0
 Anchored default destructor.
 

Static Public Member Functions

static SPConstObject or_solid (std::string &&label, PolySegments &&segments, SolidEnclosedAngle &&enclosed)
 Return a polycone or a simplified version for only a single segment.
 

Additional Inherited Members

- Public Types inherited from celeritas::orangeinp::ObjectInterface
using SPConstObject = std::shared_ptr< ObjectInterface const >
 
using VolumeBuilder = detail::VolumeBuilder
 
- Protected Member Functions inherited from celeritas::orangeinp::PolySolidBase
 PolySolidBase (std::string &&label, PolySegments &&segments, SolidEnclosedAngle &&enclosed)
 Build with label, axial segments, optional restriction.
 
 CELER_DEFAULT_COPY_MOVE (PolySolidBase)
 
- Protected Member Functions inherited from celeritas::orangeinp::ObjectInterface
 ObjectInterface ()=default
 
 CELER_DEFAULT_COPY_MOVE (ObjectInterface)
 

Detailed Description

A series of stacked cones or cylinders or combination of both.

Member Function Documentation

◆ build()

NodeId celeritas::orangeinp::PolyCone::build ( VolumeBuilder &  vb) const
finalvirtual

Construct a volume from this shape.

Todo:
After adding short-circuit logic to evaluator, add "acceleration" structures here, e.g. "inside(inner cylinder) || [inside(outer cylinder) && (original union)]"

Implements celeritas::orangeinp::ObjectInterface.


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