reman3/Rayman_X/cpa/tempgrp/OAC/Src/characterinfodlg.cpp

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);
}
}