// CharacterInfoDlg.cpp : implementation file // #include "stdafx.h" #include "..\inc\edactors\EdAcIRes.h" //// #include "_AInterf.hpp" #include "IncGAM.h" #include "TFa.h" #include "DPT.h" #include "EDACStrg.hpp" #include "EDACInst.hpp" #include "EDACModl.hpp" #include "EDACVwAc.hpp" #include "EDACDgIf.hpp" #include "EDACDgQu.hpp" #include "Defines.hpp" //-----------------IR------------------------- #include "EdIRStrg.hpp" #include "EdIRFrm.hpp" #include "EdIRDVVw.hpp" #include "EdIRBeEn.hpp" //-------------------------------------------- #include "EDACActr.hpp" #include "OPD.h" #include "OGd.h" #include "ErO.h" #undef CPA_WANTS_IMPORT #undef CPA_EXPORT #define CPA_WANTS_EXPORT //-----------------IR------------------------- #include "EdIRIRD.hpp" //-------------------------------------------- #include "_Actors.hpp" #undef CPA_WANTS_EXPORT #define CPA_WANTS_IMPORT #include "CharacterInfoDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCharacterInfoDlg dialog CCharacterInfoDlg::CCharacterInfoDlg(CPA_SuperObject *pSuperObject, CWnd* pParent /*=NULL*/) : CDialog(CCharacterInfoDlg::IDD, pParent) { m_pSuperObject = pSuperObject; //{{AFX_DATA_INIT(CCharacterInfoDlg) m_csFamily = _T(""); m_csInstance = _T(""); m_csModel = _T(""); m_csNumberOfModules = _T(""); m_csXSize = _T(""); m_csYSize = _T(""); m_csZSize = _T(""); //}}AFX_DATA_INIT } void CCharacterInfoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCharacterInfoDlg) DDX_Text(pDX, IDC_FAMILY, m_csFamily); DDX_Text(pDX, IDC_INSTANCE, m_csInstance); DDX_Text(pDX, IDC_MODEL, m_csModel); DDX_Text(pDX, IDC_MODULES_NB, m_csNumberOfModules); DDX_Text(pDX, IDC_X_SIZE, m_csXSize); DDX_Text(pDX, IDC_Y_SIZE, m_csYSize); DDX_Text(pDX, IDC_Z_SIZE, m_csZSize); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCharacterInfoDlg, CDialog) //{{AFX_MSG_MAP(CCharacterInfoDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCharacterInfoDlg message handlers ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : OnInitDialog // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// BOOL CCharacterInfoDlg::OnInitDialog() { ComputeVariables (); CDialog::OnInitDialog(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : ComputeVariables // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// void CCharacterInfoDlg::ComputeVariables () { ASSERT (m_pSuperObject); CPA_Actor *pActor = (CPA_Actor *)m_pSuperObject->GetObject (); ASSERT (pActor); m_csInstance = pActor->GetName (); m_csModel = pActor->m_fn_pclGetModel ()->GetName (); CPA_Family *pFamily = pActor->m_pub_fn_pclGetFamily (); if (pFamily) m_csFamily = pFamily->GetName (); int iModulesNumber = mfn_iGetModulesNumber (m_pSuperObject); m_csNumberOfModules.Format ("%d", iModulesNumber); MTH3D_tdstVector tdstSize = mfn_GetSize (m_pSuperObject); m_csXSize.Format ("%f", tdstSize.xX); m_csYSize.Format ("%f", tdstSize.xY); m_csZSize.Format ("%f", tdstSize.xZ); CStringList lstOfModules; mfn_vFillModulesList (m_pSuperObject, lstOfModules); CListBox *pList = (CListBox *)GetDlgItem (IDC_LIST__MODULES); ASSERT (pList); POSITION pos = lstOfModules.GetHeadPosition (); while (pos) { CString csModuleName = lstOfModules.GetNext (pos); pList->AddString (csModuleName); } } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : mfn_iGetModulesNumber // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// void CCharacterInfoDlg::mfn_vGetModulesNumber (CPA_SuperObject *pSuperObject, int &riModulesNumber) { if (!pSuperObject) return; CPA_SuperObject *pChild; for (pChild = pSuperObject->GetSuperObjectFirstChild(); pChild; pChild = pSuperObject->GetSuperObjectNextChild (pChild)) { CPA_BaseObject *pObject = pChild->GetObject (); if (pObject && HIE_C_ulPO == pChild->GetObjectType ()) riModulesNumber++; mfn_vGetModulesNumber (pChild, riModulesNumber); } } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : mfn_iGetModulesNumber // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// int CCharacterInfoDlg::mfn_iGetModulesNumber (CPA_SuperObject *pSuperObject) { int iModulesNumber = 0; mfn_vGetModulesNumber (pSuperObject, iModulesNumber); return iModulesNumber; } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : mfn_GetSize // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// MTH3D_tdstVector CCharacterInfoDlg::mfn_GetSize (CPA_SuperObject *pSuperObject) { MTH3D_tdstVector tdstSize, tdstMinCoordinates, tdstMaxCoordinates; tdstMinCoordinates.xX = tdstMinCoordinates.xY = tdstMinCoordinates.xZ = 0; tdstMaxCoordinates.xX = tdstMaxCoordinates.xY = tdstMaxCoordinates.xZ = 0; mfn_vGetMinMaxCoordinates (pSuperObject, tdstMinCoordinates, tdstMaxCoordinates); tdstSize.xX = tdstMaxCoordinates.xX - tdstMinCoordinates.xX; tdstSize.xY = tdstMaxCoordinates.xY - tdstMinCoordinates.xY; tdstSize.xZ = tdstMaxCoordinates.xZ - tdstMinCoordinates.xZ; return tdstSize; } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : mfn_vGetMinMaxCoordinates // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// void CCharacterInfoDlg::mfn_vGetMinMaxCoordinates (CPA_SuperObject *pSuperObject, MTH3D_tdstVector &rtdstMinCoordinates, MTH3D_tdstVector &rtdstMaxCoordinates) { if (!pSuperObject) return; CPA_SuperObject *pChild; for (pChild = pSuperObject->GetSuperObjectFirstChild(); pChild; pChild = pSuperObject->GetSuperObjectNextChild (pChild)) { CPA_BaseObject *pObject = pChild->GetObject (); if (pObject && HIE_C_ulPO == pChild->GetObjectType ()) { Geometry3D *p3D = ((EditorPO *)pObject)->m_fnp_oGetGeometricWithDistance (0); if (p3D) { MTH3D_tdstVector tdstLocalMin = p3D->mfn_3dvGetMinCoordinates (); rtdstMinCoordinates.xX = tdstLocalMin.xX < rtdstMinCoordinates.xX ? tdstLocalMin.xX : rtdstMinCoordinates.xX; rtdstMinCoordinates.xY = tdstLocalMin.xY < rtdstMinCoordinates.xY ? tdstLocalMin.xY : rtdstMinCoordinates.xY; rtdstMinCoordinates.xZ = tdstLocalMin.xZ < rtdstMinCoordinates.xZ ? tdstLocalMin.xZ : rtdstMinCoordinates.xZ; MTH3D_tdstVector tdstLocalMax = p3D->mfn_3dvGetMaxCoordinates (); rtdstMaxCoordinates.xX = tdstLocalMax.xX > rtdstMaxCoordinates.xX ? tdstLocalMax.xX : rtdstMaxCoordinates.xX; rtdstMaxCoordinates.xY = tdstLocalMax.xY > rtdstMaxCoordinates.xY ? tdstLocalMax.xY : rtdstMaxCoordinates.xY; rtdstMaxCoordinates.xZ = tdstLocalMax.xZ > rtdstMaxCoordinates.xZ ? tdstLocalMax.xZ : rtdstMaxCoordinates.xZ; } } mfn_vGetMinMaxCoordinates (pChild, rtdstMinCoordinates, rtdstMaxCoordinates); } } ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : mfn_vFillModulesList // Date : 98-05 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : // Author : Stegaru Cristian - CPA2 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// void CCharacterInfoDlg::mfn_vFillModulesList (CPA_SuperObject *pSuperObject, CStringList &rlstOfModules) { if (!pSuperObject) return; CPA_SuperObject *pChild; for (pChild = pSuperObject->GetSuperObjectFirstChild(); pChild; pChild = pSuperObject->GetSuperObjectNextChild (pChild)) { CPA_BaseObject *pObject = pChild->GetObject (); if (pObject && HIE_C_ulPO == pChild->GetObjectType ()) { rlstOfModules.AddTail (pObject->GetName ()); } mfn_vFillModulesList (pChild, rlstOfModules); } }