File: todo.txt

package info (click to toggle)
mathgl 8.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 248,044 kB
  • sloc: cpp: 87,365; ansic: 3,299; javascript: 3,284; pascal: 1,562; python: 52; sh: 51; makefile: 47; f90: 22
file content (195 lines) | stat: -rw-r--r-- 9,766 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
-Wall -Wsuggest-attribute=pure -Wsuggest-attribute=const

============= FAR FUTURE ================

1. Export to COLLADA or X3D !!!
2. Read DICOM, MAT, WFM files

3. Contour lines for bilinear interpolation (strong saddle-like faces) -- best way by adding curve primitive (type=5)?!?
4. 3D text (with depth), and text along 3D curve (for Quality=3) ???
5. Get true coordinates in CalcXYZ for curved equations too.
6. Extra markers for '&' and '&#' signs ?!? or user-defined signs

7. Improve z-order for rapidly oscillating surfaces (сравнение проекций центров на грань -- too slow)

8. Enable consecutive (as multiplication of matrices instead of single summary one) rotation of axis + the same in JS. Problem with widgets?!?

9. Export background image to svg ???

10. Frames by mouse in UDAV ???
	A. мысли о frame??? для группы графиков -- не "удалять" их, а запихивать в отдельный кадр -- вопрос что с анимацией???
	B. как делать анимацию (кадры) для мышиной версии ... список кадров, кнопки добавить в кадры + вставить из кадра

11. Parallel drawing in QMathGL (looks to complicated -- FLTK is better!)
12. \overline{\overline{a}} ???
13. Use arrow_plot_3d ???
14. Mask in SVG ???
15. Add quadratic and cubic Bezier curves as primitives (update export to SVG/EPS + simplify some functions) ?!?
16. Bypass realloc() ???
17. Add PGM|PPM export (see https://en.wikipedia.org/wiki/Netpbm_format)

18. Chord diagram ???
19. Dendrogram specified by string "{val, {lVal,{...},{...}}, {rVal,{...},{...}} }" with styles: 's' for hor/vert lines, or straight lines by default ???
20. Voronoi diagram ??? -- triangulation + coloring by point

21. Quality=3 for mirror+shadows + arrow_plot_3d? Could be in bitmap only mode
22. Flag to determine discontinuous surfaces in 'fsurf'
23. mgl.cgi -- add log-file{IP,time,script}, add file-password (enable I/O if pass is the same as in a file)

18. Unicode/UTF8 in legend-option ?

============= NEW FEATURES =============

1. Centered curved text (see text2)
2. Add "text3d x y z lx ly lz nx ny nz 'txt' ['stl'='' depth=0.1 depth2=nan]"
3. Recurrence plot u_{ij} = |a_i-a_j|<epsilon && Cross-reccurence plot u_{ij} = |a_i-b_j|<epsilon. See http://www.recurrence-plot.tk/crps.php
4. Calendar diagram -- 1D data as dens for 7-row (day) or 12-row (months) + divisions at month or year

5. Add robustness function (i.e. norm) for fitting (like u^2 -- default, abs(u), exp(abs(u)), exp(u^2), u^4, log(1+u^2) and so on).

6. Add several fonts and use it as '\1{A} is sth'
7. Use FreeType for getting font/glyph information. This need quick drawing of quadratic and cubic Bezier curves (see example5.cpp). https://www.freetype.org/freetype2/docs/tutorial/step3.html -- add optimization of bezier curves by number of points. Use it as glyph definition or as default source for all/unknown glyphs!?
8. Add mgl_set_font_hscale() to MGL

9. Triangulation in 3d + rewrite crust (test 2d version too). See https://en.wikipedia.org/wiki/Bowyer%E2%80%93Watson_algorithm

10. Algorithm of combining primitives with the same color to the larger one.

11. Add mgl_setup_paths(MGL_FONT_PATH, MGL_INSTALL_DIR) for replacing default paths

12. Add "map res 'eqs' 'vars' ini ['how' A B C [D E]]" -- like "ode" but just simple mapping + progonka.

13. Bug for log-ticks for x<1 in the case x \in [0.6, 10]

ZZ. Update *.i for new functions {before release!!!}

curve_draw: step?, bifurcation?, flow3d

============= DOCUMENTATION =============

A. Paper about MathGL!!!
B. Add chapter with real samples
C. Translate to Russian everything
D. Docs about JS interface

0. Update Qt and UDAV figures
1. Update installation (dll from mgl_script + Qt plugins/ + Win10)

2. Add more samples:
	* Example of 'contp', 'flowp'
	* Example of frame manipulation
	* Example of 'title' style '#'
	* Example of 'triplot'+'quadplot' with colors per-face
	* Example of 'tricontv'
	* Example of 'grad_xyz'
	* Example of 'flow', 'pipe' style '*'.
	* Example of 'fsurf'
	* Example of 'tile','tiles' styles 'x', 'z'
	* Example of 'lamerey' style '~'
	* Example of 'iris', extended
	* Example of wired 'area' and 'region' (2d case), 'region' with !z1||!z2 (?!?)
	* Example of 'step' with markers; 'barh', 'bars' (3d) style 'F'
	* Example of CalcXYZ()
	* Example of 'clf' with color, 'rasterize', 'loadbackground', 'logo'
	* Example of 'pde' in 3d, and 'qo3d'
	* Example of 'tridmat' in all 5 modes, and for real numbers too.
	* Example of "data" creation {'list', 'def*','ask','{OP DAT}'}
	* Example of 'rk_step'
	* Example of 'openhdf'
	* Extend examples of 'fit' and 'hist' in multi-dimension case.
	* Example of complex 'hankel' for PDE solving
	* Example of 'wavelet'
	* Example of time-values in formulas (like hh-mm-ss_DD.MM.YYYY or hh-mm-ss or DD.MM.YYYY)
	* Example of Step, Bars for x.nx = y.nx+1
	* Example of `dat <==> Transpose(dat).
	* Example of 'coil'
	* Example of 'roots'
	* Example of custom dialog
	* Example of 'progress'
	* Example of 'shuffle'
	* Example of 'brownian'
	
3. Docs about mgllab (overview, dialogs, ...)
4. Example of Evaluate + ".mx" ???

5. Docs about 'connect' ???
6. Update Widget() to return Fl_MGLView (not Fl_MathGL);
7. Add doc about mglWnd::Window();
8. Add docs about Fl_MGLView.

9. Docs and sample about 'tricontv'

19. Docs about mgltask: $1,$2,$3 loops, $0 is rnd, $R are formulas for R=a,b,...,z, which depend on v0=$0, v1=$1, v2=$2, v3=$3.

ZZ. Update time.texi {before release!!!}

как начать пользоваться (quickstart)
как скомпилировать и установить (building & installing)
как запустить (running)
как протестировать свои правки (testing)
как настроить (configuration)
какие есть примеры использования (examples)



Shortly, there are 3 steps:
1. Download binary for the platform you want to use (32bit or 64bit) and unpack it somewhere. Note, if mix 32bit and 64bit binaries in the same executable, when a compiler under Windows will not give warning about it, but yours program will be crushed!
2. Get all requires libraries (probably some of them is installed on your PC). Also you can just use MathgL utilities (like, http://downloads.sourceforge.net/mathgl/mgl_scripts-2.4.2.win64.7z) which contain all required DLLs.
3. Use MathGL libraries. For MinGW (or clang, or GNU gcc, and so on) compiler you just need to provide option -I path_incl, -L path_lib, where path_inc and path_lib are paths to MathGL include/ and lib/ folders. Alternatively, you can copy MathGL binaries to the MinGW folders (include/ to include/, lib/ to lib/ and so on) and do nothing special else. For Visual Studio you need to create the import library first. Finally, add the MathGL library to the project -- in MinGW compiler add option -lmgl (and similar ones if you use MathGL widgets).

Instead of steps 1-2, you can download sources and build the MathGL libraries with dependencies/features, which you need. Note, that minimal version have no external dependencies but support plot export to BMP, EPS and SVG only, have no special functions, nonlinear fitting and use slow Fourier transform. The build system use CMake and is rather standard. After building binaries, continue from step 3 :-).

============= mgllab ===========

* Manual data changing should be written into script ?!?
* Check: "You can shift axis range by pressing middle button and moving mouse. Also, you can zoom in/out axis range by using mouse wheel."
* Shift/Zoom/Perspective by mouse!!!
* 1d view -- over longer size + y-size for current slice only
* info about used memory for graphics
* "debug" mode?!? or breakpoints?!
* something strange with highlighting
* collect mouse clicks to draw line(s) and save it into data
* select 'bbox' by mouse
* dialog to visual construct "custom dialog" + read/add "##d" to the end of file.
* check manual dash/mask

* use mgl_default_graph() for drawing ???
* use mglDataList for viewing/changing in GUI data from external languages (like, Python, ...) ???

X. Own file-chooser dialog -- separate path and fname fields + add sorting by date|size ???
Y. Window with Zoom/Hidden ???

============= UDAV =============

1. Zoom rectangle after mouse selection

3. Manual data changing should be written into script
	a. Suggest to save into HDF5 if data changed manually
	b. Each manual change in cell produce command like 'put dat val i j k'
	c. Add command to insert as 'list'
	d. Reset script after saving to HDF5 or putting to main script
	e. Ask about script changes before closing data tab
4. List of constants into the list of data?!
5. Add color cycle ???
6. Color position in color scheme dialog
7. Select 'bbox' by mouse
9. Save data from the summary panel
10. Select subdata section (between NAN in curve) by mouse + adding it to script ?!!
11. Zoom in a region by middle mouse (if not in rotation mode)
* "debug" mode?!? or breakpoints?!
* collect mouse clicks to draw line(s) and save it into data
* Animation from ##c, ##a + remove old entries at "Put to script" (the same in mgllab)
* Custom dialog in QMathGL

* Check autoResize=true

* use mgl_default_graph() for drawing ???
* use mglDataList for viewing/changing in GUI data from external languages (like, Python, ...) ???

============= UNSURE ===========

1. GTK window/widgets ???
2. "Cut off" curves if text is printed inside it (for contour labels) ?!?
5. Check RunThr() in python/octave
6. Auto axis range for formulas, like AutoRange("y(x)") or AutoRange('x',"x(t)").
7. Use Hershey as built-in font ??? -- for smaller size only