Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoBoxHighlightRenderAction.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : David Mott (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2020 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : Damien Dallarosa (Nov 2009)
47**=======================================================================*/
48
49
50#ifndef _SO_BOX_HIGHLIGHT_RENDER_ACTION_
51#define _SO_BOX_HIGHLIGHT_RENDER_ACTION_
52
53#include <Inventor/actions/SoHighlightRenderAction.h>
54#include <Inventor/actions/SoCallbackAction.h>
55
56class SbColor;
57class SoSeparator;
58class SoNodeSensor;
59class SoSensor;
60class BoxHighlightCameraChecker;
62
63
162{
163 SO_ACTION_HEADER(SoBoxHighlightRenderAction);
164
165 public:
170
175
176#ifndef HIDDEN_FROM_DOC
181#endif // HIDDEN_FROM_DOC
182
188 virtual void apply(SoNode *node);
189
195 void setColor(const SbColor &c);
199 const SbColor & getColor();
206 void setLinePattern(unsigned short pattern);
210 unsigned short getLinePattern();
215 void setLineWidth(float width);
220
221private:
222
223 private:
224 static void initClass();
225 static void exitClass();
226
227 SoSeparator* getLocalRoot();
228 void setLocalRoot( SoSeparator* );
229
230 private:
231
232 // Nodes which comprise the local highlight graph
233 SoSeparator *localRoot;
234
235 private:
236
237 // Copy Constructor Forbidden
239
240 void constructorCommon();
241
242 static void notificationCB(void* userData, SoSensor* sensor );
243
244 bool updateBBoxSceneGraph(SoNode *renderRoot);
245
246 SoNodeSensor* m_notificationNodeSensor;
247
248 BoxHighlightCameraChecker* m_cameraChecker;
249};
250
251inline SoSeparator*
252SoBoxHighlightRenderAction::getLocalRoot()
253{
254 return localRoot;
255}
256#endif /* _SO_BOX_HIGHLIGHT_RENDER_ACTION_ */
257
258
Color vector class.
Definition SbColor.h:82
Class for representing a viewport.
void setLinePattern(unsigned short pattern)
Sets the line pattern of the highlight.
SoBoxHighlightRenderAction(const SbViewportRegion &viewportRegion)
Constructor which takes the normal SoGLRenderAction parameters.
float getLineWidth()
Gets the line width of the highlight.
unsigned short getLinePattern()
Gets the line pattern of the highlight.
virtual void apply(SoNode *node)
This renders the passed scene graph, and also renders wireframe boxes around selected objects as spec...
void setColor(const SbColor &c)
Sets the color of the highlight.
const SbColor & getColor()
Gets the color of the highlight.
void setLineWidth(float width)
Sets the line width of the highlight.
SoBoxHighlightRenderAction()
Constructor.
Abstract base class for Highlight Render Actions.
Abstract base class for all database nodes.
Definition SoNode.h:145
Sensor class that can be attached to Open Inventor nodes.
Abstract base class for Open Inventor sensors.
Definition SoSensor.h:100
Group node that saves and restores traversal state.