internal virtual void Reset() { FixtureA = default; FixtureB = default; Flags = default; Friction = default; ChildIndexA = default; ChildIndexB = default; Manifold = default; Node = default; SimpleObjectPool <ContactEdge> .Shared.Return(NodeA); SimpleObjectPool <ContactEdge> .Shared.Return(NodeB); NodeA = default; NodeB = default; Restitution = default; TangentSpeed = default; Toi = default; ToiCount = default; }
internal void Initialize(Fixture fixtureA, int indexA, Fixture fixtureB, int indexB) { Flags = ContactFlag.EnabledFlag; FixtureA = fixtureA; FixtureB = fixtureB; NodeA = SimpleObjectPool <ContactEdge> .Shared.Get(); NodeB = SimpleObjectPool <ContactEdge> .Shared.Get(); ChildIndexA = indexA; ChildIndexB = indexB; ToiCount = 0; Friction = MixFriction(FixtureA.Friction, FixtureB.Friction); Restitution = MixRestitution(FixtureA.Restitution, FixtureB.Restitution); TangentSpeed = 0.0f; }