reman3/Rayman_X/cpa/tempgrp/T3D/inc/T3Dinterf.hpp

181 lines
7.4 KiB
C++

//**************************************
// This is the base class of your DLL interface
// All methods of CPA_ToolDLLBase are
// present in that class.
//**************************************
#ifndef __T3DINTERF_HPP__
#define __T3DINTERF_HPP__
#ifdef ACTIVE_EDITOR
// if you want only one instance of your DLL
// activate the next line
#define DLL_ONLY_ONE_INSTANCE
class CPA_SuperObject;
class Evt_Editor;
class CPA_World;
class CPA_Contact;
class DEV_MultiDevice;
class Tool3D_FRMBaseMenu;
class Tool3D_World;
//Stefan Dumitrean 26-05-98
class Tool3D_Frame;
//End Stefan Dumitrean 26-05-98
class CAnimationView;
class CPA_Family;
class CPA_Animation;
class EditorObjectTable;
// Query Info
#define C_wTool3D_QI_CanOpenChar 1
#define C_wTool3D_QI_CanOpenMod 2
#define C_wTool3D_QI_CanOpenGeom 3
#define C_wTool3D_QI_CanOpenTable 4
#define C_wTool3D_QI_CanOpenViewer 5
#define C_wTool3D_QI_CanOpenObject 6
#define C_wTool3D_QI_GetState 10
#define C_wTool3D_QI_GetWorld 11
#define C_wTool3D_QI_GetDevice 12
#define C_wTool3D_QI_GetContact 13
// Type of Tool used
#define C_wTool3D_None 0
#define C_wTool3D_Char 1
#define C_wTool3D_Mod_Object 2
#define C_wTool3D_Mod_List 3
#define C_wTool3D_Table 4
#define C_wTool3D_Geom_Object 5
#define C_wTool3D_Viewer 6
#define C_wTool3D_Object 7
// General Actions
// Actions for 3DModTool
#define C_wTool3D_QA_ShowGrid 11
#define C_wTool3D_QA_HideGrid 12
#define C_wTool3D_QA_ShowSelect 13
#define C_wTool3D_QA_HideSelect 14
#define C_wTool3D_QA_NewChar 20
#define C_wTool3D_QA_NewSuperObject 21
#define C_wTool3D_QA_NewTable 22
#define C_wTool3D_QA_NewObject 23
typedef struct tdst_VW_ObjInfo_
{
CPA_SuperObject *m_p_oSuperObject; // target object
BOOL m_bUsePos; //
POS_tdstCompletePosition stMatrix;
} tdst_VW_ObjInfo;
//----------------------------------------------------------
// Tool DLL interface class
//----------------------------------------------------------
class Tool3D_Interface : public CPA_ToolDLLBase
{
private:
WORD m_wTypeOfTool;
CPA_SuperObject *m_p_InitialRoot; // just reference
Tool3D_World *m_p_Tool3DWorld; // created Here
CPA_Contact *m_p_Tool3DContact; // created Here
DEV_MultiDevice3D *m_p_Tool3DMultiDevice; // created Here
DEV_MultiDevice *m_p_PreviousMultiDevice;
Tool3D_FRMBaseMenu *m_p_FRMBase; // created here
FRMBaseMenu *m_p_PreviousFRMBase;
CPA_List<tdst_VW_ObjInfo> m_oListOfVWObjInfo;
CString m_csLastSelectMode;
GLI_tdxHandleToLight m_hLightUp;
GLI_tdxHandleToLight m_hLightDown;
CPA_SuperObject *m_p_oSprObjActor;
CAnimationView *m_p_oAnimView;
//Stefan Dumitrean 26-05-98
// FRMBase *m_p_oAnimFrame;
Tool3D_Frame *m_p_oAnimFrame;
CPA_Family *m_p_CurrentFamily;
BOOL m_bAnimPlayerInvoked;
//End Stefan Dumitrean 26-05-98
CPA_KeyActionConfiguration *m_p_oKeyboard;
public:
//Stefan Dumitrean 27-05-98
virtual void GetListsForDialog(CPA_DialogList *pDialog);
virtual void fn_vInitDefaultParameters(CPA_DialogList *pDialog);
virtual BOOL fn_bOnButtonTest( CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw );
virtual CPA_BaseObject* GetDialogSelection (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDrawMode);
virtual BOOL fn_bOnSelChangeListObjects(CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, BOOL bUnselect);
virtual BOOL fn_bOnDblClkListObjects(CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject);
private:
void fn_vOnActivateEditorAnim();
public:
//End Stefan Dumitrean 27-05-98
Tool3D_Interface(void);
// ~Tool3D_Interface(void);
// ACP MEssages Functions overload
// BOOL fn_bPreTranslateMessage(MSG *);
// void fn_vJustAfterRegistered(void);
void fn_vConstruct(void);
// void fn_vRefreshDatas(void);
// void fn_vAddObjectsToDraw(GLD_tdstViewportAttributes *, GLI_tdstLight *);
// void fn_vAddObjectsToDraw2(GLD_tdstViewportAttributes *, GLI_tdstLight *);
BOOL fn_bAcceptToRunEngine(void) { return (m_wTypeOfTool==C_wTool3D_None); }
// void fn_vBeforeEngine(void);
void fn_vBeforeEditor(void);
// void fn_vHasLostFocus(void);
// BOOL fn_bHasGainedFocus(void);
// BOOL fn_bAcceptToExit(void);
void fn_vJustBeforeClosing(void);
BOOL _OnMouseMove (UINT nFlags, tdstMousePos *p_stPos, MTH3D_tdstVector *p_stVect);
BOOL _OnLButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnRButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnLButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnRButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnLButtonUp (UINT nFlags, tdstMousePos *p_stPos);
BOOL _OnRButtonUp (UINT nFlags, tdstMousePos *p_stPos);
// Current Editor
tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewEditor);
BOOL fn_bCanActivateEditor (CPA_List<CPA_BaseObject> *pParams);
BOOL fn_bCanCloseEditor (void);
void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated = FALSE);
void fn_vOnCloseEditor (void);
long OnQueryAction (CPA_EditorBase*, WPARAM, LPARAM);
long OnQueryInfos (CPA_EditorBase*, WPARAM, LPARAM);
long OnQueryOpen (CPA_EditorBase*, WPARAM, LPARAM);
long OnQueryClose (CPA_EditorBase*, WPARAM, LPARAM);
// 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);
protected:
BOOL fn_bTypeOfToolOK (long _wType);
BOOL fn_bCanUseObject (long _wType, long _lParam);
BOOL fn_bCanOpenTool (long _wType);
BOOL fn_bToolActive (long _wType);
void mfn_vAddAnObject (CPA_SuperObject *_p_oSprObj, BOOL _bUsePos = TRUE);
void mfn_vAddAListOfSuperObject (CPA_List<CPA_SuperObject> *_p_oList, BOOL _bUsePos = TRUE);
void mfn_vEditViewerContent (void);
void mfn_vCenterCamera (DEV_Device *p_oDevice, CPA_SuperObject *_p_oSprObj);
void mfn_vCenterCameraOnTarget (tdst_VW_ObjInfo *_p_stObjInfo);
void mfn_vRestoreCameraOnTarget (int _iTarget);
void mfn_vResetViewerContent (void);
void mfn_vOpenAnim (CPA_SuperObject *_p_oSprObjActor);
BOOL mfn_bFindInfoAboutActor (CPA_SuperObject *_p_oSprObj, CPA_Family **_p_p_oFamily,
CPA_Animation **_p_p_oAnim, EditorObjectTable **_p_p_oObjectTable,
unsigned short *_p_uwFrame);
};
extern tdstDLLIdentity g_stTool3DIdentity;
#endif // ACTIVE_EDITOR
#endif // __T3DINTERF_HPP__