Get rid of pointer returns when creating new objects

This commit is contained in:
bloeys
2024-05-04 22:21:41 +04:00
parent 95005baf22
commit afb3bbfe75
17 changed files with 337 additions and 316 deletions

42
main.go
View File

@ -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())
}