# Struct siege_math::vector::Vec4 [−] [src]

```#[repr(C)]
pub struct Vec4<F> {
pub x: F,
pub y: F,
pub z: F,
pub w: F,
}```

A 4-element vector

## Methods

### `impl<F: FullFloat> Vec4<F>`[src]

#### `pub fn new(x: F, y: F, z: F, w: F) -> Vec4<F>`[src]

Construct a new vector

## Trait Implementations

### `impl<F: FullFloat> From<Point3<F>> for Vec4<F>`[src]

#### `fn from(v: Point3<F>) -> Vec4<F>`[src]

Performs the conversion.

### `impl<F: FullFloat> From<Vec4<F>> for Point3<F>`[src]

#### `fn from(v: Vec4<F>) -> Point3<F>`[src]

Performs the conversion.

### `impl<F: FullFloat> From<Direction3<F>> for Vec4<F>`[src]

#### `fn from(v: Direction3<F>) -> Vec4<F>`[src]

Performs the conversion.

### `impl<F: Debug> Debug for Vec4<F>`[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`[src]

Formats the value using the given formatter. Read more

### `impl<F: Clone> Clone for Vec4<F>`[src]

#### `fn clone(&self) -> Vec4<F>`[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl<F: PartialEq> PartialEq for Vec4<F>`[src]

#### `fn eq(&self, __arg_0: &Vec4<F>) -> bool`[src]

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

#### `fn ne(&self, __arg_0: &Vec4<F>) -> bool`[src]

This method tests for `!=`.

### `impl<F: Hash> Hash for Vec4<F>`[src]

#### `fn hash<__HF: Hasher>(&self, __arg_0: &mut __HF)`[src]

Feeds this value into the given [`Hasher`]. Read more

#### `fn hash_slice<H>(data: &[Self], state: &mut H) where    H: Hasher, `1.3.0[src]

Feeds a slice of this type into the given [`Hasher`]. Read more

### `impl<F: FullFloat> Index<usize> for Vec4<F>`[src]

#### `type Output = F`

The returned type after indexing.

#### `fn index(&self, i: usize) -> &F`[src]

Performs the indexing (`container[index]`) operation.

### `impl<F: FullFloat> IndexMut<usize> for Vec4<F>`[src]

#### `fn index_mut(&mut self, i: usize) -> &mut F`[src]

Performs the mutable indexing (`container[index]`) operation.

### `impl<F: FullFloat> Default for Vec4<F>`[src]

#### `fn default() -> Vec4<F>`[src]

Returns the "default value" for a type. Read more

### `impl<F: FullFloat> Mul<F> for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: F) -> Vec4<F>`[src]

Performs the `*` operation.

### `impl<F: FullFloat> Mul<Vec4<F>> for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: Vec4<F>) -> Vec4<F>`[src]

Performs the `*` operation.

### `impl<F: FullFloat> MulAssign<F> for Vec4<F>`[src]

#### `fn mul_assign(&mut self, rhs: F)`[src]

Performs the `*=` operation.

### `impl<F: FullFloat> Div<F> for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `/` operator.

#### `fn div(self, rhs: F) -> Vec4<F>`[src]

Performs the `/` operation.

### `impl<F: FullFloat> DivAssign<F> for Vec4<F>`[src]

#### `fn div_assign(&mut self, rhs: F)`[src]

Performs the `/=` operation.

### `impl<F: FullFloat> Neg for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `-` operator.

#### `fn neg(self) -> Vec4<F>`[src]

Performs the unary `-` operation.

### `impl<F: FullFloat> Add for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `+` operator.

#### `fn add(self, other: Vec4<F>) -> Vec4<F>`[src]

Performs the `+` operation.

### `impl<F: FullFloat> AddAssign<Vec4<F>> for Vec4<F>`[src]

#### `fn add_assign(&mut self, other: Vec4<F>)`[src]

Performs the `+=` operation.

### `impl<F: FullFloat> Sub for Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `-` operator.

#### `fn sub(self, other: Vec4<F>) -> Vec4<F>`[src]

Performs the `-` operation.

### `impl<F: FullFloat> SubAssign<Vec4<F>> for Vec4<F>`[src]

#### `fn sub_assign(&mut self, other: Vec4<F>)`[src]

Performs the `-=` operation.

### `impl<F: FullFloat> From<Vec4<F>> for Vec3<F>`[src]

#### `fn from(v: Vec4<F>) -> Vec3<F>`[src]

Performs the conversion.

### `impl From<Vec4<f64>> for Vec4<f32>`[src]

#### `fn from(v: Vec4<f64>) -> Vec4<f32>`[src]

Performs the conversion.

### `impl From<Vec4<f32>> for Vec4<f64>`[src]

#### `fn from(v: Vec4<f32>) -> Vec4<f64>`[src]

Performs the conversion.

### `impl<F: FullFloat> ApproxEq for Vec4<F>`[src]

#### `fn approx_eq(    &self,     other: &Self,     epsilon: <F as ApproxEq>::Flt,     ulps: <<F as ApproxEq>::Flt as Ulps>::U) -> bool`[src]

This method tests for `self` and `other` values to be approximately equal using two methods: epsilon and ulps. If the values differ by less than the given epsilon, they will be considered equal. If the values differ by more than epsilon, but by less than the given ulps, they will also be considered equal. Otherwise they are unequal. Read more

#### `fn approx_ne(    &self,     other: &Self,     epsilon: Self::Flt,     ulps: <Self::Flt as Ulps>::U) -> bool`[src]

This method tests for `self` and `other` values to be not approximately equal using two methods: epsilon and ulps. If the values differ by less than the given epsilon, they will be considered equal. If the values differ by more than epsilon, but by less than the given ulps, they will also be considered equal. Otherwise they are unequal. Read more

### `impl<'a, 'b, F: FullFloat> Mul<&'a Vec4<F>> for &'b Mat4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &Vec4<F>) -> Vec4<F>`[src]

Performs the `*` operation.

### `impl<'a, 'b, F: FullFloat> Mul<&'a Mat4<F>> for &'a Vec4<F>`[src]

#### `type Output = Vec4<F>`

The resulting type after applying the `*` operator.

#### `fn mul(self, rhs: &Mat4<F>) -> Vec4<F>`[src]

Performs the `*` operation.