home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 8090 / ModelEdit.7z / ExportD3D_Dlg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2006-03-08  |  7.3 KB  |  262 lines

  1. // ExportD3D_Dlg.cpp : implementation file
  2. //
  3.  
  4. #include "precompile.h"
  5. #include "modeledit.h"
  6. #include "ExportD3D_Dlg.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CExportD3D_Dlg
  16. IMPLEMENT_DYNAMIC(CExportD3D_Dlg, CFileDialog)
  17.  
  18. CExportD3D_Dlg::CExportD3D_Dlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
  19.         DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
  20.         CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
  21. {
  22.     m_ofn.Flags |= OFN_ENABLETEMPLATE;
  23.     m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EXPORT_D3D);
  24.     m_bDoneWithUpdate = false;
  25.     m_CompressionType = RELEVANT ;
  26.  
  27.     m_bStreamOptionsPosition    = true;
  28.     m_bStreamOptionsNormal        = true;
  29.     m_bStreamOptionsColor        = false;
  30.     m_bStreamOptionsTangent        = false;
  31.     m_bStreamOptionsUV1            = true;
  32.     m_bStreamOptionsUV2            = false;
  33.     m_bStreamOptionsUV3            = false;
  34.     m_bStreamOptionsUV4            = false;
  35. }
  36.  
  37. BEGIN_MESSAGE_MAP(CExportD3D_Dlg, CFileDialog)
  38.     //{{AFX_MSG_MAP(CImportAnimation)
  39.     ON_BN_CLICKED(IDC_EXPORT_D3D_FORCE_BONES_PER_VERT, OnDataChange)
  40.     ON_EN_CHANGE(IDC_EXPORT_D3D_BONES_PER_VERT, OnDataChange)
  41.     ON_BN_CLICKED(IDC_EXPORT_D3D_FORCE_BONES_PER_TRI, OnDataChange)
  42.     ON_BN_CLICKED(IDC_EXPORT_PAUSE_AFTER_COMPILE, OnDataChange)
  43.     ON_BN_CLICKED(IDC_NO_GEOM, OnDataChange)
  44.  
  45.     ON_EN_CHANGE(IDC_EXPORT_D3D_BONES_PER_TRI, OnDataChange)
  46.     ON_BN_CLICKED(IDC_EXPORT_USED3DTNL, OnDataChange)
  47.     ON_BN_CLICKED(IDC_EXPORT_USEMATRIXPALETTES, OnDataChange)
  48.     ON_EN_CHANGE(IDC_EXPORT_MINBONEWEIGHT, OnDataChange)
  49.     ON_CBN_SELCHANGE(IDC_COMBO_COMPRESSION_TYPE, OnDataChange)
  50.  
  51.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_POSITION, OnDataChange)
  52.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_NORMAL, OnDataChange)
  53.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_COLOR, OnDataChange)
  54.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_TANGENT, OnDataChange)
  55.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_UV1, OnDataChange)
  56.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_UV2, OnDataChange)
  57.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_UV3, OnDataChange)
  58.     ON_BN_CLICKED(IDC_STREAM0_OPTIONS_UV4, OnDataChange)
  59.  
  60.     //}}AFX_MSG_MAP
  61. END_MESSAGE_MAP()
  62.  
  63. void CExportD3D_Dlg::OnInitDone()
  64. {
  65.     // Set initial data...
  66.     CButton* pCheck = (CButton*)GetDlgItem(IDC_EXPORT_D3D_FORCE_BONES_PER_VERT);
  67.     if (pCheck) pCheck->SetCheck(m_bMaxBonesPerVert);
  68.     CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EXPORT_D3D_BONES_PER_VERT);
  69.     if (pEdit) 
  70.     { 
  71.         char szBuff[32]; sprintf(szBuff,"%d",m_iMaxBonesPerVert);
  72.         pEdit->SetWindowText(szBuff); 
  73.     }
  74.  
  75.     if (pEdit) pEdit->EnableWindow(m_bMaxBonesPerVert);
  76.  
  77.     
  78.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_D3D_FORCE_BONES_PER_TRI);
  79.     if (pCheck) pCheck->SetCheck(m_bMaxBonesPerTri);
  80.     pEdit = (CEdit*)GetDlgItem(IDC_EXPORT_D3D_BONES_PER_TRI);
  81.     if (pEdit) { 
  82.         char szBuff[32]; sprintf(szBuff,"%d",m_iMaxBonesPerTri);
  83.         pEdit->SetWindowText(szBuff); }
  84.     if (pEdit) pEdit->EnableWindow(m_bMaxBonesPerTri);
  85.  
  86.     
  87.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_USEMATRIXPALETTES);
  88.     if (pCheck) pCheck->SetCheck(m_bUseMatrixPalettes);
  89.  
  90.     pEdit = (CEdit *)GetDlgItem(IDC_EXPORT_MINBONEWEIGHT);
  91.     if (pEdit)
  92.     {
  93.         char sTmp[32];
  94.         sprintf(sTmp, "%4.2f", m_fMinBoneWeight);
  95.         pEdit->SetWindowText(sTmp);
  96.         pEdit->EnableWindow(true);
  97.     }
  98.  
  99.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_PAUSE_AFTER_COMPILE);
  100.     if (pCheck) pCheck->SetCheck(m_bPauseAfterCompile);
  101.     
  102.  
  103.     pCheck = (CButton*)GetDlgItem(IDC_NO_GEOM);
  104.     if(pCheck) pCheck->SetCheck(m_bExcludeGeometry);
  105.  
  106.  
  107.     CComboBox *pComboBox = (CComboBox*)GetDlgItem( IDC_COMBO_COMPRESSION_TYPE );
  108.  
  109.     // setup compression type options. make relevant only default case.
  110.     // note: any compression removes va animated stuff.
  111.     if( pComboBox ) 
  112.     {
  113.         int cur_sel ;
  114.         pComboBox->AddString( "No compression");
  115.         pComboBox->AddString( "(RLE)");
  116.         cur_sel = pComboBox->AddString( "(RLE16) ");    
  117.         pComboBox->AddString( "(RLE16) Player View " );
  118.         cur_sel = m_CompressionType ;
  119.         pComboBox->SetCurSel(cur_sel);
  120.         pComboBox->UpdateData(FALSE);
  121.     }
  122.  
  123.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_POSITION);
  124.     if (pCheck) 
  125.     {
  126.         pCheck->SetCheck(true);
  127.     }
  128.  
  129.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_NORMAL);
  130.     if (pCheck) 
  131.     {
  132.         pCheck->SetCheck(true);
  133.     }
  134.  
  135.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_UV1);
  136.     if (pCheck) 
  137.     {
  138.         pCheck->SetCheck(true);
  139.     }
  140.         
  141.     m_bDoneWithUpdate = true;
  142. }
  143.  
  144. void CExportD3D_Dlg::OnDataChange() 
  145. {
  146.     if (!m_bDoneWithUpdate) return;
  147.  
  148.     CButton* pCheck = (CButton*)GetDlgItem(IDC_EXPORT_D3D_FORCE_BONES_PER_VERT);
  149.     
  150.     if (pCheck) m_bMaxBonesPerVert = pCheck->GetCheck() ? true : false;
  151.  
  152.     CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EXPORT_D3D_BONES_PER_VERT);
  153.     if (pEdit) 
  154.     { 
  155.         CString szBuff; pEdit->GetWindowText(szBuff); 
  156.         m_iMaxBonesPerVert = atoi(szBuff); 
  157.     }
  158.  
  159.     if (pEdit) 
  160.         pEdit->EnableWindow(m_bMaxBonesPerVert);
  161.     
  162.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_D3D_FORCE_BONES_PER_TRI);
  163.  
  164.     if (pCheck) m_bMaxBonesPerTri = pCheck->GetCheck() ? true : false;
  165.  
  166.     pEdit = (CEdit*)GetDlgItem(IDC_EXPORT_D3D_BONES_PER_TRI);
  167.  
  168.     if (pEdit) 
  169.     { 
  170.         CString szBuff; pEdit->GetWindowText(szBuff); 
  171.         m_iMaxBonesPerTri = atoi(szBuff); 
  172.     }
  173.     
  174.     if (pEdit) pEdit->EnableWindow(m_bMaxBonesPerTri);
  175.  
  176.  
  177.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_USEMATRIXPALETTES);
  178.     if (pCheck) m_bUseMatrixPalettes = pCheck->GetCheck() ? true : false;
  179.  
  180.     pEdit = (CEdit *)GetDlgItem(IDC_EXPORT_MINBONEWEIGHT);
  181.     if (pEdit)
  182.     {        
  183.         char sTmp[32];
  184.         pEdit->GetWindowText(sTmp, 32);
  185.  
  186.         m_fMinBoneWeight = (float)atof(sTmp);
  187.     }
  188.  
  189.     pCheck = (CButton*)GetDlgItem(IDC_NO_GEOM);
  190.     if (pCheck) m_bExcludeGeometry = pCheck->GetCheck() ? true : false ;
  191.  
  192.     pCheck = (CButton*)GetDlgItem(IDC_EXPORT_PAUSE_AFTER_COMPILE);
  193.     if (pCheck) m_bPauseAfterCompile = pCheck->GetCheck() ? true : false;
  194.  
  195.  
  196.     // get the compression type.
  197.     CComboBox *pComboBox = (CComboBox*)GetDlgItem( IDC_COMBO_COMPRESSION_TYPE );
  198.     if( pComboBox )
  199.     {
  200.         int val = pComboBox->GetCurSel();
  201.         switch (val) {
  202.         case 0:
  203.             m_CompressionType = NONE ; break ;
  204.         case 1:
  205.             m_CompressionType = RELEVANT;break;
  206.         case 2:
  207.             m_CompressionType = RELEVANT_16bit ; break ;
  208.         case 3:
  209.             m_CompressionType = REL_PV16 ; break ;
  210.         };
  211.     }
  212.  
  213.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_POSITION);
  214.     if (pCheck) 
  215.     {
  216.         m_bStreamOptionsPosition = pCheck->GetCheck() ? true : false;
  217.     }
  218.  
  219.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_NORMAL);
  220.     if (pCheck) 
  221.     {
  222.         m_bStreamOptionsNormal = pCheck->GetCheck() ? true : false;
  223.     }
  224.  
  225.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_COLOR);
  226.     if (pCheck) 
  227.     {
  228.         m_bStreamOptionsColor = pCheck->GetCheck() ? true : false;
  229.     }
  230.  
  231.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_TANGENT);
  232.     if (pCheck) 
  233.     {
  234.         m_bStreamOptionsTangent = pCheck->GetCheck() ? true : false;
  235.     }
  236.  
  237.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_UV1);
  238.     if (pCheck) 
  239.     {
  240.         m_bStreamOptionsUV1 = pCheck->GetCheck() ? true : false;
  241.     }
  242.  
  243.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_UV2);
  244.     if (pCheck) 
  245.     {
  246.         m_bStreamOptionsUV2 = pCheck->GetCheck() ? true : false;
  247.     }
  248.  
  249.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_UV3);
  250.     if (pCheck) 
  251.     {
  252.         m_bStreamOptionsUV3 = pCheck->GetCheck() ? true : false;
  253.     }
  254.  
  255.     pCheck = (CButton*)GetDlgItem(IDC_STREAM0_OPTIONS_UV4);
  256.     if (pCheck) 
  257.     {
  258.         m_bStreamOptionsUV4 = pCheck->GetCheck() ? true : false;
  259.     }
  260.  
  261. }
  262.