public void RegisterEndCallback(ContactCallbackType type, Body body, EndContactCallback callback)
        {
            switch (type)
            {
            case ContactCallbackType.FixtureAEnd:
                _fixtureAEndCallbacks.Add(body, callback);
                break;

            case ContactCallbackType.FixtureBEnd:
                _fixtureBEndCallbacks.Add(body, callback);
                break;
            }
        }
        public void RegisterBeginCallback(ContactCallbackType type, Body body, BeginContactCallback callback)
        {
            switch (type)
            {
            case ContactCallbackType.FixtureABegin:
                _fixtureABeginCallbacks.Add(body, callback);
                break;

            case ContactCallbackType.FixtureBBegin:
                _fixtureBBeginCallbacks.Add(body, callback);
                break;
            }
        }
        public void UnregisterCallback(ContactCallbackType type, Body body)
        {
            switch (type)
            {
            case ContactCallbackType.FixtureABegin:
                _fixtureABeginCallbacks.Remove(body);
                break;

            case ContactCallbackType.FixtureAEnd:
                _fixtureAEndCallbacks.Remove(body);
                break;

            case ContactCallbackType.FixtureBBegin:
                _fixtureBBeginCallbacks.Remove(body);
                break;

            case ContactCallbackType.FixtureBEnd:
                _fixtureBEndCallbacks.Remove(body);
                break;
            }
        }