00001 00002 // 00003 // This class is part of the Open Inventor Medical utility library. 00004 // 00005 // The medical utility classes are provided as a prebuilt library named 00006 // "fei_inventor_medical", that can be used directly in an Open Inventor 00007 // application. The classes in the prebuilt library are documented and 00008 // supported by FEI. These classes are also provided as source code. 00009 // 00010 // Please see $OIVHOME/include/Medical/InventorMedical.h for the full text. 00011 // 00013 00014 #ifndef _PLANE_GEOMETRY_INTERSECTION_H_ 00015 #define _PLANE_GEOMETRY_INTERSECTION_H_ 00016 00017 #include <Medical/InventorMedical.h> 00018 #include <Inventor/nodes/SoSeparator.h> 00019 00020 #include <Inventor/fields/SoSFBool.h> 00021 #include <Inventor/fields/SoSFFloat.h> 00022 #include <Inventor/fields/SoSFNode.h> 00023 #include <Inventor/fields/SoSFPlane.h> 00024 #include <Inventor/nodes/SoShape.h> 00025 #include <Inventor/sensors/SoFieldSensor.h> 00026 00027 class PlaneGeometryIntersectionImpl; 00028 00142 class INVENTORMEDICAL_API PlaneGeometryIntersection : public SoSeparator 00143 { 00144 SO_NODE_HEADER(PlaneGeometryIntersection); 00145 00146 public: 00147 00149 SoSFNode scene; 00150 00155 SoSFPlane plane; 00156 00160 SoSFBool polygon; 00161 00167 SoSFBool automatic; 00168 00173 SoSFFloat tolerance; 00174 00183 const SoShape* getShape() const; 00184 00195 int recompute(); 00196 00198 PlaneGeometryIntersection(); 00199 00201 static void initClass(); 00202 00204 static void exitClass(); 00205 00206 private: 00207 00208 PlaneGeometryIntersectionImpl* m_impl; 00209 00211 SoFieldSensor* m_sceneSensor; 00212 SoFieldSensor* m_planeSensor; 00213 SoFieldSensor* m_polygonSensor; 00214 static void fieldSensorCB( void* data, SoSensor* sensor ); 00215 00217 void resetGeometry(); 00218 00220 virtual ~PlaneGeometryIntersection(); 00221 }; 00222 #endif 00223