# CalcLineTranslation(Vector2, Vector2, Vector3, Vector3)

> Map a mouse drag onto a movement along a line in 3D space.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.6/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static float CalcLineTranslation(Vector2 src, Vector2 dest, Vector3 srcPosition, Vector3 constraintDir)
```

### Parameters

**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): The source point of the drag.**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): The destination point of the drag.**** (\[Vector3]\(/engine/6000.6/script-reference/unityengine/vector3)): The 3D position the dragged object had at `src` ray.**** (\[Vector3]\(/engine/6000.6/script-reference/unityengine/vector3)): Normalized 3D direction of constrained movement.

### Returns

| Type                                                          | Description                                 |
| ------------------------------------------------------------- | ------------------------------------------- |
| [float](https://learn.microsoft.com/dotnet/api/system.single) | The distance travelled along constraintDir. |

### Remarks

Certain types of Handles (such as arrows) involve movement along a line in 3D space. For example, the Transform's position arrows move the object along its local X, Y or Z axis as the mouse is dragged. The CalcLineTranslation function converts the movement of the mouse into constrained movement along a 3D line in the familiar way used by Unity's built-in tools.
