scihant / ctpanoramaview Goto Github PK
View Code? Open in Web Editor NEWA library that displays spherical or cylindrical panoramas with touch or motion based controls.
License: MIT License
A library that displays spherical or cylindrical panoramas with touch or motion based controls.
License: MIT License
Currently the pinch-to-zoom level is fixed between 20 and 80. Depending on your picture quality the max zoom level can be too high which will result in blurry/pixelated pictures. It would be great to have an option to configure this.
I can't use CTPanoramaView. because I can not import this.
I have tried all but not able to use CTPanoramaView in Objective-C. Any help?
@scihant Can you please run a pod trunk push
to release 1.2 to Cocoapods.org?
Can you improve lib support both touch and motion , not touch or motion like now
Having defined:
public var controlMethod: CTPanoramaControlMethod! { ... }
makes controlMethod not accessible when bridging to Objective-C. I think it should be re-written as:
public var controlMethod: CTPanoramaControlMethod = .motion { ... }
For my use case I need to grab an image of the current view, but the sceneView
is private and inaccessible. I don't think sceneView
needs to be made public, but at least offer new snapshot()
method that will give you the current view of the scene.
I might submit a PR for this if necessary.
Thanks
When I add CTPanoramaView.swift
to Xcode 12.0 beta 6 or Xcode 11.x I am getting 2 compilation errors:
in this code
@objc public var image: UIImage? {
didSet {
panoramaType = panoramaTypeForCurrentImage
}
}
Any ideas why this is happening? Would like to try this library.
I found the motion mode after using for some time. The delay time will be longer and longer. I have tried to fix it, but it is futile.
My device is iphone 6+ and iOS8.
Dear scihant, I'm a newbie for swift and trying to get the currently being viewed area on the screen of the whole 360 image. My goal is to show some human-shape objects on the screen. So, I need to get the current FOV cropped image and overlay the sprites or mask objects on it. Please help me with it. What variable or method should I look into?
There is a compilation error in the lazy property fovHeight in CTPanoramaView.swift (line 81)
private lazy var fovHeight: CGFloat = {
return tan(yFov/2 * .pi / 180.0) * 2 * self.radius <- Error: Instance member 'yFov' cannot be used on type 'CTPanoramaView'
}()
Due to it is a lazy var, the properties must be accessed with "self" prefix
Thank you
Could you please clarify how to use movementHandler, I want to get the current position?
I have many panorama photos. I want to click screen move to next panorama photo. It feels like walk to the next panorama photo.
I try to move the camera position, it didn't work.
If you have any idea, please tell me. Thx.
Hi, is there any way to add markers(maybe texts, or tags like Instagram people tags) on specific positions of the 360 picture? If so, which node should I be looking at? Thanks!
The readme file declares iOS 8.0+, but podspec requires iOS12.
Where is the mistake?
to rotate compass we use eulerAngles:
-cameraNode.eulerAngles.y
But it works not in a proper way. The compass always jumps in different directions during rotation.
Is it possible to have both rotation methods?
Or perhaps, an "auto" mode that changes from finger to motion if certain movement is detected?
Great work done! I am able to use it in my Objective-C project, except for the controlMethod. I can't get this property into he code. Always giving a compile error - CTPanoramaView doesn't has a property controlMethod.
can you please add hotspot support too?
[MTLTextureDescriptorInternal validateWithDevice:]:1325: failed assertion `Texture Descriptor Validation
MTLTextureDescriptor has width (8704) greater than the maximum allowed size of 8192.
This was using an image taken from an Android phone.
Hi,
This is this issue whereby the images are not focused in each frame.
Any solution to fix that. How to get new node when touch is ended?
I use this over Pods in my Objective-C project. For any reasons the property "controlMethod" is not available for Objective-C, but panoramaType is available. Why?
When I add the property controlMethod manually to the Objective-C wrapper then it works, but it will be removed on next clean/build of course, how to fix it permanent?
// Generated by Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42)
...
@Property (nonatomic) enum CTPanoramaType panoramaType;
//controlMethod manually added
@Property (nonatomic) enum CTPanoramaControlMethod controlMethod;
Thanks
Philipp
With cocoapods version 1.6.1 I get the following error:
[!] Unable to determine Swift version for the following pods:
CTPanoramaView
does not specify a Swift version and none of the targets (targetlist) integrating it have theSWIFT_VERSION
attribute set. Please contact the author or set theSWIFT_VERSION
attribute in at least one of the targets that integrate this pod.
Could you please add the "swift version" in the pod declaration?
I couldn't change location/position of motion, i.e, I'm trying that UIPanGesture when is ended, change to motion automatically, but the location must be the same as location(x,y,z) before that UIPanGesture has ended, just like Facebook.
But when is ended, the motion changes automatically but the position always resets depends of the orientation.
Sorry for my english
i can't set start angle for spherical at motion
no matter how can i set the angle , the start position are same but it's working for touch
At the moment the background of the sceneView
is by default black and not configurable. It would be awesome to use the view's background color and make it easy to configure.
Works on iPad?
I was wondering if I could make use of buttons or something like this to go through doors in a photo for example. Is it possible?
Is it possible to embed a CTPanoramaView within a Scenekit view? Trying to make a Google Street View clone which transitions from image to image within a sceneview.
Hi @scihant ,
To find a specific position on an image, in addition to the rotation angle I also need the pitch of the phone. So I calculated the pitch using quaternions:
let quaternion = motionData.attitude.quaternion
let pitch = CGFloat(atan2(2*(quaternion.x*quaternion.w + quaternion.y*quaternion.z), 1 - 2*pow(quaternion.x, 2) - 2*pow(quaternion.z, 2)))
And added a new parameter to report movement:
open func reportMovement(_ rotationAngle: CGFloat, _ fieldOfViewAngle: CGFloat, _ pitch: CGFloat, callHandler: Bool = true)
I have a custom class and delegate to report the movement to my view controller:
@objc public protocol CTPanoramaRotationDelegate {
func updatedRotation(rotationAngle: CGFloat, fieldOfViewAngle: CGFloat, pitch: CGFloat)
}
class CTCustomPanoramaView: CTPanoramaView {
var delegate: CTPanoramaRotationDelegate?
override func reportMovement(_ rotationAngle: CGFloat, _ fieldOfViewAngle: CGFloat, _ pitch: CGFloat, callHandler: Bool = true) {
compass?.updateUI(rotationAngle: rotationAngle, fieldOfViewAngle: fieldOfViewAngle)
delegate?.updatedRotation(rotationAngle: rotationAngle, fieldOfViewAngle: fieldOfViewAngle, pitch: pitch)
if callHandler {
movementHandler?(rotationAngle, fieldOfViewAngle)
}
}
}
Do you think it's useful to integrate pitch into the report movement function in the library? Or maybe there is some better approach that I'm missing? Thanks.
Did you consider a kind of debug view to show spheres / perhaps with flexible radius?
please add support to the swift package manager.
Any ideas of how to limit the horizontal field of view to (for example), 180 degrees instead of 360?
I've been reading through the source code but been only able to come up with hacks thus far. What would be the proper way of solving this in SceneKit?
Hello !
Before thank you for this work !
I got a problem , I take my image from url , I create UIImage with Data object , but sometimes , Image remains blank
Did this happened to someone ?
I mean i maybe failed with the lifecycle or something....
Thanks a lot !
I'm implementing the panorama view with this specs :
device : iphone XR
image : 4096 x 2048 (JPEG)
panorama type : spherical
bound size : full screen (828 x 1792)
and, the quality is very low after implemented.
what config should i make to make it high resolution as the image?
i recognized that the image is zooming-in too much
please advice.
thank you
Hi, Is it possible to add bouncing effect when user moves the image. Current movement not smooth like iOS scrollview/tableview.
Please help me on this.
Not so much an issue as it is a question. You say you only support 360 deg FoV angles, but all VR360 cameras that I know of are basically two VR180 cameras pointed away from each other, then rendered side-by-side. That's actually how the Vuze and Insta360 Vue switch between 360 mono and 180 stereo/3D views. You fold the 3D 180 cameras around so they're back-to-back and you get 360 footage.
As such, couldn't it be as simple as taking the 180 footage then adding a black rectangle for the 'second' 180 to properly show it with your library? i.e. your library would think it's still working with 360, just with a dead camera so half of the 'sphere' would be black.
If you're talking about the projection mode, then most VR180 cameras use the side-by-side 'circles' for video, but ironically for stills, they use equirectangular projection where the entire frame is filled, just distorted.
Now if you're speaking not about the projection issues, but the format of Google's VR180, for videos, it's as I said above... It has the two 'circles' on either side. But for stills, they do something a little different. Rather than store the images side-by-side, they only show the left eye and save it as a standard jpg. The view from the right eye is actually encoded and shoved in the metadata of the jpeg as a binary stream (along with some other metadata around lens distance and other projection-related data.) That's why you can open them with any standard Jpeg viewers.
...which brings me back to you here. At least for stills in VR180 3D format, you could grab the standard JPEG image, create a double-wide buffer, then render that image in the left side, leave the right side as just black, and treat it like it's a 360 equirectangular projection. Again, when it projects, you'll just see a dead/black half, but that's precisely what one would expect.
Now if you really wanted to get crazy, you could pull out that second 'right' image and render it in a second buffer, put two of your views side-by-side on the screen, using one buffer for the left and the other for the right, and bam... you now have a 3D VR180 viewer when used with a Cardboard viewer.
Anyway, happy to help experiment with you on this if you want. If you do, to get you started, I'm including a raw VR180 3D JPEG image from the Lenovo Mirage Camera, as well as a second JPEG image where I manually pulled out the right eye and rendered it next to the image from the standard JPEG stream. Using this you may be able to see if you can figure out how to get your library to use VR180, at least in mono. If you do, again, slap a second viewer next to the first with the data from the right eye and congrats... you support VR180 3D still images, which is a start!
I myself personally like them better than videos because it's a moment frozen in time that you can look around as if you were there. Videos you're at the mercy of what the cameraman does/moves/goes. For instance, whenever I go apartment hunting, I bring the VR180 cam and snap images rather than videos. Then later, I can go back home and 'look around' again using my Quest 2 and Pigasus Viewer (after I extract them to the SBS view as I did here since Pigasus doesn't support the embedded right image. They support tons of projection modes and arrangements. Just none with the embedded data like VR180.) I basically take a photo from each 'corner' of a room, then down hallways and such, and I can virtually 'walk around', seeing everything in 3D and I can really plan things out how I want my furniture to go, etc. It's really great and has rejuvenated my use of the Lenovo Cam because again, videos, unless it's sitting on a tripod, are basically useless, to me anyway.
Hey. Do you plan to support Xcode 11 ?
Undefined symbols for architecture x86_64: "(extension in CoreGraphics):__C.CGContextRef.addLine(to: __C.CGPoint) -> ()", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "_swift_deletedMethodError", referenced from: type metadata for CTPanoramaView.CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) type metadata for CTPanoramaView.CTPieSliceView in libCTPanoramaView.a(CTPieSliceView.o) "(extension in CoreGraphics):__C.CGContextRef.addArc(center: __C.CGPoint, radius: CoreGraphics.CGFloat, startAngle: CoreGraphics.CGFloat, endAngle: CoreGraphics.CGFloat, clockwise: Swift.Bool) -> ()", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "protocol descriptor for Swift.RawRepresentable", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "associated type descriptor for RawValue", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "(extension in CoreGraphics):__C.CGContextRef.move(to: __C.CGPoint) -> ()", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "method descriptor for Swift.RawRepresentable.init(rawValue: A.RawValue) -> A?", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "method descriptor for Swift.RawRepresentable.rawValue.getter : A.RawValue", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.RawRepresentable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "base conformance descriptor for Swift.Hashable: Swift.Equatable", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "method descriptor for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "protocol descriptor for Swift.Equatable", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Equatable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Equatable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "value witness table for Builtin.Int64", referenced from: full type metadata for CTPanoramaView.CTPanoramaControlMethod in libCTPanoramaView.a(CTPanoramaView.o) full type metadata for CTPanoramaView.CTPanoramaType in libCTPanoramaView.a(CTPanoramaView.o) full type metadata for __C.UIInterfaceOrientation in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getForeignTypeMetadata", referenced from: merged type metadata accessor for __C.CGRect in libCTPanoramaView.a(CTPanoramaView.o) "_swift_unknownObjectWeakDestroy", referenced from: l_objectdestroy.2 in libCTPanoramaView.a(CTPanoramaView.o) "Swift.String.hash(into: inout Swift.Hasher) -> ()", referenced from: function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Exploded> of generic specialization <Swift.String, Any> of Swift._NativeDictionary._unsafeUpdate(key: __owned A, value: __owned B) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Swift._DictionaryStorage", referenced from: generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "__swiftEmptyDictionarySingleton", referenced from: generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "_swift_dynamicCast", referenced from: generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) "Swift._diagnoseUnexpectedEnumCaseValue<A, B>(type: A.Type, rawValue: B) -> Swift.Never", referenced from: (extension in CTPanoramaView):__C.CMDeviceMotion.(orientation in _3821582857EE54853BB6E602F18E6A47)() -> __C.SCNVector4 in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Dispatch.DispatchQoS", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "static (extension in Dispatch):__C.OS_dispatch_queue.main.getter : __C.OS_dispatch_queue", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "protocol conformance descriptor for Dispatch.DispatchWorkItemFlags : Swift.SetAlgebra in Dispatch", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Dispatch.DispatchWorkItemFlags", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "protocol witness table for Swift.String : Swift.Hashable in Swift", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "_swift_arrayDestroy", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "protocol conformance descriptor for [A] : Swift.Sequence in Swift", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "(extension in Foundation):Swift.Dictionary._bridgeToObjectiveC() -> __C.NSDictionary", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getWitnessTable", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) base witness table accessor for Swift.Equatable in CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) base witness table accessor for Swift.Equatable in CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "_swift_endAccess", referenced from: CTPanoramaView.CTPanoramaView.startAngle.modify : Swift.Float with unmangled suffix ".resume.0" in libCTPanoramaView.a(CTPanoramaView.o) "(extension in Dispatch):__C.OS_dispatch_queue.async(group: __C.OS_dispatch_group?, qos: Dispatch.DispatchQoS, flags: Dispatch.DispatchWorkItemFlags, execute: @convention(block) () -> ()) -> ()", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getErrorValue", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift.stringCompareWithSmolCheck(: Swift._StringGuts, _: Swift._StringGuts, expecting: Swift._StringComparisonResult) -> Swift.Bool", referenced from: function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Exploded> of generic specialization <Swift.String, Any> of Swift._NativeDictionary._unsafeUpdate(key: __owned A, value: __owned B) -> () in libCTPanoramaView.a(CTPanoramaView.o) "__swift_stdlib_operatingSystemVersion", referenced from: CTPanoramaView.CTPanoramaView.(yFov in _3821582857EE54853BB6E602F18E6A47).getter : CoreGraphics.CGFloat in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(yFov in _3821582857EE54853BB6E602F18E6A47).setter : CoreGraphics.CGFloat in libCTPanoramaView.a(CTPanoramaView.o) "(extension in Foundation):Swift.Error.localizedDescription.getter : Swift.String", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_errorRelease", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "static Swift._DictionaryStorage.allocate(capacity: Swift.Int) -> Swift._DictionaryStorage<A, B>", referenced from: generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift.dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "Swift.print(: Any..., separator: Swift.String, terminator: Swift.String) -> ()", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "protocol witness table for Swift.DefaultStringInterpolation : Swift.TextOutputStream in Swift", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "method descriptor for Swift.Hashable.hashValue.getter : Swift.Int", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "static Dispatch.DispatchQoS.unspecified.getter : Dispatch.DispatchQoS", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Swift._ContiguousArrayStorage", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift.String.init(describing: A) -> Swift.String", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_initStackObject", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_setDeallocating", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_errorRetain", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift.String.write(to: inout A) -> ()", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Swift.Array", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getTupleTypeMetadata2", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift._bridgeAnythingToObjectiveC(A) -> Swift.AnyObject", referenced from: CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_unknownObjectWeakInit", referenced from: CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata for Any", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getObjCClassMetadata", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) swift::swift50override_conformsToProtocol(swift::TargetMetadataswift::InProcess const*, swift::TargetProtocolDescriptorswift::InProcess const*, swift::TargetWitnessTableswift::InProcess const* ()(swift::TargetMetadataswift::InProcess const, swift::TargetProtocolDescriptorswift::InProcess const*)) in libswiftCompatibility50.a(ProtocolConformance.cpp.o) "protocol descriptor for Swift.Hashable", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "_swift_bridgeObjectRetain_n", referenced from: generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) "(extension in Foundation):Swift.String._bridgeToObjectiveC() -> __C.NSString", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) "dispatch thunk of Swift.SetAlgebra.init<A where A1: Swift.Sequence, A.Element == A1.Element>(__owned A1) -> A", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "__swiftEmptyArrayStorage", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata for Swift.Int", referenced from: (extension in CTPanoramaView):__C.CMDeviceMotion.(orientation in _3821582857EE54853BB6E602F18E6A47)() -> __C.SCNVector4 in libCTPanoramaView.a(CTPanoramaView.o) "static (extension in Foundation):Swift.Array._unconditionallyBridgeFromObjectiveC(__C.NSArray?) -> [A]", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_bridgeObjectRelease", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Exploded> of generic specialization <Swift.String, Any> of Swift._NativeDictionary._unsafeUpdate(key: __owned A, value: __owned B) -> () in libCTPanoramaView.a(CTPanoramaView.o) "enum case for CoreGraphics.CGPathFillRule.winding(CoreGraphics.CGPathFillRule.Type) -> CoreGraphics.CGPathFillRule", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "type metadata for Swift.String", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "Swift.Hasher._finalize() -> Swift.Int", referenced from: protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Exploded> of generic specialization <Swift.String, Any> of Swift._NativeDictionary._unsafeUpdate(key: __owned A, value: __owned B) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_bridgeObjectRetain", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) generic specialization <Swift.String, __C.UIView, Swift.String, Any> of Swift._dictionaryUpCast<A, B, C, D where A: Swift.Hashable, C: Swift.Hashable>([A : B]) -> [C : D] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) "method descriptor for static Swift.Equatable.== infix(A, A) -> Swift.Bool", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Equatable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Equatable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "(extension in Foundation):Swift.Array._bridgeToObjectiveC() -> __C.NSArray", referenced from: (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_getInitializedObjCClass", referenced from: CTPanoramaView.CTPanoramaView.init(frame: __C.CGRect) -> CTPanoramaView.CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.__deallocating_deinit in libCTPanoramaView.a(CTPanoramaView.o) @objc CTPanoramaView.CTPanoramaView.__deallocating_deinit in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(commonInit in _3821582857EE54853BB6E602F18E6A47)() -> () in libCTPanoramaView.a(CTPanoramaView.o) (extension in CTPanoramaView):__C.UIView.(add in _3821582857EE54853BB6E602F18E6A47)(view: __C.UIView) -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(createGeometryNode in _3821582857EE54853BB6E602F18E6A47)() -> () in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) ... "(extension in CoreGraphics):__C.CGContextRef.fillPath(using: CoreGraphics.CGPathFillRule) -> ()", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "_swift_unknownObjectRetain", referenced from: @objc CTPanoramaView.CTPanoramaView.compass.getter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.compass.getter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) @objc CTPanoramaView.CTPanoramaView.compass.setter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) "_swift_deallocObject", referenced from: l_objectdestroy in libCTPanoramaView.a(CTPanoramaView.o) l_objectdestroy.2 in libCTPanoramaView.a(CTPanoramaView.o) l_objectdestroy.8 in libCTPanoramaView.a(CTPanoramaView.o) "_swift_retain", referenced from: @objc CTPanoramaView.CTPanoramaView.movementHandler.getter : (CoreGraphics.CGFloat, CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) reabstraction thunk helper from @escaping @callee_guaranteed (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> () to @escaping @callee_unowned @convention(block) (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> () in libCTPanoramaView.a(CTPanoramaView.o) _block_copy_helper in libCTPanoramaView.a(CTPanoramaView.o) outlined copy of @escaping @callee_guaranteed (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[1] = Value Promoted from Box> of closure #1 () -> () in closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) ... "type metadata accessor for CoreGraphics.CGPathFillRule", referenced from: CTPanoramaView.CTPieSliceView.draw(__C.CGRect) -> () in libCTPanoramaView.a(CTPieSliceView.o) "_swift_unknownObjectWeakLoadStrong", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_release", referenced from: @objc CTPanoramaView.CTPanoramaView.movementHandler.getter : (CoreGraphics.CGFloat, CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) reabstraction thunk helper from @escaping @callee_guaranteed (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> () to @escaping @callee_unowned @convention(block) (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> () in libCTPanoramaView.a(CTPanoramaView.o) _block_destroy_helper in libCTPanoramaView.a(CTPanoramaView.o) outlined consume of @escaping @callee_guaranteed (@unowned CoreGraphics.CGFloat, @unowned CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) reabstraction thunk helper from @escaping @callee_guaranteed () -> () to @escaping @callee_unowned @convention(block) () -> () in libCTPanoramaView.a(CTPanoramaView.o) ... "value witness table for Builtin.UnknownObject", referenced from: full type metadata for CTPanoramaView.CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) full type metadata for CTPanoramaView.CTPieSliceView in libCTPanoramaView.a(CTPieSliceView.o) "_swift_unknownObjectRelease", referenced from: @objc CTPanoramaView.CTPanoramaView.compass.setter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.compass.setter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) @objc CTPanoramaView.CTPanoramaView.__ivar_destroyer in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_beginAccess", referenced from: @objc CTPanoramaView.CTPanoramaView.compass.getter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.compass.getter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) @objc CTPanoramaView.CTPanoramaView.compass.setter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.compass.setter : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.compass.modify : CTPanoramaView.CTPanoramaCompass? in libCTPanoramaView.a(CTPanoramaView.o) @objc CTPanoramaView.CTPanoramaView.movementHandler.getter : (CoreGraphics.CGFloat, CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.movementHandler.getter : (CoreGraphics.CGFloat, CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) ... "method descriptor for Swift.Hashable.hash(into: inout Swift.Hasher) -> ()", referenced from: protocol conformance descriptor for CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol conformance descriptor for CTPanoramaView.CTPanoramaType : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "Swift.Hasher.init(_seed: Swift.Int) -> Swift.Hasher", referenced from: protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Owned To Guaranteed, Arg[1] = Dead> of generic specialization <Swift.String, __C.UIView> of Swift.Dictionary.init(dictionaryLiteral: (A, B)...) -> [A : B] in libCTPanoramaView.a(CTPanoramaView.o) function signature specialization <Arg[0] = Exploded> of generic specialization <Swift.String, Any> of Swift._NativeDictionary._unsafeUpdate(key: __owned A, value: __owned B) -> () in libCTPanoramaView.a(CTPanoramaView.o) "type metadata for Swift.DefaultStringInterpolation", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "_swift_allocObject", referenced from: @objc CTPanoramaView.CTPanoramaView.movementHandler.setter : (CoreGraphics.CGFloat, CoreGraphics.CGFloat) -> ()? in libCTPanoramaView.a(CTPanoramaView.o) CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift.Hasher._combine(Swift.UInt) -> ()", referenced from: protocol witness for Swift.Hashable.hash(into: inout Swift.Hasher) -> () in conformance CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) protocol witness for Swift.Hashable._rawHashValue(seed: Swift.Int) -> Swift.Int in conformance CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) "type metadata accessor for Swift.Optional", referenced from: closure #1 (__C.CMDeviceMotion?, Swift.Error?) -> () in CTPanoramaView.CTPanoramaView.(switchControlMethod in _3821582857EE54853BB6E602F18E6A47)(to: CTPanoramaView.CTPanoramaControlMethod) -> () in libCTPanoramaView.a(CTPanoramaView.o) "Swift.Int.hashValue.getter : Swift.Int", referenced from: protocol witness for Swift.Hashable.hashValue.getter : Swift.Int in conformance CTPanoramaView.CTPanoramaControlMethod : Swift.Hashable in CTPanoramaView in libCTPanoramaView.a(CTPanoramaView.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Please support function add hotspot ( add plugin) in 360VR image
Hello,
is it possible to add a option for a Start angle / compass direction for spherical panoramas?
Is it possible change start angle from 0,0,0 to the center of my spherical picture? I found random picture in google to illustrate it: For example http://paulbourke.net/fun/dragongardens/2.jpg
the gates is the most important part of panorama and I want to start viewing from the center of image.
This library looks awesome! Would it be possible to add stereoscopic support for VR headsets that use the iPhone?
when setting controlMethod = motion , despite any value we put on our startAngle, our camera node keeps the same angle,
Is there a fix or enhancement on this issue (#2), sorry just wondering about it.
When using touch and you set a new image the angle is reset to 0.
I'm trying to play an MJPEG stream of 360 photos and this keeps resetting the angle.
You should consider making the reset optional
i'm a newbie in xcode, so i don't really know what implements are used in the storyboard of the example file, i've tried image view or view but it doesn't work.
sorry for my english and i appreciate your help thanks!.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.