public void Clone(Arbiter arb)
        {
            body1 = arb.body1;
            body2 = arb.body2;

            contactList.Clear();

            for (index = 0, length = arb.contactList.Count; index < length; index++)
            {
                ContactClone contactClone = poolContactClone.GetNew();
                contactClone.Clone(arb.contactList[index]);

                contactList.Add(contactClone);
            }
        }
        public void Restore(Arbiter arb)
        {
            arb.body1 = body1;
            arb.body2 = body2;

            arb.contactList.Clear();

            for (index = 0, length = contactList.Count; index < length; index++)
            {
                ContactClone cc = contactList[index];

                Contact contact = Contact.Pool.GetNew();
                cc.Restore(contact);

                arb.contactList.Add(contact);
            }
        }