Exemple #1
0
 /// <summary> Utility method for applying pose animation </summary>
 public void ApplyPoseToVertexData(Pose pose, VertexData data, float influence)
 {
     if (targetMode == VertexAnimationTargetMode.Hardware)
     {
         // Hardware
         // If target mode is hardware, need to bind our pose buffer
         // to a target texcoord
         Debug.Assert(data.HWAnimationDataList.Count == 0,
                      "Haven't set up hardware vertex animation elements!");
         // no use for TempBlendedBufferInfo here btw
         // Set pose target as required
         int hwIndex = data.HWAnimDataItemsUsed++;
         // If we try to use too many poses, ignore extras
         if (hwIndex < data.HWAnimationDataList.Count)
         {
             HardwareAnimationData animData = data.HWAnimationDataList[hwIndex];
             data.vertexBufferBinding.SetBinding(animData.TargetVertexElement.Source,
                                                 pose.GetHardwareVertexBuffer(data.vertexCount));
             // save final influence in parametric
             animData.Parametric = influence;
         }
     }
     else
     {
         // Software
         Mesh.SoftwareVertexPoseBlend(influence, pose.VertexOffsetMap, data);
     }
 }
Exemple #2
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(HardwareAnimationData obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }