# SceneScript Class Vec3

Utility class which holds a 3 dimensional value pair: x, y and z.

# Properties

# x: Number

Value of first component.

# y: Number

Value of second component.

# z: Number

Value of third component.

# Constructors

# constructor(x: Number, y: Number, z: Number): Vec3

Constructor that sets x, y and z respectively.

# constructor(): Vec3

Empty constructor sets all components to 0.

# constructor(value: Number): Vec3

Sets x, y and z members to parameter value.

# constructor(x: Number, y: Number): Vec3

Constructor that sets x and y respectively and sets z to 0.

# constructor(value: String): Vec3

Will parse the first three numbers from the string and set x, y and z respectively.

# constructor(value: Vec2): Vec3

Will use x and y from value and set z to 0.

# Functions

# length(): Number

Returns length of the vector.

# lengthSqr(): Number

Returns squared length of the vector. This is more efficient, so if you only need a binary comparison, use this.

# normalize(): Vec3

Normalizes the vector and returns the result as a new object.

# copy(): Vec3

Makes a copy.

# add(value: Number|Vec3): Vec3

Adds parameter to all three components and returns result as a new object.

# subtract(value: Number|Vec3): Vec3

Subtracts parameter to all three components and returns result as a new object.

# multiply(value: Number|Vec3): Vec3

Multiplies all three components with parameter and returns result as a new object.

# divide(value: Number|Vec3): Vec3

Divides all three components by parameter and returns result as a new object. Does not check for zero division.

# dot(value: Vec3): Number

Computes dot product with vector value.

# reflect(normal: Vec3): Vec3

Returns reflection vector along normal. Make sure that normal is normalized.

# cross(value: Vec3): Vec3

Returns cross product between this and value as a new object.

# toString(): String

Concatenates components with a space in-between so that it can also be parsed again.