/*
* @author Valentin Simonov / http://va.lent.in/
*/
using System;
using UnityEngine;
namespace TouchScript.Gestures.TransformGestures
{
///
/// Gesture which performs some kind of transformation in 3d space, i.e. translation, rotation, scaling or a combination of these.
///
public interface ITransformGesture
{
///
/// Occurs when gesture starts.
///
event EventHandler TransformStarted;
///
/// Occurs when gesture data updates.
///
event EventHandler Transformed;
///
/// Occurs when gesture finishes.
///
event EventHandler TransformCompleted;
///
/// Contains transform operations which happened this frame.
///
TransformGesture.TransformType TransformMask { get; }
///
/// Gets delta position between this frame and the last frame in world coordinates.
/// This value is only available during or events.
///
Vector3 DeltaPosition { get; }
///
/// Gets delta rotation between this frame and last frame in degrees.
/// This value is only available during or events.
///
float DeltaRotation { get; }
///
/// Contains local delta scale when gesture is recognized.
/// Value is between 0 and +infinity, where 1 is no scale, 0.5 is scaled in half, 2 scaled twice.
/// This value is only available during or events.
///
float DeltaScale { get; }
///
/// Gets rotation axis of the gesture in world coordinates.
///
/// Rotation axis of the gesture in world coordinates.
Vector3 RotationAxis { get; }
}
}