* Added new helper functions to get the shortest equivalent of the rotation. In case the w component of the quaternion is negative the rotation is > 180° and taking the longer path. The quaternion will be inverted in that case to take the shortest path of rotation.
* Added unit test.
* Renamed the angle parameter of the CreateRotationX/Y/Z() functions into angleInRadians.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
Sleeping in tests and attempting to rely on fine-grained measurements to
check code validity is intrinsically brittle. Wall-clock time is
unreliable in an environment where tests are run under a hypervisor that
may choose to suspend your VM at any point, or in situations where the
OS cannot schedule your thread in time. The correct way to reintroduce
these tests in the future is provide an override for the timestamp
queries that can be injected in the test environment to control the wall
time deterministically.
Signed-off-by: Jeremy Ong <jcong@amazon.com>
In some cases, the interface being queried may be persistently nullptr
(e.g. a gem isn't active, or a feature was disabled by a cvar). In this
case, querying the interface would always enter the writer-lock branch
with existing code because nullptr was synonmous with "we haven't
queried for this variable yet."
This PR adds an additional state variable that is set when s_instance is
assigned to, so that after the variable is queried and found to be null,
future queries can enter the read-lock branch.
Signed-off-by: Jeremy Ong <jcong@amazon.com>
Direct conversion helpers for quaternion to the scaled axis-angle representation and back without the need to convert them first to the axis-angle format and manually scale (or normalize on the way back). This also avoids having to deal with the special case of an identity representation which is 0,0,0 in the scaled axis-angle format while our convention for axis-angle is 0,1,0 for the axis and 0 for the angle.
Added unit tests that check the conversion round-trips from quaternion -> (scaled) axis-angle -> quaternion as well as comparing the scaled axis-angle representations from the direct helper functions as well as the axis-angle while manually scaling/normalizing.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
* Prefab hotloading - load and maintain asset references
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Working hotloading
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Clean up code, add comments
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add missing includes
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add event for template removal.
Clear ProceduralPrefabSystemComponent lookup when templates are removed.
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add unit test.
Fix missing include, make sure source name is set
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix missing include
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix missing include
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Update comments to make ebus event behavior more clear
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix missing include
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix missing includes
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix missing include
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix temp directory usage which doesn't work on linux
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix temp directory usage which doesn't work on linux
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Use AZ::IO::Path for comparison. Print paths on failure
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix unit test - register asset with catalog so it can be looked up later
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Preapre codebase for FileRequest compiletime improvements
This is preparing grounds for the next PR that will contain the 'meat'
of the changes.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove spurious newline.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
Small change in behavior context attribute for a few
classes so they become visible when extracting Lua symbols
from the ScriptContextDebug() API.
From:
Attribute(AZ::Script::Attributes::ExcludeFrom,
AZ::Script::Attributes::ExcludeFlags::All)
To:
Attribute(AZ::Script::Attributes::ExcludeFrom,
AZ::Script::Attributes::ExcludeFlags::ListOnly)
It seems the previous code was simply trying to hide those symbols from
the Script Canvas node palette. But it was also, seemingly unintentional,
hiding those symbol from Lua Documentation.
Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>