5 #include "GeoModelKernel/GeoShapeSubtraction.h" 6 #include "GeoModelKernel/GeoShapeAction.h" 7 #include "GeoModelKernel/GeoPolyhedrizeAction.h" 8 #include "GeoModelKernel/GeoPolyhedron.h" 11 const std::string GeoShapeSubtraction::s_classType =
"Subtraction";
12 const ShapeType GeoShapeSubtraction::s_classTypeID = 0x02;
14 GeoShapeSubtraction::GeoShapeSubtraction (
const GeoShape* A,
const GeoShape* B)
22 GeoShapeSubtraction::~GeoShapeSubtraction()
28 double GeoShapeSubtraction::volume ()
const 33 double vol = poly->GetVolume ();
37 const std::string & GeoShapeSubtraction::type ()
const 42 ShapeType GeoShapeSubtraction::typeID ()
const 47 const GeoShape* GeoShapeSubtraction::getOpA ()
const 52 const GeoShape* GeoShapeSubtraction::getOpB ()
const 59 action->getPath ()->push (
this);
60 action->handleSubtraction (
this);
61 if (action->shouldTerminate ())
63 action->getPath ()->pop ();
67 if (action->getDepthLimit ().isValid ()
68 && action->getPath ()->getLength () > action->getDepthLimit ())
75 if (action->shouldTerminate ())
77 action->getPath ()->pop ();
81 if (action->shouldTerminate ())
83 action->getPath ()->pop ();
87 action->getPath()->pop();
This action polyhedrizes a shape. This includes, for example, boolean shapes. A polhyedral representa...
This class is a visitor for shapes. It allows a navigation of the boolean expression tree for shapes...
This class describes a Shape. Shapes will be able to do the following things: