Open Inventor Release 2024.1.2
 
Loading...
Searching...
No Matches
SoDirectionalLightDragger.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 : Paul Isaacs (MMM yyyy)
25** Modified by : David Mott (MMM yyyy)
26**=======================================================================*/
27/*=======================================================================
28 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
29 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
30 *** ***
31 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
32 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
33 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
34 *** ***
35 *** RESTRICTED RIGHTS LEGEND ***
36 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
37 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
38 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
39 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
40 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
41 *** ***
42 *** COPYRIGHT (C) 1996-2019 BY FEI S.A.S, ***
43 *** BORDEAUX, FRANCE ***
44 *** ALL RIGHTS RESERVED ***
45**=======================================================================*/
46/*=======================================================================
47** Modified by : VSG (MMM YYYY)
48**=======================================================================*/
49
50
51
52#ifndef _SO_DIRECTIONAL_LIGHT_DRAGGER_
53#define _SO_DIRECTIONAL_LIGHT_DRAGGER_
54
55#include <Inventor/SbLinear.h>
56#include <Inventor/draggers/SoDragger.h>
57#include <Inventor/fields/SoSFVec3f.h>
58#include <Inventor/fields/SoSFRotation.h>
59#include <Inventor/sensors/SoSensor.h>
60
61class SoFieldSensor;
62
64//
65// Class: SoDirectionalLightDragger
66//
67// This changes the direction of directional lights.
68//
70
267
269
270 // This gives the dragger an overall material. It is edited by lightManips
271 // to make its dragger match the color of the light. Any materials within
272 // other parts will override this one.
273 SO_KIT_CATALOG_ENTRY_HEADER(material);
274
275 // The translator is kept under a separator along with a
276 // rotation that is maintained as the inverse to the rotation of the
277 // light. This means that using the rotator does not rotate the
278 // coordinate system that we translate the base of the dragger in.
279 SO_KIT_CATALOG_ENTRY_HEADER(translatorSep);
280 SO_KIT_CATALOG_ENTRY_HEADER(translatorRotInv);
281 SO_KIT_CATALOG_ENTRY_HEADER(translator);
282 SO_KIT_CATALOG_ENTRY_HEADER(rotator);
283
284 public:
289
300
301 private:
302 static void initClass(); // initialize the class
303 static void exitClass();
304
305 private:
306
307 SoFieldSensor *translFieldSensor;
308 SoFieldSensor *rotFieldSensor;
309 static void fieldSensorCB( void *, SoSensor * );
310 static void valueChangedCB( void *, SoDragger * );
311
312 // detach/attach any sensors, callbacks, and/or field connections.
313 // Also set geometry of childDraggers to be our default instead of their
314 // regular default, using our resources.
315 // Called by: start/end of SoBaseKit::readInstance
316 // and on new copy by: start/end of SoBaseKit::copy.
317 // Classes that redefine must call setUpConnections(TRUE,TRUE)
318 // at end of constructor.
319 // Returns the state of the node when this was called.
320 virtual SbBool setUpConnections( SbBool onOff, SbBool doItAlways = FALSE );
321
322 virtual void setDefaultOnNonWritingFields();
323
325
326 private:
327 static const char geomBuffer[];
328};
329
330#endif /* _SO_DIRECTIONAL_LIGHT_DRAGGER_ */
331
Directional icon you rotate and translate by dragging with the mouse.
SoDirectionalLightDragger()
Constructor.
SoSFRotation rotation
Orientation of the rotating part (an arrow by default).
SoSFVec3f translation
Position of the origin of the directional light dragger.
Base class for nodekits that move in response to click-drag-release mouse events.
Definition SoDragger.h:537
Sensor class that can be attached to Open Inventor fields.
Field containing a rotation.
Field containing a three-dimensional vector.
Definition SoSFVec3f.h:80
Abstract base class for Open Inventor sensors.
Definition SoSensor.h:100
int SbBool
Boolean type.
Definition SbBase.h:87