1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#pragma once
namespace scene
{
/**
* @brief Storage for a value which exists in both a base and a
* temporarily-transformed state.
*
* The base state is typically stored in spawnargs (e.g. the "origin" key),
* whereas the transformed state is rendered during an ongoing mouse
* manipulation.
*
* @tparam T
* A copyable value (usually a Vector3 or an angle).
*/
template <typename T> struct TransformedCopy
{
/// Untransformed value
T base;
/// Temporarily-transformed value
T transformed;
/// Reset all transformed values to the base values
void revertTransform()
{
transformed = base;
}
};
} // namespace scene
|