Exemple #1
0
        private void OpenSolutionDlg()
        {
            var dlg = new Microsoft.Win32.OpenFileDialog()
            {
                Filter = "Solution (*.txt)|*.txt|All Files (*.*)|*.*",
                Title  = "Open Solution"
            };

            var res = dlg.ShowDialog();

            if (res == true)
            {
                var fileName = dlg.FileName;
                var canvas   = Editor.Context.CurrentCanvas;

                ModelEditor.Clear(canvas);

                TreeSolution solution = Editor.OpenSolution(fileName);

                if (solution != null)
                {
                    UpdateSolutionState(false, fileName);

                    var tree = Editor.Context.CurrentTree;

                    Editor.Clear(tree, canvas, canvas.GetCounter());
                    Editor.Parse(tree, solution, canvas.GetCounter(), Editor.Context.CreateSolution);
                }
            }
        }
Exemple #2
0
        public void ShowDiagramSelectedElements()
        {
            var model    = ModelEditor.Generate(ModelEditor.GetSelected(Editor.Context.CurrentCanvas));
            var diagrams = new List <string>();

            diagrams.Add(model);

            ShowDiagramsWindow(diagrams, "Diagram (Selected Elements)");
        }
Exemple #3
0
        void WriteBarycentricVertices(Mesh assimpMesh, ModelData.MeshPart meshPart, ModelData.VertexBuffer vertexBuffer, int vertexBufferElementSize)
        {
            //System.Diagnostics.Debugger.Launch();
            int[] indices    = assimpMesh.GetIntIndices();
            int   indexCount = indices.Length;

            // Write all vertices
            meshPart.VertexBufferRange.Count = indexCount;
            vertexBuffer.Count  = indexCount;
            vertexBuffer.Buffer = new byte[vertexBufferElementSize * indexCount];

            // Update the MaximumBufferSizeInBytes needed to load this model
            if (vertexBuffer.Buffer.Length > model.MaximumBufferSizeInBytes)
            {
                model.MaximumBufferSizeInBytes = vertexBuffer.Buffer.Length;
            }

            var vertexStream = DataStream.Create(vertexBuffer.Buffer, true, true);

            boundingPoints = new Vector3[indexCount];
            var newVertices = new VertexPositionNormalTexture[indices.Length];

            for (int i = 0; i < indexCount; i++)
            {
                try
                {
                    int i0 = indices[i];
                    var v0 = assimpMesh.Vertices[i0];
                    var v  = new Vector3(v0.X, v0.Y, v0.Z);

                    var n0 = assimpMesh.Normals[i0];
                    var n  = new Vector3(n0.X, n0.Y, n0.Z);

                    var uv = assimpMesh.GetTextureCoords(0)[i0];
                    var t  = new Vector2(uv.X, uv.Y);

                    // Store bounding points for BoundingSphere pre-calculation
                    boundingPoints[currentBoundingPointIndex++] = v;
                    newVertices[i0] = new VertexPositionNormalTexture(v, n, t);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("!" + ex);
                }
            }
            var barycentricVertices = ModelEditor.ConvertToBarycentricEdgeNormalVertices(newVertices, indices);

            foreach (var vertex in barycentricVertices)
            {
                vertexStream.Write(vertex.Position);
                vertexStream.Write(vertex.Normal);
                vertexStream.Write(vertex.TextureUV);
                vertexStream.Write(vertex.Barycentric);
            }

            vertexStream.Dispose();
        }
Exemple #4
0
        void Item_Selected(object sender, RoutedEventArgs e)
        {
            var item  = sender as ListBoxItem;
            var model = item.Tag as string;

            ModelEditor.Clear(Editor.Context.CurrentCanvas);
            ModelEditor.Parse(model,
                              Editor.Context.CurrentCanvas,
                              Editor.Context.DiagramCreator,
                              0, 0,
                              false, true, false, true);
        }
Exemple #5
0
        private void UpdateDiagramGrid(bool undo)
        {
            var canvas  = Editor.Context.CurrentCanvas;
            var creator = Editor.Context.DiagramCreator;

            if (undo == true)
            {
                HistoryEditor.Add(canvas);
            }

            Editor.Context.UpdateProperties();
            ModelEditor.SetGrid(canvas, creator);
        }
Exemple #6
0
        private void DxfExportDiagram(string fileName,
                                      ICanvas canvas,
                                      bool shortenStart,
                                      bool shortenEnd,
                                      DxfAcadVer version,
                                      DiagramTable table)
        {
            string model = ModelEditor.GenerateDiagram(canvas, null, canvas.GetProperties());

            string dxf = DxfGenerate(model, shortenStart, shortenEnd, version, table);

            DxfSave(fileName, dxf);
        }
        public void InsertElements(IEnumerable <object> elements,
                                   bool select,
                                   double offsetX,
                                   double offsetY)
        {
            var canvas = ParserCanvas;

            ModelEditor.Insert(canvas,
                               elements.Cast <IElement>(),
                               select,
                               offsetX,
                               offsetY);
        }
Exemple #8
0
        public virtual void Create()
        {
            Camera = new Camera() { Position = new Vector3(0, 0, -400) };
            AddObject(Camera);
            DrawWrapper.Camera = Camera;

            ModelEditor = new ModelEditor();
            AddObject(ModelEditor);

            for (int i = 0; i < GameObjects.Count(); i++)
            {
                var go = GameObjects[i];
                go.Create();
            }
        }
Exemple #9
0
        private void NewSolution()
        {
            UpdateSolutionState(false, null);
            SetProperties(DiagramProperties.Default);
            UpdateDiagramGrid(false);

            ModelEditor.Clear(Editor.Context.CurrentCanvas);

            Editor.Clear(Editor.Context.CurrentTree,
                         Editor.Context.CurrentCanvas,
                         Editor.Context.CurrentCanvas.GetCounter());

            TreeEditor.CreateDefaultSolution(Editor.Context.CurrentTree,
                                             Editor.Context.CreateSolution,
                                             Editor.Context.CreateProject,
                                             Editor.Context.CreateDiagram,
                                             Editor.Context.CurrentCanvas.GetCounter());

            UpdateEditors();
        }
        private FrameworkElement CreateDiagramElement(string diagram,
                                                      Size areaExtent,
                                                      Point origin,
                                                      Rect area,
                                                      bool fixedStrokeThickness,
                                                      ResourceDictionary resources,
                                                      DiagramTable table)
        {
            var grid = new Grid()
            {
                ClipToBounds = true,
                Resources    = resources
            };

            var template = new Control()
            {
                Template = grid.Resources[ResourceConstants.KeyLandscapePageTemplate] as ControlTemplate
            };

            var canvas = new DiagramCanvas()
            {
                Width  = PageWidth,
                Height = PageHeight
            };

            ModelEditor.Parse(diagram,
                              canvas, this.DiagramCreator,
                              0, 0,
                              false, false, false, true);

            grid.Children.Add(template);
            grid.Children.Add(canvas);

            LineEx.SetShortenStart(grid, ShortenStart);
            LineEx.SetShortenEnd(grid, ShortenEnd);

            TableGrid.SetData(grid, table);

            return(grid);
        }
Exemple #11
0
        private void GetHistory_Click(object sender, RoutedEventArgs e)
        {
            var history = Editor.Context.CurrentCanvas.GetTag() as UndoRedo;

            if (history == null)
            {
                return;
            }

            ListHistory.Items.Clear();
            int index = 0;

            foreach (var model in history.Undo.Reverse())
            {
                AddHistoryItem(index, model);
                index++;
            }

            var current = ModelEditor.GenerateDiagram(Editor.Context.CurrentCanvas, null, Editor.Context.CurrentCanvas.GetProperties());

            AddHistoryItem(index, current);
        }
Exemple #12
0
        void SelectModel(PositionedModel selectingmodel)
        {
            #region Store and set the model

            // store the current model
            mCurrentModel = selectingmodel;

            mModelEditor = new ModelEditor(mCurrentModel);
            modelPropGrid.SelectedObject = mModelEditor;

            // Set the model
            foreach (PositionedModel model in mModelDictionary.Values)
            {
                model.Visible = (model == mCurrentModel);
            }

            modelViewControl1.CurrentModel = mCurrentModel;

            #endregion

            #region Create the material

            mMaterial = new MaterialEditor(mCurrentModel.XnaModel);
            InitializeAssets();

            #endregion

            #region Mesh part selection

            meshPartBox.Items.Clear();
            for (int i = 0; i < mMaterial.PartCount; i++)
            {
                meshPartBox.Items.Add(i);
            }
            meshPartBox.SelectedIndex = 0;

            #endregion
        }
 public void UpdateConnections(IDictionary <string, Child> dict)
 {
     ModelEditor.ConnectionsUpdate(dict);
 }
 public void UpdateCounter(IdCounter original, IdCounter counter)
 {
     ModelEditor.IdsUpdateCounter(original, counter);
 }
Exemple #15
0
 void SelectModel(PositionedModel model)
 {
     mModelEditor = new ModelEditor(model);
     modelPropertyGrid.SelectedObject = mModelEditor;
 }
Exemple #16
0
 private void GenerateModelFromSelected_Click(object sender, RoutedEventArgs e)
 {
     this.TextModel.Text = ModelEditor.Generate(ModelEditor.GetSelected(Editor.Context.CurrentCanvas));
 }
 public void AppendIds(IEnumerable <object> elements)
 {
     ModelEditor.IdsAppend(elements, this.GetCounter());
 }