GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SOTRACKBALLDRAGGER (3)

NAME

SoTrackballDragger — striped ball you can rotate or scale uniformly by dragging with the mouse

CONTENTS

Inherits From
Synopsis
Description
Fields
Methods
Catalog Parts
Dragger Resources
File Format/defaults
Note
See Also

INHERITS FROM

SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoTrackballDragger

SYNOPSIS

#include <Inventor/draggers/SoTrackballDragger.h>

Fields from class SoTrackballDragger:

    SoSFVec3f    
                    
SoSFVec3f            scaleFactor    
SoSFRotation    
                    
SoSFRotation         rotation

Fields from class SoDragger:

    SoSFBool    
                    
SoSFBool             isActive

Fields from class SoInteractionKit:

    SoSFEnum    
                    
SoSFEnum             renderCaching    
SoSFEnum    
                    
SoSFEnum             boundingBoxCaching    
SoSFEnum    
                    
SoSFEnum             renderCulling    
SoSFEnum    
                    
SoSFEnum             pickCulling

Parts from class SoBaseKit:

    (SoNodeKitListPart)    
                     
(SoNodeKitListPart)   callbackList

Methods from class SoTrackballDragger:

       
                    
                     SoTrackballDragger()    
SbBool    
                    
SbBool               isAnimationEnabled()    
void    
                    
void                 setAnimationEnabled(SbBool newVal)    
static const SoNodekitCatalog *    
                    
static const SoNodekitCatalog * getClassNodekitCatalog() const    
static SoType    
                    
static SoType        getClassTypeId()

Methods from class SoDragger:

    void    
                    
void                 addStartCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 removeStartCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 addMotionCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 removeMotionCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 addFinishCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 removeFinishCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 addValueChangedCallback(SoDraggerCB *f, void *userData = NULL)    
void    
                    
void                 removeValueChangedCallback(SoDraggerCB *f, void *userData = NULL)    
SbBool    
                    
SbBool               enableValueChangedCallbacks()    
void    
                    
void                 setMinGesture(int pixels)    
int    
                    
int                  getMinGesture() const    
static void    
                    
static void          setMinScale(float newMinScale)    
static float    
                    
static float         getMinScale()

Methods from class SoInteractionKit:

    virtual SbBool    
                    
virtual SbBool       setPartAsPath(const SbName &partName, SoPath *surrogatePath )

Methods from class SoBaseKit:

    virtual const SoNodekitCatalog *    
                         
virtual const SoNodekitCatalog * getNodekitCatalog() const    
virtual SoNode *    
                         
virtual SoNode *          getPart(const SbName &partName, SbBool makeIfNeeded)    
SbString    
                         
SbString                  getPartString(const SoBase *part)    
virtual SoNodeKitPath *    
                         
virtual SoNodeKitPath *   createPathToPart(const SbName &partName, SbBool makeIfNeeded, const SoPath *pathToExtend = NULL)    
virtual SbBool    
                         
virtual SbBool            setPart(const SbName &partName, SoNode *newPart)    
SbBool    
                         
SbBool                    set(char *partName, char *parameters)    
SbBool    
                         
SbBool                    set(char *nameValuePairs)    
static SbBool    
                         
static SbBool             isSearchingChildren()    
static void    
                         
static void               setSearchingChildren(SbBool newVal)

Methods from class SoNode:

    void    
                    
void                 setOverride(SbBool state)    
SbBool    
                    
SbBool               isOverride() const    
SoNode *    
                    
SoNode *             copy(SbBool copyConnections = FALSE) const    
virtual SbBool    
                    
virtual SbBool       affectsState() const    
static SoNode *    
                    
static SoNode *      getByName(const SbName &name)    
static int    
                    
static int           getByName(const SbName &name, SoNodeList &list)

Methods from class SoFieldContainer:

    void    
                    
void                 setToDefaults()    
SbBool    
                    
SbBool               hasDefaultValues() const    
SbBool    
                    
SbBool               fieldsAreEqual(const SoFieldContainer *fc) const    
void    
                    
void                 copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)    
void    
                    
void                 get(SbString &fieldDataString)    
virtual int    
                    
virtual int          getFields(SoFieldList &resultList) const    
virtual SoField *    
                    
virtual SoField *    getField(const SbName &fieldName) const    
SbBool    
                    
SbBool               getFieldName(const SoField *field, SbName &fieldName) const    
SbBool    
                    
SbBool               isNotifyEnabled() const    
SbBool    
                    
SbBool               enableNotify(SbBool flag)

Methods from class SoBase:

    void    
                    
void                 ref()    
void    
                    
void                 unref() const    
void    
                    
void                 unrefNoDelete() const    
void    
                    
void                 touch()    
virtual SoType    
                    
virtual SoType       getTypeId() const    
SbBool    
                    
SbBool               isOfType(SoType type) const    
virtual void    
                    
virtual void         setName(const SbName &name)    
virtual SbName    
                    
virtual SbName       getName() const

Macros from class SoBaseKit:

SO_GET_PART(kit, partName, partClass)
                    
SO_CHECK_PART(kit, partName, partClass)
                    

DESCRIPTION

SoTrackballDragger is a ball wrapped in three circular stripes. The stripes are oriented like wheels that spin around the x, y, and z axes. Drag the stripes to rotate the trackball around those axes. You do not have to hit the lines; pick anywhere within the stripe’s outline. To rotate the trackball freely in 3 dimensions, click the area between the stripes and then drag. An invisible but pickable sphere initiates this dragging. If the mouse is still moving when you release it, the trackball will continue to spin.

Press the <Control> key to scale the trackball uniformly instead of rotating.

Press the <Shift> key and the user axis appears; this is a draggable axis with an extra stripe around it. Moving the mouse along the surface of the sphere drags the ’pole’ of the axis. Release the <Shift> key and the user axis remains; drag the new stripe for constrained rotation around the user axis. To make the user axis disappear, press <Shift> and drag the pole to where two of other stripes intersect. This aligns the user axis with a primary axis, at which point the user axis disappears.

As you drag the trackball, it updates its rotation field, or its scaleFactor field if the <Control> key is down. As with all draggers, if you change the fields the dragger moves in response.

Remember: This is not an SoTransform!. If you want to move other objects with this dragger, you can either:

[a] Use an SoTrackballManip, which is subclassed from SoTransform. The manipulator creates one of these draggers and uses it as the interface to edit the manipulator’s fields. (see the SoTrackballManip reference page).

[b] Use field-to-field connections to connect the fields of this dragger to those of any SoTransformation node.

You can change the parts in any instance of this dragger using setPart(). The default part geometries are defined as resources for this SoTrackballDragger class. They are detailed in the Dragger Resources section of the online reference page for this class. You can make your program use different default resources for the parts by copying the file /usr/share/data/draggerDefaults/trackballDragger.iv into your own directory, editing the file, and then setting the environment variable SO_DRAGGER_DIR to be a path to that directory.

FIELDS

    SoSFVec3f    
                    
SoSFVec3f            scaleFactor
Scale of the dragger.

    SoSFRotation    
                    
SoSFRotation         rotation
Orientation of the dragger.

METHODS

       
                    
                     SoTrackballDragger()
Constructor.

    SbBool    
                    
SbBool               isAnimationEnabled()    
void    
                    
void                 setAnimationEnabled(SbBool newVal)
If the mouse is moving while you release it, the trackball will continue to spin afterwards. These two methods will query and set whether this feature is turned on or off. By default, the animation feature is turned on.

    static const SoNodekitCatalog *    
                    
static const SoNodekitCatalog * getClassNodekitCatalog() const
Returns an SoNodekitCatalog for this class

    static SoType    
                    
static SoType        getClassTypeId()
Returns type identifier for this class.

CATALOG PARTS

All parts
   NULL by
Part NamePart TypeDefault TypeDefault
callbackListNodeKitListPart--yes
surroundScaleSurroundScale--yes
antiSquishAntiSquish--no
rotatorSeparator--yes
rotatorActiveSeparator--yes
XRotatorSeparator--yes
XRotatorActiveSeparator--yes
YRotatorSeparator--yes
YRotatorActiveSeparator--yes
ZRotatorSeparator--yes
ZRotatorActiveSeparator--yes
userAxisSeparator--yes
userAxisActiveSeparator--yes
userRotatorSeparator--yes
userRotatorActiveSeparator--yes

Extra information for list parts from above table
Part NameContainer TypePermissible Types 
callbackListSeparatorCallback, EventCallback

DRAGGER RESOURCES

.in 0n+.5i     Resource:         trackballRotator
.in 0n+.5i     Part:             rotator    
Appearance:       Invisible but pickable sphere    
Description:      Initiates unconstrained 3D rotation. Slightly smaller radius than the stripes, so you must pick between the stripes to use it.

.in 0n+.5i     Resource:         trackballRotatorActive
.in 0n+.5i     Part:             rotatorActive    
Appearance:       Invisible sphere    
Description:      Displayed during unconstrained 3D rotation.

.in 0n+.5i     Resource:         trackballXRotator
.in 0n+.5i     Part:             XRotator    
Appearance:       White outline of a stripe aligned with the X axis.    
Description:      Pick this to initiate constrained rotation about the X axis.

.in 0n+.5i     Resource:         trackballXRotatorActive
.in 0n+.5i     Part:             XRotatorActive    
Appearance:       Yellow version of the regular XRotator    
Description:      Displayed during constrained rotation about the X axis.

.in 0n+.5i     Resource:         trackballYRotator
.in 0n+.5i     Part:             YRotator    
Appearance:       White outline of a stripe aligned with the Y axis.    
Description:      Pick this to initiate constrained rotation about the Y axis.

.in 0n+.5i     Resource:         trackballYRotatorActive
.in 0n+.5i     Part:             YRotatorActive    
Appearance:       Yellow version of the regular YRotator    
Description:      Displayed during constrained rotation about the Y axis.

.in 0n+.5i     Resource:         trackballZRotator
.in 0n+.5i     Part:             ZRotator    
Appearance:       White outline of a stripe aligned with the Z axis.    
Description:      Pick this to initiate constrained rotation about the Z axis.

.in 0n+.5i     Resource:         trackballZRotatorActive
.in 0n+.5i     Part:             ZRotatorActive    
Appearance:       Yellow version of the regular ZRotator    
Description:      Displayed during constrained rotation about the Z axis.

.in 0n+.5i     Resource:         trackballUserAxis
.in 0n+.5i     Part:             userAxis    
Appearance:       Thin purple line    
Description:      Displays the user axis. Dragging the userRotator rotates about this line.

.in 0n+.5i     Resource:         trackballUserAxisActive
.in 0n+.5i     Part:             userAxisActive    
Appearance:       Thin purple line    
Description:      Displays the user axis. Dragging the userRotator rotates about this line.

.in 0n+.5i     Resource:         trackballUserRotator
.in 0n+.5i     Part:             userRotator    
Appearance:       Transparent green stripe circling the user axis.    
Description:      Pick to initiate constrained rotation about the user axis.

.in 0n+.5i     Resource:         trackballUserRotatorActive
.in 0n+.5i     Part:             userRotatorActive    
Appearance:       Brighter green version of the regular userRotator    
Description:      Displayed during constrained rotation about the user axis.

FILE FORMAT/DEFAULTS

TrackballDragger {



renderCaching       AUTO
boundingBoxCaching  AUTO
renderCulling       AUTO
pickCulling         AUTO
isActive            FALSE
rotation            0 0 1  0
scaleFactor         1 1 1
callbackList        NULL
surroundScale       NULL
antiSquish          AntiSquish {
    sizing LONGEST_DIAGONAL }

rotator             <trackballRotator resource> rotatorActive       <trackballRotatorActive resource> XRotator            <trackballXRotator resource> XRotatorActive      <trackballXRotatorActive resource> YRotator            <trackballYRotator resource> YRotatorActive      <trackballYRotatorActive resource> ZRotator            <trackballZRotator resource> ZRotatorActive      <trackballZRotatorActive resource> userAxis            <trackballUserAxis resource> userAxisActive      <trackballUserAxisActive resource> userRotator         <trackballUserRotator resource> userRotatorActive   <trackballUserRotatorActive resource> }

NOTE

Unlike most multi-function draggers, SoTrackballDragger is not a compound dragger made up of other draggers that perform its smaller tasks. This is not because it was inappropriate, but because the trackball was written before implementation of the methods that take care of synchronizing multiple child draggers. The younger SoCenterballDragger is similar in form to the trackball, but the centerball is a compound dragger.

SEE ALSO

SoInteractionKit, SoDragger, SoCenterballDragger, SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger, SoJackDragger, SoPointLightDragger, SoRotateCylindricalDragger, SoRotateDiscDragger, SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger, SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger, SoTabBoxDragger, SoTabPlaneDragger, SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger, SoTranslate2Dragger

Search for    or go to Top of page |  Section 3 |  Main Index


SOTRACKBALLDRAGGER(3IV) (-->)

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.