瀏覽代碼

new extensions for ode classes

Josh Wilson 19 年之前
父節點
當前提交
0cfe0a3233

+ 6 - 0
direct/src/extensions/OdeBody-extensions.py

@@ -0,0 +1,6 @@
+
+def getConvertedJoint(self, index):
+    """
+    Return a downcast joint on this body.
+    """
+    return self.getJoint(index).convert()

+ 35 - 0
direct/src/extensions/OdeGeom-extensions.py

@@ -0,0 +1,35 @@
+
+def convert(self):
+    """
+    Do a sort of pseudo-downcast on this geom in 
+    order to expose its specialized functions.
+    """
+    if self.getGeomClass() == OdeGeom.GCSphere:
+        return self.convertToSphere()
+    elif self.getGeomClass() == OdeGeom.GCBox:
+        return self.convertToBox()
+    elif self.getGeomClass() == OdeGeom.GCCappedCylinder:
+        return self.convertToCappedCylinder()
+    elif self.getGeomClass() == OdeGeom.GCPlane:
+        return self.convertToPlane()
+    elif self.getGeomClass() == OdeGeom.GCRay:
+        return self.convertToRay()
+    # elif self.getGeomClass() == OdeGeom.GCConvex:
+    #     return self.convertToConvex()
+    # elif self.getGeomClass() == OdeGeom.GCGeomTransform:
+    #     return self.convertToGeomTransform()
+    elif self.getGeomClass() == OdeGeom.GCTriMesh:
+        return self.convertToTriMesh()
+    # elif self.getGeomClass() == OdeGeom.GCHeightfield:
+    #     return self.convertToHeightfield()
+    elif self.getGeomClass() == OdeGeom.GCSimpleSpace:
+        return self.convertToSimpleSpace()
+    elif self.getGeomClass() == OdeGeom.GCHashSpace:
+        return self.convertToHashSpace()
+    elif self.getGeomClass() == OdeGeom.GCQuadTreeSpace:
+        return self.convertToQuadTreeSpace()
+
+def getConvertedSpace(self):
+    """
+    """
+    return self.getSpace().convert()

+ 23 - 0
direct/src/extensions/OdeSpace-extensions.py

@@ -0,0 +1,23 @@
+
+def convert(self):
+    """
+    Do a sort of pseudo-downcast on this space in 
+    order to expose its specialized functions.
+    """
+    if self.getClass() == OdeGeom.GCSimpleSpace:
+        return self.convertToSimpleSpace()
+    elif self.getClass() == OdeGeom.GCHashSpace:
+        return self.convertToHashSpace()
+    elif self.getClass() == OdeGeom.GCQuadTreeSpace:
+        return self.convertToQuadTreeSpace()
+
+def getConvertedGeom(self, index):
+    """
+    Return a downcast geom on this body.
+    """
+    return self.getGeom(index).convert()
+
+def getConvertedSpace(self):
+    """
+    """
+    return self.getSpace().convert()

+ 22 - 0
direct/src/extensions_native/OdeBody_extensions.py

@@ -0,0 +1,22 @@
+
+from extension_native_helpers import *
+from libpanda import *
+
+####################################################################
+#Dtool_funcToMethod(func, class)
+#del func
+#####################################################################
+
+"""
+OdeBody-extensions module: contains methods to extend functionality
+of the OdeBody classe
+"""
+
+def getConvertedJoint(self, index):
+    """
+    Return a downcast joint on this body.
+    """
+    return self.getJoint(index).convert()
+Dtool_funcToMethod(getConvertedJoint, OdeBody)
+del getConvertedJoint
+

+ 52 - 0
direct/src/extensions_native/OdeGeom_extensions.py

@@ -0,0 +1,52 @@
+
+from extension_native_helpers import *
+from libpanda import *
+
+####################################################################
+#Dtool_funcToMethod(func, class)
+#del func
+#####################################################################
+
+"""
+OdeGeom-extensions module: contains methods to extend functionality
+of the OdeGeom class
+"""
+
+def convert(self):
+    """
+    Do a sort of pseudo-downcast on this geom in 
+    order to expose its specialized functions.
+    """
+    if self.getClass() == OdeGeom.GCSphere:
+        return self.convertToSphere()
+    elif self.getClass() == OdeGeom.GCBox:
+        return self.convertToBox()
+    elif self.getClass() == OdeGeom.GCCappedCylinder:
+        return self.convertToCappedCylinder()
+    elif self.getClass() == OdeGeom.GCPlane:
+        return self.convertToPlane()
+    elif self.getClass() == OdeGeom.GCRay:
+        return self.convertToRay()
+    # elif self.getClass() == OdeGeom.GCConvex:
+    #     return self.convertToConvex()
+    # elif self.getClass() == OdeGeom.GCGeomTransform:
+    #     return self.convertToGeomTransform()
+    elif self.getClass() == OdeGeom.GCTriMesh:
+        return self.convertToTriMesh()
+    # elif self.getClass() == OdeGeom.GCHeightfield:
+    #     return self.convertToHeightfield()
+    elif self.getClass() == OdeGeom.GCSimpleSpace:
+        return self.convertToSimpleSpace()
+    elif self.getClass() == OdeGeom.GCHashSpace:
+        return self.convertToHashSpace()
+    elif self.getClass() == OdeGeom.GCQuadTreeSpace:
+        return self.convertToQuadTreeSpace()
+Dtool_funcToMethod(convert, OdeGeom)
+del convert
+
+def getConvertedSpace(self):
+    """
+    """
+    return self.getSpace().convert()
+Dtool_funcToMethod(getConvertedSpace, OdeGeom)
+del getConvertedSpace

+ 43 - 0
direct/src/extensions_native/OdeSpace_extensions.py

@@ -0,0 +1,43 @@
+
+from extension_native_helpers import *
+from libpanda import *
+
+####################################################################
+#Dtool_funcToMethod(func, class)
+#del func
+#####################################################################
+
+"""
+OdeSpace-extensions module: contains methods to extend functionality
+of the OdeSpace classe
+"""
+
+def convert(self):
+    """
+    Do a sort of pseudo-downcast on this space in 
+    order to expose its specialized functions.
+    """
+    if self.getClass() == OdeGeom.GCSimpleSpace:
+        return self.convertToSimpleSpace()
+    elif self.getClass() == OdeGeom.GCHashSpace:
+        return self.convertToHashSpace()
+    elif self.getClass() == OdeGeom.GCQuadTreeSpace:
+        return self.convertToQuadTreeSpace()
+Dtool_funcToMethod(convert, OdeSpace)
+del convert
+
+def getConvertedGeom(self, index):
+    """
+    Return a downcast geom on this space.
+    """
+    return self.getGeom(index).convert()
+Dtool_funcToMethod(getConvertedGeom, OdeSpace)
+del getConvertedGeom
+
+def getConvertedSpace(self):
+    """
+    """
+    return self.getSpace().convert()
+Dtool_funcToMethod(getConvertedSpace, OdeSpace)
+del getConvertedSpace
+