MeVisLabToolboxReference
MeVis/Foundation/Sources/MLInventorBinding/SoViewerElement.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //----------------------------------------------------------------------------------
00004 
00009 //----------------------------------------------------------------------------------
00010 
00011 #ifndef  __SoViewerElement_H
00012 #define  __SoViewerElement_H
00013 
00014 #ifndef __InventorWrapperDllInit_H
00015 #include "InventorWrapperDllInit.h"
00016 #endif
00017 #ifndef __SoViewerProxy_H
00018 #include "SoViewerProxy.h"
00019 #endif
00020 
00021 #include "XVEnterScope.h"
00022 #include <Inventor/elements/SoSubElement.h>
00023 #include "XVLeaveScope.h"
00024 
00025 class SoAction;
00026 
00028 class INVENTORWRAPPER_API SoViewerElement : public SoElement
00029 {
00030     SO_ELEMENT_HEADER(SoViewerElement);
00031 
00032   public:
00034     virtual void init(SoState *state);
00035 
00038     virtual SbBool matches(const SoElement *elt) const;
00039 
00041     virtual SoElement* copyMatchInfo() const;
00042 
00044     static void set(SoState *state, SoViewerProxy* proxy);
00045 
00047     static SoViewerProxy* get(SoState *state);
00048 
00051     static void setCursor (SoState *state, int shapeID);
00052 
00055     static void setViewerProxyCB (void* userData, SoAction* action);
00056 
00057   SoINTERNAL public:
00059     static void initClass();
00060 
00061   protected:
00063     SoViewerProxy* _proxy;
00064 
00065     virtual ~SoViewerElement();
00066 };
00067 
00070 #define SO_NODE_DEFINE_CURSOR_SHAPE_ENUM(enumType) { \
00071     int _value_false= 0;                                                                  \
00072     do {                                                                                  \
00073         SO__NODE_CHECK_CONSTRUCT(__FILE__);                                               \
00074         if (firstInstance) {                                                              \
00075             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(UNDEFINED_CURSOR),     \
00076                                     SoViewerProxy::UNDEFINED_CURSOR);                     \
00077             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(DEFAULT_CURSOR),       \
00078                                     SoViewerProxy::DEFAULT_CURSOR);                       \
00079             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(FORBIDDEN_CURSOR),     \
00080                                     SoViewerProxy::FORBIDDEN_CURSOR);                     \
00081             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(POINTING_HAND_CURSOR), \
00082                                     SoViewerProxy::POINTING_HAND_CURSOR);                 \
00083             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(OPEN_HAND_CURSOR),     \
00084                                     SoViewerProxy::OPEN_HAND_CURSOR);                     \
00085             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CLOSED_HAND_CURSOR),   \
00086                                     SoViewerProxy::CLOSED_HAND_CURSOR);                   \
00087             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_ALL_CURSOR),      \
00088                                     SoViewerProxy::MOVE_ALL_CURSOR);                      \
00089             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_HORI_CURSOR),     \
00090                                     SoViewerProxy::MOVE_HORI_CURSOR);                     \
00091             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_VERT_CURSOR),     \
00092                                     SoViewerProxy::MOVE_VERT_CURSOR);                     \
00093             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_FDIAG_CURSOR),    \
00094                                     SoViewerProxy::MOVE_FDIAG_CURSOR);                    \
00095             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_BDIAG_CURSOR),    \
00096                                     SoViewerProxy::MOVE_BDIAG_CURSOR);                    \
00097             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(MOVE_INOUT_CURSOR),    \
00098                                     SoViewerProxy::MOVE_INOUT_CURSOR);                    \
00099             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ROTATE_X_CURSOR),      \
00100                                     SoViewerProxy::ROTATE_X_CURSOR);                      \
00101             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ROTATE_Y_CURSOR),      \
00102                                     SoViewerProxy::ROTATE_Y_CURSOR);                      \
00103             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ROTATE_Z_CURSOR),      \
00104                                     SoViewerProxy::ROTATE_Z_CURSOR);                      \
00105             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ROTATE_XY_CURSOR),     \
00106                                     SoViewerProxy::ROTATE_XY_CURSOR);                     \
00107             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ZOOM_CURSOR),          \
00108                                     SoViewerProxy::ZOOM_CURSOR);                          \
00109             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ZOOM_IN_CURSOR),       \
00110                                     SoViewerProxy::ZOOM_IN_CURSOR);                       \
00111             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(ZOOM_OUT_CURSOR),      \
00112                                     SoViewerProxy::ZOOM_OUT_CURSOR);                      \
00113             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_CURSOR),         \
00114                                     SoViewerProxy::CROSS_CURSOR);                         \
00115             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_PLUS_CURSOR),    \
00116                                     SoViewerProxy::CROSS_PLUS_CURSOR);                    \
00117             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_MINUS_CURSOR),   \
00118                                     SoViewerProxy::CROSS_MINUS_CURSOR);                   \
00119             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_MOVE_CURSOR),    \
00120                                     SoViewerProxy::CROSS_MOVE_CURSOR);                    \
00121             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_ROTATE_CURSOR),  \
00122                                     SoViewerProxy::CROSS_ROTATE_CURSOR);                  \
00123             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_RECT_CURSOR),    \
00124                                     SoViewerProxy::CROSS_RECT_CURSOR);                    \
00125             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_OVAL_CURSOR),    \
00126                                     SoViewerProxy::CROSS_OVAL_CURSOR);                    \
00127             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_VECTOR_CURSOR),  \
00128                                     SoViewerProxy::CROSS_VECTOR_CURSOR);                  \
00129             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_FREEFORM_CURSOR),\
00130                                     SoViewerProxy::CROSS_FREEFORM_CURSOR);                \
00131             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_POINT_CURSOR),   \
00132                                     SoViewerProxy::CROSS_POINT_CURSOR);                   \
00133             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_LINE_CURSOR),    \
00134                                     SoViewerProxy::CROSS_LINE_CURSOR);                    \
00135             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_CURVE_CURSOR),   \
00136                                     SoViewerProxy::CROSS_CURVE_CURSOR);                   \
00137             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_POLYLINE_CURSOR),\
00138                                     SoViewerProxy::CROSS_POLYLINE_CURSOR);                \
00139             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_POLYGON_CURSOR), \
00140                                     SoViewerProxy::CROSS_POLYGON_CURSOR);                 \
00141             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_FILL_CURSOR),    \
00142                                     SoViewerProxy::CROSS_FILL_CURSOR);                    \
00143             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_LINK_CURSOR),    \
00144                                     SoViewerProxy::CROSS_LINK_CURSOR);                    \
00145             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_0_CURSOR),       \
00146                                     SoViewerProxy::CROSS_0_CURSOR);                       \
00147             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_1_CURSOR),       \
00148                                     SoViewerProxy::CROSS_1_CURSOR);                       \
00149             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_2_CURSOR),       \
00150                                     SoViewerProxy::CROSS_2_CURSOR);                       \
00151             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_3_CURSOR),       \
00152                                     SoViewerProxy::CROSS_3_CURSOR);                       \
00153             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_4_CURSOR),       \
00154                                     SoViewerProxy::CROSS_4_CURSOR);                       \
00155             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_5_CURSOR),       \
00156                                     SoViewerProxy::CROSS_5_CURSOR);                       \
00157             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_6_CURSOR),       \
00158                                     SoViewerProxy::CROSS_6_CURSOR);                       \
00159             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_7_CURSOR),       \
00160                                     SoViewerProxy::CROSS_7_CURSOR);                       \
00161             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_8_CURSOR),       \
00162                                     SoViewerProxy::CROSS_8_CURSOR);                       \
00163             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(CROSS_9_CURSOR),       \
00164                                     SoViewerProxy::CROSS_9_CURSOR);                       \
00165             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(LUT_CURSOR),           \
00166                                     SoViewerProxy::LUT_CURSOR);                           \
00167             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(LUT_1_CURSOR),         \
00168                                     SoViewerProxy::LUT_1_CURSOR);                         \
00169             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(LUT_2_CURSOR),         \
00170                                     SoViewerProxy::LUT_2_CURSOR);                         \
00171             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(LUT_3_CURSOR),         \
00172                                     SoViewerProxy::LUT_3_CURSOR);                         \
00173             fieldData->addEnumValue(SO__QUOTE(enumType), SO__QUOTE(SLICING_CURSOR),       \
00174                                     SoViewerProxy::SLICING_CURSOR);                       \
00175         }                                                                                 \
00176     } while (_value_false);                                                               \
00177     }
00178 
00179 #endif /* __SoViewerElement_H */