## translation

Like all linear transformations that command is in 2 modes:
direct and matrix.
## tran obj

### tran(dx,dy,dz) obj(id)

Displaces the object **id** points by **(dx,dy,dz)**.

**Options:**

**normal**: displace vertices along their normal by **dx** if obj is **vol**.

**vertex(s)**: only vertex **s**.

Note: obj is **fog, light, var, vol, view**.

**Examples:**

1) tran poi(100,-20,50) vertex[1,5] vol(1,3): displaces vertices sommets (1,2,3,4,5) of the
1 and 3 by (100,-20,50)

2) tran poi(10,20,30) var("x"): displaces variable **x** by (10,20,30).
## tran force

### tran(x,y,z)force(f)vol(id)

If thevolume **id** is an element of a anchoring structure movement has no effect on it,
since it is fixed to the leader, in this case a method of inverse kinematics will tend to bring the volume **id** at point **(x, y, z)**
by rotating (and his parents) by rotating force.
It will be equipped with a mass and yes dynamic must be active.

**Options:**

**force(f)**: f = forces amplitude (1 default).

**vol(id1,id2,id2,...,idn)**: only volumes **idi** will be modified, otherwise **id1** and all its
fathers will be modified.

**coe(c1,c2,...,cn)**: the volume **idi** force will be of amplitude **ci*f**.

If collision vol(lea)=g,nor the leader structure **lea**
is compelled to "walk" on the plane defined by the point **g** and the normal **nor**,
and if a gravitational force is set, then the previous method, by changing relative dispositions of the elements of structure,
introduces an imbalance. If rebalancing behavior (equivallent a walking behavior) is defined, then the structure will tend to move towards the point **(x, y, z)**.
## tran image

### tran(x,y)image(id)

Displaces the content of image **id** by **(x,y)** modulo the image dimensions.
## tran inv

### tran inv vol poi

**tran inv vol(id) poi(x,y,z)**

The subtree leader **id** is moving to head towards the point **(x, y, z)** by a rotation force
(dynamic inverse kinematics).

**Options:**

**force(f)**: force module (f=0.01 default).

**mouse** point (x,y,z) is replaced by the mouse position (left click).

**mouse limit(x1,y1,x2,y2)** only points inside the frame (x1,y1,x2,y2) are transformed.

**vol(id1,id2,id3,...)**: only items **idi** of the string leader **id1** will be processed.
### tran inv vol mouse

**tran inv vol(id)mouse**

The subtree leader **id** is moving to head towards the mouse position by a rotation force
(dynamic inverse kinematics).

**Options:**

**mouse(s)**: s=0 (blocking, default), s=1 (non blocking),
s=2 (non blocking without click).

**force(f)**: force module (f=0.01 default).

**frame(x1,y1,x2,y2)**: this frame is displayed and only the mouse positions
inside will be taken into account.

**Notes:**

1) Volumes must have masses
and yes dynamic must be active.

2)Volumes must be anchored and yes anc
must be active.
## tran matrix

### tran matrix vol(id)

Returns the volume **id** displacement by modifying its matrix.
### tran(x,y,z)matrix vol(id)

Displaces the volume **id** by modifying its matrix.

**Options:**

**ini**: processes the basic transformation.

**mouse(s)**: do matrix(x,y)vol(id) = mouse position.
## tran normal

### tran normal poi(dx,dy,dz) vol(id)

Displaces vertices of the volume **id** along their normals by **(dx,dy,dz)*normal**
### tran normal poi(dx,dy,dz) vertex(s) vol(id)

Displaces vertices **s** of the volume **id** along their normals by **(dx,dy,dz)*normal**
## See also: