Esempio n. 1
0
        private TreeNode LoadTreeNode(TreeNodeCollection treeNodes, SvfNode svfNode, bool hideNonGeometryNodes)
        {
            var treeNode = new TreeNode($"{svfNode.Name}");

            treeNode.Tag = svfNode;

            if (svfNode.ViewableIn)
            {
                treeNode.ForeColor = Color.DarkGreen;
            }

            _TreeNodes[svfNode.Id] = treeNode;

            if (svfNode == _CurrentSvfNode)
            {
                CurrentTreeNode = treeNode;
            }

            foreach (var childNode in svfNode.Children)
            {
                if (hideNonGeometryNodes &&
                    IsGeometryNode(childNode) == false)
                {
                    continue;
                }

                LoadTreeNode(treeNode.Nodes, childNode, hideNonGeometryNodes);
            }

            treeNodes.Add(treeNode);

            return(treeNode);
        }
Esempio n. 2
0
        private TreeNode LoadNode(TreeNodeCollection treeNodes, SvfDatabase reader, SvfNode propNode, int depth)
        {
            //var treeNode = new TreeNode($"([{nodeId}]{propNode.Category}) {propNode.Name}");
            var treeNode = new TreeNode($"{propNode.Name}");

            treeNode.Tag = propNode;

            foreach (var childNode in propNode.Children)
            {
                LoadNode(treeNode.Nodes, reader, childNode, depth++);
            }

            treeNodes.Add(treeNode);

            return(treeNode);
        }
Esempio n. 3
0
        private void tvModel_AfterSelect(object sender, TreeViewEventArgs e)
        {
            _CurrentTreeNode = tvModel.SelectedNode;
            _CurrentSvfNode  = _CurrentTreeNode?.Tag as SvfNode;
            if (_CurrentSvfNode == null)
            {
                return;
            }

            lblDbId.Text       = _CurrentSvfNode.Id.ToString();
            txtName.Text       = _CurrentSvfNode.Name ?? @"<null>";
            txtCategory.Text   = _CurrentSvfNode.Category ?? @"<null>";
            txtExternalId.Text = _CurrentSvfNode.ExternalId ?? @"<null>";

            pgNodeProperties.SelectedObject = new SvfNodePropertyGridAdapter(tvModel.SelectedNode.Tag as SvfNode);
        }
Esempio n. 4
0
        private bool IsGeometryNode(SvfNode svfNode)
        {
            if (svfNode.ViewableIn)
            {
                return(true);
            }

            if (svfNode.Children != null &&
                svfNode.Children.Count > 0 &&
                svfNode.Children.Any(IsGeometryNode))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 5
0
        private SvfNode ImportNodeWithPath(SvfNode targetNodeRoot, SvfNode sourceNode, SvfNode sourceNodeRoot, Material material)
        {
            var targetNode = sourceNode.Parent == sourceNodeRoot
                ? targetNodeRoot
                : ImportNodeWithPath(targetNodeRoot, sourceNode.Parent, sourceNodeRoot, material);
            var resultNode = targetNode.Children.FirstOrDefault(x => x.Name == sourceNode.Name);

            if (resultNode == null)
            {
                resultNode = targetNode.Children.ImportNode(sourceNode, null, false);
                foreach (var fragment in resultNode.Fragments)
                {
                    fragment.Material = material;
                }
            }
            return(resultNode);
        }
Esempio n. 6
0
 public FormApp(SvfDatabase svfDb, string svfFilePath) : this()
 {
     _SvfDb          = svfDb ?? throw new ArgumentNullException(nameof(svfDb));
     _SvfFilePath    = svfFilePath ?? throw new ArgumentNullException(nameof(svfFilePath));
     _CurrentSvfNode = null;
 }
Esempio n. 7
0
 public static NodeKey GetKey(this SvfNode node)
 {
     return(new NodeKey(node.ExternalId, node.LinkInstanceName));
 }