ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/mesh/tool.cpp
Revision: 3
Committed: Tue Jun 12 12:42:51 2007 UTC (17 years, 11 months ago)
File size: 11743 byte(s)
Log Message:

File Contents

# Content
1 //---------------------------------------------------------------------------
2 #include <vcl\vcl.h>
3 #pragma hdrstop
4
5 #include "tool.h"
6 #include "fenetre.h"
7 #include "s_valeur.h"
8
9 //---------------------------------------------------------------------------
10 #pragma resource "*.dfm"
11 TToolbar *Toolbar;
12 //---------------------------------------------------------------------------
13 __fastcall TToolbar::TToolbar(TComponent* Owner)
14 : TForm(Owner)
15 {
16 }
17 //---------------------------------------------------------------------------
18 void __fastcall TToolbar::FormCreate(TObject *Sender)
19 {
20 Fenp->existetool=1;
21 if (Fenp->existetool!=0)
22 if (Fenp->Barrevisible1->Checked==false) Toolbar->FormStyle=fsNormal;
23 else Toolbar->FormStyle=fsStayOnTop;
24 Toolbar->Caption="Outil pour "+Fenp->Caption;
25 Toolbar->Left=Fenp->toolx;
26 Toolbar->Top=Fenp->tooly;
27 }
28 //---------------------------------------------------------------------------
29 void __fastcall TToolbar::FormClose(TObject *Sender, TCloseAction &Action)
30 {
31 Action=caFree;
32 Fenp->existetool=0;
33 }
34 //---------------------------------------------------------------------------
35 void __fastcall TToolbar::BitBtn3Click(TObject *Sender)
36 {
37 Fenp->zoom=Fenp->zoom*1.1;
38 Fenp->xcentre=(Fenp->ClientWidth/2.-1.1*(Fenp->ClientWidth/2.-Fenp->xcentre));
39 Fenp->ycentre=(Fenp->ClientHeight/2.-1.1*(Fenp->ClientHeight/2.-Fenp->ycentre));
40 Fenp->Invalidate();
41 }
42 //---------------------------------------------------------------------------
43 void __fastcall TToolbar::BitBtn1Click(TObject *Sender)
44 {
45 Fenp->zoom=Fenp->zoom/1.1;
46 Fenp->xcentre=(Fenp->ClientWidth/2.-0.9090909090*(Fenp->ClientWidth/2.-Fenp->xcentre));
47 Fenp->ycentre=(Fenp->ClientHeight/2.-0.9090909090*(Fenp->ClientHeight/2.-Fenp->ycentre));
48 Fenp->Invalidate();
49 }
50 //---------------------------------------------------------------------------
51 void __fastcall TToolbar::BitBtn12Click(TObject *Sender)
52 {
53 Fenp->rot[0][0]=1.0;Fenp->rot[1][0]=0.0;Fenp->rot[2][0]=0.0;
54 Fenp->rot[0][1]=0.0;Fenp->rot[1][1]=1.0;Fenp->rot[2][1]=0.0;
55 Fenp->rot[0][2]=0.0;Fenp->rot[1][2]=0.0;Fenp->rot[2][2]=1.0;
56 Fenp->norme();
57 Fenp->Invalidate();
58
59 }
60 //---------------------------------------------------------------------------
61 void __fastcall TToolbar::BitBtn8Click(TObject *Sender)
62 {
63 Fenp->norme();
64 Fenp->Invalidate();
65
66 }
67 //---------------------------------------------------------------------------
68 void __fastcall TToolbar::BitBtn2Click(TObject *Sender)
69 {
70 if (Fenp->fc==1) Fenp->fc=0; else Fenp->fc=1;
71 Fenp->Invalidate();
72
73 }
74 //---------------------------------------------------------------------------
75 void __fastcall TToolbar::BitBtn11Click(TObject *Sender)
76 {
77 char mess[255];
78
79 sprintf(Fenp->info,"numero de noeud a afficher (0-%d)?",Fenp->nb_point);
80 Valeur->ShowModal();
81 strcpy(mess,Valeur->Edit1->Text.c_str());
82 sscanf(mess,"%d",&Fenp->numero_noeud);
83 if (Fenp->numero_noeud>=Fenp->nb_point) Fenp->numero_noeud=Fenp->nb_point;
84 Fenp->Invalidate();
85 }
86 //---------------------------------------------------------------------------
87 void __fastcall TToolbar::BitBtn10Click(TObject *Sender)
88 {
89 int nb_maille;
90 char mess[255];
91
92 nb_maille=Fenp->nb_segment+Fenp->nb_triangle+Fenp->nb_tetra;
93 sprintf(Fenp->info,"numero de maille a afficher (0-%d)?",nb_maille);
94 Valeur->ShowModal();
95 strcpy(mess,Valeur->Edit1->Text.c_str());
96 sscanf(mess,"%d",&Fenp->numero_maille);
97 if (Fenp->numero_maille>=nb_maille) Fenp->numero_maille=nb_maille;
98 Fenp->Invalidate();
99
100 }
101 //---------------------------------------------------------------------------
102 void __fastcall TToolbar::BitBtn9Click(TObject *Sender)
103 {
104 char mess[255];
105 float val;
106
107 strcpy(Fenp->info,"Valeur du zoom ?");
108 Valeur->ShowModal();
109 strcpy(mess,Valeur->Edit1->Text.c_str());
110 sscanf(mess,"%f",&val);
111 Fenp->zoom=Fenp->zoom*val;
112 Fenp->xcentre=(Fenp->ClientWidth/2.-val*(Fenp->ClientWidth/2.-Fenp->xcentre));
113 Fenp->ycentre=(Fenp->ClientHeight/2.-val*(Fenp->ClientHeight/2.-Fenp->ycentre));
114 Fenp->Invalidate();
115 }
116 //---------------------------------------------------------------------------
117 void __fastcall TToolbar::BitBtn13Click(TObject *Sender)
118 {
119 char mess[255];
120 float val;
121
122 strcpy(Fenp->info,"Valeur de la rotation suivant x ?");
123 Valeur->ShowModal();
124 strcpy(mess,Valeur->Edit1->Text.c_str());
125 sscanf(mess,"%f",&val);
126 Fenp->rotation(val/180.*PI,1);
127 Fenp->Invalidate();
128
129 }
130 //---------------------------------------------------------------------------
131 void __fastcall TToolbar::BitBtn14Click(TObject *Sender)
132 {
133 char mess[255];
134 float val;
135
136 strcpy(Fenp->info,"Valeur de la rotation suivant y ?");
137 Valeur->ShowModal();
138 strcpy(mess,Valeur->Edit1->Text.c_str());
139 sscanf(mess,"%f",&val);
140 Fenp->rotation(val/180.*PI,2);
141 Fenp->Invalidate();
142
143 }
144 //---------------------------------------------------------------------------
145 void __fastcall TToolbar::BitBtn15Click(TObject *Sender)
146 {
147 char mess[255];
148 float val;
149
150 strcpy(Fenp->info,"Valeur de la rotation suivant z ?");
151 Valeur->ShowModal();
152 strcpy(mess,Valeur->Edit1->Text.c_str());
153 sscanf(mess,"%f",&val);
154 Fenp->rotation(val/180.*PI,3);
155 Fenp->Invalidate();
156
157 }
158 //---------------------------------------------------------------------------
159 void __fastcall TToolbar::BitBtn4Click(TObject *Sender)
160 {
161 Fenp->ycentre=Fenp->ycentre+4;
162 Fenp->Invalidate();
163
164 }
165 //---------------------------------------------------------------------------
166 void __fastcall TToolbar::BitBtn6Click(TObject *Sender)
167 {
168 Fenp->ycentre=Fenp->ycentre-4;
169 Fenp->Invalidate();
170
171 }
172 //---------------------------------------------------------------------------
173 void __fastcall TToolbar::BitBtn5Click(TObject *Sender)
174 {
175 Fenp->xcentre=Fenp->xcentre-4;
176 Fenp->Invalidate();
177
178 }
179 //---------------------------------------------------------------------------
180 void __fastcall TToolbar::BitBtn7Click(TObject *Sender)
181 {
182 Fenp->xcentre=Fenp->xcentre+4;
183 Fenp->Invalidate();
184
185 }
186 //---------------------------------------------------------------------------
187 void __fastcall TToolbar::BitBtn16Click(TObject *Sender)
188 {
189 Fenp->rotation(0.1,1);
190 Fenp->Invalidate();
191 }
192 //---------------------------------------------------------------------------
193 void __fastcall TToolbar::BitBtn17Click(TObject *Sender)
194 {
195 Fenp->rotation(-0.1,1);
196 Fenp->Invalidate();
197 }
198 //---------------------------------------------------------------------------
199 void __fastcall TToolbar::BitBtn18Click(TObject *Sender)
200 {
201 Fenp->rotation(0.1,2);
202 Fenp->Invalidate();
203 }
204 //---------------------------------------------------------------------------
205 void __fastcall TToolbar::BitBtn19Click(TObject *Sender)
206 {
207 Fenp->rotation(-0.1,2);
208 Fenp->Invalidate();
209 }
210 //---------------------------------------------------------------------------
211 void __fastcall TToolbar::BitBtn20Click(TObject *Sender)
212 {
213 Fenp->rotation(0.1,3);
214 Fenp->Invalidate();
215 }
216 //---------------------------------------------------------------------------
217 void __fastcall TToolbar::BitBtn21Click(TObject *Sender)
218 {
219 Fenp->rotation(-0.1,3);
220 Fenp->Invalidate();
221 }
222 //---------------------------------------------------------------------------
223 void __fastcall TToolbar::BitBtn22Click(TObject *Sender)
224 {
225 if (Fenp->horizon==1) Fenp->horizon=0;
226 else Fenp->horizon=1;
227 Invalidate();
228 }
229 //---------------------------------------------------------------------------
230 void __fastcall TToolbar::FormPaint(TObject *Sender)
231 {
232 if (Fenp->horizon==1)
233 {
234 Toolbar->Width=630;
235 Toolbar->Height=94;
236 TrackBar1->Left=40;
237 TrackBar1->Top=32;
238 TrackBar1->Height=40;
239 TrackBar1->Width=570;
240 TrackBar1->Orientation=trHorizontal;
241 Button1->Left=23;
242 Button1->Top=29;
243 Button1->Height=41;
244 Button1->Width=17;
245 BitBtn22->Left=8;
246 BitBtn22->Top=0;
247 BitBtn3->Left=40;
248 BitBtn3->Top=0;
249 BitBtn1->Left=64;
250 BitBtn1->Top=0;
251 BitBtn12->Left=88;
252 BitBtn12->Top=0;
253 BitBtn8->Left=112;
254 BitBtn8->Top=0;
255 BitBtn2->Left=136;
256 BitBtn2->Top=0;
257 BitBtn11->Left=160;
258 BitBtn11->Top=0;
259 BitBtn10->Left=184;
260 BitBtn10->Top=0;
261 BitBtn9->Left=208;
262 BitBtn9->Top=0;
263 BitBtn13->Left=232;
264 BitBtn13->Top=0;
265 BitBtn14->Left=256;
266 BitBtn14->Top=0;
267 BitBtn15->Left=280;
268 BitBtn15->Top=0;
269 BitBtn4->Left=304;
270 BitBtn4->Top=0;
271 BitBtn6->Left=328;
272 BitBtn6->Top=0;
273 BitBtn5->Left=352;
274 BitBtn5->Top=0;
275 BitBtn7->Left=376;
276 BitBtn7->Top=0;
277 BitBtn16->Left=400;
278 BitBtn16->Top=0;
279 BitBtn17->Left=424;
280 BitBtn17->Top=0;
281 BitBtn18->Left=448;
282 BitBtn18->Top=0;
283 BitBtn19->Left=472;
284 BitBtn19->Top=0;
285 BitBtn20->Left=496;
286 BitBtn20->Top=0;
287 BitBtn21->Left=520;
288 BitBtn21->Top=0;
289 BitBtn23->Left=544;
290 BitBtn23->Top=0;
291 BitBtn24->Left=568;
292 BitBtn24->Top=0;
293 BitBtn25->Left=592;
294 BitBtn25->Top=0;
295 }
296 else
297 {
298 Toolbar->Width=107;
299 Toolbar->Height=350;
300 TrackBar1->Left=57;
301 TrackBar1->Top=40;
302 TrackBar1->Height=290;
303 TrackBar1->Width=40;
304 TrackBar1->Orientation=trVertical;
305 Button1->Left=56;
306 Button1->Top=23;
307 Button1->Height=17;
308 Button1->Width=41;
309 BitBtn22->Left=14;
310 BitBtn22->Top=8;
311 BitBtn3->Left=1;
312 BitBtn3->Top=40;
313 BitBtn1->Left=1;
314 BitBtn1->Top=64;
315 BitBtn12->Left=1;
316 BitBtn12->Top=88;
317 BitBtn8->Left=1;
318 BitBtn8->Top=112;
319 BitBtn2->Left=1;
320 BitBtn2->Top=136;
321 BitBtn11->Left=1;
322 BitBtn11->Top=160;
323 BitBtn10->Left=1;
324 BitBtn10->Top=184;
325 BitBtn9->Left=1;
326 BitBtn9->Top=208;
327 BitBtn13->Left=1;
328 BitBtn13->Top=232;
329 BitBtn14->Left=1;
330 BitBtn14->Top=256;
331 BitBtn15->Left=1;
332 BitBtn15->Top=280;
333 BitBtn4->Left=25;
334 BitBtn4->Top=40;
335 BitBtn6->Left=25;
336 BitBtn6->Top=64;
337 BitBtn5->Left=25;
338 BitBtn5->Top=88;
339 BitBtn7->Left=25;
340 BitBtn7->Top=112;
341 BitBtn16->Left=25;
342 BitBtn16->Top=136;
343 BitBtn17->Left=25;
344 BitBtn17->Top=160;
345 BitBtn18->Left=25;
346 BitBtn18->Top=184;
347 BitBtn19->Left=25;
348 BitBtn19->Top=208;
349 BitBtn20->Left=25;
350 BitBtn20->Top=232;
351 BitBtn21->Left=25;
352 BitBtn21->Top=256;
353 BitBtn23->Left=25;
354 BitBtn23->Top=280;
355 BitBtn24->Left=0;
356 BitBtn24->Top=304;
357 BitBtn25->Left=25;
358 BitBtn25->Top=304;
359
360 }
361 TrackBar1->Position=(int)(Fenp->loin*100.);
362 }
363 //---------------------------------------------------------------------------
364 void __fastcall TToolbar::BitBtn23Click(TObject *Sender)
365 {
366 char mess[255];
367
368 strcpy(Fenp->info,"Valeur de l'echelle ?");
369 sprintf(mess,"%f",Fenp->zoom);
370 Valeur->Edit1->Text=mess;
371 Valeur->ShowModal();
372 strcpy(mess,Valeur->Edit1->Text.c_str());
373 sscanf(mess,"%f",&(Fenp->zoom));
374 Fenp->Invalidate();
375
376 }
377 //---------------------------------------------------------------------------
378 void __fastcall TToolbar::BitBtn24Click(TObject *Sender)
379 {
380 Fenp->homo=Fenp->homo/1.1;
381 if (Fenp->homo<0.0001) Fenp->homo= 0.0001;
382 Fenp->Invalidate();
383 }
384 //---------------------------------------------------------------------------
385 void __fastcall TToolbar::BitBtn25Click(TObject *Sender)
386 {
387 Fenp->homo=Fenp->homo*1.1;
388 if (Fenp->homo>1) Fenp->homo=1.;
389 Fenp->Invalidate();
390 }
391 //---------------------------------------------------------------------------
392 void __fastcall TToolbar::TrackBar1Change(TObject *Sender)
393 {
394 float pos;
395
396 pos=(float)(TrackBar1->Position);
397 Fenp->loin=pos*0.01;
398 Fenp->Invalidate();
399 }
400 //---------------------------------------------------------------------------
401 void __fastcall TToolbar::Button1Click(TObject *Sender)
402 {
403
404 Fenp->loin=1.;
405 Toolbar->TrackBar1->Position=(int)(Fenp->loin*100.);
406 Fenp->Invalidate();
407
408 }
409 //---------------------------------------------------------------------------