Class: V3

SQR.V3()

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 if available, otherwise defaults to zero

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