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
|
* bugs
- There is a pretty strange bug in kig when you use the accel keys.
Open Kig, type p to start constructing a point. Click somewhere to
construct one. Now click p again, and press escape to cancel the
construction. It will not work, and you will have to construct as
many points as times you pressed escape ( or perhaps the times you
pressed esc square or sth like that ). Anyway, this is due to how
Kig works with some strange Qt event loop stuff to make its modes
work, along with a strange way in kaccel of working. I have a
patch against kdecore/kaccel.cpp that should fix it, but the real
fix is to get rid of the entire event loop stuff and think of a
better way to manage all this. pino: seems pressing the stop button
n times, where n are the times you pressed escape, cancel all the
constructions, so the problem is the behaviour of escape.
- The polar coordinate system blocks Kig when zooming. Select the
polar coordinate system, use the Select shown area tool ( or your
favorite zooming tool ) and select a specific part of the document.
Smaller parts of the document cause bigger problems. pino: this is
due to the polar grid: try to make zoom if there is no grid.
* I/O: filters, exporters, ...
- add other command line options, like:<br />
-e, --export-to FORMAT file.kig => Kig will export file.kig ( or any
other supported format ) into file.ext ( even more than one file ).
The output format depends on the FORMAT string. domi: this is more
difficult, because the export plugins require extra parameters.
E.g. the ImageExporter needs an image size etc.
- filters: more input filters; improve the existent ones ( see
filters/*-filter-status.txt ); add the possibility to ignore errors
on loading
- "export to *": add stuff like java applets, kmplot documents, etc...
* objects
- Two new transformations: projection on a line, orthogonally and
according to a given direction. As a mathematician, I'm supposed to
have a grudge against these, as they don't fit the definition for
affine transformations ( the matrix has to be regular ) ;), but I
suppose high-school students may find them useful. However,they
would give rather useless results for e.g. lines ( all curves are
almost always projected on a line, segment or ray that you wouldn't
see because it's equal to the line we project upon ). It would be
useful for points though.
- make DoubleImp a "visible" object with uses like Dr. Geo numeric
values.
- Provide some nice stuff for differential geometry: velocity vector
of a curve, curvature vector, osculating parabole. Most of this is
not too difficult to implement, but very cool :)
- create a formula label to display math formulas in the document, and
allow for importing from/exporting to other formula formats such as
KFormula, OOFormula and MathML.
- other types of fillable shapes, like arc sector, arc segment...
- defined integrals, as a particular case of filled shapes.
- improve *a lot* the transformation support for cubics.
* GUI
- make stuff from RMB menu's accessible from other places as well.
- Add the possibility to select, via new dialog, one or more types of
object.
- add a magnifying glass/zoom window to magnify "on-the-fly" a part of
the document.
- improve the KTextEditor interface in the script code wizard.
- make the dialogs not pop up over the main window.
- add QTooltip and QWhatsThis to the widgets in the various dialogs
(export dialogs, types dialog, ...)
* core
- When selecting an argument of a certain type, maybe we should check
whether the required arguments are really there, before telling the
user to select them. Then we could give an error telling the user
to first construct the other objects. An exception should be made
for points of course.
- Add the possibility to attach text label also to angles.
- add the possibility to transform more than one object at one time,
using the popup menu. For example, I select two circles, I choose
Transform->Translate form the RMB menu and then Kig should ask me for
a vector to use to translate all the selected objects.
- add support for work with other measure units (cm, inches, etc...)
than just pixels...
- extend ObjectFactory::sensiblePointCalcer to also construct
intersection points of stuff... (pino: done for lines)
- when moving an object that wants to move its parents, try to check if
it is itself not an indirect child of one of the parents it is
trying to move, and forbid the move in that case, as it will lead
to chaotic behaviour. I am not sure if this is really well
possible, but I have to look at it.
- add intersection types: arc-arc; arc-conic; arc-cubic; conic-cubic;
cubic-cubic; locus-other object.
- rework the ObjectConstructor and GUIAction stuff into something more
general, and more clean. See the comment for
ObjectConstructor::constructMode().
- figure out a way to allow the user to enable and disable certain
features. E.g. I have been asked to allow the user to limit himself
to compass-ruler constructions..
- add another viewmode ( which would be completely orthogonal to the
KigMode concept ), where you can more clearly see the dependencies
in a figure. Something with colours, numberings, and/or a tree-like
text representation of the dependencies..
* scripting
- Python scripting: export cubics for real, improve existing API.
- make the scripting system work more like the macro system. Make it
a way to define new object types that can be reused more than once,
instead of making it just a way to add *one* object.
- support for more scripting languages than just Python.
* other
- document mathematical i18n strings, so that the translators have a
clue about how to translate them !
- write cabri-filter-status.txt.
- add "Tools": easy tools designed for geometry, like Angle converter and
so on...
- save a "session", i.e.: record how a document is moved, and save it to
e.g. a flash file or something like that.
- koffice support ?
* future ?
- there should be a way to link a figure to a (html?) file containing
exercises. Teachers would be able to create exercises for Kig.
I'm thinking of doing this with HTML (& KHTML) + scripting ( but
this is _distant_ future.. )
|