From bb84e85d3d5adf4ef137ae4e815b80a075b195c2 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 04:22:30 -0500 Subject: [PATCH 1/6] Add math.geometry --- extra/math/geometry/geometry.factor | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 extra/math/geometry/geometry.factor diff --git a/extra/math/geometry/geometry.factor b/extra/math/geometry/geometry.factor new file mode 100644 index 0000000000..c331192a4b --- /dev/null +++ b/extra/math/geometry/geometry.factor @@ -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 From 5107c975a2526d62dca963c523a9e4c4c9c80734 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 04:23:43 -0500 Subject: [PATCH 2/6] math.geometry.rect: add geometry methods --- extra/math/geometry/rect/rect.factor | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/extra/math/geometry/rect/rect.factor b/extra/math/geometry/rect/rect.factor index 51f42c22ca..c04d4011b2 100644 --- a/extra/math/geometry/rect/rect.factor +++ b/extra/math/geometry/rect/rect.factor @@ -1,13 +1,15 @@ -USING: kernel arrays math.vectors ; +USING: kernel arrays math.vectors math.geometry ; IN: math.geometry.rect -TUPLE: rect { loc initial: { 0 0 } } { dim initial: { 0 0 } } ; +TUPLE: rect loc dim ; -: ( -- rect ) rect new ; +: init-rect ( rect -- rect ) { 0 0 } clone { 0 0 } clone ; -C: rect +: ( loc dim -- rect ) rect boa ; + +: ( -- 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) ; +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 From 4ad97e8ea72fb69c10c67e189f89a19b189822b4 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 04:56:22 -0500 Subject: [PATCH 3/6] math.geometry.rect: fix using --- extra/math/geometry/rect/rect.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extra/math/geometry/rect/rect.factor b/extra/math/geometry/rect/rect.factor index c04d4011b2..862d50c5cd 100644 --- a/extra/math/geometry/rect/rect.factor +++ b/extra/math/geometry/rect/rect.factor @@ -1,11 +1,11 @@ -USING: kernel arrays math.vectors math.geometry ; +USING: kernel arrays sequences math.vectors math.geometry accessors ; IN: math.geometry.rect TUPLE: rect loc dim ; -: init-rect ( rect -- rect ) { 0 0 } clone { 0 0 } clone ; +: init-rect ( rect -- rect ) { 0 0 } clone >>loc { 0 0 } clone >>dim ; : ( loc dim -- rect ) rect boa ; From b62dbb887c8ef438fb178065e3cdf99c0038ef83 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 04:57:04 -0500 Subject: [PATCH 4/6] ui.gadgets: clone loc and dim --- extra/ui/gadgets/gadgets.factor | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extra/ui/gadgets/gadgets.factor b/extra/ui/gadgets/gadgets.factor index 0c2caebb3d..a4cdd69d69 100755 --- a/extra/ui/gadgets/gadgets.factor +++ b/extra/ui/gadgets/gadgets.factor @@ -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 From 0ff745ffed948ddf21f6a1079b63df587fd48794 Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 05:58:40 -0500 Subject: [PATCH 5/6] ui.gadgets: add init-gadget --- extra/ui/gadgets/gadgets.factor | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/extra/ui/gadgets/gadgets.factor b/extra/ui/gadgets/gadgets.factor index a4cdd69d69..328d6eb749 100755 --- a/extra/ui/gadgets/gadgets.factor +++ b/extra/ui/gadgets/gadgets.factor @@ -27,13 +27,13 @@ M: gadget model-changed 2drop ; : nth-gadget ( n gadget -- child ) children>> nth ; -: new-gadget ( class -- gadget ) - new - { 0 0 } clone >>loc - { 0 0 } clone >>dim - { 0 1 } >>orientation - t >>visible? - { f f } >>graft-state ; inline +: init-gadget ( gadget -- gadget ) + init-rect + { 0 1 } >>orientation + t >>visible? + { f f } >>graft-state ; inline + +: new-gadget ( class -- gadget ) new init-gadget ; inline : ( -- gadget ) gadget new-gadget ; From d937e03e1aa7bc637c7411d2ac41aca982ea0a9c Mon Sep 17 00:00:00 2001 From: Eduardo Cavazos Date: Sun, 20 Jul 2008 09:05:15 -0500 Subject: [PATCH 6/6] Fix methods in math.geometry --- extra/math/geometry/geometry.factor | 4 ++-- extra/math/geometry/rect/rect.factor | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extra/math/geometry/geometry.factor b/extra/math/geometry/geometry.factor index c331192a4b..f70864aba3 100644 --- a/extra/math/geometry/geometry.factor +++ b/extra/math/geometry/geometry.factor @@ -4,5 +4,5 @@ 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 +GENERIC# set-x! 1 ( object x -- object ) +GENERIC# set-y! 1 ( object y -- object ) \ No newline at end of file diff --git a/extra/math/geometry/rect/rect.factor b/extra/math/geometry/rect/rect.factor index 862d50c5cd..d5b83e2715 100644 --- a/extra/math/geometry/rect/rect.factor +++ b/extra/math/geometry/rect/rect.factor @@ -46,4 +46,4 @@ 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 +M: rect set-y! ( rect y -- rect ) over loc>> set-second ;