void setExpr(ExprNode<expressionType, T_element>& e) const { registerWith(e); if (expr != NULL) unregisterFrom(*expr); expr = &e; }
SurfaceOr::~SurfaceOr() { for(auto surf : _surfs) unregisterFrom(surf); }
SurfaceAnd::~SurfaceAnd() { for(auto surf : _surfs) unregisterFrom(surf); }
SurfaceInverse::~SurfaceInverse() { unregisterFrom(_surf); }
SurfaceGhost::~SurfaceGhost() { unregisterFrom(_surf); }
SurfaceShell::~SurfaceShell() { unregisterFrom(_surf); }
PhysicalSurface::~PhysicalSurface() { unregisterFrom(_coating); unregisterFrom(_innerMat); unregisterFrom(_outerMat); }
StageSet::~StageSet() { unregisterFrom(_ambientMaterial); unregisterFrom(_backdrop); }