private bool velocityCorrection()
        {
            if (((AdditionalFixtureData)owner.getBoundsFixture().UserData).isTouching)
            {
                Console.WriteLine("is Touching");
            }
            if (owner.body.LinearVelocity == Vector2.Zero)
            {
                return(false);
            }
            if (((AdditionalFixtureData)owner.getBoundsFixture().UserData).isTouching)
            {
                Vector2 velocityVec = owner.body.LinearVelocity;
                Console.WriteLine("veclocity correction raw " + velocityVec);

                velocityVec.Normalize();

                Console.WriteLine("veclocity correction normalize " + velocityVec);

                velocityVec *= owner.velocity * Bloodbender.pixelToMeter;
                Console.WriteLine("veclocity correction to " + velocityVec + " speed : " + velocityVec.Length());
                owner.body.LinearVelocity = velocityVec;

                return(true);
            }
            return(false);
        }
        private float distanceWithPhysicObj(PhysicObj obj)
        {
            if (obj == null)
            {
                return(-1);
            }
            Fixture proxyAfix = owner.getBoundsFixture();
            Fixture proxyBfix = obj.getBoundsFixture();

            if (proxyAfix == null || proxyBfix == null)
            {
                return(-1);
            }

            DistanceProxy proxyA = new DistanceProxy();

            proxyA.Set(proxyAfix.Shape, 0);
            DistanceProxy proxyB = new DistanceProxy();

            proxyB.Set(proxyBfix.Shape, 1);
            DistanceInput distInput = new DistanceInput();

            distInput.ProxyA = proxyA;
            distInput.ProxyB = proxyB;
            Transform transformA;

            owner.body.GetTransform(out transformA);
            Transform transformB;

            obj.body.GetTransform(out transformB);
            distInput.TransformA = transformA;
            distInput.TransformB = transformB;

            DistanceOutput distout      = new DistanceOutput();
            SimplexCache   simplexCache = new SimplexCache();

            Distance.ComputeDistance(out distout, out simplexCache, distInput);

            return(distout.Distance);
        }