forked from TouchScript/TouchScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathITouchManager.cs
More file actions
146 lines (122 loc) · 4.25 KB
/
Copy pathITouchManager.cs
File metadata and controls
146 lines (122 loc) · 4.25 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*
* @author Valentin Simonov / http://va.lent.in/
*/
using System;
using System.Collections.Generic;
using TouchScript.Events;
using TouchScript.Hit;
using TouchScript.Layers;
using UnityEngine;
namespace TouchScript
{
public interface ITouchManager
{
/// <summary>
/// Occurs when a new frame is started before all other events.
/// </summary>
event EventHandler FrameStarted;
/// <summary>
/// Occurs when a frame is finished. After all other events.
/// </summary>
event EventHandler FrameFinished;
/// <summary>
/// Occurs when new touch points are added.
/// </summary>
event EventHandler<TouchEventArgs> TouchesBegan;
/// <summary>
/// Occurs when touch points are updated.
/// </summary>
event EventHandler<TouchEventArgs> TouchesMoved;
/// <summary>
/// Occurs when touch points are removed.
/// </summary>
event EventHandler<TouchEventArgs> TouchesEnded;
/// <summary>
/// Occurs when touch points are cancelled.
/// </summary>
event EventHandler<TouchEventArgs> TouchesCancelled;
/// <summary>
/// Current DPI.
/// </summary>
float DPI { get; set; }
/// <summary>
/// DPI while testing in editor.
/// </summary>
float EditorDPI { get; set; }
/// <summary>
/// DPI of target touch device.
/// </summary>
float LiveDPI { get; set; }
/// <summary>
/// List of touch layers.
/// </summary>
IList<TouchLayer> Layers { get; }
/// <summary>
/// Pixels in a cm with current DPI.
/// </summary>
float DotsPerCentimeter { get; }
/// <summary>
/// Number of active touches.
/// </summary>
int TouchPointsCount { get; }
/// <summary>
/// List of active touches.
/// </summary>
IList<TouchPoint> TouchPoints { get; }
/// <summary>
/// Adds a layer.
/// </summary>
/// <param name="layer">The layer.</param>
/// <returns>True if layer was added.</returns>
bool AddLayer(TouchLayer layer);
bool AddLayer(TouchLayer layer, int index);
/// <summary>
/// Removes a layer.
/// </summary>
/// <param name="layer">The layer.</param>
/// <returns>True if layer was removed.</returns>
bool RemoveLayer(TouchLayer layer);
/// <summary>
/// Swaps layers in sorted array.
/// </summary>
/// <param name="at">Layer index 1.</param>
/// <param name="to">Layer index 2</param>
void ChangeLayerIndex(int at, int to);
/// <summary>
/// Checks if the touch has hit something.
/// </summary>
/// <param name="position">Touch screen position.</param>
/// <returns>Object's transform which has been hit or null otherwise.</returns>
Transform GetHitTarget(Vector2 position);
/// <summary>
/// Checks if the touch has hit something.
/// </summary>
/// <param name="position">Touch point screen position.</param>
/// <param name="hit">Output RaycastHit.</param>
/// <param name="layer">Output touch layer which was hit.</param>
/// <returns>True if something was hit.</returns>
bool GetHitTarget(Vector2 position, out TouchHit hit, out TouchLayer layer);
/// <summary>
/// Registers a touch.
/// </summary>
/// <param name="position">Touch position.</param>
/// <returns>Internal id of the new touch.</returns>
int BeginTouch(Vector2 position);
/// <summary>
/// Moves a touch.
/// </summary>
/// <param name="id">Internal touch id.</param>
/// <param name="position">New position.</param>
void MoveTouch(int id, Vector2 position);
/// <summary>
/// Ends a touch.
/// </summary>
/// <param name="id">Internal touch id.</param>
void EndTouch(int id);
/// <summary>
/// Cancels a touch.
/// </summary>
/// <param name="id">Internal touch id.</param>
void CancelTouch(int id);
}
}