5 #include "GeoModelKernel/GeoShapeIntersection.h" 6 #include "GeoModelKernel/GeoPolyhedron.h" 7 #include "GeoModelKernel/GeoPolyhedrizeAction.h" 8 #include "GeoModelKernel/GeoShapeAction.h" 11 const std::string GeoShapeIntersection::s_classType =
"Intersection";
12 const ShapeType GeoShapeIntersection::s_classTypeID = 0x00;
14 GeoShapeIntersection::GeoShapeIntersection (
const GeoShape* A,
const GeoShape* B)
22 GeoShapeIntersection::~GeoShapeIntersection()
28 double GeoShapeIntersection::volume ()
const 33 double vol = poly->GetVolume ();
37 const std::string & GeoShapeIntersection::type ()
const 42 ShapeType GeoShapeIntersection::typeID ()
const 47 const GeoShape* GeoShapeIntersection::getOpA ()
const 52 const GeoShape* GeoShapeIntersection::getOpB ()
const 59 action->getPath ()->push (
this);
60 action->handleIntersection (
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: