applyTransformMatrix( transformation ) {

		if ( transformation.camera != null ) {

			this._m4_1.copy( this._cameraMatrixState ).premultiply( transformation.camera );
			this._m4_1.decompose( this.object.position, this.object.quaternion, this.object.scale );
			this.object.updateMatrix();

			//update camera up vector
			if ( this._state == STATE.ROTATE || this._state == STATE.ZROTATE || this._state == STATE.ANIMATION_ROTATE ) {

				this.object.up.copy( this._upState ).applyQuaternion( this.object.quaternion );

			}

		}

		if ( transformation.gizmos != null ) {

			this._m4_1.copy( this._gizmoMatrixState ).premultiply( transformation.gizmos );
			this._m4_1.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale );
			this._gizmos.updateMatrix();

		}

		if ( this._state == STATE.SCALE || this._state == STATE.FOCUS || this._state == STATE.ANIMATION_FOCUS ) {

			this._tbRadius = this.calculateTbRadius( this.object );

			if ( this.adjustNearFar ) {

				const cameraDistance = this.object.position.distanceTo( this._gizmos.position );

				const bb = new Box3();
				bb.setFromObject( this._gizmos );
				const sphere = new Sphere();
				bb.getBoundingSphere( sphere );

				const adjustedNearPosition = Math.max( this._nearPos0, sphere.radius + sphere.center.length() );
				const regularNearPosition = cameraDistance - this._initialNear;

				const minNearPos = Math.min( adjustedNearPosition, regularNearPosition );
				this.object.near = cameraDistance - minNearPos;


				const adjustedFarPosition = Math.min( this._farPos0, - sphere.radius + sphere.center.length() );
				const regularFarPosition = cameraDistance - this._initialFar;

				const minFarPos = Math.min( adjustedFarPosition, regularFarPosition );
				this.object.far = cameraDistance - minFarPos;

				this.object.updateProjectionMatrix();

			} else {

				let update = false;

				if ( this.object.near != this._initialNear ) {

					this.object.near = this._initialNear;
					update = true;

				}

				if ( this.object.far != this._initialFar ) {

					this.object.far = this._initialFar;
					update = true;

				}

				if ( update ) {

					this.object.updateProjectionMatrix();

				}

			}

		}

	}
Applies a transformation matrix, to the camera and gizmos.

@private
@param {Object} transformation - Object containing matrices to apply to camera and gizmos.