reman3/Rayman_X/cpa/tempgrp/TPG/Inc/TPG_OSrc.hpp

133 lines
3.8 KiB
C++

/*
=======================================================================================
Name : TPG_OSrc.hpp
Author : vincent lhullier Date :20/03/98
Description : definition of ParticleSource editor object
=======================================================================================
*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#ifndef _TPG_OSRC_HPP_
#define _TPG_OSRC_HPP_
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include "ACP_Base.h"
#include "ITF.h"
#include "PRT.h"
#include "CTL.h"
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
class CPA_PartGen_MyDocument;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*
=======================================================================================
Constants
=======================================================================================
*/
#define TPG_C_tdxDefaultParticlesNumber 100
/*
=======================================================================================
CPA_PartGen_Source class
=======================================================================================
*/
class CPA_PartGen_Source : public CPA_SaveObject
{
public:
CPA_PartGen_Source( CString );
CPA_PartGen_Source( CString, PRT_tdstParticlesSource *_p_stPrtSrc = NULL, BOOL _bIsLoaded = TRUE );
~CPA_PartGen_Source();
//virtual functions
virtual long GetDataType(void);
virtual void *GetData(void);
virtual CString fn_csComputeReferencedSectionName(const CString _csNewName);
static void m_s_fn_vCallBackSaveSource( SCR_tdst_File_Description *_p_stFile, char *_p_szSectionName, void *_p_vData, SCR_tde_Ntfy_Action _eAction );
BOOL m_pub_fn_vLoadIfUnloaded();
PRT_tdstParticlesSource * m_pub_fn_p_stGetSource() {return m_pri_p_stPrtSrc;}
void m_pub_fn_vSetSource( PRT_tdstParticlesSource* _p_stPrtSrc );
//CString m_pub_fn_csGetObjectName();
void m_pub_fn_vSetGenerationMode( short _wIndex );
long m_pub_fn_lGetGenerationMode();
double m_pub_fn_dGetGenerationProba();
long m_pub_fn_lGetNbNoGeneration();
long m_pub_fn_lGetNbGeneration();
///////////////////////////////////////////////////////
// Nb Particles to Generate Mode and parameters
void m_pub_fn_vSetNbGenerateMode( short _wIndex );
long m_pub_fn_lGetNbGenerateMode();
long m_pub_fn_lGetNbToGenerate();
long m_pub_fn_lGetNbMax();
long m_pub_fn_lGetNbMin();
/////////////////////////////////////////////////////
// Geometry Mode and parameters
void m_pub_fn_vSetGeometryMode( short _wIndex );
long m_pub_fn_lGetGeometryMode();
double m_pub_fn_dGetSrcPt1X();
double m_pub_fn_dGetSrcPt1Y();
double m_pub_fn_dGetSrcPt1Z();
double m_pub_fn_dGetSrcPt2X();
double m_pub_fn_dGetSrcPt2Y();
double m_pub_fn_dGetSrcPt2Z();
double m_pub_fn_dGetSrcPt3X();
double m_pub_fn_dGetSrcPt3Y();
double m_pub_fn_dGetSrcPt3Z();
/////////////////////////////////////////////////
// Link Mode
void m_pub_fn_vSetLinkMode( short _wIndex );
long m_pub_fn_lGetLinkMode();
//////////////////////////////////////////////
// Speed and speed Range
void m_pub_fn_vSetSpeed( double _dSpeed );
double m_pub_fn_dGetSpeed();
void m_pub_fn_vSetSpeedRange( double _dSpeedRange );
double m_pub_fn_dGetSpeedRange();
CPA_PartGen_MyDocument *m_pub_fn_p_clGetDocument();
CTL_Editor_DataList m_pub_clDataList;
/*
* private data members
*/
private:
PRT_tdstParticlesSource *m_pri_p_stPrtSrc;
//GMT_tdxHandleToGameMaterial m_pri_hGameMaterial;
//ACP_tdxHandleOfSprite m_pri_hSprite;
/*
* private methods
*/
private:
void m_pri_fn_vFillDataList();
void m_pri_fn_vSaveSource( SCR_tdst_File_Description* );
//void m_pri_fn_vSetInternalParticle();
};
#endif //_TPG_OSRC_HPP_