mirror of
https://github.com/bloeys/physx-go.git
synced 2025-12-29 07:58:20 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c740204bd5 | |||
| 8c12404511 | |||
| fdb8fbbccf |
Binary file not shown.
Binary file not shown.
44
pgo/pgo.go
44
pgo/pgo.go
@ -555,6 +555,50 @@ type Transform struct {
|
||||
cT C.struct_CPxTransform
|
||||
}
|
||||
|
||||
func (t *Transform) Pos() Vec3 {
|
||||
return Vec3{cV: t.cT.p}
|
||||
}
|
||||
|
||||
func (t *Transform) PosX() float32 {
|
||||
return float32(t.cT.p.x)
|
||||
}
|
||||
|
||||
func (t *Transform) PosY() float32 {
|
||||
return float32(t.cT.p.y)
|
||||
}
|
||||
|
||||
func (t *Transform) PosZ() float32 {
|
||||
return float32(t.cT.p.z)
|
||||
}
|
||||
|
||||
func (t *Transform) SetPos(v *Vec3) {
|
||||
t.cT.p = v.cV
|
||||
}
|
||||
|
||||
func (t *Transform) Rot() Quat {
|
||||
return Quat{cQ: t.cT.q}
|
||||
}
|
||||
|
||||
func (t *Transform) RotX() float32 {
|
||||
return float32(t.cT.q.x)
|
||||
}
|
||||
|
||||
func (t *Transform) RotY() float32 {
|
||||
return float32(t.cT.q.y)
|
||||
}
|
||||
|
||||
func (t *Transform) RotZ() float32 {
|
||||
return float32(t.cT.q.z)
|
||||
}
|
||||
|
||||
func (t *Transform) RotW() float32 {
|
||||
return float32(t.cT.q.w)
|
||||
}
|
||||
|
||||
func (t *Transform) SetRot(r *Quat) {
|
||||
t.cT.q = r.cQ
|
||||
}
|
||||
|
||||
// struct CPxTransform NewCPxTransform(struct CPxVec3*, struct CPxQuat*);
|
||||
func NewTransform(v *Vec3, q *Quat) *Transform {
|
||||
return &Transform{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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))
|
||||
}
|
||||
@ -122,6 +146,13 @@ func (rd *RigidDynamic) ToRigidActor() RigidActor {
|
||||
}
|
||||
|
||||
func CreateDynamic(p Physics, t *Transform, g Geometry, m Material, density float32, shapeOffset *Transform) RigidDynamic {
|
||||
|
||||
if shapeOffset == nil {
|
||||
return RigidDynamic{
|
||||
cRd: C.CPxCreateDynamic(p.cPhysics, &t.cT, g.cG, m.cM, C.float(density), nil),
|
||||
}
|
||||
}
|
||||
|
||||
return RigidDynamic{
|
||||
cRd: C.CPxCreateDynamic(p.cPhysics, &t.cT, g.cG, m.cM, C.float(density), &shapeOffset.cT),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user