public void Clone(CollisionSystemPersistentSAP cs) { bodyList.Clear(); for (index = 0, length = cs.bodyList.Count; index < length; index++) { bodyList.Add(cs.bodyList[index]); } axis1.Clear(); for (index = 0, length = cs.axis1.Count; index < length; index++) { SweetPointClone sPointClone = poolSweetPointClone.GetNew(); sPointClone.Clone(cs.axis1[index]); axis1.Add(sPointClone); } axis2.Clear(); for (index = 0, length = cs.axis2.Count; index < length; index++) { SweetPointClone sPointClone = poolSweetPointClone.GetNew(); sPointClone.Clone(cs.axis2[index]); axis2.Add(sPointClone); } axis3.Clear(); for (index = 0, length = cs.axis3.Count; index < length; index++) { SweetPointClone sPointClone = poolSweetPointClone.GetNew(); sPointClone.Clone(cs.axis3[index]); axis3.Add(sPointClone); } fullOverlaps.Clear(); for (index = 0, length = cs.fullOverlaps.Count; index < length; index++) { fullOverlaps.Add(cs.fullOverlaps[index]); } activeList.Clear(); for (index = 0, length = cs.activeList.Count; index < length; index++) { activeList.Add(cs.activeList[index]); } swapOrder = cs.swapOrder; }
public void Restore(CollisionSystemPersistentSAP cs) { cs.bodyList.Clear(); cs.bodyList.AddRange(bodyList); cs.axis1.Clear(); for (index = 0, length = axis1.Count; index < length; index++) { SweetPointClone sp = axis1[index]; SweepPoint spN = new SweepPoint(null, false, 0); sp.Restore(spN); cs.axis1.Add(spN); } cs.axis2.Clear(); for (index = 0, length = axis2.Count; index < length; index++) { SweetPointClone sp = axis2[index]; SweepPoint spN = new SweepPoint(null, false, 0); sp.Restore(spN); cs.axis2.Add(spN); } cs.axis3.Clear(); for (index = 0, length = axis3.Count; index < length; index++) { SweetPointClone sp = axis3[index]; SweepPoint spN = new SweepPoint(null, false, 0); sp.Restore(spN); cs.axis3.Add(spN); } cs.fullOverlaps.Clear(); cs.fullOverlaps.AddRange(fullOverlaps); cs.activeList.Clear(); cs.activeList.AddRange(activeList); cs.swapOrder = swapOrder; }