diff --git a/pgo/libs/libphysxc_checked_windows_amd64.a b/pgo/libs/libphysxc_checked_windows_amd64.a index c2d0e9e..a146085 100755 Binary files a/pgo/libs/libphysxc_checked_windows_amd64.a and b/pgo/libs/libphysxc_checked_windows_amd64.a differ diff --git a/pgo/libs/libphysxc_release_windows_amd64.a b/pgo/libs/libphysxc_release_windows_amd64.a index c2d0e9e..a146085 100755 Binary files a/pgo/libs/libphysxc_release_windows_amd64.a and b/pgo/libs/libphysxc_release_windows_amd64.a differ diff --git a/pgo/physx-c/CPxRigidDynamic.h b/pgo/physx-c/CPxRigidDynamic.h index dc9719c..71c66b0 100755 --- a/pgo/physx-c/CPxRigidDynamic.h +++ b/pgo/physx-c/CPxRigidDynamic.h @@ -30,7 +30,17 @@ extern "C" { CPxAPI CPxReal CPxRigidDynamic_getAngularDamping(CSTRUCT CPxRigidDynamic crd); CPxAPI CSTRUCT CPxVec3 CPxRigidDynamic_getLinearVelocity(CSTRUCT CPxRigidDynamic crd); + CPxAPI void CPxRigidDynamic_setLinearVelocity(CSTRUCT CPxRigidDynamic crd, CSTRUCT CPxVec3* velocity, bool autoAwake); + + CPxAPI CPxReal CPxRigidDynamic_getMaxLinearVelocity(CSTRUCT CPxRigidDynamic crd); + CPxAPI void CPxRigidDynamic_setMaxLinearVelocity(CSTRUCT CPxRigidDynamic crd, CPxReal maxLinearVelocity); + + CPxAPI CSTRUCT CPxVec3 CPxRigidDynamic_getAngularVelocity(CSTRUCT CPxRigidDynamic crd); + CPxAPI void CPxRigidDynamic_setAngularVelocity(CSTRUCT CPxRigidDynamic crd, CSTRUCT CPxVec3* velocity, bool autoAwake); + + CPxAPI CPxReal CPxRigidDynamic_getMaxAngularVelocity(CSTRUCT CPxRigidDynamic crd); + CPxAPI void CPxRigidDynamic_setMaxAngularVelocity(CSTRUCT CPxRigidDynamic crd, CPxReal maxAngularVelocity); CPxAPI void CPxRigidDynamic_setMass(CSTRUCT CPxRigidDynamic crd, CPxReal mass); CPxAPI CPxReal CPxRigidDynamic_getMass(CSTRUCT CPxRigidDynamic crd); diff --git a/pgo/rigiddynamic.go b/pgo/rigiddynamic.go index 07374c2..e26d71a 100755 --- a/pgo/rigiddynamic.go +++ b/pgo/rigiddynamic.go @@ -29,14 +29,14 @@ func (rd *RigidDynamic) SetLinearDamping(damping float32) { C.CPxRigidDynamic_setLinearDamping(rd.cRd, C.float(damping)) } -func (rd *RigidDynamic) SetAngularDamping(damping float32) { - C.CPxRigidDynamic_setAngularDamping(rd.cRd, C.float(damping)) -} - func (rd *RigidDynamic) GetLinearDamping() float32 { return float32(C.CPxRigidDynamic_getLinearDamping(rd.cRd)) } +func (rd *RigidDynamic) SetAngularDamping(damping float32) { + C.CPxRigidDynamic_setAngularDamping(rd.cRd, C.float(damping)) +} + func (rd *RigidDynamic) GetAngularDamping() float32 { return float32(C.CPxRigidDynamic_getAngularDamping(rd.cRd)) } @@ -47,12 +47,36 @@ func (rd *RigidDynamic) GetLinearVelocity() Vec3 { } } +func (rd *RigidDynamic) SetLinearVelocity(vel *Vec3, autoWake bool) { + C.CPxRigidDynamic_setLinearVelocity(rd.cRd, &vel.cV, C._Bool(autoWake)) +} + func (rd *RigidDynamic) GetAngularVelocity() Vec3 { return Vec3{ cV: C.CPxRigidDynamic_getAngularVelocity(rd.cRd), } } +func (rd *RigidDynamic) SetAngularVelocity(vel *Vec3, autoWake bool) { + C.CPxRigidDynamic_setAngularVelocity(rd.cRd, &vel.cV, C._Bool(autoWake)) +} + +func (rd *RigidDynamic) GetMaxLinearVelocity() float32 { + return float32(C.CPxRigidDynamic_getMaxLinearVelocity(rd.cRd)) +} + +func (rd *RigidDynamic) SetMaxLinearVelocity(vel float32) { + C.CPxRigidDynamic_setMaxLinearVelocity(rd.cRd, C.float(vel)) +} + +func (rd *RigidDynamic) GetMaxAngularVelocity() float32 { + return float32(C.CPxRigidDynamic_getMaxAngularVelocity(rd.cRd)) +} + +func (rd *RigidDynamic) SetMaxAngularVelocity(vel float32) { + C.CPxRigidDynamic_setMaxAngularVelocity(rd.cRd, C.float(vel)) +} + func (rd *RigidDynamic) SetMass(mass float32) { C.CPxRigidDynamic_setMass(rd.cRd, C.float(mass)) }