Mercurial > games > semicongine
comparison tests/test_vector.nim @ 769:bb4c36d68444
add: some API improvments for vector, entity, and some other stuff
| author | Sam <sam@basx.dev> |
|---|---|
| date | Sat, 08 Jul 2023 18:52:34 +0700 |
| parents | 9cfd59c93ae8 |
| children | 71315636ba82 |
comparison
equal
deleted
inserted
replaced
| 768:bc48fcc1ac7b | 769:bb4c36d68444 |
|---|---|
| 1 import random | 1 import random |
| 2 import math | |
| 3 | 2 |
| 4 import semicongine | 3 import semicongine |
| 5 | 4 |
| 6 | 5 |
| 7 proc echoInfo(v: TVec) = | 6 proc echoInfo[T](v: TVec2[T] or TVec3[T] or TVec4[T]) = |
| 8 echo v | 7 echo v |
| 9 echo " Length: ", v.length | 8 echo " Length: ", v.length |
| 10 echo " Normlized: ", v.normalized | 9 when T is SomeFloat: |
| 10 echo " Normlized: ", v.normalized | |
| 11 echo " negated: ", -v | 11 echo " negated: ", -v |
| 12 | 12 |
| 13 proc echoAdd[T, U](v1: T, v2: U) = | 13 proc echoAdd[T, U](v1: T, v2: U) = |
| 14 echo v1, " + ", v2, " = ", v1 + v2 | 14 echo v1, " + ", v2, " = ", v1 + v2 |
| 15 proc echoSub[T, U](v1: T, v2: U) = | 15 proc echoSub[T, U](v1: T, v2: U) = |
| 142 echo "V3F.z: ", randVec3F().z | 142 echo "V3F.z: ", randVec3F().z |
| 143 echo "V3I.r: ", randVec3I().r | 143 echo "V3I.r: ", randVec3I().r |
| 144 echo "V3I.g: ", randVec3I().g | 144 echo "V3I.g: ", randVec3I().g |
| 145 echo "V3F.b: ", randVec3F().b | 145 echo "V3F.b: ", randVec3F().b |
| 146 | 146 |
| 147 # test setters | |
| 148 var v1 = randVec2I(); v1.x = 1 ; v1.y = 2 ; v1.r = 3 ; v1.g = 4 | |
| 149 v1.xy = randVec2I() ; v1.yx = randVec2I() ; v1.rg = randVec2I() ; v1.gr = randVec2I() | |
| 150 var v2 = randVec2F(); v2.x = 1.0 ; v2.y = 2.0 ; v2.r = 3.0 ; v2.g = 4.0 | |
| 151 v2.xy = randVec2F() ; v2.yx = randVec2F() ; v2.rg = randVec2F() ; v2.gr = randVec2F() | |
| 152 | |
| 153 var v3 = randVec3I(); v3.x = 1 ; v3.y = 2 ; v3.z = 3 ; v3.r = 4 ; v3.g = 5 ; v3.b = 6 | |
| 154 v3.xyz = randVec3I() ; v3.rgb = randVec3I() | |
| 155 var v4 = randVec3F(); v4.x = 1.0 ; v4.y = 2.0 ; v4.z = 3.0 ; v4.r = 4.0 ; v4.g = 5.0 ; v4.b = 6.0 | |
| 156 v4.xyz = randVec3F() ; v4.rgb = randVec3F() | |
| 157 | |
| 158 var v5 = randVec4I(); v5.x = 1 ; v5.y = 2 ; v5.z = 3; v5.w = 4 ; v5.r = 5 ; v5.g = 6 ; v5.b = 7 ; v5.a = 8 | |
| 159 v5.xyzw = randVec4I() ; v5.rgba = randVec4I() | |
| 160 var v6 = randVec4F(); v6.x = 1.0 ; v6.y = 2.0 ; v6.z = 3.0 ; v6.w = 4.0 ; v6.r = 5.0 ; v6.g = 6.0 ; v6.b = 7.0 ; v6.a = 8.0 | |
| 161 v6.xyzw = randVec4F() ; v6.rgba = randVec4F() | |
| 162 | |
| 147 echo "V2I.xx: ", randVec2I().xx | 163 echo "V2I.xx: ", randVec2I().xx |
| 148 echo "V2I.yx: ", randVec2I().xy | 164 echo "V2I.yx: ", randVec2I().xy |
| 149 echo "V2F.xx: ", randVec2F().xx | 165 echo "V2F.xx: ", randVec2F().xx |
| 150 echo "V2F.yx: ", randVec2F().yx | 166 echo "V2F.yx: ", randVec2F().yx |
| 151 echo "V2I.rr: ", randVec2I().rr | 167 echo "V2I.rr: ", randVec2I().rr |
