diff --git a/pgo/libs/libphysx-c.a b/pgo/libs/libphysx-c.a index 6fe69d1..15a092a 100755 Binary files a/pgo/libs/libphysx-c.a and b/pgo/libs/libphysx-c.a differ diff --git a/pgo/pgo.go b/pgo/pgo.go index c892f76..1994090 100755 --- a/pgo/pgo.go +++ b/pgo/pgo.go @@ -511,10 +511,11 @@ type Material struct { } type Plane struct { - cP *C.struct_CPxPlane + cP C.struct_CPxPlane } func NewPlane(nx, ny, nz, distance float32) *Plane { + return &Plane{ cP: C.NewCPxPlane(C.float(nx), C.float(ny), C.float(nz), C.float(distance)), } @@ -637,6 +638,6 @@ func (rs *RigidStatic) ToRigidActor() RigidActor { func CreatePlane(p *Physics, plane *Plane, mat *Material) *RigidStatic { return &RigidStatic{ - cRs: C.CPxCreatePlane(p.cPhysics, plane.cP, mat.cM), + cRs: C.CPxCreatePlane(p.cPhysics, &plane.cP, mat.cM), } } diff --git a/pgo/physx-c/CPxPlane.h b/pgo/physx-c/CPxPlane.h index 5f4cc54..7f7f58f 100755 --- a/pgo/physx-c/CPxPlane.h +++ b/pgo/physx-c/CPxPlane.h @@ -1,18 +1,19 @@ #ifndef CPxPlane_H #define CPxPlane_H +#include "CPxVec3.h" + #ifdef __cplusplus extern "C" { #endif - //NOTE: Maybe convert this into a value type like CPxSphereGeometry? struct CPxPlane { - void* obj; + CSTRUCT CPxVec3 n; //!< The normal to the plane + float d; //!< The distance from the origin }; - CPxAPI CSTRUCT CPxPlane* NewCPxPlane(float nx, float ny, float nz, float distance); - CPxAPI void CPxPlane_release(CSTRUCT CPxPlane*); + CPxAPI CSTRUCT CPxPlane NewCPxPlane(float nx, float ny, float nz, float distance); #ifdef __cplusplus }