/// <summary> /// Create new manipulation processor /// </summary> /// <remarks> /// Call the <see cref="ProcessDown"/>, <see cref="ProcessMove"/>, <see cref="ProcessUp"/> to feed the processor. /// Register on <see cref="ManipulationStarted"/>, <see cref="ManipulationDelta"/> and <see cref="ManipulationCompleted"/> /// to handle manipulation events /// </remarks> /// <param name="supportedManipulations">Activate specific manipulation (scale, translate, rotate)</param> public ManipulationProcessor(ProcessorManipulations supportedManipulations) { _comManipulationProcessor = new ManipulationInterop.ManipulationProcessor(); _comManipulationEvents = new ManipulationEvents(_comManipulationProcessor, ManipulationEventHandler); SupportedManipulations = supportedManipulations; }
/// <summary> /// Create new manipulation processor /// </summary> /// <remarks> /// Call the <see cref="ManipulationProcessor.ProcessDown"/>, <see cref="ManipulationProcessor.ProcessMove"/>, <see cref="ManipulationProcessor.ProcessUp"/> to feed the processor. /// Register on <see cref="ManipulationProcessor.ManipulationStarted"/>, <see cref="ManipulationProcessor.ManipulationDelta"/> and <see cref="ManipulationProcessor.ManipulationCompleted"/> /// to handle manipulation events /// Set the <see cref="InertiaProcessor"/> properties to get the desired inertia behavior /// Register to the <see cref="BeforeInertia"/> event to set the inertia properties when inertia is starting/> /// </remarks> /// <param name="supportedManipulations">Activate specific manipulation (scale, translate, rotate)</param> /// <param name="timer">The GUI timer that will be used for inertia events</param> public ManipulationInertiaProcessor(ProcessorManipulations supportedManipulations, IGUITimer timer) : base(supportedManipulations) { _inertiaProcessor.SetTimer(timer); BeforeInertia += (s, e) => { }; }