diff --git a/direct/src/extensions/OdeBody-extensions.py b/direct/src/extensions/OdeBody-extensions.py new file mode 100755 index 0000000000..6b0f60a633 --- /dev/null +++ b/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() diff --git a/direct/src/extensions/OdeGeom-extensions.py b/direct/src/extensions/OdeGeom-extensions.py new file mode 100755 index 0000000000..2d523788c3 --- /dev/null +++ b/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() diff --git a/direct/src/extensions/OdeSpace-extensions.py b/direct/src/extensions/OdeSpace-extensions.py new file mode 100755 index 0000000000..8ab94b6c64 --- /dev/null +++ b/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() diff --git a/direct/src/extensions_native/OdeBody_extensions.py b/direct/src/extensions_native/OdeBody_extensions.py new file mode 100755 index 0000000000..7d768c176d --- /dev/null +++ b/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 + diff --git a/direct/src/extensions_native/OdeGeom_extensions.py b/direct/src/extensions_native/OdeGeom_extensions.py new file mode 100755 index 0000000000..acadf78e58 --- /dev/null +++ b/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 diff --git a/direct/src/extensions_native/OdeSpace_extensions.py b/direct/src/extensions_native/OdeSpace_extensions.py new file mode 100755 index 0000000000..7dac31b7d1 --- /dev/null +++ b/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 +