MeVisLab Resolution Independence API
SoViewerElement.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #ifndef SO_VIEWER_ELEMENT_H
14 #define SO_VIEWER_ELEMENT_H
15 
17 
18 #include "InventorWrapperDllInit.h"
19 #include "SoViewerProxy.h"
20 
21 #include <ThirdPartyWarningsDisable.h>
22 #include <Inventor/elements/SoSubElement.h>
23 #include <ThirdPartyWarningsRestore.h>
24 
25 class SoAction;
26 
28 class INVENTORWRAPPER_API SoViewerElement : public SoElement
29 {
30  SO_ELEMENT_HEADER(SoViewerElement);
31 
32  public:
34  void init(SoState *state) override;
35 
38  SbBool matches(const SoElement *elt) const override;
39 
41  SoElement* copyMatchInfo() const override;
42 
44  static void set(SoState *state, SoViewerProxy* proxy);
45 
47  static SoViewerProxy* get(SoState *state);
48 
51  static void setCursor (SoState *state, int shapeID);
52 
55  static double getDevicePixelRatio (SoState *state);
56 
59  static void setViewerProxyCB (void* userData, SoAction* action);
60 
61  SoINTERNAL public:
63  static void initClass();
64 
65  protected:
68 
69  ~SoViewerElement() override;
70 };
71 
74 #define SO_NODE_DEFINE_CURSOR_SHAPE_ENUM(enumType) { \
75  int _value_false= 0; \
76  do { \
77  SO__NODE_CHECK_CONSTRUCT(__FILE__); \
78  if (firstInstance) { \
79  for (int i=SoViewerProxy::UNDEFINED_CURSOR;i<SoViewerProxy::getPredefinedCursorCount();++i) { \
80  fieldData->addEnumValue(SO__QUOTE(enumType), \
81  SoViewerProxy::cursorShapeNames()[i+1], i); \
82  } \
83  } \
84  } while (_value_false); \
85  }
86 
87 #endif /* __SoViewerElement_H */
#define INVENTORWRAPPER_API
Library initialization and export macros for platform independecy of project.
Element that stores a proxy object to the currently active viewer.
void init(SoState *state) override
Initializes element.
static void set(SoState *state, SoViewerProxy *proxy)
Sets the proxy for the currently active viewer.
SoViewerProxy * _proxy
Pointer to the proxy for the active viewer.
SbBool matches(const SoElement *elt) const override
Always returns TRUE, since this element should never be a criterion for cache invalidation.
static void setCursor(SoState *state, int shapeID)
Convenience method which calls the corresponding method of SoViewerProxy (or does nothing if the prox...
static void initClass()
Initializes the SoViewerElement class.
~SoViewerElement() override
static SoViewerProxy * get(SoState *state)
Returns the proxy for the currently active viewer (might be NULL!)
SoElement * copyMatchInfo() const override
Create and return a copy of this element.
static void setViewerProxyCB(void *userData, SoAction *action)
this callback can be used with SoCallback nodes and simply sets the SoViewerProxy given as userData
This class gives access to state of a viewer during scene graph traversal.
Definition: SoViewerProxy.h:30
static double getDevicePixelRatio(SoState *state)
Convenience method which calls the corresponding method of SoViewerProxy.