public override void Keyboard(KeyboardManager keyboardManager) { // Add Circles if (keyboardManager.IsNewKeyPress(Keys.Q)) { AddCircle(3, 8); } // Add Circles if (keyboardManager.IsNewKeyPress(Keys.W)) { AddCircle(4, 16); } // Add Circles if (keyboardManager.IsNewKeyPress(Keys.E)) { AddCircle(5, 32); } // Add Rectangle if (keyboardManager.IsNewKeyPress(Keys.A)) { AddRectangle(4, 8); } // Add Rectangle if (keyboardManager.IsNewKeyPress(Keys.S)) { AddRectangle(5, 2); } // Add Rectangle if (keyboardManager.IsNewKeyPress(Keys.D)) { AddRectangle(2, 5); } // Perform a Union if (keyboardManager.IsNewKeyPress(Keys.Space)) { if (_subject != null && _clip != null) { DoBooleanOperation(YuPengClipper.Union(_subject, _clip, out _err)); } } // Perform a Subtraction if (keyboardManager.IsNewKeyPress(Keys.Back)) { if (_subject != null && _clip != null) { DoBooleanOperation(YuPengClipper.Difference(_subject, _clip, out _err)); } } // Perform a Intersection if (keyboardManager.IsNewKeyPress(Keys.LeftShift)) { if (_subject != null && _clip != null) { DoBooleanOperation(YuPengClipper.Intersect(_subject, _clip, out _err)); } } // Select Subject if (keyboardManager.IsNewKeyPress(Keys.D1)) { if (_selected != null) { if (_clip == _selected) { _clip = null; } _subject = _selected; } } // Select Clip if (keyboardManager.IsNewKeyPress(Keys.D2)) { if (_selected != null) { if (_subject == _selected) { _subject = null; } _clip = _selected; } } }
protected override void OnKeyDown(KeyEventArgs e) { // Add Circles if (e.KeyCode == Keys.Q) { AddCircle(3, 8); } // Add Circles if (e.KeyCode == Keys.W) { AddCircle(4, 16); } // Add Circles if (e.KeyCode == Keys.E) { AddCircle(5, 32); } // Add Rectangle if (e.KeyCode == Keys.A) { AddRectangle(4, 8); } // Add Rectangle if (e.KeyCode == Keys.S) { AddRectangle(5, 2); } // Add Rectangle if (e.KeyCode == Keys.D) { AddRectangle(2, 5); } // Perform a Union if (e.KeyCode == Keys.Space) { if (_subject != null && _clip != null) { PolyClipError _err; DoBooleanOperation(YuPengClipper.Union(_subject, _clip, out _err)); } } // Perform a Subtraction if (e.KeyCode == Keys.Back) { if (_subject != null && _clip != null) { PolyClipError _err; DoBooleanOperation(YuPengClipper.Difference(_subject, _clip, out _err)); } } // Perform a Intersection if (e.KeyCode == Keys.LeftShift) { if (_subject != null && _clip != null) { PolyClipError _err; DoBooleanOperation(YuPengClipper.Intersect(_subject, _clip, out _err)); } } // Select Subject if (e.KeyCode == Keys.D1) { if (_selected != null) { if (_clip == _selected) { _clip = null; } _subject = _selected; } } // Select Clip if (e.KeyCode == Keys.D2) { if (_selected != null) { if (_subject == _selected) { _subject = null; } _clip = _selected; } } }