1 /*
2  *  Dr Geo an interactive geometry software
3  * (C) Copyright Hilaire Fernandes  1997-1998
4  * hilaire.fernandes@iname.com
5  *
6  *
7  *
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public Licences as by published
11  * by the Free Software Foundation; either version 2; or (at your option)
12  * any later version
13  *
14  * This program is distributed in the hope that it will entertaining,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILTY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
17  * Publis License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.
21  * 675 Mass Ave, Cambridge, MA 02139, USA.
22  */
23 
24 #ifndef var_decl_h
25 #define var_decl_h
26 
27 int objet_issue_macro_construction;
28 
29 
30 #define NB_MODE_MAX 10
31 #define NB_OBJET_PAR_MODE_MAX 5
32 
33 // Description des modes de creations
34 objectCategory mode1[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
35   {CURVE, NO_OBJECT}
36 };
37 //
38 objectCategory mode2[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
39   {POINT, POINT, NO_OBJECT},
40   {POINT, VALUE, REPERE, NO_OBJECT},
41   {EQUATION, REPERE, NO_OBJECT}
42 };
43 //
44 objectCategory mode3[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
45   {POINT, POINT, NO_OBJECT}
46 };
47 //
48 objectCategory mode4[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
49   {POINT, POINT, NO_OBJECT}
50 };
51 //
52 objectCategory mode5[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
53   {POINT, POINT, NO_OBJECT},
54   {POINT, SEGMENT, NO_OBJECT},
55   {POINT, VALUE, NO_OBJECT}
56 };
57 //
58 objectCategory mode6[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
59   {CURVE, CURVE, NO_OBJECT}
60 };
61 //
62 objectCategory mode7[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
63   {POINT, DIRECTION, NO_OBJECT}
64 };
65 //
66 objectCategory mode8[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
67   {POINT, DIRECTION, NO_OBJECT}
68 };
69 //
70 objectCategory mode9[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
71   {LINE, POINT, NO_OBJECT},
72   {LINE, LINE, NO_OBJECT},
73   {LINE, HALF_LINE, NO_OBJECT},
74   {LINE, SEGMENT, NO_OBJECT},
75   {LINE, VECTOR, NO_OBJECT},
76   {LINE, CIRCLE, NO_OBJECT},
77   {LINE, ARC_CIRCLE, NO_OBJECT},
78   {LINE, POLYGON, NO_OBJECT}
79 };
80 //
81 objectCategory mode10[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
82   {POINT, POINT, NO_OBJECT},
83   {POINT, LINE, NO_OBJECT},
84   {POINT, HALF_LINE, NO_OBJECT},
85   {POINT, SEGMENT, NO_OBJECT},
86   {POINT, CIRCLE, NO_OBJECT},
87   {POINT, ARC_CIRCLE, NO_OBJECT},
88   {POINT, VECTOR, NO_OBJECT},
89   {POINT, POLYGON, NO_OBJECT}
90 };
91 //
92 objectCategory mode11[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
93   {VECTOR, POINT, NO_OBJECT},
94   {VECTOR, LINE, NO_OBJECT},
95   {VECTOR, HALF_LINE, NO_OBJECT},
96   {VECTOR, SEGMENT, NO_OBJECT},
97   {VECTOR, CIRCLE, NO_OBJECT},
98   {VECTOR, ARC_CIRCLE, NO_OBJECT},
99   {VECTOR, POLYGON, NO_OBJECT}
100 };
101 //
102 objectCategory mode12[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
103   {VALUE, POINT, POINT, NO_OBJECT},
104   {VALUE, LINE, POINT, NO_OBJECT},
105   {VALUE, HALF_LINE, POINT, NO_OBJECT},
106   {VALUE, SEGMENT, POINT, NO_OBJECT},
107   {VALUE, VECTOR, POINT, NO_OBJECT},
108   {VALUE, CIRCLE, POINT, NO_OBJECT},
109   {VALUE, ARC_CIRCLE, POINT, NO_OBJECT},
110   {VALUE, POLYGON, POINT, NO_OBJECT}
111 };
112 //
113 objectCategory mode13[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
114   {SEGMENT, NO_OBJECT},
115   {VECTOR, NO_OBJECT},
116   {POINT, POINT, NO_OBJECT},
117   {POINT, CIRCLE, NO_OBJECT},
118   {POINT, LINE, NO_OBJECT},
119   {CIRCLE, NO_OBJECT},
120   {LINE, NO_OBJECT},
121   {ARC_CIRCLE, NO_OBJECT}
122 };
123 //
124 objectCategory mode14[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
125   {POINT, POINT, POINT, NO_OBJECT},
126   {VECTOR, VECTOR, NO_OBJECT}
127 };
128 //
129 objectCategory mode15[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
130   {POINT, NO_OBJECT},
131   {VECTOR, NO_OBJECT},
132   {LINE, NO_OBJECT},
133   {CIRCLE, NO_OBJECT}
134 };
135 //
136 objectCategory mode16[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
137   {VALUE, VALUE, NO_OBJECT}
138 };
139 //
140 objectCategory mode17[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
141   {SEGMENT, NO_OBJECT},
142   {POINT, POINT, NO_OBJECT}
143 };
144 //
145 objectCategory mode18[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
146   {FREE_PT_ON_CURVE, CONSTRAINED_PT, NO_OBJECT}
147 };
148 //
149 objectCategory mode19[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
150   {POINT, POINT, POINT, NO_OBJECT}
151 };
152 //
153 objectCategory mode20[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
154   {VALUE, POINT, POINT, NO_OBJECT},
155   {VALUE, LINE, POINT, NO_OBJECT},
156   {VALUE, HALF_LINE, POINT, NO_OBJECT},
157   {VALUE, SEGMENT, POINT, NO_OBJECT},
158   {VALUE, VECTOR, POINT, NO_OBJECT},
159   {VALUE, CIRCLE, POINT, NO_OBJECT},
160   {VALUE, ARC_CIRCLE, POINT, NO_OBJECT},
161   {VALUE, POLYGON, POINT, NO_OBJECT}
162 };
163 // This a dummy mode for the polygon object
164 objectCategory mode21[NB_MODE_MAX][NB_OBJET_PAR_MODE_MAX] = {
165   {},
166 };
167 
168 #endif
169