MeVisLab Resolution Independence API
SoPicking.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_PICKING_H
14#define SO_PICKING_H
15
16
18
19#include <Inventor/nodes/SoSelection.h>
20#include <Inventor/fields/SoSFTrigger.h>
21#include <Inventor/fields/SoSFBool.h>
22#include <Inventor/fields/SoSFEnum.h>
23#include <Inventor/fields/SoSFVec3f.h>
24#include <Inventor/fields/SoSFColor.h>
25#include <Inventor/fields/SoSFVec4f.h>
26#include <Inventor/fields/SoSFFloat.h>
27#include <Inventor/fields/SoSFInt32.h>
28#include <Inventor/fields/SoSFString.h>
29#include <Inventor/fields/SoSFEnum.h>
30#include <Inventor/fields/SoSFPath.h>
31#include <Inventor/actions/SoCallbackAction.h>
32
33#include <SoInteractionNode.h>
34
35class SoNodeSensor;
36class SoDataSensor;
37class SoHandleEventAction;
38
39class SoPicking : public SoInteractionNode
40{
41 SO_NODE_HEADER(SoPicking);
42
43 friend class SoPickingPickAction;
44
45public:
46
49
51 static void initClass();
52
55 SoSFVec3f objectLocal;
56 SoSFVec3f objectWorld;
57 SoSFVec3f normalLocal;
58 SoSFVec3f normalWorld;
59 SoSFVec3f textureLocal3;
60 SoSFVec3f textureWorld3;
61 SoSFVec4f textureLocal4;
62 SoSFVec4f textureWorld4;
63 SoSFBool pointPicked;
64
66 SoSFColor diffuseColor;
67
69 SoSFPath pickedPath;
70
71 SoSFBool highlighted;
72 SoSFBool buttonPressed;
73 SoSFInt32 clickCount;
74
75 SoSFBool enabled;
79 SoSFEnum cursorShape;
80 SoSFString actionID;
81
82 SoSFBool highlighted2;
84 SoSFInt32 clickCount2;
85
86 SoSFBool enabled2;
89 SoSFEnum cursorShape2;
90 SoSFString actionID2;
91
92 SoSFBool highlighted3;
94 SoSFInt32 clickCount3;
95
96 SoSFBool enabled3;
99 SoSFEnum cursorShape3;
100 SoSFString actionID3;
101
103
104protected:
106 void pointerPosition(const SoPointerPosition& pos) override;
107
109 void pointerLeftWindow() override;
110
111private:
113 void _updatePickedPoint(SoHandleEventAction *action);
114
115 void _updateActionID(SoField* field = nullptr);
116 void _updateActionEnabled(SoField* field = nullptr);
117
118 void _updateActionID2(SoField* field = nullptr);
119 void _updateActionEnabled2(SoField* field = nullptr);
120
121 void _updateActionID3(SoField* field = nullptr);
122 void _updateActionEnabled3(SoField* field = nullptr);
123
124 void _updateContinouslyCalled(SoField* field = nullptr);
125
126 SoPointingAction* _pickPointAction;
127 SoPointingAction* _pickPointAction2;
128 SoPointingAction* _pickPointAction3;
129
130 // Used as userData for postTailCallback
131 struct PickingHelper {
132 SbColor diffuseColor;
133 int materialIndex;
134 };
135 static SoCallbackAction::Response postTailCallback(void *userData,
136 SoCallbackAction *action,
137 const SoNode *node);
138};
139
140#endif
141
SoSFBool updateWhileDragging2
Definition SoPicking.h:87
void pointerLeftWindow() override
this is called when the mouse leaves the window
SoSFEnum cursorShape
Definition SoPicking.h:79
SoSFVec3f objectWorld
Definition SoPicking.h:56
SoSFVec3f objectLocal
Definition SoPicking.h:55
SoSFInt32 clickCount3
Definition SoPicking.h:94
SoSFVec3f normalWorld
Definition SoPicking.h:58
SoSFBool enableColorPicking
Definition SoPicking.h:65
SoSFBool highlighted
Definition SoPicking.h:71
SoSFBool pointPicked
Definition SoPicking.h:63
SoSFInt32 clickCount
Definition SoPicking.h:73
SoSFBool performPreClickTest
Definition SoPicking.h:77
SoSFEnum cursorShape2
Definition SoPicking.h:89
SoSFBool updateContinuously
Definition SoPicking.h:78
SoSFVec3f textureLocal3
Definition SoPicking.h:59
SoSFBool performPreClickTest3
Definition SoPicking.h:98
SoSFVec3f normalLocal
Definition SoPicking.h:57
SoSFPath pickedPath
Definition SoPicking.h:69
SoSFBool enabled2
Definition SoPicking.h:86
SoSFBool updateWhileDragging3
Definition SoPicking.h:97
SoSFString actionID3
Definition SoPicking.h:100
SoSFBool buttonPressed
Definition SoPicking.h:72
friend class SoPickingPickAction
Definition SoPicking.h:43
SoSFString actionID
Definition SoPicking.h:80
SoSFVec3f textureWorld3
Definition SoPicking.h:60
SoSFVec4f textureLocal4
Definition SoPicking.h:61
SoSFEnum cursorShape3
Definition SoPicking.h:99
SoPicking()
Constructor.
SoSFVec4f textureWorld4
Definition SoPicking.h:62
SoSFBool buttonPressed2
Definition SoPicking.h:83
SoSFString actionID2
Definition SoPicking.h:90
SoSFBool updateWhileDragging
Definition SoPicking.h:76
SoSFBool highlighted3
Definition SoPicking.h:92
void pointerPosition(const SoPointerPosition &pos) override
this is called for every mouse move
SoSFBool enabled
Definition SoPicking.h:75
SoSFBool buttonPressed3
Definition SoPicking.h:93
SoSFBool enablePathPicking
Definition SoPicking.h:68
SoSFColor diffuseColor
Definition SoPicking.h:66
static void initClass()
Initializes this class.
SoSFBool performPreClickTest2
Definition SoPicking.h:88
SoSFInt32 clickCount2
Definition SoPicking.h:84
SoSFBool highlighted2
Definition SoPicking.h:82
SoSFBool enabled3
Definition SoPicking.h:96