SoAntiSquish Class Reference
[Transforms]

Transformation node that undoes non-uniform 3D scales. More...

#include <Inventor/nodes/SoAntiSquish.h>

Inheritance diagram for SoAntiSquish:
SoTransformation SoNode SoFieldContainer SoBase SoRefCounter SoTypedObject

List of all members.

Public Types

enum  Sizing {
  X,
  Y,
  Z,
  AVERAGE_DIMENSION,
  BIGGEST_DIMENSION,
  SMALLEST_DIMENSION,
  LONGEST_DIAGONAL
}

Public Member Functions

virtual SoType getTypeId () const
 SoAntiSquish ()
void recalc ()

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFEnum sizing
SoSFBool recalcAlways

Detailed Description

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 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.

FILE FORMAT/DEFAULT

ACTION BEHAVIOR

SEE ALSO

SoCenterballDragger, SoJackDragger, SoTrackballDragger, SoTransformerDragger, SoTransformation, SoTransformBoxDragger


Member Enumeration Documentation

Sizing.

Enumerator:
X 

Fits the other two axes to match the X axis, whose size is unchanged.

Y 

Fits the other two axes to match the Y axis, whose size is unchanged.

Z 

Fits the other two axes to match the Z axis, whose size is unchanged.

AVERAGE_DIMENSION 

Uses average of 3 scales in the matrix.

BIGGEST_DIMENSION 

Uses biggest of 3 scales in the matrix.

SMALLEST_DIMENSION 

Uses smallest of 3 scales in the matrix.

LONGEST_DIAGONAL 

Accounts for shearing; transforms a cube by the matrix and then uses length of longest diagonal.


Constructor & Destructor Documentation

SoAntiSquish::SoAntiSquish (  ) 

Creates an anti-squish node with default settings.


Member Function Documentation

static SoType SoAntiSquish::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoTransformation.

virtual SoType SoAntiSquish::getTypeId (  )  const [virtual]

Returns the type identifier for this specific instance.

Reimplemented from SoTransformation.

void SoAntiSquish::recalc (  ) 

Sets a flag so that the next time the node is traversed, it will recalculate its unsquishing matrix.


Member Data Documentation

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(). Default is TRUE.

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.

Use enum Sizing. Default is AVERAGE_DIMENSION.


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/