예제 #1
0
        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;
        }
예제 #2
0
        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;
        }