From: Doug Coleman Date: Sun, 4 Jun 2017 20:39:41 +0000 (-0500) Subject: unmaintained: New repo here: https://github.com/factor/factor-unmaintained X-Git-Tag: 0.98~851 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=9aacb29667455fde0edcb8b280cf4eb03f8af197 unmaintained: New repo here: https://github.com/factor/factor-unmaintained It's confusing to ripgrep through unmaintained/ and this eliminates all incompatible/outdated code in the Factor repository. Please contribute the worthy code back to Factor and remove it from factor-unmaintained. --- diff --git a/README.md b/README.md index 6c042a9004..9293d0133c 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ The Factor source tree is organized as follows: * `basis/` - Factor basis library, compiler, tools * `extra/` - more libraries and applications * `misc/` - editor modes, icons, etc -* `unmaintained/` - unmaintained contributions, please help! +* `unmaintained/` - now at [factor-unmaintained](https://github.com/factor/factor-unmaintained) ## Community diff --git a/unmaintained/4DNav/4DNav-docs.factor b/unmaintained/4DNav/4DNav-docs.factor deleted file mode 100644 index 6f63f2e794..0000000000 --- a/unmaintained/4DNav/4DNav-docs.factor +++ /dev/null @@ -1,201 +0,0 @@ -! Copyright (C) 2008 Jean-François Bigot. -! See http://factorcode.org/license.txt for BSD license. -USING: help.markup help.syntax kernel quotations strings ; -IN: 4DNav - - -HELP: menu-3D -{ $values - { "gadget" "gadget" } -} -{ $description "The menu dedicated to 3D movements of the camera" } ; - -HELP: menu-4D -{ $values - - { "gadget" "gadget" } -} -{ $description "The menu dedicated to 4D movements of space" } ; - -HELP: menu-bar -{ $values - - { "gadget" "gadget" } -} -{ $description "return gadget containing menu buttons" } ; - -HELP: model-projection -{ $values - { "x" "interger" } - { "space" "space" } -} -{ $description "Project space following coordinate x" } ; - -HELP: mvt-3D-1 -{ $values - - { "quot" "quotation" } -} -{ $description "return a quotation to orientate space to see it from first point of view" } ; - -HELP: mvt-3D-2 -{ $values - - { "quot" "quotation" } -} -{ $description "return a quotation to orientate space to see it from second point of view" } ; - -HELP: mvt-3D-3 -{ $values - - { "quot" "quotation" } -} -{ $description "return a quotation to orientate space to see it from third point of view" } ; - -HELP: mvt-3D-4 -{ $values - - { "quot" "quotation" } -} -{ $description "return a quotation to orientate space to see it from first point of view" } ; - -HELP: load-model-file -{ $description "load space from file" } ; - -HELP: rotation-4D -{ $values - { "m" "a rotation matrix" } -} -{ $description "Apply a 4D rotation matrix" } ; - -HELP: translation-4D -{ $values - { "v" "vector" } -} -{ $description "Apply a 4D translation" } ; - - -ARTICLE: "implementation details" "How 4DNav is done" -"4DNav is build using :" - -{ $subsections - "4DNav.camera" - "adsoda-main-page" -} -; - -ARTICLE: "Space file" "Create a new space file" -"To build a new space, create an XML file using " { $vocab-link "adsoda" } " model description. A solid is not caracterized by its corners but is defined as the intersection of hyperplanes." - -$nl -"An example is:" -{ $code """ - - - 4 - - 4cube1 - 4 - 1,0,0,0,100 - -1,0,0,0,-150 - 0,1,0,0,100 - 0,-1,0,0,-150 - 0,0,1,0,100 - 0,0,-1,0,-150 - 0,0,0,1,100 - 0,0,0,-1,-150 - 1,0,0 - - - 4triancube - 4 - 1,0,0,0,160 - -0.4999999999999998,-0.8660254037844387,0,0,-130 - -0.5000000000000004,0.8660254037844384,0,0,-130 - 0,0,1,0,140 - 0,0,-1,0,-180 - 0,0,0,1,110 - 0,0,0,-1,-180 - 0,1,0 - - - triangone - 4 - 1,0,0,0,60 - 0.5,0.8660254037844386,0,0,60 - -0.5,0.8660254037844387,0,0,-20 - -1.0,0,0,0,-100 - -0.5,-0.8660254037844384,0,0,-100 - 0.5,-0.8660254037844387,0,0,-20 - 0,0,1,0,120 - 0,0,-0.4999999999999998,-0.8660254037844387,-120 - 0,0,-0.5000000000000004,0.8660254037844384,-120 - 0,1,1 - - - 1,1,1,1 - 0.2,0.2,0.6 - - 0.8,0.9,0.9 - -""" } ; - -ARTICLE: "TODO" "Todo" -{ $list - "A vocab to initialize parameters" - "an editor mode" - { $list "add a face to a solid" - "add a solid to the space" - "move a face" - "move a solid" - "select a solid in a list" - "select a face" - "display selected face" - "edit a solid color" - "add a light" - "edit a light color" - "move a light" - } - "add a tool wich give an hyperplane normal vector with enought points. Will use adsoda.intersect-hyperplanes with { { 0 } { 0 } { 1 } } " - "decorrelate 3D camera and activate them with select buttons" - -} ; - - -ARTICLE: "4DNav" "The 4DNav app" -{ $vocab-link "4DNav" } -$nl -{ $heading "4D Navigator" } -"4DNav is a simple tool to visualize 4 dimensionnal objects." -$nl -"It uses " { $vocab-link "adsoda" } " library to display a 4D space and navigate thru it." -$nl -"It will display:" -{ $list - { "a menu window" } - { "4 visualization windows" } -} -"Each visualization window represents the projection of the 4D space on a particular 3D space." - -{ $heading "Start" } -"type:" { $code "\"4DNav\" run" } - -{ $heading "Navigation" } -"Menu window is divided in 4 areas" -{ $list - { "a space-file chooser to select the file to display" } - { "a parametrization area to select the projection mode" } - { "4D submenu to translate and rotate the 4D space" } - { "3D submenu to move the camera in 3D space. Cameras in every 3D spaces are manipulated as a single one" } - } - -{ $heading "Links" } -{ $subsections - "Space file" - "TODO" - "implementation details" -} - -; - -ABOUT: "4DNav" diff --git a/unmaintained/4DNav/4DNav.factor b/unmaintained/4DNav/4DNav.factor deleted file mode 100644 index 8ba0788a6b..0000000000 --- a/unmaintained/4DNav/4DNav.factor +++ /dev/null @@ -1,567 +0,0 @@ -! Copyright (C) 2008 Jeff Bigot -! See http://factorcode.org/license.txt for BSD license. -USING: kernel -namespaces -accessors -assocs -make -math -math.functions -math.trig -math.parser -hashtables -sequences -combinators -continuations -colors -colors.constants -prettyprint -vars -quotations -io -io.directories -io.pathnames -help.markup -io.files -ui.gadgets.panes - ui - ui.gadgets - ui.traverse - ui.gadgets.borders - ui.gadgets.frames - ui.gadgets.tracks - ui.gadgets.labels - ui.gadgets.labeled - ui.gadgets.lists - ui.gadgets.buttons - ui.gadgets.packs - ui.gadgets.grids - ui.gadgets.corners - ui.gestures - ui.gadgets.scrollers -splitting -vectors -math.vectors -values -4DNav.turtle -4DNav.window3D -4DNav.deep -4DNav.space-file-decoder -models -fry -adsoda -adsoda.tools -; -QUALIFIED-WITH: ui.pens.solid s -QUALIFIED-WITH: ui.gadgets.wrappers w - - -IN: 4DNav -VALUE: selected-file -VALUE: translation-step -VALUE: rotation-step - -3 \ translation-step set-value -5 \ rotation-step set-value - -VAR: selected-file-model -VAR: observer3d -VAR: view1 -VAR: view2 -VAR: view3 -VAR: view4 -VAR: present-space - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! namespace utilities - -: closed-quot ( quot -- quot ) - namestack swap '[ namestack [ _ set-namestack @ ] dip set-namestack ] ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! waiting for deep-cleave-quots - -: 4D-Rxy ( angle -- Rx ) deg>rad -[ 1.0 , 0.0 , 0.0 , 0.0 , - 0.0 , 1.0 , 0.0 , 0.0 , - 0.0 , 0.0 , dup cos , dup sin neg , - 0.0 , 0.0 , dup sin , dup cos , ] 4 make-matrix nip ; - -: 4D-Rxz ( angle -- Ry ) deg>rad -[ 1.0 , 0.0 , 0.0 , 0.0 , - 0.0 , dup cos , 0.0 , dup sin neg , - 0.0 , 0.0 , 1.0 , 0.0 , - 0.0 , dup sin , 0.0 , dup cos , ] 4 make-matrix nip ; - -: 4D-Rxw ( angle -- Rz ) deg>rad -[ 1.0 , 0.0 , 0.0 , 0.0 , - 0.0 , dup cos , dup sin neg , 0.0 , - 0.0 , dup sin , dup cos , 0.0 , - 0.0 , 0.0 , 0.0 , 1.0 , ] 4 make-matrix nip ; - -: 4D-Ryz ( angle -- Rx ) deg>rad -[ dup cos , 0.0 , 0.0 , dup sin neg , - 0.0 , 1.0 , 0.0 , 0.0 , - 0.0 , 0.0 , 1.0 , 0.0 , - dup sin , 0.0 , 0.0 , dup cos , ] 4 make-matrix nip ; - -: 4D-Ryw ( angle -- Ry ) deg>rad -[ dup cos , 0.0 , dup sin neg , 0.0 , - 0.0 , 1.0 , 0.0 , 0.0 , - dup sin , 0.0 , dup cos , 0.0 , - 0.0 , 0.0 , 0.0 , 1.0 , ] 4 make-matrix nip ; - -: 4D-Rzw ( angle -- Rz ) deg>rad -[ dup cos , dup sin neg , 0.0 , 0.0 , - dup sin , dup cos , 0.0 , 0.0 , - 0.0 , 0.0 , 1.0 , 0.0 , - 0.0 , 0.0 , 0.0 , 1.0 , ] 4 make-matrix nip ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! UI -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: button* ( string quot -- button ) - closed-quot ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: model-projection-chooser ( -- gadget ) - observer3d> projection-mode>> - { { 1 "perspective" } { 0 "orthogonal" } } - ; - -: collision-detection-chooser ( -- gadget ) - observer3d> collision-mode>> - { { t "on" } { f "off" } } ; - -: model-projection ( x -- space ) - present-space> swap space-project ; - -: update-observer-projections ( -- ) - view1> relayout-1 - view2> relayout-1 - view3> relayout-1 - view4> relayout-1 ; - -: update-model-projections ( -- ) - 0 model-projection view1> model<< - 1 model-projection view2> model<< - 2 model-projection view3> model<< - 3 model-projection view4> model<< ; - -: camera-action ( quot -- quot ) - '[ drop _ observer3d> - with-self update-observer-projections ] - closed-quot ; - -: win3D ( text gadget -- ) - "navigateur 4D : " rot append open-window ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! 4D object manipulation -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: (mvt-4D) ( quot -- ) - present-space> - swap call space-ensure-solids - >present-space - update-model-projections - update-observer-projections ; inline - -: rotation-4D ( m -- ) - '[ _ [ [ middle-of-space dup vneg ] keep - swap space-translate ] dip - space-transform - swap space-translate - ] (mvt-4D) ; - -: translation-4D ( v -- ) '[ _ space-translate ] (mvt-4D) ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! menu -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: menu-rotations-4D ( -- gadget ) - 3 3 - { 1 1 } >>filled-cell - 1 >>fill - "XY +" [ drop rotation-step 4D-Rxy rotation-4D ] - button* add-gadget - "XY -" [ drop rotation-step neg 4D-Rxy rotation-4D ] - button* add-gadget - @top-left grid-add - 1 >>fill - "XZ +" [ drop rotation-step 4D-Rxz rotation-4D ] - button* add-gadget - "XZ -" [ drop rotation-step neg 4D-Rxz rotation-4D ] - button* add-gadget - @top grid-add - 1 >>fill - "YZ +" [ drop rotation-step 4D-Ryz rotation-4D ] - button* add-gadget - "YZ -" [ drop rotation-step neg 4D-Ryz rotation-4D ] - button* add-gadget - @center grid-add - 1 >>fill - "XW +" [ drop rotation-step 4D-Rxw rotation-4D ] - button* add-gadget - "XW -" [ drop rotation-step neg 4D-Rxw rotation-4D ] - button* add-gadget - @top-right grid-add - 1 >>fill - "YW +" [ drop rotation-step 4D-Ryw rotation-4D ] - button* add-gadget - "YW -" [ drop rotation-step neg 4D-Ryw rotation-4D ] - button* add-gadget - @right grid-add - 1 >>fill - "ZW +" [ drop rotation-step 4D-Rzw rotation-4D ] - button* add-gadget - "ZW -" [ drop rotation-step neg 4D-Rzw rotation-4D ] - button* add-gadget - @bottom-right grid-add -; - -: menu-translations-4D ( -- gadget ) - 3 3 - { 1 1 } >>filled-cell - 1 >>fill - 1 >>fill - "X+" [ drop { 1 0 0 0 } translation-step v*n - translation-4D ] - button* add-gadget - "X-" [ drop { -1 0 0 0 } translation-step v*n - translation-4D ] - button* add-gadget - add-gadget - "YZW"