294 lines
10 KiB
C++
294 lines
10 KiB
C++
// 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);
|
|
}
|
|
}
|
|
|