~ubuntu-branches/ubuntu/lucid/structure-synth/lucid

« back to all changes in this revision

Viewing changes to notes.txt

  • Committer: Bazaar Package Importer
  • Author(s): Miriam Ruiz
  • Date: 2009-04-13 13:28:45 UTC
  • Revision ID: james.westby@ubuntu.com-20090413132845-d7d42t4llxjxq0ez
Tags: upstream-0.9
ImportĀ upstreamĀ versionĀ 0.9

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
TODO list and scratch pad for Structure Synth. /Mikael
 
2
 
 
3
Next version:
 
4
- Show hour-glass when making long operations (before progress when rendering...)    
 
5
- Better sphere implementation (remember transformation thing...)
 
6
 
 
7
Request:
 
8
- Remember file extension.
 
9
 
 
10
Template Rendering Dialog:
 
11
 
 
12
 
 
13
Choose Template:
 
14
[Sunflow.template] [<]
 
15
 
 
16
(o) Render to file: [c:\testmig.es] [File...]
 
17
        [x] add unique ID to filename
 
18
( ) Render to clipboard.
 
19
 
 
20
Output Size:
 
21
X: 640 Y: 400. [x] Lock Aspect
 
22
 
 
23
[x] Modify Template before applying:
 
24
(changes to template are not saved on disk)
 
25
 
 
26
Post processing:
 
27
[x] Modify export before saving
 
28
[x] Run the following commands after export:
 
29
    C:\sunflow\sunflow.bat {File}
 
30
 
 
31
 
 
32
 
 
33
 
 
34
 
 
35
 
 
36
 
 
37
Make Debug moc'ing on release...
 
38
 
 
39
Debug.Info(...);
 
40
Debug.ShowProgress(...);
 
41
Debug.SetProgress(...);   // TODO: Should throw exception if cancelled...
 
42
Debug.HideProgress();
 
43
Debug.Message(...);
 
44
 
 
45
Builder.load(filename);
 
46
Builder.replace(before, after);
 
47
QString text = Builder.applyTemplate(...);
 
48
Builder.run();
 
49
 
 
50
IO.save(text, filename);
 
51
IO.spawnProcess(...);
 
52
IO.saveImage(filename); // For OpenGL output...
 
53
 
 
54
About box sizing on Mac.
 
55
Change 'mac.pro' -> 'StructureSynth.pro'
 
56
Check copy paste menu
 
57
 
 
58
Template Render Dialog
 
59
----------------------
 
60
Save file as:
 
61
Default file path: [...............] [Dir...]
 
62
File name: [Output0001.es] [File...]
 
63
 
 
64
Post processing:
 
65
[ ] Run the following command after saving picture.
 
66
    [C:\program files\Sunflow\Sunflow.bat {FILENAME}]
 
67
   
 
68
 Edit script before saving:
 
69
[                  ]
 
70
[                  ]
 
71
[                  ]
 
72
[                  ]
 
73
 
 
74
 
 
75
 
 
76
 
 
77
On startup -> show 3D view nav info...
 
78
Help -> add weblinks...
 
79
 
 
80
- Restructure: 
 
81
        -Check directory structure.
 
82
        -Comments
 
83
                                
 
84
- Website: 
 
85
    - add section links.
 
86
    - tutorials: 'EisenScript Kata'
 
87
 
 
88
- JanJacobSV has some interesting 3D experiments with CFDG and Virtools. http://www.youtube.com/watch?v=KWgQ8XIPAio
 
89
        
 
90
- [Collada] Support? (http://www.khronos.org/collada/)
 
91
 
 
92
- VRML example (could be fun)
 
93
 
 
94
 
 
95
 
 
96
 
 
97
 
 
98
 
 
99
 
 
100
EisenScript
 
101
-----------
 
102
 
 
103
Structures are specified in EisenScript (named after the russian film director Sergei Eisenstein). 
 
104
 
 
105
EisenScript is processed by the Eisenstein Engine by the following steps:
 
106
1) Preprocessor (strips comments imports '#include' statements).
 
107
2) Tokenizer (divides string input into symbols. The string input is split at any white space (except if it occurs inside quotes).)  
 
108
3) Parser (standard recursive descent parser). The parser creates a 'ruleset' from the text input. 
 
109
4) Name resolving. Rules contain symbolic references to other rules. These symbols must be resolved.
 
110
 
 
111
The EBNF notation for EisenScript looks like this:
 
112
 
 
113
program = { set | rule } ;
 
114
rule = 'RULE' ,  rule_name , [ weight ] , '{' , { set | action } , '}' ;
 
115
action = { transformationloop } [transformationlist] rule_ref ;
 
116
transformationloop = number , '*' , transformationlist ;
 
117
transformationlist = '{' , { transformation } , '}';
 
118
transformation = 'X' , number |                      // translations
 
119
                 'Y' , number |
 
120
                 'Z' , number |
 
121
                 'RX', number |                                          // rotation about axis
 
122
                 'RY', number |
 
123
                 'RZ', number |
 
124
                 'S', number |                                           // resizing (all axis equal)
 
125
                 'S', number number number,              // resizing for x,y,z individually
 
126
                 
 
127
set = 'SET' , var_name , string ;
 
128
 
 
129
'rule_ref', 'var_name', and 'string' are text strings with a reasonable set of allowed characters.
 
130
Though not strictly a part of the syntax, a few rules are provided as predefined primitives in Structure Synth:
 
131
 
 
132
Primitives: 
 
133
-----------
 
134
box      - solid box
 
135
grid     - wireframe box
 
136
sphere   - 
 
137
line     - along x axis, centered in y,z plane.
 
138
point    - centered in coordinate system.
 
139
cylinder - the symmetry axis will be the current x axis.
 
140
pbox     - continues box (will be drawn smoothly as the coordinate system transforms).
 
141
pcylinder- polygonal cylinder (will be drawn smoothly as the coordinate system transforms).
 
142
tube     - (With number of division)
 
143