forked from izrik/FbxSharp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFbxAnimEvaluator.cs
110 lines (94 loc) · 4.44 KB
/
FbxAnimEvaluator.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
namespace FbxSharp
{
public class FbxAnimEvaluator : FbxObject
{
public static readonly FbxAnimEvaluator Default = new FbxAnimEvalClassic();
public FbxMatrix GetNodeGlobalTransform(FbxNode pNode)
{
return GetNodeGlobalTransform(pNode, FbxTime.Infinite);
}
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;
}
public FbxMatrix GetNodeLocalTransform(FbxNode pNode)
{
return GetNodeLocalTransform(pNode, FbxTime.Infinite);
}
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;
}
public FbxVector4 GetNodeLocalTranslation(FbxNode pNode)
{
return GetNodeLocalTranslation(pNode, FbxTime.Infinite);
}
public FbxVector4 GetNodeLocalTranslation(FbxNode pNode, FbxTime pTime, FbxNode.EPivotSet pPivotSet=FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
{
return GetPropertyValue<FbxVector4>(pNode.LclTranslation, pTime, pForceEval);
}
public FbxVector4 GetNodeLocalRotation(FbxNode pNode)
{
return GetNodeLocalRotation(pNode, FbxTime.Infinite);
}
public FbxVector4 GetNodeLocalRotation(FbxNode pNode, FbxTime pTime, FbxNode.EPivotSet pPivotSet=FbxNode.EPivotSet.eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
{
return GetPropertyValue<FbxVector4>(pNode.LclRotation, pTime, pForceEval);
}
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 T GetPropertyValue<T>(FbxProperty pProperty, FbxTime pTime, bool pForceEval=false)
{
return pProperty.EvaluateValue<T>(pTime, pForceEval);
}
//public FbxPropertyValue GetPropertyValue(Property pProperty, FbxTime pTime, bool pForceEval=false)
//{
// throw new NotImplementedException();
//}
public FbxAnimCurveNode GetPropertyCurveNode(FbxProperty pProperty, FbxAnimLayer pAnimLayer)
{
throw new NotImplementedException();
}
public FbxTime ValidateTime(FbxTime pTime)
{
throw new NotImplementedException();
}
public void Reset()
{
throw new NotImplementedException();
}
public void Flush(FbxNode pNode)
{
throw new NotImplementedException();
}
public void Flush(FbxProperty pProperty)
{
throw new NotImplementedException();
}
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);
}
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();
}
}
}