SoAntiSquish(3IV)
SoAntiSquish (SoAntiSquish) - transformation node that undoes non-uniform 3D scales
Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.
NAME SoAntiSquish (SoAntiSquish) - transformation node that undoes non-uniform 3D scales INHERITS FROM SoBase > SoFieldContainer > SoNode > SoTransformation > SoAntiSquish SYNOPSIS #include <Inventor_c/nodes/SoAntiSquish.h> enum SoAntiSquishSizing { SO_ANTI_SQUISH_X fits the other two axes to match the X axis, whose size is unchanged SO_ANTI_SQUISH_Y fits the other two axes to match the Y axis, whose size is unchanged SO_ANTI_SQUISH_Z fits the other two axes to match the Z axis, whose size is unchanged SO_ANTI_SQUISH_AVERAGE_DIMENSION uses average of 3 scales in the matrix SO_ANTI_SQUISH_BIGGEST_DIMENSION uses biggest of 3 scales in the matrix SO_ANTI_SQUISH_SMALLEST_DIMENSION uses smallest of 3 scales in the matrix SO_ANTI_SQUISH_LONGEST_DIAGONAL accounts for shearing; transforms a cube by the matrix and then uses length of longest diagonal } Fields from class SoAntiSquish: SoSFEnum sizing SoSFBool recalcAlways Functions from class SoAntiSquish: SoAntiSquish * SoAntiSquishCreate() SoType SoAntiSquishGetClassTypeId() void SoAntiSquishRecalc(SoAntiSquish *this) Functions from class SoNode: void SoAntiSquishSetOverride(SoAntiSquish *this, SbBool state) SbBool SoAntiSquishIsOverride(const SoAntiSquish *this) SoNode * SoAntiSquishCopy(const SoAntiSquish *this, SbBool copyConnections = FALSE) SbBool SoAntiSquishAffectsState(const SoAntiSquish *this) SoNode * SoAntiSquishGetByName(const char *name) int SoAntiSquishGetByNameList(const char *name, SoNodeList *list) Functions from class SoFieldContainer: void SoAntiSquishSetToDflts(SoAntiSquish *this) SbBool SoAntiSquishHasDfltVals(const SoAntiSquish *this) SbBool SoAntiSquishFldsAreEq(const SoAntiSquish *this, const SoFieldContainer *fc) void SoAntiSquishCopyFieldVals(SoAntiSquish *this, const SoFieldContainer *fc, SbBool copyConnections = FALSE) SbBool SoAntiSquishSet(SoAntiSquish *this, const char *fieldDataString) void SoAntiSquishGet(SoAntiSquish *this, SbString *fieldDataString) int SoAntiSquishGetFields(const SoAntiSquish *this, SoFieldList *resultList) SoField * SoAntiSquishGetField(const SoAntiSquish *this, const char *fieldName) SbBool SoAntiSquishGetFieldName(const SoAntiSquish *this, const SoField *field, SbName *fieldName) SbBool SoAntiSquishIsNotifyEnabled(const SoAntiSquish *this) SbBool SoAntiSquishEnableNotify(SoAntiSquish *this, SbBool flag) Functions from class SoBase: void SoAntiSquishRef(SoAntiSquish *this) void SoAntiSquishUnref(const SoAntiSquish *this) void SoAntiSquishUnrefNoDelete(const SoAntiSquish *this) void SoAntiSquishTouch(SoAntiSquish *this) SoType SoAntiSquishGetTypeId(const SoAntiSquish *this) SbBool SoAntiSquishIsOfType(const SoAntiSquish *this, SoType type) void SoAntiSquishSetName(SoAntiSquish *this, const char *name) SbName SoAntiSquishGetName(const SoAntiSquish *this) DESCRIPTION This node removes nonuniform 3D scaling from the current transformation matrix when traversed by an action. It is used by draggers such as the SoTrackballDragger 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. FIELDS SoSFEnum 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. SoSFBool recalcAlways If recalcAlways is TRUE, this node calculates its unsquishing matrix every time it is traversed. If FALSE, then this only occurs during the first traversal folllowing a call to recalc(). FUNCTIONS SoAntiSquish * SoAntiSquishCreate() Creates an anti-squish node with default settings. SoType SoAntiSquishGetClassTypeId() Returns type identifier for this class. void SoAntiSquishRecalc(SoAntiSquish *this) Sets a flag so that the next time the node is traversed, it will recalculate its unsquishing matrix. ACTION BEHAVIOR SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoGetMatrixAction, SoRayPickAction Appends the current transformation with a new matrix to create an unsquished result. FILE FORMAT/DEFAULTS AntiSquish { sizing AVERAGE_DIMENSION recalcAlways TRUE } SEE ALSO SoCenterballDragger, SoJackDragger, SoTrackballDragger, SoTransformerDragger, SoTransformation, SoTransformBoxDragger