Exemplo n.º 1
0
        private void GenerateModelTree()
        {
            VIZCore3D.NET.ShdCore.StructureManager     structure = new VIZCore3D.NET.ShdCore.StructureManager(Path);
            List <VIZCore3D.NET.ShdCore.ModelTreeNode> nodes     = structure.GetStructureNodeList();

            // New Empty Model
            int rootIndex = vizcore3d.Model.NewEmptyModel(System.IO.Path.GetFileNameWithoutExtension(Path));
            int rootId    = vizcore3d.Object3D.GetNodeId(rootIndex);
            int maxId     = vizcore3d.Structure.GetMaxId();

            List <VIZCore3D.NET.Data.NewNodeItem> items = new List <VIZCore3D.NET.Data.NewNodeItem>();

            BackupID = new Dictionary <int, int>();
            foreach (VIZCore3D.NET.ShdCore.ModelTreeNode node in nodes)
            {
                if (node.NodeType == VIZCore3D.NET.ShdCore.ModelTreeNodeKind.BODY)
                {
                    continue;
                }

                VIZCore3D.NET.Data.NewNodeItem item = new VIZCore3D.NET.Data.NewNodeItem();
                int id = Convert.ToInt32(node.EntityId + 100);
                item.ID = id;

                BackupID.Add(id, Convert.ToInt32(node.EntityId));

                //item.Kind = VIZCore3D.NET.Data.NodeKind.ASSEMBLY;

                switch (node.NodeType)
                {
                case VIZCore3D.NET.ShdCore.ModelTreeNodeKind.ASSEMBLY:
                    item.Kind = VIZCore3D.NET.Data.NodeKind.ASSEMBLY;
                    break;

                case VIZCore3D.NET.ShdCore.ModelTreeNodeKind.PART:
                    item.Kind = VIZCore3D.NET.Data.NodeKind.PART;
                    break;

                default:
                    break;
                }

                item.Name = node.NodeName;
                if (node.ParentNode != null)
                {
                    item.ParentId = Convert.ToInt32(node.ParentNode.EntityId + 100);
                }
                else
                {
                    item.ParentId = rootId;
                }

                items.Add(item);
            }

            vizcore3d.Structure.CreateNodes(items);
            vizcore3d.Structure.RebuildData();
        }
Exemplo n.º 2
0
        private void btnCreateNodeBulk1000_Click(object sender, EventArgs e)
        {
            int index = vizcore3d.Model.NewEmptyModel("MODEL");
            int id    = vizcore3d.Object3D.GetNodeId(index);
            int maxId = vizcore3d.Structure.GetMaxId();

            List <VIZCore3D.NET.Data.NewNodeItem> nodes = new List <VIZCore3D.NET.Data.NewNodeItem>();

            for (int i = 0; i < 1000; i++)
            {
                VIZCore3D.NET.Data.NewNodeItem item = new VIZCore3D.NET.Data.NewNodeItem();
                item.ID       = maxId + (i + 1); /* Manual Assignment */
                item.Kind     = VIZCore3D.NET.Data.NodeKind.ASSEMBLY;
                item.ParentId = id;
                item.Name     = string.Format("NODE {0}", i + 1);

                nodes.Add(item);
            }

            vizcore3d.Structure.CreateNodes(nodes);
        }
Exemplo n.º 3
0
        private void btnCreateFileNode_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Multiselect = true;
            dlg.Filter      = "VIZ Files (*.viz)|*.viz";
            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            int index = vizcore3d.Model.NewEmptyModel("MODEL");
            int id    = vizcore3d.Object3D.GetNodeId(index);
            int maxId = vizcore3d.Structure.GetMaxId();

            List <VIZCore3D.NET.Data.NewNodeItem> nodes   = new List <VIZCore3D.NET.Data.NewNodeItem>();
            Dictionary <string, string>           fileMap = new Dictionary <string, string>();

            vizcore3d.BeginUpdate();

            for (int i = 0; i < dlg.FileNames.Length; i++)
            {
                string nodeName = System.IO.Path.GetFileNameWithoutExtension(dlg.FileNames[i]);

                VIZCore3D.NET.Data.NewNodeItem item = new VIZCore3D.NET.Data.NewNodeItem();
                item.ID       = maxId + (i + 1); /* Manual Assignment */
                item.Kind     = VIZCore3D.NET.Data.NodeKind.ASSEMBLY;
                item.ParentId = id;
                item.Name     = nodeName;

                if (fileMap.ContainsKey(nodeName) == false)
                {
                    fileMap.Add(nodeName, dlg.FileNames[i]);
                }

                nodes.Add(item);
            }

            vizcore3d.Structure.CreateNodes(nodes);

            foreach (KeyValuePair <string, string> item in fileMap)
            {
                List <VIZCore3D.NET.Data.Node> fileNode =
                    vizcore3d.Object3D.Find.QuickSearch(item.Key, true);

                if (fileNode.Count == 0)
                {
                    continue;
                }

                vizcore3d.Structure.CreateNode(
                    fileNode[0].Index
                    , string.Format("FILE_{0}", item.Key)
                    , fileMap[item.Key]
                    );
            }

            List <VIZCore3D.NET.Data.Node> nodeLevel1 =
                vizcore3d.Object3D.FromDepth(1, false);

            vizcore3d.Object3D.Show(nodeLevel1, true);

            vizcore3d.EndUpdate();
        }
Exemplo n.º 4
0
        private void btnAddBulk_Click(object sender, EventArgs e)
        {
            if (vizcore3d.Model.IsOpen() == false)
            {
                return;
            }

            // Group
            string groupName = "GROUP";

            VIZCore3D.NET.Data.Node groupNode;
            if (ExistGroupNode(groupName) == false)
            {
                groupNode = AddGroupNode(groupName);
            }
            else
            {
                groupNode = GetGroupNode(groupName);
            }

            int id     = vizcore3d.Structure.GetMaxId();
            int parent = groupNode.ID;

            List <VIZCore3D.NET.Data.NewNodeItem> items = new List <VIZCore3D.NET.Data.NewNodeItem>();

            for (int i = 0; i < 100; i++)
            {
                // Part
                VIZCore3D.NET.Data.NewNodeItem part = new VIZCore3D.NET.Data.NewNodeItem();

                part.ParentId = parent;
                part.ID       = ++id;
                part.Kind     = Data.NodeKind.PART;
                part.Name     = string.Format("CYLN_{0}", part.ID);

                items.Add(part);

                // Body
                VIZCore3D.NET.Data.NewNodeItem body = new VIZCore3D.NET.Data.NewNodeItem();

                body.ParentId = part.ID;
                body.ID       = ++id;
                body.Kind     = Data.NodeKind.BODY;
                body.Name     = string.Format("CYLN_{0}", body.ID);

                items.Add(body);
            }

            vizcore3d.Structure.CreateNodes(items);

            vizcore3d.BeginUpdate();
            for (int i = 0; i < items.Count; i++)
            {
                VIZCore3D.NET.Data.NewNodeItem item = items[i];
                if (item.Kind == VIZCore3D.NET.Data.NodeKind.PART)
                {
                    continue;
                }

                int bodyIndex = vizcore3d.Object3D.GetBodyIndex(item.ID);

                VIZCore3D.NET.Data.Vertex3D start = new VIZCore3D.NET.Data.Vertex3D(i * 1000, i * 1000, 0);
                VIZCore3D.NET.Data.Vertex3D end   = new VIZCore3D.NET.Data.Vertex3D((i + 1) * 1000, (i + 1) * 1000, 0);
                vizcore3d.MeshEdit.AddPrimitiveCylinder(bodyIndex, start, end, 500, Color.Yellow, false, 12);
            }

            vizcore3d.Structure.RebuildData();

            vizcore3d.EndUpdate();
        }