@class VKViewVolume, VKCameraRegionRestriction, VKFootprint; @interface VKCamera : NSObject { struct RunLoopController { struct MapEngine *x0; long long x1; } *_runLoopController; struct { BOOL orthographic; double width; double height; double near; double far; double horizontalOffset; } _frustum; double _maxFarClipDistance; BOOL _needsUpdate; BOOL _updating; VKViewVolume *_viewVolume; VKFootprint *_footprint; double _tanHalfHorizFOV; double _tanHalfVerticalFOV; struct Matrix<double, 3, 1> { double _e[3]; } _forward; struct Matrix<double, 3, 1> { double _e[3]; } _right; struct Matrix<double, 3, 1> { double _e[3]; } _up; struct Unit<geo::RadianUnitDescription, double> { double _value; } _verticalFieldOfView; double _near; double _far; double _width; double _height; struct RigidTransform<double, double> { struct Matrix<double, 3, 1> { double _e[3]; } _translation; struct Quaternion<double> { struct Matrix<double, 3, 1> { double _e[3]; } _imaginary; double _scalar; } _rotation; } _transform; struct Matrix<double, 4, 4> { double _e[16]; } _scaledViewMatrix; struct Matrix<double, 4, 4> { double _e[16]; } _scaledProjectionMatrix; struct Matrix<double, 4, 4> { double _e[16]; } _scaledViewProjectionMatrix; struct Matrix<double, 4, 4> { double _e[16]; } _unscaledViewMatrix; struct Matrix<double, 4, 4> { double _e[16]; } _unscaledProjectionMatrix; struct Matrix<double, 4, 4> { double _e[16]; } _worldMatrix; } @property (readonly, nonatomic) struct { BOOL x0; double x1; double x2; double x3; double x4; double x5; } frustum; @property (nonatomic) const void *position; @property (nonatomic) const void *orientation; @property (nonatomic) double aspectRatio; @property (readonly, nonatomic) struct Unit<geo::RadianUnitDescription, double> { double x0; } horizontalFieldOfView; @property (nonatomic) struct Unit<geo::RadianUnitDescription, double> { double x0; } verticalFieldOfView; @property (readonly, nonatomic) double farClipDistance; @property (readonly, nonatomic) double nearClipDistance; @property (nonatomic) double ndcZNear; @property (nonatomic) struct VKCameraState { struct RigidTransform<double, double> { struct Matrix<double, 3, 1> { double x0[3]; } x0; struct Quaternion<double> { struct Matrix<double, 3, 1> { double x0[3]; } x0; double x1; } x1; } x0; double x1; struct Unit<geo::RadianUnitDescription, double> { double x0; } x2; double x3; } cameraState; @property (nonatomic) double minHeight; @property (nonatomic) double maxHeight; @property (nonatomic) double maxHeightNoPitch; @property (nonatomic) double maxPitch; @property (nonatomic) struct optional<double> { BOOL _hasValue; union ValueUnion { unsigned char data[8]; double type; } _value; } minDistanceToGroundRestriction; @property (nonatomic) struct optional<double> { BOOL _hasValue; union ValueUnion { unsigned char data[8]; double type; } _value; } maxDistanceToGroundRestriction; @property (retain, nonatomic) VKCameraRegionRestriction *regionRestriction; @property (nonatomic) double terrainHeight; @property (readonly, nonatomic) VKViewVolume *viewVolume; @property (readonly, nonatomic) VKFootprint *footprint; @property (readonly, nonatomic) struct Matrix<double, 3, 1> { double x0[3]; } upVector; @property (readonly, nonatomic) struct Matrix<double, 3, 1> { double x0[3]; } rightVector; @property (readonly, nonatomic) struct Matrix<double, 3, 1> { double x0[3]; } forwardVector; @property (readonly, nonatomic) struct Matrix<double, 3, 1> { double x0[3]; } groundPoint; @property (readonly, nonatomic) double pitch; @property (readonly, nonatomic) double yaw; @property (readonly, nonatomic) double tanHalfHorizFOV; @property (readonly, nonatomic) double tanHalfVerticalFOV; @property (readonly, nonatomic) double distanceToGroundAndFarClipPlaneIntersection; @property (readonly, nonatomic) double screenHeightOfGroundAndFarClipPlaneIntersection; @property (nonatomic) double fractionOfScreenAboveFarClipPlaneAtCanonicalPitch; @property (nonatomic) double canonicalPitch; @property (nonatomic) double horizontalOffset; @property (readonly, nonatomic) const void *scaledViewMatrix; @property (readonly, nonatomic) const void *scaledProjectionMatrix; @property (readonly, nonatomic) const void *scaledViewProjectionMatrix; @property (readonly, nonatomic) const void *unscaledViewMatrix; @property (readonly, nonatomic) const void *unscaledProjectionMatrix; - (void)setNeedsUpdate; - (struct CameraFrame<geo::Radians, double> { struct Coordinate3D<geo::Radians, double> { struct Unit<geo::RadianUnitDescription, double> { double x0; } x0; struct Unit<geo::RadianUnitDescription, double> { double x0; } x1; struct Unit<geo::MeterUnitDescription, double> { double x0; } x2; } x0; struct Unit<geo::MeterUnitDescription, double> { double x0; } x1; struct Unit<geo::RadianUnitDescription, double> { double x0; } x2; struct Unit<geo::RadianUnitDescription, double> { double x0; } x3; struct Unit<geo::RadianUnitDescription, double> { double x0; } x4; })cameraFrame:(BOOL)a0; - (double)depthForViewWidth:(double)a0; - (id)detailedDescription; - (void)updateIfNeeded; - (struct CGPoint { double x0; double x1; })screenPointFromGroundPoint:(const void *)a0; - (struct Matrix<double, 3, 1> { double x0[3]; })groundPlaneIntersectionPoint; - (struct View<double> { struct RigidTransform<double, double> { struct Matrix<double, 3, 1> { double x0[3]; } x0; struct Quaternion<double> { struct Matrix<double, 3, 1> { double x0[3]; } x0; double x1; } x1; } x0; struct Matrix<double, 4, 4> { double x0[16]; } x1; struct Matrix<double, 4, 4> { double x0[16]; } x2; struct Matrix<double, 4, 4> { double x0[16]; } x3; double x4; double x5; struct ViewSize { unsigned short x0; unsigned short x1; } x6; int x7; })view:(struct ViewSize { unsigned short x0; unsigned short x1; })a0; - (float)zoomAtCentrePoint; - (id).cxx_construct; - (double)widthOfViewAtDepth:(double)a0; - (id)description; - (id /* block */)annotationRectTest; - (void)setMercatorPosition:(const void *)a0; - (float)zoomAtPoint:(struct CGPoint { double x0; double x1; })a0; - (double)displayZoomLevel; - (void).cxx_destruct; - (struct Mercator3<double> { double x0[3]; })mercatorPosition; - (id /* block */)annotationCoordinateTest; - (struct optional<gm::Matrix<double, 3, 1>> { BOOL x0; union ValueUnion { unsigned char x0[24]; struct Matrix<double, 3, 1> { double x0[3]; } x1; } x1; })groundPointFromScreenPoint:(struct CGPoint { double x0; double x1; })a0; - (id)descriptionDictionaryRepresentation; - (void)adjustClipPlanes; - (id)initWithRunLoopController:(struct RunLoopController { struct MapEngine *x0; long long x1; } *)a0; - (struct optional<gm::Matrix<double, 3, 1>> { BOOL x0; union ValueUnion { unsigned char x0[24]; struct Matrix<double, 3, 1> { double x0[3]; } x1; } x1; })groundPointFromScreenPoint:(struct CGPoint { double x0; double x1; })a0 atGroundLevel:(double)a1; - (void)_setPosition:(const void *)a0; - (void)updateCamera:(struct shared_ptr<gdc::Camera> { struct Camera *x0; struct __shared_weak_count *x1; })a0; @end