]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/4DNav/4DNav-docs.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / unmaintained / 4DNav / 4DNav-docs.factor
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 ;
4 IN: 4DNav
5
6 HELP: (mvt-4D)
7 { $values
8      { "quot" quotation }
9 }
10 { $description "" } ;
11
12 HELP: 4D-Rxw
13 { $values
14      { "angle" null }
15      { "Rz" null }
16 }
17 { $description "" } ;
18
19 HELP: 4D-Rxy
20 { $values
21      { "angle" null }
22      { "Rx" null }
23 }
24 { $description "" } ;
25
26 HELP: 4D-Rxz
27 { $values
28      { "angle" null }
29      { "Ry" null }
30 }
31 { $description "" } ;
32
33 HELP: 4D-Ryw
34 { $values
35      { "angle" null }
36      { "Ry" null }
37 }
38 { $description "" } ;
39
40 HELP: 4D-Ryz
41 { $values
42      { "angle" null }
43      { "Rx" null }
44 }
45 { $description "" } ;
46
47 HELP: 4D-Rzw
48 { $values
49      { "angle" null }
50      { "Rz" null }
51 }
52 { $description "" } ;
53
54 HELP: 4DNav
55 { $description "" } ;
56
57 HELP: >observer3d
58 { $values
59      { "value" null }
60 }
61 { $description "" } ;
62
63 HELP: >present-space
64 { $values
65      { "value" null }
66 }
67 { $description "" } ;
68
69
70 HELP: >view1
71 { $values
72      { "value" null }
73 }
74 { $description "" } ;
75
76 HELP: >view2
77 { $values
78      { "value" null }
79 }
80 { $description "" } ;
81
82 HELP: >view3
83 { $values
84      { "value" null }
85 }
86 { $description "" } ;
87
88 HELP: >view4
89 { $values
90      { "value" null }
91 }
92 { $description "" } ;
93
94 HELP: add-keyboard-delegate
95 { $values
96      { "obj" object }
97      { "obj" object }
98 }
99 { $description "" } ;
100
101 HELP: button*
102 { $values
103      { "string" string } { "quot" quotation }
104      { "button" null }
105 }
106 { $description "" } ;
107
108 HELP: camera-action
109 { $values
110      { "quot" quotation }
111      { "quot" quotation }
112 }
113 { $description "" } ;
114
115 HELP: camera-button
116 { $values
117      { "string" string } { "quot" quotation }
118      { "button" null }
119 }
120 { $description "" } ;
121
122 HELP: controller-window*
123 { $values
124      { "gadget" "a gadget" } 
125 }
126 { $description "" } ;
127
128
129 HELP: init-models
130 { $description "" } ;
131
132 HELP: init-variables
133 { $description "" } ;
134
135 HELP: menu-3D
136 { $values
137      { "gadget" null }
138 }
139 { $description "The menu dedicated to 3D movements of the camera" } ;
140
141 HELP: menu-4D
142 { $values
143     
144      { "gadget" null }
145 }
146 { $description "The menu dedicated to 4D movements of space" } ;
147
148 HELP: menu-bar
149 { $values
150     
151      { "gadget" null }
152 }
153 { $description "return gadget containing menu buttons" } ;
154
155 HELP: model-projection
156 { $values
157      { "x" null }
158      { "space" null }
159 }
160 { $description "Project space following coordinate x" } ;
161
162 HELP: mvt-3D-1
163 { $values
164     
165      { "quot" quotation }
166 }
167 { $description "return a quotation to orientate space to see it from first point of view" } ;
168
169 HELP: mvt-3D-2
170 { $values
171     
172      { "quot" quotation }
173 }
174 { $description "return a quotation to orientate space to see it from second point of view" } ;
175
176 HELP: mvt-3D-3
177 { $values
178     
179      { "quot" quotation }
180 }
181 { $description "return a quotation to orientate space to see it from third point of view" } ;
182
183 HELP: mvt-3D-4
184 { $values
185     
186      { "quot" quotation }
187 }
188 { $description "return a quotation to orientate space to see it from first point of view" } ;
189
190 HELP: observer3d
191 { $description "" } ;
192
193 HELP: observer3d>
194 { $values
195     
196      { "value" null }
197 }
198 { $description "" } ;
199
200 HELP: present-space
201 { $description "" } ;
202
203 HELP: present-space>
204 { $values
205     
206      { "value" null }
207 }
208 { $description "" } ;
209
210 HELP: load-model-file
211 { $description "load space from file" } ;
212
213 HELP: rotation-4D
214 { $values
215      { "m" "a rotation matrix" }
216 }
217 { $description "Apply a 4D rotation matrix" } ;
218
219 HELP: translation-4D
220 { $values
221      { "v" null }
222 }
223 { $description "" } ;
224
225 HELP: update-model-projections
226 { $description "" } ;
227
228 HELP: update-observer-projections
229 { $description "" } ;
230
231 HELP: view1
232 { $description "" } ;
233
234 HELP: view1>
235 { $values
236     
237      { "value" null }
238 }
239 { $description "" } ;
240
241 HELP: view2
242 { $description "" } ;
243
244 HELP: view2>
245 { $values
246     
247      { "value" null }
248 }
249 { $description "" } ;
250
251 HELP: view3
252 { $description "" } ;
253
254 HELP: view3>
255 { $values
256     
257      { "value" null }
258 }
259 { $description "" } ;
260
261 HELP: view4
262 { $description "" } ;
263
264 HELP: view4>
265 { $values
266     
267      { "value" null }
268 }
269 { $description "" } ;
270
271 HELP: viewer-windows*
272 { $description "" } ;
273
274 HELP: win3D
275 { $values
276      { "text" null } { "gadget" null }
277 }
278 { $description "" } ;
279
280 HELP: windows
281 { $description "" } ;
282
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:"
285 $nl
286
287 "\n<model>"
288 "\n<space>"
289 "\n <dimension>4</dimension>"
290 "\n <solid>"
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>"
302 "\n </solid>"
303 "\n <solid>"
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>"
314 "\n </solid>"
315 "\n <solid>"
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>"
328 "\n </solid>"
329 "\n <light>"
330 "\n     <direction>1,1,1,1</direction>"
331 "\n     <color>0.2,0.2,0.6</color>"
332 "\n </light>"
333 "\n <color>0.8,0.9,0.9</color>"
334 "\n</space>"
335 "\n</model>"
336
337
338 ;
339
340 ARTICLE: "TODO" "Todo"
341 { $list 
342     "A file chooser"
343     "A vocab to initialize parameters"
344     "an editor mode" 
345         { $list "add a face to a solid"
346                 "add a solid to the space"
347                 "move a face"
348                 "move a solid"
349                 "select a solid in a list"
350                 "select a face"
351                 "display selected face"
352                 "edit a solid color"
353                 "add a light"
354                 "edit a light color"
355                 "move a light"
356                 }
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"
359
360
361
362 } ;
363
364
365 ARTICLE: "4DNav" "4DNav"
366 { $vocab-link "4DNav" }
367 $nl
368 { $heading "4D Navigator" }
369 "4DNav is a simple tool to visualize 4 dimensionnal objects."
370 "\n"
371 "It uses " { $vocab-link "adsoda" } " library to display a 4D space and navigate thru it."
372
373 "It will display:"
374 { $list
375     { "a menu window" }
376     {  "4 visualization windows" }
377 }
378 "Each window represents the projection of the 4D space on a particular 3D space."
379 $nl
380
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"
387 $nl
388
389
390
391
392 { $heading "Links" }
393 { $subsection "Space file" }
394
395 { $subsection "TODO" }
396
397
398 ;
399
400 ABOUT: "4DNav"