---
name: "SoJackManip"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoJackManip/3iv"
---

# SoJackManip(3iv)

transform node with 3D interface for rotating, scaling, and translating

## NAME

SoJackManip — transform node with 3D interface for rotating, scaling, and translating

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoTransformation \> SoTransform \> SoTransformManip \> SoJackManip

## SYNOPSIS

**#include \<Inventor/manips/SoJackManip.h\>**

Fields from class SoTransform:

**SoSFVec3f**	**translation**\
 **SoSFRotation**	**rotation**\
 **SoSFVec3f**	**scaleFactor**\
 **SoSFRotation**	**scaleOrientation**\
 **SoSFVec3f**	**center**

Methods from class SoJackManip:

	**SoJackManip()**\
 **static SoType**	**getClassTypeId()**

Methods from class SoTransformManip:

**SoDragger \***	**getDragger()**\
 **SbBool**	**replaceNode(SoPath \*p )**\
 **SbBool**	**replaceManip(SoPath \*p, SoTransform \*newOne ) const**

Methods from class SoTransform:

**void**	**pointAt(const SbVec3f &fromPoint, const SbVec3f &toPoint)**\
 **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)**

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

**SoJackManip** is derived from **SoTransform** (by way of **SoTransformManip**). When its fields change, nodes following it in the scene graph rotate, scale, and/or translate.

As a subclass of **SoTransformManip**, this manip also has a 3D interface to edit some of its fields. In this case, the interface edits the **scaleFactor**, **rotation** and **translation** fields.

A manipulator differs from a dragger. When you move a dragger, no other nodes are affected. When you move an **SoTransformManip**, other nodes move along with it. (See the reference page for **SoTransformManip**).

The interface for an **SoJackManip** is exactly the same as that of the **SoJackDragger**. To find out more about the interface, see the reference page for **SoJackDragger**. To find out how the manipulator uses a dragger to provide its interface, see the reference page for **SoTransformManip**.

On screen, this manip will surround the objects influenced by its motion. This is because it turns on the *surroundScale* part of the dragger (See the reference page for **SoSurroundScale**)

## METHODS

	**SoJackManip()**\
 Constructor.

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

## FILE FORMAT/DEFAULTS

```
JackManip {
translation	0 0 0
rotation	0 0 1  0
scaleFactor	1 1 1
scaleOrientation	0 0 1  0
center	0 0 0
}
```

## SEE ALSO

**SoCenterballManip, SoHandleBoxManip, SoJackDragger, SoTabBoxManip, SoTrackballManip, SoTransformBoxManip, SoTransformerManip, SoTransform, SoTransformManip**
