/// <inheritdoc /> public override Selector VisitSelector(CommonTree selectorTree, string selectorType) { Selector selector; switch (selectorType) { case MapCssStrings.NodeSelector: selector = new NodeSelector(); break; case MapCssStrings.WaySelector: selector = new WaySelector(); break; case MapCssStrings.AreaSelector: selector = new AreaSelector(); break; case MapCssStrings.CanvasSelector: selector = new CanvasSelector(); break; default: throw new MapCssFormatException(selectorTree, String.Format(Strings.MapCssUnknownSelectorType, selectorType)); } var operation = selectorTree.Children[0].Text; ParseOperation(selectorTree, selector, operation); return(selector); }
public ItemDrawer(PointSelector.PointSelector pointSelector, AreaSelector.AreaSelector areaSelector, RlViewer.Behaviors.Scaling.Scaler scaler, AreaSelector.AreaSelectorsAlignerContainer areaAlignerWrapper) : base(scaler) { _pointSelector = pointSelector; _areaSelector = areaSelector; _areaAlignerWrapper = areaAlignerWrapper; }
static void DrawGizmoForMyScript(AreaSelector areaSelector, GizmoType gizmoType) { var size = areaSelector.Size.ToVector3() * MapGenerator.BlockSize; var start = areaSelector.StartPosition.ToVector3() * MapGenerator.BlockSize - new Vector3(1f, 0, 1f) * MapGenerator.BlockSize * 0.5f; Gizmos.color = Color.red; Gizmos.DrawWireCube(areaSelector.MapGenerator.transform.position + start + size * 0.5f, size); }
static void DrawGizmoForMyScript(AreaSelector areaSelector, GizmoType gizmoType) { if (areaSelector.MapBehaviour == null || !areaSelector.MapBehaviour.Initialized) { return; } var size = areaSelector.Size.ToVector3() * InfiniteMap.BLOCK_SIZE; var start = areaSelector.StartPosition.ToVector3() * InfiniteMap.BLOCK_SIZE - new Vector3(1f, 0, 1f) * InfiniteMap.BLOCK_SIZE * 0.5f; Gizmos.color = Color.red; Gizmos.DrawWireCube(areaSelector.MapBehaviour.transform.position + start + size * 0.5f, size); }
public override void OnInspectorGUI() { DrawDefaultInspector(); AreaSelector selector = (AreaSelector)target; if (GUILayout.Button("Generate")) { if (!selector.MapGenerator.Initialized) { selector.MapGenerator.Initialize(); } selector.MapGenerator.Collapse(selector.StartPosition, selector.Size); selector.MapGenerator.BuildAllSlots(); } }
public static async Task <Screenshot?> CaptureSelection(HSSettings settingsContext) { if (settingsContext == null) { throw new ArgumentNullException(nameof(settingsContext)); } Debug.Assert(!SelectionSemaphore.IsInAreaSelection); if (SelectionSemaphore.IsInAreaSelection) { return(null); } using var prio = new ProcessPriorityRequest(); var(screen, cursorPosition) = ScreenshotCreator.CaptureScreenshot(SystemInformation.VirtualScreen, settingsContext.CaptureCursor); using var selector = AreaSelector.Create(screen, true, settingsContext); var(selectedArea, _) = await selector.PromptSelectionAsync().ConfigureAwait(true); Debug.Assert(selectedArea.Width > 0); Debug.Assert(selectedArea.Height > 0); var selectedImage = new Bitmap(selectedArea.Width, selectedArea.Height); var cursorPositionOnSelectedImage = cursorPosition == null ? null : cursorPosition with { OnImage = new Point(cursorPosition.OnImage.X - selectedArea.X, cursorPosition.OnImage.Y - selectedArea.Y) }; using var g = Graphics.FromImage(selectedImage); g.DrawImage(screen, new Rectangle(0, 0, selectedArea.Width, selectedArea.Height), selectedArea, GraphicsUnit.Pixel); return(Screenshot.FromImage(selectedImage, cursorPosition, ScreenshotSource.Selected)); } }