Add rayman2 source files
This commit is contained in:
233
Rayman_X/cpa/public/OPD/EditorPO.hpp
Normal file
233
Rayman_X/cpa/public/OPD/EditorPO.hpp
Normal file
@@ -0,0 +1,233 @@
|
||||
/*
|
||||
*=======================================================================================
|
||||
* Name :EditorPO.hpp
|
||||
* Author :Vincent Lhullier Date :05/06/97
|
||||
* Description :Description of Editor Physical object
|
||||
*=======================================================================================
|
||||
* Modification -> Author : Date :
|
||||
* Description :
|
||||
*=======================================================================================
|
||||
*/
|
||||
|
||||
#ifndef __EDITORPO_HPP__
|
||||
#define __EDITORPO_HPP__
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
#include "ITF.h"
|
||||
#include "MEC.h"
|
||||
#define D_PhysiCol_Define
|
||||
#include "GAM.h"
|
||||
#include "SPO.h"
|
||||
#include "PO.h"
|
||||
#undef D_PhysiCol_Define
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
|
||||
class Geometry3D;
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
#ifndef CPA_EXPORT
|
||||
#if defined(CPA_WANTS_IMPORT)
|
||||
#define CPA_EXPORT __declspec(dllimport)
|
||||
#elif defined(CPA_WANTS_EXPORT)
|
||||
#define CPA_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define CPA_EXPORT
|
||||
#endif
|
||||
#endif
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
|
||||
/*
|
||||
=======================================================================================
|
||||
Constants
|
||||
=======================================================================================
|
||||
*/
|
||||
/*
|
||||
* origin of PO object
|
||||
*/
|
||||
#define C_cFromFamilies 0
|
||||
#define C_cFromLevels 1
|
||||
#define C_cFromClasses 2
|
||||
|
||||
/*
|
||||
* unsed index
|
||||
*/
|
||||
#define C_uwNotInTable ((unsigned short)-1)
|
||||
|
||||
|
||||
/*
|
||||
=======================================================================================
|
||||
Editor Physical Object class
|
||||
=======================================================================================
|
||||
*/
|
||||
class EditorPO : public CPA_SaveObject,public CPA_EdMot<PO_tdxHandleToPhysicalObject>
|
||||
{
|
||||
private:
|
||||
char m_cOrigin;
|
||||
Geometry3D **m_dp_oLodGeom;
|
||||
CPA_BaseObject *m_ap_oZone[ 4 ];
|
||||
|
||||
CPA_SectionObject *m_p_oPCSSection;
|
||||
CPA_SectionObject *m_p_oVSESection; /* object associated with VisualSet section of this PO object*/
|
||||
|
||||
unsigned short m_uwIndexInObjectsTable;
|
||||
/*ANNECY TQ 22/06/98{*/
|
||||
ACP_tdxHandleOfObject m_hBoundingVolume;
|
||||
/*ENDANNECY TQ}*/
|
||||
|
||||
|
||||
/*ROMTEAM WorldEditor (Cristian Stegaru 12/97)*/
|
||||
protected:
|
||||
BOOL m_bIsClone;
|
||||
/*ENDROMTEAM WorldEditor (Cristian Stegaru)*/
|
||||
|
||||
public:
|
||||
/*CPA2 Stegaru Cristian 98-03*/
|
||||
CString mfn_csGetFullGeomSectionName ();
|
||||
CString mfn_csGetModSectionName ();
|
||||
/*End CPA2 Stegaru Cristian 98-03*/
|
||||
/*CPA2 Stegaru Cristian 98-05 */
|
||||
ACP_tdxIndex mfn_iGetFacesNumber ();
|
||||
MTH3D_tdstVector mfn_3dvGetMinCoordinates ();
|
||||
MTH3D_tdstVector mfn_3dvGetMaxCoordinates ();
|
||||
MTH3D_tdstVector mfn_3dvGetSizes (); /*dX, dY, dZ*/
|
||||
/*End CPA2 Stegaru Cristian 98-05*/
|
||||
|
||||
|
||||
/*ROMTEAM WorldEditor (Nicu 16/01/98)*/
|
||||
BOOL mfn_bIsClone () { return m_bIsClone;}
|
||||
void mfn_vSetClone (BOOL bIsClone) { m_bIsClone = bIsClone;}
|
||||
Geometry3D *m_pGeom, /* pointer to the geometric object (Shape3D)*/
|
||||
*m_pOrigGeom;
|
||||
int m_iIdx; /* geometric object index */
|
||||
BOOL IsCandidatePO () { return -2 != m_iIdx;}
|
||||
/*ENDROMTEAM WorldEditor (Nicu)*/
|
||||
|
||||
|
||||
/* ==> constructor / destructor */
|
||||
EditorPO (
|
||||
CPA_EditorBase *p_oDLL,
|
||||
PO_tdxHandleToPhysicalObject hObj,
|
||||
CPA_BaseObject *p_oOwner,
|
||||
CString csName = "",
|
||||
CString csFileName = "",
|
||||
CString csSectionName = ""
|
||||
);
|
||||
|
||||
~EditorPO();
|
||||
|
||||
/* ==> initialisation of data members */
|
||||
static void StaticInit();
|
||||
void m_fn_vInitDataMembers( BOOL _bSecondPass = FALSE );
|
||||
|
||||
|
||||
/* ==> access to origin */
|
||||
char *fn_szComputeOrigin( char *_szFileName, char *_cOrigin );
|
||||
char fn_cGetOrigin( void ) { return m_cOrigin; }
|
||||
|
||||
/* ==> loading engine PO */
|
||||
BOOL m_fn_bLoadEnginePO( void );
|
||||
|
||||
/* ==> Access to data type */
|
||||
long GetDataType(void) { return HIE_C_ulPO; }
|
||||
void *GetData(void) { return GetStruct(); }
|
||||
|
||||
/* ==> Access to Objects Table Index */
|
||||
unsigned short m_fn_uwGetIndexInObjectTable(void) { return m_uwIndexInObjectsTable; }
|
||||
void m_fn_vSetIndexInObjectTable(unsigned short _uwIndex) { m_uwIndexInObjectsTable = _uwIndex; }
|
||||
|
||||
/* ==> name unicity */
|
||||
tdeMissingCriteria fn_eCheckUnicity (const CString csNewName) { return fn_eCheckUnicityWithOwner(csNewName); }
|
||||
|
||||
/* ==> Notification */
|
||||
void fn_vNotifySave(void);
|
||||
void fn_vNotifyUnSave(void);
|
||||
void fn_vNotifyRestore(void);
|
||||
void fn_vNotifyRename(void);
|
||||
|
||||
void fn_vUpdateSectionName (void);
|
||||
|
||||
/* ==> access to Physical Coll Set section object */
|
||||
void fn_vComputePCSSectionName( char *szPCSSectionName );
|
||||
CPA_SectionObject *fn_p_oGetPCSSection (void) { return m_p_oPCSSection; }
|
||||
|
||||
/* ==> access to VisaulSet section object and information */
|
||||
void fn_vComputeVSESectionName( char *szVSESectionName );
|
||||
CPA_SectionObject *fn_p_oGetVSESection( void ) { return m_p_oVSESection; }
|
||||
|
||||
/* ==> access to engine struct */
|
||||
void *GetEngineStruct() { return GetStruct(); };
|
||||
void SetEngineStruct (PO_tdxHandleToPhysicalObject hObj) { SetStruct(hObj); }
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
Geometry3D *m_fnp_oGetGeometricWithDistance( MTH_tdxReal xDistance)
|
||||
{
|
||||
GEO_tdxHandleToVisualSet hVSE;
|
||||
ACP_tdxIndex xNumberOfLod;
|
||||
ACP_tdxIndex xIndexOfLod;
|
||||
MTH_tdxReal xThreshold;
|
||||
ACP_tdxHandleOfObject hGeoObj;
|
||||
|
||||
if (!GetStruct())
|
||||
return NULL;
|
||||
|
||||
hVSE = PO_fn_hGetVisualSet( GetStruct() );
|
||||
xNumberOfLod = (ACP_tdxIndex) GLI_lGetVisualSetNumbertOfLOD( hVSE );
|
||||
|
||||
for (xIndexOfLod = 0; xIndexOfLod < xNumberOfLod - 1; xIndexOfLod ++)
|
||||
{
|
||||
GLI_vGetVisualSetLOD( hVSE, xIndexOfLod + 1, &xThreshold, &hGeoObj );
|
||||
if (xThreshold > xDistance) break;
|
||||
}
|
||||
return m_dp_oLodGeom[xIndexOfLod];
|
||||
}
|
||||
|
||||
/* ==> access to zone */
|
||||
CPA_BaseObject *GetZone( char cTypeZone ) { return m_ap_oZone[ cTypeZone ]; }
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
/*ROMTEAM WorldEditor (Nicu 07/11/97) */
|
||||
void SetZone (char cTypeZone , CPA_BaseObject *_pZDxObject, BOOL bStandardPO = TRUE)
|
||||
{
|
||||
m_ap_oZone[ cTypeZone ] = _pZDxObject;
|
||||
if (!bStandardPO)
|
||||
m_pGeom = m_pOrigGeom = (Geometry3D*)_pZDxObject;
|
||||
/*ENDROMTEAM WorldEditor (Nicu) */
|
||||
PCS_tdxHandleToPhysicalCollSet hCollSet = PO_fn_hGetCollideSet(GetStruct ());
|
||||
if (! hCollSet)
|
||||
{
|
||||
hCollSet = PCS_fn_hCreatePhysicalCollideSet();
|
||||
PO_fn_vSetCollideSet (GetStruct () , hCollSet);
|
||||
}
|
||||
void * pEngineZone;
|
||||
if (_pZDxObject) /* _pZDxObject can be a ZDx object or a PO*/
|
||||
{
|
||||
if (_pZDxObject -> fn_bIsOfType (C_szPhysicalObjectTypeName))
|
||||
pEngineZone = ((CPA_BaseObject *) ((EditorPO *) _pZDxObject) ->
|
||||
m_fnp_oGetGeometricWithDistance (0)) -> GetData ();
|
||||
else pEngineZone = _pZDxObject -> GetData ();
|
||||
}
|
||||
else pEngineZone = NULL;
|
||||
|
||||
PCS_fn_vSetGeoObjOfPhysicalCollSet(cTypeZone , hCollSet , (ACP_tdxHandleOfObject) pEngineZone);
|
||||
|
||||
/*ROMTEAM WorldEditor (Nicu 07/11/97) */
|
||||
if(m_p_oPCSSection)
|
||||
/*ENDROMTEAM WorldEditor (Nicu) */
|
||||
m_p_oPCSSection->fn_vWriteSection();
|
||||
}
|
||||
|
||||
/* ==> filenames */
|
||||
CString fn_csConstructFileName(CString csFileName);
|
||||
/*ANNECY TQ 22/06/98{*/
|
||||
ACP_tdxHandleOfObject fn_hGetEditorPOBoundingVolume() { return m_hBoundingVolume; }
|
||||
void fn_vSetEditorPOBoundingVolume(ACP_tdxHandleOfObject hBoundingVolume) { m_hBoundingVolume = hBoundingVolume; }
|
||||
/*ENDANNECY TQ}*/
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif /*__3DOBJECT_HPP__*/
|
177
Rayman_X/cpa/public/OPD/PO_Inter.hpp
Normal file
177
Rayman_X/cpa/public/OPD/PO_Inter.hpp
Normal file
@@ -0,0 +1,177 @@
|
||||
/*
|
||||
=======================================================================================
|
||||
Name : PO_Inter.hpp
|
||||
|
||||
Author : vincent lhullier Date :01/09/97
|
||||
|
||||
Description : PO DLL interface class
|
||||
=======================================================================================
|
||||
Modification -> Author : Date :
|
||||
Description :
|
||||
=======================================================================================
|
||||
*/
|
||||
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
|
||||
#ifndef __PO_INTER_HPP__
|
||||
#define __PO_INTER_HPP__
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
#define D_PhysiCol_Define
|
||||
#include "MEC.h"
|
||||
#include "GAM.h"
|
||||
#undef D_PhysiCol_Define
|
||||
#include "EditorPO.hpp"
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
class CPODlgVse;
|
||||
class CPODlgList;
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
#define DLL_ONLY_ONE_INSTANCE
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
|
||||
/*
|
||||
*=======================================================================================
|
||||
Constants
|
||||
*=======================================================================================
|
||||
*/
|
||||
/*
|
||||
* constant for Query Action
|
||||
*/
|
||||
#define OPD_ActionEncapsulateObject 1
|
||||
#define OPD_ActionCreateEmptyPO 2
|
||||
#define OPD_ActionSecondPass 3
|
||||
|
||||
/*ROMTEAM WorldEditor (Nicu 28/10/97) */
|
||||
#define OPD_ActionCreateGeometricPO 4
|
||||
class Shape3D;
|
||||
/*ENDROMTEAM WorldEditor (Nicu) */
|
||||
|
||||
/*
|
||||
*=============================================================================
|
||||
Instanciated Physical Object DLL interface class
|
||||
*=============================================================================
|
||||
*/
|
||||
class POInterface: public CPA_ObjectDLLBase
|
||||
{
|
||||
private:
|
||||
EditorPO *m_p_oSelectedPO;
|
||||
CPA_BaseObject *m_p_oSelectedActor;
|
||||
|
||||
CPODlgVse *m_p_oDlgVse;
|
||||
CPODlgList *m_p_oDlgList;
|
||||
CSplitFrame *m_p_oSplitterLeft;
|
||||
|
||||
/*ROMTEAM WorldEditor (Cristian Stegaru 01/98)*/
|
||||
public:
|
||||
CStringList m_lstNameOfCandidateEPO;
|
||||
CTypedPtrList <CPtrList, EditorPO*> m_lstOfCandidateEPO;
|
||||
CString m_csEPOFile;
|
||||
BOOL m_bEPOListOK;
|
||||
/*ENDROMTEAM WorldEditor (Cristian Stegaru)*/
|
||||
|
||||
public:
|
||||
/* ==> Constructor */
|
||||
POInterface();
|
||||
|
||||
/* ==> communication between the different dialog boxes */
|
||||
void fn_vDisplayPOInfo( EditorPO *_p_oPO );
|
||||
|
||||
/* ==> ACP MEssages Functions overload */
|
||||
void fn_vJustAfterRegistered (void);
|
||||
void fn_vConstruct (void);
|
||||
void fn_vBeforeEngine (void);
|
||||
void fn_vBeforeEditor (void);
|
||||
|
||||
/*ROMTEAM WorldEditor (Cristian Stegaru 01/98)*/
|
||||
void fn_vBeforeSaveAll (void);
|
||||
/*ENDROMTEAM WorldEditor (Cristian Stegaru)*/
|
||||
|
||||
/* ==> for changes */
|
||||
void fn_vOnChangeRoot (void);
|
||||
void fn_vOnChangeWorld (void);
|
||||
void fn_vOnChangeDevice (void);
|
||||
|
||||
/* ==> Editor Modifs */
|
||||
BOOL fn_bAcceptModifCopy(CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
|
||||
void fn_vOnModifDelete (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
|
||||
void fn_vOnModifParent (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
|
||||
void fn_vOnModifCopy (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
|
||||
void fn_vOnModifName (CPA_SuperObject *pEdObj, CString csInitalName, CString csFinalName, tdeTypeModif eType, tdeStatus eStatus);
|
||||
void fn_vOnSelect (CPA_SuperObject *pEdObj, tdeTypeModif eType, tdeStatus eStatus);
|
||||
|
||||
/*===========================================================================
|
||||
Dialog Bar - Mircea Dunka 31 Aug. 1998
|
||||
=========================================================================*/
|
||||
void fn_vDefineDlgBarBtnIcon (tde_DlgBarCategory wCategory, tds_DlgBarBtn *_pDlgBarBtn);
|
||||
|
||||
/* ==> Menus */
|
||||
BOOL fn_bDefineSubMenu (EDT_SubMenu *_p_oEDTSubMenu);
|
||||
void _OnSubMenuCommand (EDT_SubMenu *_p_oEDTSubMenu,UINT uiMsgID);
|
||||
|
||||
BOOL fn_bDefinePopupMenu(EDT_PopUpMenu *pPopup, CPA_List<CPA_SuperObject> *pSelection, BOOL bIsAlone);
|
||||
void _OnPopUpMenuCommand(UINT m_IDCmdMsg);
|
||||
|
||||
/* ==> Current Editor */
|
||||
tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewDLL) { return C_CloseBefore; }
|
||||
/*tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewDLL) { return C_Allow; }*/
|
||||
|
||||
BOOL fn_bGetPOFromObject( CPA_BaseObject *_p_oObject );
|
||||
BOOL fn_bGetPOFromListOrSelection( CPA_List<CPA_BaseObject> *_p_oListObjects );
|
||||
|
||||
BOOL fn_bCanActivateEditor (CPA_List<CPA_BaseObject> *pParam);
|
||||
BOOL fn_bCanCloseEditor (void);
|
||||
|
||||
void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParam, BOOL bBackActivated=FALSE);
|
||||
void fn_vOnCloseEditor (void);
|
||||
|
||||
|
||||
/* ==> General Purpose */
|
||||
long OnQueryAction (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
|
||||
|
||||
/* ==> Reachable Objects */
|
||||
BOOL fn_bLoadBaseObject(CPA_BaseObject *p_oObject);
|
||||
|
||||
|
||||
/*====================================================================================*/
|
||||
/*========================= OBJECT DLL FUNCTIONS OVERLOAD ============================*/
|
||||
/*====================================================================================*/
|
||||
|
||||
/* ==> hierarchy */
|
||||
CPA_SuperObject * GetNewEditorInstance(HIE_tdxHandleToSuperObject hEngineInstance);
|
||||
void fn_vBuildNewEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject hEngineInstance);
|
||||
BOOL fn_bCanHandleThisType(long lEngineType);
|
||||
|
||||
/* ==> models & instances */
|
||||
void fn_vInitListByType(CPA_World *pWorld);
|
||||
|
||||
/* ==> objects */
|
||||
CPA_BaseObject *Duplicate(CPA_BaseObject *pObject, CPA_SuperObject *pNewSuperObject);
|
||||
|
||||
/*====================================================================================*/
|
||||
/* Owner*/
|
||||
/*====================================================================================*/
|
||||
void fn_vNameChanged (void);
|
||||
void fn_vComputeBoundingVolume (CPA_BaseObject *pObj);
|
||||
ACP_tdxHandleOfObject fn_hGetBoundingVolume (CPA_BaseObject *_pObj);
|
||||
|
||||
protected:
|
||||
void fn_vUnSelect (void);
|
||||
|
||||
|
||||
|
||||
/*ROMTEAM WorldEditor (Cristian Stegaru 01/98)*/
|
||||
public:
|
||||
BOOL mfn_bIsACandidateEPO (const CString csName);
|
||||
int mfn_iGetEPOIdx (CString csEPOName);
|
||||
void mfn_vFillListOfCandidateEPO ();
|
||||
PO_tdxHandleToPhysicalObject mfn_hGethPOFromGeomObj (Geometry3D *pG3D);
|
||||
Shape3D* mfn_pGetGeomObjFromEPOName (CString csEPOName);
|
||||
EditorPO * mfn_pGetEPOwithGeomObjAttached (PO_tdxHandleToPhysicalObject hPO, CPA_BaseObject *pOwner, char *szSection);
|
||||
/*ENDROMTEAM WorldEditor (Cristian Stegaru)*/
|
||||
};
|
||||
|
||||
#undef extern
|
||||
extern tdstDLLIdentity g_stPOIdentity;
|
||||
|
||||
#endif /* __PO_INTER_HPP__*/
|
Reference in New Issue
Block a user