JS: hold camera point of interest as a Vec3d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: move the Vec4d indexed-component helpers to their only user, AABB

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: update Sphere to be more of a pure data-holder class similar to Vec[234]d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: correct javadoc for default Vec4d constructor

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove Quaternion method rotateVector

This was internally creating a temp Mat4d, make it explicit by forcing callers
to create their own and use setRot3/mult3, then they can reuse the Matrix if need be.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: replace the Quaternion euler rotation factory method with setEuler3

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add a setAxisAngle helper to Quaternion

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove the Rotation factory method from Quaternion, use axisAngle setter

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert trivial callers to Ray::getPointAtDist to use Vec3d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove redundant check for an empty bounds, collides is already checking this

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: convert Ray::getPointAtDist to return a Vec3d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Removed unused matrices from tranparent rendering

This is a cleanup commit, no behaviour change.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: View frustum no longer includes a plane for the near clip

This test is completely meaningless thanks to logarithmic depth buffer,
and practically meaningless even in the general case.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use enhanced for-loop when testing Frustrum planes

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Used UnitTypeInput in TimeSeries

Signed-off-by: Stephen Wong <stephen.wong@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Corrected definition of TimeSeries keyword UnitType

Signed-off-by: Stephen Wong <stephen.wong@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Corrected definition and example of TimeSeries keyword Value

This is subject to change, but at least shows the present implementation

Signed-off-by: Stephen Wong <stephen.wong@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: update Sphere::center to be a Vec3d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: pre-allocate the Planes for the Camera's frustrum, add a Plane set() method

This allows us to reuse the frustrum planes.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Big optimization for MeshProto

This pulls a lot of the common operations out of renderSubMesh into render
to avoid redundant work. Also caches shader variables in a static
location.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>