MultMatrix for purego added
This commit is contained in:
parent
5314a4a209
commit
86d08a7b86
3 changed files with 32 additions and 24 deletions
|
@ -1360,6 +1360,30 @@ func MatrixToFloatV(mat Matrix) [16]float32 {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MatrixToFloat - Converts Matrix to float32 slice
|
||||||
|
func MatrixToFloat(mat Matrix) []float32 {
|
||||||
|
data := make([]float32, 16)
|
||||||
|
|
||||||
|
data[0] = mat.M0
|
||||||
|
data[1] = mat.M4
|
||||||
|
data[2] = mat.M8
|
||||||
|
data[3] = mat.M12
|
||||||
|
data[4] = mat.M1
|
||||||
|
data[5] = mat.M5
|
||||||
|
data[6] = mat.M9
|
||||||
|
data[7] = mat.M13
|
||||||
|
data[8] = mat.M2
|
||||||
|
data[9] = mat.M6
|
||||||
|
data[10] = mat.M10
|
||||||
|
data[11] = mat.M14
|
||||||
|
data[12] = mat.M3
|
||||||
|
data[13] = mat.M7
|
||||||
|
data[14] = mat.M11
|
||||||
|
data[15] = mat.M15
|
||||||
|
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
// QuaternionAdd - Add two quaternions
|
// QuaternionAdd - Add two quaternions
|
||||||
func QuaternionAdd(q1 Quaternion, q2 Quaternion) Quaternion {
|
func QuaternionAdd(q1 Quaternion, q2 Quaternion) Quaternion {
|
||||||
var result = Quaternion{X: q1.X + q2.X, Y: q1.Y + q2.Y, Z: q1.Z + q2.Z, W: q1.W + q2.W}
|
var result = Quaternion{X: q1.X + q2.X, Y: q1.Y + q2.Y, Z: q1.Z + q2.Z, W: q1.W + q2.W}
|
||||||
|
|
|
@ -854,30 +854,6 @@ func Vector3ToFloat(vec Vector3) []float32 {
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatrixToFloat - Converts Matrix to float32 slice
|
|
||||||
func MatrixToFloat(mat Matrix) []float32 {
|
|
||||||
data := make([]float32, 16)
|
|
||||||
|
|
||||||
data[0] = mat.M0
|
|
||||||
data[1] = mat.M4
|
|
||||||
data[2] = mat.M8
|
|
||||||
data[3] = mat.M12
|
|
||||||
data[4] = mat.M1
|
|
||||||
data[5] = mat.M5
|
|
||||||
data[6] = mat.M9
|
|
||||||
data[7] = mat.M13
|
|
||||||
data[8] = mat.M2
|
|
||||||
data[9] = mat.M6
|
|
||||||
data[10] = mat.M10
|
|
||||||
data[11] = mat.M14
|
|
||||||
data[12] = mat.M3
|
|
||||||
data[13] = mat.M7
|
|
||||||
data[14] = mat.M11
|
|
||||||
data[15] = mat.M15
|
|
||||||
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetRandomValue - Returns a random value between min and max (both included)
|
// GetRandomValue - Returns a random value between min and max (both included)
|
||||||
func GetRandomValue(min, max int32) int32 {
|
func GetRandomValue(min, max int32) int32 {
|
||||||
cmin := (C.int)(min)
|
cmin := (C.int)(min)
|
||||||
|
|
|
@ -16,6 +16,7 @@ var rlLoadIdentity func()
|
||||||
var rlTranslatef func(x float32, y float32, z float32)
|
var rlTranslatef func(x float32, y float32, z float32)
|
||||||
var rlRotatef func(angle float32, x float32, y float32, z float32)
|
var rlRotatef func(angle float32, x float32, y float32, z float32)
|
||||||
var rlScalef func(x float32, y float32, z float32)
|
var rlScalef func(x float32, y float32, z float32)
|
||||||
|
var rlMultMatrixf func(matf *float32)
|
||||||
var rlFrustum func(left float64, right float64, bottom float64, top float64, znear float64, zfar float64)
|
var rlFrustum func(left float64, right float64, bottom float64, top float64, znear float64, zfar float64)
|
||||||
var rlOrtho func(left float64, right float64, bottom float64, top float64, znear float64, zfar float64)
|
var rlOrtho func(left float64, right float64, bottom float64, top float64, znear float64, zfar float64)
|
||||||
var rlViewport func(x int32, y int32, width int32, height int32)
|
var rlViewport func(x int32, y int32, width int32, height int32)
|
||||||
|
@ -138,6 +139,7 @@ func initRlglPurego() {
|
||||||
purego.RegisterLibFunc(&rlTranslatef, raylibDll, "rlTranslatef")
|
purego.RegisterLibFunc(&rlTranslatef, raylibDll, "rlTranslatef")
|
||||||
purego.RegisterLibFunc(&rlRotatef, raylibDll, "rlRotatef")
|
purego.RegisterLibFunc(&rlRotatef, raylibDll, "rlRotatef")
|
||||||
purego.RegisterLibFunc(&rlScalef, raylibDll, "rlScalef")
|
purego.RegisterLibFunc(&rlScalef, raylibDll, "rlScalef")
|
||||||
|
purego.RegisterLibFunc(&rlMultMatrixf, raylibDll, "rlMultMatrixf")
|
||||||
purego.RegisterLibFunc(&rlFrustum, raylibDll, "rlFrustum")
|
purego.RegisterLibFunc(&rlFrustum, raylibDll, "rlFrustum")
|
||||||
purego.RegisterLibFunc(&rlOrtho, raylibDll, "rlOrtho")
|
purego.RegisterLibFunc(&rlOrtho, raylibDll, "rlOrtho")
|
||||||
purego.RegisterLibFunc(&rlViewport, raylibDll, "rlViewport")
|
purego.RegisterLibFunc(&rlViewport, raylibDll, "rlViewport")
|
||||||
|
@ -298,6 +300,12 @@ func Scalef(x float32, y float32, z float32) {
|
||||||
rlScalef(x, y, z)
|
rlScalef(x, y, z)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MultMatrix - Multiply the current matrix by another matrix
|
||||||
|
func MultMatrix(m Matrix) {
|
||||||
|
f := MatrixToFloat(m)
|
||||||
|
rlMultMatrixf((*float32)(&f[0]))
|
||||||
|
}
|
||||||
|
|
||||||
// Frustum .
|
// Frustum .
|
||||||
func Frustum(left float64, right float64, bottom float64, top float64, znear float64, zfar float64) {
|
func Frustum(left float64, right float64, bottom float64, top float64, znear float64, zfar float64) {
|
||||||
rlFrustum(left, right, bottom, top, znear, zfar)
|
rlFrustum(left, right, bottom, top, znear, zfar)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue