Skip to content

Latest commit

 

History

History
247 lines (117 loc) · 5.02 KB

Vector_API.md

File metadata and controls

247 lines (117 loc) · 5.02 KB

Vector API

Base.Vector class.

This class represents a 3D float vector. Useful to represent points in the 3D space.

The following constructors are supported:

Vector(x=0, y=0, z=0) x : float y : float z : float

Vector(vector) Copy constructor. vector : Base.Vector

Vector(seq) Define from a sequence of float. seq : sequence of float.

Length

Gets or sets the length of this vector.

add

add(vector2) -> Base.Vector

Returns the sum of this vector and vector2.

vector2 : Base.Vector

cross

cross(vector2) -> Base.Vector

Returns the vector product (cross product) between this vector and vector2.

vector2 : Base.Vector

distanceToLine

distanceToLine(base, dir) -> float

Returns the distance between the point represented by this vector and a line defined by a base point represented by base and a direction dir.

base : Base.Vector dir : Base.Vector

distanceToLineSegment

distanceToLineSegment(point1, point2) -> Base.Vector

Returns the vector between the point represented by this vector and the point on the line segment with the shortest distance. The line segment is defined by point1 and point2.

point1 : Base.Vector point2 : Base.Vector

distanceToPlane

distanceToPlane(base, normal) -> float

Returns the distance between this vector and a plane defined by a base point represented by base and a normal defined by normal.

base : Base.Vector normal : Base.Vector

distanceToPoint

distanceToPoint(point2) -> float

Returns the distance to another point represented by point2. . point : Base.Vector

dot

dot(vector2) -> float

Returns the scalar product (dot product) between this vector and vector2.

vector2 : Base.Vector

getAngle

getAngle(vector2) -> float

Returns the angle in radians between this vector and vector2.

vector2 : Base.Vector

isEqual

isEqual(vector2, tol=0) -> bool

Checks if the distance between the points represented by this vector and vector2 is less or equal to the given tolerance.

vector2 : Base.Vector tol : float

isOnLineSegment

isOnLineSegment(vector1, vector2) -> bool

Checks if this vector is on the line segment generated by vector1 and vector2.

vector1 : Base.Vector vector2 : Base.Vector

multiply

multiply(factor) -> Base.Vector

Multiplies in-place each component of this vector by a single factor. Equivalent to scale(factor, factor, factor).

factor : float

negative

negative() -> Base.Vector

Returns the negative (opposite) of this vector.

normalize

normalize() -> Base.Vector

Normalizes in-place this vector to the length of 1.0.

projectToLine

projectToLine(point, dir) -> Base.Vector

Projects point on a line that goes through the origin with the direction dir. The result is the vector from point to the projected point. The operation is equivalent to dir_n.cross(dir_n.cross(point)), where dir_n is the vector dir normalized. The method modifies this vector instance according to result and does not depend on the vector itself.

point : Base.Vector dir : Base.Vector

projectToPlane

projectToPlane(base, normal) -> Base.Vector

Projects in-place this vector on a plane defined by a base point represented by base and a normal defined by normal.

base : Base.Vector normal : Base.Vector

scale

scale(x, y, z) -> Base.Vector

Scales in-place this vector by the given factor in each component.

x : float x-component factor scale. y : float y-component factor scale. z : float z-component factor scale.

sub

sub(vector2) -> Base.Vector

Returns the difference of this vector and vector2.

vector2 : Base.Vector

x

Gets or sets the X component of this vector.

y

Gets or sets the Y component of this vector.

z

Gets or sets the Z component of this vector.


documentation index > API > [Poweruser Documentation](Category_Poweruser Documentation.md) > Vector API