reman3/Rayman_X/cpa/tempgrp/Owp/inc/Inter.hpp

677 lines
29 KiB
C++

/*
///////////////////////////////////////////////////////////////////////////////////////////////////
// Description : Inter.hpp
//
// Interface DLL class.
// This class is implement the DLL class.
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// inherit from CPA_ObjectDLLBase
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// Creation date: 21 jan 1997 Author: J Thénoz
///////////////////////////////////////////////////////////////////////////////////////////////////
// Modification date: Author:
//
//
//
//
///////////////////////////////////////////////////////////////////////////////////////////////////
*/
#ifndef __WPINTERF_HPP__
#define __WPINTERF_HPP__
class WayPoint;
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
class Way;
class Link2D;
class Link;
class DiaWP;
class DiaWay;
class DiaLink;
class Tangent;
*/
//ENDANNECY Shaitan Nettoyage }
//ROMTEAM Networks (Gabriela Dumitrascu 25/02/98)
class NtwDia;
//ENDROMTEAM Networks (Gabriela Dumitrascu)
class Cursor;
class Way_Interface;
class CPA_tdoNameList;
class Geometry3D;
class EdtList;
// Shaitan Correction {
class Graph;
// End Shaitan Correction }
//-----------------------------------------------------------
// Definition of the types objects
//-----------------------------------------------------------
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
#define C_ucWay 1968
#define C_ucLink 1997
#define C_ucTangent 1945
*/
//ENDANNECY Shaitan Nettoyage }
#define C_ucCursor 1918
//ROMTEAM Networks (Gabriela Dumitrascu 25/02/98)
#define C_ucGraph 1969
#define C_ucConnection 1970
//ENDROMTEAM Networks (Gabriela Dumitrascu)
// Shaitan Correction {
typedef enum tdeLinkDisplayMode_
{
E_dm_ShowAllLinks,
E_dm_ShowOutLinks,
E_dm_ShowInLinks,
E_dm_ShowNothing
}
tdeLinkDisplayMode;
typedef enum tdeWpSelectMode_
{
E_sm_AddOrRemoveWP,
E_sm_PrevWP_Popup,
E_sm_NextWP_Popup,
E_sm_NextWP_Key,
E_sm_PrevWP_Key,
E_sm_NextWP_Continue,
E_sm_PrevWP_Continue,
E_sm_Normal
}
tdeWpSelectMode;
// End Shaitan Correction }
//----------------------------------------------------------
// Object DLL interface class
//----------------------------------------------------------
class Waypoint_Interface : public CPA_ObjectDLLBase
{
private:
//---- Flags
BOOL m_bModifInsertOk; // Force the acception of the AcceptModifInsert message
BOOL m_bModifDeleteOk; // Force the acception of the AcceptModifDelete message
BOOL m_bRunEngine; // we are runnin the game
BOOL m_bStopDraw; // Stop the effect of fn_vAddObjectsToDraw
BOOL m_bCreateMode; // we are creating a way
BOOL m_bMainDll; // this DLL is the main one ( for popup menu )
BOOL m_bRefreshWay;
BOOL m_bListAlreadyCreated; // The list is already created by the DLL
BOOL m_bAddLink; // The next waypoint is inserted on a link
BOOL m_bExistWaypointSaveFile; // The waypoint save file exists when we change the map
BOOL m_bExistWaySaveFile; // The way save file exists when we change the map
BOOL m_bComputeEngineWaypoint; // No modif insert actions
BOOL m_bNextInstanceInWay; // The next instance is created in a way
BOOL m_bStopSelect; // selection is lock
BOOL m_bFirstBeforeEditor; // never enter Before Editor function
BOOL m_bFirstActivateEditor; // never enter OnActivateEditor function
BOOL m_bSkipOnModifDelete; // skip OnModifDelete
BOOL m_bSkipOnModifInsert; // skip OnModifInsert
BOOL m_bCommandWP;
BOOL m_bCommandLink;
BOOL m_bDialogOnScreen; // is the dialog way/WP display on the screen ?
BOOL m_bModifRadius; // Are we in modify radius mode ?
BOOL m_bOrientTangent; // mouse tangent orientation
//---- general
CPA_EditorBase* m_poGeomDll; // Geom Dll
CPA_DialogList* m_p_oDialogList ; // dialog list
CSplitFrame* m_p_oSplitFrameWP; // split frame
//----CPA_List
//ANNECY Shaitan Nettoyage (12/05/98) {
// CPA_List<Way> m_ListMovingWay; // List of the Way to redraw by the OnMouving function
//ENDANNECY Shaitan Nettoyage }
CPA_List<WayPoint> m_ListMovingWP; // List of the WP to recompute by the OnMouving function
CPA_List<CPA_SuperObject> m_oLoadListOfWay; // list of the loaded way
//---- CPA_BaseObjectList
CPA_BaseObjectList m_oSortedListOfWay;
CPA_BaseObjectList m_oSortedListOfObjectList;
CPA_BaseObjectList m_oSortedListOfNameList;
CPA_BaseObjectList m_oSortedListOfFamilly;
CPA_BaseObjectList m_oSortedListOfActorModel;
CPA_BaseObjectList m_oSortedListOfActorInstance;
//---- Icon list
CImageList m_oIconWayList; // list of icons for way list
//---- waypoint management
MTH3D_tdstVector m_stdCenterWP; // center in real coordinate of the WP that is beeing moved
MTH3D_tdstVector m_stdMouseVertex; // vertex of the mouse at the beginning of the draging action
WayPoint* m_o_ModifRadiusWP; // We modify the radius of this WP
//CPA2 Gabriela Dumitrascu 98-05-07
// Shaitan Correction {
// BOOL m_bGraphMove;
//End Shaitan Correction }
//End CPA2 Gabriela Dumitrascu 98-05-07
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
//---- way management
Way* m_pModifInsertWay; // ref to the edit way
WayPoint* m_poAddWP; // this is the WP we add to the way in the dialog
Way* m_pElasticWay; // this the way we create
CPA_SuperObject* m_p_oGraphicModelLine; // model of graphic line
//---- link management
Link2D* m_poRButtonLink; // R button on this link
Link* m_poSelectLink; // we try to move this link
Tangent* m_poTangentMove; // Tangent we edit
Link2D* m_poPlaneMove; // Plane we rotate
Cursor* m_poCursorMove; // Cursor we translate
//---- RButton capture
Tangent* m_poRButtonDownTangent; // we make a Rbutton Down on this tangent
BOOL m_bRButtonDownTangent; // m_poRButtonDownTangent is valid
Way* m_poRButtonDownWay; // we make a Rbutton Down on this way
BOOL m_bRButtonDownWay; // m_poRButtonDownWay is valid
*/
//ENDANNECY Shaitan Nettoyage }
//CPA2 Gabriela Dumitrascu 98-04-07
// Shaitan Correction {
// BOOL m_bRButtonDownWayPoint; // m_poRButtonDownWayPoint is valid
//End Shaitan Correction }
//End CPA2 Gabriela Dumitrascu 98-04-07
//---- List management
//ANNECY Shaitan Nettoyage (12/05/98) {
// CPA_BaseObject* m_poWay; // Current way
//ENDANNECY Shaitan Nettoyage }
CPA_BaseObject* m_poActor; // Current actor instance
CPA_BaseObject* m_poModel; // Current actor model
CPA_BaseObject* m_poFamilly; // Current familly
EdtList* m_poWayList; // Current Edtlist
// these datas are very protected and are just used to transmit datas between key down and key up
GLI_tdst2DVertex m_stMouseVertex2DCreate;
MTH3D_tdstVector m_stMouseVertex3DCreate;
BOOL m_bMouseVertexValid; // These 2 previous values are valid ?
// Shaitan Correction {
Graph * m_pSelectedGraph;
WayPoint * m_pDisplayedWayPoint;
tdeLinkDisplayMode m_eDisplayMode;
tdeWpSelectMode m_eSelectMode;
BOOL m_bSymetricMode;
CPA_KeyActionConfiguration * m_p_oKeyboard;
// End Shaitan Correction }
public:
Waypoint_Interface(void);
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Dll Base
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// BOOL fn_bPreTranslateMessage(MSG * /*p_stMsg*/);
void fn_vJustAfterRegistered(void);
void fn_vConstruct(void);
// void fn_vRefreshDatas(void);
// void fn_vLevelChanges (void);
void fn_vLevelHasChanged (void);
// Editor Modifs
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);
void fn_vOnModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent,
tdstPosition *p_stPosition, tdeTypeModif eType, tdeStatus eStatus);
// Moves
void fn_vOnModifMove (CPA_List<EDT_SavePos> *pListObjects, CPA_List<EDT_SaveGlobalPos> *pListConcerned, tdeTypeModif eType, tdeStatus eStatus);
void fn_vOnBeginMove (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus);
void fn_vOnMoving (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus);
// permission
BOOL fn_bAcceptModifDelete (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifParent (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
BOOL fn_bAcceptModifCopy (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
BOOL fn_bAcceptModifTranslate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
BOOL fn_bAcceptModifRotate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
BOOL fn_bAcceptModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, tdeStatus eStatus);
// BOOL fn_bAcceptModifScale (CPA_SuperObject *pEdObj, tdeStatus eStatus);
// BOOL fn_bAcceptModifName (CPA_SuperObject *pEdObj, tdeStatus eStatus);
// BOOL fn_bAcceptMultiSelect (void);
// to precise selection
tdeTypeAnswer fn_bAcceptSelect (CPA_SuperObject *pEdObj, ACP_tdxIndex xIndex, HIE_tdstPickInfo *pPicking, tdeStatus eStatus);
// orient
// BOOL fn_bAcceptOrientInstance (CPA_SuperObject *pEdObj);
// BOOL fn_bOnClickOrientPosition (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
// BOOL fn_bOnOrientingObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
// BOOL fn_bOnEndOrientObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
/*===========================================================================
Dialog List
=========================================================================*/
// BOOL fn_bSetCustomTest (CPA_DialogList *pDialog);
// BOOL fn_bCustomTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj);
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Editor Base
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// focus
// void fn_vHasLostFocus (void);
// BOOL fn_bHasGainedFocus (void);
// engine - editor
void fn_vBeforeEngine (void);
void fn_vBeforeEditor (void);
// engine
BOOL fn_bAcceptToRunEngine (void);
// BOOL fn_bAcceptToRunTimerEngine (void);
// end appli
// void fn_vJustBeforeClosing (void);
BOOL fn_bAcceptToExit (void);
// save
BOOL fn_bAcceptToSave (void);
// void fn_vBeforeSaveAll (void);
void fn_vAfterSaveAll (void);
// Shaitan Correction {
// keys
BOOL _OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
BOOL _OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
//End Shaitan Correction }
// mouse
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);
// command
// BOOL _OnCommand (UINT IDCmdMsg);
// BOOL _OnUpdateCommandUI (UINT uiID, CCmdUI *pCmdUI);
// dragdrop
// BOOL _OnDragDropEnd (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropMove (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropLooseFocus (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropGainFocus (WPARAM wParam, LPARAM lParam);
// add objects to draw
void fn_vAddObjectsToDraw (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3);
// void fn_vAddObjectsToDraw2 (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2);
/*===========================================================================
Reinit
=========================================================================*/
// void fn_vOnChangeDevice (void);
// void fn_vOnChangeWorld (void);
// void fn_vOnChangeRoot (void);
/*===========================================================================
Models
=========================================================================*/
// BOOL fn_bCanDeleteThisModel (CString csListName, CString csModelType, CString csModelName);
// void fn_vOnAddModelToList (CPA_ObjectDLLBase *pOwnerDLL, CString csListName, CString csModelName, tdeTypeModif eType);
/*===========================================================================
for Dialog List
=========================================================================*/
CPA_BaseObject * GetDialogSelection (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDrawMode);
void GetListsForDialog (CPA_DialogList *pDialog);
BOOL fn_bOnSelChangeHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent);
BOOL fn_bOnDblClkHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent);
BOOL fn_bOnSelChangeListObjects (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, BOOL bUnselect);
BOOL fn_bOnDblClkListObjects (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject);
// BOOL fn_bCanDragItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObjectToDrag);
// BOOL fn_bCanDropItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObjectToDrop, CPA_BaseObject *pTarget);
// BOOL fn_bOnDragDropInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObject, CPA_BaseObject *pTarget);
BOOL fn_bOnSelChangeComboList (CPA_DialogList *pDialog, CString csTypeName);
BOOL fn_bOnButtonTest (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw);
BOOL fn_bOnKeyDownInDialog (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw,
CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags);
// BOOL fn_bOnKeyUpInDialog (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw,
// CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags);
void fn_vInitDefaultParameters (CPA_DialogList *pDialog);
// void fn_vSetANewTest (CPA_DialogList *pDialog, CString csCurrentList);
BOOL fn_bTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj);
CString GetInfoForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// int GetIconForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
int GetStateForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// CPA_BaseObject * GetTreeNodeFirstChild (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pParent);
// CPA_BaseObject * GetTreeNodeNextChild (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pParent, CPA_BaseObject *pCurrentChild);
// int GetIconForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// int GetStateForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
/*===========================================================================
Current Editor
=========================================================================*/
tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewEditor);
BOOL fn_bCanActivateEditor (CPA_List<CPA_BaseObject> *pParams);
void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE);
// BOOL fn_bCanCloseEditor (void);
void fn_vOnCloseEditor (void);
// void fn_vBackActiveMe (void *pMyData);
// void fn_vEraseWalkDataStructure (void *pMyData);
/*===========================================================================
Dialog Bar - Mircea Dunka 31 Aug. 1998
=========================================================================*/
void fn_vDefineDlgBarBtnIcon (tde_DlgBarCategory wCategory, tds_DlgBarBtn *_pDlgBarBtn);
/*===========================================================================
SubMenus and PopupMenu
=========================================================================*/
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 bAsCurrentEditor);
void _OnPopUpMenuCommand (UINT m_IDCmdMsg);
/*===========================================================================
Coherence
=========================================================================*/
// BOOL fn_bOnInvalidateLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, BOOL bDestroyed);
// void fn_vOnRestoreLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject);
// void fn_vOnModifyChild (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, unsigned long _ulData);
/*===========================================================================
Draw Flag
=========================================================================*/
// void fn_vOnModifDrawFlag (CPA_SuperObject *pSuperObject);
/*===========================================================================
General Purpose
=========================================================================*/
long OnQueryAction (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryInfos (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryOpen (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryClose (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
/*===========================================================================
Reachable Objects
=========================================================================*/
// BOOL fn_bLoadBaseObject (CPA_BaseObject *p_oObject);
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Object DllBase
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// hierarchy
// CPA_SuperObject * GetNewEditorInstance (HIE_tdxHandleToSuperObject pEngineInstance);
// void fn_vBuildNewEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance);
// void fn_vUpdateEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance);
// BOOL fn_bCanHandleThisType (long lEngineType);
// models & instances
void fn_vInitListByType (CPA_World *pWorld);
void fn_vInitListsOfModels (void);
// void fn_vSaveListModels (CString csListName, CPA_List<EDT_Model> *pListModels);
// CString fn_csLoadListModels (void);
// EDT_Model * GetNewModel (CString csListName);
// BOOL fn_bCanLoadNewModel (CString csListName);
// BOOL fn_bCanDeleteModel (CString csListName);
// BOOL fn_bCanSaveListModels (CString csListName);
// BOOL fn_bCanLoadListModels (void);
// void fn_vOnLoadNewModel (CString csListName, EDT_Model *pNewModel);
CPA_SuperObject * GetNewInstance (CString csTypeName, CString csModelName, CPA_SuperObject *pParent);
tdeTypeSO GetTypeInstance (CString csTypeName, CString csModelName);
//ANNECY Shaitan EmptySectors 25/02/98
tdeSaveStatus GetStatusInstance (CString csTypeName, CString csModelName);
//ENDANNECY Shaitan EmptySectors
CPA_SuperObject * GetParentForInsertion (CString csTypeName, CString csModelName, tdstPosition *p_stPosition);
// BOOL fn_bChooseInsertPosition (CPA_SuperObject *pNewInstance, CPA_SuperObject *pParent, tdstPosition *p_stPosition);
// objects
// CPA_BaseObject * GetNewObject (CString csObjectFile, CString csObjectName, FILE *p_fFile, CPA_MainWorld *p_oMainWorld);
CPA_BaseObject * Duplicate (CPA_BaseObject *pObject, CPA_SuperObject *pNewSuperObject);
CPA_SuperObject * GetCopyOfProtectedChild (CPA_SuperObject *pInitialChild, CPA_SuperObject *pNewOwner);
// permissions for EvtEditor
BOOL fn_bAcceptAsParent (CPA_BaseObject *pChild, CPA_BaseObject *pParent);
// BOOL fn_bAcceptAsChild (CPA_BaseObject *pParent, CPA_BaseObject *pChild);
// for bounding volumes
// void fn_vComputeBoundingVolume(CPA_BaseObject *pObject);
ACP_tdxHandleOfObject fn_hGetBoundingVolume(CPA_BaseObject *_pObj);
// when insertion is canceled
// void fn_vOnCancelInsertion (CPA_SuperObject *pInstance);
// Shaitan Correction {
// to scale editor objects
CPA_SuperObject * GetVisualSuperObject (CPA_SuperObject *pInstance);
//End Shaitan Correction }
void fn_vUpdateObjectList (CPA_BaseObject *p_oObject, tdeUpdate eType);
EDT_Model * fn_pstLoadNewDescriptor (void);
//--------------------------------------------------- Load
//ROMTEAM Networks (Gabriela Dumitrascu 25/02/98)
void fn_vLoadGraph (void);
//ENDROMTEAM Networks (Gabriela Dumitrascu)
void fn_vLoadWaypoint (void);
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
void fn_vLoadWay (void);
void fn_vInsertWaySon (void);
Way* fn_pCreateWayFromEngine ( WP_tdhWay hWay, CPA_BaseObject* poOwner, CString csName, CString csReferencedSectionName );
*/
//ENDANNECY Shaitan Nettoyage }
//--------------------------------------------------- copy of way
//ANNECY Shaitan Nettoyage (12/05/98) {
// CPA_SuperObject* fn_pCopyWay ( Way* poWay );
//ENDANNECY Shaitan Nettoyage }
void fn_vSetNextInstanceInWay (void) { m_bNextInstanceInWay=TRUE; }
void fn_vSetModifDeleteOk (BOOL bModifDeleteOk) { m_bModifDeleteOk=bModifDeleteOk; }
//-------------------------------------------------- Dialog management
void fn_vRefreshWaypointCoordinate (void);
void fn_vRefreshList (void);
void fn_vRefreshTestButton (void);
void fn_vSaveDialogsPreferences (void);
void fn_vSwapLinkDialog ( BOOL bOrientationMode );
//----------------------------------------------------------- Edition
void fn_vEdit (WayPoint* poWP);
//ANNECY Shaitan Nettoyage (12/05/98) {
// void fn_vEdit (Way* p_oWay, int iWpPos=0);
// void fn_vEdit (Link* p_oLink);
//ENDANNECY Shaitan Nettoyage }
// Is there a waypoint in any way ?
//ANNECY Shaitan Nettoyage (12/05/98) {
// BOOL fn_bWaypointInAWay ( WayPoint* poWP );
//ENDANNECY Shaitan Nettoyage }
//----------------------------------------------------------- Refresh Screen
void fn_vRefreshScreen (void);
void fn_vRefreshDisplayControl (void);
//--------------------------------------------------- other functions
void fn_vComputeAbsoluteMatrix (CPA_SuperObject* psoWP);
void fn_vComputeNewRelativeMatrix (HIE_tdxHandleToSuperObject _hSprObj);
void fn_vComputeRelativeMatrix (CPA_SuperObject* poSuperObject, CPA_SuperObject* poParentSuperObject);
//------------------------------------------------------------- Draw
void fn_vDrawAllWP (void);
void fn_vSetRefreshWay ( BOOL bRefreshWay ) { m_bRefreshWay = bRefreshWay; }
//--------------------------------------- Selected objects in lists
CPA_BaseObject* fn_pGetSelectedFamilly (void) { return m_poFamilly; }
CPA_BaseObject* fn_pGetSelectedModel (void) { return m_poModel; }
CPA_BaseObject* fn_pGetSelectedInstance (void) { return m_poActor; }
//ANNECY Shaitan Nettoyage (12/05/98) {
// CPA_BaseObject* fn_pGetSelectedWay (void) { return m_poWay; }
//ENDANNECY Shaitan Nettoyage }
EdtList* fn_pGetSelectedEdtList (void) { return m_poWayList; }
CPA_DialogList* fn_pGetDialogList (void) { return m_p_oDialogList; }
//--------------------------------------- Get new graphical instances
CPA_SuperObject* fn_pGetNewSymbolicalGraphicObject (void);
CPA_SuperObject* fn_pGetNewSphericalGraphicObject (void);
CPA_SuperObject* fn_pGetNewLineGraphicObject (void);
CPA_SuperObject* fn_pGetNewTangentGraphicObject (GEO_tdstColor* pstColor);
CPA_SuperObject* fn_pGetNewPlaneGraphicObject(void);
CPA_SuperObject* fn_pGetNewCursorGraphicObject (void);
// Shaitan Correction {
// CPA_SuperObject* fn_pGetNewConnectionGraphicObject (int iGraph, int iNode, int iArc);
CPA_SuperObject* fn_pCreateConnectionGraphicObject (Graph *pGraph, WayPoint *pSrcWP, WayPoint *pDstWP, long lCapacity, long lWeight);
//End Shaitan Correction }
inline void fn_vRefreshHierarchyList (void);
//---------------------------------------- File Management
//--- waypoint
CString Waypoint_Interface::fn_csGetWaypointSaveFileName (void);
BOOL fn_bIsExistWaypointFile (void) { return m_bExistWaypointSaveFile; }
void fn_vSetExistWaypointFile (BOOL bExistWaypointSaveFile) { m_bExistWaypointSaveFile=bExistWaypointSaveFile; }
BOOL fn_bExistWaypointSaveFile (void);
//--- way
CString Waypoint_Interface::fn_csGetWaySaveFileName (void);
BOOL fn_bIsExistWayFile (void) { return m_bExistWaySaveFile; }
void fn_vSetExistWayFile (BOOL bExistWaySaveFile) { m_bExistWaySaveFile=bExistWaySaveFile; }
BOOL fn_bExistWaySaveFile (void);
//--- important function that convert way in EdtList to Real way to edit
//ANNECY Shaitan Nettoyage (12/05/98) {
// BOOL fn_bComputeRealWay (Way** ppoWay);
//ENDANNECY Shaitan Nettoyage }
//--- return EdtList used by the actor
EdtList* fn_poGetEdtListUseByActor (CPA_BaseObject* poActorInstance);
CPA_BaseObject* fn_pGetActorUsingAList (EdtList* poEdtList);
protected :
void fn_vPick ( ACP_tdxIndex* pxNbPicked, HIE_aDEF_stTabOfPickInfo& ra_stPickInfo, tdstMousePos *p_stPos);
//ANNECY Shaitan Nettoyage (12/05/98) {
// void fn_vAddWayPoint (void);
//ENDANNECY Shaitan Nettoyage }
CPA_SuperObject* fn_pExplorePicking (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, long lTypeObject, ACP_tdxIndex* pxFindIndex=NULL );
CPA_SuperObject* fn_pFirstSuperObjectPicked (HIE_tdstPickInfo *p_stObject);
CPA_SuperObject* fn_pFirstSuperObjectPickedInDynamicHierarchy (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject);
//----------- tools
// extract a reachable object from the list
CPA_BaseObject* fn_pSelectWayPointParam ( CPA_List<CPA_BaseObject> *pParams );
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
CPA_BaseObject* fn_pSelectWayParam ( CPA_List<CPA_BaseObject> *pParams );
CPA_BaseObject* fn_pSelectLinkParam ( CPA_List<CPA_BaseObject> *pParams );
*/
//ENDANNECY Shaitan Nettoyage }
// set the list of Way
void fn_vSetCursor ( UINT i );
void fn_vSetCursor ( LPCTSTR lpszResourceName );
//--------------------------------------------------- Lists management
void fn_vEditWayList ( CPA_List<CPA_BaseObject>* poList );
CPA_SuperObject* fn_pCreateEmptyWay (char* pszName, CPA_BaseObject* poFamilly);
//ANNECY Shaitan Nettoyage (12/05/98) {
/*
void fn_vFillListOfWay (void);
void fn_vGetListOfWaySuperObject ( CPA_List<CPA_BaseObject>* poSuperObjectList );
*/
//ENDANNECY Shaitan Nettoyage }
void fn_vEditListOfWay ( CPA_BaseObject* poObjectList );
void fn_vEditListOfActorModel ( CPA_BaseObject* poFamilly, BOOL bChange=TRUE );
void fn_vEditListOfActorInstance ( CPA_BaseObject* poActorModel, BOOL bChange=TRUE );
void fn_vEditListOfFamilly ( BOOL bChange=TRUE );
CPA_BaseObject* fn_pGetOwnerOfList ( CString csTypeList );
BOOL fn_bIsSuperObjectInStaticHierarchy (CPA_SuperObject* poSuperObject);
void fn_vCreateVirtualWaypoint (void);
void fn_vDeleteVirtualWaypoint (void);
BOOL fn_bIsSubSectionInSection ( CString csFullPath, CString csSearchPath );
void fn_vInitGameMaterial ( Geometry3D* poGeomObject, ACP_tdxHandleOfElement hElement, float fR, float fG, float fB );
// modification of EdtList
void fn_vNotifyAllEdtList ( CPA_tdoNameList* poNameList );
void fn_vCleanHierarchy(void);
// Shaitan Correction {
public:
tdeLinkDisplayMode GetDisplayMode (void) { return m_eDisplayMode; }
void SetDisplayMode (tdeLinkDisplayMode eNewMode);
Graph * GetSelectedGraph (void) { return m_pSelectedGraph; }
WayPoint * GetDisplayedWaypoint (void) { return m_pDisplayedWayPoint; }
void fn_vSelectGraph (Graph *pGraph);
void fn_vSetDisplayedWaypoint (WayPoint *pWaypoint, BOOL bCenter = FALSE);
void fn_vUpdateConnections (void);
void fn_vUpdateEditor (tdeModeChange eMode);
void fn_vSetSymetricMode (BOOL bSymetric) { m_bSymetricMode = bSymetric; }
BOOL fn_bGetSymetricMode (void) { return m_bSymetricMode; }
};
// End Shaitan Correction }
extern tdstDLLIdentity g_stWayPointIdentity;
#endif // __WPINTERF_HPP__