| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #pragma once
- #include "InputChannelGesture.h"
- #include <Gestures/GestureRecognizerSwipe.h>
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- namespace Gestures
- {
- ////////////////////////////////////////////////////////////////////////////////////////////////
- //! Input channel that recognizes discrete click or tap gestures.
- class InputChannelGestureSwipe : public InputChannelGesture
- , public RecognizerSwipe
- {
- public:
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! The gesture configuration values that are exposed to the editor.
- struct TypeAndConfig : public Type, public Config
- {
- public:
- ////////////////////////////////////////////////////////////////////////////////////////
- // Allocator
- AZ_CLASS_ALLOCATOR(TypeAndConfig, AZ::SystemAllocator);
- ////////////////////////////////////////////////////////////////////////////////////////
- // Type Info
- AZ_RTTI(TypeAndConfig, "{507A8F2C-2FC0-4923-80EB-79D52828CBF8}", Type, Config);
- ////////////////////////////////////////////////////////////////////////////////////////
- // Reflection
- static void Reflect(AZ::ReflectContext* context);
- protected:
- ////////////////////////////////////////////////////////////////////////////////////////
- //! \ref Gestures::InputChannelGesture::CreateInputChannel
- InputChannelGesture* CreateInputChannel(const AzFramework::InputChannelId& channelId,
- const AzFramework::InputDevice& inputDevice) override;
- };
- ////////////////////////////////////////////////////////////////////////////////////////////
- // Allocator
- AZ_CLASS_ALLOCATOR(InputChannelGestureSwipe, AZ::SystemAllocator);
- ////////////////////////////////////////////////////////////////////////////////////////////
- // Type Info
- AZ_RTTI(InputChannelGestureSwipe, "{AFBD665B-8101-4183-8506-FEAFBDB8766B}", InputChannel);
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! Constructor
- //! \param[in] inputChannelId Id of the input channel being constructed
- //! \param[in] inputDevice Input device that owns the input channel
- //! \param[in] config The configuration used to setup the gesture recognizer base class
- explicit InputChannelGestureSwipe(const AzFramework::InputChannelId& inputChannelId,
- const AzFramework::InputDevice& inputDevice,
- const Config& config);
- ////////////////////////////////////////////////////////////////////////////////////////////
- // Disable copying
- AZ_DISABLE_COPY_MOVE(InputChannelGestureSwipe);
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! Destructor
- ~InputChannelGestureSwipe() override;
- protected:
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! \ref AzFramework::InputChannel::GetValue
- float GetValue() const override;
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! \ref AzFramework::InputChannel::GetCustomData
- const InputChannel::CustomData* GetCustomData() const override;
- ////////////////////////////////////////////////////////////////////////////////////////////
- //! \ref Gestures::RecognizerDiscrete::OnDiscreteGestureRecognized
- void OnDiscreteGestureRecognized() override;
- };
- } // namespace Gestures
|