Class: V3

SQR. V3

Constructor

new V3()

Source:

Members

(static, constant) forward

A constant the defines the forward vector. WARNING: be extremly careful not to modify the values of this vector, because this will cause some matrix functions to not fuction properly.
Source:

(static, constant) up

A constant the defines the up vector. WARNING: be extremly careful not to modify the values of this vector, because this will cause some matrix functions, like SQR.Matrix44#lookAt to not fuction properly.
Source:

Methods

add(a, bopt)

Sets this vector to the sum of a and b.
Parameters:
Name Type Attributes Description
a SQR.V3
b SQR.V3 <optional>
if omitted the current vector is used, which basically means that a is added to current vector.
Source:
Example
a.add(b, c); // a = b + c
a.add(a, b); // a += b
a.add(b);    // alt a += b
a.add(a, b).add(a, c); // = a + b + c

 

addNormal()

Use this for caculating per-vertex normals. A normal from each contributing face can be added here. When all the normals are added, a vector that is the sum of them all is available as `this.normal` property. The pre-vertex normal can be caluculated by normalizing this vector.
Source:

clone() → {SQR.V3}

Creates and returns a copy of this vector. Be careful with this method, because it creates a new object. Calling this function repeatedly in a rendering loop can have an adverce impact on performance.
Source:
Returns:
a new vector that is a copy of this vector
Type
SQR.V3

copyFrom(p)

Copies values from vector p into this vector
Parameters:
Name Type Description
p SQR.V2 | SQR.V3 vector to copy the values from
Source:

copyTo(p)

Copies values from this vector into the p vector
Parameters:
Name Type Description
p SQR.V2 | SQR.V3 vector to copy the values to
Source:

cross()

Sets this vector to the result of a cross-product of a and b (`a x b`).
Source:

isZero()

Shorthand to check if this vector is a zero vector (i.e. all compoments are very small or equal to 0) The values are compared against SQR.EPSILON
Source:

mag() → {Number}

Return the length (magnitude) of this vector
Source:
Returns:
the length of this vector
Type
Number

magsq()

Returns the squared length of this vector. This can be useful to optimize some calculations, since the actual length requires a squareroot operation (`Math.sqrt()`) which can be slow if used on many vectors.
Source:

mul(s)

Multiples this vector by a scalar. This function can be used in conjunction with SQR.V3#norm to set the vector to a given length `v.norm().mul(10)1 yields a vector of length 10.
Parameters:
Name Type Description
s Number the value to multiply the the vector by.
Source:

neg()

Negates this vector.
Source:

norm()

Normalizes this vector, i.e. sets its length (magnitude) to 1.
Source:

resetNormal()

This is used to reset the normal to 0,0,0.
Source:

set(x, y, z, w)

Sets the vector compoment to values. Note that this class has actually 4 not 3 compoments.
Parameters:
Name Type Description
x the value of the x compoment
y the value of the y compoment
z the value of the z compoment
w the value of the homogeneous coordinate, defaults to 1 and leave it that way unless you really know what ypu are doing.
Source:

sub(a, b)

a.sub(b, a) -> a = from a to b
Parameters:
Name Type Description
a
b
Source:

toScreenSpace(wopt, hopt)

Assuming the vector was projected using the SQR.ProjectionMatrix, use this to calculate it's screen space. (useful for software rendering, ex. on canvas 2d)
Parameters:
Name Type Attributes Description
w Number <optional>
the width of the screen (defaults to `window.innerWidth`)
h Number <optional>
the height of the screen (defaults to `window.innerHeight`)
Source:

(static) dot() → {Number}

Returns the dot product of a nd b (`a . b`).
Source:
Returns:
result of a . b
Type
Number