# Trait cgmath::prelude::Transform [−] [src]

```pub trait Transform<P: EuclideanSpace>: Sized {
fn one() -> Self;
fn look_at(eye: P, center: P, up: P::Diff) -> Self;
fn transform_vector(&self, vec: P::Diff) -> P::Diff;
fn transform_point(&self, point: P) -> P;
fn concat(&self, other: &Self) -> Self;
fn inverse_transform(&self) -> Option<Self>;

fn concat_self(&mut self, other: &Self) { ... }
}```

A trait representing an affine transformation that can be applied to points or vectors. An affine transformation is one which

## Required Methods

### `fn one() -> Self`

Create an identity transformation. That is, a transformation which does nothing.

### `fn look_at(eye: P, center: P, up: P::Diff) -> Self`

Create a transformation that rotates a vector to look at `center` from `eye`, using `up` for orientation.

### `fn transform_vector(&self, vec: P::Diff) -> P::Diff`

Transform a vector using this transform.

### `fn transform_point(&self, point: P) -> P`

Transform a point using this transform.

### `fn concat(&self, other: &Self) -> Self`

Combine this transform with another, yielding a new transformation which has the effects of both.

### `fn inverse_transform(&self) -> Option<Self>`

Create a transform that "un-does" this one.

## Provided Methods

### `fn concat_self(&mut self, other: &Self)`

Combine this transform with another, in-place.

## Implementors

• `impl<S: BaseFloat> Transform<Point2<S>> for Matrix3<S>`
• `impl<S: BaseFloat> Transform<Point3<S>> for Matrix3<S>`
• `impl<S: BaseFloat> Transform<Point3<S>> for Matrix4<S>`
• `impl<P: EuclideanSpace, R: Rotation<P>> Transform<P> for Decomposed<P::Diff, R> where P::Scalar: BaseFloat, P::Diff: VectorSpace`