質問編集履歴

1

要点のみ表示

2019/04/25 13:34

投稿

fokurofechi
fokurofechi

スコア10

test CHANGED
File without changes
test CHANGED
@@ -25,86 +25,6 @@
25
25
  ### 該当のソースコード
26
26
 
27
27
 
28
-
29
- ```swift
30
-
31
- import UIKit
32
-
33
- import SceneKit
34
-
35
- import ARKit
36
-
37
-
38
-
39
- class ViewController: UIViewController,
40
-
41
- UIImagePickerControllerDelegate,
42
-
43
- UINavigationControllerDelegate{
44
-
45
-
46
-
47
-
48
-
49
- @IBOutlet weak var sceneView: ARSCNView!
50
-
51
-
52
-
53
- let defaultConfigulation: ARWorldTrackingConfiguration = {
54
-
55
- let configuration = ARWorldTrackingConfiguration()
56
-
57
- configuration.planeDetection = .horizontal
58
-
59
- configuration.environmentTexturing = .automatic
60
-
61
- return configuration
62
-
63
- }()
64
-
65
-
66
-
67
- func createPhotoNode(_ image: UIImage, position: SCNVector3) -> SCNNode {
68
-
69
- let node = SCNNode()
70
-
71
- let scale: CGFloat = 0.3
72
-
73
- let geometry = SCNBox(width: image.size.width * scale / image.size.height,
74
-
75
- height: scale,
76
-
77
- length: 0.00000001,
78
-
79
- chamferRadius: 0.0)
80
-
81
- geometry.firstMaterial?.diffuse.contents = image
82
-
83
- node.geometry = geometry
84
-
85
- node.position = position
86
-
87
- return node
88
-
89
- }
90
-
91
-
92
-
93
- func setImageToScene(image: UIImage) -> SCNNode{
94
-
95
- let camera = sceneView.pointOfView
96
-
97
- let position = SCNVector3(x: 0, y: 0, z: -0.5)
98
-
99
- let convertPosition = camera!.convertPosition(position, to: nil)
100
-
101
- let node = createPhotoNode(image, position: convertPosition)
102
-
103
- return node
104
-
105
- }
106
-
107
-
108
28
 
109
29
  @objc func scenePinchGesture(_ recognizer: UIPinchGestureRecognizer, image: UIImage) {
110
30
 
@@ -148,148 +68,6 @@
148
68
 
149
69
 
150
70
 
151
-
152
-
153
-
154
-
155
- func newMethod(image: UIImage) {
156
-
157
-
158
-
159
- let node = setImageToScene(image: image)
160
-
161
- self.sceneView.scene.rootNode.addChildNode(node)
162
-
163
-
164
-
165
- let pinch = UIPinchGestureRecognizer(
166
-
167
- target: self,
168
-
169
- action: #selector(scenePinchGesture)
170
-
171
- )
172
-
173
- pinch.delegate = self
174
-
175
- self.sceneView.addGestureRecognizer(pinch)
176
-
177
-
178
-
179
- }
180
-
181
-
182
-
183
- func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info :[UIImagePickerController.InfoKey: Any]) {
184
-
185
- if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
186
-
187
- setImageToScene(image: image)
188
-
189
- newMethod(image: image)
190
-
191
- }
192
-
193
- picker.dismiss(animated: true, completion: nil)
194
-
195
- }
196
-
197
-
198
-
199
- func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
200
-
201
- picker.dismiss(animated: true, completion: nil)
202
-
203
- }
204
-
205
-
206
-
207
- override func viewDidLoad() {
208
-
209
- super.viewDidLoad()
210
-
211
- sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
212
-
213
- sceneView.autoenablesDefaultLighting = true
214
-
215
- }
216
-
217
-
218
-
219
-
220
-
221
- override func viewWillAppear(_ animated: Bool) {
222
-
223
- super.viewWillAppear(animated)
224
-
225
- sceneView.session.run(defaultConfigulation)
226
-
227
- }
228
-
229
-
230
-
231
- override func viewWillDisappear(_ animated: Bool) {
232
-
233
- super.viewWillDisappear(animated)
234
-
235
- sceneView.session.pause()
236
-
237
- }
238
-
239
-
240
-
241
-
242
-
243
- @IBAction func photoButtonTapped(_ sender: Any) {
244
-
245
- showUIImagePicker()
246
-
247
- }
248
-
249
-
250
-
251
-
252
-
253
- func showUIImagePicker() {
254
-
255
- if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
256
-
257
- let pickerView = UIImagePickerController()
258
-
259
- pickerView.sourceType = .photoLibrary
260
-
261
- pickerView.delegate = self
262
-
263
- pickerView.modalPresentationStyle = .overFullScreen
264
-
265
- self.present(pickerView, animated: true, completion: nil)
266
-
267
-
268
-
269
- }
270
-
271
- }
272
-
273
-
274
-
275
- }
276
-
277
-
278
-
279
- extension ViewController: UIGestureRecognizerDelegate {
280
-
281
- func gestureRecognizer(_: UIGestureRecognizer,
282
-
283
- shouldRecognizeSimultaneouslyWith shouldRecogunizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool{
284
-
285
- return true
286
-
287
- }
288
-
289
- }
290
-
291
-
292
-
293
71
  ```
294
72
 
295
73