private void loadMXDOCBbutton_Click(object sender, EventArgs e) { IMapDocument mapDox = new MapDocument(); mapDox.Open(@"C:\Program Files (x86)\ArcGIS\DeveloperKit10.2\Samples\data\California\California.mxd"); for (int i = 0; i < mapDox.MapCount; i++) { mapsComboBox.Items.Add(mapDox.get_Map(i).Name); } }
public void SetActiveDocument(MapDocument doc) { _document.SetTarget(doc); }
protected override void KeyDown(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e) { HandleKeyDown(e); base.KeyDown(document, viewport, camera, e); }
// Rendering protected override void Render(MapDocument document, BufferBuilder builder, ResourceCollector resourceCollector) { if (_state != EntityState.None) { var vec = _location; var high = 1024f * 1024f; var low = -high; // Draw a box around the point var c = new Box(vec - Vector3.One * 10, vec + Vector3.One * 10); const uint numVertices = 4 * 6 + 6; const uint numWireframeIndices = numVertices * 2; var points = new VertexStandard[numVertices]; var indices = new uint[numWireframeIndices]; var colour = new Vector4(0, 1, 0, 1); var vi = 0u; var wi = 0u; foreach (var face in c.GetBoxFaces()) { var offs = vi; foreach (var v in face) { points[vi++] = new VertexStandard { Position = v, Colour = colour, Tint = Vector4.One }; } // Lines - [0 1] ... [n-1 n] [n 0] for (uint i = 0; i < 4; i++) { indices[wi++] = offs + i; indices[wi++] = offs + (i == 4 - 1 ? 0 : i + 1); } } // Draw 3 lines pinpointing the point var lineOffset = vi; points[vi++] = new VertexStandard { Position = new Vector3(low, vec.Y, vec.Z), Colour = colour, Tint = Vector4.One }; points[vi++] = new VertexStandard { Position = new Vector3(high, vec.Y, vec.Z), Colour = colour, Tint = Vector4.One }; points[vi++] = new VertexStandard { Position = new Vector3(vec.X, low, vec.Z), Colour = colour, Tint = Vector4.One }; points[vi++] = new VertexStandard { Position = new Vector3(vec.X, high, vec.Z), Colour = colour, Tint = Vector4.One }; points[vi++] = new VertexStandard { Position = new Vector3(vec.X, vec.Y, low), Colour = colour, Tint = Vector4.One }; points[vi++] = new VertexStandard { Position = new Vector3(vec.X, vec.Y, high), Colour = colour, Tint = Vector4.One }; indices[wi++] = lineOffset++; indices[wi++] = lineOffset++; indices[wi++] = lineOffset++; indices[wi++] = lineOffset++; indices[wi++] = lineOffset++; indices[wi++] = lineOffset++; var groups = new[] { new BufferGroup(PipelineType.Wireframe, CameraType.Both, 0, numWireframeIndices) }; builder.Append(points, indices, groups); } base.Render(document, builder, resourceCollector); }
protected override void MouseLeave(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e) { viewport.Control.Cursor = Cursors.Cross; }
public Task UpdateDocumentData(MapDocument document) { return(Task.FromResult(0)); }
public override void Unhighlight(MapDocument document, MapViewport viewport) { // }
public override void Click(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position) { State.Action = BoxAction.Idle; }
public abstract void Render(MapDocument document, BufferBuilder builder);
public abstract void Unhighlight(MapDocument document, MapViewport viewport);
public abstract bool CanDrag(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position);
public abstract void Click(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position);
public virtual void MouseUp(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position) { }
public virtual void EndDrag(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position) { OnDragEnded(); }
public bool ShouldStopProcessing(MapDocument document, IMapObject obj) { return(false); }
protected override void MouseLeave(MapDocument document, MapViewport viewport, PerspectiveCamera camera, ViewportEvent e) { ActiveViewport = null; base.MouseLeave(document, viewport, camera, e); }
private List <VisgroupItem> GetItemHierarchies(MapDocument document) { var list = new List <VisgroupItem>(); // add user visgroups var visgroups = document.Map.Data.Get <Primitives.MapData.Visgroup>().ToList(); foreach (var v in visgroups) { list.Add(new VisgroupItem(v.Name) { CheckState = GetVisibilityCheckState(v.Objects), Colour = v.Colour, Tag = v }); } var auto = new VisgroupItem(AutoVisgroups) { Disabled = true }; list.Insert(0, auto); // add auto visgroups var autoVisgroups = document.Map.Data.Get <AutomaticVisgroup>().ToList(); var parents = new Dictionary <string, VisgroupItem> { { "", auto } }; foreach (var av in autoVisgroups.OrderBy(x => x.Path.Length)) { VisgroupItem parent = auto; if (!parents.ContainsKey(av.Path)) { var path = new List <string>(); foreach (var spl in av.Path.Split('/')) { path.Add(spl); var seg = String.Join("/", path); if (!parents.ContainsKey(seg)) { var group = new VisgroupItem(_translation.GetString(spl)) { Parent = parent, Disabled = true }; list.Add(group); parents[seg] = group; } parent = parents[seg]; } } else { parent = parents[av.Path]; } list.Add(new VisgroupItem(_translation.GetString(av.Key)) { CheckState = GetVisibilityCheckState(av.Objects), Tag = av, Parent = parent }); } for (var i = list.Count - 1; i >= 0; i--) { var v = list[i]; if (v.Tag != null) { continue; } var children = list.Where(x => x.Parent == v).ToList(); if (children.All(x => x.CheckState == CheckState.Checked)) { v.CheckState = CheckState.Checked; } else if (children.All(x => x.CheckState == CheckState.Unchecked)) { v.CheckState = CheckState.Unchecked; } else { v.CheckState = CheckState.Indeterminate; } } return(list); }
public override bool CanDrag(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 position) { return(true); }
public Task <Change> Reverse(MapDocument document) { return(Perform(document)); // Reversing this operation means just performing it again }
public override void Drag(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e, Vector3 lastPosition, Vector3 position) { State.End = Tool.SnapIfNeeded(camera.Expand(position)) + camera.GetUnusedCoordinate(State.End); base.Drag(document, viewport, camera, e, lastPosition, position); }
/// <summary> /// Set the current grid that is being rendered by extracting it from a document. /// </summary> /// <param name="doc">The document to extract the grid data from</param> public void SetGrid(MapDocument doc) { _grid = doc?.Map.Data.GetOne <GridData>()?.Grid; _validated = false; }
protected override Task Invoke(MapDocument document, CommandParameters parameters) { _host.Value.CreateNewWindow(); return(Task.CompletedTask); }
public Task BeforeSave(MapDocument document) { return(Task.FromResult(0)); }
private async Task CreateEntity(MapDocument document, Vector3 origin, string gd = null) { if (gd == null) { gd = _activeEntity; } if (gd == null) { return; } var colour = Colour.GetDefaultEntityColour(); var data = await document.Environment.GetGameData(); if (data != null) { var cls = data.Classes.FirstOrDefault(x => String.Equals(x.Name, gd, StringComparison.InvariantCultureIgnoreCase)); if (cls != null) { var col = cls.Behaviours.Where(x => x.Name == "color").ToArray(); if (col.Any()) { colour = col[0].GetColour(0); } } } var entity = new Primitives.MapObjects.Entity(document.Map.NumberGenerator.Next("MapObject")) { Data = { new EntityData { Name = gd }, new ObjectColor(colour), new Origin(origin), } }; var transaction = new Transaction(); transaction.Add(new Attach(document.Map.Root.ID, entity)); if (_selectCreatedEntity) { transaction.Add(new Deselect(document.Selection)); transaction.Add(new Select(entity.FindAll())); } await MapDocumentOperation.Perform(document, transaction); if (_switchToSelectAfterCreation) { Oy.Publish("ActivateTool", "SelectTool"); } if (_resetEntityTypeOnCreation) { Oy.Publish("EntityTool:ResetEntityType", this); } }
protected override void OnSetProperty(MapDocument document) { _checkBox.Text = Property.DisplayText(); _checkBox.Checked = String.Equals(PropertyValue, "Yes", StringComparison.CurrentCultureIgnoreCase); }
protected override void OnSetProperty(MapDocument document) { _textBox.Text = PropertyValue; }
protected override async Task Invoke(MapDocument document, CommandParameters parameters) { var carver = document.Selection.OfType <Solid>().FirstOrDefault(); if (carver == null) { return; } var objects = document.Map.Root .Find(x => x is Solid && x.BoundingBox.IntersectsWith(carver.BoundingBox)) .OfType <Solid>() .Where(x => !ReferenceEquals(x, carver)); var ops = new List <IOperation>(); foreach (var obj in objects) { var split = false; var solid = obj; foreach (var plane in carver.Faces.Select(x => x.Plane)) { // Split solid by plane Solid back, front; try { if (!solid.Split(document.Map.NumberGenerator, plane, out back, out front)) { continue; } } catch { // We're not too fussy about over-complicated carving, just get out if we've broken it. break; } split = true; if (front != null) { // Retain the front solid if (solid.IsSelected) { front.IsSelected = true; } ops.Add(new Attach(obj.Hierarchy.Parent.ID, front)); } if (back == null || !back.IsValid()) { break; } // Use the back solid as the new clipping target if (solid.IsSelected) { back.IsSelected = true; } solid = back; } if (!split) { continue; } ops.Add(new Detatch(obj.Hierarchy.Parent.ID, obj)); } if (ops.Any()) { await MapDocumentOperation.Perform(document, new Transaction(ops)); } }
protected override void KeyDown(MapDocument document, MapViewport viewport, PerspectiveCamera camera, ViewportEvent e) { HandleKeyDown(e); base.KeyDown(document, viewport, camera, e); }
protected override bool IsInContext(IContext context, MapDocument document) { return(base.IsInContext(context, document) && !document.Selection.IsEmpty); }
protected override bool IsInContext(IContext context, MapDocument document) { return(base.IsInContext(context, document) && document.Selection.Any(x => x is Solid)); }
protected override void MouseEnter(MapDocument document, MapViewport viewport, OrthographicCamera camera, ViewportEvent e) { ActiveViewport = viewport; base.MouseEnter(document, viewport, camera, e); }