JS: do a deep comparison of ViewIDs arrays, not Object equality

Arrays do not override .equals(), so this was essentially doing '==', thanks findbugs.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use the isNumeric helper in Sensor when wiring up Outputs

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: simplify comparisons in cache dirtyFlag helpers

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add static comparison functions for Vec[34]d when calculating cache dirtiness

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add static comparison functions for Color4d when calculating cache dirtiness

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: replace Vec4d ONES constant with constants in DisplayModel and ConvexHull

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: internally hold Vec3d lists in the Polygon object

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: adjust MathUtils::rotateAroundPoint to return a Mat4d

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: rename the polymorphic apply function in Transform

This was way too easy to use when the Vec4d version was meant, give it a name
referring to the internal Mat4d function this actually delegates to.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add a copy constructor to CameraInfo

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: use explicit Vec3d.equals3 rather than equals()

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: remove equals() methods from Vec[234]d that were possibly non-symmetric

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Two minor renderer fixes for correctness

These do not affect the behavior of the program

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Reworked polygon to ray collision detection to remove an if

This is a hot path function, so this might be a win.

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Simplified TimeSeries getValueForTimeHours by calling getIndexForTimeHours

This change removes duplicate code

Signed-off-by: Stephen Wong <stephen.wong@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Removed TimeSeries indexOfCurrentTime and used binary search

Signed-off-by: Stephen Wong <stephen.wong@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: restore the original code style for testing the dirty flag in DisplayModel

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: add a helper to get the CameraInfo reference to avoid a temp allocation

getInfo() is return a copy of the cameraInfo, this case only wants the texture,
which does not require a copy.

Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Prevent auto-extending vec4 in vertex shader

This seemed to work fine, but this is more explicit

Signed-off-by: Matt Chudleigh <matt.chudleigh@ausenco.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausenco.com>
JS: Fix for Unit tests, Vectors no longer implement Object.equals()

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