• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kig

  • sources
  • kde-4.12
  • kdeedu
  • kig
  • filters
kseg-defs.h
Go to the documentation of this file.
1 // Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
2 
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16 // MA 02110-1301, USA.
17 
18 // this is a collection of definitions we need from KSeg. It includes
19 // code from defs.H and G_drawstyle.H. Thanks to Ilya Baran for
20 // making KSeg GPL, so there are no license probs or whatever..
21 
22 /*
23  * KSeg
24  * Copyright (C) 1999-2003 Ilya Baran <ibaran@mit.edu>
25  *
26  * This program is free software; you can redistribute it and/or modify
27  * it under the terms of the GNU General Public License as published by
28  * the Free Software Foundation; either version 2 of the License, or
29  * (at your option) any later version.
30  *
31  * This program is distributed in the hope that it will be useful,
32  * but WITHOUT ANY WARRANTY; without even the implied warranty of
33  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34  * GNU General Public License for more details.
35  *
36  * You should have received a copy of the GNU General Public License
37  * along with this program; if not, write to the Free Software
38  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
39  *
40  * Send comments and/or bug reports to:
41  * ibaran@mit.edu
42  */
43 
44 
45 #ifndef DEFS_H
46 #define DEFS_H
47 
48 #include <stdio.h>
49 #include <stdlib.h>
50 #include <qglobal.h>
51 
52 using namespace std;
53 
54 #define DRAW_MAX 5000 // maximum coordinate. assumes you have a screen resolution less than this.
55 
56 #define BIG (1e+37)
57 #define SMALL (1e-10)
58 
59 inline int ROUND(double x) { return ((int)(x + 0.5)); }
60 inline int SIGN(double x) { return (x < 0) ? -1 : 1; }
61 inline int INTRAND(int a, int b) { return qMin(a, b) + rand() % abs(a - b); }
62 #define SQR(x) ((x) * (x))
63 #define CUBE(x) ((x) * (x) * (x))
64 #define QUAD(x) (((x) * (x)) * ((x) * (x)))
65 
66 enum G_Type
67 {
68  G_POINT = 1,
69  G_SEGMENT = 2,
70  G_RAY = 4,
71  G_LINE = 8,
72  G_CIRCLE = 16,
73  G_ARC = 32,
74  G_POLYGON = 64,
75  G_CIRCLEINTERIOR = 128,
76  G_ARCSECTOR = 256,
77  G_ARCSEGMENT = 512,
78  //non-primitive geometric types now:
79  G_LOCUS = 1024,
80  G_MEASURE = 2048,
81  G_CALCULATE = 4096,
82  G_ANNOTATION = 8192,
83  //fake type for scripting:
84  G_LOOP = 16384,
85  //compound types now:
86  G_STRAIGHT = G_SEGMENT | G_LINE | G_RAY,
87  G_CURVE = G_STRAIGHT | G_ARC | G_CIRCLE,
88  G_FILLED = G_POLYGON | G_CIRCLEINTERIOR | G_ARCSECTOR | G_ARCSEGMENT,
89  G_GEOMETRIC = G_POINT | G_CURVE | G_FILLED | G_LOCUS,
90  G_VALUE = G_MEASURE | G_CALCULATE,
91  G_TEXT = G_VALUE | G_ANNOTATION,
92  G_ANY = G_GEOMETRIC | G_TEXT | G_LOOP
93 };
94 
95 enum G_AnyType
96 {
97  G_TRANSLATED,
98  G_ROTATED,
99  G_SCALED,
100  G_REFLECTED
101 };
102 
103 #define IS_TRANSFORM(x) ((x) == G_TRANSLATED || (x) == G_ROTATED || (x) == G_SCALED || (x) == G_REFLECTED)
104 
105 enum G_PointType
106 {
107  G_FREE_POINT = G_REFLECTED + 1,
108  G_CONSTRAINED_POINT,
109  G_INTERSECTION_POINT,
110  G_INTERSECTION2_POINT,
111  G_MID_POINT
112 };
113 
114 enum G_SegmentType
115 {
116  G_ENDPOINTS_SEGMENT = G_REFLECTED + 1
117 };
118 
119 enum G_RayType
120 {
121  G_TWOPOINTS_RAY = G_REFLECTED + 1,
122  G_BISECTOR_RAY
123 };
124 
125 enum G_LineType
126 {
127  G_TWOPOINTS_LINE = G_REFLECTED + 1,
128  G_PARALLEL_LINE,
129  G_PERPENDICULAR_LINE
130 };
131 
132 enum G_CircleType
133 {
134  G_CENTERPOINT_CIRCLE = G_REFLECTED + 1,
135  G_CENTERRADIUS_CIRCLE
136 };
137 
138 enum G_ArcType
139 {
140  G_THREEPOINTS_ARC = G_REFLECTED + 1
141 };
142 
143 enum G_FilledType
144 {
145  G_DEFAULT_FILLED = G_REFLECTED + 1
146 };
147 
148 enum G_LocusType
149 {
150  G_OBJECT_LOCUS = G_REFLECTED + 1
151 };
152 
153 enum G_MeasureType
154 {
155  G_DISTANCE_MEASURE,
156  G_LENGTH_MEASURE,
157  G_RADIUS_MEASURE,
158  G_ANGLE_MEASURE,
159  G_RATIO_MEASURE,
160  G_SLOPE_MEASURE,
161  G_AREA_MEASURE
162 };
163 
164 enum G_CalculateType
165 {
166  G_REGULAR_CALCULATE
167 };
168 
169 
170 enum MenuIDs
171 {
172  ID_NEW_SEGMENT = 1,
173  ID_NEW_MIDPOINT,
174  ID_NEW_LINE,
175  ID_NEW_PERPENDICULAR,
176  ID_NEW_RAY,
177  ID_NEW_BISECTOR,
178  ID_NEW_CIRCLE,
179  ID_NEW_INTERSECTION,
180  ID_NEW_ARC,
181  ID_NEW_LOCUS,
182  ID_NEW_ARCSECTOR,
183  ID_NEW_ARCSEGMENT,
184  ID_NEW_CIRCLEINTERIOR,
185  ID_NEW_POLYGON,
186 
187  ID_EDIT_UNDO,
188  ID_EDIT_REDO,
189  ID_EDIT_DELETE,
190  ID_EDIT_TOGGLELABELS,
191  ID_EDIT_SHOWLABELS,
192  ID_EDIT_HIDELABELS,
193  ID_EDIT_CHANGELABEL,
194  ID_EDIT_HIDE,
195  ID_EDIT_SHOWHIDDEN,
196  ID_EDIT_COLOR,
197  ID_EDIT_POINTSTYLE,
198  ID_EDIT_LINESTYLE,
199  ID_EDIT_FONT,
200  ID_EDIT_CHANGE_NUMBER_OF_SAMPLES,
201  ID_EDIT_PREFERENCES,
202 
203  ID_EDIT_COLOR_BLACK,
204  ID_EDIT_COLOR_GRAY,
205  ID_EDIT_COLOR_RED,
206  ID_EDIT_COLOR_GREEN,
207  ID_EDIT_COLOR_BLUE,
208  ID_EDIT_COLOR_YELLOW,
209  ID_EDIT_COLOR_PURPLE,
210  ID_EDIT_COLOR_CYAN,
211  ID_EDIT_COLOR_OTHER,
212 
213  ID_EDIT_POINTSTYLE_LARGECIRCLE,
214  ID_EDIT_POINTSTYLE_MEDIUMCIRCLE,
215  ID_EDIT_POINTSTYLE_SMALLCIRCLE,
216 
217  ID_EDIT_LINESTYLE_SOLID,
218  ID_EDIT_LINESTYLE_DASHED,
219  ID_EDIT_LINESTYLE_DOTTED,
220  ID_EDIT_LINESTYLE_THIN,
221  ID_EDIT_LINESTYLE_NORMAL,
222  ID_EDIT_LINESTYLE_THICK,
223 
224  ID_EDIT_FONT_10,
225  ID_EDIT_FONT_12,
226  ID_EDIT_FONT_14,
227  ID_EDIT_FONT_20,
228  ID_EDIT_FONT_30,
229  ID_EDIT_FONT_FONT,
230 
231  ID_MEASURE_DISTANCE,
232  ID_MEASURE_LENGTH,
233  ID_MEASURE_RADIUS,
234  ID_MEASURE_ANGLE,
235  ID_MEASURE_RATIO,
236  ID_MEASURE_SLOPE,
237  ID_MEASURE_AREA,
238  ID_MEASURE_CALCULATE,
239 
240  ID_TRANSFORM_CHOOSE_VECTOR,
241  ID_TRANSFORM_CHOOSE_MIRROR,
242  ID_TRANSFORM_CHOOSE_CENTER,
243  ID_TRANSFORM_CHOOSE_RATIO,
244  ID_TRANSFORM_CHOOSE_ANGLE,
245  ID_TRANSFORM_CLEAR_CHOSEN,
246  ID_TRANSFORM_TRANSLATE,
247  ID_TRANSFORM_ROTATE,
248  ID_TRANSFORM_REFLECT,
249  ID_TRANSFORM_SCALE,
250 
251  ID_CONSTRUCTION_MAKE_NORMAL,
252  ID_CONSTRUCTION_MAKE_GIVEN,
253  ID_CONSTRUCTION_MAKE_FINAL,
254  ID_CONSTRUCTION_MAKE_INITIAL,
255  ID_CONSTRUCTION_RECURSE,
256 
257  ID_PLAY_QUICKPLAY,
258 
259  ID_QUICKPLAY_SET_DIRECTORY,
260 
261  ID_FILE_RECENTLIST_START //should be the last entry
262 };
263 
264 #endif //DEFS_H
265 
266 
267 /*
268  * KSeg
269  * Copyright (C) 1999-2003 Ilya Baran <ibaran@mit.edu>
270  *
271  * This program is free software; you can redistribute it and/or modify
272  * it under the terms of the GNU General Public License as published by
273  * the Free Software Foundation; either version 2 of the License, or
274  * (at your option) any later version.
275  *
276  * This program is distributed in the hope that it will be useful,
277  * but WITHOUT ANY WARRANTY; without even the implied warranty of
278  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
279  * GNU General Public License for more details.
280  *
281  * You should have received a copy of the GNU General Public License
282  * along with this program; if not, write to the Free Software
283  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
284  *
285  * Send comments and/or bug reports to:
286  * ibaran@mit.edu
287  */
288 
289 
290 #ifndef G_DRAWSTYLE_H
291 #define G_DRAWSTYLE_H
292 
293 enum PointStyle
294 {
295  ANY = 0,
296  SMALL_CIRCLE,
297  MEDIUM_CIRCLE,
298  LARGE_CIRCLE
299 };
300 
301 #endif //G_DRAWSTYLE_H
G_CENTERPOINT_CIRCLE
Definition: kseg-defs.h:134
ID_TRANSFORM_CLEAR_CHOSEN
Definition: kseg-defs.h:245
INTRAND
int INTRAND(int a, int b)
Definition: kseg-defs.h:61
ID_TRANSFORM_SCALE
Definition: kseg-defs.h:249
ID_EDIT_PREFERENCES
Definition: kseg-defs.h:201
ID_EDIT_HIDE
Definition: kseg-defs.h:194
SMALL_CIRCLE
Definition: kseg-defs.h:296
G_ARCSEGMENT
Definition: kseg-defs.h:77
G_BISECTOR_RAY
Definition: kseg-defs.h:122
G_CIRCLE
Definition: kseg-defs.h:72
ID_MEASURE_AREA
Definition: kseg-defs.h:237
ID_MEASURE_LENGTH
Definition: kseg-defs.h:232
G_RayType
G_RayType
Definition: kseg-defs.h:119
G_CENTERRADIUS_CIRCLE
Definition: kseg-defs.h:135
ID_FILE_RECENTLIST_START
Definition: kseg-defs.h:261
G_POINT
Definition: kseg-defs.h:68
ANY
Definition: kseg-defs.h:295
ID_PLAY_QUICKPLAY
Definition: kseg-defs.h:257
ID_EDIT_LINESTYLE_NORMAL
Definition: kseg-defs.h:221
ID_CONSTRUCTION_MAKE_NORMAL
Definition: kseg-defs.h:251
G_MEASURE
Definition: kseg-defs.h:80
ID_EDIT_FONT_10
Definition: kseg-defs.h:224
ID_TRANSFORM_TRANSLATE
Definition: kseg-defs.h:246
G_AREA_MEASURE
Definition: kseg-defs.h:161
ID_EDIT_COLOR_GREEN
Definition: kseg-defs.h:206
ID_EDIT_UNDO
Definition: kseg-defs.h:187
ID_NEW_INTERSECTION
Definition: kseg-defs.h:179
G_ENDPOINTS_SEGMENT
Definition: kseg-defs.h:116
ID_EDIT_FONT_14
Definition: kseg-defs.h:226
G_AnyType
G_AnyType
Definition: kseg-defs.h:95
G_LOOP
Definition: kseg-defs.h:84
G_RATIO_MEASURE
Definition: kseg-defs.h:159
G_OBJECT_LOCUS
Definition: kseg-defs.h:150
ID_EDIT_SHOWHIDDEN
Definition: kseg-defs.h:195
ID_QUICKPLAY_SET_DIRECTORY
Definition: kseg-defs.h:259
G_MeasureType
G_MeasureType
Definition: kseg-defs.h:153
G_CURVE
Definition: kseg-defs.h:87
G_MID_POINT
Definition: kseg-defs.h:111
ID_EDIT_FONT_30
Definition: kseg-defs.h:228
ID_EDIT_FONT
Definition: kseg-defs.h:199
ID_MEASURE_DISTANCE
Definition: kseg-defs.h:231
ROUND
int ROUND(double x)
Definition: kseg-defs.h:59
ID_NEW_ARCSEGMENT
Definition: kseg-defs.h:183
ID_EDIT_SHOWLABELS
Definition: kseg-defs.h:191
ID_EDIT_CHANGE_NUMBER_OF_SAMPLES
Definition: kseg-defs.h:200
ID_EDIT_POINTSTYLE
Definition: kseg-defs.h:197
ID_NEW_LINE
Definition: kseg-defs.h:174
G_Type
G_Type
Definition: kseg-defs.h:66
ID_NEW_PERPENDICULAR
Definition: kseg-defs.h:175
G_ANNOTATION
Definition: kseg-defs.h:82
G_DEFAULT_FILLED
Definition: kseg-defs.h:145
ID_NEW_ARCSECTOR
Definition: kseg-defs.h:182
ID_EDIT_COLOR_PURPLE
Definition: kseg-defs.h:209
G_STRAIGHT
Definition: kseg-defs.h:86
G_CALCULATE
Definition: kseg-defs.h:81
ID_TRANSFORM_CHOOSE_RATIO
Definition: kseg-defs.h:243
G_ROTATED
Definition: kseg-defs.h:98
G_ANY
Definition: kseg-defs.h:92
G_SegmentType
G_SegmentType
Definition: kseg-defs.h:114
G_POLYGON
Definition: kseg-defs.h:74
ID_CONSTRUCTION_MAKE_INITIAL
Definition: kseg-defs.h:254
G_REFLECTED
Definition: kseg-defs.h:100
ID_EDIT_REDO
Definition: kseg-defs.h:188
ID_TRANSFORM_CHOOSE_VECTOR
Definition: kseg-defs.h:240
ID_TRANSFORM_CHOOSE_ANGLE
Definition: kseg-defs.h:244
ID_EDIT_POINTSTYLE_MEDIUMCIRCLE
Definition: kseg-defs.h:214
G_LINE
Definition: kseg-defs.h:71
ID_EDIT_LINESTYLE
Definition: kseg-defs.h:198
G_SCALED
Definition: kseg-defs.h:99
ID_NEW_RAY
Definition: kseg-defs.h:176
G_ARC
Definition: kseg-defs.h:73
G_LineType
G_LineType
Definition: kseg-defs.h:125
G_RAY
Definition: kseg-defs.h:70
G_RADIUS_MEASURE
Definition: kseg-defs.h:157
ID_EDIT_POINTSTYLE_SMALLCIRCLE
Definition: kseg-defs.h:215
ID_EDIT_COLOR_BLACK
Definition: kseg-defs.h:203
ID_CONSTRUCTION_MAKE_FINAL
Definition: kseg-defs.h:253
ID_EDIT_COLOR_YELLOW
Definition: kseg-defs.h:208
G_CONSTRAINED_POINT
Definition: kseg-defs.h:108
ID_EDIT_LINESTYLE_THICK
Definition: kseg-defs.h:222
ID_MEASURE_RADIUS
Definition: kseg-defs.h:233
SIGN
int SIGN(double x)
Definition: kseg-defs.h:60
G_SLOPE_MEASURE
Definition: kseg-defs.h:160
ID_EDIT_FONT_FONT
Definition: kseg-defs.h:229
ID_TRANSFORM_CHOOSE_MIRROR
Definition: kseg-defs.h:241
G_PointType
G_PointType
Definition: kseg-defs.h:105
ID_NEW_SEGMENT
Definition: kseg-defs.h:172
ID_TRANSFORM_ROTATE
Definition: kseg-defs.h:247
ID_EDIT_CHANGELABEL
Definition: kseg-defs.h:193
G_PARALLEL_LINE
Definition: kseg-defs.h:128
ID_TRANSFORM_CHOOSE_CENTER
Definition: kseg-defs.h:242
G_FILLED
Definition: kseg-defs.h:88
ID_EDIT_LINESTYLE_DOTTED
Definition: kseg-defs.h:219
ID_EDIT_COLOR_CYAN
Definition: kseg-defs.h:210
G_LocusType
G_LocusType
Definition: kseg-defs.h:148
G_PERPENDICULAR_LINE
Definition: kseg-defs.h:129
G_TWOPOINTS_RAY
Definition: kseg-defs.h:121
ID_NEW_CIRCLE
Definition: kseg-defs.h:178
LARGE_CIRCLE
Definition: kseg-defs.h:298
ID_EDIT_COLOR_RED
Definition: kseg-defs.h:205
G_CIRCLEINTERIOR
Definition: kseg-defs.h:75
ID_EDIT_LINESTYLE_THIN
Definition: kseg-defs.h:220
ID_EDIT_COLOR_BLUE
Definition: kseg-defs.h:207
G_DISTANCE_MEASURE
Definition: kseg-defs.h:155
G_LENGTH_MEASURE
Definition: kseg-defs.h:156
ID_EDIT_COLOR_OTHER
Definition: kseg-defs.h:211
G_ARCSECTOR
Definition: kseg-defs.h:76
ID_EDIT_COLOR
Definition: kseg-defs.h:196
ID_TRANSFORM_REFLECT
Definition: kseg-defs.h:248
MenuIDs
MenuIDs
Definition: kseg-defs.h:170
ID_EDIT_DELETE
Definition: kseg-defs.h:189
ID_MEASURE_CALCULATE
Definition: kseg-defs.h:238
ID_EDIT_LINESTYLE_SOLID
Definition: kseg-defs.h:217
G_SEGMENT
Definition: kseg-defs.h:69
G_INTERSECTION2_POINT
Definition: kseg-defs.h:110
ID_EDIT_TOGGLELABELS
Definition: kseg-defs.h:190
ID_EDIT_POINTSTYLE_LARGECIRCLE
Definition: kseg-defs.h:213
ID_EDIT_FONT_20
Definition: kseg-defs.h:227
ID_EDIT_LINESTYLE_DASHED
Definition: kseg-defs.h:218
ID_NEW_BISECTOR
Definition: kseg-defs.h:177
ID_EDIT_COLOR_GRAY
Definition: kseg-defs.h:204
G_TWOPOINTS_LINE
Definition: kseg-defs.h:127
G_GEOMETRIC
Definition: kseg-defs.h:89
G_LOCUS
Definition: kseg-defs.h:79
ID_EDIT_FONT_12
Definition: kseg-defs.h:225
G_CircleType
G_CircleType
Definition: kseg-defs.h:132
ID_MEASURE_SLOPE
Definition: kseg-defs.h:236
G_VALUE
Definition: kseg-defs.h:90
G_TEXT
Definition: kseg-defs.h:91
G_CalculateType
G_CalculateType
Definition: kseg-defs.h:164
G_REGULAR_CALCULATE
Definition: kseg-defs.h:166
ID_NEW_LOCUS
Definition: kseg-defs.h:181
ID_NEW_ARC
Definition: kseg-defs.h:180
G_ANGLE_MEASURE
Definition: kseg-defs.h:158
ID_NEW_CIRCLEINTERIOR
Definition: kseg-defs.h:184
ID_MEASURE_RATIO
Definition: kseg-defs.h:235
PointStyle
PointStyle
Definition: kseg-defs.h:293
G_INTERSECTION_POINT
Definition: kseg-defs.h:109
G_TRANSLATED
Definition: kseg-defs.h:97
MEDIUM_CIRCLE
Definition: kseg-defs.h:297
ID_NEW_MIDPOINT
Definition: kseg-defs.h:173
G_THREEPOINTS_ARC
Definition: kseg-defs.h:140
G_ArcType
G_ArcType
Definition: kseg-defs.h:138
ID_MEASURE_ANGLE
Definition: kseg-defs.h:234
G_FREE_POINT
Definition: kseg-defs.h:107
ID_EDIT_HIDELABELS
Definition: kseg-defs.h:192
ID_CONSTRUCTION_RECURSE
Definition: kseg-defs.h:255
ID_CONSTRUCTION_MAKE_GIVEN
Definition: kseg-defs.h:252
G_FilledType
G_FilledType
Definition: kseg-defs.h:143
ID_NEW_POLYGON
Definition: kseg-defs.h:185
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal