reman3/Rayman_X/cpa/tempgrp/MEC/specif/dnmldmat.c

227 lines
9.5 KiB
C

#include "cpa_std.h"
#include "MEC/mecmatca.h"
#include "MEC/dnmldmat.h"
#include "MEC/dnmlkmat.h"
#include "DPT.h"
#include "GEO.h"
/* Fills in a MecMatCharacteristics */
/* Private method */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : yyyy-mm-dd */
SCR_tde_Anl_ReturnValue fn_eScriptFillMecMatCharacteristics(
DNM_tdxHandleToMecMatCharacteristics _h_MecEnvironment,
char *_p_szName,
char *_ap_szPars[],
SCR_tde_Anl_Action _eAction
)
{
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
double dfTmp;
DNM_tdstMecMatCharacteristics *p_stMecMatCharacteristics;
p_stMecMatCharacteristics = DNM_fn_p_stMecMatCharacteristicsGiveBackSemantic(_h_MecEnvironment);
if(strcmp(_p_szName,C_EntrySlide) == 0){
/* slide */
dfTmp = atof(_ap_szPars[0]);
DNM_M_xMatCharacteristicsSetSlide(p_stMecMatCharacteristics,MTH_M_xDoubleToReal(dfTmp));
}
else if(strcmp(_p_szName,C_EntryRebound) == 0){
/* rebound */
dfTmp = atof(_ap_szPars[0]);
DNM_M_xMatCharacteristicsSetRebound(p_stMecMatCharacteristics,MTH_M_xDoubleToReal(dfTmp));
}
return(eReturnValue);
}
/* Reads the script file describing a MecMatCharacteristics */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : 1997-05-14 */
/* Add of complete name in link table */
SCR_tde_Anl_ReturnValue fn_eScriptCallBackMecMatCharacteristics(
SCR_tdst_File_Description *_p_stFile,
char *_p_szName,
char *_ap_szPars[],
SCR_tde_Anl_Action _eAction)
{
DNM_tdxHandleToMecMatCharacteristics hMecMatCharacteristics;
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
char szLinkTableKey[_MAX_PATH];
if(_eAction==SCR_EA_Anl_BeginSection)
{
/* If a section is detected */
hMecMatCharacteristics = DNM_fn_xMatCharacteristicsCreate();
SCR_M_RdL0_SetSectionLong(0,0,(unsigned long)(hMecMatCharacteristics));
strcpy(szLinkTableKey,SCR_M_RdL0_GetCompleteSectionNameR(0));
DNM_fn_vSetValueInLinkTableOfMecMatCharacteristics(szLinkTableKey,(unsigned long)(hMecMatCharacteristics));
}
else if(_eAction==SCR_EA_Anl_Entry)
{
/* Fills the MecMatCharacteristics */
SCR_M_RdL0_GetSectionLong(0,0,DNM_tdxHandleToMecMatCharacteristics,hMecMatCharacteristics);
fn_eScriptFillMecMatCharacteristics(hMecMatCharacteristics,
_p_szName,
_ap_szPars,
_eAction);
}
return(eReturnValue);
}
/* Init the load of mechanical material */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : yyyy-mm-dd */
void DNM_fn_vInitLoadMecMatCharacteristics()
{
SCR_fn_v_RdL0_RegisterCallback(
C_SectionMecMatCharacteristics,
fn_eScriptCallBackMecMatCharacteristics,
SCR_CRC_c_RdL0_ForSection
);
}
/*----------------------------------------------------------------------------
// Description : DNM_fn_ulWriteMMTBinaryBloc
//----------------------------------------------------------------------------
// Methods : Write the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _ulStructAdress : Address of the structure to be written
// _p_cDestBuffer : Output buffer
// Output : The length of the data written
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
unsigned long DNM_fn_ulWriteMMTBinaryBloc(unsigned long _ulStructAdress,
char* _p_cDestBuffer)
{
char* p_cBufferPointer=_p_cDestBuffer;
DNM_tdstMecMatCharacteristics* p_stMecMat;
p_stMecMat=(DNM_tdstMecMatCharacteristics*)_ulStructAdress;
p_cBufferPointer=BIN_fn_p_cPutReal(p_cBufferPointer,p_stMecMat->m_xSlide);
p_cBufferPointer=BIN_fn_p_cPutReal(p_cBufferPointer,p_stMecMat->m_xRebound);
return p_cBufferPointer-_p_cDestBuffer;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vWriteAllMMTBinaryBlocs
//----------------------------------------------------------------------------
// Methods : Write all the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vWriteAllMMTBinaryBlocs(char* _szBinaryFileName)
{
DNM_fn_vPrepareSaveMaterialBinaryBloc();
BIN_fn_vPutBinaryDataIntoFileFromLinkTable(_szBinaryFileName,DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),
sizeof(DNM_tdstMecMatCharacteristics),DNM_fn_ulWriteMMTBinaryBloc);
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_ulReadMMTBinaryBloc
//----------------------------------------------------------------------------
// Methods : Read a the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _p_cLoadedBuffer : Input buffer
// _ulLoadedBufferSize : Size of the loaded buffer
// Output : The address of the allocated bloc
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
unsigned long DNM_fn_ulReadMMTBinaryBloc(char* _p_cLoadedBuffer,unsigned long _ulLoadedBufferSize)
{
DNM_tdxHandleToMecMatCharacteristics hNewMecMaterial=NULL;
hNewMecMaterial = DNM_fn_xMatCharacteristicsCreate();
memcpy((char*)hNewMecMaterial,_p_cLoadedBuffer,_ulLoadedBufferSize);
return (unsigned long)hNewMecMaterial;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vReadAllMMTBinaryBlocs
//----------------------------------------------------------------------------
// Methods : Read all the binary blocs for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName : The binary file name
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vReadAllMMTBinaryBlocs(char* _szBinaryFileName)
{
BIN_fn_vReadDataFromLinkTable(DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),DNM_fn_ulReadMMTBinaryBloc,
sizeof(DNM_tdstMecMatCharacteristics), _szBinaryFileName);
}
char* DNM_fn_p_cGeneralAllocateFunction(unsigned long _ulSize)
{
char* p_cBuffer;
GEO_M_CPAMalloc(p_cBuffer,char*,_ulSize,E_uwGEONotEnoughtMemory);
return p_cBuffer;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vReadAllMMTBinaryBlocs2
//----------------------------------------------------------------------------
// Methods : Read all the binary blocs for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName : The binary file name
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vReadAllMMTBinaryBlocs2(char* _szBinaryFileName)
{
BIN_fn_vReadDataFromLinkTableWithoutAllocation(DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),NULL,
sizeof(DNM_tdstMecMatCharacteristics), _szBinaryFileName,
DNM_fn_p_cGeneralAllocateFunction);
}
*/