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 _MEDICAL_MAGNIFIER_H 00015 #define _MEDICAL_MAGNIFIER_H 00016 00017 #include <Medical/InventorMedical.h> 00018 #include <Inventor/nodes/SoMaterial.h> 00019 #include <Inventor/nodes/SoOrthographicCamera.h> 00020 #include <Inventor/nodes/SoSeparator.h> 00021 #include <Inventor/draggers/SoTranslate2Dragger.h> 00022 #include <Inventor/sensors/SoFieldSensor.h> 00023 00024 #include <Inventor/fields/SoSFColor.h> 00025 #include <Inventor/fields/SoSFFloat.h> 00026 #include <Inventor/fields/SoSFNode.h> 00027 00060 class INVENTORMEDICAL_API Magnifier : public SoTranslate2Dragger { 00061 00062 SO_NODE_HEADER(Magnifier); 00063 00064 public: 00068 SoSFNode sceneToMagnify; 00069 00073 SoSFColor magnifierColor; 00074 00079 SoSFFloat magnifierFactor; 00080 00082 Magnifier( ); 00083 00085 static void initClass(); 00086 00088 static void exitClass(); 00089 00090 private: 00091 virtual ~Magnifier(); 00092 00093 private: 00094 00095 void commonConstructor(); 00096 00097 SoFieldSensor* m_sceneFieldSensor; 00098 static void sceneFieldChangedCB( void* data, SoSensor* sensor ); 00099 00100 SoRef<SoSeparator> m_magnifierSGSep; 00101 SoRef<SoMaterial> m_magnifierBorderMaterial; 00102 SoRef<SoSeparator> m_sceneToMagnifyParent; 00103 SoRef<SoOrthographicCamera> m_magnifierCam; 00104 }; 00105 #endif 00106