Skip to content

Commit c7dd03b

Browse files
committed
change implementation approach
1 parent 0084c44 commit c7dd03b

1 file changed

Lines changed: 29 additions & 13 deletions

File tree

MapboxARKit/AnnotationManager.swift

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,15 @@ import CoreLocation
77
@objc optional func node(for annotation: Annotation) -> SCNNode?
88
@objc optional func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera)
99

10-
@objc optional func MBRenderer(_ renderer: SCNSceneRenderer, time: TimeInterval)
11-
@objc optional func MBRenderer(_ renderer: SCNSceneRenderer, addedNode: SCNNode, anchor: ARAnchor)
12-
@objc optional func MBRenderer(_ renderer: SCNSceneRenderer, updatedNode: SCNNode, anchor: ARAnchor)
13-
@objc optional func MBRenderer(_ renderer: SCNSceneRenderer, removedNode: SCNNode, anchor: ARAnchor)
10+
@objc optional func renderer(_ renderer: SCNSceneRenderer, time: TimeInterval)
11+
12+
@objc optional func renderer(_ renderer: SCNSceneRenderer, addedNode: SCNNode, mbAnchor anchor: MBARAnchor)
13+
@objc optional func renderer(_ renderer: SCNSceneRenderer, updatedNode: SCNNode, mbAnchor anchor: MBARAnchor)
14+
@objc optional func renderer(_ renderer: SCNSceneRenderer, removedNode: SCNNode, mbAnchor anchor: MBARAnchor)
15+
16+
@objc optional func renderer(_ renderer: SCNSceneRenderer, addedNode: SCNNode, arAnchor anchor: ARAnchor)
17+
@objc optional func renderer(_ renderer: SCNSceneRenderer, updatedNode: SCNNode, arAnchor anchor: ARAnchor)
18+
@objc optional func renderer(_ renderer: SCNSceneRenderer, removedNode: SCNNode, arAnchor anchor: ARAnchor)
1419

1520
}
1621

@@ -92,21 +97,30 @@ extension AnnotationManager: ARSCNViewDelegate {
9297

9398

9499
public func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
95-
delegate?.MBRenderer!(renderer, time: time)
100+
delegate?.renderer?(renderer, time: time)
96101
}
97-
102+
98103
public func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
99-
delegate?.MBRenderer!(renderer, updatedNode: node,anchor: anchor )
104+
if let anchor = anchor as? MBARAnchor {
105+
delegate?.renderer?(renderer, updatedNode: node, mbAnchor: anchor )
106+
} else {
107+
delegate?.renderer?(renderer, updatedNode: node,arAnchor: anchor )
108+
}
100109
}
101110

102111
public func renderer(_ renderer: SCNSceneRenderer, didRemove node: SCNNode, for anchor: ARAnchor) {
103-
delegate?.MBRenderer!(renderer, removedNode: node,anchor: anchor )
112+
if let anchor = anchor as? MBARAnchor {
113+
delegate?.renderer?(renderer, removedNode: node,mbAnchor: anchor )
114+
} else {
115+
delegate?.renderer?(renderer, removedNode: node,arAnchor: anchor )
116+
}
104117
}
105118

106119
public func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
107-
120+
108121
// Handle MBARAnchor
109122
if let anchor = anchor as? MBARAnchor {
123+
110124
let annotation = annotationsByAnchor[anchor]!
111125

112126
var newNode: SCNNode!
@@ -117,26 +131,28 @@ extension AnnotationManager: ARSCNViewDelegate {
117131
} else {
118132
newNode = createDefaultNode()
119133
}
120-
134+
121135
if let calloutImage = annotation.calloutImage {
122136
let calloutNode = createCalloutNode(with: calloutImage, node: newNode)
123137
newNode.addChildNode(calloutNode)
124138
}
125139

126140
node.addChildNode(newNode)
127-
128141
annotationsByNode[newNode] = annotation
142+
delegate?.renderer?(renderer, addedNode: node,mbAnchor: anchor )
143+
} else {
144+
delegate?.renderer?(renderer, addedNode: node, arAnchor: anchor )
129145
}
130-
131-
delegate?.MBRenderer!(renderer, addedNode: node,anchor: anchor )
132146
}
133147

134148
// MARK: - Utility methods for ARSCNViewDelegate
135149

136150
func createDefaultNode() -> SCNNode {
151+
137152
let geometry = SCNSphere(radius: 0.2)
138153
geometry.firstMaterial?.diffuse.contents = UIColor.red
139154
return SCNNode(geometry: geometry)
155+
140156
}
141157

142158
func createCalloutNode(with image: UIImage, node: SCNNode) -> SCNNode {

0 commit comments

Comments
 (0)