Blob Blame History Raw
diff --git a/library/Box2D/Box2D.py b/library/Box2D/Box2D.py
index 75c029a..2d065f0 100644
--- a/library/Box2D/Box2D.py
+++ b/library/Box2D/Box2D.py
@@ -1,19 +1,26 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 3.0.7
+# Version 3.0.12
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
 
-
-
-
-
-from sys import version_info
-if version_info >= (3, 0, 0):
+from sys import version_info as _swig_python_version_info
+if _swig_python_version_info >= (3, 0, 0):
     new_instancemethod = lambda func, inst, cls: _Box2D.SWIG_PyInstanceMethod_New(func)
 else:
     from new import instancemethod as new_instancemethod
-if version_info >= (2, 6, 0):
+if _swig_python_version_info >= (2, 7, 0):
+    def swig_import_helper():
+        import importlib
+        pkg = __name__.rpartition('.')[0]
+        mname = '.'.join((pkg, '_Box2D')).lstrip('.')
+        try:
+            return importlib.import_module(mname)
+        except ImportError:
+            return importlib.import_module('_Box2D')
+    _Box2D = swig_import_helper()
+    del swig_import_helper
+elif _swig_python_version_info >= (2, 6, 0):
     def swig_import_helper():
         from os.path import dirname
         import imp
@@ -23,22 +30,27 @@ if version_info >= (2, 6, 0):
         except ImportError:
             import _Box2D
             return _Box2D
-        if fp is not None:
-            try:
-                _mod = imp.load_module('_Box2D', fp, pathname, description)
-            finally:
+        try:
+            _mod = imp.load_module('_Box2D', fp, pathname, description)
+        finally:
+            if fp is not None:
                 fp.close()
-            return _mod
+        return _mod
     _Box2D = swig_import_helper()
     del swig_import_helper
 else:
     import _Box2D
-del version_info
+del _swig_python_version_info
+
 try:
     _swig_property = property
 except NameError:
     pass  # Python < 2.2 doesn't have 'property'.
 
+try:
+    import builtins as __builtin__
+except ImportError:
+    import __builtin__
 
 def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
     if (name == "thisown"):
@@ -60,37 +72,22 @@ def _swig_setattr(self, class_type, name, value):
     return _swig_setattr_nondynamic(self, class_type, name, value, 0)
 
 
-def _swig_getattr_nondynamic(self, class_type, name, static=1):
+def _swig_getattr(self, class_type, name):
     if (name == "thisown"):
         return self.this.own()
     method = class_type.__swig_getmethods__.get(name, None)
     if method:
         return method(self)
-    if (not static):
-        return object.__getattr__(self, name)
-    else:
-        raise AttributeError(name)
-
-def _swig_getattr(self, class_type, name):
-    return _swig_getattr_nondynamic(self, class_type, name, 0)
+    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
 
 
 def _swig_repr(self):
     try:
         strthis = "proxy of " + self.this.__repr__()
-    except:
+    except __builtin__.Exception:
         strthis = ""
     return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 
-try:
-    _object = object
-    _newclass = 1
-except AttributeError:
-    class _object:
-        pass
-    _newclass = 0
-
-
 
 def _swig_setattr_nondynamic_method(set):
     def set_attr(self, name, value):
@@ -106,7 +103,7 @@ def _swig_setattr_nondynamic_method(set):
 try:
     import weakref
     weakref_proxy = weakref.proxy
-except:
+except __builtin__.Exception:
     weakref_proxy = lambda x: x
 
 
@@ -431,8 +428,6 @@ def b2CheckVertices(vertices, count, additional_checks=True):
 def b2CheckPolygon(shape, additional_checks=True):
     """b2CheckPolygon(b2PolygonShape shape, bool additional_checks=True) -> bool"""
     return _Box2D.b2CheckPolygon(shape, additional_checks)
-
-_Box2D.RAND_LIMIT_swigconstant(_Box2D)
 RAND_LIMIT = _Box2D.RAND_LIMIT
 
 def b2Random(*args):
@@ -564,7 +559,8 @@ def b2GetPointStates(manifold1, manifold2):
     """
     return _Box2D.b2GetPointStates(manifold1, manifold2)
 class b2ContactPoint(object):
-    """Proxy of C++ b2ContactPoint class"""
+    """Proxy of C++ b2ContactPoint class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -640,7 +636,8 @@ def b2TimeOfImpact(shapeA=None, idxA=0, shapeB=None, idxB=0, sweepA=None, sweepB
     return (out.state, out.t)
 
 class b2AssertException(object):
-    """Proxy of C++ b2AssertException class"""
+    """Proxy of C++ b2AssertException class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -664,71 +661,27 @@ b2AssertException.__hash__ = new_instancemethod(_Box2D.b2AssertException___hash_
 b2AssertException_swigregister = _Box2D.b2AssertException_swigregister
 b2AssertException_swigregister(b2AssertException)
 
-
-_Box2D.b2_pi_swigconstant(_Box2D)
 b2_pi = _Box2D.b2_pi
-
-_Box2D.b2_maxManifoldPoints_swigconstant(_Box2D)
 b2_maxManifoldPoints = _Box2D.b2_maxManifoldPoints
-
-_Box2D.b2_maxPolygonVertices_swigconstant(_Box2D)
 b2_maxPolygonVertices = _Box2D.b2_maxPolygonVertices
-
-_Box2D.b2_aabbExtension_swigconstant(_Box2D)
 b2_aabbExtension = _Box2D.b2_aabbExtension
-
-_Box2D.b2_aabbMultiplier_swigconstant(_Box2D)
 b2_aabbMultiplier = _Box2D.b2_aabbMultiplier
-
-_Box2D.b2_linearSlop_swigconstant(_Box2D)
 b2_linearSlop = _Box2D.b2_linearSlop
-
-_Box2D.b2_angularSlop_swigconstant(_Box2D)
 b2_angularSlop = _Box2D.b2_angularSlop
-
-_Box2D.b2_polygonRadius_swigconstant(_Box2D)
 b2_polygonRadius = _Box2D.b2_polygonRadius
-
-_Box2D.b2_maxSubSteps_swigconstant(_Box2D)
 b2_maxSubSteps = _Box2D.b2_maxSubSteps
-
-_Box2D.b2_maxTOIContacts_swigconstant(_Box2D)
 b2_maxTOIContacts = _Box2D.b2_maxTOIContacts
-
-_Box2D.b2_velocityThreshold_swigconstant(_Box2D)
 b2_velocityThreshold = _Box2D.b2_velocityThreshold
-
-_Box2D.b2_maxLinearCorrection_swigconstant(_Box2D)
 b2_maxLinearCorrection = _Box2D.b2_maxLinearCorrection
-
-_Box2D.b2_maxAngularCorrection_swigconstant(_Box2D)
 b2_maxAngularCorrection = _Box2D.b2_maxAngularCorrection
-
-_Box2D.b2_maxTranslation_swigconstant(_Box2D)
 b2_maxTranslation = _Box2D.b2_maxTranslation
-
-_Box2D.b2_maxTranslationSquared_swigconstant(_Box2D)
 b2_maxTranslationSquared = _Box2D.b2_maxTranslationSquared
-
-_Box2D.b2_maxRotation_swigconstant(_Box2D)
 b2_maxRotation = _Box2D.b2_maxRotation
-
-_Box2D.b2_maxRotationSquared_swigconstant(_Box2D)
 b2_maxRotationSquared = _Box2D.b2_maxRotationSquared
-
-_Box2D.b2_baumgarte_swigconstant(_Box2D)
 b2_baumgarte = _Box2D.b2_baumgarte
-
-_Box2D.b2_toiBaugarte_swigconstant(_Box2D)
 b2_toiBaugarte = _Box2D.b2_toiBaugarte
-
-_Box2D.b2_timeToSleep_swigconstant(_Box2D)
 b2_timeToSleep = _Box2D.b2_timeToSleep
-
-_Box2D.b2_linearSleepTolerance_swigconstant(_Box2D)
 b2_linearSleepTolerance = _Box2D.b2_linearSleepTolerance
-
-_Box2D.b2_angularSleepTolerance_swigconstant(_Box2D)
 b2_angularSleepTolerance = _Box2D.b2_angularSleepTolerance
 
 def b2Alloc(size):
@@ -752,6 +705,7 @@ def b2Log(string):
     return _Box2D.b2Log(string)
 class b2Version(object):
     """Version numbering scheme. See http://en.wikipedia.org/wiki/Software_versioning"""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     major = _swig_property(_Box2D.b2Version_major_get, _Box2D.b2Version_major_set)
@@ -802,6 +756,7 @@ def b2InvSqrt(x):
     return _Box2D.b2InvSqrt(x)
 class b2Vec2(object):
     """A 2D column vector."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1068,6 +1023,7 @@ b2Vec2_swigregister(b2Vec2)
 
 class b2Vec3(object):
     """A 2D column vector with 3 elements."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1287,6 +1243,7 @@ b2Vec3_swigregister(b2Vec3)
 
 class b2Mat22(object):
     """A 2-by-2 matrix. Stored in column-major order."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1414,6 +1371,7 @@ b2Mat22_swigregister(b2Mat22)
 
 class b2Mat33(object):
     """A 3-by-3 matrix. Stored in column-major order."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1523,7 +1481,8 @@ b2Mat33_swigregister = _Box2D.b2Mat33_swigregister
 b2Mat33_swigregister(b2Mat33)
 
 class b2Rot(object):
-    """Proxy of C++ b2Rot class"""
+    """Proxy of C++ b2Rot class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1584,6 +1543,7 @@ b2Rot_swigregister(b2Rot)
 
 class b2Transform(object):
     """A transform contains translation and rotation. It is used to represent the position and orientation of rigid frames."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1660,6 +1620,7 @@ b2Transform_swigregister(b2Transform)
 
 class b2Sweep(object):
     """This describes the motion of a body/shape for TOI computation. Shapes are defined with respect to the body origin, which may no coincide with the center of mass. However, to support dynamics we must interpolate the center of mass position."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -1822,6 +1783,7 @@ def b2IsPowerOfTwo(x):
     return _Box2D.b2IsPowerOfTwo(x)
 class b2ContactFeature(object):
     """The features that intersect to form the contact point This must be 4 bytes or less."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     e_vertex = _Box2D.b2ContactFeature_e_vertex
@@ -1858,7 +1820,8 @@ b2Vec2_zero = b2Globals.b2Vec2_zero
 b2_nullFeature = b2Globals.b2_nullFeature
 
 class b2ContactID(object):
-    """Proxy of C++ b2ContactID class"""
+    """Proxy of C++ b2ContactID class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     cf = _swig_property(_Box2D.b2ContactID_cf_get, _Box2D.b2ContactID_cf_set)
@@ -1888,6 +1851,7 @@ b2ContactID_swigregister(b2ContactID)
 
 class b2ManifoldPoint(object):
     """A manifold point is a contact point belonging to a contact manifold. It holds details related to the geometry and dynamics of the contact points. The local point usage depends on the manifold type: -e_circles: the local center of circleB -e_faceA: the local center of cirlceB or the clip point of polygonB -e_faceB: the clip point of polygonA This structure is stored across time steps, so we keep it small. Note: the impulses are used for internal caching and may not provide reliable contact forces, especially for high speed collisions."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     localPoint = _swig_property(_Box2D.b2ManifoldPoint_localPoint_get, _Box2D.b2ManifoldPoint_localPoint_set)
@@ -1923,6 +1887,7 @@ class b2Manifold(object):
     clip point versus plane with radius
     point versus point with radius (circles) The local point usage depends on the manifold type: -e_circles: the local center of circleA -e_faceA: the center of faceA -e_faceB: the center of faceB Similarly the local normal usage: -e_circles: not used -e_faceA: the normal on polygonA -e_faceB: the normal on polygonB We store contacts in this way so that position correction can account for movement, which is critical for continuous physics. All contact scenarios must be expressed in one of these types. This structure is stored across time steps, so we keep it small.
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     e_circles = _Box2D.b2Manifold_e_circles
@@ -1968,6 +1933,7 @@ b2Manifold_swigregister(b2Manifold)
 
 class b2WorldManifold(object):
     """This is used to compute the current state of a contact manifold."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -2015,20 +1981,13 @@ b2WorldManifold.__get_points = new_instancemethod(_Box2D.b2WorldManifold___get_p
 b2WorldManifold_swigregister = _Box2D.b2WorldManifold_swigregister
 b2WorldManifold_swigregister(b2WorldManifold)
 
-
-_Box2D.b2_nullState_swigconstant(_Box2D)
 b2_nullState = _Box2D.b2_nullState
-
-_Box2D.b2_addState_swigconstant(_Box2D)
 b2_addState = _Box2D.b2_addState
-
-_Box2D.b2_persistState_swigconstant(_Box2D)
 b2_persistState = _Box2D.b2_persistState
-
-_Box2D.b2_removeState_swigconstant(_Box2D)
 b2_removeState = _Box2D.b2_removeState
 class b2ClipVertex(object):
     """Used for computing contact manifolds."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     v = _swig_property(_Box2D.b2ClipVertex_v_get, _Box2D.b2ClipVertex_v_set)
@@ -2058,6 +2017,7 @@ b2ClipVertex_swigregister(b2ClipVertex)
 
 class b2RayCastInput(object):
     """Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1)."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     p1 = _swig_property(_Box2D.b2RayCastInput_p1_get, _Box2D.b2RayCastInput_p1_set)
@@ -2088,6 +2048,7 @@ b2RayCastInput_swigregister(b2RayCastInput)
 
 class b2RayCastOutput(object):
     """Ray-cast output data. The ray hits at p1 + fraction * (p2 - p1), where p1 and p2 come from  b2RayCastInput."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     normal = _swig_property(_Box2D.b2RayCastOutput_normal_get, _Box2D.b2RayCastOutput_normal_set)
@@ -2117,6 +2078,7 @@ b2RayCastOutput_swigregister(b2RayCastOutput)
 
 class b2AABB(object):
     """An axis aligned bounding box."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -2282,7 +2244,8 @@ def b2TestOverlap(*args):
     """
     return _Box2D.b2TestOverlap(*args)
 class _b2Vec2Array(object):
-    """Proxy of C++ _b2Vec2Array class"""
+    """Proxy of C++ _b2Vec2Array class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -2321,11 +2284,10 @@ def _b2Vec2Array_frompointer(t):
     """_b2Vec2Array_frompointer(b2Vec2 t) -> _b2Vec2Array"""
     return _Box2D._b2Vec2Array_frompointer(t)
 
-
-_Box2D.e_convertVertices_swigconstant(_Box2D)
 e_convertVertices = _Box2D.e_convertVertices
 class b2Color(object):
     """Color for debug drawing. Each value has the range [0,1]."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -2482,6 +2444,7 @@ b2Color_swigregister(b2Color)
 
 class b2Draw(object):
     """Implement and register this class with a  b2Worldto provide debug drawing of physics entities in your game."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -2651,7 +2614,8 @@ b2Draw_swigregister = _Box2D.b2Draw_swigregister
 b2Draw_swigregister(b2Draw)
 
 class b2DrawExtended(b2Draw):
-    """Proxy of C++ b2DrawExtended class"""
+    """Proxy of C++ b2DrawExtended class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     convertVertices = _swig_property(_Box2D.b2DrawExtended_convertVertices_get, _Box2D.b2DrawExtended_convertVertices_set)
@@ -2778,6 +2742,7 @@ b2DrawExtended_swigregister(b2DrawExtended)
 
 class b2MassData(object):
     """This holds the mass data computed for a shape."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     mass = _swig_property(_Box2D.b2MassData_mass_get, _Box2D.b2MassData_mass_set)
@@ -2812,6 +2777,7 @@ b2_chunkArrayIncrement = b2Globals.b2_chunkArrayIncrement
 
 class b2Shape(object):
     """A shape is used for collision detection. You can create a shape however you like. Shapes used for simulation in  b2Worldare created automatically when a  b2Fixtureis created. Shapes may encapsulate a one or more child shapes."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -2984,6 +2950,7 @@ b2Shape_swigregister(b2Shape)
 
 class b2CircleShape(b2Shape):
     """A circle shape."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3014,6 +2981,7 @@ b2CircleShape_swigregister(b2CircleShape)
 
 class b2EdgeShape(b2Shape):
     """A line segment (edge) shape. These can be connected in chains or loops to other edge shapes. The connectivity information is used to ensure correct contact normals."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3115,6 +3083,7 @@ b2EdgeShape_swigregister(b2EdgeShape)
 
 class b2ChainShape(b2Shape):
     """A loop shape is a free form sequence of line segments that form a circular list. The loop may cross upon itself, but this is not recommended for smooth collision. The loop has double sided collision, so you can use inside and outside collision. Therefore, you may use any winding order. Since there may be many vertices, they are allocated using b2Alloc."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3265,6 +3234,7 @@ b2ChainShape_swigregister(b2ChainShape)
 
 class b2PolygonShape(b2Shape):
     """A convex polygon. It is assumed that the interior of the polygon is to the left of each edge. Polygons have a maximum number of vertices equal to b2_maxPolygonVertices. In most cases you should not need many vertices for a convex polygon."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3406,11 +3376,10 @@ b2PolygonShape.__set_vertices_internal = new_instancemethod(_Box2D.b2PolygonShap
 b2PolygonShape_swigregister = _Box2D.b2PolygonShape_swigregister
 b2PolygonShape_swigregister(b2PolygonShape)
 
-
-_Box2D.b2_nullNode_swigconstant(_Box2D)
 b2_nullNode = _Box2D.b2_nullNode
 class b2TreeNode(object):
-    """Proxy of C++ b2TreeNode class"""
+    """Proxy of C++ b2TreeNode class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3432,7 +3401,8 @@ b2TreeNode_swigregister = _Box2D.b2TreeNode_swigregister
 b2TreeNode_swigregister(b2TreeNode)
 
 class b2Pair(object):
-    """Proxy of C++ b2Pair class"""
+    """Proxy of C++ b2Pair class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     proxyIdA = _swig_property(_Box2D.b2Pair_proxyIdA_get, _Box2D.b2Pair_proxyIdA_set)
@@ -3462,6 +3432,7 @@ b2Pair_swigregister(b2Pair)
 
 class b2BroadPhase(object):
     """The broad-phase is used for computing pairs and performing volume queries and ray casts. This broad-phase does not persist pairs. Instead, this reports potentially new pairs. It is up to the client to consume the new pairs and to track subsequent overlap."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     e_nullProxy = _Box2D.b2BroadPhase_e_nullProxy
@@ -3580,6 +3551,7 @@ def b2PairLessThan(pair1, pair2):
     return _Box2D.b2PairLessThan(pair1, pair2)
 class b2DistanceProxy(object):
     """A distance proxy is used by the GJK algorithm. It encapsulates any shape."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3665,6 +3637,7 @@ b2DistanceProxy_swigregister(b2DistanceProxy)
 
 class b2DistanceInput(object):
     """Input for b2Distance. You have to option to use the shape radii in the computation. Even"""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     proxyA = _swig_property(_Box2D.b2DistanceInput_proxyA_get, _Box2D.b2DistanceInput_proxyA_set)
@@ -3697,6 +3670,7 @@ b2DistanceInput_swigregister(b2DistanceInput)
 
 class b2DistanceOutput(object):
     """Output for b2Distance."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     pointA = _swig_property(_Box2D.b2DistanceOutput_pointA_get, _Box2D.b2DistanceOutput_pointA_set)
@@ -3728,6 +3702,7 @@ b2DistanceOutput_swigregister(b2DistanceOutput)
 
 class b2TOIInput(object):
     """Input parameters for b2TimeOfImpact."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     proxyA = _swig_property(_Box2D.b2TOIInput_proxyA_get, _Box2D.b2TOIInput_proxyA_set)
@@ -3759,7 +3734,8 @@ b2TOIInput_swigregister = _Box2D.b2TOIInput_swigregister
 b2TOIInput_swigregister(b2TOIInput)
 
 class b2TOIOutput(object):
-    """Proxy of C++ b2TOIOutput class"""
+    """Proxy of C++ b2TOIOutput class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     e_unknown = _Box2D.b2TOIOutput_e_unknown
@@ -3790,17 +3766,12 @@ b2TOIOutput.__hash__ = new_instancemethod(_Box2D.b2TOIOutput___hash__, None, b2T
 b2TOIOutput_swigregister = _Box2D.b2TOIOutput_swigregister
 b2TOIOutput_swigregister(b2TOIOutput)
 
-
-_Box2D.b2_staticBody_swigconstant(_Box2D)
 b2_staticBody = _Box2D.b2_staticBody
-
-_Box2D.b2_kinematicBody_swigconstant(_Box2D)
 b2_kinematicBody = _Box2D.b2_kinematicBody
-
-_Box2D.b2_dynamicBody_swigconstant(_Box2D)
 b2_dynamicBody = _Box2D.b2_dynamicBody
 class b2BodyDef(object):
     """A body definition holds all the data needed to construct a rigid body. You can safely re-use body definitions. Shapes are added to a body after construction."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -3900,6 +3871,7 @@ b2BodyDef_swigregister(b2BodyDef)
 
 class b2Body(object):
     """A rigid body. These are created via  b2World::CreateBody."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -4813,6 +4785,7 @@ b2Body_swigregister(b2Body)
 
 class b2Filter(object):
     """This holds contact filtering data."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -4843,6 +4816,7 @@ b2Filter_swigregister(b2Filter)
 
 class b2FixtureDef(object):
     """A fixture definition is used to create a fixture. This class defines an abstract fixture definition. You can reuse fixture definitions safely."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -4911,6 +4885,7 @@ b2FixtureDef_swigregister(b2FixtureDef)
 
 class b2FixtureProxy(object):
     """This proxy is used internally to connect fixtures to the broad-phase."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     aabb = _swig_property(_Box2D.b2FixtureProxy_aabb_get, _Box2D.b2FixtureProxy_aabb_set)
@@ -4948,6 +4923,7 @@ class b2Fixture(object):
     WARNING: 
     you cannot reuse fixtures.
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -5234,6 +5210,7 @@ b2Fixture_swigregister(b2Fixture)
 
 class b2DestructionListener(object):
     """Joints and fixtures are destroyed when their associated body is destroyed. Implement this listener so that you may nullify references to these joints and shapes."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     __swig_destroy__ = _Box2D.delete_b2DestructionListener
@@ -5280,6 +5257,7 @@ b2DestructionListener_swigregister(b2DestructionListener)
 
 class b2ContactFilter(object):
     """Implement this class to provide collision filtering. In other words, you can implement this class if you want finer control over contact creation."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     __swig_destroy__ = _Box2D.delete_b2ContactFilter
@@ -5327,6 +5305,7 @@ b2ContactFilter_swigregister(b2ContactFilter)
 
 class b2ContactImpulse(object):
     """Contact impulses for reporting. Impulses are used instead of forces because sub-step forces may approach infinity for rigid body collisions. These match up one-to-one with the contact points in  b2Manifold."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     count = _swig_property(_Box2D.b2ContactImpulse_count_get, _Box2D.b2ContactImpulse_count_set)
@@ -5375,6 +5354,7 @@ class b2ContactListener(object):
     WARNING: 
     You cannot create/destroy Box2D entities inside these callbacks.
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     __swig_destroy__ = _Box2D.delete_b2ContactListener
@@ -5450,6 +5430,7 @@ b2ContactListener_swigregister(b2ContactListener)
 
 class b2QueryCallback(object):
     """Callback class for AABB queries. See b2World::Query"""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     __swig_destroy__ = _Box2D.delete_b2QueryCallback
@@ -5496,6 +5477,7 @@ b2QueryCallback_swigregister(b2QueryCallback)
 
 class b2RayCastCallback(object):
     """Callback class for ray casts. See  b2World::RayCast"""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     __swig_destroy__ = _Box2D.delete_b2RayCastCallback
@@ -5555,7 +5537,8 @@ b2RayCastCallback_swigregister = _Box2D.b2RayCastCallback_swigregister
 b2RayCastCallback_swigregister(b2RayCastCallback)
 
 class b2Profile(object):
-    """Proxy of C++ b2Profile class"""
+    """Proxy of C++ b2Profile class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     step = _swig_property(_Box2D.b2Profile_step_get, _Box2D.b2Profile_step_set)
@@ -5575,7 +5558,8 @@ b2Profile_swigregister = _Box2D.b2Profile_swigregister
 b2Profile_swigregister(b2Profile)
 
 class b2SolverData(object):
-    """Proxy of C++ b2SolverData class"""
+    """Proxy of C++ b2SolverData class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     step = _swig_property(_Box2D.b2SolverData_step_get, _Box2D.b2SolverData_step_set)
@@ -5590,7 +5574,8 @@ b2SolverData_swigregister = _Box2D.b2SolverData_swigregister
 b2SolverData_swigregister(b2SolverData)
 
 class b2ContactManager(object):
-    """Proxy of C++ b2ContactManager class"""
+    """Proxy of C++ b2ContactManager class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -5650,6 +5635,7 @@ b2_maxStackEntries = b2Globals.b2_maxStackEntries
 
 class b2World(object):
     """The world class manages all physics entities, dynamic simulation, and asynchronous queries. The world also contains efficient memory management facilities."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -6400,6 +6386,7 @@ def b2MixRestitution(restitution1, restitution2):
     return _Box2D.b2MixRestitution(restitution1, restitution2)
 class b2ContactEdge(object):
     """A contact edge is used to connect bodies and contacts together in a contact graph where each body is a node and each contact is an edge. A contact edge belongs to a doubly linked list maintained in each attached body. Each contact has two contact nodes, one for each attached body."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     other = _swig_property(_Box2D.b2ContactEdge_other_get, _Box2D.b2ContactEdge_other_set)
@@ -6431,6 +6418,7 @@ b2ContactEdge_swigregister(b2ContactEdge)
 
 class b2Contact(object):
     """The class manages contact between two shapes. A contact exists for each overlapping AABB in the broad-phase (except if filtered). Therefore a contact object may exist that has no contact points."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -6661,14 +6649,11 @@ b2Contact.__hash__ = new_instancemethod(_Box2D.b2Contact___hash__, None, b2Conta
 b2Contact_swigregister = _Box2D.b2Contact_swigregister
 b2Contact_swigregister(b2Contact)
 
-
-_Box2D.e_wheelJoint_swigconstant(_Box2D)
 e_wheelJoint = _Box2D.e_wheelJoint
-
-_Box2D.e_ropeJoint_swigconstant(_Box2D)
 e_ropeJoint = _Box2D.e_ropeJoint
 class b2Jacobian(object):
-    """Proxy of C++ b2Jacobian class"""
+    """Proxy of C++ b2Jacobian class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     linear = _swig_property(_Box2D.b2Jacobian_linear_get, _Box2D.b2Jacobian_linear_set)
@@ -6699,6 +6684,7 @@ b2Jacobian_swigregister(b2Jacobian)
 
 class b2JointEdge(object):
     """A joint edge is used to connect bodies and joints together in a joint graph where each body is a node and each joint is an edge. A joint edge belongs to a doubly linked list maintained in each attached body. Each joint has two joint nodes, one for each attached body."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     other = _swig_property(_Box2D.b2JointEdge_other_get, _Box2D.b2JointEdge_other_set)
@@ -6730,6 +6716,7 @@ b2JointEdge_swigregister(b2JointEdge)
 
 class b2JointDef(object):
     """Joint definitions are used to construct joints."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -6804,6 +6791,7 @@ b2JointDef_swigregister(b2JointDef)
 
 class b2Joint(object):
     """The base joint class. Joints are used to constraint two bodies together in various fashions. Some joints also feature limits and motors."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -6981,6 +6969,7 @@ class b2DistanceJointDef(b2JointDef):
     WARNING: 
     Do not use a zero or short length.
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7058,6 +7047,7 @@ b2DistanceJointDef_swigregister(b2DistanceJointDef)
 
 class b2DistanceJoint(b2Joint):
     """A distance joint constrains two points on two bodies to remain at a fixed distance from each other. You can view this as a massless, rigid rod."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7142,6 +7132,7 @@ b2DistanceJoint_swigregister(b2DistanceJoint)
 
 class b2FrictionJointDef(b2JointDef):
     """Friction joint definition."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7204,6 +7195,7 @@ b2FrictionJointDef_swigregister(b2FrictionJointDef)
 
 class b2FrictionJoint(b2Joint):
     """Friction joint. This is used for top-down friction. It provides 2D translational friction and angular friction."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7285,6 +7277,7 @@ b2FrictionJoint_swigregister(b2FrictionJoint)
 
 class b2GearJointDef(b2JointDef):
     """Gear joint definition. This definition requires two existing revolute or prismatic joints (any combination will work). The provided joints must attach a dynamic body to a static body."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7319,6 +7312,7 @@ class b2GearJoint(b2Joint):
     WARNING: 
     The revolute and prismatic joints must be attached to fixed bodies (which must be body1 on those joints).
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7375,7 +7369,8 @@ b2GearJoint_swigregister = _Box2D.b2GearJoint_swigregister
 b2GearJoint_swigregister(b2GearJoint)
 
 class b2MotorJointDef(b2JointDef):
-    """Proxy of C++ b2MotorJointDef class"""
+    """Proxy of C++ b2MotorJointDef class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7406,7 +7401,8 @@ b2MotorJointDef_swigregister = _Box2D.b2MotorJointDef_swigregister
 b2MotorJointDef_swigregister(b2MotorJointDef)
 
 class b2MotorJoint(b2Joint):
-    """Proxy of C++ b2MotorJoint class"""
+    """Proxy of C++ b2MotorJoint class."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7473,6 +7469,7 @@ b2MotorJoint_swigregister(b2MotorJoint)
 
 class b2MouseJointDef(b2JointDef):
     """Mouse joint definition. This requires a world target point, tuning parameters, and the time step."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7504,6 +7501,7 @@ b2MouseJointDef_swigregister(b2MouseJointDef)
 
 class b2MouseJoint(b2Joint):
     """A mouse joint is used to make a point on a body track a specified world point. This a soft constraint with a maximum force. This allows the constraint to stretch and without applying huge forces. NOTE: this joint is not documented in the manual because it was developed to be used in the testbed. If you want to learn how to use the mouse joint, look at the testbed."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7605,6 +7603,7 @@ class b2PrismaticJointDef(b2JointDef):
     WARNING: 
     at least one body should by dynamic with a non-fixed rotation.
     """
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7687,6 +7686,7 @@ b2PrismaticJointDef_swigregister(b2PrismaticJointDef)
 
 class b2PrismaticJoint(b2Joint):
     """A prismatic joint. This joint provides one degree of freedom: translation along an axis fixed in body1. Relative rotation is prevented. You can use a joint limit to restrict the range of motion and a joint motor to drive the motion or to model joint friction."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -7887,6 +7887,7 @@ b2PrismaticJoint_swigregister(b2PrismaticJoint)
 
 class b2PulleyJointDef(b2JointDef):
     """Pulley joint definition. This requires two ground anchors, two dynamic body anchor points, max lengths for each side, and a pulley ratio."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -7999,6 +8000,7 @@ b2_minPulleyLength = b2Globals.b2_minPulleyLength
 
 class b2PulleyJoint(b2Joint):
     """The pulley joint is connected to two bodies and two fixed ground points. The pulley supports a ratio such that: length1 + ratio * length2 <= constant Yes, the force transmitted is scaled by the ratio. The pulley also enforces a maximum length limit on both sides. This is useful to prevent one side of the pulley hitting the top."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -8087,6 +8089,7 @@ b2PulleyJoint_swigregister(b2PulleyJoint)
 
 class b2RevoluteJointDef(b2JointDef):
     """Revolute joint definition. This requires defining an anchor point where the bodies are joined. The definition uses local anchor points so that the initial configuration can violate the constraint slightly. You also need to specify the initial relative angle for joint limits. This helps when saving and loading a game. The local anchor points are measured from the body's origin rather than the center of mass because: 1. you might not know where the center of mass will be. 2. if you add/remove shapes from a body and recompute the mass, the joints will be broken."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -8155,6 +8158,7 @@ b2RevoluteJointDef_swigregister(b2RevoluteJointDef)
 
 class b2RevoluteJoint(b2Joint):
     """A revolute joint constrains two bodies to share a common point while they are free to rotate about the point. The relative rotation about the shared point is the joint angle. You can limit the relative rotation with a joint limit that specifies a lower and upper angle. You can use a motor to drive the relative rotation about the shared point. A maximum motor torque is provided so that infinite forces are not generated."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -8351,6 +8355,7 @@ b2RevoluteJoint_swigregister(b2RevoluteJoint)
 
 class b2RopeJointDef(b2JointDef):
     """Rope joint definition. This requires two body anchor points and a maximum lengths. Note: by default the connected objects will not collide. see collideConnected in  b2JointDef."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -8408,6 +8413,7 @@ b2RopeJointDef_swigregister(b2RopeJointDef)
 
 class b2RopeJoint(b2Joint):
     """A rope joint enforces a maximum distance between two points on two bodies. It has no other effect. Warning: if you attempt to change the maximum length during the simulation you will get some non-physical behavior. A model that would allow you to dynamically modify the length would have some sponginess, so I chose not to implement it that way. See  b2DistanceJointif you want to dynamically control length."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -8475,6 +8481,7 @@ b2RopeJoint_swigregister(b2RopeJoint)
 
 class b2WeldJointDef(b2JointDef):
     """Weld joint definition. You need to specify local anchor points where they are attached and the relative body angle. The position of the anchor points is important for computing the reaction torque."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -8539,6 +8546,7 @@ b2WeldJointDef_swigregister(b2WeldJointDef)
 
 class b2WeldJoint(b2Joint):
     """A weld joint essentially glues two bodies together. A weld joint may distort somewhat because the island constraint solver is approximate."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):
@@ -8605,6 +8613,7 @@ b2WeldJoint_swigregister(b2WeldJoint)
 
 class b2WheelJointDef(b2JointDef):
     """Line joint definition. This requires defining a line of motion using an axis and an anchor point. The definition uses local anchor points and a local axis so that the initial configuration can violate the constraint slightly. The joint translation is zero when the local anchor points coincide in world space. Using local anchors and a local axis helps when saving and loading a game."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
 
@@ -8683,6 +8692,7 @@ b2WheelJointDef_swigregister(b2WheelJointDef)
 
 class b2WheelJoint(b2Joint):
     """A line joint. This joint provides two degrees of freedom: translation along an axis fixed in body1 and rotation in the plane. You can use a joint limit to restrict the range of motion and a joint motor to drive the rotation or to model rotational friction. This joint is designed for vehicle suspensions."""
+
     thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
 
     def __init__(self, *args, **kwargs):