Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SoTransform(3IV)()					    SoTransform(3IV)()

NAME
       SoTransform -- general 3D geometric transformation node

INHERITS FROM
       SoBase >	SoFieldContainer > SoNode > SoTransformation > SoTransform

SYNOPSIS
       #include	<Inventor/nodes/SoTransform.h>

	  Fields from class SoTransform:

     SoSFVec3f		 translation
     SoSFRotation	 rotation
     SoSFVec3f		 scaleFactor
     SoSFRotation	 scaleOrientation
     SoSFVec3f		 center

	  Methods from class SoTransform:

			 SoTransform()
     void		 pointAt(const	SbVec3f	&fromPoint, const SbVec3f &to-
			      Point)
     void		 getScaleSpaceMatrix(SbMatrix  &mat,  SbMatrix	 &inv)
			      const
     void		 getRotationSpaceMatrix(SbMatrix  &mat,	SbMatrix &inv)
			      const
     void		 getTranslationSpaceMatrix(SbMatrix   &mat,   SbMatrix
			      &inv) const
     void		 multLeft(const	SbMatrix &mat)
     void		 multRight(const SbMatrix &mat)
     void		 combineLeft(SoTransformation *nodeOnRight)
     void		 combineRight(SoTransformation *nodeOnLeft)
     void		 setMatrix(const SbMatrix &mat)
     void		 recenter(const	SbVec3f	&newCenter)
     static SoType	 getClassTypeId()

	  Methods from class SoNode:

     void		 setOverride(SbBool state)
     SbBool		 isOverride() const
     SoNode *		 copy(SbBool copyConnections = FALSE) const
     virtual SbBool	 affectsState()	const
     static SoNode *	 getByName(const SbName	&name)
     static int		 getByName(const SbName	&name, SoNodeList &list)

	  Methods from class SoFieldContainer:

     void		 setToDefaults()
     SbBool		 hasDefaultValues() const
     SbBool		 fieldsAreEqual(const SoFieldContainer *fc) const
     void		 copyFieldValues(const	SoFieldContainer  *fc,	SbBool
			      copyConnections =	FALSE)
     SbBool		 set(const char	*fieldDataString)
     void		 get(SbString &fieldDataString)
     virtual int	 getFields(SoFieldList &resultList) const
     virtual SoField *	 getField(const	SbName &fieldName) const
     SbBool		 getFieldName(const SoField *field, SbName &fieldName)
			      const
     SbBool		 isNotifyEnabled() const
     SbBool		 enableNotify(SbBool flag)

	  Methods from class SoBase:

     void		 ref()
     void		 unref() const
     void		 unrefNoDelete() const
     void		 touch()
     virtual SoType	 getTypeId() const
     SbBool		 isOfType(SoType type) const
     virtual void	 setName(const SbName &name)
     virtual SbName	 getName() const

DESCRIPTION
       This  node  defines a geometric 3D transformation consisting of (in or-
       der) a (possibly) non-uniform scale about an arbitrary point,  a	 rota-
       tion  about  an arbitrary point and axis, and a translation. (While the
       transformations can be thought of as being applied in that  order,  ma-
       trices are actually premultiplied in the	opposite order.	Therefore, the
       operations are listed in	the reverse order  throughout  this  reference
       page.)

FIELDS
     SoSFVec3f		 translation
	  Translation vector.

     SoSFRotation	 rotation
	  Rotation specification.

     SoSFVec3f		 scaleFactor
	  Scale	factors.

     SoSFRotation	 scaleOrientation
	  Rotational orientation for scale.

     SoSFVec3f		 center
	  Origin for scale and rotation.

METHODS
			 SoTransform()
	  Creates a transformation node	with default settings.

     void		 pointAt(const	SbVec3f	&fromPoint, const SbVec3f &to-
			      Point)
	  Sets the node	to translate the origin	to the	fromPoint  and	rotate
	  the  negative	z-axis (0,0,-1)	to lie on the vector from fromPoint to
	  toPoint. This	always tries to	keep the "up" direction	 the  positive
	  y-axis,  unless that is impossible.  All current field values	in the
	  node are replaced.

     void		 getScaleSpaceMatrix(SbMatrix  &mat,  SbMatrix	 &inv)
			      const
     void		 getRotationSpaceMatrix(SbMatrix  &mat,	SbMatrix &inv)
			      const
     void		 getTranslationSpaceMatrix(SbMatrix   &mat,   SbMatrix
			      &inv) const
	  These	 return	composite matrices that	transform from object space to
	  each of the spaces after the scale, rotation,	or translation.

     void		 multLeft(const	SbMatrix &mat)
     void		 multRight(const SbMatrix &mat)
	  These	are convenience	functions that combine the effects of a	matrix
	  transformation  into the current transformation stored in this node.
	  The first method premultiplies the  transformation  and  the	second
	  postmultiplies it.

     void		 combineLeft(SoTransformation *nodeOnRight)
     void		 combineRight(SoTransformation *nodeOnLeft)
	  These	 are convenience functions that	combine	the effects of another
	  transformation node into the current transformation stored  in  this
	  node.	The first method premultiplies the transformation and the sec-
	  ond postmultiplies it.

     void		 setMatrix(const SbMatrix &mat)
	  Sets the fields in the node to implement the	transformation	repre-
	  sented by the	given matrix. Note that	invalid	matrices (such as sin-
	  gular	ones) have undefined results.

     void		 recenter(const	SbVec3f	&newCenter)
	  Changes the center of	the transformation to the given	point  without
	  affecting the	overall	effect of the transformation.

     static SoType	 getClassTypeId()
	  Returns type identifier for this class.

ACTION BEHAVIOR
       SoGLRenderAction,  SoCallbackAction, SoGetBoundingBoxAction, SoRayPick-
       Action
	  Accumulates transformation into the current transformation.

     SoGetMatrixAction
	  Returns the matrix corresponding to the total	transformation.

FILE FORMAT/DEFAULTS
       Transform {
	  translation	    0 0	0
	  rotation	    0 0	1  0
	  scaleFactor	    1 1	1
	  scaleOrientation  0 0	1  0
	  center	    0 0	0
     }

SEE ALSO
       SoMatrixTransform,   SoResetTransform,	 SoRotation,	SoRotationXYZ,
       SoScale,	SoTransformManip, SoTransformSeparator,	SoTranslation

							    SoTransform(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | FIELDS | METHODS | ACTION BEHAVIOR | FILE FORMAT/DEFAULTS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoTransform&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help