]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of factorcode.org:/git/factor
authorEduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Sun, 20 Jul 2008 10:01:21 +0000 (05:01 -0500)
committerEduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Sun, 20 Jul 2008 10:01:21 +0000 (05:01 -0500)
extra/math/geometry/geometry.factor [new file with mode: 0644]
extra/math/geometry/rect/rect.factor
extra/ui/gadgets/gadgets.factor

diff --git a/extra/math/geometry/geometry.factor b/extra/math/geometry/geometry.factor
new file mode 100644 (file)
index 0000000..c331192
--- /dev/null
@@ -0,0 +1,8 @@
+
+IN: math.geometry
+
+GENERIC: width  ( object -- width )
+GENERIC: height ( object -- width )
+
+GENERIC: set-x! ( object x -- object )
+GENERIC: set-y! ( object x -- object )
\ No newline at end of file
index 51f42c22ca2d2f7dbc718f1a9e885cf09396fc7d..862d50c5cdb3c113332285422cb743143b317e7b 100644 (file)
@@ -1,13 +1,15 @@
 
-USING: kernel arrays math.vectors ;
+USING: kernel arrays sequences math.vectors math.geometry accessors ;
 
 IN: math.geometry.rect
 
-TUPLE: rect { loc initial: { 0 0 } } { dim initial: { 0 0 } } ;
+TUPLE: rect loc dim ;
 
-: <zero-rect> ( -- rect ) rect new ;
+: init-rect ( rect -- rect ) { 0 0 } clone >>loc { 0 0 } clone >>dim ;
 
-C: <rect> rect
+: <rect> ( loc dim -- rect ) rect boa ;
+
+: <zero-rect> ( -- rect ) rect new init-rect ;
 
 M: array rect-loc ;
 
@@ -40,3 +42,8 @@ M: array rect-dim drop { 0 0 } ;
 : rect-union ( rect1 rect2 -- newrect )
     (rect-union) <extent-rect> ;
 
+M: rect width  ( rect -- width  ) dim>> first  ;
+M: rect height ( rect -- height ) dim>> second ;
+
+M: rect set-x! ( rect x -- rect ) over loc>> set-first  ;
+M: rect set-y! ( rect y -- rect ) over loc>> set-second ;
\ No newline at end of file
index 0c2caebb3d7425bc2e270f83785f342e807676ba..a4cdd69d69070e2fd4730298022012858c450588 100755 (executable)
@@ -29,6 +29,8 @@ M: gadget model-changed 2drop ;
 
 : new-gadget ( class -- gadget )
     new
+        { 0 0 } clone >>loc
+        { 0 0 } clone >>dim
         { 0 1 } >>orientation
         t >>visible?
         { f f } >>graft-state ; inline