public override void OnMouseDown(System.Windows.Forms.MouseEventArgs mouseEventArgs, int width, int height) { base.OnMouseDown(mouseEventArgs, width, height); if (mTileManager.SegmentationLoaded && !mTileManager.SegmentationChangeInProgress && mTileManager.SelectedSegmentId != 0) { // // Draw or erase here // var p = new Vector2((float)mouseEventArgs.X / width, (float)mouseEventArgs.Y / height); mCurrentlyDrawing = true; if (mouseEventArgs.Button == MouseButtons.Left) { mTileManager.DrawRegionA(p); mEngine.QuickRender(); } else if (mouseEventArgs.Button == MouseButtons.Right) { mTileManager.DrawRegionB(p); mEngine.QuickRender(); } } }
public override void OnMouseDown(System.Windows.Forms.MouseEventArgs mouseEventArgs, int width, int height) { base.OnMouseDown(mouseEventArgs, width, height); if (mTileManager.SegmentationLoaded && !mTileManager.SegmentationChangeInProgress) { // // Draw here // var p = new Vector2((float)mouseEventArgs.X / width, (float)mouseEventArgs.Y / height); if (mouseEventArgs.Button == MouseButtons.Left || mouseEventArgs.Button == MouseButtons.Right) { mTileManager.PrepForDrawMerge(p); mCurrentlyDrawing = true; mTileManager.DrawRegionA(p, mTileManager.MergeBrushSize); mEngine.QuickRender(); } } }
public override void OnMouseDown(System.Windows.Forms.MouseEventArgs mouseEventArgs, int width, int height) { base.OnMouseDown(mouseEventArgs, width, height); if (mTileManager.CurrentSplitMode != SplitMode.JoinPoints) { if (mTileManager.SegmentationLoaded && !mTileManager.SegmentationChangeInProgress) { //Get the id of the segment being clicked var p = new Vector2((float)mouseEventArgs.X / width, (float)mouseEventArgs.Y / height); var clickedId = mTileManager.GetSegmentationLabelId(p); if (clickedId == mTileManager.SelectedSegmentId && mTileManager.CurrentSplitMode != SplitMode.JoinPoints) { mCurrentlyDrawing = true; if (mTileManager.CurrentSplitMode == SplitMode.DrawSplit) { if (mouseEventArgs.Button == MouseButtons.Left) { mTileManager.DrawSplit(p); mEngine.QuickRender(); } else if (mouseEventArgs.Button == MouseButtons.Right) { mTileManager.DrawErase(p); mEngine.QuickRender(); } } else if (mTileManager.CurrentSplitMode == SplitMode.DrawRegions) { if (mouseEventArgs.Button == MouseButtons.Left) { mTileManager.DrawRegionA(p); mEngine.QuickRender(); } else if (mouseEventArgs.Button == MouseButtons.Right) { mTileManager.DrawRegionB(p); mEngine.QuickRender(); } } } } } }
public virtual void OnMouseWheel(System.Windows.Forms.MouseEventArgs mouseEventArgs, int width, int height) { // // Only scroll if the mouse within the extent // if (mouseEventArgs.X < 0 || mouseEventArgs.X > width || mouseEventArgs.Y < 0 || mouseEventArgs.Y > height) { return; } var centerDataSpace = mTileManager.TiledDatasetView.CenterDataSpace; var extentDataSpace = mTileManager.TiledDatasetView.ExtentDataSpace; var tiledVolumeDescription = mTileManager.TiledDatasetDescription.TiledVolumeDescriptions.Get("SourceMap"); var dataSpaceUnitWidthNumPixels = width / extentDataSpace.X; var changeBy = (float)Math.Pow(Constants.MAGNIFICATION_STEP, Math.Abs((double)mouseEventArgs.Delta) / Constants.NUM_DETENTS_PER_WHEEL_MOVE); // // Prepare for mouse location calculations - these coordinates are relative the the center of the view window // var relativeMouseLocationX = mouseEventArgs.X - (width / 2f); var relativeMouseLocationY = mouseEventArgs.Y - (height / 2f); if (mouseEventArgs.Delta > 0 && extentDataSpace.X > 1e-3 && extentDataSpace.Y > 1e-3) { // // Decrease the view extent // extentDataSpace.X /= changeBy; extentDataSpace.Y /= changeBy; // // Change the center location so that the point under the mouse remains stationary // centerDataSpace.X += (relativeMouseLocationX * changeBy - relativeMouseLocationX) / dataSpaceUnitWidthNumPixels / changeBy; centerDataSpace.Y += (relativeMouseLocationY * changeBy - relativeMouseLocationY) / dataSpaceUnitWidthNumPixels / changeBy; } else if (mouseEventArgs.Delta < 0 && extentDataSpace.X < tiledVolumeDescription.NumTilesX * 10 && extentDataSpace.Y < tiledVolumeDescription.NumTilesY * 10) { // // Increase the view extent // extentDataSpace.X *= changeBy; extentDataSpace.Y *= changeBy; // // Change the center location so that the point under the mouse remains stationary // centerDataSpace.X -= (relativeMouseLocationX * changeBy - relativeMouseLocationX) / dataSpaceUnitWidthNumPixels; centerDataSpace.Y -= (relativeMouseLocationY * changeBy - relativeMouseLocationY) / dataSpaceUnitWidthNumPixels; } if (centerDataSpace.X < 0) { centerDataSpace.X = 0; } if (centerDataSpace.X > tiledVolumeDescription.NumTilesX * Constants.ConstParameters.GetInt("TILE_SIZE_X")) { centerDataSpace.X = tiledVolumeDescription.NumTilesX * Constants.ConstParameters.GetInt("TILE_SIZE_X"); } if (centerDataSpace.Y < 0) { centerDataSpace.Y = 0; } if (centerDataSpace.Y > tiledVolumeDescription.NumTilesY) { centerDataSpace.Y = tiledVolumeDescription.NumTilesY; } mTileManager.TiledDatasetView.CenterDataSpace = centerDataSpace; mTileManager.TiledDatasetView.ExtentDataSpace = extentDataSpace; mEngine.QuickRender(); mTileManager.UpdateXYZ(); }