Subversion Repositories Kolibri OS

Rev

Rev 5911 | Rev 5935 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5911 Rev 5930
Line 1... Line 1...
1
;
1
;
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ­ã¦­ë¥ ¤«ï ᮧ¤ ­¨ï ¨
2
; ¢ í⮬ ä ©«¥ ᮡ࠭ë ä㭪樨 ­ã¦­ë¥ ¤«ï ᮧ¤ ­¨ï ¨
3
; à ¡®âë ®ª­  á ª®®à¤¨­ â ¬¨
3
; à ¡®âë ®ª­  á ª®®à¤¨­ â ¬¨
4
;
4
;
Line 5... Line 5...
5
 
5
 
-
 
6
prop_wnd_width equ 340 ;è¨à¨­  ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
6
prop_wnd_width equ 350 ;è¨à¨­  ®ª­  ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ 
7
prop_wnd_height equ 460
7
SIZE_ONE_FLOAT equ 14
8
SIZE_ONE_FLOAT equ 14
Line 8... Line 9...
8
MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1)
9
MAX_OBJECT_SIZE equ (4+SIZE_ONE_FLOAT*3+1)
Line 13... Line 14...
13
txt_space:
14
txt_space:
14
	db SIZE_ONE_FLOAT dup(' ')
15
	db SIZE_ONE_FLOAT dup(' ')
15
.end:
16
.end:
16
	db 0
17
	db 0
Line -... Line 18...
-
 
18
 
-
 
19
rad_c dd 150 ;¤«ï ¢ëç¨á«¥­¨ï à ¤¨ãá 
17
 
20
 
18
obj_point: ;¤®¡ ¢«ï¥¬ë© ®¡ê¥ªâ
21
obj_point: ;¤®¡ ¢«ï¥¬ë© ®¡ê¥ªâ
19
	dd 0   ;㪠§ â¥«ì
22
	dd 0   ;㪠§ â¥«ì
20
.text:
23
.text:
Line 26... Line 29...
26
align 4
29
align 4
27
prop_start:
30
prop_start:
28
pushad
31
pushad
29
	mcall 40,0x27 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
32
	mcall 40,0x27 ;¬ áª  ®¦¨¤ ¥¬ëå ᮡë⨩
30
	inc byte[prop_wnd_run]
33
	inc byte[prop_wnd_run]
-
 
34
	mov dword[w_scr_t3.type],1
Line 31... Line 35...
31
 
35
 
32
	stdcall [tl_node_get_data],tree1
36
	stdcall [tl_node_get_data],tree1
33
	xor edx,edx
37
	xor edx,edx
34
	mov dword[capt_p],txt_q
38
	mov dword[capt_p],txt_q
Line 98... Line 102...
98
			dec edx
102
			dec edx
99
			cmp edx,0
103
			cmp edx,0
100
			jg .new_point
104
			jg .new_point
101
			stdcall dword[tl_cur_beg], tree3
105
			stdcall dword[tl_cur_beg], tree3
102
	.no_object:
106
	.no_object:
-
 
107
	call obj_set_sizes
103
	edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ­®¢ª  á¨á⥬­ëå 梥⮢
108
	edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ­®¢ª  á¨á⥬­ëå 梥⮢
104
	stdcall [edit_box_set_text], edit1, txt_q
109
	stdcall [edit_box_set_text], edit1, txt_q
105
	stdcall [edit_box_set_text], edit2, txt_q
110
	stdcall [edit_box_set_text], edit2, txt_q
106
	stdcall [edit_box_set_text], edit3, txt_q
111
	stdcall [edit_box_set_text], edit3, txt_q
107
popad
112
popad
Line -... Line 113...
-
 
113
 
-
 
114
	call prop_red_win
-
 
115
 
-
 
116
;­¥ ®âà뢠âì íâã äã­ªæ¨î ®â ¯à¥¤ë¤ã饩
-
 
117
align 4
-
 
118
prop_still:
-
 
119
	pushad
-
 
120
	mcall 10
-
 
121
 
-
 
122
	cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
-
 
123
	jne @f
-
 
124
		call prop_red_win
-
 
125
		jmp .end
-
 
126
	@@:
-
 
127
	cmp al,2
-
 
128
	jne @f
-
 
129
		call prop_key
-
 
130
		jmp .end
-
 
131
	@@:
-
 
132
	cmp al,3
-
 
133
	jz prop_button
-
 
134
	cmp al,6
-
 
135
	jne @f 
-
 
136
		call prop_mouse
-
 
137
	@@:
-
 
138
.end:
-
 
139
	popad
-
 
140
	jmp prop_still
108
 
141
 
109
align 4
142
align 4
110
prop_red_win:
143
prop_red_win:
111
pushad
144
pushad
Line 112... Line 145...
112
	mcall 12,1
145
	mcall 12,1
113
 
146
 
114
	xor eax,eax
147
	xor eax,eax
115
	mov edi,dword[capt_p] ;children window caption
148
	mov edi,dword[capt_p] ;children window caption
-
 
149
	mov bx,word[procinfo.box.left]
116
	mov bx,word[procinfo.box.left]
150
	add bx,word[buf_0.l]
117
	add bx,word[buf_0.l]
151
	add bx,5 ;è¨à¨­  ¡®ª®¢®© à ¬ª¨
118
	shl ebx,16
152
	shl ebx,16
119
	mov bx,prop_wnd_width
153
	mov bx,prop_wnd_width
120
	mov cx,word[procinfo.box.top]
154
	mov cx,word[procinfo.box.top]
121
	add cx,word[buf_0.t]
-
 
122
	shl ecx,16
155
	add cx,word[buf_0.t]
123
	mov cx,250
156
	shl ecx,16
124
	mov edx,0xffffd0
157
	mov cx,prop_wnd_height
Line 125... Line -...
125
	or  edx,0x33000000
-
 
126
	int 0x40
-
 
127
 
-
 
128
	mov eax,8
-
 
129
	mov ebx,(5 shl 16)+20
158
	mov edx,0xffffd0+0x33000000
130
	mov ecx,(195 shl 16)+20
-
 
131
	mov edx,3
-
 
132
	mov esi,[sc.work_button]
159
	int 0x40
133
	int 0x40
160
 
134
 
-
 
135
	mov ebx,(30 shl 16)+20
-
 
Line 136... Line -...
136
	mov ecx,(195 shl 16)+20
-
 
137
	mov edx,4
161
	mov esi,[sc.work_button]
138
	int 0x40
162
	mcall 8, (5 shl 16)+20, (246 shl 16)+20, 3
139
 
-
 
140
	mov eax,7
163
	mcall , (30 shl 16)+20, (246 shl 16)+20, 4
141
	mov ebx,[image_data_toolbar]
-
 
Line 142... Line 164...
142
	add ebx,4*IMAGE_TOOLBAR_ICON_SIZE
164
 
143
	mov ecx,(16 shl 16)+16
165
	mov ebx,[image_data_toolbar]
144
	mov edx,(7 shl 16)+197 ;load
166
	add ebx,4*IMAGE_TOOLBAR_ICON_SIZE
Line 145... Line 167...
145
	int 0x40
167
	mcall 7, , (16 shl 16)+16, (7 shl 16)+247 ;load
146
 
168
 
147
	sub ebx,IMAGE_TOOLBAR_ICON_SIZE
169
	sub ebx,IMAGE_TOOLBAR_ICON_SIZE
148
	mov edx,(32 shl 16)+197 ;save
170
	mov edx,(32 shl 16)+247 ;save
149
	int 0x40
171
	int 0x40
150
 
172
 
-
 
173
	mov dword[w_scr_t3.all_redraw],1
-
 
174
	stdcall [scrollbar_ver_draw],dword w_scr_t3
151
	mov dword[w_scr_t3.all_redraw],1
175
	stdcall [tl_draw], tree3
152
	stdcall [scrollbar_ver_draw],dword w_scr_t3
176
	stdcall [edit_box_draw], edit1
-
 
177
	stdcall [edit_box_draw], edit2
Line 153... Line -...
153
	stdcall [tl_draw], tree3
-
 
154
	stdcall [edit_box_draw], edit1
178
	stdcall [edit_box_draw], edit3
-
 
179
 
-
 
180
	call draw_3d
155
	stdcall [edit_box_draw], edit2
181
	mcall 12,2
156
	stdcall [edit_box_draw], edit3
182
popad
-
 
183
	ret
157
	mcall 12,2
184
 
-
 
185
align 4
-
 
186
proc obj_set_sizes uses eax ebx esi
-
 
187
	stdcall dword[tl_node_poi_get_info], tree3,0
-
 
188
	cmp eax,0
-
 
189
	je .end
-
 
190
		stdcall [tl_node_poi_get_data], tree3,eax
-
 
191
		finit
-
 
192
		mov eax,[eax]
-
 
193
		mov ebx,dword[eax]
-
 
194
		mov [obj_x_min],ebx
Line -... Line 195...
-
 
195
		mov [obj_x_max],ebx
-
 
196
		mov ebx,dword[eax+4]
158
popad
197
		mov [obj_y_min],ebx
-
 
198
		mov [obj_y_max],ebx
-
 
199
		mov ebx,dword[eax+8]
-
 
200
		mov [obj_z_min],ebx
-
 
201
		mov [obj_z_max],ebx
-
 
202
 
159
 
203
	stdcall dword[tl_node_poi_get_info], tree3,0
-
 
204
align 4
-
 
205
	.cycle_0: ;à ¡®â  á ª®®à¤¨­ â®© x
160
;­¥ ®âà뢠âì íâã äã­ªæ¨î ®â ¯à¥¤ë¤ã饩
206
		mov esi,eax
161
align 4
207
		stdcall [tl_node_poi_get_data], tree3,esi
-
 
208
		mov ebx,[eax]
-
 
209
 
-
 
210
		fld dword[ebx]
-
 
211
		fld dword[obj_x_min]
162
prop_still:
212
		fcomp
163
	pushad
213
		fstsw ax
-
 
214
		sahf
-
 
215
		jb @f
-
 
216
			mov eax,[ebx]
-
 
217
			mov [obj_x_min],eax
-
 
218
			ffree st0
-
 
219
			fincstp
-
 
220
			jmp .next_x
-
 
221
		@@:
-
 
222
		fld dword[obj_x_max]
-
 
223
		fcompp
-
 
224
		fstsw ax
-
 
225
		sahf
-
 
226
		ja .next_x
-
 
227
			mov eax,[ebx]
-
 
228
			mov [obj_x_max],eax
-
 
229
		.next_x:
-
 
230
 
-
 
231
		stdcall dword[tl_node_poi_get_next_info], tree3,esi
-
 
232
		cmp eax,0
-
 
233
		jne .cycle_0
-
 
234
 
-
 
235
		fld1
-
 
236
		fld dword[obj_x_max]
-
 
237
		fsub dword[obj_x_min]
-
 
238
		fst dword[obj_x_centr]
-
 
239
		fdivp ;1/size.x
-
 
240
		fstp dword[obj_x_scale]
-
 
241
 
-
 
242
		fld dword[obj_x_centr]
-
 
243
		fld1
-
 
244
		fld1
-
 
245
		faddp
-
 
246
		fdivp ;centr.x = size.x/2
-
 
247
		fadd dword[obj_x_min]
-
 
248
		fchs
-
 
249
		fstp dword[obj_x_centr]
-
 
250
 
-
 
251
	stdcall dword[tl_node_poi_get_info], tree3,0
-
 
252
align 4
-
 
253
	.cycle_1: ;à ¡®â  á ª®®à¤¨­ â®© y
-
 
254
		mov esi,eax
-
 
255
		stdcall [tl_node_poi_get_data], tree3,esi
-
 
256
		mov ebx,[eax]
-
 
257
 
-
 
258
		fld dword[ebx+4]
-
 
259
		fld dword[obj_y_min]
-
 
260
		fcomp
-
 
261
		fstsw ax
-
 
262
		sahf
-
 
263
		jb @f
-
 
264
			mov eax,[ebx+4]
-
 
265
			mov [obj_y_min],eax
-
 
266
			ffree st0
-
 
267
			fincstp
-
 
268
			jmp .next_y
-
 
269
		@@:
-
 
270
		fld dword[obj_y_max]
-
 
271
		fcompp
164
	mcall 10
272
		fstsw ax
-
 
273
		sahf
-
 
274
		ja .next_y
-
 
275
			mov eax,[ebx+4]
-
 
276
			mov [obj_y_max],eax
-
 
277
		.next_y:
-
 
278
 
-
 
279
		stdcall dword[tl_node_poi_get_next_info], tree3,esi
-
 
280
		cmp eax,0
-
 
281
		jne .cycle_1
-
 
282
 
-
 
283
		fld1
-
 
284
		fld dword[obj_y_max]
-
 
285
		fsub dword[obj_y_min]
-
 
286
		fst dword[obj_y_centr]
-
 
287
		fdivp ;1/size.y
-
 
288
		fstp dword[obj_y_scale]
-
 
289
 
-
 
290
		fld dword[obj_y_centr]
-
 
291
		fld1
-
 
292
		fld1
-
 
293
		faddp
-
 
294
		fdivp ;centr.y = size.y/2
-
 
295
		fadd dword[obj_y_min]
-
 
296
		fchs
-
 
297
		fstp dword[obj_y_centr]
-
 
298
 
-
 
299
	stdcall dword[tl_node_poi_get_info], tree3,0
-
 
300
align 4
-
 
301
	.cycle_2: ;à ¡®â  á ª®®à¤¨­ â®© z
-
 
302
		mov esi,eax
-
 
303
		stdcall [tl_node_poi_get_data], tree3,esi
-
 
304
		mov ebx,[eax]
-
 
305
 
-
 
306
		fld dword[ebx+8]
-
 
307
		fld dword[obj_z_min]
-
 
308
		fcomp
-
 
309
		fstsw ax
-
 
310
		sahf
-
 
311
		jb @f
-
 
312
			mov eax,[ebx+8]
-
 
313
			mov [obj_z_min],eax
165
 
314
			ffree st0
-
 
315
			fincstp
-
 
316
			jmp .next_z
-
 
317
		@@:
-
 
318
		fld dword[obj_z_max]
-
 
319
		fcompp
-
 
320
		fstsw ax
-
 
321
		sahf
-
 
322
		ja .next_z
-
 
323
			mov eax,[ebx+8]
-
 
324
			mov [obj_z_max],eax
-
 
325
		.next_z:
-
 
326
 
-
 
327
		stdcall dword[tl_node_poi_get_next_info], tree3,esi
-
 
328
		cmp eax,0
-
 
329
		jne .cycle_2
-
 
330
 
-
 
331
		fld1
-
 
332
		fld dword[obj_z_max]
-
 
333
		fsub dword[obj_z_min]
-
 
334
		fst dword[obj_z_centr]
-
 
335
		fdivp ;1/size.z
-
 
336
		fstp dword[obj_z_scale]
-
 
337
 
-
 
338
		fld dword[obj_z_centr]
-
 
339
		fld1
-
 
340
		fld1
-
 
341
		faddp
-
 
342
		fdivp ;centr.z = size.z/2
-
 
343
		fadd dword[obj_z_min]
-
 
344
		fchs
-
 
345
		fstp dword[obj_z_centr]
-
 
346
 
-
 
347
		;­ å®¤¨¬ à ¤¨ãá ¤«ï áä¥àë
-
 
348
		fld dword[obj_x_max]
-
 
349
		fsub dword[obj_x_min]
-
 
350
		fld dword[obj_y_max]
-
 
351
		fsub dword[obj_y_min]
-
 
352
		faddp
-
 
353
		fild dword[rad_c]
-
 
354
		fdivp ;radius=(size.x+size.y)/rad_c
-
 
355
		fstp dword[sph_radius]
-
 
356
	.end:
-
 
357
	ret
-
 
358
endp
-
 
359
 
-
 
360
;à¨á®¢ ­¨¥ â®ç¥ª ¢ 3d
-
 
361
align 4
-
 
362
draw_3d:
-
 
363
	stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;®ç¨á⨬ ¡ãä¥à æ¢¥â  ¨ £«ã¡¨­ë
-
 
364
	stdcall [glPushMatrix]
-
 
365
	stdcall [glTranslatef], 0.0,0.0,0.5 ;correct for z
-
 
366
	stdcall [glScalef], [obj_x_scale],[obj_y_scale],[obj_z_scale]
-
 
367
	stdcall [glScalef], 1.0,1.0,0.7 ;correct for z
-
 
368
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
-
 
369
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
-
 
370
	stdcall [glRotatef], [angle_x],1.0,0.0,0.0
-
 
371
	stdcall [glTranslatef], [obj_x_centr],[obj_y_centr],[obj_z_centr]
-
 
372
 
-
 
373
	stdcall [glColor3f], 1.0,1.0,1.0
-
 
374
	stdcall [glBegin],GL_POINTS
-
 
375
 
-
 
376
	stdcall dword[tl_node_poi_get_info], tree3,0
-
 
377
	@@:
-
 
378
		cmp eax,0
-
 
379
		je @f
-
 
380
		mov esi,eax
-
 
381
		stdcall [tl_node_poi_get_data], tree3,esi
166
	cmp al,1 ;¨§¬. ¯®«®¦¥­¨¥ ®ª­ 
382
		mov eax,[eax]
167
	jz prop_red_win
383
		stdcall [glVertex3f], [eax],[eax+4],[eax+8]
-
 
384
		stdcall dword[tl_node_poi_get_next_info], tree3,esi
-
 
385
		jmp @b
-
 
386
	@@:
-
 
387
	stdcall [glEnd]
-
 
388
 
-
 
389
	stdcall [tl_node_get_data],tree3
-
 
390
	cmp eax,0
-
 
391
	je @f
-
 
392
		;¢ë¤¥«¥­¨¥  ªâ¨¢­®© â®çª¨
-
 
393
		mov eax,[eax]
-
 
394
 
-
 
395
		stdcall [glBegin],GL_LINES
-
 
396
		stdcall [glColor3f], 1.0, 0.0, 0.0
168
	cmp al,2
397
		stdcall [glVertex3f], [obj_x_min],[eax+4],[eax+8]
-
 
398
		stdcall [glVertex3f], [obj_x_max],[eax+4],[eax+8]
-
 
399
		stdcall [glColor3f], 0.0, 0.0, 1.0
-
 
400
		stdcall [glVertex3f], [eax],[obj_y_min],[eax+8]
-
 
401
		stdcall [glVertex3f], [eax],[obj_y_max],[eax+8]
169
	jne @f
402
		stdcall [glColor3f], 0.0, 1.0, 0.0
170
		call prop_key
403
		stdcall [glVertex3f], [eax],[eax+4],[obj_z_min]
171
	@@:
404
		stdcall [glVertex3f], [eax],[eax+4],[obj_z_max]
-
 
405
		stdcall [glEnd]
-
 
406
 
Line 172... Line 407...
172
	cmp al,3
407
		stdcall [glColor3f], 1.0, 1.0, 0.0
173
	jz prop_button
408
		stdcall [glTranslatef], [eax],[eax+4],[eax+8]
174
	cmp al,6
409
		stdcall [gluSphere], [qObj], [sph_radius], 8,8
175
	jne @f 
410
	@@:
-
 
411
 
-
 
412
	stdcall [glPopMatrix]
-
 
413
	stdcall [kosglSwapBuffers]
176
		call prop_mouse
414
	ret
-
 
415
 
-
 
416
align 4
-
 
417
prop_key:
-
 
418
push eax
177
	@@:
419
	mcall 2
-
 
420
 
-
 
421
	test word [edit1.flags],10b ;ed_focus
-
 
422
	je @f
-
 
423
		stdcall [edit_box_key], edit1
178
	popad
424
		jmp .end
-
 
425
	@@:
-
 
426
	test word [edit2.flags],10b
179
	jmp prop_still
427
	je @f
-
 
428
		stdcall [edit_box_key], edit2
-
 
429
		jmp .end
-
 
430
	@@:
-
 
431
	test word [edit3.flags],10b
-
 
432
	je @f
-
 
433
		stdcall [edit_box_key], edit3
-
 
434
		jmp .end
-
 
435
	@@:
-
 
436
	stdcall [tl_key], tree3
-
 
437
 
-
 
438
	cmp ah,178 ;Up
-
 
439
	jne @f
-
 
440
		fld dword[angle_x]
-
 
441
		fadd dword[delt_size]
-
 
442
		fstp dword[angle_x]
-
 
443
		call draw_3d
-
 
444
		jmp .end
-
 
445
	@@:
-
 
446
	cmp ah,177 ;Down
-
 
447
	jne @f
-
 
448
		fld dword[angle_x]
-
 
449
		fsub dword[delt_size]
-
 
450
		fstp dword[angle_x]
-
 
451
		call draw_3d
-
 
452
		jmp .end
-
 
453
	@@:
-
 
454
	cmp ah,176 ;Left
-
 
455
	jne @f
-
 
456
		fld dword[angle_y]
-
 
457
		fadd dword[delt_size]
-
 
458
		fstp dword[angle_y]
-
 
459
		call draw_3d
-
 
460
		jmp .end
-
 
461
	@@:
180
 
462
	cmp ah,179 ;Right
181
align 4
463
	jne @f
Line 182... Line 464...
182
prop_key:
464
		fld dword[angle_y]
183
push eax
465
		fsub dword[delt_size]
Line 203... Line 485...
203
prop_button:
485
prop_button:
204
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
486
	mcall 17 ;¯®«ãç¨âì ª®¤ ­ ¦ â®© ª­®¯ª¨
Line 205... Line 487...
205
 
487
 
206
	cmp ah,3
488
	cmp ah,3
207
	jne @f
-
 
208
		;§ £à㧪  ª®®à¤¨­ â ¢ editbox-ë
-
 
209
		push eax ebx
489
	jne @f
210
		stdcall [tl_node_get_data],tree3
490
		call get_point_coords
211
		cmp eax,0
-
 
212
		je .no_select_0
-
 
213
			mov ebx,[eax]
-
 
214
			mov word[NumberSymbolsAD],8
-
 
215
			finit
-
 
216
			fld dword[ebx]
-
 
217
			fstp qword[Data_Double]
-
 
218
			call DoubleFloat_to_String
-
 
219
			stdcall [edit_box_set_text], edit1, Data_String
-
 
220
			fld dword[ebx+4]
-
 
221
			fstp qword[Data_Double]
-
 
222
			call DoubleFloat_to_String
-
 
223
			stdcall [edit_box_set_text], edit2, Data_String
-
 
224
			fld dword[ebx+8]
-
 
225
			fstp qword[Data_Double]
-
 
226
			call DoubleFloat_to_String
-
 
227
			stdcall [edit_box_set_text], edit3, Data_String
-
 
228
			stdcall [edit_box_draw], edit1
-
 
229
			stdcall [edit_box_draw], edit2
-
 
230
			stdcall [edit_box_draw], edit3
-
 
231
		.no_select_0:
-
 
232
		pop ebx eax
491
		call draw_3d
233
		jmp prop_still
492
		jmp prop_still.end
234
	@@:
493
	@@:
235
	cmp ah,4
494
	cmp ah,4
236
	jne @f
495
	jne @f
237
		push eax ebx ecx edi esi
496
		push eax ebx ecx edi esi
Line 242... Line 501...
242
			finit
501
			finit
Line 243... Line 502...
243
 
502
 
244
			mov esi,string1
503
			mov esi,string1
245
			mov edi,Data_String
504
			mov edi,Data_String
246
			cld
505
			cld
247
			mov ecx,32
506
			mov ecx,8
248
			rep movsb
507
			rep movsd
249
			call String_to_DoubleFloat
508
			call String_to_DoubleFloat
250
			fld  qword[Data_Double] ;áç¨â뢠¥¬ ª ª double
509
			fld  qword[Data_Double] ;áç¨â뢠¥¬ ª ª double
Line 251... Line 510...
251
			fstp dword[ebx] ;á®å࠭塞 ª ª float
510
			fstp dword[ebx] ;á®å࠭塞 ª ª float
252
 
511
 
253
			mov esi,string2
512
			mov esi,string2
254
			mov edi,Data_String
513
			mov edi,Data_String
255
			cld
514
			cld
256
			mov ecx,32
515
			mov ecx,8
257
			rep movsb
516
			rep movsd
258
			call String_to_DoubleFloat
517
			call String_to_DoubleFloat
Line 259... Line 518...
259
			fld  qword[Data_Double] ;áç¨â뢠¥¬ ª ª double
518
			fld  qword[Data_Double] ;áç¨â뢠¥¬ ª ª double
260
			fstp dword[ebx+4] ;á®å࠭塞 ª ª float
519
			fstp dword[ebx+4] ;á®å࠭塞 ª ª float
261
 
520
 
262
			mov esi,string3
521
			mov esi,string3
263
			mov edi,Data_String
522
			mov edi,Data_String
264
			cld
523
			cld
265
			mov ecx,32
524
			mov ecx,8
266
			rep movsb
525
			rep movsd
Line 267... Line 526...
267
			call String_to_DoubleFloat
526
			call String_to_DoubleFloat
Line 291... Line 550...
291
				loop .coord
550
				loop .coord
292
			stdcall dword[tl_node_set_data], tree3,obj_point
551
			stdcall dword[tl_node_set_data], tree3,obj_point
293
			stdcall dword[tl_draw], tree3
552
			stdcall dword[tl_draw], tree3
294
			mov byte[can_save],1 ;¤«ï ¯®ª §  ª­®¯ª¨ '‘®åà ­¨âì'
553
			mov byte[can_save],1 ;¤«ï ¯®ª §  ª­®¯ª¨ '‘®åà ­¨âì'
295
			mov dword[offs_last_timer],0 ;¤«ï ®¡­®¢«¥­¨ï ¡«®ª  ¢ â ©¬¥à¥
554
			mov dword[offs_last_timer],0 ;¤«ï ®¡­®¢«¥­¨ï ¡«®ª  ¢ â ©¬¥à¥
-
 
555
			call draw_3d
296
		.no_select_1:
556
		.no_select_1:
297
		pop esi edi ecx ebx eax
557
		pop esi edi ecx ebx eax
298
		jmp prop_still
558
		jmp prop_still.end
299
	@@:
559
	@@:
Line 300... Line 560...
300
 
560
 
301
	cmp ah,1
561
	cmp ah,1
302
	jne prop_still
562
	jne prop_still.end
303
.exit:
563
.exit:
304
	mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ â¥«¨ ­  ¨ª®­ª¨ çâ®-¡ë ¨å ­¥ 㤠«¨« ¤¥áâàãªâ®à
564
	mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ â¥«¨ ­  ¨ª®­ª¨ çâ®-¡ë ¨å ­¥ 㤠«¨« ¤¥áâàãªâ®à
305
	mov dword[tree3.data_img_sys],0 ;â. ª. ®­¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥­â å
565
	mov dword[tree3.data_img_sys],0 ;â. ª. ®­¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥­â å
306
	stdcall dword[tl_data_clear], tree3
566
	stdcall dword[tl_data_clear], tree3
307
	mov byte[prop_wnd_run],0 ;®¡­ã«ï¥¬ áç¥â稪 ®ª®­
567
	mov byte[prop_wnd_run],0 ;®¡­ã«ï¥¬ áç¥â稪 ®ª®­
Line -... Line 568...
-
 
568
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
-
 
569
 
-
 
570
align 4
-
 
571
get_point_coords:
-
 
572
	;§ £à㧪  ª®®à¤¨­ â ¢ editbox-ë
-
 
573
	push eax ebx
-
 
574
	stdcall [tl_node_get_data],tree3
-
 
575
	cmp eax,0
-
 
576
	je @f
-
 
577
		mov ebx,[eax]
-
 
578
		mov word[NumberSymbolsAD],8
-
 
579
		finit
-
 
580
		fld dword[ebx]
-
 
581
		fstp qword[Data_Double]
-
 
582
		call DoubleFloat_to_String
-
 
583
		stdcall [edit_box_set_text], edit1, Data_String
-
 
584
		fld dword[ebx+4]
-
 
585
		fstp qword[Data_Double]
-
 
586
		call DoubleFloat_to_String
-
 
587
		stdcall [edit_box_set_text], edit2, Data_String
-
 
588
		fld dword[ebx+8]
-
 
589
		fstp qword[Data_Double]
-
 
590
		call DoubleFloat_to_String
-
 
591
		stdcall [edit_box_set_text], edit3, Data_String
-
 
592
		stdcall [edit_box_draw], edit1
-
 
593
		stdcall [edit_box_draw], edit2
-
 
594
		stdcall [edit_box_draw], edit3
-
 
595
	@@:
-
 
596
	pop ebx eax
-
 
597
	ret
-
 
598
 
-
 
599
align 4
-
 
600
sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥­¨ï  ªâ¨¢­®© â®çª¨
-
 
601
obj_x_max dd 0
-
 
602
obj_x_min dd 0
-
 
603
obj_x_centr dd 0
-
 
604
obj_x_scale dd 1.0
-
 
605
obj_y_max dd 0
-
 
606
obj_y_min dd 0
-
 
607
obj_y_centr dd 0
-
 
608
obj_y_scale dd 1.0
-
 
609
obj_z_max dd 0
-
 
610
obj_z_min dd 0
-
 
611
obj_z_centr dd 0
308
	mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë
612
obj_z_scale dd 1.0
Line 309... Line 613...
309
 
613
 
310
capt_p dd 0
614
capt_p dd 0
311
 
-
 
312
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
615
 
313
tree3 tree_list MAX_OBJECT_SIZE,3,\
616
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ â¥«ì᪮¬ ä ©«¥
314
	tl_key_no_edit+tl_list_box_mode,\
617
tree3 tree_list MAX_OBJECT_SIZE,3, tl_key_no_edit+tl_list_box_mode,\
315
	16,16, 0xffffff,0xb0d0ff,0xd000ff, 5,30,300,160, 16, 4,0, el_focus,\
618
	16,16, 0xffffff,0xb0d0ff,0x400040, 5,270,303,160, 16, 4,0, el_focus,\
316
	w_scr_t3,0
619
	w_scr_t3,get_point_coords
317
 
620
 
318
edit1 edit_box 80,  70, 200, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0
621
edit1 edit_box 80,  76, 249, 0xffd0d0, 0xff, 0x80ff, 0, 0x8000, 34, string1, mouse_dd, 0
Line 319... Line 622...
319
edit2 edit_box 80, 154, 200, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0
622
edit2 edit_box 80, 160, 249, 0xd0d0ff, 0xff, 0x80ff, 0, 0x8000, 34, string2, mouse_dd, 0
320
edit3 edit_box 80, 238, 200, 0xffffff, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0
623
edit3 edit_box 80, 244, 249, 0xd0ffd0, 0xff, 0x80ff, 0, 0x8000, 34, string3, mouse_dd, 0
321
editboxes_end:
624
editboxes_end:
Line 322... Line 625...
322
 
625
 
323
string1 rb 34
-
 
324
string2 rb 34
-
 
325
string3 rb 34
-
 
326
 
-
 
327
align 4
-
 
328
w_scr_t3:
-
 
329
.size_x     dw 16 ;+0
-
 
330
rb 2+2+2
-
 
331
.btn_high   dd 15 ;+8
626
string1 rb 34
332
.type	    dd 1  ;+12
-
 
333
.max_area   dd 100  ;+16
-
 
334
rb 4+4
-
 
335
.bckg_col   dd 0xeeeeee ;+28
-
 
336
.frnt_col   dd 0xbbddff ;+32
-
 
337
.line_col   dd 0  ;+36
-
 
338
rb 4+2+2
-