1 #ifndef DALI_TOUCH_POINT_H
2 #define DALI_TOUCH_POINT_H
5 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <cstdint> // uint32_t
25 #include <dali/public-api/common/vector-wrapper.h>
26 #include <dali/public-api/actors/actor.h>
27 #include <dali/public-api/events/point-state.h>
28 #include <dali/public-api/math/vector2.h>
33 * @addtogroup dali_core_events
38 * @brief A TouchPoint represents a point on the screen that is currently being touched
39 * or where touch has stopped.
42 struct DALI_CORE_API TouchPoint
44 // Construction & Destruction
50 * @param[in] id The touch device ID
51 * @param[in] state The state
52 * @param[in] screenX The X co-ordinate relative to the screen's origin
53 * @param[in] screenY The Y co-ordinate relative to the screen's origin
55 TouchPoint(int32_t id, PointState::Type state, float screenX, float screenY);
61 * @param[in] id The touch device ID
62 * @param[in] state The state
63 * @param[in] screenX The X co-ordinate relative to the screen's origin
64 * @param[in] screenY The Y co-ordinate relative to the screen's origin
65 * @param[in] localX The X co-ordinate relative to the top-left (0.0, 0.0, 0.5) of the actor
66 * @param[in] localY The Y co-ordinate relative to the top-left (0.0, 0.0, 0.5) of the actor
68 TouchPoint(int32_t id, PointState::Type state, float screenX, float screenY, float localX, float localY);
79 * @brief Each touch point has a unique device ID which specifies the touch device for that point.
84 * @brief State of the point.
86 * @see Dali::PointState::Type
88 PointState::Type state;
91 * @brief The actor that was underneath the touch point.
96 * @brief The co-ordinates relative to the top-left of the hit-actor.
98 * @note The top-left of an actor is (0.0, 0.0, 0.5).
99 * @note If you require the local coordinates of another actor (e.g the parent of the hit actor),
100 * then you should use Actor::ScreenToLocal().
105 * @brief The co-ordinates relative to the top-left of the screen.
110 typedef std::vector<TouchPoint> TouchPointContainer; ///< Container of touch points. @SINCE_1_0.0
111 typedef TouchPointContainer::iterator TouchPointContainerIterator; ///< Iterator for Dali::TouchPointContainer @SINCE_1_0.0
112 typedef TouchPointContainer::const_iterator TouchPointContainerConstIterator; ///< Const iterator for Dali::TouchPointContainer @SINCE_1_0.0
119 #endif // DALI_TOUCH_POINT_H