public override PShape2D CreateShape(GameObject root)
        {
            Fix64 radius = CalculateRadius();
            Fix64 height = CalculateHeight();

            CalculatePoints(height, radius, ref v1, ref v2);

            if (v1 == Fix64Vec2.zero || v2 == Fix64Vec2.zero)
            {
                return(null);
            }
            else
            {
                Fix64     angle  = Fix64.zero;
                Fix64Vec2 center = Fix64Vec2.zero;

                if (gameObject != root)
                {
                    angle  = Fix64.DegToRad(_pTransform.localEulerAngles.z);
                    center = (Fix64Vec2)_pTransform.localPosition;
                }

                return(Parallel2D.CreateCapsule(v1, v2, radius, center, angle));
            }
        }