/// <summary> /// Constructor /// </summary> /// <param name="device">Device</param> /// <param name="node">Parent Node</param> /// <param name="Model">Sharp Model</param> public Node(SharpDevice device, ModelNode node, SharpModel Model) { Name = node.Name; World = node.World; PreComputed = this.World; Children = new List<Node>(); //Create Child Nodes foreach (var m in node.Children) { var c = new Node(device, m, Model); c.Parent = this; Children.Add(c); } //Create Node Geometries foreach (var g in node.Geometries) { var g3d = new Geometry(device, g, node.Skinning != null); g3d.Node = this; Model.Geometries.Add(g3d); } //Get Skinning Data if (node.Skinning != null) { Skinning = new SkinData() { BindMatrix = node.Skinning.BindMatrix, InverseBindMatrix = new List<Matrix>(node.Skinning.InverseBinding), JointNames = new List<string>(node.Skinning.JointNames), }; } }
/// <summary> /// Constructor /// </summary> /// <param name="device">Device</param> /// <param name="node">Parent Node</param> /// <param name="Model">Sharp Model</param> public Node(SharpDevice device, ModelNode node, SharpModel Model) { Name = node.Name; World = node.World; PreComputed = this.World; Children = new List <Node>(); //Create Child Nodes foreach (var m in node.Children) { var c = new Node(device, m, Model); c.Parent = this; Children.Add(c); } //Create Node Geometries foreach (var g in node.Geometries) { var g3d = new Geometry(device, g, node.Skinning != null); g3d.Node = this; Model.Geometries.Add(g3d); } //Get Skinning Data if (node.Skinning != null) { Skinning = new SkinData() { BindMatrix = node.Skinning.BindMatrix, InverseBindMatrix = new List <Matrix>(node.Skinning.InverseBinding), JointNames = new List <string>(node.Skinning.JointNames), }; } }