public DeletePitchPointCommand(UVoicePart part, UNote note, int index) { this.Part = part; this.Note = note; this.Index = index; this.Point = Note.pitch.data[Index]; }
public DeletePitchPointCommand(UVoicePart part, UNote note, int index) { this.Part = part; this.Note = note; this.Index = index; this.Point = Note.PitchBend.Points[Index]; }
public override void Begin(IPointer pointer, Point point) { base.Begin(pointer, point); if (!onPoint) { pitchPoint = new PitchPoint(x, y); index++; DocManager.Inst.ExecuteCmd(new AddPitchPointCommand(note, pitchPoint, index)); } }
public PitchPointEditState( Canvas canvas, PianoRollViewModel vm, UNote note, int index, bool onPoint, float x, float y) : base(canvas, vm) { this.note = note; this.index = index; this.onPoint = onPoint; this.x = x; this.y = y; pitchPoint = note.pitch.data[index]; }
private void PitchSetup() { for (int j = 0; j < FIELD_HEIGHT; j++) { for (int i = 0; i < FIELD_WIDTH; i++) { Vector3 point = new Vector3((FIELD_START_X + FIELD_OFFSET) + ((FIELD_SIZE_X / FIELD_WIDTH) * i), 0f, (FIELD_START_Z + FIELD_OFFSET / 2) + ((FIELD_SIZE_Z / FIELD_HEIGHT) * j)); GameObject go = (GameObject)Instantiate(pitchPoint, transform.position, Quaternion.identity); go.transform.SetParent(opponentPitch, true); PitchPoint pp = go.GetComponent <PitchPoint>(); pp.SetupPoint(i + (j * (int)FIELD_WIDTH)); go.transform.localPosition = point; go.transform.name = pp.id.ToString(); opponentPitchPoint.Add(pp); point = new Vector3((-FIELD_START_X - FIELD_OFFSET) - ((FIELD_SIZE_X / FIELD_WIDTH) * i), 0f, (FIELD_START_Z + FIELD_OFFSET / 2) + ((FIELD_SIZE_Z / FIELD_HEIGHT) * j)); go = (GameObject)Instantiate(pitchPoint, transform.position, Quaternion.identity); go.transform.SetParent(friendlyPitch, true); pp = go.GetComponent <PitchPoint>(); pp.SetupPoint(i + (j * (int)FIELD_WIDTH)); go.transform.localPosition = point; go.transform.name = pp.id.ToString(); friendlyPitchPoint.Add(pp); } } }
public ChangePitchPointShapeCommand(PitchPoint point, PitchPointShape shape) { this.Point = point; this.NewShape = shape; this.OldShape = point.shape; }
public MovePitchPointCommand(PitchPoint point, float deltaX, float deltaY) { this.Point = point; this.DeltaX = deltaX; this.DeltaY = deltaY; }
public AddPitchPointCommand(UNote note, PitchPoint point, int index) { this.Note = note; this.Index = index; this.Point = point; }
public ChangePitchPointShapeCommand(PitchPoint point, PitchPointShape shape) { this.Point = point; this.NewShape = shape; this.OldShape = point.Shape; }
public MovePitchPointCommand(PitchPoint point, double deltaX, double deltaY) { this.Point = point; this.DeltaX = deltaX; this.DeltaY = deltaY; }
private void notesCanvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (midiVM.Part == null) return; _inMove = false; _inResize = false; _noteHit = null; _inPitMove = false; _pitHit = null; DocManager.Inst.EndUndoGroup(); // End selection selectionStart = null; if (selectionBox != null) { Canvas.SetZIndex(selectionBox, -100); selectionBox.Visibility = System.Windows.Visibility.Hidden; } midiVM.DoneTempSelect(); ((Canvas)sender).ReleaseMouseCapture(); Mouse.OverrideCursor = null; }
private void notesCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (midiVM.Part == null) return; Point mousePos = e.GetPosition((Canvas)sender); var hit = VisualTreeHelper.HitTest(notesCanvas, mousePos).VisualHit; System.Diagnostics.Debug.WriteLine("Mouse hit " + hit.ToString()); var pitHitResult = midiHT.HitTestPitchPoint(mousePos); if (pitHitResult != null) { if (pitHitResult.OnPoint) { _inPitMove = true; _pitHit = pitHitResult.Note.PitchBend.Points[pitHitResult.Index]; _pitHitIndex = pitHitResult.Index; _noteHit = pitHitResult.Note; DocManager.Inst.StartUndoGroup(); } } else { UNote noteHit = midiHT.HitTestNote(mousePos); if (noteHit != null) System.Diagnostics.Debug.WriteLine("Mouse hit" + noteHit.ToString()); if (Keyboard.Modifiers == ModifierKeys.Control || Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift)) { selectionStart = new Point(midiVM.CanvasToQuarter(mousePos.X), midiVM.CanvasToNoteNum(mousePos.Y)); if (Keyboard.IsKeyUp(Key.LeftShift) && Keyboard.IsKeyUp(Key.RightShift)) midiVM.DeselectAll(); if (selectionBox == null) { selectionBox = new Rectangle() { Stroke = Brushes.Black, StrokeThickness = 2, Fill = ThemeManager.BarNumberBrush, Width = 0, Height = 0, Opacity = 0.5, RadiusX = 8, RadiusY = 8, IsHitTestVisible = false }; notesCanvas.Children.Add(selectionBox); Canvas.SetZIndex(selectionBox, 1000); selectionBox.Visibility = System.Windows.Visibility.Visible; } else { selectionBox.Width = 0; selectionBox.Height = 0; Canvas.SetZIndex(selectionBox, 1000); selectionBox.Visibility = System.Windows.Visibility.Visible; } Mouse.OverrideCursor = Cursors.Cross; } else { if (noteHit != null) { _noteHit = noteHit; if (!midiVM.SelectedNotes.Contains(noteHit)) midiVM.DeselectAll(); if (!midiHT.HitNoteResizeArea(noteHit, mousePos)) { // Move note _inMove = true; _tickMoveRelative = midiVM.CanvasToSnappedTick(mousePos.X) - noteHit.PosTick; _tickMoveStart = noteHit.PosTick; _lastNoteLength = noteHit.DurTick; if (midiVM.SelectedNotes.Count != 0) { _noteMoveNoteMax = _noteMoveNoteMin = noteHit; _noteMoveNoteLeft = _noteMoveNoteRight = noteHit; foreach (UNote note in midiVM.SelectedNotes) { if (note.PosTick < _noteMoveNoteLeft.PosTick) _noteMoveNoteLeft = note; if (note.EndTick > _noteMoveNoteRight.EndTick) _noteMoveNoteRight = note; if (note.NoteNum < _noteMoveNoteMin.NoteNum) _noteMoveNoteMin = note; if (note.NoteNum > _noteMoveNoteMax.NoteNum) _noteMoveNoteMax = note; } } DocManager.Inst.StartUndoGroup(); } else // if (!noteHit.IsLyricBoxActive()) FIXME { // Resize note _inResize = true; Mouse.OverrideCursor = Cursors.SizeWE; if (midiVM.SelectedNotes.Count != 0) { _noteResizeShortest = noteHit; foreach (UNote note in midiVM.SelectedNotes) if (note.DurTick < _noteResizeShortest.DurTick) _noteResizeShortest = note; } DocManager.Inst.StartUndoGroup(); } } else // Add note { UNote newNote = DocManager.Inst.Project.CreateNote( midiVM.CanvasToNoteNum(mousePos.Y), midiVM.CanvasToSnappedTick(mousePos.X), _lastNoteLength); DocManager.Inst.StartUndoGroup(); DocManager.Inst.ExecuteCmd(new AddNoteCommand(midiVM.Part, newNote)); DocManager.Inst.EndUndoGroup(); midiVM.MarkUpdate(); // Enable drag midiVM.DeselectAll(); _inMove = true; _noteHit = newNote; _tickMoveRelative = 0; _tickMoveStart = newNote.PosTick; DocManager.Inst.StartUndoGroup(); } } } ((UIElement)sender).CaptureMouse(); }