[page:Object3D] →

# [name]

This class can be used to transform objects in 3D space by adapting a similar interaction model of DCC tools like Blender. Unlike other controls, it is not intended to transform the scene's camera.

## Example

[example:misc_controls_transform misc / controls / transform ]

## Constructor

### [name]( [param:Camera camera], [param:HTMLDOMElement domElement] )

[page:Camera camera]: The camera of the rendered scene.

[page:HTMLDOMElement domElement]: The HTML element used for event listeners.

Creates a new instance of [name].

## Events

### change

Fires if any type of change (object or property change) is performed. Property changes are separate events you can add event listeners to. The event type is "propertyname-changed".

### mouseDown

Fires if a pointer (mouse/touch) becomes active.

### mouseUp

Fires if a pointer (mouse/touch) is no longer active.

### objectChange

Fires if the controlled 3D object is changed.

## Properties

See the base [page:Object3D] class for common properties.

### [property:String axis]

The current transformation axis.

### [property:Camera camera]

The camera of the rendered scene.

### [property:HTMLDOMElement domElement]

The HTMLDOMElement used to listen for mouse / touch events. This must be passed in the constructor; changing it here will not set up new event listeners.

### [property:Boolean dragging]

Whether or not dragging is currently performed. Read-only property.

### [property:Boolean enabled]

Whether or not the controls are enabled.

### [property:String mode]

The current transformation mode. Possible values are "translate", "rotate" and "scale". Default is *translate*.

### [property:Object3D object]

The 3D object being controlled.

### [property:Number rotationSnap]

By default, 3D objects are continously rotated. If you set this property to a numeric value (radians), you can define in which steps the 3D object should be rotated. Deault is *null*.

### [property:Boolean showX]

Whether or not the x-axis helper should be visible. Default is *true*.

### [property:Boolean showY]

Whether or not the y-axis helper should be visible. Default is *true*.

### [property:Boolean showZ]

Whether or not the z-axis helper should be visible. Default is *true*.

### [property:Number size]

The size of the helper UI (axes/planes). Default is *1*.

### [property:String space]

Defines in which coordinate space transformations should be performed. Possible values are "world" and "local". Default is *world*.

### [property:Number translationSnap]

By default, 3D objects are continously translated. If you set this property to a numeric value (world units), you can define in which steps the 3D object should be translated. Deault is *null*.

## Methods

See the base [page:Object3D] class for common methods.

### [method:TransformControls attach] ( [param:Object3D object] )

[page:Object3D object]: The 3D object that should be transformed.

Sets the 3D object that should be transformed and ensures the controls UI is visible.

### [method:TransformControls detach] ()

Removes the current 3D object from the controls and makes the helper UI is invisible.

### [method:null dispose] ()

Should be called if the controls is no longer required.

### [method:String getMode] ()

Returns the transformation mode.

### [method:null setMode] ( [param:String mode] )

[page:String mode]: The transformation mode.

Sets the transformation mode.

### [method:null setRotationSnap] ( [param:Number rotationSnap] )

[page:Number rotationSnap]: The rotation snap.

Sets the rotation snap.

### [method:null setSize] ( [param:Number size] )

[page:Number size]: The size of the helper UI.

Sets the size of the helper UI.

### [method:null setSpace] ( [param:String space] )

[page:String space]: The coordinate space in which transformations are applied.

Sets the coordinate space in which transformations are applied.

### [method:null setTranslationSnap] ( [param:Number translationSnap] )

[page:Number translationSnap]: The translation snap.

Sets the translation snap.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/examples/js/controls/TransformControls.js examples/js/controls/TransformControls.js]