public void FreezeView() { targetAlt = alt; targetAz = az; TargetCamera = ViewCamera.Copy(); }
public ViewMoverKenBurnsStyle(CameraParameters from, CameraParameters to, double time, Date fromDateTime, Date toDateTime, InterpolationType type) { InterpolationType = type; if (Math.Abs(from.Lng - to.Lng) > 180) { if (from.Lng > to.Lng) { from.Lng -= 360; } else { from.Lng += 360; } } this.fromDateTime = fromDateTime; this.toDateTime = toDateTime; dateTimeSpan = toDateTime - fromDateTime; this.from = from.Copy(); this.to = to.Copy(); fromTime = Date.Now; toTargetTime = time; }
public ViewMoverKenBurnsStyle(CameraParameters from, CameraParameters to, double time, Date fromDateTime, Date toDateTime, InterpolationType type) { InterpolationType = type; if (Math.Abs(from.Lng - to.Lng) > 180) { if (from.Lng > to.Lng) { from.Lng -= 360; } else { from.Lng += 360; } } this.fromDateTime = fromDateTime; this.toDateTime = toDateTime; dateTimeSpan = toDateTime - fromDateTime; this.from = from.Copy(); this.to = to.Copy(); fromTime = Date.Now; toTargetTime = time; }
public static ViewMoverSlew CreateUpDown(CameraParameters from, CameraParameters to, double upDowFactor) { ViewMoverSlew temp = new ViewMoverSlew(); temp.upTimeFactor = temp.downTimeFactor = upDowFactor; temp.Init(from.Copy(), to.Copy()); return(temp); }
public void GotoTargetFull(bool noZoom, bool instant, CameraParameters cameraParams, Imageset studyImageSet, Imageset backgroundImageSet) { RenderNeeded = true; //if (cameraParams == this.viewCamera) //{ // instant = true; //} tracking = false; trackingObject = null; targetStudyImageset = studyImageSet; targetBackgroundImageset = backgroundImageSet; if (noZoom) { cameraParams.Zoom = RenderContext.ViewCamera.Zoom; cameraParams.Angle = RenderContext.ViewCamera.Angle; cameraParams.Rotation = RenderContext.ViewCamera.Rotation; } else { if (cameraParams.Zoom == -1 || cameraParams.Zoom == 0) { if (RenderContext.Space) { cameraParams.Zoom = 1.40625; } else { cameraParams.Zoom = 0.09F; } } } // if (instant || (Math.Abs(ViewLat - cameraParams.Lat) < .000000000001 && Math.Abs(ViewLong - cameraParams.Lng) < .000000000001 && Math.Abs(ZoomFactor - cameraParams.Zoom) < .000000000001)) if (instant || (Math.Abs(RenderContext.ViewCamera.Lat - cameraParams.Lat) < .000000000001 && Math.Abs(RenderContext.ViewCamera.Lng - cameraParams.Lng) < .000000000001 && Math.Abs(RenderContext.ViewCamera.Zoom - cameraParams.Zoom) < .000000000001)) { Mover = null; RenderContext.TargetCamera = cameraParams.Copy(); RenderContext.ViewCamera = RenderContext.TargetCamera.Copy(); //if (Space && Settings.Active.LocalHorizonMode) //{ // Coordinates currentAltAz = Coordinates.EquitorialToHorizon(Coordinates.FromRaDec(viewCamera.RA, viewCamera.Dec), SpaceTimeController.Location, SpaceTimeController.Now); // targetAlt = alt = currentAltAz.Alt; // targetAz = az = currentAltAz.Az; //} mover_Midpoint(); moving = true; } else { Mover = ViewMoverSlew.Create(RenderContext.ViewCamera, cameraParams); RenderNeeded = true; Mover.Midpoint = mover_Midpoint; } }
public void Init(CameraParameters from, CameraParameters to) { if (Math.Abs(from.Lng - to.Lng) > 180) { if (from.Lng > to.Lng) { from.Lng -= 360; } else { from.Lng += 360; } } if (to.Zoom <= 0) { to.Zoom = 360; } if (from.Zoom <= 0) { from.Zoom = 360; } this.from = from; this.to = to; fromTime = Date.Now; double zoomUpTarget = 360.0; double travelTime; double lngDist = Math.Abs(from.Lng - to.Lng); double latDist = Math.Abs(from.Lat - to.Lat); double distance = Math.Sqrt(latDist * latDist + lngDist * lngDist); zoomUpTarget = (distance / 3) * 20; if (zoomUpTarget > 360.0) { zoomUpTarget = 360.0; } if (zoomUpTarget < from.Zoom) { zoomUpTarget = from.Zoom; } travelTime = (distance / 180.0) * (360 / zoomUpTarget) * travelTimeFactor; double rotateTime = Math.Max(Math.Abs(from.Angle - to.Angle), Math.Abs(from.Rotation - to.Rotation)) ; double logDistUp = Math.Max(Math.Abs(Util.LogN(zoomUpTarget, 2) - Util.LogN(from.Zoom, 2)), rotateTime); upTargetTime = upTimeFactor * logDistUp; downTargetTime = upTargetTime + travelTime; double logDistDown = Math.Abs(Util.LogN(zoomUpTarget, 2) - Util.LogN(to.Zoom, 2)); toTargetTime = downTargetTime + Math.Max((downTimeFactor * logDistDown),rotateTime); fromTop = from.Copy(); fromTop.Zoom = zoomUpTarget; fromTop.Angle = (from.Angle + to.Angle) / 2.0; //todo make short wrap arounds.. fromTop.Rotation = (from.Rotation + to.Rotation) / 2.0; toTop = to.Copy(); toTop.Zoom = fromTop.Zoom; toTop.Angle = fromTop.Angle; toTop.Rotation = fromTop.Rotation; }
public static ViewMoverSlew CreateUpDown(CameraParameters from, CameraParameters to, double upDowFactor) { ViewMoverSlew temp = new ViewMoverSlew(); temp.upTimeFactor = temp.downTimeFactor = upDowFactor; temp.Init(from.Copy(), to.Copy()); return temp; }
public void Init(CameraParameters from, CameraParameters to) { if (Math.Abs(from.Lng - to.Lng) > 180) { if (from.Lng > to.Lng) { from.Lng -= 360; } else { from.Lng += 360; } } if (to.Zoom <= 0) { to.Zoom = 360; } if (from.Zoom <= 0) { from.Zoom = 360; } this.from = from; this.to = to; fromTime = Date.Now; double zoomUpTarget = 360.0; double travelTime; double lngDist = Math.Abs(from.Lng - to.Lng); double latDist = Math.Abs(from.Lat - to.Lat); double distance = Math.Sqrt(latDist * latDist + lngDist * lngDist); zoomUpTarget = (distance / 3) * 20; if (zoomUpTarget > 360.0) { zoomUpTarget = 360.0; } if (zoomUpTarget < from.Zoom) { zoomUpTarget = from.Zoom; } travelTime = (distance / 180.0) * (360 / zoomUpTarget) * travelTimeFactor; double rotateTime = Math.Max(Math.Abs(from.Angle - to.Angle), Math.Abs(from.Rotation - to.Rotation)); double logDistUp = Math.Max(Math.Abs(Util.LogN(zoomUpTarget, 2) - Util.LogN(from.Zoom, 2)), rotateTime); upTargetTime = upTimeFactor * logDistUp; downTargetTime = upTargetTime + travelTime; double logDistDown = Math.Abs(Util.LogN(zoomUpTarget, 2) - Util.LogN(to.Zoom, 2)); toTargetTime = downTargetTime + Math.Max((downTimeFactor * logDistDown), rotateTime); fromTop = from.Copy(); fromTop.Zoom = zoomUpTarget; fromTop.Angle = (from.Angle + to.Angle) / 2.0; //todo make short wrap arounds.. fromTop.Rotation = (from.Rotation + to.Rotation) / 2.0; toTop = to.Copy(); toTop.Zoom = fromTop.Zoom; toTop.Angle = fromTop.Angle; toTop.Rotation = fromTop.Rotation; }