public void AddNode(RigidNode_Base node) { if (listViewNodes.Items.Cast <ListViewItem>().FirstOrDefault(i => i.Tag != null && ((RigidNode_Base)i.Tag).GetModelID() == node.GetModelID()) != null) { return; } ListViewItem item = new ListViewItem(new string[] { (node.GetParent() != null) ? node.GetParent().ModelFileName : "N/A", node.ModelFileName, "False", "False", "False" }); item.Tag = node; listViewNodes.Items.Add(item); nodes.Add(node); }
/// <summary> /// Merges a node into the parent. Used during the one click export and the wizard. /// </summary> /// <param name="node"></param> public void MergeNodeIntoParent(RigidNode_Base node) { if (node.GetParent() == null) { throw new ArgumentException("ERROR: Root node passed to MergeNodeIntoParent(RigidNode_Base)", "node"); } node.GetParent().ModelFullID += node.ModelFullID; //Get meshes for each node var childMesh = GetMesh(node); var parentMesh = GetMesh(node.GetParent()); //Merge submeshes and colliders parentMesh.meshes.AddRange(childMesh.meshes); parentMesh.colliders.AddRange(childMesh.colliders); //Merge physics parentMesh.physics.Add(childMesh.physics.mass, childMesh.physics.centerOfMass); //Remove node from the children of its parent node.GetParent().Children.Remove(node.GetSkeletalJoint()); Meshes.Remove(childMesh); }
public static string ParentNameString(RigidNode_Base node) { return(StringUtils.CapitalizeFirstLetter(node.GetParent().ModelFileName.Replace('_', ' ').Replace(".bxda", ""))); }