Package com.openinventor.inventor.nodes
Class SoAntiSquish
- java.lang.Object
-
- All Implemented Interfaces:
SafeDisposable
public class SoAntiSquish extends SoTransformation
Transformation node that undoes non-uniform 3D scales. This node removes nonuniform 3D scaling from the current transformation matrix when traversed by an action. It is used by draggers such as theSoTrackballDragger
that need to stay uniformly scaled no matter where they are located in the scene graph.The magnitude of the new scale is determined by the current transformation matrix and the sizing field. This node does not change the translation or rotation in the matrix.
File format/default:
AntiSquish {
sizing AVERAGE_DIMENSION recalcAlways true Action behavior:
SoGLRenderAction
,SoCallbackAction
,SoGetBoundingBoxAction
,SoGetMatrixAction
,SoRayPickAction
Appends the current transformation with a new matrix to create an unsquished result.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SoAntiSquish.Sizings
Sizing.-
Nested classes/interfaces inherited from class com.openinventor.inventor.nodes.SoNode
SoNode.RenderModes
-
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
-
Field Summary
Fields Modifier and Type Field Description SoSFBool
recalcAlways
If recalcAlways is true, this node calculates its unsquishing matrix every time it is traversed.SoSFEnum<SoAntiSquish.Sizings>
sizing
Determines which of the algorithms enumerated by the type Sizing will be used to select the new scale when the x,y, and z scales are not equal.-
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
-
Constructor Summary
Constructors Constructor Description SoAntiSquish()
Creates an anti-squish node with default settings.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
recalc()
Sets a flag so that the next time the node is traversed, it will recalculate its unsquishing matrix.-
Methods inherited from class com.openinventor.inventor.nodes.SoNode
affectsState, callback, copy, copy, distribute, doAction, getAlternateRep, getBoundingBox, getByName, getMatrix, getPrimitiveCount, getRenderEngineMode, getRenderUnitID, GLRender, GLRenderBelowPath, GLRenderInPath, GLRenderOffPath, grabEventsCleanup, grabEventsSetup, handleEvent, isBoundingBoxIgnoring, isOverride, pick, rayPick, search, setOverride, touch, write
-
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
-
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable
-
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
-
-
-
Field Detail
-
sizing
public final SoSFEnum<SoAntiSquish.Sizings> sizing
Determines which of the algorithms enumerated by the type Sizing will be used to select the new scale when the x,y, and z scales are not equal. . Default is AVERAGE_DIMENSION.
-
-