Skip to content

Commit 59c149e

Browse files
authored
Merge pull request #78 from treeform/add_more
Add more Min, Max and Clamp variants.
2 parents 071c811 + ac2cc82 commit 59c149e

2 files changed

Lines changed: 43 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
name: Github Actions
2-
on: [push, pull_request]
2+
on:
3+
push:
4+
branches: [ master ]
5+
pull_request:
6+
branches: [ master ]
37
jobs:
48
build:
59
strategy:
610
fail-fast: false
711
matrix:
812
os: [ubuntu-latest, windows-latest]
9-
nim-version: ['1.4.x', '2.0.x', '2.2.x', 'stable']
13+
nim-version: ['1.4.0', '2.0.0', '2.2.4']
1014

1115
runs-on: ${{ matrix.os }}
1216

src/vmath.nim

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ float64 double DVec2 DVec3 DVec4 DMat3 DMat4 DQuat
3030
3131
]##
3232

33-
import
33+
import
3434
std/[macros, math, strutils]
3535
export math except isNan
3636

@@ -853,6 +853,15 @@ proc min*(a, b: Vec3): Vec3 =
853853
proc min*(a, b: Vec4): Vec4 =
854854
vec4(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z), min(a.w, b.w))
855855

856+
proc min*(a: Vec2, b: float32): Vec2 =
857+
vec2(min(a.x, b), min(a.y, b))
858+
859+
proc min*(a: Vec3, b: float32): Vec3 =
860+
vec3(min(a.x, b), min(a.y, b), min(a.z, b))
861+
862+
proc min*(a: Vec4, b: float32): Vec4 =
863+
vec4(min(a.x, b), min(a.y, b), min(a.z, b), min(a.w, b))
864+
856865
proc max*(a, b: Vec2): Vec2 =
857866
vec2(max(a.x, b.x), max(a.y, b.y))
858867

@@ -862,6 +871,33 @@ proc max*(a, b: Vec3): Vec3 =
862871
proc max*(a, b: Vec4): Vec4 =
863872
vec4(max(a.x, b.x), max(a.y, b.y), max(a.z, b.z), max(a.w, b.w))
864873

874+
proc max*(a: Vec2, b: float32): Vec2 =
875+
vec2(max(a.x, b), max(a.y, b))
876+
877+
proc max*(a: Vec3, b: float32): Vec3 =
878+
vec3(max(a.x, b), max(a.y, b), max(a.z, b))
879+
880+
proc max*(a: Vec4, b: float32): Vec4 =
881+
vec4(max(a.x, b), max(a.y, b), max(a.z, b), max(a.w, b))
882+
883+
proc clamp*(v, min, max: Vec2): Vec2 =
884+
vec2(clamp(v.x, min.x, max.x), clamp(v.y, min.y, max.y))
885+
886+
proc clamp*(v, min, max: Vec3): Vec3 =
887+
vec3(clamp(v.x, min.x, max.x), clamp(v.y, min.y, max.y), clamp(v.z, min.z, max.z))
888+
889+
proc clamp*(v, min, max: Vec4): Vec4 =
890+
vec4(clamp(v.x, min.x, max.x), clamp(v.y, min.y, max.y), clamp(v.z, min.z, max.z), clamp(v.w, min.w, max.w))
891+
892+
proc clamp*(v: Vec2, min, max: float32): Vec2 =
893+
vec2(clamp(v.x, min, max), clamp(v.y, min, max))
894+
895+
proc clamp*(v: Vec3, min, max: float32): Vec3 =
896+
vec3(clamp(v.x, min, max), clamp(v.y, min, max), clamp(v.z, min, max))
897+
898+
proc clamp*(v: Vec4, min, max: float32): Vec4 =
899+
vec4(clamp(v.x, min, max), clamp(v.y, min, max), clamp(v.z, min, max), clamp(v.w, min, max))
900+
865901
type
866902
Mat2* = GMat2[float32]
867903
Mat3* = GMat3[float32]

0 commit comments

Comments
 (0)