private void CachePoseInformation() { for (int i = 0; i < Poses.Length; i++) { _poseInformations[i] = new PoseInformation(); InitializePose((Vector3[])Poses[i].vertices.Clone(), (Vector3[])Poses[i].normals.Clone(), _poseInformations[i]); } }
private void InitializePose(Vector3[] poseVertices, Vector3[] poseNormals, PoseInformation poseInformation) { var deltaInfo = new List <DeltaInformation>(); for (int i = 0; i < poseVertices.Length; i++) { var vertexDelta = poseVertices[i] - _baseVertices[i]; if (!Mathf.Approximately(0f, vertexDelta.sqrMagnitude)) { deltaInfo.Add( new DeltaInformation { VertexIndex = i, VertexDelta = vertexDelta, NormalDelta = poseNormals[i] - _baseNormals[i], }); } } poseInformation.DeltaInformations = deltaInfo.ToArray(); }