! 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"