static public FBXAnimationCurve[] GenerateAnimationCurveTrio(FBXAnimationNode AnimationCurveNode) { var curveNodes = AnimationCurveNode.AnimationCurves; if (curveNodes != null) { if (curveNodes.Count == 3) { return new FBXAnimationCurve[] { new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[0]), new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[1]), new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[2]) } } ; else if (curveNodes.Count == 2) { return new FBXAnimationCurve[] { new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[0]), new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[1]) } } ; else if (curveNodes.Count == 1) { return new FBXAnimationCurve[] { new FBXAnimationCurve(AnimationCurveNode.AnimationCurves[0]) } } ; } return(new FBXAnimationCurve[] { }); } }
/// <summary> /// /// </summary> /// <param name="PositionAnimationCurveNode">The AnimationCurveNode node not the AnimationCurve node</param> /// <param name="RotationAnimationCurveNode">The AnimationCurveNode node not the AnimationCurve node</param> /// <param name="ScaleAnimationCurveNode">The AnimationCurveNode node not the AnimationCurve node</param> public FBXBoneAnimation(string BoneName, FBXAnimationNode PositionAnimationCurveNode, FBXAnimationNode RotationAnimationCurveNode, FBXAnimationNode ScaleAnimationCurveNode) { this.BoneName = BoneName; PositionCurves = GenerateAnimationCurveTrio(PositionAnimationCurveNode); RotationCurves = GenerateAnimationCurveTrio(RotationAnimationCurveNode); ScaleCurves = GenerateAnimationCurveTrio(ScaleAnimationCurveNode); }