1 ! Copyright (C) 2008 Jean-François Bigot.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: help.markup help.syntax kernel quotations strings ;
94 HELP: add-keyboard-delegate
103 { "string" string } { "quot" quotation }
106 { $description "" } ;
113 { $description "" } ;
117 { "string" string } { "quot" quotation }
120 { $description "" } ;
122 HELP: controller-window*
124 { "gadget" "a gadget" }
126 { $description "" } ;
130 { $description "" } ;
133 { $description "" } ;
139 { $description "The menu dedicated to 3D movements of the camera" } ;
146 { $description "The menu dedicated to 4D movements of space" } ;
153 { $description "return gadget containing menu buttons" } ;
155 HELP: model-projection
160 { $description "Project space following coordinate x" } ;
167 { $description "return a quotation to orientate space to see it from first point of view" } ;
174 { $description "return a quotation to orientate space to see it from second point of view" } ;
181 { $description "return a quotation to orientate space to see it from third point of view" } ;
188 { $description "return a quotation to orientate space to see it from first point of view" } ;
191 { $description "" } ;
198 { $description "" } ;
201 { $description "" } ;
208 { $description "" } ;
210 HELP: load-model-file
211 { $description "load space from file" } ;
215 { "m" "a rotation matrix" }
217 { $description "Apply a 4D rotation matrix" } ;
223 { $description "" } ;
225 HELP: update-model-projections
226 { $description "" } ;
228 HELP: update-observer-projections
229 { $description "" } ;
232 { $description "" } ;
239 { $description "" } ;
242 { $description "" } ;
249 { $description "" } ;
252 { $description "" } ;
259 { $description "" } ;
262 { $description "" } ;
269 { $description "" } ;
271 HELP: viewer-windows*
272 { $description "" } ;
276 { "text" null } { "gadget" null }
278 { $description "" } ;
281 { $description "" } ;
283 ARTICLE: "Space file" "Create a new space file"
284 "\nTo build a new space, create an XML file using " { $vocab-link "adsoda" } " model description. \nAn example is:"
289 "\n <dimension>4</dimension>"
291 "\n <name>4cube1</name>"
292 "\n <dimension>4</dimension>"
293 "\n <face>1,0,0,0,100</face>"
294 "\n <face>-1,0,0,0,-150</face>"
295 "\n <face>0,1,0,0,100</face>"
296 "\n <face>0,-1,0,0,-150</face>"
297 "\n <face>0,0,1,0,100</face>"
298 "\n <face>0,0,-1,0,-150</face>"
299 "\n <face>0,0,0,1,100</face>"
300 "\n <face>0,0,0,-1,-150</face>"
301 "\n <color>1,0,0</color>"
304 "\n <name>4triancube</name>"
305 "\n <dimension>4</dimension>"
306 "\n <face>1,0,0,0,160</face>"
307 "\n <face>-0.4999999999999998,-0.8660254037844387,0,0,-130</face>"
308 "\n <face>-0.5000000000000004,0.8660254037844384,0,0,-130</face>"
309 "\n <face>0,0,1,0,140</face>"
310 "\n <face>0,0,-1,0,-180</face>"
311 "\n <face>0,0,0,1,110</face>"
312 "\n <face>0,0,0,-1,-180</face>"
313 "\n <color>0,1,0</color>"
316 "\n <name>triangone</name>"
317 "\n <dimension>4</dimension>"
318 "\n <face>1,0,0,0,60</face>"
319 "\n <face>0.5,0.8660254037844386,0,0,60</face>"
320 "\n <face>-0.5,0.8660254037844387,0,0,-20</face>"
321 "\n <face>-1.0,0,0,0,-100</face>"
322 "\n <face>-0.5,-0.8660254037844384,0,0,-100</face>"
323 "\n <face>0.5,-0.8660254037844387,0,0,-20</face>"
324 "\n <face>0,0,1,0,120</face>"
325 "\n <face>0,0,-0.4999999999999998,-0.8660254037844387,-120</face>"
326 "\n <face>0,0,-0.5000000000000004,0.8660254037844384,-120</face>"
327 "\n <color>0,1,1</color>"
330 "\n <direction>1,1,1,1</direction>"
331 "\n <color>0.2,0.2,0.6</color>"
333 "\n <color>0.8,0.9,0.9</color>"
340 ARTICLE: "TODO" "Todo"
343 "A vocab to initialize parameters"
345 { $list "add a face to a solid"
346 "add a solid to the space"
349 "select a solid in a list"
351 "display selected face"
357 "add a tool wich give an hyperplane normal vector with enought points. Will use adsoda.intersect-hyperplanes with { { 0 } { 0 } { 1 } } "
358 "decorrelate 3D camera and activate them with select buttons"
365 ARTICLE: "4DNav" "4DNav"
366 { $vocab-link "4DNav" }
368 { $heading "4D Navigator" }
369 "4DNav is a simple tool to visualize 4 dimensionnal objects."
371 "It uses " { $vocab-link "adsoda" } " library to display a 4D space and navigate thru it."
376 { "4 visualization windows" }
378 "Each window represents the projection of the 4D space on a particular 3D space."
381 { $heading "Initialization" }
382 "put the space file " { $strong "space-exemple.xml" } " in temp directory"
383 " and then type:" { $code "\"4DNav\" run" }
384 { $heading "Navigation" }
385 "4D submenu move the space in translations and rotation."
386 "\n3D submenu move the camera in 3D space. Cameras in every 3D spaces are manipulated as a single one"
393 { $subsection "Space file" }
395 { $subsection "TODO" }