reman3/Rayman_X/cpa/tempgrp/TFa/src/CPATstPt.cpp

211 lines
7.4 KiB
C++

/*=============================================================================
*
* Filename: CPATstPt.cpp
* Version: 2.0 (VSS5)
* Date: 28/07/97
* Author: Marc Trabucato
*
* Description: implementation of CPA_TestPoint class
*
*===========================================================================*/
#ifdef ACTIVE_EDITOR
#include "stdafx.h"
// ALX
#include "ACP_Base.h"
#include "TFA.h"
#include "DPT.h"
#include "x:\cpa\main\inc\_EditID.h"
/*=============================================================================
* class CPA_TestPointNode:
=============================================================================*/
DeclareTemplateStatic(tdxHandleToTestPointNode);
void delnode(tdxHandleToTestPointNode h)
{}
void CPA_TestPointNode::Init()
{
CPA_EdMot<tdxHandleToTestPointNode>::Init(fn_hCreateTestPointNode,NULL,delnode);
}
/*-----------------------------------------------------------------------------
* Description : constructor
*---------------------------------------------------------------------------*/
CPA_TestPointNode::CPA_TestPointNode( CPA_TestPointsList *_p_oList, tdxHandleToTestPointNode _hTestPointNode /*=NULL*/ )
:CPA_EdMot<tdxHandleToTestPointNode>(_hTestPointNode)
{
ASSERT( _p_oList );
SetOwnerList( _p_oList );
SetZdxObject( NULL );
// add point on editor list
if( _hTestPointNode == NULL )
SetStruct( fn_hCreateTestPointNode() );
// and on engine list only if created point
_p_oList -> m_oListOfTestPoints . AddTail( this, ( _hTestPointNode == NULL ) );
}
/*-----------------------------------------------------------------------------
* Description : destructor
*---------------------------------------------------------------------------*/
CPA_TestPointNode::~CPA_TestPointNode(void)
{
}
/*=============================================================================
* class CPA_TestPointsList:
=============================================================================*/
DeclareTemplateStatic(tdxHandleToTestPointsList);
void dellist(tdxHandleToTestPointsList h)
{}
/*-----------------------------------------------------------------------------
* Description :
*---------------------------------------------------------------------------*/
void CPA_TestPointsList::Init()
{
CPA_EdMot<tdxHandleToTestPointsList>::Init(fn_hCreateTestPointsList,NULL,dellist);
}
/*-----------------------------------------------------------------------------
* Description : constructor
*---------------------------------------------------------------------------*/
CPA_TestPointsList::CPA_TestPointsList(CPA_EditorBase *_p_oDLL, CPA_BaseObject *_p_oOwnerFamily, tdxHandleToTestPointsList _hTestPointsList /*=NULL*/,
CString _csListName /*=""*/)
:CPA_SaveObject(_p_oDLL, C_szTestPointsListTypeName, E_ss_Responsible, _p_oOwnerFamily, FALSE, fn_szGetFamiliesDataPath(), CPA_TestPointsList::fn_vCallBackSave),
CPA_EdMot<tdxHandleToTestPointsList>(_hTestPointsList)
{
// Section init & File Section Init
char *p_szFamilyName = _p_oOwnerFamily -> fn_p_szGetName();
char szFileName[SCR_CV_ui_Cfg_MaxLenName];
char szReferencedSectionName[SCR_CV_ui_Cfg_MaxLenName];
sprintf( szFileName, "%s\\%s.tpe", p_szFamilyName, p_szFamilyName );
SCR_fn_v_RdL0_ComputeSectionName( szReferencedSectionName, szFileName, "TestPointsList", NULL);
SetReferencedSectionName( szReferencedSectionName );
SetSectionData( this );
SetExistingSection( _hTestPointsList != NULL );
// data
if( _hTestPointsList == NULL )
SetStruct( fn_hCreateTestPointsList() );
// Name
if( fn_eRename( _csListName ) != E_mc_None )
SetDefaultValidName();
fn_vUpdateSectionName();
// data
m_oListOfTestPoints . SetEngineAnchor( GetStruct() ? & GetStruct() -> hForTestPointArray : NULL );
if( _hTestPointsList == NULL )
{
fn_vNotifySave();
}
else
{
// fill TPList List
CPA_TestPointNode *p_oNode;
tdxHandleToTestPointNode hNode;
int iIndex = 0;
LST2_M_StaticForEachElementOf( & GetStruct() -> hForTestPointArray, hNode, iIndex)
{
p_oNode = new CPA_TestPointNode( this, hNode );
}
// construct ZdxObject
CPA_EditorBase *p_oZDxEditor = GetMainWorld() -> GetObjectDLLWithName( C_szDLLZDxName );
if( p_oZDxEditor )
p_oZDxEditor -> OnQueryAction( GetEditor(), C_uiQueryCreateZDxTestPoints, (long)this );
}
((CPA_Family *) _p_oOwnerFamily) -> mfn_vAddTestPointsList( this );
}
/*-----------------------------------------------------------------------------
* Description : destructor
*---------------------------------------------------------------------------*/
CPA_TestPointsList::~CPA_TestPointsList(void)
{
}
/*-----------------------------------------------------------------------------
* Description : save TestPointsList
*---------------------------------------------------------------------------*/
void CPA_TestPointsList::fn_vCallBackSave( SCR_tdst_File_Description *_p_stFile, char *_p_szSectionName, void *_p_vData, SCR_tde_Ntfy_Action _eAction)
{
// ANNECY AV CLEAN_MEC {
/*
CPA_TestPointsList *p_oList = (CPA_TestPointsList*)_p_vData;
CPA_TestPointNode *p_oNode = NULL;
char szActionName[SCR_CV_ui_Cfg_MaxLenName];
char szIdName[SCR_CV_ui_Cfg_MaxLenName];
char szSectionName[SCR_CV_ui_Cfg_MaxLenName];
POSITION xPos;
MTH3D_tdstVector stPosition;
switch ( _eAction )
{
case SCR_EA_Ntfy_AddSection:
case SCR_EA_Ntfy_RebuildSection:
// construct section name
SCR_fn_v_RdL0_SplitSectionName( _p_szSectionName, NULL, szActionName, szIdName );
SCR_fn_v_RdL0_ComputeSectionName( szSectionName, NULL, szActionName, szIdName );
// save begin section
SCR_M_SvL0_SaveBeginSection( _p_stFile, szSectionName, SCR_CC_C_Cfg_EOL );
// entries
xPos = p_oList -> m_oListOfTestPoints . GetHeadPosition();
while ( xPos )
{
p_oNode = p_oList -> m_oListOfTestPoints . GetNext( xPos );
p_oNode -> mfn_vGetPosition( & stPosition );
SCR_M_SvL0_SaveEntry( _p_stFile, "AddTestPoint", SCR_CC_C_Cfg_NoChar );
SCR_fn_v_SvL0_SaveParameters_MP(_p_stFile, SCR_EF_SvL0_Scanf, 1, "%.6f,%.6f,%.6f,%s"
,MTH3D_M_xGetXofVector( &stPosition )
,MTH3D_M_xGetYofVector( &stPosition )
,MTH3D_M_xGetZofVector( &stPosition )
,(char*)(LPCTSTR)p_oList -> GetKindOfPointName( p_oNode -> mfn_eGetKindOfPoint() ) );
}
// End Section
SCR_M_SvL0_SaveEndSection( _p_stFile, SCR_CC_C_Cfg_EOL ) ;
SCR_M_SvL0_SaveBlankLine( _p_stFile ) ;
// update Section name
p_oList -> fn_vSectionSaved();
break;
case SCR_EA_Ntfy_DeleteSection:
p_oList -> fn_vSectionDeleted();
break;
}
*/
// END ANNECY AV }
}
#endif // ACTIVE_EDITOR