/* /////////////////////////////////////////////////////////////////////////////////////////////////// // 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 m_ListMovingWay; // List of the Way to redraw by the OnMouving function //ENDANNECY Shaitan Nettoyage } CPA_List m_ListMovingWP; // List of the WP to recompute by the OnMouving function CPA_List 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 *pListObjects, tdeTypeModif eType, tdeStatus eStatus); // void fn_vOnModifParent (CPA_List *pListObjects, tdeTypeModif eType, tdeStatus eStatus); // void fn_vOnModifCopy (CPA_List *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 *pListObjects, CPA_List *pListConcerned, tdeTypeModif eType, tdeStatus eStatus); void fn_vOnBeginMove (CPA_List *pListObjects, CPA_List *pListConcerned, tdeStatus eStatus); void fn_vOnMoving (CPA_List *pListObjects, CPA_List *pListConcerned, tdeStatus eStatus); // permission BOOL fn_bAcceptModifDelete (CPA_List *pListObjects, tdeStatus eStatus); // BOOL fn_bAcceptModifParent (CPA_List *pListObjects, tdeStatus eStatus); BOOL fn_bAcceptModifCopy (CPA_List *pListObjects, tdeStatus eStatus); BOOL fn_bAcceptModifTranslate (CPA_List *pListObjects, tdeStatus eStatus); BOOL fn_bAcceptModifRotate (CPA_List *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 *pParams); void fn_vOnActivateEditor (CPA_List *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 *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 *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 *pParams ); //ANNECY Shaitan Nettoyage (12/05/98) { /* CPA_BaseObject* fn_pSelectWayParam ( CPA_List *pParams ); CPA_BaseObject* fn_pSelectLinkParam ( CPA_List *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* 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* 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__