.TH "SoScale2Dragger" 3 "Sat Oct 12 2013" "Version 4.0.0a" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoScale2Dragger \- .PP The \fBSoScale2Dragger\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 "\fBSoScale2Dragger\fP (void)" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .RI "\fIThis static method returns the \fBSoType\fP object associated with objects of this class\&. \fP" .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~SoScale2Dragger\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 "\fBSbPlaneProjector\fP * \fBplaneProj\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBSoScale2Dragger\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 can be done in a non-uniform manner\&. .PP \fBSee Also:\fP .RS 4 \fBSoScale1Dragger\fP, \fBSoScaleUniformDragger\fP, \fBSoScale2UniformDragger\fP .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "SoScale2Dragger::SoScale2Dragger (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 SoScale2Dragger -->"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 SoScale2Dragger PVT "this", SoScale2Dragger --- "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 "SoScale2Dragger::~SoScale2Dragger (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 SoScale2Dragger::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 ** SoScale2Dragger::getFieldDataPtr (void)\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 .PP Reimplemented from \fBSoDragger\fP\&. .SS "const \fBSoFieldData\fP * SoScale2Dragger::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 * SoScale2Dragger::getClassNodekitCatalog (void)\fC [static]\fP" Returns the nodekit catalog which defines the layout of this class' kit\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "const \fBSoNodekitCatalog\fP * SoScale2Dragger::getNodekitCatalog (void) const\fC [virtual]\fP" Returns the nodekit catalog which defines the layout of this class' kit\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "const \fBSoNodekitCatalog\fP ** SoScale2Dragger::getClassNodekitCatalogPtr (void)\fC [static]\fP, \fC [protected]\fP" Returns the pointer to the pointer of the nodekit catalog for this class\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "void SoScale2Dragger::initClass (void)\fC [static]\fP" Initializes type system for this dragger class\&. .PP Application programmers should usually not have to invoke this method, see documentation of \fBSoInteraction::init()\fP\&. .PP Reimplemented from \fBSoDragger\fP\&. .SS "SbBool SoScale2Dragger::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 SoScale2Dragger::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 SoScale2Dragger::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 SoScale2Dragger::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 SoScale2Dragger::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 .PP Reimplemented from \fBSoInteractionKit\fP\&. .SS "void SoScale2Dragger::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 SoScale2Dragger::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 .PP Called when dragger is selected (picked) by the user\&. .SS "void SoScale2Dragger::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 .PP Called when user drags the mouse after picking the dragger\&. .SS "void SoScale2Dragger::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 .PP Called when mouse button is released after picking and interacting with the dragger\&. .SH "Member Data Documentation" .PP .SS "\fBSoSFVec3f\fP SoScale2Dragger::scaleFactor" Continuously updated to contain the current vector of scaling along the X, Y and Z axes\&. .PP For the \fBSoScale2Dragger\fP, only the X and Y components are used, the Z component will always be equal to 1 (ie no scaling)\&. .SS "\fBSoFieldSensor\fP * SoScale2Dragger::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 "\fBSbPlaneProjector\fP * SoScale2Dragger::planeProj\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\&.