public FBXAnimCurveNode(FBXFileNode node) { Id = node.Id; Name = node.NodeName; Attr = Name; var propsNode = node.Nodes.Where(a => a.Name == "Properties70").FirstOrDefault(); if (Name.Contains("T") || Name.Contains("R") || Name.Contains("S")) { foreach (var propNode in propsNode.Nodes) { foreach (var prop in propNode.Properties) { if (prop.Data is string && (prop.Data as string).Contains("X")) { AttrX = true; ValueX = (float)(double)propNode.Properties[4].Data; } else if (prop.Data is string && (prop.Data as string).Contains("Y")) { AttrY = true; ValueY = (float)(double)propNode.Properties[4].Data; } else if (prop.Data is string && (prop.Data as string).Contains("Z")) { AttrZ = true; ValueZ = (float)(double)propNode.Properties[4].Data; } } } } }
public FBXAnimCurveNode(FBXFileNode node, FBXFile file, List <string> bones) { Id = node.Id; Name = node.NodeName; Attr = Name; var propsNode = node.Nodes.Where(a => a.Name == "Properties70").FirstOrDefault(); if (Name.Contains("T") || Name.Contains("R") || Name.Contains("S")) { foreach (var propNode in propsNode.Nodes) { foreach (var prop in propNode.Properties) { if (prop.Data is string && (prop.Data as string).Contains("X")) { AttrX = true; ValueX = (float)(double)propNode.Properties[4].Data; } else if (prop.Data is string && (prop.Data as string).Contains("Y")) { AttrY = true; ValueY = (float)(double)propNode.Properties[4].Data; } else if (prop.Data is string && (prop.Data as string).Contains("Z")) { AttrZ = true; ValueZ = (float)(double)propNode.Properties[4].Data; } } } } ContainerIndices = file.Connections.Where(a => a.Src == node.Id).Select(a => a.Dst).ToArray(); CurveIdx = file.Connections.Where(a => a.Dst == node.Id).Select(a => a.Src).ToArray(); for (int i = ContainerIndices.Length - 1; i >= 0; i--) { // gets the real id of the bone /*var boneId = bones.TakeWhile(a => a.Id != ContainerIndices[i]).Count(); * * if(boneId >= 0) * { * ContainerBoneId = boneId; * ContainerId = ContainerIndices[i]; * * break; * }*/ } }
public FBXAnimCurve(FBXFileNode node) { Id = node.Id; Name = node.Name; Default = (double)node.Nodes.Where(a => a.Name == "Default").FirstOrDefault() .Properties[0].Data; KeyVer = (int)node.Nodes.Where(a => a.Name == "KeyVer").FirstOrDefault() .Properties[0].Data; KeyTime = (long[])node.Nodes.Where(a => a.Name == "KeyTime").FirstOrDefault() .Properties[0].Data; KeyValueFloat = (float[])node.Nodes.Where(a => a.Name == "KeyValueFloat").FirstOrDefault() .Properties[0].Data; KeyAttrFlags = (int[])node.Nodes.Where(a => a.Name == "KeyAttrFlags").FirstOrDefault() .Properties[0].Data; KeyAttrDataFloat = (float[])node.Nodes.Where(a => a.Name == "KeyAttrDataFloat").FirstOrDefault() .Properties[0].Data; KeyAttrRefCount = (int[])node.Nodes.Where(a => a.Name == "KeyAttrRefCount").FirstOrDefault() .Properties[0].Data; }
public FBXAnimStack(FBXFileNode node) { Id = node.Id; Name = node.Name; }
public FBXAnimLayer(FBXFileNode node) { Id = node.Id; Name = node.Name; }