public void SetMoveMode(CameraMoveMode mode, int duration) { if (moveModeDuration < 0) //not already on another temp move modes { tempMoveMode = moveMode; } moveMode = mode; moveModeDuration = duration; }
internal void Initialize() { Rotation = 0; Zoom = Vector2.One; Origin = new Vector2(Bounds.Width / 2f, Bounds.Height / 2f); Position = Vector2.Zero; defaultMoveMode = CameraMoveMode.Smooth; data = new float[4]; }
public void UpdateControl(MouseButtonEventArgs e) { var state = e.Mouse; bool bCursorCapture = false; if (state.LeftButton == ButtonState.Pressed && state.RightButton == ButtonState.Pressed) { moveMode = CameraMoveMode.Dolly; bCursorCapture = true; } else if (state.LeftButton == ButtonState.Pressed) { moveMode = CameraMoveMode.Rotate; bCursorCapture = true; } else if (state.RightButton == ButtonState.Pressed) { moveMode = CameraMoveMode.Pan; bCursorCapture = true; } else { moveMode = CameraMoveMode.None; } if (bCursorCapture) { if (!bIsOSX) { parent.CursorVisible = false; } else { parent.Cursor = MouseCursor.Empty; } var cameraRotateMouseState = Mouse.GetState(); lastX = cameraRotateMouseState.X; lastY = cameraRotateMouseState.Y; } else { if (!bIsOSX) { parent.CursorVisible = true; } else { parent.Cursor = cursor; } } }
// Update is called every frame, if the MonoBehaviour is enabled. // http://docs.unity3d.com/ScriptReference/MonoBehaviour.Update.html void Update() { // User press Spacebar key if (Input.GetKeyUp(KeyCode.Space)) { // Toggle Auto Rotate if (m_CameraMoveMode == CameraMoveMode.Manual) { m_CameraMoveMode = CameraMoveMode.AutoRotateCamera; } else if (m_CameraMoveMode == CameraMoveMode.AutoRotateCamera) { m_CameraMoveMode = CameraMoveMode.Manual; } } if (m_CameraMoveMode != m_CameraMoveModeOld) { // Enable / disable FirstPersonController UpdateEnableFirstPersonController(); m_CameraMoveModeOld = m_CameraMoveMode; } /*if (m_CameraMoveMode == CameraMoveMode.Manual) * { * * } * else */if (m_CameraMoveMode == CameraMoveMode.AutoRotateCamera) { // Rotate m_Camera around it self. m_Camera.transform.RotateAround(Vector3.zero, Vector3.up, 5 * Time.deltaTime); } // User press Left key if (Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.A)) { // Show previous skybox OnPreviousSkybox(); } // User press Right key if (Input.GetKeyUp(KeyCode.RightArrow) || Input.GetKeyUp(KeyCode.D)) { // Show next skybox OnNextSkybox(); } }
void Camera_MoveOffset(CameraMoveMode Mode, double XOffset, double YOffset) { Comms.com.WriteString("G91G0\r"); // Enter relative G0 mode - set scale to 1.0? switch (Mode) { case CameraMoveMode.XAxisFirst: Comms.com.WriteString(string.Format("X{0}\r", XOffset.ToInvariantString("F3"))); Comms.com.WriteString(string.Format("Y{0}\r", YOffset.ToInvariantString("F3"))); break; case CameraMoveMode.YAxisFirst: Comms.com.WriteString(string.Format("Y{0}\r", YOffset.ToInvariantString("F3"))); Comms.com.WriteString(string.Format("X{0}\r", XOffset.ToInvariantString("F3"))); break; case CameraMoveMode.BothAxes: ((GrblViewModel)DataContext).ExecuteCommand(string.Format("X{0}Y{1}", XOffset.ToInvariantString("F3"), YOffset.ToInvariantString("F3"))); break; } Comms.com.WriteString("G90\r"); // reset to previous or G80 to cancel motion mode? }
public void Update() { hasMoved = false; if (moveModeDuration > 0) { moveModeDuration--; } else { moveMode = tempMoveMode; } if (fading) { if (fadeTimer > 0) { fadeTimer--; float step = fadeTimer / fadeTimerMax; if (colorToTransparent) { currentColor = Color.Lerp(Color.Transparent, fadeColor, step); } else { currentColor = Color.Lerp(fadeColor, Color.Transparent, step); } fadeStart = true; } if (fadeTimer <= 0) { fading = false; fadeStart = false; } } if (tinting) { if (tintTimer > 0) { tintTimer--; } if (tintTimer <= 0) { tinting = false; } } if (moveMode == CameraMoveMode.Snap) { worldCenter = target; } else if (moveMode == CameraMoveMode.Fast) { Vector2 dist = target - worldCenter; if (dist != Vector2.Zero) { dist = Vector2.Normalize(dist); } else { dist = Vector2.Zero; } worldCenter += dist * 4; } else if (moveMode == CameraMoveMode.Smooth) { worldCenter = Vector2.Lerp(worldCenter, target, .30f); } }