diff --git a/extra/math/geometry/rect/rect.factor b/extra/math/geometry/rect/rect.factor index 4503d08a0a..7f0bb94092 100644 --- a/extra/math/geometry/rect/rect.factor +++ b/extra/math/geometry/rect/rect.factor @@ -1,5 +1,7 @@ -USING: kernel arrays sequences math.vectors math.geometry accessors ; +USING: kernel arrays sequences + math math.points math.vectors math.geometry + accessors ; IN: math.geometry.rect @@ -50,3 +52,10 @@ M: rect set-height! ( rect height -- rect ) over dim>> set-second ; M: rect set-x! ( rect x -- rect ) over loc>> set-first ; M: rect set-y! ( rect y -- rect ) over loc>> set-second ; + +! Accessing corners + +: top-left ( rect -- point ) loc>> ; +: top-right ( rect -- point ) [ loc>> ] [ width 1 - ] bi v+x ; +: bottom-left ( rect -- point ) [ loc>> ] [ height 1 - ] bi v+y ; +: bottom-right ( rect -- point ) [ loc>> ] [ dim>> ] bi v+ { 1 1 } v- ; diff --git a/extra/opengl/opengl.factor b/extra/opengl/opengl.factor index 9e91119247..be70b1e176 100755 --- a/extra/opengl/opengl.factor +++ b/extra/opengl/opengl.factor @@ -195,6 +195,8 @@ TUPLE: sprite loc dim dim2 dlist texture ; : gl-translate ( point -- ) first2 0.0 glTranslated ; + + : four-sides ( dim -- ) dup top-left dup top-right dup bottom-right bottom-left ;