JS: New Entity convenience methods for scheduling

Signed-off-by: Geoffrey Savinkoff <Geoffrey.Savinkoff@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: try and protect ourselves against clipboard copying that can fail

Also move the code itself to use the calculated mouse position, rather than digging
a (likely) out of date String out of the GUIFrame.

Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Created OneOrTwoKeyInput class

OneOrTwoKeyInput uses a HashMap with 2 keys where the second key is optional

When storing a value, if all two keys are known, then store the value with all two keys
Otherwise, store with the first key plus null.

When retrieving a value, first find the value for all two keys, but if it is not found,
then return the value for the first key plus null.

Example:

FPSO/Manager FractionOfCargoForBerthing { Panamax 0.7 } "for all product types
or
FPSO/Manager FractionOfCargoForBerthing { Panamax Propane 0.6 } "for Propane only

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Added warning message for inputs that accept units, but for which units were not specified

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Removed unused Simulation keyword "VolumetricUnits"

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
All: Removed Simulation keyword "DistanceUnits" - default distance units are "km"

One side effect is that info boxes will always show distances in km,
even if the user entered distance in e.g. miles.

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
All: Removed Simulation keyword "SpeedUnits" - default speed units are "km/h"

One side effect is that info boxes will always show speeds in km/h,
even if the user entered distance in e.g. knots.

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
All: Moved ModelEntity and ReportAgent from TLS to JavaSimulation3D

This change will allow ModelEntity to be part of a BasicObjects package in JaamSim

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Cleaned up comments in Queue.java

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: ModelEntity was improperly sharing its colors for some states

Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Allow subclasses of ProbabilityDistribution to define their own getAll instance function

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Added units to Vector3dInput parsing

This change is required for allowing keywords like Position, Size, and Orientation to accept units

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Converted DisplayEntity keyword Position to a Vector3dInput with units of m

For example, input may now be specified as:

Berth1 Position { -5.415  -40738.275  0.000 m }

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Converted DisplayEntity keyword Size to a Vector3dInput with units of m

For example, input may now be specified as:

Berth1 Size { 11.7  3.3  0.000 m }

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Converted DisplayEntity keyword Orientation to a Vector3dInput with units of rad

For example, input may now be specified as:

Berth1 Orientation { 0  0  270 deg }

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Added units of rad to DisplayModel keyword Orientation

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D: Converted DisplayEntity keyword Alignment to a Vector3dInput with no units

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS: Added units to Vector3dListInput parsing

This change is required for allowing keywords like Points to accept units

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS, JS3D: Added Entity method updateForInput that updates the Entity for changes in the given input

This method is called immediately after parsing the data for the Input object

This change will allow objects to update immediately after the input has been read
from the input file or set in the EditBox.

For example, DisplayEntities will update their position immediately after the Position input has been read
from the input file or set in the EditBox.

Signed-off-by: Stephen Wong <stephen.wong@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>
JS3D, TLS: Converted text and fontName keywords to input objects

Signed-off-by: Ali Marandi <ali.marandi@ausencosandwell.com>
Signed-off-by: Harvey Harrison <harvey.harrison@ausencosandwell.com>