public LayerElement BuildLayerElementTangent(FbxNode node) { LayerElementTangent layer = new LayerElementTangent(); foreach (FbxNode n in node) { switch (n.Name) { case "Tangents": layer.Tangents = this.arrToXYZ(this.arrToDoubleArray(n.Value as IEnumerable)); break; case "TangentsW": layer.Weights.AddRange(this.arrToDoubleArray(n.Value as IEnumerable)); break; default: if (!this.isCommonLayerField(layer, n)) { this.notify($"Unknow node while building LayerElement with name {n.Name}"); } break; } } return(layer); }
public FbxNode buildLayerElementTangent(LayerElementTangent layer) { FbxNode node = new FbxNode("LayerElementTangent", 0); node.Nodes.Add(new FbxNode("Version", 102)); buildLayerElement(node, layer); node.Nodes.Add(new FbxNode("Tangents", layer.Tangents.SelectMany(x => x.GetComponents()).ToArray())); return(node); }