mirror of
https://github.com/bloeys/gglm.git
synced 2025-12-29 13:38:20 +00:00
Get rid of pointer returns when creating new objects
This commit is contained in:
42
main.go
42
main.go
@ -53,7 +53,7 @@ func main() {
|
||||
m4.Mul(m5)
|
||||
println(m4.String())
|
||||
println(m6.String())
|
||||
println(m4.Eq(m6))
|
||||
println(m4.Eq(&m6))
|
||||
|
||||
// Vec2
|
||||
v1 := &gglm.Vec2{Data: [2]float32{1, 2}}
|
||||
@ -82,7 +82,9 @@ func main() {
|
||||
println(v3.Eq(v4))
|
||||
|
||||
println(gglm.DotVec3(v3, v4))
|
||||
println(gglm.Cross(v3, v4).String())
|
||||
|
||||
v3v4Cross := gglm.Cross(v3, v4)
|
||||
println(v3v4Cross.String())
|
||||
|
||||
println("V3: " + v3.String())
|
||||
v3.Normalize()
|
||||
@ -117,7 +119,8 @@ func main() {
|
||||
}
|
||||
|
||||
vec2A := gglm.Vec2{Data: [2]float32{1, 2}}
|
||||
println(gglm.MulMat2Vec2(&mat2A, &vec2A).String())
|
||||
mat2Vec2Mul := gglm.MulMat2Vec2(&mat2A, &vec2A)
|
||||
println(mat2Vec2Mul.String())
|
||||
|
||||
// Mat3Vec3
|
||||
mat3A := gglm.Mat3{
|
||||
@ -150,8 +153,13 @@ func main() {
|
||||
|
||||
// Transform
|
||||
translationMat := gglm.NewTranslationMat(&gglm.Vec3{Data: [3]float32{1, 2, 3}})
|
||||
rotMat := gglm.NewRotMat(gglm.NewQuatEuler(gglm.NewVec3(60, 30, 20).AsRad()))
|
||||
scaleMat := gglm.NewScaleMat(gglm.NewVec3(1, 1, 1))
|
||||
|
||||
rotDegs := gglm.NewVec3(60, 30, 20)
|
||||
quat := gglm.NewQuatEuler(rotDegs.AsRad())
|
||||
rotMat := gglm.NewRotMat(&quat)
|
||||
|
||||
scale := gglm.NewVec3(1, 1, 1)
|
||||
scaleMat := gglm.NewScaleMat(&scale)
|
||||
|
||||
modelMat := gglm.NewTrMatId()
|
||||
modelMat.Mul(translationMat.Mul(rotMat.Mul(scaleMat)))
|
||||
@ -165,22 +173,30 @@ func main() {
|
||||
println("\n\n", v2Orig.String(), "; ", v2Clone.String())
|
||||
|
||||
// Clone TrMat
|
||||
trMatOrig := gglm.NewTranslationMat(gglm.NewVec3(1, 2, 3))
|
||||
pos := gglm.NewVec3(1, 2, 3)
|
||||
trMatOrig := gglm.NewTranslationMat(&pos)
|
||||
trMatClone := trMatOrig.Clone()
|
||||
trMatClone.Scale(gglm.NewVec3(2, 2, 2))
|
||||
trMatClone.Translate(gglm.NewVec3(9, 0, 0))
|
||||
|
||||
trMatCloneScale := gglm.NewVec3(2, 2, 2)
|
||||
trMatClone.Scale(&trMatCloneScale)
|
||||
|
||||
pos = gglm.NewVec3(9, 0, 0)
|
||||
trMatClone.Translate(&pos)
|
||||
println("\n\n", trMatOrig.String(), "; ", trMatClone.String())
|
||||
|
||||
// Quat geo
|
||||
q1 := gglm.NewQuatEuler(gglm.NewVec3(180, 0, 0).AsRad())
|
||||
q2 := gglm.NewQuatEuler(gglm.NewVec3(0, 180, 0).AsRad())
|
||||
println(gglm.AngleQuat(q1, q2) * gglm.Rad2Deg)
|
||||
q1Degs := gglm.NewVec3(180*gglm.Deg2Rad, 0, 0)
|
||||
q1 := gglm.NewQuatEuler(&q1Degs)
|
||||
|
||||
q2Degs := gglm.NewVec3(0, 180*gglm.Deg2Rad, 0)
|
||||
q2 := gglm.NewQuatEuler(&q2Degs)
|
||||
println(gglm.AngleQuat(&q1, &q2) * gglm.Rad2Deg)
|
||||
|
||||
// LookAt
|
||||
camPos := gglm.NewVec3(0, 0, 3)
|
||||
worldUp := gglm.NewVec3(0, 1, 0)
|
||||
targetPos := gglm.NewVec3(0, 0, 0)
|
||||
viewMat := gglm.LookAtRH(camPos, targetPos, worldUp)
|
||||
viewMat := gglm.LookAtRH(&camPos, &targetPos, &worldUp)
|
||||
println(viewMat.String())
|
||||
|
||||
// Mat2Col
|
||||
@ -200,5 +216,5 @@ func main() {
|
||||
{2, 4},
|
||||
}}
|
||||
|
||||
println(mc2.Mul(mc).String())
|
||||
println(mc2.Mul(&mc).String())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user