.TH "SoScale2UniformDragger" 3 "Thu May 29 2014" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoScale2UniformDragger \- .PP The \fBSoScale2UniformDragger\fP class provides a mechanism for the end-user to scale in two dimensions\&. .PP Here's how the dragger looks with its default geometry in the inactive state: .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBSoDragger\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual \fBSoType\fP \fBgetTypeId\fP (void) const " .br .RI "\fIReturns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. \fP" .ti -1c .RI "virtual const \fBSoNodekitCatalog\fP * \fBgetNodekitCatalog\fP (void) const " .br .ti -1c .RI "\fBSoScale2UniformDragger\fP (void)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static const \fBSoNodekitCatalog\fP * \fBgetClassNodekitCatalog\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .in -1c .SS "Public Attributes" .in +1c .ti -1c .RI "\fBSoSFVec3f\fP \fBscaleFactor\fP" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "virtual const \fBSoFieldData\fP * \fBgetFieldData\fP (void) const " .br .ti -1c .RI "virtual \fB~SoScale2UniformDragger\fP (void)" .br .ti -1c .RI "virtual SbBool \fBsetUpConnections\fP (SbBool onoff, SbBool doitalways=FALSE)" .br .ti -1c .RI "void \fBdragStart\fP (void)" .br .ti -1c .RI "void \fBdrag\fP (void)" .br .ti -1c .RI "void \fBdragFinish\fP (void)" .br .in -1c .SS "Static Protected Member Functions" .in +1c .ti -1c .RI "static const \fBSoFieldData\fP ** \fBgetFieldDataPtr\fP (void)" .br .ti -1c .RI "static const \fBSoNodekitCatalog\fP ** \fBgetClassNodekitCatalogPtr\fP (void)" .br .ti -1c .RI "static void \fBstartCB\fP (void *f, \fBSoDragger\fP *d)" .br .ti -1c .RI "static void \fBmotionCB\fP (void *f, \fBSoDragger\fP *d)" .br .ti -1c .RI "static void \fBfinishCB\fP (void *f, \fBSoDragger\fP *d)" .br .ti -1c .RI "static void \fBfieldSensorCB\fP (void *f, \fBSoSensor\fP *s)" .br .ti -1c .RI "static void \fBvalueChangedCB\fP (void *f, \fBSoDragger\fP *d)" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBSoSFNode\fP \fBfeedback\fP" .br .ti -1c .RI "\fBSoSFNode\fP \fBfeedbackActive\fP" .br .ti -1c .RI "\fBSoSFNode\fP \fBfeedbackSwitch\fP" .br .ti -1c .RI "\fBSoSFNode\fP \fBscaler\fP" .br .ti -1c .RI "\fBSoSFNode\fP \fBscalerActive\fP" .br .ti -1c .RI "\fBSoSFNode\fP \fBscalerSwitch\fP" .br .ti -1c .RI "\fBSoFieldSensor\fP * \fBfieldSensor\fP" .br .ti -1c .RI "\fBSbLineProjector\fP * \fBlineProj\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoScale2UniformDragger\fP class provides a mechanism for the end-user to scale in two dimensions\&. .PP Here's how the dragger looks with its default geometry in the inactive state: .PP Use this dragger to allow the end-user of your application to scale along the X-axis and the Y-axis\&. (Use a transformation node in front of the dragger to position it and re-orient it to scale in any plane\&.) .PP Scaling with this dragger can only be done in a uniform manner, ie the X component of the \fBSoScale2UniformDragger::scaleFactor\fP will always equal the Y component\&. .PP For non-uniform scaling operations in 2 dimensions, use the \fBSoScale2Dragger\fP\&. .PP \fBSee also:\fP .RS 4 \fBSoScaleUniformDragger\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "SoScale2UniformDragger::SoScale2UniformDragger (void)" Default constructor, sets up the dragger nodekit catalog with the interaction and feedback geometry\&. .PP Node kit structure (new entries versus parent class marked with arrow prefix): .PP .PP .nf CLASS SoScale2UniformDragger -->"this" "callbackList" "topSeparator" "motionMatrix" "geomSeparator" --> "scalerSwitch" --> "scaler" --> "scalerActive" --> "feedbackSwitch" --> "feedback" --> "feedbackActive" .fi .PP .PP (See \fBSoBaseKit::printDiagram()\fP for information about the output formatting\&.) .PP Detailed information on catalog parts: .PP .PP .nf CLASS SoScale2UniformDragger PVT "this", SoScale2UniformDragger --- "callbackList", SoNodeKitListPart [ SoCallback, SoEventCallback ] PVT "topSeparator", SoSeparator --- PVT "motionMatrix", SoMatrixTransform --- PVT "geomSeparator", SoSeparator --- PVT "scalerSwitch", SoSwitch --- "scaler", SoSeparator --- "scalerActive", SoSeparator --- PVT "feedbackSwitch", SoSwitch --- "feedback", SoSeparator --- "feedbackActive", SoSeparator --- .fi .PP .PP (See \fBSoBaseKit::printTable()\fP for information about the output formatting\&.) .SS "SoScale2UniformDragger::~SoScale2UniformDragger (void)\fC [protected]\fP, \fC [virtual]\fP" Protected destructor\&. .PP (Dragger classes are derived from \fBSoBase\fP, so they are reference counted and automatically destroyed when their reference count goes to 0\&.) .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoScale2UniformDragger::getTypeId (void) const\fC [virtual]\fP" .PP Returns the type identification of an object derived from a class inheriting \fBSoBase\fP\&. This is used for run-time type checking and 'downward' casting\&. Usage example: .PP .PP .nf void foo(SoNode * node) { if (node->getTypeId() == SoFile::getClassTypeId()) { SoFile * filenode = (SoFile *)node; // safe downward cast, knows the type } } .fi .PP .PP For application programmers wanting to extend the library with new nodes, engines, nodekits, draggers or others: this method needs to be overridden in \fIall\fP subclasses\&. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through for instance \fBInventor/nodes/SoSubNode\&.h\fP (SO_NODE_INIT_CLASS and SO_NODE_CONSTRUCTOR for node classes), Inventor/engines/SoSubEngine\&.h (for engine classes) and so on\&. .PP For more information on writing Coin extensions, see the class documentation of the toplevel superclasses for the various class groups\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "const \fBSoFieldData\fP * SoScale2UniformDragger::getFieldData (void) const\fC [protected]\fP, \fC [virtual]\fP" Returns a pointer to the class-wide field data storage object for this instance\&. If no fields are present, returns \fCNULL\fP\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "const \fBSoNodekitCatalog\fP * SoScale2UniformDragger::getNodekitCatalog (void) const\fC [virtual]\fP" Returns the nodekit catalog which defines the layout of this class' kit\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "SbBool SoScale2UniformDragger::setUpConnections (SbBoolonoff, SbBooldoitalways = \fCFALSE\fP)\fC [protected]\fP, \fC [virtual]\fP" Sets up all internal connections for instances of this class\&. .PP (This method will usually not be of interest to the application programmer, unless you want to extend the library with new custom nodekits or dragger classes\&. If so, see the \fBSoBaseKit\fP class documentation\&.) .PP Reimplemented from \fBSoInteractionKit\fP\&. .SS "void SoScale2UniformDragger::startCB (void *f, \fBSoDragger\fP *d)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "void SoScale2UniformDragger::motionCB (void *f, \fBSoDragger\fP *d)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "void SoScale2UniformDragger::finishCB (void *f, \fBSoDragger\fP *d)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "void SoScale2UniformDragger::fieldSensorCB (void *d, \fBSoSensor\fP *s)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "void SoScale2UniformDragger::valueChangedCB (void *f, \fBSoDragger\fP *d)\fC [static]\fP, \fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "void SoScale2UniformDragger::dragStart (void)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP Called when dragger is selected (picked) by the user\&. .SS "void SoScale2UniformDragger::drag (void)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP Called when user drags the mouse after picking the dragger\&. .SS "void SoScale2UniformDragger::dragFinish (void)\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP Called when mouse button is released after picking and interacting with the dragger\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFVec3f\fP SoScale2UniformDragger::scaleFactor" Continuously updated to contain the current vector of scaling along the X, Y and Z axes\&. .PP For the \fBSoScale2UniformDragger\fP, only the X and Y components are used, the Z component will always be equal to 1 (ie no scaling)\&. .SS "\fBSoFieldSensor\fP * SoScale2UniformDragger::fieldSensor\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SS "\fBSbLineProjector\fP * SoScale2UniformDragger::lineProj\fC [protected]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.