void Initialize() { LayerRetainsBacking = true; LayerColorFormat = EAGLColorFormat.RGBA8; ContextRenderingApi = EAGLRenderingAPI.OpenGLES1; MultipleTouchEnabled = true; var now = DateTime.UtcNow; _sunLoc = Location.SunLocation(now); Camera = new Camera(); CameraMan = new BlimpCameraMan( new Location(-122.3352, 47.645), new Location(-122.3352, 47.6453)); Unload += HandleUnload; }
public BlimpCameraMan(ILocatable posLoc, ILocatable lookAt) { Dirty = true; Pos3d = posLoc.ToPositionAboveSeaLeveld (_altitude); LookAt = new Location (lookAt); LookAt3d = LookAt.ToPositionAboveSeaLeveld (0); }
void Initialize() { var now = DateTime.Now; _sunLoc = Caulker.Location.SunLocation(now); Camera = new Camera(); CameraMan = new BlimpCameraMan( new Location(153.0306, -27.4778), // Greetings from Brisbane :) new Location(153.0306, -27.4878)); Unload += HandleUnload; }
public void Drag(Location start, Location end) { var d = -start.VectorTo(end); _pos = _pos.LocationAway(d); Pos3d = _pos.ToPositionAboveSeaLeveld (_altitude); LookAt = LookAt.LocationAway(d); LookAt3d = LookAt.ToPositionAboveSeaLeveld (0); Dirty = true; }
public void Rotate(ILocatable loc, float ddegs) { _pos = _pos.RotateAround(loc, ddegs); LookAt = LookAt.RotateAround(loc, ddegs); Pos3d = _pos.ToPositionAboveSeaLeveld (_altitude); LookAt3d = LookAt.ToPositionAboveSeaLeveld (0); Dirty = true; }
public ManualCameraMan(ILocatable posLoc, ILocatable lookAt) { Dirty = true; _pos = new Location(posLoc); Pos3d = _pos.ToPositionAboveSeaLeveld (_altitude); LookAt = new Location (lookAt); LookAt3d = LookAt.ToPositionAboveSeaLeveld (0); }
public LocLinAnim(double duration, ILocatable start, ILocatable end) { _start = new Location(start); _end = new Location(end); _current = _start; _duration = duration; }
public Camera() { _projectionMatrixF = Matrix4.Identity; _viewMatrixF = Matrix4.Identity; _projectionMatrix = Matrix4d.Identity; _viewMatrix = Matrix4d.Identity; ScreenLocations = new Location[21]; }
public void SetLookAt(ILocatable lookAt, bool animated) { if (animated) { _lookAtAnim = new LocLinAnim(2, LookAt, lookAt); var oldLocPos = LookAt.ToPositionAboveSeaLeveld(_altitude); _posAnim = new VectorLinAnim(5, Pos3d, oldLocPos); } else { LookAt = new Location(lookAt); LookAt3d = LookAt.ToPositionAboveSeaLeveld (0); Dirty = true; } }
public static double HeadingTo(this ILocatable start, ILocatable finish) { var n = new Location( start.Longitude, finish.Latitude ); var e = new Location( finish.Longitude, start.Latitude ); var northMiles = start.MilesTo(n); if (n.Latitude < start.Latitude) { northMiles *= -1; } var eastMiles = start.MilesTo(e); if (e.Longitude < start.Longitude) { eastMiles *= -1; } var a = Math.Atan2(northMiles, eastMiles); if (a < 0) { a += Math.PI * 2; } var heading = 90 - a*180/Math.PI; while (heading < 0) { heading += 360; } while (heading >= 360) { heading -= 360; } return heading; }