Mercurial > games > semicongine
changeset 1106:ed3896a10762
fix: ortho projection matrix (hopefully), better string output for matrix and vector
author | sam <sam@basx.dev> |
---|---|
date | Sat, 13 Apr 2024 00:22:45 +0700 |
parents | 4b5891a79f88 |
children | 6a83e6540e36 |
files | semicongine/core/matrix.nim semicongine/core/vector.nim |
diffstat | 2 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/semicongine/core/matrix.nim Fri Apr 12 19:44:27 2024 +0700 +++ b/semicongine/core/matrix.nim Sat Apr 13 00:22:45 2024 +0700 @@ -118,7 +118,7 @@ maxwidth = 0 for n in value.data: - let strval = &"{n:.2}" + let strval = &"{n:.4f}" strvalues.add(strval) if strval.len > maxwidth: maxwidth = strval.len @@ -131,7 +131,6 @@ if i mod T.columnCount == 0: result &= " " result &= filler & strvalues[i] & " " - result = $T & "\n" & result func `$`*(v: TMat2[SomeNumber]): string = toString[TMat2[SomeNumber]](v) func `$`*(v: TMat23[SomeNumber]): string = toString[TMat23[SomeNumber]](v) @@ -456,8 +455,8 @@ Mat4(data: [ 2 / (right - left), 0, 0, -(right + left) / (right - left), 0, 2 / (bottom - top), 0, -(bottom + top) / (bottom - top), - 0, 0, 1 / (zFar - zNear), -zNear / (zFar - zNear), - 0, 0, 1, 1, + 0, 0, 1 / (zFar - zNear), zNear / (zFar - zNear), + 0, 0, 0, 1, ]) # create an orthographic perspective that will map from -1 .. 1 on all axis and keep a 1:1 aspect ratio
--- a/semicongine/core/vector.nim Fri Apr 12 19:44:27 2024 +0700 +++ b/semicongine/core/vector.nim Sat Apr 13 00:22:45 2024 +0700 @@ -1,6 +1,7 @@ import std/random import std/math import std/strutils +import std/strformat import std/macros import std/typetraits import std/tables @@ -101,8 +102,8 @@ func toString[T](value: T): string = var items: seq[string] for item in value: - items.add($item) - $T & "(" & join(items, " ") & ")" + items.add(&"{item:.5f}") + & "(" & join(items, " ") & ")" func `$`*(v: TVec2[SomeNumber]): string = toString[TVec2[SomeNumber]](v) func `$`*(v: TVec3[SomeNumber]): string = toString[TVec3[SomeNumber]](v)