CSGBase creates an internal representation of a Constructive Solid Geometry (CSG) model. More...
#include <CSGBase.h>
Public Member Functions | |
| CSGBase () | |
| Default constructor. | |
| CSGBase (const CSGBase &other_base) | |
| Copy constructor. | |
| ~CSGBase () | |
| Destructor. | |
| std::unique_ptr< CSGBase > | clone () const |
| Create a deep copy of this CSGBase instance. | |
| const CSGSurface & | addSurface (std::unique_ptr< CSGSurface > surf) |
| add a unique surface pointer to this base instance | |
| void | deleteSurface (const CSGSurface &surface) |
| Remove a Surface object passed in by reference from the stored surface list. | |
| std::vector< std::reference_wrapper< const CSGSurface > > | getAllSurfaces () const |
| Get all surface objects. | |
| const CSGSurface & | getSurfaceByName (const std::string &name) const |
| Get a Surface object by name. | |
| bool | hasSurface (const std::string &name) const |
| Check if a surface with given name exists in CSGBase object. | |
| void | renameSurface (const CSGSurface &surface, const std::string &name) |
| rename the specified surface | |
| const CSGCell & | createCell (const std::string &name, const std::string &mat_name, const CSGRegion ®ion, const CSGUniverse *add_to_univ=nullptr) |
| Create a Material Cell object. | |
| const CSGCell & | createCell (const std::string &name, const CSGRegion ®ion, const CSGUniverse *add_to_univ=nullptr) |
| Create a Void Cell object. | |
| const CSGCell & | createCell (const std::string &name, const CSGUniverse &fill_univ, const CSGRegion ®ion, const CSGUniverse *add_to_univ=nullptr) |
| Create a Universe Cell object. | |
| const CSGCell & | createCell (const std::string &name, const CSGLattice &fill_lattice, const CSGRegion ®ion, const CSGUniverse *add_to_univ=nullptr) |
| Create a Lattice Cell object. | |
| void | deleteCell (const CSGCell &cell) |
| Remove a Cell object passed in by reference from the stored cell list. | |
| std::vector< std::reference_wrapper< const CSGCell > > | getAllCells () const |
| Get all cell objects. | |
| const CSGCell & | getCellByName (const std::string &name) const |
| Get a Cell object by name. | |
| bool | hasCell (const std::string &name) const |
| Check if a cell with given name exists in CSGBase object. | |
| void | renameCell (const CSGCell &cell, const std::string &name) |
| rename the specified cell | |
| void | updateCellRegion (const CSGCell &cell, const CSGRegion ®ion) |
| change the region of the specified cell | |
| void | resetCellFill (const CSGCell &cell) |
| reset the fill of the specified cell to void | |
| void | updateCellFill (const CSGCell &cell, const std::string &mat_name) |
| change the fill of the specified cell to a material fill | |
| void | updateCellFill (const CSGCell &cell, const CSGUniverse *univ) |
| change the fill of the specified cell to a universe fill | |
| void | updateCellFill (const CSGCell &cell, const CSGLattice *lattice) |
| change the fill of the specified cell to a lattice fill | |
| const CSGUniverse & | getRootUniverse () const |
| Get the Root Universe object. | |
| void | renameRootUniverse (const std::string &name) |
| rename the root universe for this instance (default is ROOT_UNIVERSE) | |
| void | renameUniverse (const CSGUniverse &universe, const std::string &name) |
| rename the specified universe | |
| const CSGUniverse & | createUniverse (const std::string &name) |
| Create an empty Universe object. | |
| const CSGUniverse & | createUniverse (const std::string &name, std::vector< std::reference_wrapper< const CSGCell > > &cells) |
| Create a Universe object from list of cells. | |
| void | deleteUniverse (const CSGUniverse &univ) |
| Remove a Universe object passed in by reference from the stored universe list. | |
| void | addCellToUniverse (const CSGUniverse &universe, const CSGCell &cell) |
| Add a cell to an existing universe. | |
| void | addCellsToUniverse (const CSGUniverse &universe, std::vector< std::reference_wrapper< const CSGCell > > &cells) |
| Add a list of cells to an existing universe. | |
| void | removeCellFromUniverse (const CSGUniverse &universe, const CSGCell &cell) |
| Remove a cell from an existing universe. | |
| void | removeCellsFromUniverse (const CSGUniverse &universe, std::vector< std::reference_wrapper< const CSGCell > > &cells) |
| Remove a list of cells from an existing universe. | |
| std::vector< std::reference_wrapper< const CSGUniverse > > | getAllUniverses () const |
| Get all universe objects. | |
| const CSGUniverse & | getUniverseByName (const std::string &name) |
| Get a universe object by name. | |
| bool | hasUniverse (const std::string &name) const |
| Check if a universe with given name exists in CSGBase object. | |
| template<typename LatticeType = CSGLattice> | |
| const LatticeType & | addLattice (std::unique_ptr< LatticeType > lattice) |
| add a unique lattice pointer to this base instance; universes that make the lattice must already be a part of this CSGBase instance. | |
| void | deleteLattice (const CSGLattice &lattice) |
| Remove a Lattice object passed in by reference from the stored lattice list. | |
| void | setUniverseAtLatticeIndex (const CSGLattice &lattice, const CSGUniverse &universe, std::pair< int, int > index) |
| set location in the lattice to be the provided universe | |
| void | setLatticeUniverses (const CSGLattice &lattice, std::vector< std::vector< std::reference_wrapper< const CSGUniverse > > > &universes) |
| Set provided universes as the layout of the lattice. | |
| void | renameLattice (const CSGLattice &lattice, const std::string &name) |
| rename the lattice | |
| void | setLatticeOuter (const CSGLattice &lattice, const std::string &outer_name) |
| Set the outer fill for the lattice to the material name provided. | |
| void | setLatticeOuter (const CSGLattice &lattice, const CSGUniverse &outer_univ) |
| Set the outer fill for the lattice to the universe provided. | |
| void | resetLatticeOuter (const CSGLattice &lattice) |
| reset the outer fill for the lattice to VOID | |
| std::vector< std::reference_wrapper< const CSGLattice > > | getAllLattices () const |
| Get all lattice objects. | |
| template<typename LatticeType = CSGLattice> | |
| const LatticeType & | getLatticeByName (const std::string &name) |
| Get a lattice object of the specified type by name. | |
| bool | hasLattice (const std::string &name) const |
| Check if a lattice with given name exists in CSGBase object. | |
| template<typename T > | |
| const T & | addEngUnit (std::unique_ptr< T > unit, const CSGUniverse *add_to_univ=nullptr) |
| Add an engineering unit (surface-, cell-, or universe-like object) to this CSGBase. | |
| void | deleteEngUnit (const CSGEngUnit &unit) |
| Remove an engineering unit passed in by reference from the stored engineering unit list. | |
| template<typename EngUnitType = CSGEngUnit> | |
| const EngUnitType & | getEngUnitByName (const std::string &name) const |
| Get a engineering unit object of the specified type by name. | |
| bool | hasEngUnit (const std::string &name) const |
| Check if an engineeering unit with given name exists in CSGBase object. | |
| void | renameEngUnit (const CSGEngUnit &unit, const std::string &name) |
| Rename the specified engineering unit. | |
| std::vector< std::reference_wrapper< const CSGEngUnit > > | getAllEngUnits () const |
| Get all engineering units of all types in CSGBase. | |
| std::vector< std::reference_wrapper< const CSGSurfaceEngUnit > > | getAllSurfaceEngUnits () const |
| Get all surface-like engineering units in CSGBase. | |
| std::vector< std::reference_wrapper< const CSGCellEngUnit > > | getAllCellEngUnits () const |
| Get all cell-like engineering units in CSGBase. | |
| std::vector< std::reference_wrapper< const CSGUniverseEngUnit > > | getAllUniverseEngUnits () const |
| Get all universe-like engineering units. | |
| CSGRegion | expandEngUnit (const CSGSurfaceEngUnit &unit) |
| Expand a surface-like engineering unit into basic CSGSurface(s) and return the CSGRegion representing the EngUnit's geometry. | |
| const CSGCell & | expandEngUnit (const CSGCellEngUnit &unit) |
| Expand a cell-like engineering unit into a basic CSGCell. | |
| const CSGUniverse & | expandEngUnit (const CSGUniverseEngUnit &unit) |
| Expand a universe-like engineering unit into a basic CSGUniverse. | |
| void | expandAllEngUnits () |
| Expand all registered engineering units into basic CSG objects. | |
| bool | areUniversesLinked () const |
| Check whether all universes and cells in this CSGBase are reachable from the root universe through the cell/fill hierarchy. | |
| void | joinOtherBase (std::unique_ptr< CSGBase > base, const bool ignore_identical_components) |
| Join another CSGBase object to this one. | |
| void | joinOtherBase (std::unique_ptr< CSGBase > base, const bool ignore_identical_components, const std::string &new_root_name_join) |
| Join another CSGBase object to this one. | |
| void | joinOtherBase (std::unique_ptr< CSGBase > base, const bool ignore_identical_components, const std::string &new_root_name_base, const std::string &new_root_name_join) |
| Join another CSGBase object to this one. | |
| nlohmann::json | generateOutput () const |
| generate the JSON representation output for the CSG object | |
| bool | operator== (const CSGBase &other) const |
| Operator overload for checking if two CSGBase objects are equal. | |
| bool | operator!= (const CSGBase &other) const |
| Operator overload for checking if two CSGBase objects are not equal. | |
| void | addTransformation (const CSGObjectVariant &csg_object, TransformationType type, const std::tuple< Real, Real, Real > &values) |
| Apply a transformation to a CSG object. | |
| void | addTransformation (const CSGEngUnit &unit, TransformationType type, const std::tuple< Real, Real, Real > &values) |
| Apply a transformation to a CSGEngUnit object. | |
| void | applyTranslation (const CSGObjectVariant &csg_object, const std::tuple< Real, Real, Real > &distances) |
| Apply a translation to a CSG object in the specified x, y, and z directions. | |
| void | applyTranslation (const CSGEngUnit &unit, const std::tuple< Real, Real, Real > &distances) |
| Apply a translation to a CSGEngUnit object in the specified x, y, and z directions. | |
| void | applyRotation (const CSGObjectVariant &csg_object, const std::tuple< Real, Real, Real > &angles) |
| Apply a rotation to a CSG object using (phi, theta, psi) angle notation (in degrees). | |
| void | applyRotation (const CSGEngUnit &unit, const std::tuple< Real, Real, Real > &angles) |
| Apply a rotation to a CSG object using (phi, theta, psi) angle notation (in degrees). | |
| void | applyAxisRotation (const CSGObjectVariant &csg_object, RotationAxisType axis, const Real angle) |
| Apply a rotation to a CSG object about a specified axis (X, Y, Z). | |
| void | applyAxisRotation (const CSGEngUnit &unit, RotationAxisType axis, const Real angle) |
| Apply a rotation to a CSGEngUnit object about a specified axis (X, Y, Z). | |
| void | applyScaling (const CSGObjectVariant &csg_object, const std::tuple< Real, Real, Real > &values) |
| Scale a CSG object in the specified x, y, and z directions. | |
| void | applyScaling (const CSGEngUnit &unit, const std::tuple< Real, Real, Real > &values) |
| Scale a CSGEngUnit object in the specified x, y, and z directions. | |
Private Member Functions | |
| CSGSurface & | getSurface (const std::string &name) |
| Get a Surface object by name. | |
| void | expandAllEngUnitsCycle (std::set< std::set< std::string > > &all_type_sets) |
| Recursive implementation of expandAllEngUnits(). | |
| void | checkUniverseLinking () const |
| Check universes linked to root universe match universes defined in _universe_list. | |
| void | getLinkedUniverses (const CSGUniverse &univ, std::vector< std::string > &linked_universe_names, std::vector< std::string > &linked_cell_names) const |
| Recursive method to retrieve all universes and cells linked to current universe. | |
| const CSGSurfaceList & | getSurfaceList () const |
| Get a const reference to the CSGSurfaceList object. | |
| CSGSurfaceList & | getSurfaceList () |
| Get a non-const reference to the CSGSurfaceList object. | |
| const CSGCellList & | getCellList () const |
| Get a const reference to the CSGCellList object. | |
| CSGCellList & | getCellList () |
| Get a non-const reference to the CSGCellList object. | |
| const CSGUniverseList & | getUniverseList () const |
| Get a const reference to the CSGUniverseList object. | |
| CSGUniverseList & | getUniverseList () |
| Get a non-const reference to the CSGUniverseList object. | |
| const CSGLatticeList & | getLatticeList () const |
| Get a const reference to the CSGLatticeList object. | |
| CSGLatticeList & | getLatticeList () |
| Get the CSGLatticeList object. | |
| void | updateIncomingCSGReferences (CSGBase &incoming_base) |
| update references of incoming CSGbase to point to those of existing CSGBase object. | |
| void | replaceSurfaceRefsByName (std::map< std::string, std::reference_wrapper< const CSGSurface > > &identical_surface_refs, CSGBase &base) |
| update surface references of incoming CSGBase to point to those of existing CSGBase object based on CSGSurface name. | |
| void | replaceCellRefsByName (std::map< std::string, std::reference_wrapper< const CSGCell > > &identical_cell_refs, CSGBase &base) |
| update cell references of incoming CSGbase to point to those of existing CSGBase object based on CSGCell name. | |
| void | replaceUniverseRefsByName (std::map< std::string, std::reference_wrapper< const CSGUniverse > > &identical_universe_refs, CSGBase &base) |
| update universe references of incoming CSGbase to point to those of existing CSGBase object based on CSGUniverse name. | |
| void | replaceLatticeRefsByName (std::map< std::string, std::reference_wrapper< const CSGLattice > > &identical_lattice_refs, CSGBase &base) |
| update lattice references of incoming CSGbase to point to those of existing CSGBase object based on CSGLattice name. | |
| const CSGEngUnitList & | getEngUnitList () const |
| Get a const reference to the CSGEngUnitList object. | |
| void | joinSurfaceList (CSGSurfaceList &surf_list, const bool ignore_identical_surfaces) |
| join a separate CSGSurfaceList object to this one | |
| void | joinCellList (CSGCellList &cell_list, const bool ignore_identical_cells) |
| join a separate CSGCellList object to this one | |
| void | joinLatticeList (CSGLatticeList &lattice_list, const bool ignore_identical_lattices) |
| join a separate CSGLatticeList object to this one | |
| void | joinUniverseList (CSGUniverseList &univ_list, const bool ignore_identical_universes) |
| join a separate CSGUniverseList object to this one; root universes from univ_list will be combined into this root universe | |
| void | joinUniverseList (CSGUniverseList &univ_list, const bool ignore_identical_universes, const std::string &new_root_name_incoming) |
| join a separate CSGUniverseList object to this one; the incoming root universe will be moved to a new universe of the new name specified. | |
| void | joinUniverseList (CSGUniverseList &univ_list, const bool ignore_identical_universes, const std::string &new_root_name_base, const std::string &new_root_name_incoming) |
| join a separate CSGUniverseList object to this one; both this root universe and the incoming root universe will be maintained as separate universes of the specified names. | |
| void | rebuildEngUnitList () |
| rebuilds the list of raw pointers to engineering units by iterating through the surface, cell, and universe lists. | |
| void | replaceUniverseRefs (const CSGUniverse &old_univ, const CSGUniverse &new_univ) |
| Replace all cell fills and lattice elements/outers referencing old_univ with new_univ. | |
| void | replaceCellRefs (const CSGCell &old_cell, const CSGCell &new_cell) |
| Replace all old_cell references with new_cell across all universes in the base. | |
| void | replaceSurfaceRefsWithRegion (const CSGSurface &old_surf, const CSGRegion &sub_region) |
| Replace all region occurrences of old_surf with the tokens from sub_region across all cells in the base. | |
| void | checkRegionSurfaces (const CSGRegion ®ion) const |
| check that surfaces used in this region are a part of this CSGBase instance | |
| bool | checkSurfaceInBase (const CSGSurface &surface) const |
| check that surface being accessed is a part of this CSGBase instance | |
| bool | checkCellInBase (const CSGCell &cell) const |
| check that cell being accessed is a part of this CSGBase instance | |
| bool | checkEngUnitInBase (const CSGEngUnit &unit) const |
| check that engineering unit being accessed is a part of this CSGBase instance | |
| bool | checkUniverseInBase (const CSGUniverse &universe) const |
| check that universe being accessed is a part of this CSGBase instance | |
| bool | checkLatticeInBase (const CSGLattice &lattice) const |
| check that lattice being accessed is a part of this CSGBase instance | |
| void | prepareSurfaceDeletion (const CSGSurface &surface) const |
| error if surface is referenced in any cell region | |
| void | prepareCellDeletion (const CSGCell &cell) |
| warn and remove cell from any universe that contains it | |
| void | prepareUniverseDeletion (const CSGUniverse &universe) const |
| error if universe is the root, used in any lattice, or used as a cell fill | |
| const CSGSurfaceEngUnit * | surfaceToEngUnit (const CSGSurface &surf) const |
| Returns the CSGSurfaceEngUnit pointer if surf is an eng unit, nullptr otherwise. | |
| const CSGCellEngUnit * | cellToEngUnit (const CSGCell &cell) const |
| Returns the CSGCellEngUnit pointer if cell is an eng unit, nullptr otherwise. | |
| const CSGUniverseEngUnit * | universeToEngUnit (const CSGUniverse &univ) const |
| Returns the CSGUniverseEngUnit pointer if univ is an eng unit, nullptr otherwise. | |
| const CSGCell & | addCellToList (const CSGCell &cell) |
| Add a new cell to the cell list based on a cell reference. | |
| const CSGUniverse & | addUniverseToList (const CSGUniverse &univ) |
| Add a new universe to the universe list based on a universe reference. | |
| const CSGLattice & | addLatticeToList (const CSGLattice &lattice) |
| Add a new lattice to the lattice list based on a lattice reference. | |
| FRIEND_TEST (CSGBaseTest, testCheckRegionSurfaces) | |
| Friends for unit testing. | |
| FRIEND_TEST (CSGBaseTest, testAddGetSurface) | |
| FRIEND_TEST (CSGBaseTest, testUniverseLinking) | |
| FRIEND_TEST (CSGBaseTest, testEngUnitLinking) | |
| FRIEND_TEST (CSGBaseTest, testCellEngUnitAddErrors) | |
| FRIEND_TEST (CSGBaseTest, testUnivEngUnitAddErrors) | |
Private Attributes | |
| CSGSurfaceList | _surface_list |
| List of surfaces associated with CSG object. | |
| CSGCellList | _cell_list |
| List of cells associated with CSG object. | |
| CSGUniverseList | _universe_list |
| List of universes associated with CSG object. | |
| CSGLatticeList | _lattice_list |
| List of lattices associated with CSG object. | |
| CSGEngUnitList | _eng_unit_list |
| Container for all associated engineering units. | |
| CSG::CSGBase::CSGBase | ( | ) |
Default constructor.
Definition at line 17 of file CSGBase.C.
| CSG::CSGBase::CSGBase | ( | const CSGBase & | other_base | ) |
Copy constructor.
Definition at line 25 of file CSGBase.C.
| void CSG::CSGBase::addCellsToUniverse | ( | const CSGUniverse & | universe, |
| std::vector< std::reference_wrapper< const CSGCell > > & | cells | ||
| ) |
Add a list of cells to an existing universe.
| universe | universe to which to add the cells |
| cells | list of references to cells to add |
Definition at line 529 of file CSGBase.C.
Referenced by createUniverse().
Add a new cell to the cell list based on a cell reference.
This method is called by the copy constructor of CSGBase
| cell | reference to CSGCell that should be added to cell list |
Definition at line 118 of file CSGBase.C.
Referenced by addUniverseToList(), and CSGBase().
| void CSG::CSGBase::addCellToUniverse | ( | const CSGUniverse & | universe, |
| const CSGCell & | cell | ||
| ) |
Add a cell to an existing universe.
| universe | universe to which to add the cell |
| cell | cell to add |
Definition at line 507 of file CSGBase.C.
Referenced by addCellsToUniverse(), addEngUnit(), createCell(), createCell(), createCell(), createCell(), and CSGBase().
|
inline |
Add an engineering unit (surface-, cell-, or universe-like object) to this CSGBase.
| T | a type derived from CSGSurfaceEngUnit, CSGCellEngUnit, or CSGUniverseEngUnit |
| unit | unique_ptr to the engineering unit to register |
| add_to_univ | optional pointer to a CSGUniverse object to which a CSGCellEngUnit should be added. If not specified, the CSGCellEngUnit will be added to the root universe. For other CSGEngUnit types, this will be ignored. This universe cannot be a CSGUniverseEngUnit. |
Definition at line 534 of file CSGBase.h.
Referenced by CSGBase().
|
inline |
add a unique lattice pointer to this base instance; universes that make the lattice must already be a part of this CSGBase instance.
| lattice | pointer to lattice to add |
Definition at line 393 of file CSGBase.h.
Referenced by addLatticeToList().
|
private |
Add a new lattice to the lattice list based on a lattice reference.
This method is called by the copy constructor of CSGBase
| lattice | reference to CSGLattice that should be added to universe list |
Definition at line 184 of file CSGBase.C.
Referenced by addCellToList(), and CSGBase().
| const CSGSurface & CSG::CSGBase::addSurface | ( | std::unique_ptr< CSGSurface > | surf | ) |
add a unique surface pointer to this base instance
| surf | pointer to surface to add |
Definition at line 78 of file CSGBase.C.
|
inline |
Apply a transformation to a CSGEngUnit object.
| unit | The CSGEngUnit object to transform (CSGEngUnit, CSGSurfaceEngUnit, CSGCellEngUnit, CSGUniverseEngUnit, or any derived type) |
| type | The type of transformation to apply (TRANSLATION, ROTATION, SCALE) |
| values | tuple of transformation values (3 values for any transformation type) |
Definition at line 802 of file CSGBase.h.
| void CSG::CSGBase::addTransformation | ( | const CSGObjectVariant & | csg_object, |
| TransformationType | type, | ||
| const std::tuple< Real, Real, Real > & | values | ||
| ) |
Apply a transformation to a CSG object.
| csg_object | The CSG object to transform (Surface, Cell, Universe, Region, or Lattice) |
| type | The type of transformation to apply (TRANSLATION, ROTATION, SCALE) |
| values | tuple of transformation values (3 values for any transformation type) |
Definition at line 635 of file CSGBase.C.
Referenced by addTransformation(), addTransformation(), applyAxisRotation(), applyRotation(), applyRotation(), applyScaling(), applyScaling(), applyTranslation(), and applyTranslation().
|
private |
Add a new universe to the universe list based on a universe reference.
This method is called by the copy constructor of CSGBase
| univ | reference to CSGUniverse that should be added to universe list |
Definition at line 159 of file CSGBase.C.
Referenced by addCellToList(), addLatticeToList(), and CSGBase().
|
inline |
Apply a rotation to a CSGEngUnit object about a specified axis (X, Y, Z).
| unit | The CSGEngUnit object to rotate (CSGEngUnit, CSGSurfaceEngUnit, CSGCellEngUnit, CSGUniverseEngUnit, or any derived type) |
| axis | Axis type (X, Y, or Z) about which to rotate |
| angle | angle in degrees to rotate about the specified axis |
Definition at line 888 of file CSGBase.h.
| void CSG::CSGBase::applyAxisRotation | ( | const CSGObjectVariant & | csg_object, |
| RotationAxisType | axis, | ||
| const Real | angle | ||
| ) |
Apply a rotation to a CSG object about a specified axis (X, Y, Z).
| csg_object | The CSG object to rotate (Surface, Cell, Universe, Region, or Lattice) |
| axis | Axis type (X, Y, or Z) about which to rotate |
| angle | angle in degrees to rotate about the specified axis |
Definition at line 743 of file CSGBase.C.
Referenced by applyAxisRotation().
|
inline |
Apply a rotation to a CSG object using (phi, theta, psi) angle notation (in degrees).
| unit | The CSGEngUnit object to rotate (CSGEngUnit, CSGSurfaceEngUnit, CSGCellEngUnit, CSGUniverseEngUnit, or any derived type) |
| angles | size 3 tuple {phi, theta, psi} with rotation angles in degrees |
|
inline |
|
inline |
Scale a CSGEngUnit object in the specified x, y, and z directions.
| unit | The CSGEngUnit object to scale (CSGEngUnit, CSGSurfaceEngUnit, CSGCellEngUnit, CSGUniverseEngUnit, or any derived type) |
| values | size 3 tuple with scaling values in x, y, and z directions {x, y, z} |
Definition at line 916 of file CSGBase.h.
|
inline |
|
inline |
Apply a translation to a CSGEngUnit object in the specified x, y, and z directions.
| unit | The CSGEngUnit object to translate (CSGEngUnit, CSGSurfaceEngUnit, CSGCellEngUnit, CSGUniverseEngUnit, or any derived type) |
| distances | size 3 tuple with translation distances in x, y, and z directions {x, y, z} |
Definition at line 833 of file CSGBase.h.
|
inline |
| bool CSG::CSGBase::areUniversesLinked | ( | ) | const |
Check whether all universes and cells in this CSGBase are reachable from the root universe through the cell/fill hierarchy.
Definition at line 1212 of file CSGBase.C.
|
inlineprivate |
Returns the CSGCellEngUnit pointer if cell is an eng unit, nullptr otherwise.
Usable as a boolean check or to access the eng unit directly.
| cell | CSGCell to check/get as an engineering unit |
Definition at line 1211 of file CSGBase.h.
Referenced by addCellToList(), CSGBase(), deleteCell(), resetCellFill(), updateCellFill(), updateCellFill(), updateCellFill(), and updateCellRegion().
|
private |
check that cell being accessed is a part of this CSGBase instance
Definition at line 1090 of file CSGBase.C.
Referenced by addCellToUniverse(), addTransformation(), deleteCell(), removeCellFromUniverse(), resetCellFill(), updateCellFill(), updateCellFill(), updateCellFill(), and updateCellRegion().
|
private |
check that engineering unit being accessed is a part of this CSGBase instance
Definition at line 1120 of file CSGBase.C.
Referenced by addTransformation().
|
private |
check that lattice being accessed is a part of this CSGBase instance
Definition at line 1110 of file CSGBase.C.
Referenced by addTransformation(), deleteLattice(), resetLatticeOuter(), setLatticeOuter(), setLatticeOuter(), setLatticeUniverses(), setUniverseAtLatticeIndex(), and updateCellFill().
|
private |
check that surfaces used in this region are a part of this CSGBase instance
Definition at line 1068 of file CSGBase.C.
Referenced by createCell(), createCell(), createCell(), createCell(), and updateCellRegion().
|
private |
check that surface being accessed is a part of this CSGBase instance
Definition at line 1080 of file CSGBase.C.
Referenced by addTransformation(), and deleteSurface().
|
private |
check that universe being accessed is a part of this CSGBase instance
Definition at line 1100 of file CSGBase.C.
Referenced by addCellToUniverse(), addLattice(), addTransformation(), deleteUniverse(), removeCellFromUniverse(), setLatticeOuter(), setLatticeUniverses(), setUniverseAtLatticeIndex(), and updateCellFill().
|
private |
Check universes linked to root universe match universes defined in _universe_list.
Definition at line 1188 of file CSGBase.C.
|
inline |
| const CSGCell & CSG::CSGBase::createCell | ( | const std::string & | name, |
| const CSGLattice & | fill_lattice, | ||
| const CSGRegion & | region, | ||
| const CSGUniverse * | add_to_univ = nullptr |
||
| ) |
Create a Lattice Cell object.
| name | unique cell name |
| fill_lattice | lattice that will fill the cell |
| region | cell region |
| add_to_univ | (optional) universe to which this cell will be added (default is root universe) |
Definition at line 293 of file CSGBase.C.
| const CSGCell & CSG::CSGBase::createCell | ( | const std::string & | name, |
| const CSGRegion & | region, | ||
| const CSGUniverse * | add_to_univ = nullptr |
||
| ) |
Create a Void Cell object.
| name | unique cell name |
| region | cell region |
| add_to_univ | (optional) universe to which this cell will be added (default is root universe) |
Definition at line 260 of file CSGBase.C.
| const CSGCell & CSG::CSGBase::createCell | ( | const std::string & | name, |
| const CSGUniverse & | fill_univ, | ||
| const CSGRegion & | region, | ||
| const CSGUniverse * | add_to_univ = nullptr |
||
| ) |
Create a Universe Cell object.
| name | unique cell name |
| fill_univ | universe that will fill the cell |
| region | cell region |
| add_to_univ | (optional) universe to which this cell will be added (default is root universe) |
Definition at line 274 of file CSGBase.C.
| const CSGCell & CSG::CSGBase::createCell | ( | const std::string & | name, |
| const std::string & | mat_name, | ||
| const CSGRegion & | region, | ||
| const CSGUniverse * | add_to_univ = nullptr |
||
| ) |
Create a Material Cell object.
| name | unique cell name |
| mat_name | material name |
| region | cell region |
| add_to_univ | (optional) universe to which this cell will be added (default is root universe) |
Definition at line 245 of file CSGBase.C.
|
inline |
Create an empty Universe object.
| name | unique universe name |
Definition at line 298 of file CSGBase.h.
Referenced by addUniverseToList().
| const CSGUniverse & CSG::CSGBase::createUniverse | ( | const std::string & | name, |
| std::vector< std::reference_wrapper< const CSGCell > > & | cells | ||
| ) |
Create a Universe object from list of cells.
| name | unique universe name |
| cells | list of cells to add to universe |
Definition at line 449 of file CSGBase.C.
| void CSG::CSGBase::deleteCell | ( | const CSGCell & | cell | ) |
Remove a Cell object passed in by reference from the stored cell list.
Any CSG components connected to cell will not be recursively removed.
| cell | reference to cell to delete |
Definition at line 343 of file CSGBase.C.
| void CSG::CSGBase::deleteEngUnit | ( | const CSGEngUnit & | unit | ) |
Remove an engineering unit passed in by reference from the stored engineering unit list.
| unit | reference to the engineering unit to delete |
Definition at line 1260 of file CSGBase.C.
| void CSG::CSGBase::deleteLattice | ( | const CSGLattice & | lattice | ) |
Remove a Lattice object passed in by reference from the stored lattice list.
Any CSG components connected to lattice will not be recursively removed.
| lattice | reference to lattice to delete |
Definition at line 222 of file CSGBase.C.
| void CSG::CSGBase::deleteSurface | ( | const CSGSurface & | surface | ) |
Remove a Surface object passed in by reference from the stored surface list.
Any CSG components connected to surface will not be recursively removed.
| surface | reference to surface to delete |
Definition at line 103 of file CSGBase.C.
| void CSG::CSGBase::deleteUniverse | ( | const CSGUniverse & | univ | ) |
Remove a Universe object passed in by reference from the stored universe list.
Any CSG components connected to universe will not be recursively removed.
| univ | reference to universe to delete |
Definition at line 492 of file CSGBase.C.
| void CSG::CSGBase::expandAllEngUnits | ( | ) |
Expand all registered engineering units into basic CSG objects.
Each expanded EngUnit is removed from the engineering unit list and replaced by the corresponding plain CSG object(s) in the standard lists. After this call, the engineering unit list is empty.
Definition at line 1281 of file CSGBase.C.
|
private |
Recursive implementation of expandAllEngUnits().
Each call is one pass: all eng units currently in the base are expanded, then if new units were created the function calls itself to expand them. The set of unit types present at the start of each pass is recorded. If that exact combination was seen in a prior pass, expansion is detected to be a circular dependency and an error is raised.
| all_type_sets | set of the sets of types seen in each pass of expandAllEngUnitsCycle |
Definition at line 1288 of file CSGBase.C.
| const CSGCell & CSG::CSGBase::expandEngUnit | ( | const CSGCellEngUnit & | unit | ) |
Expand a cell-like engineering unit into a basic CSGCell.
Calls expandUnit() on the EngUnit to create a basic CSGCell, then replaces every reference to the EngUnit in every universe with the new expanded CSGCell. The EngUnit is then removed from the engineering unit list and destroyed.
| unit | identifies the CSGCellEngUnit to expand. Passed by const reference because the expansion does not mutate through this handle; it operates on and consumes the owned instance re-fetched from the cell list by name. |
Definition at line 1383 of file CSGBase.C.
| CSGRegion CSG::CSGBase::expandEngUnit | ( | const CSGSurfaceEngUnit & | unit | ) |
Expand a surface-like engineering unit into basic CSGSurface(s) and return the CSGRegion representing the EngUnit's geometry.
Calls expandUnit() then calls getExpansionRegion() to obtain the combined CSGRegion. Every occurrence of the EngUnit as a surface reference in any existing cell region is replaced with the sub-region. The EngUnit is then removed from the engineering unit list and destroyed.
| unit | identifies the CSGSurfaceEngUnit to expand. Passed by const reference because the expansion does not mutate through this handle; it operates on and consumes the owned instance re-fetched from the surface list by name. |
Definition at line 1335 of file CSGBase.C.
| const CSGUniverse & CSG::CSGBase::expandEngUnit | ( | const CSGUniverseEngUnit & | unit | ) |
Expand a universe-like engineering unit into a basic CSGUniverse.
Calls expandUnit() on the EngUnit to create the equivalent CSGUniverse and any necessary additional CSG components. All references to the original EngUnit in all cell fills, lattice universe maps/outers, and the root universe pointer are replaced with new CSGUniverse. The EngUnit is then removed from the engineering unit list and destroyed.
| unit | identifies the CSGUniverseEngUnit to expand. Passed by const reference because the expansion does not mutate through this handle; it operates on and consumes the owned instance re-fetched from the universe list by name. |
Definition at line 1425 of file CSGBase.C.
|
private |
|
private |
|
private |
Friends for unit testing.
|
private |
|
private |
|
private |
| nlohmann::json CSG::CSGBase::generateOutput | ( | ) | const |
generate the JSON representation output for the CSG object
Definition at line 1555 of file CSGBase.C.
|
inline |
Get all cell-like engineering units in CSGBase.
Definition at line 644 of file CSGBase.h.
Referenced by CSGBase().
|
inline |
Get all cell objects.
Definition at line 199 of file CSGBase.h.
|
inline |
Get all engineering units of all types in CSGBase.
Definition at line 624 of file CSGBase.h.
|
inline |
Get all lattice objects.
Definition at line 486 of file CSGBase.h.
|
inline |
Get all surface-like engineering units in CSGBase.
Definition at line 634 of file CSGBase.h.
|
inline |
Get all surface objects.
Definition at line 96 of file CSGBase.h.
|
inline |
Get all universe-like engineering units.
Definition at line 654 of file CSGBase.h.
Referenced by CSGBase().
|
inline |
Get all universe objects.
Definition at line 360 of file CSGBase.h.
|
inline |
|
inlineprivate |
Get a non-const reference to the CSGCellList object.
Definition at line 985 of file CSGBase.h.
|
inlineprivate |
Get a const reference to the CSGCellList object.
Definition at line 978 of file CSGBase.h.
Referenced by CSGBase(), operator==(), replaceLatticeRefsByName(), replaceSurfaceRefsByName(), and replaceUniverseRefsByName().
|
inline |
Get a engineering unit object of the specified type by name.
This is a templated method with a default type of CSGEngUnit. If a specific unit type is needed, it can be specified when calling. If the type is unknown or not specified, it will default to CSGEngUnit to get the base class reference. NOTE: if CSGEngUnit is used as the template type, any type-specific attributes or methods may not be accessible, except using a reference cast.
| name | engineering unit name |
Definition at line 592 of file CSGBase.h.
|
inlineprivate |
Get a const reference to the CSGEngUnitList object.
Definition at line 1078 of file CSGBase.h.
Referenced by operator==().
|
inline |
Get a lattice object of the specified type by name.
This is a templated method with a default type of CSGLattice. If a specific lattice type is needed, it can be specified when calling. If the type is unknown or not specified, it will default to CSGLattice to get the base class reference. NOTE: if CSGLattice is used as the template type, any lattice type-specific attributes or methods may not be accessible, except using a reference cast.
| name | lattice name |
Definition at line 504 of file CSGBase.h.
|
inlineprivate |
|
inlineprivate |
Get a const reference to the CSGLatticeList object.
Definition at line 1006 of file CSGBase.h.
Referenced by CSGBase(), operator==(), and replaceUniverseRefsByName().
|
private |
Recursive method to retrieve all universes and cells linked to current universe.
| univ | Reference to universe under consideration |
| linked_universe_names | List of universe names linked to current universe |
| linked_cell_names | List of cell names linked to current universe |
Definition at line 1229 of file CSGBase.C.
|
inline |
Get the Root Universe object.
Definition at line 272 of file CSGBase.h.
Referenced by addEngUnit(), createCell(), createCell(), createCell(), createCell(), CSGBase(), prepareCellDeletion(), and prepareUniverseDeletion().
|
inlineprivate |
Get a Surface object by name.
Note: This is a private method that returns a non-const reference. For the public method that returns a const reference, use getSurfaceByName
| name | surface name |
Definition at line 931 of file CSGBase.h.
|
inline |
Get a Surface object by name.
| name | surface name |
Definition at line 107 of file CSGBase.h.
Referenced by updateIncomingCSGReferences().
|
inlineprivate |
Get a non-const reference to the CSGSurfaceList object.
Definition at line 971 of file CSGBase.h.
|
inlineprivate |
Get a const reference to the CSGSurfaceList object.
Definition at line 964 of file CSGBase.h.
Referenced by operator==(), and updateIncomingCSGReferences().
|
inline |
|
inlineprivate |
Get a non-const reference to the CSGUniverseList object.
Definition at line 999 of file CSGBase.h.
|
inlineprivate |
Get a const reference to the CSGUniverseList object.
Definition at line 992 of file CSGBase.h.
Referenced by CSGBase(), operator==(), and replaceCellRefsByName().
|
inline |
|
inline |
|
inline |
|
inline |
Check if a surface with given name exists in CSGBase object.
| name | surface name |
Definition at line 118 of file CSGBase.h.
Referenced by updateIncomingCSGReferences().
|
inline |
|
private |
join a separate CSGCellList object to this one
| cell_list | CSGCellList from a separate CSGBase object |
| ignore_identical_cells | if true, will skip adding identical cells to the CSGBase object |
Definition at line 963 of file CSGBase.C.
Referenced by joinOtherBase(), joinOtherBase(), and joinOtherBase().
|
private |
join a separate CSGLatticeList object to this one
| lattice_list | CSGLatticeList from a separate CSGBase object |
| ignore_identical_lattices | if true, will skip adding identical lattices to the CSGBase object |
Definition at line 971 of file CSGBase.C.
Referenced by joinOtherBase(), joinOtherBase(), and joinOtherBase().
| void CSG::CSGBase::joinOtherBase | ( | std::unique_ptr< CSGBase > | base, |
| const bool | ignore_identical_components | ||
| ) |
Join another CSGBase object to this one.
The cells of the root universe of the incoming CSGBase will be added to the existing root universe of this CSGBase.
| base | pointer to a different CSGBase object |
| ignore_identical_components | if true, will skip adding identical components (surfaces, cells, universes, lattices) to the CSGBase object |
Definition at line 773 of file CSGBase.C.
| void CSG::CSGBase::joinOtherBase | ( | std::unique_ptr< CSGBase > | base, |
| const bool | ignore_identical_components, | ||
| const std::string & | new_root_name_base, | ||
| const std::string & | new_root_name_join | ||
| ) |
Join another CSGBase object to this one.
The root universe for the incoming CSGBase object is added to this CSGBase object as a non-root universe with a new name. The root universe of this CSGBase object will be renamed and designated as non-root. Note: upon completion of this join method, the root universe of this CSGBase object will be empty. Neither of the new non-root universes will be connected to the new root universe by default.
| base | pointer to a different CSGBase object |
| ignore_identical_components | if true, will skip adding identical components (surfaces, cells, universes, lattices) to the CSGBase object |
| new_root_name_base | new name for universe generated from this root universe |
| new_root_name_join | new name for the universe generated from the incoming root universe |
Definition at line 805 of file CSGBase.C.
| void CSG::CSGBase::joinOtherBase | ( | std::unique_ptr< CSGBase > | base, |
| const bool | ignore_identical_components, | ||
| const std::string & | new_root_name_join | ||
| ) |
Join another CSGBase object to this one.
For the incoming CSGBase object, the root universe is added to this CSGBase object as a new non-root universe with the specified new name. Note: this newly created universe will not be connected to the root universe of this CSGBase object by default.
| base | pointer to a different CSGBase object |
| ignore_identical_components | if true, will skip adding identical components (surfaces, cells, universes, lattices) to the CSGBase object |
| new_root_name_join | new name for the universe generated from the incoming root universe |
Definition at line 788 of file CSGBase.C.
|
private |
join a separate CSGSurfaceList object to this one
| surf_list | CSGSurfaceList from a separate CSGBase object |
| ignore_identical_surfaces | if true, will skip adding identical surfaces to the CSGBase object |
Definition at line 955 of file CSGBase.C.
Referenced by joinOtherBase(), joinOtherBase(), and joinOtherBase().
|
private |
join a separate CSGUniverseList object to this one; root universes from univ_list will be combined into this root universe
| univ_list | CSGUniverseList from a separate CSGBase object |
| ignore_identical_universes | if true, will skip adding identical universes to the CSGBase object |
Definition at line 997 of file CSGBase.C.
Referenced by joinOtherBase(), joinOtherBase(), and joinOtherBase().
|
private |
join a separate CSGUniverseList object to this one; both this root universe and the incoming root universe will be maintained as separate universes of the specified names.
Note: upon completion of this join method, the root universe will be empty.
| univ_list | CSGUniverseList from a separate CSGBase object |
| ignore_identical_universes | if true, will skip adding identical lattices to the CSGBase object |
| new_root_name_base | new name for universe generated from this root universe |
| new_root_name_incoming | new name for the universe generated from the incoming root universe |
Definition at line 1039 of file CSGBase.C.
|
private |
join a separate CSGUniverseList object to this one; the incoming root universe will be moved to a new universe of the new name specified.
| univ_list | CSGUniverseList from a separate CSGBase object |
| ignore_identical_universes | if true, will skip adding identical universes to the CSGBase object |
| new_root_name_incoming | new name for the universe generated from the incoming root universe |
Definition at line 1017 of file CSGBase.C.
| bool CSG::CSGBase::operator!= | ( | const CSGBase & | other | ) | const |
| bool CSG::CSGBase::operator== | ( | const CSGBase & | other | ) | const |
Operator overload for checking if two CSGBase objects are equal.
Definition at line 1685 of file CSGBase.C.
|
private |
warn and remove cell from any universe that contains it
Definition at line 321 of file CSGBase.C.
Referenced by deleteCell().
|
private |
error if surface is referenced in any cell region
Definition at line 88 of file CSGBase.C.
Referenced by deleteSurface().
|
private |
error if universe is the root, used in any lattice, or used as a cell fill
Definition at line 458 of file CSGBase.C.
Referenced by deleteUniverse().
|
private |
rebuilds the list of raw pointers to engineering units by iterating through the surface, cell, and universe lists.
Definition at line 979 of file CSGBase.C.
Referenced by CSGBase(), joinOtherBase(), joinOtherBase(), and joinOtherBase().
| void CSG::CSGBase::removeCellFromUniverse | ( | const CSGUniverse & | universe, |
| const CSGCell & | cell | ||
| ) |
Remove a cell from an existing universe.
| universe | universe from which to remove the cell |
| cell | cell to remove |
Definition at line 537 of file CSGBase.C.
Referenced by removeCellsFromUniverse().
| void CSG::CSGBase::removeCellsFromUniverse | ( | const CSGUniverse & | universe, |
| std::vector< std::reference_wrapper< const CSGCell > > & | cells | ||
| ) |
Remove a list of cells from an existing universe.
| universe | universe from which to remove the cells |
| cells | list of references to cells to remove |
| void CSG::CSGBase::renameCell | ( | const CSGCell & | cell, |
| const std::string & | name | ||
| ) |
rename the specified cell
| cell | reference to CSGCell to rename |
| name | new name |
Definition at line 1161 of file CSGBase.C.
| void CSG::CSGBase::renameEngUnit | ( | const CSGEngUnit & | unit, |
| const std::string & | name | ||
| ) |
Rename the specified engineering unit.
| unit | reference to engineering unit to rename |
| name | new name |
Definition at line 1130 of file CSGBase.C.
|
inline |
rename the lattice
| lattice | lattice to rename |
| name | new name |
Definition at line 451 of file CSGBase.h.
|
inline |
rename the root universe for this instance (default is ROOT_UNIVERSE)
| name | new name for the root universe |
| void CSG::CSGBase::renameSurface | ( | const CSGSurface & | surface, |
| const std::string & | name | ||
| ) |
rename the specified surface
| surface | CSGSurface to rename |
| name | new name |
Definition at line 1147 of file CSGBase.C.
| void CSG::CSGBase::renameUniverse | ( | const CSGUniverse & | universe, |
| const std::string & | name | ||
| ) |
rename the specified universe
| universe | reference to CSGUniverse to rename |
| name | new name |
Definition at line 1174 of file CSGBase.C.
Referenced by renameRootUniverse().
Replace all old_cell references with new_cell across all universes in the base.
Definition at line 1525 of file CSGBase.C.
|
private |
update cell references of incoming CSGbase to point to those of existing CSGBase object based on CSGCell name.
This involves updating the cell references of universes.
| identical_cell_refs | map of cell names to cell references that will be used for replacement |
| base | CSGBase object that contains references that should be updated |
Definition at line 884 of file CSGBase.C.
|
private |
update lattice references of incoming CSGbase to point to those of existing CSGBase object based on CSGLattice name.
This involves updating the lattice references of cells.
| identical_lattice_refs | map of lattice names to lattice references that will be used for replacement |
| base | CSGBase object that contains references that should be updated |
Definition at line 936 of file CSGBase.C.
|
private |
update surface references of incoming CSGBase to point to those of existing CSGBase object based on CSGSurface name.
This involves updating the surface references of cell regions.
| identical_surface_refs | map of surface names to surface references that will be used for replacement |
| base | CSGBase object that contains references that should be updated |
Definition at line 874 of file CSGBase.C.
|
private |
Replace all region occurrences of old_surf with the tokens from sub_region across all cells in the base.
Definition at line 1540 of file CSGBase.C.
|
private |
Replace all cell fills and lattice elements/outers referencing old_univ with new_univ.
Definition at line 1495 of file CSGBase.C.
|
private |
update universe references of incoming CSGbase to point to those of existing CSGBase object based on CSGUniverse name.
This involves updating the universe references of cells and universe references of lattices.
| identical_universe_refs | map of universe names to universe references that will be used for replacement |
| base | CSGBase object that contains references that should be updated |
Definition at line 899 of file CSGBase.C.
| void CSG::CSGBase::resetCellFill | ( | const CSGCell & | cell | ) |
reset the fill of the specified cell to void
| cell | cell to update the fill for |
Definition at line 375 of file CSGBase.C.
| void CSG::CSGBase::resetLatticeOuter | ( | const CSGLattice & | lattice | ) |
reset the outer fill for the lattice to VOID
| lattice | lattice to update |
Definition at line 589 of file CSGBase.C.
| void CSG::CSGBase::setLatticeOuter | ( | const CSGLattice & | lattice, |
| const CSGUniverse & | outer_univ | ||
| ) |
Set the outer fill for the lattice to the universe provided.
This will set the outer type to UNIVERSE regardless of its previous outer type.
| lattice | lattice to update |
| outer_univ | universe to use as outer fill between lattice elements |
Definition at line 575 of file CSGBase.C.
| void CSG::CSGBase::setLatticeOuter | ( | const CSGLattice & | lattice, |
| const std::string & | outer_name | ||
| ) |
Set the outer fill for the lattice to the material name provided.
This will set the outer type to CSG_MATERIAL regardless of its previous outer type.
| lattice | lattice to update |
| outer_name | name of material to use as outer fill between lattice elements |
Definition at line 564 of file CSGBase.C.
| void CSG::CSGBase::setLatticeUniverses | ( | const CSGLattice & | lattice, |
| std::vector< std::vector< std::reference_wrapper< const CSGUniverse > > > & | universes | ||
| ) |
Set provided universes as the layout of the lattice.
| lattice | lattice to add universes to |
| universes | list of list of universes in the proper layout for the lattice type and dimensions |
Definition at line 616 of file CSGBase.C.
| void CSG::CSGBase::setUniverseAtLatticeIndex | ( | const CSGLattice & | lattice, |
| const CSGUniverse & | universe, | ||
| std::pair< int, int > | index | ||
| ) |
set location in the lattice to be the provided universe
| lattice | lattice to update |
| universe | universe to set at the location |
| index | index of the lattice element (int, int) |
Definition at line 600 of file CSGBase.C.
|
inlineprivate |
Returns the CSGSurfaceEngUnit pointer if surf is an eng unit, nullptr otherwise.
Usable as a boolean check or to access the eng unit directly.
| surf | CSGSurface to check/get as an engineering unit |
Definition at line 1199 of file CSGBase.h.
Referenced by addSurface(), and deleteSurface().
|
inlineprivate |
Returns the CSGUniverseEngUnit pointer if univ is an eng unit, nullptr otherwise.
Usable as a boolean check or to access the eng unit directly.
| univ | CSGUniverse to check/get as an engineering unit |
Definition at line 1223 of file CSGBase.h.
Referenced by addCellToUniverse(), addUniverseToList(), CSGBase(), and deleteUniverse().
| void CSG::CSGBase::updateCellFill | ( | const CSGCell & | cell, |
| const CSGLattice * | lattice | ||
| ) |
change the fill of the specified cell to a lattice fill
| cell | cell to update the fill for |
| lattice | pointer to lattice fill |
Definition at line 428 of file CSGBase.C.
| void CSG::CSGBase::updateCellFill | ( | const CSGCell & | cell, |
| const CSGUniverse * | univ | ||
| ) |
change the fill of the specified cell to a universe fill
| cell | cell to update the fill for |
| univ | pointer to universe fill |
Definition at line 407 of file CSGBase.C.
| void CSG::CSGBase::updateCellFill | ( | const CSGCell & | cell, |
| const std::string & | mat_name | ||
| ) |
change the fill of the specified cell to a material fill
| cell | cell to update the fill for |
| mat_name | name of material fill |
Definition at line 391 of file CSGBase.C.
change the region of the specified cell
| cell | cell to update the region for |
| region | new region to assign to cell |
Definition at line 358 of file CSGBase.C.
|
private |
update references of incoming CSGbase to point to those of existing CSGBase object.
This includes updating the surface references of cell regions, universe/lattice references of cell fills, cell references of universes, and universe references of lattices
| incoming_base | CSGBase object that contains references that should be updated |
Definition at line 824 of file CSGBase.C.
Referenced by joinOtherBase(), joinOtherBase(), and joinOtherBase().
|
private |
List of cells associated with CSG object.
Definition at line 1256 of file CSGBase.h.
Referenced by addCellToList(), addEngUnit(), addTransformation(), createCell(), createCell(), createCell(), createCell(), CSGBase(), deleteCell(), deleteLattice(), getAllCells(), getCellByName(), getCellList(), getCellList(), hasCell(), prepareSurfaceDeletion(), prepareUniverseDeletion(), resetCellFill(), updateCellFill(), updateCellFill(), updateCellFill(), and updateCellRegion().
|
private |
Container for all associated engineering units.
Definition at line 1265 of file CSGBase.h.
Referenced by addEngUnit(), addTransformation(), deleteCell(), deleteSurface(), deleteUniverse(), getAllCellEngUnits(), getAllEngUnits(), getAllSurfaceEngUnits(), getAllUniverseEngUnits(), getEngUnitByName(), getEngUnitList(), and hasEngUnit().
|
private |
List of lattices associated with CSG object.
Definition at line 1262 of file CSGBase.h.
Referenced by addLattice(), addLatticeToList(), addTransformation(), deleteLattice(), getAllLattices(), getLatticeByName(), getLatticeList(), getLatticeList(), hasLattice(), prepareUniverseDeletion(), renameLattice(), resetLatticeOuter(), setLatticeOuter(), setLatticeOuter(), setLatticeUniverses(), and setUniverseAtLatticeIndex().
|
private |
List of surfaces associated with CSG object.
Definition at line 1253 of file CSGBase.h.
Referenced by addEngUnit(), addSurface(), addTransformation(), deleteSurface(), getAllSurfaces(), getSurface(), getSurfaceByName(), getSurfaceList(), getSurfaceList(), and hasSurface().
|
private |
List of universes associated with CSG object.
Definition at line 1259 of file CSGBase.h.
Referenced by addCellToUniverse(), addEngUnit(), addTransformation(), addUniverseToList(), createUniverse(), createUniverse(), deleteUniverse(), getAllUniverses(), getRootUniverse(), getUniverseByName(), getUniverseList(), getUniverseList(), hasUniverse(), prepareCellDeletion(), removeCellFromUniverse(), and renameRootUniverse().