Let triangle intersections fall right on the edge
the diagonal.
Allow the center to be set without creating a
new Vector3f first.
Avoid allocation of a temporary float[] array
and avoid allocation of a needless Vector3f array.
Keep the scene and processor lists as SafeArrayList
for faster/cleaner iteration.
Avoid per-render iterator allocations by using the
SafeArrayList.getArray() method.
Commented out the onFrameChange() in update() because
its redundant.
Modified setGuiBounding to call the new setCenter(x,y,z)
method instead of allocating a Vector3f each time. (This
method is called any time someone sneezes.)
Fixed a missing line feed in a javadoc comment.
Removed the redundant camera.update() calls.
Switched many of the lists to SafeArrayList to avoid
per frame iterator allocations.
Added a newFrame() method to UniformBindingManager
to signal the beginning of a frame.  Currently this
just grabs the time and tpf values once so as to avoid
per-material Float allocation and time drift within a
frame.
RenderManager now calls this at the beginning of the
root-level render() method.
Avoid some teeny-tiny per frame allocations by
only creating a new Plane() and setting the water
height uniform when the water height changes.
Also got rid of the redundant dot() product and
Vector3f allocation in the process.
Added a setFloat() that takes a Float to avoid
auto-boxing in the case where a Float is already
at hand.
Was a little overzealous in my Float conversion and
converted some stuff that only needs to be float.
Undid that.
WaterUtils tries to hard to avoid allocation... I
fixed three cases that were causing new Vector3fs
to be created.
Only allocate the array list when there are results.
A small thing... but significant in some use-cases.