Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoTransformBoxDragger.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 : Howard Look (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#ifndef _SO_TRANSFORM_BOX_DRAGGER_
52#define _SO_TRANSFORM_BOX_DRAGGER_
53
54#include <Inventor/SbLinear.h>
55#include <Inventor/draggers/SoDragger.h>
56#include <Inventor/fields/SoSFVec3f.h>
57#include <Inventor/fields/SoSFRotation.h>
58#include <Inventor/sensors/SoSensor.h>
59
60class SbDict;
61class SoFieldSensor;
62
349{
350 SO_KIT_HEADER(SoTransformBoxDragger);
351
352 // For making the dragger surround what lies above it.
353 SO_KIT_CATALOG_ENTRY_HEADER(surroundScale);
354 // For keeping the dragger even size in all 3 dimensions
355 SO_KIT_CATALOG_ENTRY_HEADER(antiSquish);
356
357 SO_KIT_CATALOG_ENTRY_HEADER(scaler);
358 SO_KIT_CATALOG_ENTRY_HEADER(rotator1Sep);
359 SO_KIT_CATALOG_ENTRY_HEADER(rotator1Rot);
360 SO_KIT_CATALOG_ENTRY_HEADER(rotator1);
361 SO_KIT_CATALOG_ENTRY_HEADER(rotator2Sep);
362 SO_KIT_CATALOG_ENTRY_HEADER(rotator2Rot);
363 SO_KIT_CATALOG_ENTRY_HEADER(rotator2);
364 SO_KIT_CATALOG_ENTRY_HEADER(rotator3Sep);
365 SO_KIT_CATALOG_ENTRY_HEADER(rotator3Rot);
366 SO_KIT_CATALOG_ENTRY_HEADER(rotator3);
367 SO_KIT_CATALOG_ENTRY_HEADER(translator1Sep);
368 SO_KIT_CATALOG_ENTRY_HEADER(translator1Rot);
369 SO_KIT_CATALOG_ENTRY_HEADER(translator1);
370 SO_KIT_CATALOG_ENTRY_HEADER(translator2Sep);
371 SO_KIT_CATALOG_ENTRY_HEADER(translator2Rot);
372 SO_KIT_CATALOG_ENTRY_HEADER(translator2);
373 SO_KIT_CATALOG_ENTRY_HEADER(translator3Sep);
374 SO_KIT_CATALOG_ENTRY_HEADER(translator3Rot);
375 SO_KIT_CATALOG_ENTRY_HEADER(translator3);
376 SO_KIT_CATALOG_ENTRY_HEADER(translator4Sep);
377 SO_KIT_CATALOG_ENTRY_HEADER(translator4Rot);
378 SO_KIT_CATALOG_ENTRY_HEADER(translator4);
379 SO_KIT_CATALOG_ENTRY_HEADER(translator5Sep);
380 SO_KIT_CATALOG_ENTRY_HEADER(translator5Rot);
381 SO_KIT_CATALOG_ENTRY_HEADER(translator5);
382 SO_KIT_CATALOG_ENTRY_HEADER(translator6Sep);
383 SO_KIT_CATALOG_ENTRY_HEADER(translator6Rot);
384 SO_KIT_CATALOG_ENTRY_HEADER(translator6);
385
386 public:
391
412
413 private:
414 static void initClass(); // initialize the class
415 static void exitClass();
416
417 private:
418
419 SoFieldSensor *rotFieldSensor;
420 SoFieldSensor *translFieldSensor;
421 SoFieldSensor *scaleFieldSensor;
422 static void fieldSensorCB( void *, SoSensor * );
423 static void valueChangedCB( void *, SoDragger * );
424
425 static void invalidateSurroundScaleCB( void *, SoDragger * );
426
427 // detach/attach callbacks to child draggers.
428 // Also set geometry of childDraggers to be our default instead of their
429 // regular default, using our resources.
430 // Called by: start/end of SoBaseKit::readInstance
431 // and on new copy by: start/end of SoBaseKit::copy.
432 // Classes that redefine must call setUpConnections(TRUE,TRUE)
433 // at end of constructor.
434 // Returns the state of the node when this was called.
435 virtual SbBool setUpConnections( SbBool onOff, SbBool doItAlways = FALSE );
436
437 virtual void setDefaultOnNonWritingFields();
438
439 virtual ~SoTransformBoxDragger();
440
441 private:
442 static const char geomBuffer[];
443};
444
445#endif /* _SO_TRANSFORM_BOX_DRAGGER_ */
446
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
Box-like object you scale, rotate, and translate by dragging with the mouse.
SoSFVec3f translation
Position of the dragger.
SoTransformBoxDragger()
Constructor.
SoSFVec3f scaleFactor
Scale of the dragger.
SoSFRotation rotation
Orientation of the dragger.
int SbBool
Boolean type.
Definition SbBase.h:87