805 lines
29 KiB
C++
805 lines
29 KiB
C++
/*
|
|
=======================================================================================
|
|
Name : TPG_OSrc.cpp
|
|
|
|
Author : vincent lhullier Date :20/03/98
|
|
|
|
Description : implementation of editor ParticleSource object class
|
|
=======================================================================================
|
|
*/
|
|
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
#include "StdAfx.h"
|
|
|
|
#include "TPG_OSys.hpp"
|
|
|
|
#include "_Minterf.hpp"
|
|
#include "TPG_Strg.hpp"
|
|
#include "TPG_ClBk.hpp"
|
|
|
|
#include "PRT.h"
|
|
#include "GAM.h"
|
|
#include "MTH.h"
|
|
#include "ErO.h"
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
|
|
//////////////////////////////////////
|
|
// Constructor and Destructor
|
|
//////////////////////////////////////
|
|
CPA_PartGen_Source::CPA_PartGen_Source(CString _csName ) : CPA_SaveObject( g_pclInterface, g_C_csPartGenSourceName, E_ss_Responsible )
|
|
{
|
|
SetSectionData( this );
|
|
SetCallBackSave( m_s_fn_vCallBackSaveSource );
|
|
SetDataPath( C_szEffectPath );
|
|
|
|
if ( fn_eRename(_csName) != E_mc_None )
|
|
SetDefaultValidName();
|
|
|
|
fn_vUpdateSectionName();
|
|
SetExistingSection( FALSE );
|
|
|
|
PRT_fn_vCreateParticlesSource( &m_pri_p_stPrtSrc );
|
|
fn_vUpdateData( (void*) m_pri_p_stPrtSrc );
|
|
|
|
//m_pri_hGameMaterial = NULL;
|
|
//m_pri_hSprite = NULL;
|
|
|
|
m_pri_fn_vFillDataList();
|
|
}
|
|
|
|
CPA_PartGen_Source::CPA_PartGen_Source(CString _csName, PRT_tdstParticlesSource* _p_stPrtSrc, BOOL _bIsLoaded ) : CPA_SaveObject( g_pclInterface, g_C_csPartGenSourceName, E_ss_Responsible )
|
|
{
|
|
SetSectionData( this );
|
|
SetCallBackSave( m_s_fn_vCallBackSaveSource );
|
|
SetDataPath( C_szEffectPath );
|
|
|
|
if ( fn_eRename(_csName) != E_mc_None )
|
|
SetDefaultValidName();
|
|
|
|
fn_vUpdateSectionName();
|
|
SetExistingSection( TRUE );
|
|
|
|
SetAvailable( _bIsLoaded );
|
|
|
|
fn_vUpdateData( (void*) _p_stPrtSrc );
|
|
m_pri_p_stPrtSrc = _p_stPrtSrc;
|
|
|
|
//m_pri_hGameMaterial = NULL;
|
|
//m_pri_hSprite = NULL;
|
|
|
|
if( _bIsLoaded )
|
|
{
|
|
//m_pri_fn_vSetInternalParticle();
|
|
m_pri_fn_vFillDataList();
|
|
}
|
|
}
|
|
|
|
CPA_PartGen_Source::~CPA_PartGen_Source()
|
|
{
|
|
fn_vNotifyUnSave();
|
|
}
|
|
|
|
|
|
void CPA_PartGen_Source::m_pub_fn_vSetSource( PRT_tdstParticlesSource *_p_stPrtSrc )
|
|
{
|
|
fn_vUpdateData( (void*)_p_stPrtSrc );
|
|
m_pri_p_stPrtSrc = _p_stPrtSrc;
|
|
SetAvailable( TRUE );
|
|
|
|
//m_pri_fn_vSetInternalParticle();
|
|
m_pri_fn_vFillDataList();
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// Virtual functions
|
|
long CPA_PartGen_Source::GetDataType( void )
|
|
{
|
|
return( 0 );
|
|
}
|
|
|
|
void* CPA_PartGen_Source::GetData( void )
|
|
{
|
|
return (void*) m_pri_p_stPrtSrc;
|
|
}
|
|
|
|
CString CPA_PartGen_Source::fn_csComputeReferencedSectionName(const CString _csNewName)
|
|
{
|
|
CString csResult = "generators.prt^";
|
|
csResult += C_SectionParticleSource;
|
|
csResult += ":";
|
|
return( csResult + _csNewName );
|
|
}
|
|
|
|
|
|
//*************************************************
|
|
// Load if necessary
|
|
BOOL CPA_PartGen_Source::m_pub_fn_vLoadIfUnloaded()
|
|
{
|
|
if ( !fn_bIsAvailable() )
|
|
{
|
|
SCR_tdst_Cxt_Values *p_stValues;
|
|
p_stValues = SCR_fnp_st_RdL0_AnalyseSection((char *)LPCTSTR(GetReferencedSectionName()), SCR_CDF_uw_Anl_Normal);
|
|
|
|
m_pri_p_stPrtSrc = (PRT_tdstParticlesSource *) p_stValues->a_ulValues[0];
|
|
fn_vUpdateData( (void*) m_pri_p_stPrtSrc );
|
|
SetAvailable(TRUE);
|
|
|
|
//m_pri_fn_vSetInternalParticle();
|
|
m_pri_fn_vFillDataList();
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
///////////////////////////
|
|
// Source via Generator
|
|
///////////////////////////
|
|
/*
|
|
CString CPA_PartGen_Source::m_pri_fn_csGetSourceReferencedSectionName()
|
|
{
|
|
CString csResult = "Generators.prt^";
|
|
csResult += C_SectionParticleSource;
|
|
csResult += ":";
|
|
csResult += GetName();
|
|
return (csResult + "Source");
|
|
}
|
|
*/
|
|
|
|
///////////////////////////////////////////////////////
|
|
// Generation Mode and parameters
|
|
void CPA_PartGen_Source::m_pub_fn_vSetGenerationMode( short _wIndex )
|
|
{
|
|
PRT_M_vSetGenerationModeParticlesSource( m_pri_p_stPrtSrc, (unsigned char)_wIndex );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetGenerationMode()
|
|
{
|
|
return (long) m_pri_p_stPrtSrc->ucGenerationMode;
|
|
}
|
|
|
|
/*
|
|
void CPA_PartGen_Source::m_pub_fn_vSetGenerationProba( double _dValue )
|
|
{
|
|
PRT_M_vSetGenerationProbabilityParticlesSource( m_pri_p_stPrtSrc, MTH_M_xDoubleToReal(_dValue) );
|
|
fn_vNotifySave();
|
|
}
|
|
*/
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetGenerationProba()
|
|
{
|
|
return MTH_M_xRealToDouble( m_pri_p_stPrtSrc->xGenerationProbability );
|
|
}
|
|
|
|
/*
|
|
void CPA_PartGen_Source::m_pub_fn_vSetNbNoGeneration( long _lValue )
|
|
{
|
|
ACP_tdxIndex xNbGeneration = m_pri_p_stPrtSrc->xNbFramesTotal - m_pri_p_stPrtSrc->xNbFramesNoGeneration;
|
|
PRT_M_vSetNbFramesCrenelParticlesSource( m_pri_p_stPrtSrc, (ACP_tdxIndex)_lValue, xNbGeneration );
|
|
fn_vNotifySave();
|
|
}
|
|
*/
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbNoGeneration()
|
|
{
|
|
return (long) m_pri_p_stPrtSrc->xNbFramesNoGeneration;
|
|
}
|
|
|
|
/*
|
|
void CPA_PartGen_Source::m_pub_fn_vSetNbGeneration( long _lValue )
|
|
{
|
|
ACP_tdxIndex xNbNoGeneration = m_pri_p_stPrtSrc->xNbFramesNoGeneration;
|
|
PRT_M_vSetNbFramesCrenelParticlesSource( m_pri_p_stPrtSrc, xNbNoGeneration, (ACP_tdxIndex)_lValue );
|
|
fn_vNotifySave();
|
|
}
|
|
*/
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbGeneration()
|
|
{
|
|
return (long)(m_pri_p_stPrtSrc->xNbFramesTotal - m_pri_p_stPrtSrc->xNbFramesNoGeneration);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////
|
|
// Nb Particles to Generate Mode and parameters
|
|
void CPA_PartGen_Source::m_pub_fn_vSetNbGenerateMode( short _wIndex )
|
|
{
|
|
PRT_M_vSetNbParticlesToGenerateModeParticlesSource( m_pri_p_stPrtSrc, (unsigned char)_wIndex );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbGenerateMode()
|
|
{
|
|
return (long) m_pri_p_stPrtSrc->ucNbParticlesToGenerateMode;
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetNbToGenerate( long _lValue )
|
|
{
|
|
PRT_M_vSetNbParticlesToGenerateParticlesSource( m_pri_p_stPrtSrc, (ACP_tdxIndex)_lValue );
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbToGenerate()
|
|
{
|
|
return (long)(m_pri_p_stPrtSrc->xNbParticlesToGenerate);
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetNbMax( long _lValue )
|
|
{
|
|
ACP_tdxIndex xMin = m_pri_p_stPrtSrc->xNbMin;
|
|
PRT_M_vSetNbMinMaxParticlesSource( m_pri_p_stPrtSrc, xMin, (ACP_tdxIndex)_lValue );
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbMax()
|
|
{
|
|
return (long)(m_pri_p_stPrtSrc->xNbMax);
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetNbMin( long _lValue )
|
|
{
|
|
ACP_tdxIndex xMax = m_pri_p_stPrtSrc->xNbMax;
|
|
PRT_M_vSetNbMinMaxParticlesSource( m_pri_p_stPrtSrc, (ACP_tdxIndex)_lValue, xMax );
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetNbMin()
|
|
{
|
|
return (long)(m_pri_p_stPrtSrc->xNbMin);
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////
|
|
// Geometry Mode and parameters
|
|
void CPA_PartGen_Source::m_pub_fn_vSetGeometryMode( short _wIndex )
|
|
{
|
|
PRT_M_vSetGeometryModeParticlesSource( m_pri_p_stPrtSrc, (unsigned char)_wIndex );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetGeometryMode()
|
|
{
|
|
return (long)m_pri_p_stPrtSrc->ucGeometryMode;
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetSrcPt1( double _dX, double _dY, double _dZ )
|
|
{
|
|
MTH3D_tdstVector stVector;
|
|
MTH3D_M_vSetVectorElements( &stVector, MTH_M_xDoubleToReal(_dX), MTH_M_xDoubleToReal(_dY), MTH_M_xDoubleToReal(_dZ) );
|
|
PRT_fn_vSetQuadParticlesSource
|
|
(
|
|
m_pri_p_stPrtSrc,
|
|
&stVector,
|
|
&(m_pri_p_stPrtSrc->stVertex2),
|
|
&(m_pri_p_stPrtSrc->stVertex3)
|
|
);
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt1X()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetXofVector( &((m_pri_p_stPrtSrc)->stVertex1 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt1Y()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetYofVector( &((m_pri_p_stPrtSrc)->stVertex1 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt1Z()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetZofVector( &((m_pri_p_stPrtSrc)->stVertex1 )) );
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetSrcPt2( double _dX, double _dY, double _dZ )
|
|
{
|
|
MTH3D_tdstVector stVector;
|
|
MTH3D_M_vSetVectorElements( &stVector, MTH_M_xDoubleToReal(_dX), MTH_M_xDoubleToReal(_dY), MTH_M_xDoubleToReal(_dZ) );
|
|
PRT_fn_vSetQuadParticlesSource
|
|
(
|
|
m_pri_p_stPrtSrc,
|
|
&(m_pri_p_stPrtSrc->stVertex1),
|
|
&stVector,
|
|
&(m_pri_p_stPrtSrc->stVertex3)
|
|
);
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt2X()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetXofVector( &((m_pri_p_stPrtSrc)->stVertex2 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt2Y()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetYofVector( &((m_pri_p_stPrtSrc)->stVertex2 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt2Z()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetZofVector( &((m_pri_p_stPrtSrc)->stVertex2 )) );
|
|
}
|
|
|
|
/*void CPA_PartGen_Source::m_pub_fn_vSetSrcPt3( double _dX, double _dY, double _dZ )
|
|
{
|
|
MTH3D_tdstVector stVector;
|
|
MTH3D_M_vSetVectorElements( &stVector, MTH_M_xDoubleToReal(_dX), MTH_M_xDoubleToReal(_dY), MTH_M_xDoubleToReal(_dZ) );
|
|
PRT_fn_vSetQuadParticlesSource
|
|
(
|
|
m_pri_p_stPrtSrc,
|
|
&(m_pri_p_stPrtSrc->stVertex1),
|
|
&(m_pri_p_stPrtSrc->stVertex2),
|
|
&stVector
|
|
);
|
|
fn_vNotifySave();
|
|
}*/
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt3X()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetXofVector( &((m_pri_p_stPrtSrc)->stVertex3 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt3Y()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetYofVector( &((m_pri_p_stPrtSrc)->stVertex3 )) );
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSrcPt3Z()
|
|
{
|
|
return MTH_M_xRealToDouble( MTH3D_M_xGetZofVector( &((m_pri_p_stPrtSrc)->stVertex3 )) );
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// Link Mode
|
|
void CPA_PartGen_Source::m_pub_fn_vSetLinkMode( short _wIndex )
|
|
{
|
|
PRT_M_vSetLinkModeParticlesSource( m_pri_p_stPrtSrc, (unsigned char)_wIndex );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
long CPA_PartGen_Source::m_pub_fn_lGetLinkMode()
|
|
{
|
|
return (long)m_pri_p_stPrtSrc->ucLinkMode;
|
|
}
|
|
|
|
|
|
//////////////////////////////////////////////
|
|
// Speed and Range
|
|
void CPA_PartGen_Source::m_pub_fn_vSetSpeed( double _dSpeed )
|
|
{
|
|
PRT_M_vSetSpeedParticlesSource( m_pri_p_stPrtSrc, MTH_M_xDoubleToReal(_dSpeed) );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSpeed()
|
|
{
|
|
return MTH_M_xRealToDouble( m_pri_p_stPrtSrc->xSpeed );
|
|
}
|
|
|
|
void CPA_PartGen_Source::m_pub_fn_vSetSpeedRange( double _dSpeedRange )
|
|
{
|
|
PRT_M_vSetSpeedRangeParticlesSource( m_pri_p_stPrtSrc, MTH_M_xDoubleToReal(_dSpeedRange) );
|
|
fn_vNotifySave();
|
|
}
|
|
|
|
double CPA_PartGen_Source::m_pub_fn_dGetSpeedRange()
|
|
{
|
|
return MTH_M_xRealToDouble( m_pri_p_stPrtSrc->xSpeedRange );
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
// Point, Segment and Sprite
|
|
/*
|
|
long CPA_PartGen_Source::m_pub_fn_lGetParticlesType()
|
|
{
|
|
return (long)m_pri_p_stSystem->xParticlesType;
|
|
}
|
|
|
|
void CPA_PartGen_Source::m_pub_fn_vSetObjectPoint( GMT_tdxHandleToGameMaterial _hGameMaterial )
|
|
{
|
|
PRT_fn_vCreatePointParticles( m_pri_p_stSystem, _hGameMaterial );
|
|
}
|
|
|
|
GMT_tdxHandleToGameMaterial CPA_PartGen_Source::m_pub_fn_hGetPointGameMaterial()
|
|
{
|
|
return GEO_xGetGameMaterialOfElementPoints(m_pri_p_stSystem->hParticlesSystemObject,0);
|
|
}
|
|
|
|
void CPA_PartGen_Source::m_pub_fn_vSetObjectSegment( GMT_tdxHandleToGameMaterial _hGameMaterial )
|
|
{
|
|
PRT_fn_vCreateSegmentParticles( m_pri_p_stSystem, _hGameMaterial );
|
|
//fn_vNotifySave();
|
|
}
|
|
|
|
GMT_tdxHandleToGameMaterial CPA_PartGen_Source::m_pub_fn_hGetSegmentGameMaterial()
|
|
{
|
|
GMT_tdxHandleToGameMaterial hGameMaterial;
|
|
GEO_xGetGameMaterialOfElementLines(m_pri_p_stSystem->hParticlesSystemObject,0, 0, &hGameMaterial);
|
|
return hGameMaterial;
|
|
}
|
|
|
|
void CPA_PartGen_Source::m_pub_fn_vSetObjectSprite( ACP_tdxHandleOfSprite _hSprite )
|
|
{
|
|
PRT_fn_vCreateSpriteParticles( m_pri_p_stSystem, _hSprite );
|
|
//fn_vNotifySave();
|
|
}
|
|
|
|
ACP_tdxHandleOfSprite CPA_PartGen_Source::m_pub_fn_hGetSprite()
|
|
{
|
|
ACP_tdxHandleOfSprite hSprite;
|
|
GEO_vGetHandleOfIndexedSprite(m_pri_p_stSystem->hParticlesSystemObject, 0, 0, &hSprite );
|
|
return hSprite;
|
|
}
|
|
*/
|
|
/*
|
|
void CPA_PartGen_Source::m_pri_fn_vSetInternalParticle()
|
|
{
|
|
ACP_tdxIndex xType = m_pri_p_stSystem->xParticlesType;
|
|
switch( xType )
|
|
{
|
|
case PRT_C_xPointParticles:
|
|
m_pri_hGameMaterial = GEO_xGetGameMaterialOfElementPoints(m_pri_p_stSystem->hParticlesSystemObject,0);
|
|
break;
|
|
|
|
case PRT_C_xSegmentParticles:
|
|
GEO_xGetGameMaterialOfElementLines(m_pri_p_stSystem->hParticlesSystemObject,0, 0, &m_pri_hGameMaterial);
|
|
break;
|
|
|
|
case PRT_C_xSpriteParticles:
|
|
GEO_vGetHandleOfIndexedSprite(m_pri_p_stSystem->hParticlesSystemObject, 0, 0, &m_pri_hSprite );
|
|
break;
|
|
}
|
|
}
|
|
*/
|
|
|
|
//****************************************************
|
|
// Gets name of the associated object using link table
|
|
/*CString CPA_PartGen_Source::m_pub_fn_csGetObjectName()
|
|
{
|
|
CString csObjectName = "";
|
|
SCR_tdst_Link_Table *p_stLinkTable = NULL;
|
|
SCR_tdst_Link_Value *p_stValue = NULL;
|
|
unsigned long ulValue = 0;
|
|
|
|
long lIndex = m_pub_fn_lGetParticlesType();
|
|
switch( lIndex )
|
|
{
|
|
case PRT_C_xPointParticles:
|
|
p_stLinkTable = GMT_fn_p_stGetLinkTable();
|
|
ulValue = (unsigned long)m_pub_fn_hGetPointGameMaterial();
|
|
break;
|
|
|
|
case PRT_C_xSegmentParticles:
|
|
p_stLinkTable = GMT_fn_p_stGetLinkTable();
|
|
ulValue = (unsigned long)m_pub_fn_hGetSegmentGameMaterial();
|
|
break;
|
|
|
|
case PRT_C_xSpriteParticles:
|
|
p_stLinkTable = GLI_p_stGetLinkTableOfSprite();
|
|
ulValue = (unsigned long)m_pub_fn_hGetSprite();
|
|
break;
|
|
}
|
|
|
|
//*** finds the entry *****
|
|
if( p_stLinkTable != NULL )
|
|
p_stValue = SCR_fnp_st_Link_SearchValue( p_stLinkTable, ulValue );
|
|
|
|
//*** gets the name of the entry ******************************************************
|
|
if( p_stValue != NULL && SCR_M_e_Link_GetState(p_stValue) == SCR_ELS_Link_Initialized )
|
|
{
|
|
csObjectName = SCR_M_p_sz_Link_GetKey(p_stValue);
|
|
|
|
char a_256cFileName[256];
|
|
char a_256cActionName[256];
|
|
char a_256cName[256];
|
|
SCR_fn_v_RdL0_SplitSectionName((char *)LPCTSTR(csObjectName), a_256cFileName, a_256cActionName, a_256cName);
|
|
|
|
csObjectName = a_256cName;
|
|
}
|
|
|
|
return csObjectName;
|
|
}
|
|
*/
|
|
/////////////////////////////////////////////////
|
|
// Nb particles
|
|
/*long CPA_PartGen_Source::m_pub_fn_lGetNbParticles()
|
|
{
|
|
return (long)m_pri_p_stSystem->xNbParticles;
|
|
}
|
|
*/
|
|
|
|
///////////////////////////////////////////////////
|
|
// CallBack and Function for save
|
|
void CPA_PartGen_Source::m_s_fn_vCallBackSaveSource( SCR_tdst_File_Description *_p_stFile, char *_p_szSectionName, void *_p_vData, SCR_tde_Ntfy_Action _eAction )
|
|
{
|
|
ERROR_PREPARE_M
|
|
(
|
|
g_c_csPartGenModuleNameForErrors,
|
|
"Saving a generator",
|
|
"CPA_PartGen_Source::m_s_fn_vCallBackSaveSystem",
|
|
E_ERROR_GRAVITY_FATAL,
|
|
"trying to save a NULL system"
|
|
);
|
|
|
|
CPA_PartGen_Source *p_oPrtSrc = (CPA_PartGen_Source*) _p_vData;
|
|
CString csHeaderName = C_SectionParticleSource;
|
|
|
|
switch( _eAction )
|
|
{
|
|
case SCR_EA_Ntfy_AddSection:
|
|
case SCR_EA_Ntfy_AddOrModifySection:
|
|
case SCR_EA_Ntfy_AddOrRebuildSection:
|
|
case SCR_EA_Ntfy_RebuildSection:
|
|
case SCR_EA_Ntfy_ModifySection:
|
|
|
|
csHeaderName += ":";
|
|
csHeaderName += p_oPrtSrc->GetName();
|
|
|
|
SCR_M_SvL0_SaveBeginSection( _p_stFile, M_MAKECHAR(csHeaderName), SCR_CC_C_Cfg_EOL );
|
|
p_oPrtSrc->m_pri_fn_vSaveSource( _p_stFile );
|
|
SCR_M_SvL0_SaveEndSection( _p_stFile, SCR_CC_C_Cfg_EOL );
|
|
|
|
p_oPrtSrc->fn_vSectionSaved();
|
|
break;
|
|
|
|
case SCR_EA_Ntfy_DeleteIfExists:
|
|
case SCR_EA_Ntfy_DeleteSection:
|
|
p_oPrtSrc->fn_vSectionDeleted();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void CPA_PartGen_Source::m_pri_fn_vSaveSource( SCR_tdst_File_Description *_p_stFile )
|
|
{
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
long lIndex;
|
|
CTL_Editor_EnumElement *p_clEnumElement;
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
// generation mode and its optional parameters
|
|
lIndex = m_pub_fn_lGetGenerationMode();
|
|
p_clEnumElement = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_GenerationMode" )->m_fn_pclGetElementFromEnumIndex( lIndex );
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcGenerationMode, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 1, M_MAKECHAR(p_clEnumElement->m_pub_fn_csGetAdditionalString()) );
|
|
switch( lIndex )
|
|
{
|
|
case PRT_C_ucProbabilistGeneration:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcGenerationProbability, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 2, "%.3f", m_pub_fn_dGetGenerationProba() );
|
|
break;
|
|
case PRT_C_ucCrenelGeneration:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcCrenelGeneration, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 3, "%d,%d", m_pub_fn_lGetNbNoGeneration(), m_pub_fn_lGetNbGeneration() );
|
|
break;
|
|
}
|
|
|
|
// nb particles to generate mode
|
|
lIndex = m_pub_fn_lGetNbGenerateMode();
|
|
p_clEnumElement = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_NbParticlesMode" )->m_fn_pclGetElementFromEnumIndex( lIndex );
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcNbParticlesToGenerateMode, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 1, M_MAKECHAR(p_clEnumElement->m_pub_fn_csGetAdditionalString()) );
|
|
switch( lIndex )
|
|
{
|
|
case PRT_C_ucConstantNb:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcNbParticlesToGenerate, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 2, "%d", m_pub_fn_lGetNbToGenerate() );
|
|
break;
|
|
case PRT_C_ucProbabilistNb:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcNbMinMax, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 3, "%d,%d", m_pub_fn_lGetNbMin(), m_pub_fn_lGetNbMax() );
|
|
break;
|
|
}
|
|
|
|
// generation source geometry mode
|
|
lIndex = m_pub_fn_lGetGeometryMode();
|
|
p_clEnumElement = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_GeometryMode" )->m_fn_pclGetElementFromEnumIndex( lIndex );
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcGeometryMode, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 1, M_MAKECHAR(p_clEnumElement->m_pub_fn_csGetAdditionalString()) );
|
|
switch( lIndex )
|
|
{
|
|
case PRT_C_ucQuad:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcQuad, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP
|
|
(
|
|
_p_stFile, SCR_EF_SvL0_Scanf, 10, "%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f,%.3f",
|
|
m_pub_fn_dGetSrcPt1X(), m_pub_fn_dGetSrcPt1Y(), m_pub_fn_dGetSrcPt1Z(),
|
|
m_pub_fn_dGetSrcPt2X(), m_pub_fn_dGetSrcPt2Y(), m_pub_fn_dGetSrcPt2Z(),
|
|
m_pub_fn_dGetSrcPt3X(), m_pub_fn_dGetSrcPt3Y(), m_pub_fn_dGetSrcPt3Z()
|
|
);
|
|
break;
|
|
case PRT_C_ucPoint:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcPoint, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP
|
|
(
|
|
_p_stFile, SCR_EF_SvL0_Scanf, 4, "%.3f,%.3f,%.3f",
|
|
m_pub_fn_dGetSrcPt1X(), m_pub_fn_dGetSrcPt1Y(), m_pub_fn_dGetSrcPt1Z()
|
|
);
|
|
break;
|
|
}
|
|
|
|
// link mode
|
|
lIndex = m_pub_fn_lGetLinkMode();
|
|
p_clEnumElement = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_LinkMode" )->m_fn_pclGetElementFromEnumIndex( lIndex );
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcLinkMode, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 1, M_MAKECHAR(p_clEnumElement->m_pub_fn_csGetAdditionalString()) );
|
|
|
|
// speed and speed range
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcSpeedAndRange, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 3, "%.3f,%.3f", m_pub_fn_dGetSpeed(), m_pub_fn_dGetSpeedRange() );
|
|
|
|
// life mode
|
|
lIndex = (long) m_pri_p_stPrtSrc->ucLifeMode;
|
|
switch (m_pri_p_stPrtSrc->ucLifeMode)
|
|
{
|
|
case PRT_C_ucNoLifeTime:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcNoLifeTime, SCR_CC_C_Cfg_EOL );
|
|
break;
|
|
case PRT_C_ucConstantLifeTime:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcConstantLifeTime, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 2, "%.3f", m_pri_p_stPrtSrc->xMinTime );
|
|
break;
|
|
case PRT_C_ucProbabilistLifeTime:
|
|
SCR_M_SvL0_SaveEntry( _p_stFile, C_EntryPrtSrcProbabilistLifeTime, SCR_CC_C_Cfg_NoChar );
|
|
SCR_fn_v_SvL0_SaveParameters_MP( _p_stFile, SCR_EF_SvL0_Scanf, 3, "%.3f, %.3f", m_pri_p_stPrtSrc->xMinTime, m_pri_p_stPrtSrc->xMaxTime );
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
void CPA_PartGen_Source::m_pri_fn_vFillDataList()
|
|
{
|
|
CTL_Editor_Data *p_clData = NULL;
|
|
CTL_Editor_EnumDescriptor *p_clEnumDescriptor = NULL;
|
|
|
|
//*** Generation Mode ***********************
|
|
p_clEnumDescriptor = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_GenerationMode" );
|
|
p_clData = m_pub_clDataList.m_fn_pclAddEnumData( p_clEnumDescriptor, "Generation Mode" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*) &m_pri_p_stPrtSrc->ucGenerationMode );
|
|
p_clData->m_pub_fn_vSetDataChangedSpecialCallBackFunction( g_fn_vCallBackDataChangedSpecialDisplayGenerator );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Probability *****************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "Probability" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xGenerationProbability) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucGenerationMode), "GenerationMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Nb Frames No generation ********************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddIntegerData( sizeof(ACP_tdxIndex), TPG_UNSIGNED, "Nb Frames No Generation" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xNbFramesNoGeneration) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) m_pri_p_stPrtSrc, "PrtSrc" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) &(m_pri_p_stPrtSrc->ucGenerationMode), "GenerationMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Nb Frames generation *****************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddIntegerData( sizeof(ACP_tdxIndex), TPG_UNSIGNED, "Nb Frames Generation" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xNbFramesTotal) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) &m_pri_p_stPrtSrc->ucGenerationMode, "GenerationMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) &m_pri_p_stPrtSrc->xNbFramesNoGeneration, "NbFramesNoGeneration" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) m_pri_p_stPrtSrc, "PrtSrc" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*) this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
p_clData->m_pub_fn_vSetModificationFunctionWhenRead( g_fn_vModificationReadSourceNbFramesGeneration );
|
|
p_clData->m_pub_fn_vSetModificationFunctionWhenWrite( g_fn_vModificationWriteSourceNbFramesGeneration );
|
|
|
|
//*** Nb particles to generate mode ********************
|
|
p_clEnumDescriptor = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_NbParticlesMode" );
|
|
p_clData = m_pub_clDataList.m_fn_pclAddEnumData( p_clEnumDescriptor, "Nb Particles to Generate Mode" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->ucNbParticlesToGenerateMode) );
|
|
p_clData->m_pub_fn_vSetDataChangedSpecialCallBackFunction( g_fn_vCallBackDataChangedSpecialDisplayGenerator );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Constant ********************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddIntegerData( sizeof(ACP_tdxIndex), TPG_UNSIGNED, "Nb Particles" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xNbParticlesToGenerate) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucNbParticlesToGenerateMode), "NbParticlesMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
//****** Probabilist *****************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddIntegerData( sizeof(ACP_tdxIndex), TPG_UNSIGNED, "Nb Particles min" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xNbMin) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucNbParticlesToGenerateMode), "NbParticlesMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
p_clData = m_pub_clDataList.m_fn_pclAddIntegerData( sizeof(ACP_tdxIndex), TPG_UNSIGNED, "Nb Particles max" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xNbMax) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucNbParticlesToGenerateMode), "NbParticlesMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//*** Geometry mode ************************************
|
|
p_clEnumDescriptor = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_GeometryMode" );
|
|
p_clData = m_pub_clDataList.m_fn_pclAddEnumData( p_clEnumDescriptor, "Geometry Mode" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->ucGeometryMode) );
|
|
p_clData->m_pub_fn_vSetDataChangedSpecialCallBackFunction( g_fn_vCallBackDataChangedSpecialDisplayGenerator );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Point **********************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddVectorData( sizeof(MTH_tdxReal), "Point 1" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->stVertex1) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//****** Quad ***********************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddVectorData( sizeof(MTH_tdxReal), "Point 2" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->stVertex2) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucGeometryMode), "GeometryMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
p_clData = m_pub_clDataList.m_fn_pclAddVectorData( sizeof(MTH_tdxReal), "Point 3" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->stVertex3) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)&(m_pri_p_stPrtSrc->ucGeometryMode), "GeometryMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//*** Link Mode *********************************
|
|
p_clEnumDescriptor = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_LinkMode" );
|
|
p_clData = m_pub_clDataList.m_fn_pclAddEnumData( p_clEnumDescriptor, "Link Mode" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->ucLinkMode) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//*** Speed and Range ****************************
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "Speed" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xSpeed) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "Speed Range" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->xSpeedRange) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//*** Life Mode
|
|
p_clEnumDescriptor = m_pub_fn_p_clGetDocument()->m_pub_fn_p_clGetEnumDescriptorByName( "Source_LifeMode" );
|
|
p_clData = m_pub_clDataList.m_fn_pclAddEnumData( p_clEnumDescriptor, "Life Mode" );
|
|
p_clData->m_fn_vSetMotorDataPtr( (void*)&(m_pri_p_stPrtSrc->ucLifeMode) );
|
|
p_clData->m_pub_fn_pclAddOwnerData( (void*)this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
p_clData->m_pub_fn_vSetDataChangedSpecialCallBackFunction( g_fn_vCallBackDataChangedSpecialDisplayGenerator );
|
|
|
|
//*** data for constant life time
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "LifeTime" );
|
|
p_clData->m_fn_vSetMotorDataPtr ( (void*) &m_pri_p_stPrtSrc->xMinTime );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) &m_pri_p_stPrtSrc->ucLifeMode, "LifeMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
//*** data for probabilist life time
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "Min Life Time" );
|
|
p_clData->m_fn_vSetMotorDataPtr ( (void*) &m_pri_p_stPrtSrc->xMinTime );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) &m_pri_p_stPrtSrc->ucLifeMode, "LifeMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
|
|
p_clData = m_pub_clDataList.m_fn_pclAddDecimalData( sizeof(MTH_tdxReal), "Max Life Time" );
|
|
p_clData->m_fn_vSetMotorDataPtr ( (void*) &m_pri_p_stPrtSrc->xMaxTime );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) &m_pri_p_stPrtSrc->ucLifeMode, "LifeMode" );
|
|
p_clData->m_pub_fn_pclAddOwnerData ( (void*) this, "EditedSource" );
|
|
p_clData->m_pub_fn_vSetDataChangedCallBackFunction( fn_vCBPrtSrcDataChanged );
|
|
}
|
|
|
|
|
|
CPA_PartGen_MyDocument * CPA_PartGen_Source::m_pub_fn_p_clGetDocument()
|
|
{
|
|
return g_pclInterface->m_pub_fn_p_clGetDocument();
|
|
} |