示例#1
0
		void SetState(SurfaceCameraState state)
		{
			CameraPosition = FreeSurfacePosition = state.FreeSurfacePosition;
			CameraDistance = CameraPosition.Length();

			FreeSurfaceYaw		= state.FreeSurfaceYaw;
			FreeSurfacePitch	= state.FreeSurfacePitch;
			freeSurfaceRotation = state.FreeRotation;

			var newLonLat = GetCameraLonLat();
			Yaw		= newLonLat.X;
			Pitch	= -newLonLat.Y;
		}
示例#2
0
		List<SurfaceCameraState> LoadCameraStatesFromFile(string fileName)
		{
			if (!File.Exists(fileName)) return null;

			var states = new List<SurfaceCameraState>();
			var lines = File.ReadAllLines(fileName);

			for (int i = 0; i < lines.Length; i++) {
				var line = lines[i];
				
				var s = line.Split(new char[] {'\t'}, StringSplitOptions.RemoveEmptyEntries);

				var curState = new SurfaceCameraState();

				curState.Id						= s[0];
				curState.FreeSurfacePosition	= new DVector3(double.Parse(s[1]), double.Parse(s[2]), double.Parse(s[3]));
				curState.FreeSurfaceYaw			= double.Parse(s[4]);
				curState.FreeSurfacePitch		= double.Parse(s[5]);
				curState.WaitTime				= float.Parse(s[6]);
				curState.TransitionTime			= float.Parse(s[7]);

				curState.FreeRotation = DQuaternion.RotationAxis(DVector3.UnitY, curState.FreeSurfaceYaw) * DQuaternion.RotationAxis(DVector3.UnitX, curState.FreeSurfacePitch);

				states.Add(curState);
			}

			return states;
		}