MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoView2D/extensions/SoView2DExtensionSeparator.h
Go to the documentation of this file.
00001 #ifndef __SoView2DExtensionSeparator_H
00002 #define __SoView2DExtensionSeparator_H
00003 //----------------------------------------------------------------------------------
00004 // **InsertLicense** code
00005 //----------------------------------------------------------------------------------
00007 
00013 //----------------------------------------------------------------------------------
00014 
00015 #ifndef __SoView2DExtension_H
00016 #include "SoView2DExtension.h"
00017 #endif
00018 
00019 #ifndef __SoView2DExtensionElement_H
00020 #include "SoView2DExtensionElement.h"
00021 #endif
00022 
00023 #include <XVEnterScope.h>
00024 #include <Inventor/fields/SoSFBool.h>
00025 #include <Inventor/fields/SoSFTrigger.h>
00026 #include <XVLeaveScope.h>
00027 
00028 
00029 
00030 
00031 class SOVIEW2D_API SoView2DExtensionSeparator : public SoView2DExtension {
00032 
00033     SO_NODE_HEADER(SoView2DExtensionSeparator);
00034 
00035 
00036 public:
00038   
00040     SoSFEnum drawingOrder;
00041 
00043     SoSFBool drawingOrderIsReversed;
00044 
00046     SoSFTrigger updateOrder;
00047 
00049     SoSFBool forwardEvents;
00050 
00052     SoSFBool markAsUnhandled;
00053    
00055 
00057     static void   initClass();
00058 
00060     SoView2DExtensionSeparator();
00061 
00063     virtual void   draw(View2DSliceList *dsl, View2DSlice* dslice, int slice);
00064 
00066     virtual bool  evaluateEvent(SoView2D *view2d, View2DEvent* ec);
00067 
00068     //bool   evalEvent(SoView2D* view2d, View2DSliceList* slicelist, View2DEvent* ec, View2DEventPhase phase);
00069 
00071     void   startDrawing(View2DSliceList * /*slicelist*/);
00072 
00074     void   endDrawing(View2DSliceList * /*slicelist*/);
00075 
00076 protected:
00077 
00079   void     doAction(SoAction *action);
00080 
00082   SoNodeSensor      *_nodeSensor;
00083 
00087   static void       nodeChangedCB(void *data, SoSensor* sens);
00088 
00090   void              nodeChanged(SoNodeSensor* sensor);
00091 
00092 private:
00093     
00095     bool   _revertDrawingOrder;
00096 
00098     SoNodeList _extensions;
00099 
00101     ExtensionDrawingOrder _parentDrawingOrder;
00102 
00104     ExtensionDrawingOrder _usedDrawingOrder;
00105 };
00106 
00107 #endif