13#include "gtest/gtest.h"
51 const std::vector<std::pair<TransformationType, std::tuple<Real, Real, Real>>> &
58 std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>>
92 virtual std::unique_ptr<CSGCellEngUnit>
clone()
const = 0;
CSGBase creates an internal representation of a Constructive Solid Geometry (CSG) model.
CSGCellEngUnit is an abstract base class for "engineering units" that are cell-like.
bool operator==(const CSGCellEngUnit &other) const
Disambiguate == and != by forwarding to CSGEngUnit (name/property-based comparison)
void updateCellFill(const CSGLattice *)=delete
void updateRegion(const CSGRegion &)=delete
void expandUnit() override=0
Create the CSGCell and any other necessary components in _internal_base.
bool operator!=(const CSGCellEngUnit &other) const
void resetCellFill()=delete
Cell fill and region updates are not permitted on engineering units.
bool isEngUnit() const override
Engineering units report true so comparisons can skip the dynamic_cast fast path.
virtual std::unique_ptr< CSGCellEngUnit > clone() const =0
Create a deep copy of this engineering unit for use in a different CSGBase instance.
void updateCellFill(const CSGUniverse *)=delete
const std::vector< std::pair< TransformationType, std::tuple< Real, Real, Real > > > & getTransformations() const override
Delegate to CSGCell (CSGTransformationHelper)
std::vector< std::pair< std::string, std::tuple< Real, Real, Real > > > getTransformationsAsStrings() const override
Delegate to CSGCell (CSGTransformationHelper)
const CSGCell & getExpandedCell() const
Return the single cell in _internal_base's root, which IS the expanded cell.
void updateCellFill(const std::string &)=delete
const std::string & getName() const override
Satisfy CSGEngUnit::getName() (resolved via CSGCell::getName())
CSGCell creates an internal representation of a Constructive Solid Geometry (CSG) cell,...
const std::string & getName() const
Get the cell name.
CSGEngUnit is the abstract base class for all "engineering unit" types in the CSG system.
bool operator!=(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are not equal.
bool operator==(const CSGEngUnit &other) const
Operator overload for checking if two CSGEngUnit objects are equal.
CSGLattice is the abstract class for defining lattices.
CSGRegions creates an internal representation of a CSG region, which can refer to an intersection,...
CSGUniverse creates an internal representation of a Constructive Solid Geometry (CSG) universe,...