public FbxMatrix GetNodeLocalTransform(FbxNode pNode, FbxTime pTime, FbxNode.EPivotSet pPivotSet = FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget = false, bool pForceEval = false) { var translation = GetNodeLocalTranslation(pNode, pTime, pPivotSet, pApplyTarget, pForceEval); var rotation = GetNodeLocalRotation(pNode, pTime, pPivotSet, pApplyTarget, pForceEval); var scaling = GetNodeLocalScaling(pNode, pTime, pPivotSet, pApplyTarget, pForceEval); var m = new FbxMatrix(translation, rotation, scaling); return(m); }
//Add a child node and its underlying node tree. public bool AddChild(FbxNode pNode) { if (pNode == null) { return(false); } this.ConnectSrcObject(pNode); return(true); }
void DisconnectScene(FbxNode child) { if (child.Scene != null) { child.DisconnectDstObject(child.Scene); } foreach (var subchild in child.ChildNodes) { DisconnectScene(subchild); } }
public FbxMatrix GetNodeGlobalTransform(FbxNode pNode, FbxTime pTime, FbxNode.EPivotSet pPivotSet = FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget = false, bool pForceEval = false) { var m = GetNodeLocalTransform(pNode, pTime, pPivotSet, pApplyTarget, pForceEval); if (pNode.GetParent() != null) { var p = GetNodeGlobalTransform(pNode.GetParent(), pTime, pPivotSet, pApplyTarget, pForceEval); m = p * m; } return(m); }
protected void _PrintFbxNodeAttribute(FbxNodeAttribute obj, TextWriter writer) { writer.WriteLine(" AttributeType = {0}", obj.GetAttributeType()); int i; writer.WriteLine(" NodeCount = {0}", obj.GetNodeCount()); for (i = 0; i < obj.GetNodeCount(); i++) { FbxNode node = obj.GetNode(i); writer.WriteLine(" #{0} {1}", i, PrintObjectID(node)); } }
public FbxScene(string name = "") : base(name) { RootNode = new FbxNode(); Poses = SrcObjects.CreateCollectionView <FbxPose>(); Materials = SrcObjects.CreateCollectionView <FbxSurfaceMaterial>(); Textures = SrcObjects.CreateCollectionView <FbxTexture>(); Nodes = SrcObjects.CreateCollectionView <FbxNode>(); SrcObjects.Add(new FbxGlobalSettings()); SetAnimationEvaluator(new FbxAnimEvaluator()); }
public bool AddNode(FbxNode pNode) { if (!Nodes.Contains(pNode)) { ConnectSrcObject(pNode); foreach (var child in pNode.ChildNodes) { AddNode(child); } return(true); } return(false); }
public bool RemoveNode(FbxNode pNode) { if (Nodes.Contains(pNode)) { DisconnectSrcObject(pNode); foreach (var child in pNode.ChildNodes) { RemoveNode(child); } return(true); } return(false); }
public void SetLink(FbxNode pNode) { if (GetLink() == pNode) { return; } if (GetLink() != null) { DisconnectSrcObject(GetLink()); } ConnectSrcObject(pNode); }
public int Add(FbxNode pNode, FbxMatrix pMatrix, bool pLocalMatrix = false /*, bool pMultipleBindPose=true*/) { var match = poseInfos.FindIndex(pi => pi.Node == pNode); if (match >= 0) { if (poseInfos[match].Matrix != pMatrix) { return(-1); } return(match); } var p = new FbxPoseInfo(pNode, pMatrix, pLocalMatrix); poseInfos.Add(p); return(poseInfos.IndexOf(p)); }
protected void AcceptNode(FbxNode node, ISet <object> visitedObjects) { AcceptFbxObject(node, visitedObjects); Visit(node); if (node.GetParent() != null) { Accept(node.GetParent(), visitedObjects); } int i; for (i = 0; i < node.GetChildCount(); i++) { Accept(node.GetChild(i), visitedObjects); } //if (node.GetTarget() != null) //{ // Accept(node.GetTarget()); //} //if (node.GetTargetUp() != null) //{ // Accept(node.GetTargetUp()); //} for (i = 0; i < node.GetNodeAttributeCount(); i++) { Accept(node.GetNodeAttributeByIndex(i), visitedObjects); } for (i = 0; i < node.GetMaterialCount(); i++) { Accept(node.GetMaterial(i), visitedObjects); } }
public virtual void Visit(FbxNode node) { }
public void SetAssociateModel(FbxNode pNode) { throw new NotImplementedException(); }
public FbxVector4 GetNodeLocalRotation(FbxNode pNode) { return(GetNodeLocalRotation(pNode, FbxTime.Infinite)); }
public FbxVector4 GetNodeLocalScaling(FbxNode pNode) { return(GetNodeLocalScaling(pNode, FbxTime.Infinite)); }
public FbxVector4 GetNodeLocalScaling(FbxNode pNode, FbxTime pTime, FbxNode.EPivotSet pPivotSet = FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget = false, bool pForceEval = false) { return(GetPropertyValue <FbxVector4>(pNode.LclScaling, pTime, pForceEval)); }
public FbxMatrix GetNodeGlobalTransform(FbxNode pNode) { return(GetNodeGlobalTransform(pNode, FbxTime.Infinite)); }
public FbxPoseInfo(FbxNode node, FbxMatrix matrix, bool matrixIsLocal = false) { Node = node; Matrix = matrix; MatrixIsLocal = matrixIsLocal; }
protected void AcceptFbxNode(FbxNode obj, ISet <object> visitedObjects = null) { Visit(obj); _AcceptFbxNode(obj, visitedObjects); }
public virtual void Visit(FbxNode obj) { }
public void ComputeLocalTRSFromGlobal(out FbxVector4 pRetLT, out FbxVector4 pRetLR, out FbxVector4 pRetLS, FbxNode pNode, FbxMatrix pGX, FbxTime pTime, FbxNode.EPivotSet pPivotSet = FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget = false, bool pForceEval = false) { throw new NotImplementedException(); }
public void Flush(FbxNode pNode) { throw new NotImplementedException(); }
protected void PrintFbxNode(FbxNode obj, TextWriter writer) { _PrintFbxNode(obj, writer); }
public void ComputeLocalTRSFromGlobal(out FbxVector4 pRetLT, out FbxVector4 pRetLR, out FbxVector4 pRetLS, FbxNode pNode, FbxMatrix pGX) { ComputeLocalTRSFromGlobal(out pRetLT, out pRetLR, out pRetLS, pNode, pGX, FbxTime.Infinite); }