Coder Social home page Coder Social logo

scihant / ctpanoramaview Goto Github PK

View Code? Open in Web Editor NEW
1.0K 26.0 86.0 3.35 MB

A library that displays spherical or cylindrical panoramas with touch or motion based controls.

License: MIT License

Ruby 3.03% Swift 95.11% Objective-C 1.86%
panorama equirectangular-panorama 360-photo spherical-panoramas cylindrical-panoramas carthage cocoapods

ctpanoramaview's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ctpanoramaview's Issues

Add support for a max-zoom level

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.

ControlMethod property not accessible in Objective-C

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 { ... }

XCode 10.2 Build Error Swift 3 unsupported

After updating to XCode 10.2 a project using CTPanoramaView via cocoapods fails build with this error:

SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'CTPanoramaView')

Screen Shot 2019-04-05 at 2 35 01 PM

Xcode Compilation Errors for UIImage Property

When I add CTPanoramaView.swift to Xcode 12.0 beta 6 or Xcode 11.x I am getting 2 compilation errors:

  1. Overriding non-open property outside of its defining module
  2. Property 'image' with type 'UIImage?' cannot override a property with type 'UIImage'

in this code

    @objc public var image: UIImage? {
        didSet {
            panoramaType = panoramaTypeForCurrentImage
        }
    }

Any ideas why this is happening? Would like to try this library.

how to get ROI image?

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?

Instance member yFov in CTPanoramaView

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

screenshot_errorctpanoramaview

Thank you

Using movementHandler

Could you please clarify how to use movementHandler, I want to get the current position?

Add markers on the 360 picture

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!

compass rotation angle bug

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.

Objective-C can't change controlMethod

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.

Xcode 13/iOS 15 Crash when using CTPanoramaView

[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.

controlMethod in Objective-C not available

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

Specify a Swift version for Cocoapods

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 the SWIFT_VERSION attribute set. Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod.

Could you please add the "swift version" in the pod declaration?

Support for control using combination of touch & motion as in Facebook

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

Make background color configurable

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.

iPad

Works on iPad?

Placing 360 photos in a sceneView

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.

Add pitch to report movement

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.

Limit Fovx to provide support for 180 degree cylindrical photos

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?

Image Remain blank

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 !

Image resolution is low

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

Add bouncing Effect

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.

Isn't VR360 just two VR180s (at least for stills)?

VR180 3D Image Support

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.

VR180 3D Sampe Images

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.

Files

Hallway.vr.jpeg
Hallway_LR.jpg

Hallway.vr.jpeg
Hallway_LR.jpg

Xcode 11 compilation problem

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)

add hotspot

Please support function add hotspot ( add plugin) in 360VR image

VR viewer support?

This library looks awesome! Would it be possible to add stereoscopic support for VR headsets that use the iPhone?

Angle is reset when setting an image

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

About storyboard

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!.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.