1
00:00:05,780 --> 00:00:11,990
Hey what's up everyone Mark Price here at DEF slopes dot com and let's see if we can't finish up this

2
00:00:12,170 --> 00:00:13,960
video or this app.

3
00:00:13,970 --> 00:00:19,460
And in this video and what we have left to do is I want to implement some controls where you can we

4
00:00:19,580 --> 00:00:26,180
you can manipulate and move things around and move them up and down and such and then some other cleanup.

5
00:00:26,180 --> 00:00:32,990
So first clean up I want to do is in the ramp picker when we select the ramp here I want to go ahead

6
00:00:33,020 --> 00:00:37,720
and dismiss the View Controller so dismiss animated.

7
00:00:37,730 --> 00:00:38,480
Yes.

8
00:00:38,690 --> 00:00:39,970
We don't care when it's done.

9
00:00:40,190 --> 00:00:45,680
So that will go away once we've selected something and then the other thing we want to do is get back

10
00:00:45,680 --> 00:00:51,290
in place or we're going to need to store a reference to our ramp now because we need to be able to move

11
00:00:51,290 --> 00:00:53,300
it around and delete it.

12
00:00:53,330 --> 00:00:58,510
And so what I want to do here is selected ramp.

13
00:00:58,510 --> 00:00:59,040
That's funny.

14
00:00:59,050 --> 00:01:04,870
We should probably call this select the ramp name.

15
00:01:04,870 --> 00:01:06,180
That's what we should do.

16
00:01:06,410 --> 00:01:10,000
And then make the selected ramp the actual selected ramp.

17
00:01:10,000 --> 00:01:11,790
So wherever I found.

18
00:01:11,810 --> 00:01:16,110
Come on name select that ramp name.

19
00:01:16,240 --> 00:01:16,630
There it is.

20
00:01:16,630 --> 00:01:19,810
This one selected ramp name.

21
00:01:20,620 --> 00:01:23,240
And this one is slick the ramp name.

22
00:01:23,780 --> 00:01:24,360
OK.

23
00:01:24,610 --> 00:01:25,750
Perfect.

24
00:01:25,750 --> 00:01:26,470
Very good.

25
00:01:28,010 --> 00:01:36,980
And let's go ahead and create a selected ramp now of our selected ramp of type C and node okay like

26
00:01:36,980 --> 00:01:39,590
so perfect.

27
00:01:39,590 --> 00:01:41,380
And then when we actually slide the ramp.

28
00:01:41,490 --> 00:01:46,240
So Or is it down here.

29
00:01:46,560 --> 00:01:46,930
OK.

30
00:01:46,980 --> 00:01:50,880
We're going to say selected ramp equals ramp.

31
00:01:50,880 --> 00:01:52,820
We're just going to store reference to it right here.

32
00:01:52,830 --> 00:01:58,050
So now let's go ahead and do the user interface for our cool little controls.

33
00:01:58,050 --> 00:01:59,310
So we've got our button over here.

34
00:01:59,320 --> 00:02:03,990
What I want to do is put four buttons here and then probably put them in a stack view that makes the

35
00:02:03,990 --> 00:02:04,960
most sense.

36
00:02:04,980 --> 00:02:12,000
So we're going to say button and what I'm going to do is take off the word button and we're going to

37
00:02:12,000 --> 00:02:16,650
set an image here and let's call this the close by.

38
00:02:16,650 --> 00:02:25,740
And no not the close button the Remove button removed but that's what we want and I'm going to go ahead

39
00:02:25,830 --> 00:02:32,730
and let's make this little bit bigger like so so it's actually tabel a little bigger the buttons the

40
00:02:32,730 --> 00:02:35,250
same size but I'm making the bounding box bigger.

41
00:02:35,460 --> 00:02:37,740
And let's go ahead and set a constraint on this.

42
00:02:37,770 --> 00:02:42,460
We're going to say Fix width and height and we'll just say 41 by 41.

43
00:02:42,660 --> 00:02:43,740
That's fine.

44
00:02:43,740 --> 00:02:53,760
Now what I'm going to do is duplicate this three times one two three and then this one will be the rotate

45
00:02:53,760 --> 00:03:05,900
by an like so this one will be the move up by an up arrow and this one will be the down arrow we can

46
00:03:05,900 --> 00:03:07,310
find the down arrow.

47
00:03:07,310 --> 00:03:08,180
Perfect.

48
00:03:08,180 --> 00:03:14,900
Now what I'm going to do is just simply shift select all of these and put them in a stack view by clicking

49
00:03:14,900 --> 00:03:17,000
this button here embed and stack.

50
00:03:17,300 --> 00:03:20,180
And now what I want to do is distribute feel equally.

51
00:03:20,600 --> 00:03:21,980
Let's go ahead and add some spacing.

52
00:03:21,980 --> 00:03:24,360
Make it larger there.

53
00:03:24,380 --> 00:03:31,580
And what I want to do is just move it to the same bottom portion of the view as is match with this button

54
00:03:31,700 --> 00:03:33,480
and let's set constraints on the stack.

55
00:03:33,760 --> 00:03:41,660
And I want to say 10 from the left and 10 from the bottom and there are buttons which is pretty cool.

56
00:03:41,660 --> 00:03:44,520
No big deal you've done this before.

57
00:03:44,540 --> 00:03:46,290
A thousand times.

58
00:03:46,490 --> 00:03:47,190
OK.

59
00:03:47,900 --> 00:03:48,900
So what do we want to do now.

60
00:03:48,930 --> 00:03:50,540
What we've got is four buttons right.

61
00:03:50,720 --> 00:03:53,850
And if you maybe you're thinking well let's just be actions for all four.

62
00:03:53,870 --> 00:03:57,620
Well we can't really set that action for the delete button because it's just a tap.

63
00:03:57,860 --> 00:04:02,450
But what we want to do is when we're rotating on we're pressing the rotate button we want the ramp to

64
00:04:02,450 --> 00:04:04,520
rotate so long as we're pressing it.

65
00:04:04,590 --> 00:04:09,770
It's a little more difficult and you can't really do that with reactions easily and the same thing for

66
00:04:09,770 --> 00:04:13,300
the up and down but when you're pressing it we want to move the ramps.

67
00:04:13,370 --> 00:04:18,600
And so what we're going to need to do instead is use gesture recognizers but we will need to make IAB

68
00:04:18,620 --> 00:04:19,520
outlets for these.

69
00:04:19,550 --> 00:04:21,230
And one IAB action for the red button.

70
00:04:21,230 --> 00:04:25,070
So let's open up the assistant editor by clicking the two circles there.

71
00:04:25,250 --> 00:04:31,020
And what we're going to do is I'm going to create an IB action down here for the close button

72
00:04:34,260 --> 00:04:40,300
so grab this close button or the Remove button and we're going to create an action.

73
00:04:40,380 --> 00:04:47,190
We're going say on remove and remove pressed so that one's done.

74
00:04:47,520 --> 00:04:49,870
So I think we're OK now in Interface Builder.

75
00:04:50,190 --> 00:04:57,090
Let's go over to the well you know what let's keep a reference to the stack view as well too.

76
00:04:57,170 --> 00:05:01,220
Because what I want to do is if you haven't selected a Rampa I want to hide this.

77
00:05:01,340 --> 00:05:03,270
I don't want a stack of you to be visible.

78
00:05:03,300 --> 00:05:08,310
So first make a hit in and then what we'll do is we'll make an outlet for it over here.

79
00:05:10,200 --> 00:05:15,940
So this is going to be our last call controls.

80
00:05:15,980 --> 00:05:22,730
We go controls ibl and close the assistant editor and let's go back to our ramp place Ribisi.

81
00:05:23,340 --> 00:05:24,380
Ok cool.

82
00:05:24,390 --> 00:05:27,960
So let's just do the easy one first which is the the removal right.

83
00:05:27,960 --> 00:05:31,370
So let's go over here unroofed press.

84
00:05:31,410 --> 00:05:37,320
So what we'll do is we'll say if the left ramp equals and we're going to say selected ramp.

85
00:05:37,320 --> 00:05:39,070
So if there is a selected ramp.

86
00:05:39,410 --> 00:05:39,870
OK.

87
00:05:39,930 --> 00:05:47,630
Well we want to do is just remove it right so ramp up remove from parent node and we'll say ramp or

88
00:05:48,740 --> 00:05:52,960
then we'll say selected ramp equals Neal.

89
00:05:53,440 --> 00:05:54,060
OK.

90
00:05:54,270 --> 00:05:58,080
We'll make it the one that we're referencing up at the top of the pile here.

91
00:05:58,080 --> 00:06:00,830
We'll make it kneel after we remove it.

92
00:06:00,900 --> 00:06:01,690
No big deal.

93
00:06:01,850 --> 00:06:07,480
And if it is good because it could be nil and we don't want her apt to crash so that's good on the move

94
00:06:07,490 --> 00:06:07,740
press.

95
00:06:07,770 --> 00:06:09,300
Now how do we do the hard part.

96
00:06:09,450 --> 00:06:11,160
The actual button presses.

97
00:06:11,190 --> 00:06:16,010
So what we're gonna do is we're going to go up here to our view did load.

98
00:06:16,050 --> 00:06:16,890
All right.

99
00:06:16,890 --> 00:06:19,120
And we're going to need to create some gestures now.

100
00:06:19,470 --> 00:06:25,560
Unfortunately we can't just use one gesture for all the buttons we have to create three different gestures.

101
00:06:25,560 --> 00:06:30,150
And the reason is normally you could you could create one gesture and added multiple views.

102
00:06:30,150 --> 00:06:34,070
And so long as you're just using the view to detect when the tap happens that's fine.

103
00:06:34,410 --> 00:06:38,650
But what if you need to reference the view that actually caused the tap to happen.

104
00:06:38,820 --> 00:06:43,580
Well if you use one gesture recognizer every time you add it to a new view it replaces that view.

105
00:06:43,800 --> 00:06:48,540
And so what we need to do is create a new gesture recognizer for each gesture.

106
00:06:48,750 --> 00:06:53,610
Trust me you have to do it this way if you don't believe me just use one gesture recognize or try it

107
00:06:53,610 --> 00:06:55,650
out and see what happens.

108
00:06:55,720 --> 00:07:04,920
It's a gesture one equals UI a long press gesture recognizer and the target is going to be self and

109
00:07:04,920 --> 00:07:07,670
the action is going to be what.

110
00:07:07,710 --> 00:07:09,050
Well we didn't create one yes.

111
00:07:09,060 --> 00:07:10,390
Let's do that now.

112
00:07:10,590 --> 00:07:18,810
We're going to say what we want to call this let's say at BJC because it's just objective c runtime

113
00:07:18,810 --> 00:07:21,090
function.

114
00:07:21,840 --> 00:07:30,000
We're going to say phunk on long press and the gesture is going to be of type I long press gesture graphic

115
00:07:30,280 --> 00:07:33,160
Nizer and that's what we use.

116
00:07:33,480 --> 00:07:42,920
Let's go back up here to the top and the selector is going to be working my auto complete is complete.

117
00:07:43,500 --> 00:07:45,090
It's not working for us that's fine.

118
00:07:45,090 --> 00:07:51,430
So there's going to be on long press area now.

119
00:07:51,480 --> 00:07:53,070
Now it came to our aid.

120
00:07:53,070 --> 00:07:53,780
All right great.

121
00:07:53,970 --> 00:07:56,480
And so what we're going to do is just copy and paste it two more times.

122
00:07:56,490 --> 00:08:01,890
I know it sounds like it's the wrong thing to do but it's not because each gesture needs to hold a reference

123
00:08:01,890 --> 00:08:03,330
to its own view.

124
00:08:03,600 --> 00:08:06,290
So just your one gesture to gesture three.

125
00:08:06,460 --> 00:08:14,610
And we're also going to use a gesture one minimum minimum press to ration equal 0.1 we're going to make

126
00:08:14,610 --> 00:08:18,950
it really small like a small long press because we wanted to start working right away.

127
00:08:19,170 --> 00:08:22,040
Well copy this two more times.

128
00:08:22,050 --> 00:08:23,430
I know it doesn't seem very dry.

129
00:08:23,430 --> 00:08:24,990
Don't repeat yourself.

130
00:08:25,410 --> 00:08:27,420
But this is the way we got to do it.

131
00:08:27,420 --> 00:08:35,640
And then let's go ahead and say rotate and add gesture recognizer and he did the image.

132
00:08:35,640 --> 00:08:36,670
That's funny.

133
00:08:36,750 --> 00:08:38,990
Rotate.

134
00:08:39,020 --> 00:08:39,320
All right.

135
00:08:39,320 --> 00:08:41,840
Now do we not make her Iby outlets.

136
00:08:41,990 --> 00:08:42,770
Oh we didn't.

137
00:08:42,770 --> 00:08:44,540
Guys what the heck.

138
00:08:44,540 --> 00:08:47,200
Why don't you tell me we didn't make her IBL.

139
00:08:47,220 --> 00:08:50,630
I said we were going to do it but then we didn't.

140
00:08:50,630 --> 00:08:51,310
Silly me.

141
00:08:51,530 --> 00:08:51,940
Yes.

142
00:08:51,940 --> 00:08:52,970
Proben waiting this whole time.

143
00:08:52,970 --> 00:08:54,620
When are you going to do it.

144
00:08:54,620 --> 00:08:54,820
All right.

145
00:08:54,820 --> 00:08:56,400
So control drag.

146
00:08:57,650 --> 00:09:01,820
And this is going to be called rotate DTN.

147
00:09:02,330 --> 00:09:04,550
So names exco drives me crazy.

148
00:09:04,570 --> 00:09:07,310
Just give me random errors is all OK.

149
00:09:07,720 --> 00:09:08,780
Control drag.

150
00:09:09,100 --> 00:09:12,610
And we're going to call this rotate button.

151
00:09:12,780 --> 00:09:13,600
All right.

152
00:09:13,600 --> 00:09:17,500
Sometimes when they're all close together like that and you direct control drag it throws an error.

153
00:09:17,500 --> 00:09:26,530
So and this one we're going to call him we'll call this up button.

154
00:09:28,520 --> 00:09:29,340
Yeah.

155
00:09:29,510 --> 00:09:32,670
And then what we'll do is we'll make a new one called Down button

156
00:09:35,700 --> 00:09:37,530
down between.

157
00:09:37,790 --> 00:09:38,770
OK now we're good.

158
00:09:38,790 --> 00:09:42,810
Let's close the assistant editor and go back into our rent place.

159
00:09:43,380 --> 00:09:43,860
Wonderful.

160
00:09:43,860 --> 00:09:52,500
Now we can say rotate between dot and gesture recognizer gesture one and then we're going to say up

161
00:09:52,590 --> 00:10:07,680
between dot and gesture recognizer gesture to and then down and add gesture recognizer gesture three.

162
00:10:08,070 --> 00:10:11,250
I know it's a lot but we're getting close.

163
00:10:11,250 --> 00:10:14,490
So we're just adding gesture recognizers for each of these views.

164
00:10:14,700 --> 00:10:17,480
And this looks good to me.

165
00:10:17,700 --> 00:10:19,920
Now go down here to our on long press.

166
00:10:19,920 --> 00:10:20,790
What do we want to do.

167
00:10:20,850 --> 00:10:23,750
Well what we want to do is if.

168
00:10:23,970 --> 00:10:27,850
So basically whenever a long press is happening we want to detect when it started.

169
00:10:27,970 --> 00:10:31,310
So we also want to detect when it ended if it if it began.

170
00:10:31,440 --> 00:10:34,350
We want to go ahead and what we want to do is run an action forever.

171
00:10:34,350 --> 00:10:36,190
It's going to move it down forever.

172
00:10:36,210 --> 00:10:42,300
So what's funny is when our fingers down the fact that the fingers down doesn't really matter it's not

173
00:10:42,660 --> 00:10:48,010
we're kind of secretly doing something under the hood we're actually doing an action forever.

174
00:10:48,150 --> 00:10:51,600
But we also detect when your finger comes up and then we stop the action.

175
00:10:51,600 --> 00:10:51,900
Right.

176
00:10:51,900 --> 00:10:54,630
So we don't have to do any complex math anything crazy.

177
00:10:54,780 --> 00:10:59,790
We just got to use our brains to do something smart and we're going to some smart.

178
00:10:59,790 --> 00:11:01,450
So no big deal.

179
00:11:01,860 --> 00:11:06,990
So on long press if left ramp equals ramp is selected ramp.

180
00:11:07,810 --> 00:11:13,580
OK so let's make sure that we actually have a ramp to actually manipulate with the controls.

181
00:11:13,830 --> 00:11:21,940
And then what we're going to do is we're going to say if gesture does state equals that ended OK if

182
00:11:21,940 --> 00:11:28,690
it equals that ended what are we going to do or say ramp down remove all actions.

183
00:11:29,410 --> 00:11:31,640
And what equals is what I meant to do.

184
00:11:31,650 --> 00:11:33,530
This is not javascript.

185
00:11:34,090 --> 00:11:34,760
OK.

186
00:11:35,400 --> 00:11:41,590
Else if just your state equals began.

187
00:11:41,730 --> 00:11:42,760
What do we want to do.

188
00:11:42,960 --> 00:11:46,930
Well first off we need to see which button was pressed.

189
00:11:47,070 --> 00:11:47,540
OK.

190
00:11:47,670 --> 00:11:49,350
So that's easy.

191
00:11:49,350 --> 00:11:52,850
We just need to run some up some some reference checking.

192
00:11:52,850 --> 00:12:00,030
So what we're going to do is we're going to say if gesture that view equals the same do use the triple

193
00:12:00,030 --> 00:12:00,930
equal sign.

194
00:12:00,930 --> 00:12:01,640
OK.

195
00:12:01,920 --> 00:12:03,280
Rotate button.

196
00:12:04,100 --> 00:12:04,310
OK.

197
00:12:04,320 --> 00:12:09,590
So if you are kind of new to swift and you're diving into this more complex topic of augment or of your

198
00:12:09,600 --> 00:12:13,140
augmented reality what's the difference between a double equal and triple.

199
00:12:13,130 --> 00:12:16,310
Equals well a double equal is just checking type and value.

200
00:12:16,420 --> 00:12:18,900
OK a triple equals is actually checking the reference.

201
00:12:18,900 --> 00:12:23,700
So what we're doing is we're saying we're actually grabbing a memory location and checking it against

202
00:12:23,700 --> 00:12:24,620
this memory location.

203
00:12:24,630 --> 00:12:31,260
You know you know x x 0 x whatever this memory slot we're seeing if it's in the same slot in memory.

204
00:12:31,260 --> 00:12:35,410
So is the view that the gestures on is the exact same view as the rotate by.

205
00:12:35,420 --> 00:12:37,600
And we know that rotate was pressed.

206
00:12:37,650 --> 00:12:38,240
OK.

207
00:12:38,370 --> 00:12:42,450
Remember we couldn't do the actions for those buttons where we we we we just know it was pressed.

208
00:12:42,450 --> 00:12:47,160
Because what we wanted to do was detect when it's a long press down and when the finger comes up we

209
00:12:47,160 --> 00:12:52,600
had to use gesture recognizers And so we're checking the reference in memory of the view that's Tatsu

210
00:12:52,590 --> 00:12:54,790
the gesture and making sure it's attached.

211
00:12:54,870 --> 00:13:00,420
So if the view that was just pressed is the rotate button that's all we're saying here as if it's the

212
00:13:00,420 --> 00:13:01,800
same one in memory.

213
00:13:01,810 --> 00:13:04,030
Ok then let's just go ahead and rotate.

214
00:13:04,050 --> 00:13:12,600
So let rotate equals CNA action that repeat forever like so.

215
00:13:12,780 --> 00:13:14,790
See in action.

216
00:13:14,820 --> 00:13:19,550
Rotate by and we're going to say zero.

217
00:13:19,770 --> 00:13:25,150
And on the why we're in a CCG full light and where it say zero point is 0 8.

218
00:13:25,180 --> 00:13:32,450
So the number that I tested out times double dot pi k and Z we're not going to rotate at all.

219
00:13:32,470 --> 00:13:37,170
And the duration is 0.1 So it's very similar to the code we wrote to rotate before except this one is

220
00:13:37,170 --> 00:13:37,920
faster.

221
00:13:37,950 --> 00:13:41,880
We want to rotate faster when we sit there holding it down forever.

222
00:13:41,970 --> 00:13:48,090
So rotate and there were a ramp that run action or just rotate.

223
00:13:48,270 --> 00:13:53,410
So when the finger comes down on the rotation start an action that goes forever it rotates forever.

224
00:13:53,580 --> 00:13:56,030
And then of course when your finger comes up we just remove the action.

225
00:13:56,040 --> 00:14:01,760
So it simulates like your finger being down is actually actually moving something when it's really not.

226
00:14:01,770 --> 00:14:04,820
It's this action here that we started once and once.

227
00:14:05,140 --> 00:14:13,970
So if you gesture that view equals the up button.

228
00:14:14,310 --> 00:14:16,410
OK what do we want to do we want to move it up.

229
00:14:16,520 --> 00:14:20,220
So let's move it was as an action.

230
00:14:20,280 --> 00:14:22,110
Repeat forever.

231
00:14:22,590 --> 00:14:26,930
See an action that moves by.

232
00:14:27,810 --> 00:14:32,740
And we're going to say zero Hoopes we're going to say

233
00:14:35,760 --> 00:14:39,320
come on action that move by.

234
00:14:39,520 --> 00:14:40,260
I did it wrong.

235
00:14:40,360 --> 00:14:42,800
My bad move by.

236
00:14:42,820 --> 00:14:43,970
That's the one we want.

237
00:14:44,230 --> 00:14:50,920
And then we went to zero and then negative zero point zero eight for the speed and the Z is going to

238
00:14:50,920 --> 00:14:52,760
be zero and the duration is 0.1.

239
00:14:52,910 --> 00:14:53,650
OK.

240
00:14:54,250 --> 00:14:55,270
So that's the.

241
00:14:55,420 --> 00:14:56,920
Well I'm not negative.

242
00:14:56,960 --> 00:14:57,930
This would be down.

243
00:14:57,970 --> 00:15:00,820
So eight points or eight would be up.

244
00:15:01,020 --> 00:15:01,790
OK.

245
00:15:01,840 --> 00:15:09,570
And then when I say ramp run action and we're going to say move OK.

246
00:15:09,820 --> 00:15:19,420
And then we're going to say LCF gesture equals down button we're going to copy this.

247
00:15:19,940 --> 00:15:26,460
So and then we'll add the we'll add the negative.

248
00:15:26,460 --> 00:15:27,880
The mind is simple there.

249
00:15:27,910 --> 00:15:28,510
OK.

250
00:15:28,920 --> 00:15:32,780
So when we start rotating let's run.

251
00:15:32,850 --> 00:15:35,990
Repeat for every rotation action if or up or down.

252
00:15:36,090 --> 00:15:41,250
We just roll all this code and then when we remove all the action and that's on a long press we added

253
00:15:41,250 --> 00:15:45,710
the gesture recognizer So technically this would all work out of the box for us here.

254
00:15:45,930 --> 00:15:48,110
Let's see if it actually does.

255
00:15:48,120 --> 00:15:53,470
So let me go ahead and run the app.

256
00:15:53,670 --> 00:15:53,910
OK.

257
00:15:53,910 --> 00:15:56,200
So the app is running and I'm recording it here.

258
00:15:56,250 --> 00:16:03,640
I'm going to press the button and I'm going to select the pyramid.

259
00:16:04,180 --> 00:16:06,820
I'm going to tap and the pyramid is there.

260
00:16:07,300 --> 00:16:11,160
But my crew controls didn't appear and that's because we forgot to unhide them.

261
00:16:11,260 --> 00:16:16,960
So let's go back over here to our place ramp.

262
00:16:16,990 --> 00:16:25,970
Perfect and what we want to do is just say controls dot hit hidden equals hidden equals false.

263
00:16:26,230 --> 00:16:28,690
And let's go ahead and run this again.

264
00:16:29,050 --> 00:16:37,720
Running it going to select the ramp in a tap to place the ramp there and the rotate button that's working.

265
00:16:37,730 --> 00:16:43,420
I'm going to press the down button and that's working and the Upperton is working as well.

266
00:16:43,470 --> 00:16:46,980
Let's see if the Remove button is working which it is.

267
00:16:46,980 --> 00:16:48,250
Let's see if we can place another ramp.

268
00:16:50,540 --> 00:16:54,050
There's a quarter pipe way up there to my I.

269
00:16:54,100 --> 00:16:56,840
We got one up there which I can't delete.

270
00:16:56,840 --> 00:17:00,340
Now that's a feature upgrade you can add.

271
00:17:00,390 --> 00:17:02,380
I was moved down here.

272
00:17:02,480 --> 00:17:02,770
Yeah.

273
00:17:02,780 --> 00:17:04,820
So it's definitely working.

274
00:17:04,820 --> 00:17:06,120
Very very cool.

275
00:17:06,140 --> 00:17:08,630
And let's just make sure our half pipe is working I'm deleting that

276
00:17:12,390 --> 00:17:16,110
and that's working to get that.

277
00:17:16,410 --> 00:17:20,010
Now of course we need to really be outside to do this and

278
00:17:22,830 --> 00:17:24,780
see what it's going to be like the scale and everything.

279
00:17:24,780 --> 00:17:32,380
And currently where I live it's dark but we've already seen what it looks like here on the privey video.

280
00:17:32,410 --> 00:17:35,140
I did this earlier show that here.

281
00:17:35,400 --> 00:17:37,290
And cool.

282
00:17:37,680 --> 00:17:38,790
This is really cool.

283
00:17:38,790 --> 00:17:42,360
How do we do one more thing we just clean up our pop up.

284
00:17:42,360 --> 00:17:46,080
I don't like the fact that there's no border on our rent picker pop up.

285
00:17:46,260 --> 00:17:55,980
Let's just quickly have some fun with that so ramp picker ramp picker here and let's just do it in here.

286
00:17:55,980 --> 00:18:02,970
So what we're going to do is we're going to say you flared up the border color equals color literal

287
00:18:03,480 --> 00:18:10,050
white is fine and then view Lerdo up border with ECOs 3.0.

288
00:18:10,470 --> 00:18:15,480
Make it look nice and pretty here we'll do on the simulator this time and run it.

289
00:18:16,230 --> 00:18:19,170
OK we're not going to see anything obviously because it's not working.

290
00:18:19,180 --> 00:18:20,640
Click the invisible button.

291
00:18:22,600 --> 00:18:24,620
And there's definitely border on here.

292
00:18:24,670 --> 00:18:28,480
So that's what we want and it looks really good with our camera in the background so that's it.

293
00:18:28,480 --> 00:18:30,880
We're going to call this video done.

294
00:18:30,880 --> 00:18:36,130
So what we've done here is we've created our very first app.

295
00:18:36,160 --> 00:18:36,800
OK.

296
00:18:37,090 --> 00:18:38,860
We are working.

297
00:18:38,890 --> 00:18:43,640
We basically have a pop up that appears where you can select one of three models and then we select

298
00:18:43,640 --> 00:18:49,150
it dismiss the pop up and we can place it on the screen using the screen or the surface detection technology

299
00:18:49,600 --> 00:18:51,090
and you'll learn how to do that.

300
00:18:51,130 --> 00:18:54,460
And there's so much more to a market to learn.

301
00:18:54,460 --> 00:19:00,310
But we've we've done a lot here and you can move things around in the 3-D space and it tracks where

302
00:19:00,310 --> 00:19:05,530
they are so you can actually walk around and turn your phone and still be there which is pretty dang

303
00:19:05,680 --> 00:19:05,980
cool.

304
00:19:05,980 --> 00:19:09,610
Imagine all the things you could do you can make a 3D game with the Worlds and environments and walk

305
00:19:09,610 --> 00:19:12,680
around and have enemies and everything stays in place.

306
00:19:12,700 --> 00:19:16,540
Really cool stuff with the service technology of course that's really important.

307
00:19:16,660 --> 00:19:19,780
Used to have to use your coach right to detect the surface.

308
00:19:19,840 --> 00:19:24,850
Now it actually does the surface detection real time which is amazing so really good stuff here we've

309
00:19:24,850 --> 00:19:25,360
done a lot.

310
00:19:25,360 --> 00:19:31,230
It can get complex but this is a good step in the right direction for you in your adventures in air

311
00:19:31,230 --> 00:19:31,500
kits.

312
00:19:31,510 --> 00:19:32,130
That's it.

313
00:19:32,140 --> 00:19:34,330
Marc price you're at does soap's dot com.

314
00:19:34,330 --> 00:19:35,020
See you next time.
