13#include "gtest/gtest.h"
52 const std::vector<std::pair<TransformationType, std::tuple<Real, Real, Real>>> &
59 std::vector<std::pair<std::string, std::tuple<Real, Real, Real>>>
88 virtual std::unique_ptr<CSGUniverseEngUnit>
clone()
const = 0;
CSGBase creates an internal representation of a Constructive Solid Geometry (CSG) model.
CSGCell creates an internal representation of a Constructive Solid Geometry (CSG) cell,...
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.
CSGUniverseEngUnit is an abstract base class for "engineering units" that are universe-like.
bool isEngUnit() const override
Engineering units report true so comparisons can skip the dynamic_cast fast path.
void expandUnit() override=0
Populate _internal_base with the CSGUniverse and any supporting objects.
std::vector< std::pair< std::string, std::tuple< Real, Real, Real > > > getTransformationsAsStrings() const override
Delegate to CSGUniverse (CSGTransformationHelper)
bool operator==(const CSGUniverseEngUnit &other) const
Disambiguate == and != by forwarding to CSGEngUnit (name/property-based comparison)
virtual std::unique_ptr< CSGUniverseEngUnit > clone() const =0
Create a deep copy of this engineering unit for use in a different CSGBase instance.
void addCell(const CSGCell &)=delete
addCell updates are not permitted on engineering units.
const std::vector< std::pair< TransformationType, std::tuple< Real, Real, Real > > > & getTransformations() const override
Delegate to CSGUniverse (CSGTransformationHelper)
const CSGUniverse & getExpandedUniverse() const
Return the root universe of _internal_base, which IS the expanded universe.
bool operator!=(const CSGUniverseEngUnit &other) const
const std::string & getName() const override
Satisfy CSGEngUnit::getName() (resolved via CSGUniverse::getName())
CSGUniverse creates an internal representation of a Constructive Solid Geometry (CSG) universe,...
const std::string & getName() const
Get the name of the universe.