/******************************************************************************* Moduli: siirto.cpp Tarkoitus: ...... Projekti: Winlin, Cum laude approbatur -harjoitustyö Tekijät: Virpi Kivinen & Tiina Mäkinen Tehty: 1.1.96 Muutettu 1.7.96 Mitä muutettu: + lisättyyt Puutteet: mökki *******************************************************************************/ /**********************************************************************************************/ /* Tänne tullaan kun menusta on valittu Valmiit kuvaukset -Siirto */ /* */ /* static LONG WM_command_idc_oksiirto(tMSGParam *msg) */ /* -aliohjelmassa luetaan taulkkoon Siirto-dialogista haluttu siirtojen suuruus eri akse- */ /* lien suuntaan.Jos näkyvissä on 3x3-matriisi,(2-ulott. siirto) siirrot sijoitetaan */ /* matriisiin R. 4x4-matriisin näkyessä kutsutaan matriisin metodia siirto, joka tekee */ /* halutun siirtomatriisin. Mikäli dialogissa ei ole valittu ruutua Matriisiin sijoitus, */ /* ikkunan matriisi kerrotaan matriisilla R (yhdistetty kuvaus). */ /* Kuva ikkunalle lähetetään viesti KUVAA. */ /* */ /* static LONG WM_InitDialog(tMSGParam *msg) */ /* -jos matriisin dimensio on pienempi kuin neljä, ei anneta tehdä siirtoja z-akselin */ /* suhteen.(Pelkkä taso.) */ /**********************************************************************************************/ #include #include #include #include "tabhand.h" #include "mdialog.h" #include "winlin.h" #include "kahvat.h" static LONG WM_command_idc_oksiirto(tMSGParam *msg) { char s[10]; double a[3]; int i; cMatrix R; for(i=0;i<=2;i++){ GetDlgItemText(msg->hWnd,IDC_XSIIRTO+i,s,sizeof(s)); if (sscanf(s,"%lf",&a[i])!=1) a[i]=0; } if (W.dimensio==3) {R[0][2]=a[0]; R[1][2]=a[1];} else R.siirto(a[0],a[1],a[2]); if ( !IsDlgButtonChecked(msg->hWnd,IDC_CHECKBOX_SIIRTO)) // kerrotaanko kerro_matriisi(R); aseta_matriisi(R,W.Hwndt[1]); LAHETA_VIESTI(ikkunat.etsi_kahva(1),KUVAA); DestroyDialog(msg->hWnd,TRUE); return 0; } static LONG WM_InitDialog(tMSGParam *msg) { if (W.dimensio<=3){ //piilottaa z-akselin HWND h; h=GetDlgItem(msg->hWnd,IDC_ZSIIRTO); ShowWindow(h,FALSE); EnableWindow(h,SW_HIDE); h=GetDlgItem(msg->hWnd,IDC_ZTEXTS); ShowWindow(h,FALSE); return 0; } return 0; } static LONG WM_command_idc_peruutas(tMSGParam *msg) { DestroyDialog(msg->hWnd,TRUE); return 0; } tMSGEntry STbl[] = { { WM_INITDIALOG, DoC , DoC, WM_InitDialog }, { WM_COMMAND , IDCANCEL , DoC, WM_command_idc_peruutas}, { WM_COMMAND , IDC_OKSIIRTO, DoC, WM_command_idc_oksiirto}, { WM_COMMAND , IDC_PERUUTAS, DoC, WM_command_idc_peruutas}, { 0 } };