From 3991fa5a52e33bacda3a205e039e08f631f92a29 Mon Sep 17 00:00:00 2001 From: IgorA Date: Thu, 3 Oct 2013 18:47:46 +0000 Subject: [PATCH] 'voxel_editor': fix and update rotation functions git-svn-id: svn://kolibrios.org@3969 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/media/voxel_editor/trunk/toolbar.png | Bin 6258 -> 5560 bytes .../media/voxel_editor/trunk/vox_draw.inc | 50 ----- .../media/voxel_editor/trunk/vox_rotate.inc | 199 ++++++++++++++++++ .../media/voxel_editor/trunk/voxel_editor.asm | 61 ++++-- .../media/voxel_editor/utilites/toolbar.png | Bin 2171 -> 2173 bytes .../media/voxel_editor/utilites/toolbar_m.png | Bin 4323 -> 3835 bytes .../voxel_editor/utilites/vox_creator.asm | 35 +-- .../media/voxel_editor/utilites/vox_mover.asm | 4 +- 8 files changed, 249 insertions(+), 100 deletions(-) create mode 100644 programs/media/voxel_editor/trunk/vox_rotate.inc diff --git a/programs/media/voxel_editor/trunk/toolbar.png b/programs/media/voxel_editor/trunk/toolbar.png index df575e06548adeea7de66dd3ca69ad0a49abc784..68bf4e736370ce888b9c07b9ca13950b37e83455 100644 GIT binary patch delta 5538 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 k=KpF delta 6239 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 1 4 -> 5 + ;^ | ^ | + ;2 <- 3 6 <- 7 + + mov edx,dword[eax] + mov byte[eax+1],dl ;0->1 + mov byte[eax+3],dh ;1->3 + shr edx,16 + mov byte[eax],dl ;2->0 + mov byte[eax+2],dh ;3->2 + + mov edx,dword[eax+4] + mov byte[eax+5],dl ;4->5 + mov byte[eax+7],dh ;5->7 + shr edx,16 + mov byte[eax+4],dl ;6->4 + mov byte[eax+6],dh ;7->6 + + ;(3) + call vox_tbl_paste + + ret +endp + +; ïîâîðîò âîêðóã îñè y +align 4 +proc vox_obj_rot_y uses eax ebx ecx, v_obj:dword + mov ebx,[v_obj] + add ebx,vox_offs_tree_table + + ;(1) + call vox_tbl_copy + + ;(2) + ;0 -> 4 1 -> 5 + ;^ | ^ | + ;2 <- 6 3 <- 7 + + mov edx,dword[eax] + mov ecx,dword[eax+4] + + mov byte[eax+4],dl ;0->4 + mov byte[eax+5],dh ;1->5 + shr edx,16 + mov byte[eax+0],dl ;2->0 + mov byte[eax+1],dh ;3->1 + + mov byte[eax+6],cl ;4->6 + mov byte[eax+7],ch ;5->7 + shr ecx,16 + mov byte[eax+2],cl ;6->2 + mov byte[eax+3],ch ;7->3 + + ;(3) + call vox_tbl_paste + ret +endp + +; ïîâîðîò âîêðóã îñè x +align 4 +proc vox_obj_rot_x uses eax ebx ecx, v_obj:dword + mov ebx,[v_obj] + add ebx,vox_offs_tree_table + + ;(1) + call vox_tbl_copy + + ;(2) + ;0 -> 4 2 -> 6 + ;^ | ^ | + ;1 <- 5 3 <- 7 + + mov edx,dword[eax] + mov ecx,dword[eax+4] + + mov byte[eax+4],dl ;0->4 + mov byte[eax+0],dh ;1->0 + shr edx,16 + mov byte[eax+6],dl ;2->6 + mov byte[eax+2],dh ;3->2 + + mov byte[eax+5],cl ;4->5 + mov byte[eax+1],ch ;5->1 + shr ecx,16 + mov byte[eax+7],cl ;6->7 + mov byte[eax+3],ch ;7->3 + + ;(3) + call vox_tbl_paste + ret +endp + + +;input: +; ebx = vox_offs_tree_table +align 4 +vox_tbl_copy: + ;(1) + mov eax,txt_buf + + movzx ecx,byte[ebx] + add ecx,eax + mov byte[ecx],0 + + movzx ecx,byte[ebx+1] + add ecx,eax + mov byte[ecx],1 + + movzx ecx,byte[ebx+2] + add ecx,eax + mov byte[ecx],2 + + movzx ecx,byte[ebx+3] + add ecx,eax + mov byte[ecx],3 + + movzx ecx,byte[ebx+4] + add ecx,eax + mov byte[ecx],4 + + movzx ecx,byte[ebx+5] + add ecx,eax + mov byte[ecx],5 + + movzx ecx,byte[ebx+6] + add ecx,eax + mov byte[ecx],6 + + movzx ecx,byte[ebx+7] + add ecx,eax + mov byte[ecx],7 + ret + +;input: +; ebx = vox_offs_tree_table +align 4 +vox_tbl_paste: + movzx ecx,byte[eax] + add ecx,ebx + mov byte[ecx],0 + + movzx ecx,byte[eax+1] + add ecx,ebx + mov byte[ecx],1 + + movzx ecx,byte[eax+2] + add ecx,ebx + mov byte[ecx],2 + + movzx ecx,byte[eax+3] + add ecx,ebx + mov byte[ecx],3 + + movzx ecx,byte[eax+4] + add ecx,ebx + mov byte[ecx],4 + + movzx ecx,byte[eax+5] + add ecx,ebx + mov byte[ecx],5 + + movzx ecx,byte[eax+6] + add ecx,ebx + mov byte[ecx],6 + + movzx ecx,byte[eax+7] + add ecx,ebx + mov byte[ecx],7 + ret diff --git a/programs/media/voxel_editor/trunk/voxel_editor.asm b/programs/media/voxel_editor/trunk/voxel_editor.asm index 2fcfe982d..a343e0718 100644 --- a/programs/media/voxel_editor/trunk/voxel_editor.asm +++ b/programs/media/voxel_editor/trunk/voxel_editor.asm @@ -14,9 +14,10 @@ include '../../../../programs/proc32.inc' include '../../../../programs/develop/libraries/box_lib/load_lib.mac' include '../../../dll.inc' include 'vox_draw.inc' +include 'vox_rotate.inc' @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load -caption db 'Voxel editor 16.11.12',0 ;¯®¤¯¨áì ®ª­  +caption db 'Voxel editor 03.10.13',0 ;¯®¤¯¨áì ®ª­  struct FileInfoBlock Function dd ? @@ -33,7 +34,7 @@ image_data dd 0 ;㪠 fn_toolbar db 'toolbar.png',0 IMAGE_TOOLBAR_ICON_SIZE equ 16*16*3 -IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*23 +IMAGE_TOOLBAR_SIZE equ IMAGE_TOOLBAR_ICON_SIZE*24 image_data_toolbar dd 0 cursors_count equ 4 IMAGE_CURSORS_SIZE equ 4096*cursors_count ;à §¬¥à ª à⨭ª¨ á ªãàá®à ¬¨ @@ -512,6 +513,9 @@ pushad add ebx,25 shl 16 mov edx,25 int 0x40 + add ebx,25 shl 16 + mov edx,26 + int 0x40 ; *** à¨á®¢ ­¨¥ ¨ª®­®ª ­  ª­®¯ª å *** mov eax,7 @@ -537,10 +541,13 @@ pushad add edx,(25 shl 16) ;camera 3g 2g int 0x40 add ebx,IMAGE_TOOLBAR_ICON_SIZE - add edx,(25 shl 16) ;¯®¢®à®â 1 + add edx,(25 shl 16) ;¯®¢®à®â z int 0x40 add ebx,IMAGE_TOOLBAR_ICON_SIZE - add edx,(25 shl 16) ;¯®¢®à®â 2 + add edx,(25 shl 16) ;¯®¢®à®â x + int 0x40 + add ebx,IMAGE_TOOLBAR_ICON_SIZE + add edx,(25 shl 16) ;¯®¢®à®â y int 0x40 add ebx,IMAGE_TOOLBAR_ICON_SIZE add edx,(25 shl 16) ;ᤢ¨£ ¯«®áª®á⨠+ @@ -717,70 +724,74 @@ button: @@: cmp ah,9 jne @f - call but_3 + call but_r_z @@: cmp ah,10 jne @f - call but_4 + call but_r_x @@: cmp ah,11 jne @f - call but_plane_inc + call but_r_y @@: cmp ah,12 jne @f - call but_plane_dec + call but_plane_inc @@: cmp ah,13 jne @f - call but_mode_pen + call but_plane_dec @@: cmp ah,14 jne @f - call but_mode_brush + call but_mode_pen @@: cmp ah,15 jne @f - call but_mode_clear + call but_mode_brush @@: cmp ah,16 + jne @f + call but_mode_clear + @@: + cmp ah,17 jne @f stdcall set_pen_mode,PEN_MODE_SELECT_COLOR,3,((9 shl 8)+9) shl 16 call draw_palete @@: - cmp ah,17 + cmp ah,18 jne @f call but_light @@: - cmp ah,18 + cmp ah,19 jne @f call but_rend_2_2 @@: - cmp ah,19 + cmp ah,20 jne @f call but_brush_copy @@: - cmp ah,20 + cmp ah,21 jne @f call but_brush_draw @@: - cmp ah,21 + cmp ah,22 jne @f call but_brush_clear @@: - cmp ah,22 + cmp ah,23 jne @f call but_bru_w_m @@: - cmp ah,23 + cmp ah,24 jne @f call but_bru_w_p @@: - cmp ah,24 + cmp ah,25 jne @f call but_bru_h_m @@: - cmp ah,25 + cmp ah,26 jne @f call but_bru_h_p @@: @@ -976,17 +987,23 @@ but_zoom_m: ret align 4 -but_3: +but_r_z: stdcall vox_obj_rot_z, [open_file_vox] call draw_objects ret align 4 -but_4: +but_r_x: stdcall vox_obj_rot_x, [open_file_vox] call draw_objects ret +align 4 +but_r_y: + stdcall vox_obj_rot_y, [open_file_vox] + call draw_objects + ret + ;ᤢ¨£ ¥¬ ¯«®áª®áâì á१  align 4 but_plane_inc: diff --git a/programs/media/voxel_editor/utilites/toolbar.png b/programs/media/voxel_editor/utilites/toolbar.png index c2c9f8b4796f680f0af19c41efb36654050a7b4a..df2bcae80ff1fd3854b9a8055ff9d476f5d1143e 100644 GIT binary patch delta 2107 zcmV-B2*mgM5d9F4S$_{nL_t(&L+zMrP!(ku$4@hTs4v!JIW{&%rqkF5rZ?rK=iA;02DFfE;ehQAFb+$W;wgl#3yPgobzn4M_zrfn4N%ILPhaKJRgt z-93AD_Z-uyMrQuA%kK01_IclZp67kfK9XAjjClN}p|-Zx(0|+8Yf$?eG-!~avfE8+ zLV#1JPNB226W!h2=;`TE6y49y&qrltCCG=Dflf}IJjtBf+uLEWSOm4Sw4kY}30!mx zT2oVlf`S4GL;#S1)oR6^J9pTT)YjI9=H_P9)zvXTM@I*HNMT{20FeO5nHK@bp|!OY z_4W03!=k7udVdK(JO^}6tY~*J7K=8(aK6rE`!J z6Nrww7=Pi(eVj8Yyn(XCin0Uj-sz9F>PQwgIcMz&WICL(2?rAV@k`uBq(rYrLZlI~ zW*__AC1T`60TFxxGE0=1d&czcQIOd80IU zEr0gKZvrl_16lnS6&{{57_MIiPYEt zl;D)Iu6qK>tDix%=MZdN@jT|d|AI6RLN@$>5Z^`c^O}!U-_B$+ zyI{t6eDvN}y#2-~j2<-tBZm#a&}W~nM-T=$8gU-UEAx@V zbs9Y)Tk;V)Qj*6pTuNvK{q<>xY{-^;1VF-yqbQAOKzCmsI%!o_5!sL}`3QjcWw|&P zRR;^_*vzecY9br5B_9E>>zf>uL{_7TTe@nvy?~m?hHS}407Na##P8c~pq6`jC4aY( zP!rjZE%^w59g8wh6kdg^SDJB?+XJbIY{-^;1i<#s4xk|PGP3|LA7-L!bdLbrK2O83;0lnB0Pvq0haCShgfG~O z^z>|YBqb%KGx6655dC!~j+)9rJ_6uWZYfqxFmo4Uk(!!?h%eHa5)(6+_-h16^vJ`n zn=UeY$?BZ4GacWI^@FFUr=sYdSjGjR4|sW3?FU-RyUQJESo$Q8oCffYXn!?;qz01o zM7bjmPy;c5mZKU-0QmU$XoC0$@wP%D(G9xD%h4RjZ5#sRAhDzPo+d!a@%{ni^Pu%~ zKEV|8z>%|3LMbk;;@2g9y-F#qx;ndD3(i#MKeIn@=81CK`!feFzXiFYJRcn9ftI5h zNYW3~(pTOuB&n=b2TC1F7k@yl)#(Pv`=PkOYBm&lif(|?JU9Y~U#Dt6kOQ3V2RuOc z$|Nt8hy9>`(RF!$AYbA%yRueU-`{>9-pXk81;zb=xM;M7q6v`iiFEA`)XMh30Mu$< zvn%rn;;4D5C6wy^K>TX?Ci-C3MrT&*fBF7^hGIJ2g6zvyhrby#hkvkeUmZx96&6K^ zCSYDlH6m_uUoW}i;qo>+h$di8d=&yN^dP*d4|JY!q1pa3knzwB%#8lip^PP+SdrU~ zpi4c>=0Is<|CcP9sHqWU+*7)+`a}nl_iq+KUWFDcJJO0J2b-AIpXp@w>1XTve|S#b ze405d+TSRMCT?o{HGjD8D98A%r5Ly6EEAnC$-D*f5teuNz#7D}#;I6X(a5U56 zA!q``Vevpa03Wt|2rLxQMMZ!(Y*zr1R;~n4ibCl%$}}Uj+o{^UuKsP4;xJXWy1Eld l&uesPyMNCSXq7VE{~HA#mLwrWWW@jg002ovPDHLkV1f delta 2105 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 VtfTfWR?Ywb002ovPDHLkV1l@>D4hTR diff --git a/programs/media/voxel_editor/utilites/vox_creator.asm b/programs/media/voxel_editor/utilites/vox_creator.asm index 5feec3fb2..620627cf1 100644 --- a/programs/media/voxel_editor/utilites/vox_creator.asm +++ b/programs/media/voxel_editor/utilites/vox_creator.asm @@ -12,11 +12,15 @@ use32 include '../../../../programs/macros.inc' include '../../../../programs/proc32.inc' include '../../../../programs/develop/libraries/box_lib/load_lib.mac' -include '../trunk/mem.inc' -include '../trunk/dll.inc' +include '../../../../programs/dll.inc' + +vox_offs_tree_table equ 4 +vox_offs_data equ 12 +txt_buf rb 8 +include '../trunk/vox_rotate.inc' @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load -caption db 'Voxel creator 8.08.12',0 ;¯®¤¯¨áì ®ª­  +caption db 'Voxel creator 03.10.13',0 ;¯®¤¯¨áì ®ª­  struct FileInfoBlock Function dd ? @@ -386,29 +390,6 @@ need_node: .end_f: ret -; -;x0y0 - x1y0 -;x1y0 - x1y1 -;x0y1 - x0y0 -;x1y1 - x0y1 -align 4 -proc vox_obj_rot_z uses eax ebx ecx, v_obj:dword - mov ebx,[v_obj] - add ebx,vox_offs_tree_table - mov ecx,2 - cld - @@: - mov eax,dword[ebx] - mov byte[ebx+1],al - mov byte[ebx+3],ah - shr eax,16 - mov byte[ebx],al - mov byte[ebx+2],ah - add ebx,4 - loop @b - ret -endp - align 4 draw_window: pushad @@ -524,6 +505,7 @@ draw_pok: ;®¡­®¢«¥­¨¥ ¯®¤¯¨á¨ à §¬¥à  ä ©«  mov edi,txt_f_size.size mov dword[edi],0 + mov dword[edi+4],0 mov eax,dword[vox_obj_size] mov ebx,txt_pref .cycle: @@ -533,6 +515,7 @@ draw_pok: add ebx,4 jmp .cycle @@: + call convert_int_to_str stdcall str_cat, edi,ebx stdcall str_cat, edi,txt_space ;§ ¢¥àè î騩 ¯à®¡¥« diff --git a/programs/media/voxel_editor/utilites/vox_mover.asm b/programs/media/voxel_editor/utilites/vox_mover.asm index 262e33e73..54ff8cc20 100644 --- a/programs/media/voxel_editor/utilites/vox_mover.asm +++ b/programs/media/voxel_editor/utilites/vox_mover.asm @@ -12,9 +12,9 @@ use32 include '../../../../programs/macros.inc' include '../../../../programs/proc32.inc' include '../../../../programs/develop/libraries/box_lib/load_lib.mac' -include '../trunk/mem.inc' -include '../trunk/dll.inc' +include '../../../../programs/dll.inc' include '../trunk/vox_draw.inc' +include '../trunk/vox_rotate.inc' @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load caption db 'Voxel mover 13.09.12',0 ;¯®¤¯¨áì ®ª­