SoRotateCylindricalDragger(3IV)NAMESoRotateCylindricalDragger (SoRotCylDrag) - object you rotate along a
cylindrical surface by dragging with the mouse
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit >
SoDragger > SoRotateCylindricalDraggerSYNOPSIS
#include <Inventor_c/draggers/SoRotateCylindricalDragger.h>
typedef SoRotateCylindricalDragger
SoRotCylDrag
Fields from class SoRotateCylindricalDragger:
SoSFRotation rotation
Fields from class SoDragger:
SoSFBool isActive
Fields from class SoInteractionKit:
SoSFEnum renderCaching
SoSFEnum boundingBoxCaching
SoSFEnum renderCulling
SoSFEnum pickCulling
Parts from class SoBaseKit:
(SoNodeKitListPart) callbackList
Functions from class SoRotateCylindricalDragger:
SoRotateCylindricalDragger * SoRotCylDragCreate()
void SoRotCylDragSetProj(SoRotCylDrag *this,
SbCylinderProjector *p)
const SbCylinderProjector * SoRotCylDragGetProj(const SoRotCylDrag
*this)
const SoNodekitCatalog * SoRotCylDragGetClassNkitCat()
SoType SoRotCylDragGetClassTypeId()
Functions from class SoDragger:
void SoRotCylDragAddStartCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragRemoveStartCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragAddMotionCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
Page 1SoRotateCylindricalDragger(3IV)
void SoRotCylDragRemoveMotionCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragAddFinishCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragRemoveFinishCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragAddValueChangedCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
void SoRotCylDragRemoveValueChangedCB(SoRotCylDrag *this,
SoDraggerCB *f, void *userData = NULL)
SbBool SoRotCylDragEnableValueChangedCBs(SoRotCylDrag *this)
void SoRotCylDragSetMinGesture(SoRotCylDrag *this, int
pixels)
int SoRotCylDragGetMinGesture(const SoRotCylDrag *this)
void SoRotCylDragSetMinScale(float newMinScale)
float SoRotCylDragGetMinScale()
Functions from class SoInteractionKit:
SbBool SoRotCylDragSetPartAsPath(SoRotCylDrag *this, const
char *partName, SoPath *surrogatePath )
Functions from class SoBaseKit:
const SoNodekitCatalog * SoRotCylDragGetCat(const SoRotCylDrag *this)
SoNode * SoRotCylDragGetPart(SoRotCylDrag *this, const
char *partName, SbBool makeIfNeeded)
SbString SoRotCylDragGetPartString(SoRotCylDrag *this,
const SoBase *part)
SoNodeKitPath * SoRotCylDragCreatePathToPart(SoRotCylDrag
*this, const char *partName, SbBool
makeIfNeeded, const SoPath *pathToExtend =
NULL)
SbBool SoRotCylDragSetPart(SoRotCylDrag *this, const
char *partName, SoNode *newPart)
SbBool SoRotCylDragSet(SoRotCylDrag *this, char
*partName, char *parameters)
SbBool SoRotCylDragSet2(SoRotCylDrag *this, char
*nameValuePairs)
SbBool SoRotCylDragIsSearchingChildren()
void SoRotCylDragSetSearchingChildren(SbBool newVal)
Functions from class SoNode:
void SoRotCylDragSetOverride(SoRotCylDrag *this, SbBool
state)
SbBool SoRotCylDragIsOverride(const SoRotCylDrag *this)
SoNode * SoRotCylDragCopy(const SoRotCylDrag *this, SbBool
copyConnections = FALSE)
SbBool SoRotCylDragAffectsState(const SoRotCylDrag *this)
SoNode * SoRotCylDragGetByName(const char *name)
Page 2SoRotateCylindricalDragger(3IV)
int SoRotCylDragGetByNameList(const char *name,
SoNodeList *list)
Functions from class SoFieldContainer:
void SoRotCylDragSetToDflts(SoRotCylDrag *this)
SbBool SoRotCylDragHasDfltVals(const SoRotCylDrag *this)
SbBool SoRotCylDragFldsAreEq(const SoRotCylDrag *this, const
SoFieldContainer *fc)
void SoRotCylDragCopyFieldVals(SoRotCylDrag *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
void SoRotCylDragGet(SoRotCylDrag *this, SbString
*fieldDataString)
int SoRotCylDragGetFields(const SoRotCylDrag *this,
SoFieldList *resultList)
SoField * SoRotCylDragGetField(const SoRotCylDrag *this, const
char *fieldName)
SbBool SoRotCylDragGetFieldName(const SoRotCylDrag *this,
const SoField *field, SbName *fieldName)
SbBool SoRotCylDragIsNotifyEnabled(const SoRotCylDrag *this)
SbBool SoRotCylDragEnableNotify(SoRotCylDrag *this, SbBool
flag)
Functions from class SoBase:
void SoRotCylDragRef(SoRotCylDrag *this)
void SoRotCylDragUnref(const SoRotCylDrag *this)
void SoRotCylDragUnrefNoDelete(const SoRotCylDrag *this)
void SoRotCylDragTouch(SoRotCylDrag *this)
SoType SoRotCylDragGetTypeId(const SoRotCylDrag *this)
SbBool SoRotCylDragIsOfType(const SoRotCylDrag *this, SoType
type)
void SoRotCylDragSetName(SoRotCylDrag *this, const char
*name)
SbName SoRotCylDragGetName(const SoRotCylDrag *this)
DESCRIPTIONSoRotateCylindricalDragger is a simple dragger that rotates about the y
axis of its local space. The feel of the rotation is as if you were
spinning a cylinder about its axis of rotation. The local space is
determined by its location in the scene graph. Transformation nodes
placed before it will affect both the dragger and the direction of
motion.
This node has a rotation field which always reflects its orientation in
local space. If you set the field, the dragger will rotate accordingly.
You can also connect fields of other nodes or engines from this one to
make them follow the dragger's orientation.
This dragger contains four parts, rotator, rotatorActive, feedback, and
Page 3SoRotateCylindricalDragger(3IV)
feedbackActive.
Each of these is set by default from a resource described in the Dragger
Resources section of the online reference page for this class. You can
change the parts in any instance of this dragger using
SoDraggerSetPart().
You can make your program use different default resources for the parts
by copying the file
/usr/share/data/draggerDefaults/rotateCylindricalDragger.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
SoSFRotation rotation
Orientation of the dragger.
FUNCTIONSSoRotateCylindricalDragger * SoRotCylDragCreate()
Constructor.
void SoRotCylDragSetProj(SoRotCylDrag *this,
SbCylinderProjector *p)
const SbCylinderProjector * SoRotCylDragGetProj(const SoRotCylDrag
*this)
Set and get a different cylinder projector. See the
SbCylinderProjector man pages to find out how each kind affects the
feel of your dragger's motion. The default uses an
SbCylinderPlaneProjector.
Passing in NULL will cause this default type of projector to be
used. Any projector you pass in will be deleted by this dragger when
this dragger is deleted. Note that the axis and radius of the
cylinder are determined by the dragger, based on the y-axis in local
space and how far the initial mouse click occured from the center of
rotation.
const SoNodekitCatalog * SoRotCylDragGetClassNkitCat()
Returns an SoNodekitCatalog for this class
SoType SoRotCylDragGetClassTypeId()
Returns type identifier for this class.
CATALOG PARTSPage 4SoRotateCylindricalDragger(3IV)
___________________________________________________________
All parts
NULL by
Part Name Part Type Default Type Default
callbackList NodeKitListPart -- yes
rotator Separator -- yes
rotatorActive Separator -- yes
feedback Separator -- yes
feedbackActive Separator -- yes
___________________________________________________________
|
|
________________________________________________________________
Extra information for list parts from above table
Part Name Container Type Permissible Types
Callback, EventCallback
callbackList Separator
________________________________________________________________
|
|
DRAGGER RESOURCES
Resource: rotateCylindricalRotator
Part: rotator
Appearance: white cylinder (with vertical axis) made of lines
Description: picking this initiates rotation
Resource: rotateCylindricalRotatorActive
Part: rotatorActive
Appearance: yellow version of rotator
Description: displayed while in motion instead of the rotator
Resource: rotateCylindricalFeedback
Part: feedback
Appearance: thin purple line along local y-axis
Description: shows center of rotation when not moving
Resource: rotateCylindricalFeedbackActive
Part: feedbackActive
Appearance: thin, slightly brighter purple line along local y-axis
Description: shows center of rotation when moving
FILE FORMAT/DEFAULTS
RotateCylindricalDragger {
renderCaching AUTO
boundingBoxCaching AUTO
renderCulling AUTO
pickCulling AUTO
isActive FALSE
rotation 0 0 1 0
callbackList NULL
rotator <rotateCylindricalRotator resource>
rotatorActive <rotateCylindricalRotatorActive resource>
Page 5SoRotateCylindricalDragger(3IV)
feedback <rotateCylindricalFeedback resource>
feedbackActive <rotateCylindricalFeedbackActive resource>
}
SEE ALSO
SoInteractionKit, SoDragger, SoCenterballDragger,
SoDirectionalLightDragger, SoDragPointDragger, SoHandleBoxDragger,
SoJackDragger, SoPointLightDragger, SoRotateDiscDragger,
SoRotateSphericalDragger, SoScale1Dragger, SoScale2Dragger,
SoScale2UniformDragger, SoScaleUniformDragger, SoSpotLightDragger,
SoTabBoxDragger, SoTabPlaneDragger, SoTrackballDragger,
SoTransformBoxDragger, SoTransformerDragger, SoTranslate1Dragger,
SoTranslate2Dragger
Page 6