Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,570 @@
/*=========================================================================
*
* EDTbase.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTBASE_HPP__
#define __EDTBASE_HPP__
#include "itf/CPAHieEd.hpp"
#include "ITF.h"
class EDT_DialogEdit;
class EDT_DialogUpdate;
class EDT_DialogMove;
class EDT_DialogFlag;
class EDT_ModifMove;
class EDT_DialogSelect;
class EDT_SpecificEditor;
class EDT_TempList;
#include "EDTEnum.hpp"
#include "EDTSObj.hpp"
//**************************************
#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
//**************************************
#define NB_MAX_MODES 15
#define C_szHierarchyIniFile "Hierarchy\\EDTKeys.ini"
/*===========================================================================
* Description: Class EDT_HierarchyEditor
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_HierarchyEditor : public CPA_HierarchyEditor
{
protected:
//== Links ==
BOOL m_bHasCurrentWorld;
//== Tools ==
CPA_KeyActionConfiguration * m_p_oDevKeyboard;
EDT_SpecificEditor * m_pSpecificEditor;
long m_lNbSpecificActions;
//== Frames ==
CSplitFrame * m_pLeftFrame;
CSplitFrame * m_pBottomFrame;
//== Dialogs ==
EDT_DialogEdit * m_pDialogEdit;
CPA_DialogList * m_pDialogList;
EDT_DialogUpdate * m_pDialogUpdate;
EDT_DialogMove * m_pDialogMove;
EDT_DialogFlag * m_pDialogFlag;
EDT_DialogSelect * m_pDialogSelect;
//== Moves ==
EDT_ModifMove * m_pMouseMove;
EDT_ModifMove * m_pKeyMove;
tdeMouseMoveMode m_eMouseMoveMode;
BOOL m_bAvoidKeyRepeat;
BOOL m_bMovedObjectStaysOnScreen;
//== Orientation ==
EDT_SuperObject * m_pOrientedObject;
EDT_ModifMove * m_pOrientMove;
BOOL m_bKeepOrientMode;
//== Register Selection ==
//CPA2 Corneliu Babiuc (multiple registration) 06-07-98
// EDT_SuperObject * m_pRegisteredObject;
//END CPA2 Corneliu Babiuc (multiple registration) 06-07-98
//== Modifs ==
CPA_List<EDT_SaveParents> m_stListOfModifParent;
CPA_List<CPA_BaseObject> m_stListToEdit;
CPA_List<EDT_SaveParents> m_stListToCopy;
long m_lNbCopy;
//== Modes ==
tdeEditorMode m_eEditorMode;
HCURSOR m_a_hCursors[NB_MAX_MODES];
BOOL m_bMultiSelectMode;
//== Cancels ==
tdeCancelMode m_eModifCanceled;
CString m_csMessage;
//== Hierarchy ==
CPA_List<CPA_SuperObject> m_stListHierarchy;
long m_lNbUnknown;
//== Super-Object Save ==
CString m_csSOReferencePath;
//== Temporary Modifs ==
EDT_TempList * m_pListOfTempModifs;
// Load Message
CString m_csLoadingMessage;
int m_iLoadingStatus;
// icons for dialog list
CImageList m_oMainIconList;
CImageList m_oTreeIconList;
// mouse
BOOL m_bCanDisplayPopup;
BOOL m_bDoDialogSelect;
BOOL m_bDisableFirstMove;
//CPA2 Corneliu Babiuc (multiple registration) 06-07-98
// BOOL m_bIsASelection;
//END CPA2 Corneliu Babiuc (multiple registration) 06-07-98
BOOL m_bSelectSector;
BOOL m_bSelectSectorWithMouse;
tdstMousePos m_stLBDownMousePos;
// Begin Silviu Simen 18 August 1998 Cut/Paste Mechanism
EDT_SuperObject * m_pRegisteredCuttedObject;
BOOL m_bSpecialObject;
// End Silviu Simen 18 August 1998 Cut/Paste Mechanism
public:
/*===========================================================================
Contructor
=========================================================================*/
EDT_HierarchyEditor();
~EDT_HierarchyEditor();
void Create (void);
//#################################################################################
// EDITOR BASE
//#################################################################################
/*===========================================================================
Messages
=========================================================================*/
// construction
void fn_vJustAfterRegistered (void);
void fn_vConstruct (void);
// focus
void fn_vBeforeEngine (void);
void fn_vBeforeEditor (void);
//engine
BOOL fn_bAcceptToRunEngine(void);
BOOL fn_bAcceptToRunTimerEngine(void) { return TRUE; };
// end appli
void fn_vJustBeforeClosing(void);
BOOL fn_bAcceptToExit(void);
// keys
BOOL _OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
BOOL _OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
// 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 IDCmdMsg, 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
virtual void fn_vAddObjectsToDraw(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2, DEV_ViewPort* p3);
void fn_vAddObjectsToDraw2(GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2);
/*===========================================================================
Reinit
=========================================================================*/
void fn_vOnChangeRoot (void);
void fn_vOnChangeWorld (void);
void fn_vOnChangeDevice (void);
/*===========================================================================
for Dialog List
=========================================================================*/
void GetListsForDialog (CPA_DialogList *pDialog);
void fn_vInitDefaultParameters (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 csListName, CPA_BaseObject *pSelectedObject, BOOL bUnselect);
BOOL fn_bOnDblClkListObjects (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pSelectedObject);
BOOL fn_bCanDragItemInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObjectToDrag);
BOOL fn_bCanDropItemInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObjectToDrop, CPA_BaseObject *pTarget);
BOOL fn_bOnDragDropInHierarchyTree (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pTarget);
BOOL fn_bOnSelChangeComboList (CPA_DialogList *pDialog, CString csListName);
BOOL fn_bOnButtonTest (CPA_DialogList *pDialog, CString csListName, 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);
CPA_BaseObject * GetDialogSelection (CPA_DialogList *pDialog, CString csListName, tdeListDrawMode eDrawMode);
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);
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);
void fn_vSetANewTest (CPA_DialogList *pDialog, CString csCurrentList);
BOOL fn_bTestFunction (CString csListName, CString csTestName, CPA_BaseObject *pEdObj);
int GetNumIconFromObjectType (CString csType);
BOOL fn_bAddEntriesToTreePopup (CPA_DialogList *pDialog, CString csListName, CMenu *pMenu, UINT uiCustomEntriesStart);
BOOL fn_bAddEntriesToListPopup (CPA_DialogList *pDialog, CString csListName, CMenu *pMenu, UINT uiCustomEntriesStart);
void fn_vOnCommandInTreePopup (CPA_DialogList *pDialog, CString csListName, UINT uiCustomEntry);
void fn_vOnCommandInListPopup (CPA_DialogList *pDialog, CString csListName, UINT uiCustomEntry);
/*===========================================================================
Editor
=========================================================================*/
BOOL fn_bHasGainedFocus (void);
void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE);
void fn_vOnCloseEditor (void);
/*===========================================================================
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);
/*===========================================================================
SPO flags management
=========================================================================*/
BOOL fn_bAcceptModifFlag (CPA_SuperObject *pEdObj, unsigned long ulFlag);
/*===========================================================================
Save
=========================================================================*/
void fn_vBeforeSaveAll (void);
void fn_vAfterSaveAll (void);
//#################################################################################
// FOR INTERFACE
//#################################################################################
/*===========================================================================
Dialog List
=========================================================================*/
void fn_vUpdateLink (CString csCurrentMode);
void fn_vUpdateModel (void);
/*===========================================================================
Update
=========================================================================*/
void fn_vUpdateEditor (tdeModeChange eMode);
void fn_vCancelAllModes (void);
/*===========================================================================
Hierarchy
=========================================================================*/
BOOL fn_bInsertObjectInHierarchy (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
BOOL fn_bInsertAsPreviousBrother (CPA_SuperObject *pEdObj, CPA_SuperObject *pBrother, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
BOOL fn_bDeleteObjectInHierarchy (CPA_SuperObject *pEdObj, BOOL bUseEditManager = TRUE, BOOL bUpdateModif = TRUE, BOOL bDestroySuperObject = FALSE, BOOL bSelect = TRUE, BOOL pBlock = FALSE);
BOOL fn_bCanBeParent (CPA_SuperObject *pParent, tdstPosition *p_stPosition, tdeTypeSO eTypeSO, tdeSaveStatus eStatus);
BOOL fn_bCanBeParentForAll (CPA_SuperObject *pEdObj);
BOOL fn_bCanPasteAllObjects (tdePasteMode eMode, CPA_SuperObject *pNewParent = NULL, MTH3D_tdstVector *pNewPosition = NULL);
CPA_SuperObject * GetEditorObject (HIE_tdxHandleToSuperObject hSupObj);
CPA_SuperObject * GetNewSuperObject (HIE_tdxHandleToSuperObject hEngineSO,
tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
CPA_SuperObject * GetNewSuperObject (tdeSaveStatus eStatus, tdeTypeSO eTypeSO = C_NoType,
CString csName = "", CString csEngineFileName = "");
CPA_SuperObject * GetCopyOfSuperObject (CPA_SuperObject *pModel);
/*===========================================================================
Selection Mode
=========================================================================*/
BOOL fn_bIsPyramidModeEnabled (void) { return m_eEditorMode == E_em_PyramidMode; }
BOOL fn_bIsMoveToModeEnabled (void) { return m_eEditorMode == E_em_MoveToMode; }
BOOL fn_bIsMultiSelectModeEnabled (void) { return m_bMultiSelectMode; }
//#################################################################################
// FOR SUPER-OBJECTS
//#################################################################################
EDT_SuperObject * GetOrLoadSuperObject (CString csSectionName);
CString GetEngineSectionName (HIE_tdxHandleToSuperObject hEngineSO);
CString GetSOReferencePath (void) { return m_csSOReferencePath; }
EDT_TempList * GetListOfTempModifs (void) { return m_pListOfTempModifs; }
void SetListOfTempModifs (EDT_TempList *pTempList) { m_pListOfTempModifs = pTempList; }
void fn_vAddTemporaryModif (EDT_SuperObject *pSupObj);
void fn_vRemoveTemporaryModif (EDT_SuperObject *pSupObj);
void fn_vChangeTemporaryModif (EDT_SuperObject *pSupObj);
CString GetTempListSectionName (void);
void fn_vDoDialogFlags (EDT_SuperObject *pSuperObject);
//#################################################################################
// FOR DIALOGS & MODIFS & SPECIFIC EDITOR
//#################################################################################
// members
EDT_DialogEdit * GetDialogEdit (void) { return m_pDialogEdit; }
EDT_DialogSelect * GetDialogSelect (void) { return m_pDialogSelect; }
CPA_DialogList * GetDialogList (void) { return m_pDialogList; }
CPA_List<EDT_SaveParents> * GetListOfModifParent (void) { return &m_stListOfModifParent; }
EDT_SpecificEditor * GetSpecificEditor (void) { return m_pSpecificEditor; }
BOOL fn_bHasCurrentWorld (void) { return m_bHasCurrentWorld; }
// functions
void fn_vBuildEditorHierarchy (CPA_SuperObject *pEdObj, HIE_tdxHandleToSuperObject hSupObj);
// Begin Silviu Simen september 1998 List of Objects in Sectors
void fn_vBuildListOfSectors (void);
void fn_vDoBuildListOfSectors (CPA_SuperObject *pEdObj, HIE_tdxHandleToSuperObject hSupObj);
void fn_vSelectBySectorAndType (void);
void fn_vDoSelectBySectorAndType(CString csSector, unsigned long ulType);
// End Silviu Simen september 1998 List of Objects in Sectors
void fn_vDestroySuperObject (CPA_SuperObject *pEdObj, BOOL bDestroyEngine = TRUE, BOOL bUpdateLists = TRUE);
BOOL fn_bDoOrCancelMove (EDT_ModifMove *pModifMove);
EDT_SuperObject * GetACopy (EDT_SuperObject *pEdObj, BOOL bInstanceAlone, BOOL bFirstCopy);
CString GetLoadingMessage (void) { return m_csLoadingMessage; }
int GetLoadingStatus (void) { return m_iLoadingStatus; }
//CPA2 Corneliu Babiuc (teleportation bug) 25-06-98
void fn_vAddObjectRecursiveToList(CPA_SuperObject * pSuperObject, CPA_List<EDT_ListByDLL> * p_lstListByDLL, BOOL bSelected);
//CPA2 Corneliu Babiuc (teleportation bug) 25-06-98
//#################################################################################
// PROTECTED FUNCTIONS
//#################################################################################
protected:
/*===========================================================================
Get Functions
=========================================================================*/
EDT_SuperObject * GetRecursiveCopy (EDT_SuperObject *pEdObj, EDT_SuperObject *pNewOwner, BOOL bInstanceAlone, BOOL bFirstCopy);
EDT_SuperObject * GetSuperObjectFromLinkTable (HIE_tdxHandleToSuperObject hEngineSO, EDT_SuperObject *pParent = NULL);
/*===========================================================================
Set Functions
=========================================================================*/
void SetEditorMode (tdeEditorMode eNewMode);
void SetCurrentCursor (int iNumCursor, BOOL bSaveCurrentCursor = TRUE);
/*===========================================================================
Permissions
=========================================================================*/
BOOL fn_bCanTranslateAllObjects (tdeList eList = E_lst_SelectedList/*void CPA2 Corneliu Babiuc (multiple teleportation) 03-07-98 */);
BOOL fn_bCanRotateAllObjects (void);
BOOL fn_bCanCopyAllObjects (void);
BOOL fn_bCanDeleteAllObjects (void);
BOOL fn_bCanChangeAllParents (void);
BOOL fn_bCanEnterMultiMode (void);
/*===========================================================================
Messages
=========================================================================*/
public:
void fn_vSendMessageMoving (void);
void fn_vSendMessageBeginMove (void);
protected:
void fn_vSendMessageChangeLevel (void);
void fn_vSendMessageLevelChanged (void);
/*===========================================================================
Rebuild Hierarchy
=========================================================================*/
BOOL fn_bLoadEditorMap (void);
void fn_vReinitEditorMap (BOOL bReinitLoad = TRUE);
void fn_vUpdateHierarchyList (CPA_SuperObject *pEdObj);
void fn_vDoDialogUpdate (void);
/*===========================================================================
Insertion
=========================================================================*/
EDT_SuperObject * GetParentForInsertion (CPA_ObjectDLLBase *p_oDLL, CString csTypeName, CString csModelName,
tdstPosition *p_stPosition, tdeTypeSO eTypeInsert, tdeSaveStatus eStatus);
BOOL fn_bCanInsert (EDT_SuperObject *pEdObj, EDT_SuperObject *pParent);
BOOL fn_bCanDelete (EDT_SuperObject *pEdObj);
BOOL fn_bFindPickingPosition (tdstPosition *p_stPosition);
void fn_vGetNormalFromPicking (HIE_aDEF_stTabOfPickInfo a_stPickInfo, MTH3D_tdstVector *pNormal);
void fn_vGetMinMaxPointsOfInstance (EDT_SuperObject *pEdObj, POS_tdxHandleToPosition hMatrix, MTH3D_tdstVector *p_stMinPoint, MTH3D_tdstVector *p_stMaxPoint,
/*CPA2 Corneliu Babiuc (TMS_0598) 13-06-98*/ BOOL bGlobal = FALSE);
void fn_vGetPositionFromBoundingVolume (EDT_SuperObject *pSupObj, MTH3D_tdstVector *pNormal, MTH3D_tdstVector *pVector);
/*===========================================================================
Moves
=========================================================================*/
CPA_SuperObject * fn_pstIsMouseOnObject (ACP_tdxIndex Index, HIE_tdstPickInfo *p_stObject);
void fn_vTranslateObjects (int iAxe, int iDirection);
void fn_vRotateObjects (int iAxe
/*CPA2 Corneliu Babiuc 18-05-98 */ , int iDirection = 0);
private:
//Rotation and translation step and their access members
GLI_tdxValue m_xRotationStep;
GLI_tdxValue m_xTranslationStep;
public:
GLI_tdxValue fn_xGetRotationStep(void) {return m_xRotationStep;};
void fn_vSetRotationStep(GLI_tdxValue xNewValue) {m_xRotationStep = xNewValue;};
GLI_tdxValue fn_xGetTranslationStep(void) {return m_xTranslationStep;};
void fn_vSetTranslationStep(GLI_tdxValue xNewValue) {m_xTranslationStep = xNewValue;};
protected:
//END CPA2 Corneliu Babiuc 20-05-98
void fn_vMoveToNewPosition (tdstPosition *p_stPosition);
void fn_vMoveToNewPosition (MTH3D_tdstVector* p_stPosition);
void fn_vPutOnGround (void);
//CPA2 Corneliu Babiuc (TMS_0598) 26-05-98
void fn_vMoveObjectFromMultipleSelection (
EDT_SuperObject * pSuperObject,
CPA_List<EDT_SuperObject> * p_oList,
long lIndex,
MTH3D_tdstVector * pSelectedPoint,
MTH3D_tdstVector * pNormal);
//END CPA2 Corneliu (TMS_0598) 10-06-98
//CPA2 Corneliu Babiuc (specific teleportation) 15-06-98
//function to teleport selected instance to a reference instance
void fn_vMoveToInstancePosition(EDT_SuperObject * pReferenceInstance);
//function to teleport selected instance to editor's camera position
void fn_vMoveToCameraPosition();
//function to translate all selected objects
void fn_vTranslateObjects(MTH3D_tdstVector * pTranslation);
// camera teleportation functions
void fn_vMoveCameraOrientedToInstance(EDT_SuperObject * p_oReference);
void fn_vMoveCameraToInstanceCenterOnInstance(EDT_SuperObject * p_oReference, CPA_SuperObject * p_oCenterObject);
//END CPA2 Corneliu Babiuc (specific teleportation) 18-06-98
BOOL fn_bMouseRotatesObjects (void) { return (m_eMouseMoveMode == E_mmm_MouseRotateXY || m_eMouseMoveMode == E_mmm_MouseRotateXZ); };
BOOL fn_bMouseChangesObjects (void) { return (m_eMouseMoveMode != E_mmm_NoMouseMove); };
/*===========================================================================
Copy / Paste
=========================================================================*/
void fn_vInitModifCopy (BOOL bInstanceAlone);
void fn_vInitModifPaste (tdePasteMode eMode, EDT_SuperObject *pNewParent = NULL, MTH3D_tdstVector *pNewPosition = NULL);
void fn_vInitListToCopy (CPA_List<CPA_SuperObject> *pListObjects, BOOL bInstanceAlone);
BOOL fn_bInitParentAndPos (tdePasteMode eMode, EDT_SuperObject *pNewParent = NULL, MTH3D_tdstVector *pNewPosition = NULL);
void UnSaveAllElement (EDT_SuperObject *pSupObj);
/*===========================================================================
Modifs
=========================================================================*/
static SCR_tde_Anl_ReturnValue CallBackLoadListModif (SCR_tdst_File_Description *p_fFile, char *szName, char *szParams[], SCR_tde_Anl_Action eAction);
/*===========================================================================
Others
=========================================================================*/
void fn_vSaveDialogsPreferences (void);
void fn_vDisplayCancelMessage (tdeCancelMode eModif);
void fn_vRestoreDialogs (void);
BOOL fn_bIsHierarchyTree (CString csCurrentType);
void fn_vUpdateDialogList (CString csMode);
void fn_vApplyGravityToInstance (EDT_SuperObject *pSupObj, MTH3D_tdstVector *p_stMove, MTH3D_tdstVector *p_stVertical);
BOOL fn_bCanChangeSelectedObjects (void);
/*===========================================================================
Moves
=========================================================================*/
void fn_vRotateX (POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xXAngle);
void fn_vRotateY (POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xYAngle);
void fn_vRotateZ (POS_tdstCompletePosition *p_stMatrix, GLI_tdxValue xZAngle);
/*===========================================================================
Orientation
=========================================================================*/
BOOL fn_bCanOrientSelection (void);
void fn_vOrientToPosition (EDT_SuperObject *pEdObj, MTH3D_tdstVector *pOrientPosition);
void fn_vOrientWithVertical (EDT_SuperObject *pEdObj, MTH3D_tdstVector *pOrientPosition);
void fn_vOrientWithSelectedAxis (EDT_SuperObject *pEdObj, MTH3D_tdstVector *pOrientPosition, MTH3D_tdstVector *pAxis);
// Begin Silviu Simen 18 August 1998 Cut/Paste Mechanism
public:
BOOL fn_bObjectIsSpecial();
void SetRegisteredCuttedObject (EDT_SuperObject * pSupObj) { m_pRegisteredCuttedObject = pSupObj;}
void SetSpecialObject (BOOL bSpecial) { m_bSpecialObject = bSpecial;}
// End Silviu Simen 18 August 1998 Cut/Paste Mechanism
};
// macros
#define M_GetListOfModifParent() GetParentEditor()->GetListOfModifParent()
#define M_HasCurrentWorld() GetParentEditor()->fn_bHasCurrentWorld()
extern tdstDLLIdentity g_stHierarchyIdentity;
#endif // __EDTBASE_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,210 @@
/*=========================================================================
*
* EDTdEdit.h : class EDT_DialogEdit
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGEDIT_HPP__
#define __DIALOGEDIT_HPP__
#include "EDTRes.h"
#include "EDTModif.hpp"
#define C_AxeX 0
#define C_AxeY 1
#define C_AxeZ 2
//**************************************
#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
//**************************************
class EDT_HierarchyEditor;
class EDT_SuperObject;
class CPA_Interface;
/*===========================================================================
* Description: EDT_DialogEdit dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_DialogEdit : public CFormView
{
protected:
EDT_HierarchyEditor *m_pEditor;
// super object
EDT_SuperObject *m_pEditedObject;
// move
EDT_ModifMove *m_pEditMove;
// position
MTH3D_tdstVector m_stTranslation;
MTH3D_tdstVector m_stAngles;
MTH3D_tdstVector m_stScales;
// flags for update
BOOL m_bUpdatingPos;
BOOL m_bUpdatingRot;
BOOL m_bUpdatingScale;
// flag for move
BOOL m_bGlobalMove;
BOOL m_bInitialised;
private:
// moves
void fn_vSetNewPosition (char cAxe);
void fn_vSetNewRotation (char cAxe);
void fn_vSetNewScale (char cAxe);
void fn_vRotateX (POS_tdstCompletePosition * pMatrix, GLI_tdxValue Angle);
void fn_vRotateY (POS_tdstCompletePosition * pMatrix, GLI_tdxValue Angle);
void fn_vRotateZ (POS_tdstCompletePosition * pMatrix, GLI_tdxValue Angle);
void fn_vConvertAnglesToRotateMatrix (POS_tdstCompletePosition * pMatrix, MTH3D_tdstVector * pAngles);
void fn_vConvertRotateMatrixToAngles (MTH3D_tdstVector * pAngles, POS_tdstCompletePosition * pMatrix);
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
EDT_SuperObject * GetEditedSupObj (void) { return m_pEditedObject; }
CPA_Interface * GetInterface (void);
// standard constructor
EDT_DialogEdit (CWnd* pParent = NULL);
// dialog
void fn_vInitDialog (EDT_HierarchyEditor *pEditor, FRMBase *pFrame);
void fn_vUpdateDialog (void);
void fn_vUpdatePosition (void);
void fn_vUpdateRotation (void);
void fn_vUpdateScale (void);
void fn_vUpdateSuperObject (void);
void fn_vUpdateObject (void);
void fn_vUpdateParent (void);
void fn_vSendMessageMove (void);
BOOL fn_bCanTranslate (void);
BOOL fn_bCanRotate (void);
BOOL fn_bCanScale (void);
//ANNECY Shaitan SPOFlags 17/02/98
BOOL fn_bZoomForScale (void);
//ENDANNECY Shaitan SPOFlags
BOOL fn_bCanRenameObject (void);
BOOL fn_bCanRenameSuperObject (void);
//ROMTEAM StickObjects (Nicolae Suparatu 10/02/98)
void fn_vSetNewPositionAndRotation (EDT_SuperObject *obj, POS_tdstCompletePosition matrix);
//ENDROMTEAM StickObjects (Nicolae Suparatu)
// Dialog Data
//{{AFX_DATA(EDT_DialogEdit)
enum { IDD = EDT_IDD_DIALOGEDIT };
// super-object
CEdit m_cSupObjName;
CButton m_cSupObjGo;
CStatic m_cSupObjOwner;
CStatic m_cSupObjLevel;
//ANNECY CO SPOFLAG 03/02/98
CButton m_cSupObjFlags;
//ENDANNECY CO SPOFLAG
//ANNECY Shaitan Transparency 26/03/98 {
CEdit m_cEditTransparency;
CSliderCtrl m_cSliderTransparency;
//ENDANNECY Shaitan Transparency }
CButton m_cTemp;
// object
CEdit m_cObjectName;
CStatic m_cObjectType, m_cObjectOwner;
CStatic m_cObjectDesc;
// parent
CStatic m_cParentName;
CStatic m_cParentObject;
CStatic m_cParentType, m_cParentOwner;
CButton m_cParentGo;
// position
CEdit m_cPosX, m_cPosY, m_cPosZ;
CEdit m_cScaleX, m_cScaleY, m_cScaleZ;
CEdit m_cRotX, m_cRotY, m_cRotZ;
CSliderCtrl m_cSliderX, m_cSliderY, m_cSliderZ;
CButton m_cGlobalMode, m_cApply;
// default button
CButton m_cDefault;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_DialogEdit)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_DialogEdit)
afx_msg void OnChangeSupObjName();
afx_msg void OnObjectGo();
//ANNECY CO SPOFLAG 03/02/98
afx_msg void OnFlags();
//ENDANNECY CO SPOFLAG
//ANNECY Shaitan Transparency 26/03/98 {
afx_msg void OnChangeTransparency();
afx_msg void OnHScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
//ENDANNECY Shaitan Transparency }
afx_msg void OnChangeEditName();
afx_msg void OnLink();
afx_msg void OnParentGo();
afx_msg void OnChangePosx();
afx_msg void OnChangePosy();
afx_msg void OnChangePosz();
afx_msg void OnChangeScalex();
afx_msg void OnChangeScaley();
afx_msg void OnChangeScalez();
afx_msg void OnChangeRotx();
afx_msg void OnChangeRoty();
afx_msg void OnChangeRotz();
afx_msg void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnGlobalMode();
afx_msg void OnApply();
afx_msg void OnDefaultButton();
afx_msg void OnSize(UINT, int, int);
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif //__DIALOGEDIT_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,103 @@
/*=========================================================================
* //ANNECY CO SPOFLAG 03/02/98
*
* EDTdFlag.h : class EDT_DialogFlag
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGFLAG_H__
#define __DIALOGFLAG_H__
//**************************************
#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
//**************************************
#include "EDTRes.h"
class EDT_HierarchyEditor;
class EDT_SuperObject;
class CPA_Interface;
/*===========================================================================
* Description: EDT_DialogFlag dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_DialogFlag : public CDialog
{
protected:
EDT_HierarchyEditor *m_pEditor;
EDT_SuperObject *m_pSuperObject;
unsigned long m_ulInitialFlags;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// standard constructor
EDT_DialogFlag (CWnd* pParent = NULL);
// dialog
void fn_vDoDialog (EDT_HierarchyEditor *pEditor, EDT_SuperObject *pSupObj);
// Dialog Data
//{{AFX_DATA(EDT_DialogFlag)
enum { IDD = EDT_IDD_DIALOGFLAGS };
CButton m_cCheckPicking;
CButton m_cCheckHidden;
//ANNECY Shaitan SPOFlags 17/02/98
CButton m_cCheckTransformMatrix;
CButton m_cCheckZoomForScale;
//ANNECY TQ 27/02/98{
CButton m_cCheckBoundingBox;
CButton m_cCheckImpose;
CButton m_cCheckNoRayTrace;
CButton m_cCheckChildren;
CButton m_cCheckNoShadowOnMe;
//ENDANNECY TQ}
//ENDANNECY Shaitan SPOFlags
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_DialogFlag)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_DialogFlag)
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif //__DIALOGMOVE_H__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,89 @@
/*=========================================================================
*
* EDTdMove.h : class EDT_DialogMove
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGMOVE_H__
#define __DIALOGMOVE_H__
//**************************************
#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
//**************************************
#include "EDTRes.h"
class EDT_HierarchyEditor;
class CPA_Interface;
/*===========================================================================
* Description: EDT_DialogMove dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_DialogMove : public CDialog
{
protected:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bAcceptModif;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// standard constructor
EDT_DialogMove (CWnd* pParent = NULL);
// dialog
BOOL fn_bDoDialog (EDT_HierarchyEditor *pEditor);
// Dialog Data
//{{AFX_DATA(EDT_DialogMove)
enum { IDD = EDT_IDD_DIALOGMOVE };
CListBox m_cListObject;
CListBox m_cListParent;
CListBox m_cListSector;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_DialogMove)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_DialogMove)
virtual void OnOK();
virtual void OnCancel();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif //__DIALOGMOVE_H__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,179 @@
//ROMTEAM StickObjects (Gabi Dumitrascu 02/02/98)
/*=========================================================================
* edtdsel.hpp : class EDT_DialogSelect
*
* Version 1.0
* Creation date
* Revision date
*
* CPA2 Gabi Dumitrascu 98-02-02
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGSEL_HPP__
#define __DIALOGSEL_HPP__
#include "EDTRes.h"
//**************************************
#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
//**************************************
class EDT_HierarchyEditor;
class EDT_SuperObject;
class CPA_Interface;
/////////////////////////////////////////////////////////////////////////////
// EDT_DialogSelect form view
class EDT_DialogSelect : public CFormView
{
protected:
EDT_HierarchyEditor *m_pEditor;
// super object
CPA_SuperObject *m_pDstObject, *m_pSrcObject;
int m_iCrtDstPoint, m_iCrtSrcPoint;
MTH3D_tdstVector m_stDstPoints[3], m_stSrcPoints[3];
BOOL m_bWrongObject;
public:
// standard constructor
EDT_DialogSelect (CWnd* pParent = NULL);
CPA_Interface * GetInterface (void);
//CPA2 Nicolae Suparatu 98-02-10
EDT_DialogEdit *m_edit;
//End CPA2 Nicolae Suparatu 98-02-10
// dialog
void fn_vInitDialog (EDT_HierarchyEditor *pEditor, FRMBase *pFrame);
void fn_vUpdateDialog (void);
BOOL fn_bIsSelecting ();
void fn_vSetPoint (tdstMousePos *p_stPos, HIE_tdstPickInfo *p_stPickInfo);
protected:
// Form Data
//{{AFX_DATA(EDT_DialogSelect)
enum { IDD = EDT_IDD_DIALOGSELECT };
CButton m_ckSelectSrc;
CButton m_ckSelectDst;
CEdit m_PosZ33;
CEdit m_PosZ3;
CEdit m_PosZ22;
CEdit m_PosZ2;
CEdit m_PosZ11;
CEdit m_PosZ1;
CEdit m_PosY33;
CEdit m_PosY3;
CEdit m_PosY22;
CEdit m_PosY2;
CEdit m_PosY11;
CEdit m_PosY1;
CEdit m_PosX33;
CEdit m_PosX3;
CEdit m_PosX22;
CEdit m_PosX2;
CEdit m_PosX11;
CEdit m_PosX1;
CButton m_bMove;
//}}AFX_DATA
void fn_vUpdateDstDialog(void);
void fn_vUpdateSrcDialog(void);
BOOL fn_bIsSelectingDst () { return m_ckSelectDst.GetCheck(); }
BOOL fn_bIsSelectingSrc () { return m_ckSelectSrc.GetCheck(); }
void fn_vSetDstPoint (tdstMousePos *p_stPos, HIE_tdstPickInfo *p_stPickInfo);
void fn_vSetSrcPoint (tdstMousePos *p_stPos, HIE_tdstPickInfo *p_stPickInfo);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_DialogSelect)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_DialogSelect)
afx_msg void OnDestroy();
afx_msg void OnMove();
afx_msg void OnSelectDst();
afx_msg void OnSelectSrc();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//////////////////////////////////////////////////////////////////////
// interface for the EDT_DialogSelectType class.
//////////////////////////////////////////////////////////////////////
/*=========================================================================
* Version 1.0
* Creation date 9 september 1998
* Revision date 9 september 1998
* Author : Silviu Simen
*=======================================================================*/
class EDT_DialogSelectType : public CDialog
{
private:
CPA_Interface* m_p_oInterface;
public:
BOOL m_bWasOK;
CString m_csSelSector;
unsigned long m_ulSelType;
EDT_DialogSelectType (CPA_Interface *p_oInterface, CWnd* pParent = NULL);
virtual ~EDT_DialogSelectType();
CPA_Interface* GetInterface (void) { return m_p_oInterface; }
void Init (void);
// Dialog Data
//{{AFX_DATA(EDT_DialogSelectType)
enum { IDD = EDT_IDD_DIALOGSELECTTYPES };
CListBox m_cSectors;
CListBox m_cTypes;
//}}AFX_DATA
protected:
//{{AFX_VIRTUAL(EDT_DialogSelectType)
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnInitDialog();
virtual void OnOK( ) ;
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif //__DIALOGSEL_HPP__
#endif // ACTIVE_EDITOR
/////////////////////////////////////////////////////////////////////////////
//ENDROMTEAM StickObjects (Gabi Dumitrascu)

View File

@@ -0,0 +1,103 @@
/*=========================================================================
*
* EDTdUpdt.h : class EDT_DialogList
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
//**************************************
#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
//**************************************
#ifndef __DIALOGUPDATE_H__
#define __DIALOGUPDATE_H__
#include "EDTRes.h"
#include "ITF.h"
class EDT_HierarchyEditor;
class EDT_SuperObject;
class CPA_Interface;
/*===========================================================================
* Description: EDT_DialogUpdate dialog
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_DialogUpdate : public CDialog
{
protected:
EDT_HierarchyEditor *m_pEditor;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// Construction
EDT_DialogUpdate (CWnd* pParent = NULL);
void fn_vInitDialog (EDT_HierarchyEditor *pEditor);
// function
BOOL fn_bIsInHierarchy (EDT_SuperObject *pEdObj);
// lists
CPA_List<EDT_SuperObject> m_stListDestroy;
CPA_List<EDT_SuperObject> m_stListInsert;
// position
POS_tdstCompletePosition m_stRefMatrix;
// Dialog Data
//{{AFX_DATA(EDT_Update)
enum { IDD = EDT_IDD_DIALOGUPDATE };
CListBox m_cListInsert1;
CListBox m_cListDestroy1;
CListBox m_cListInsert;
CListBox m_cListDestroy;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_Update)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_Update)
afx_msg void OnSelchangeListDestroy();
afx_msg void OnSelchangeListReinsert();
virtual void OnOK();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif //__DIALOGUPDATE_H__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,75 @@
/*=========================================================================
*
* EDTdVect.hpp : class EDT_DialogVector
*
*
* Version 1.0
* Creation date 17-06-98
* Author Corneliu Babiuc
* Revision date
*
**=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __DIALOGVECTOR_H__
#define __DIALOGVECTOR_H__
//**************************************
#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
//**************************************
#include "EDTRes.h"
#include "mth.h"
/*===========================================================================
* Description: EDT_DialogVector dialog
* Creation date:
* Author: Corneliu Babiuc
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_DialogVector : public CDialog
{
// Construction
public:
EDT_DialogVector(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(EDT_DialogVector)
enum { IDD = EDT_IDD_DIALOGVECTOR };
MTH_tdxReal m_xComponentX;
MTH_tdxReal m_xComponentY;
MTH_tdxReal m_xComponentZ;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(EDT_DialogVector)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(EDT_DialogVector)
virtual void OnOK();
virtual void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif // __DIALOGVECTOR_H__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,93 @@
/*=========================================================================
*
* EDTEnum.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
//**************************************
#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
//**************************************
#ifndef __EDTENUM_HPP__
#define __EDTENUM_HPP__
// mousemove mode
typedef enum tdeMouseMoveMode_
{
E_mmm_NoMouseMove,
E_mmm_MouseMove,
E_mmm_MouseRotateXY,
E_mmm_MouseRotateXZ
}
tdeMouseMoveMode;
// modif canceled for message
typedef enum tdeCancelMode_
{
E_cm_CancelParent,
E_cm_CancelCopy,
E_cm_CancelInsert,
E_cm_CancelDelete,
E_cm_CancelMove,
E_cm_CancelPaste,
E_cm_NoCancel
}
tdeCancelMode;
// editor mode
typedef enum tdeEditorMode_
{
E_em_PyramidMode,
E_em_HierarchyMode,
E_em_ChoiceMode,
E_em_ParentMode,
E_em_PositionMode,
E_em_CopyAllMode,
E_em_CopyAloneMode,
E_em_MoveToMode,
//CPA2 Corneliu Babiuc (multiple registration) 07-07-98
E_em_RegisterSelection,
E_em_ClearRegistration,
//CPA2 Corneliu Babiuc (multiple registration) 07-07-98
//CPA2 Corneliu Babiuc 14-06-98
E_em_MoveToInstance,
E_em_MoveCameraToInstance,
E_em_MoveCameraCentered,
//CPA2 Corneliu Babiuc 17-06-98
E_em_OrientMode,
E_em_VOrientMode,
// Begin Silviu Simen 18 August 1998 Cut/Paste Mechanism
E_em_CutPasteMode,
// End Silviu Simen 18 August 1998 Cut/Paste Mechanism
E_em_NoMode
}
tdeEditorMode;
//CPA2 Corneliu Babiuc (multiple registration) 03-07-98
// selection of list
typedef enum tdeList_
{
E_lst_SelectedList,
E_lst_RegisteredList
}
tdeList;
//END CPA2 Corneliu Babiuc (multiple registration) 03-07-98
#endif // __EDTENUM_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,517 @@
/*=========================================================================
*
* EDTModif.hpp : Class Modif*
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTMODIF_HPP__
#define __EDTMODIF_HPP__
//**************************************
#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
//**************************************
#define TYPE_DELETE 1
#define TYPE_INSERT 2
#define TYPE_MOVE 3
#define TYPE_NAME 4
#define TYPE_PARENT 5
#define TYPE_PASTE 6
#define TYPE_RENAME 7
#define TYPE_STATE 8
#define TYPE_VALIDATE 9
#include "itf/CPAMdf.hpp"
#include "itf/CPASObj.hpp"
#include "itf/objdllb.hpp"
#include "itf/CPALists.hpp"
class EDT_HierarchyEditor;
class EDT_SuperObject;
class EDT_TempModif;
class CPA_Interface;
//CPA2 Stegaru Cristian 98-02
static char szStaticExt [] = {".SPO"};
static char szModifExt [] = {".MDT"};
static char szFinalModifExt [] = {".MDF"};
//End CPA2 Stegaru Cristian 98-02
//#################################################################################
// TO SAVE PARENT MODIFICATION
//#################################################################################
/*===========================================================================
List For DLLs
=========================================================================*/
class EDT_ParentByType : public CObject
{
public:
CPA_ObjectDLLBase *m_poDLL;
CPA_List<EDT_SaveParents> m_stListObjects;
CPA_List<EDT_SaveParents> m_stListProtected;
EDT_ParentByType (CPA_ObjectDLLBase *p_oDLL)
{
m_poDLL = p_oDLL;
m_stListObjects.RemoveAll();
m_stListProtected.RemoveAll();
}
~EDT_ParentByType (void)
{
while (m_stListObjects.GetCount() > 0)
delete m_stListObjects.RemoveTail();
while (m_stListProtected.GetCount() > 0)
delete m_stListProtected.RemoveTail();
}
};
//#################################################################################
// TO SAVE POSITION MODIFICATION
//#################################################################################
/*===========================================================================
List For DLLs
=========================================================================*/
class EDT_PosByType : public CObject
{
public:
CPA_ObjectDLLBase *m_poDLL;
// moved objects
CPA_List<EDT_SavePos> m_stListObjects;
CPA_List<EDT_SaveGlobalPos> m_stListConcerned;
// protected objects
CPA_List<EDT_SavePos> m_stListProtected;
CPA_List<EDT_SaveGlobalPos> m_stListProtectConcerned;
EDT_PosByType (void)
{
m_stListObjects.RemoveAll();
m_stListConcerned.RemoveAll();
m_stListProtected.RemoveAll();
m_stListProtectConcerned.RemoveAll();
}
EDT_PosByType (CPA_ObjectDLLBase *p_oDLL)
{
m_poDLL = p_oDLL;
m_stListObjects.RemoveAll();
m_stListConcerned.RemoveAll();
m_stListProtected.RemoveAll();
m_stListProtectConcerned.RemoveAll();
}
~EDT_PosByType (void)
{
while (!(m_stListObjects.IsEmpty()))
delete m_stListObjects.RemoveTail();
while (!(m_stListConcerned.IsEmpty()))
delete m_stListConcerned.RemoveTail();
while (!(m_stListObjects.IsEmpty()))
delete m_stListObjects.RemoveTail();
while (!(m_stListProtectConcerned.IsEmpty()))
delete m_stListProtectConcerned.RemoveTail();
}
};
//#################################################################################
// CLASS MODIF*
//#################################################################################
/*===========================================================================
* Description: ModifInsert
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifInsert : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
BOOL m_bSelect;
BOOL m_bUpdate;
CPA_List<EDT_SaveParents> m_stListInsert;
EDT_SuperObject *m_pInsertedObject;
EDT_SuperObject *m_pParent;
EDT_SuperObject *m_pBrother;
CString m_csType;
tdstPosition m_stPosition;
// Cut Paste
MTH3D_tdstVector m_stTranslation, m_stLocale;
BOOL m_bUpdatePosition;
BOOL m_bCutSpecial;
// Cut Paste
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifInsert(EDT_HierarchyEditor *pEditor, EDT_SuperObject *pEdObj,
EDT_SuperObject *pParent, tdstPosition *p_stPosition,
EDT_SuperObject *pBrother = NULL, BOOL bUpdateDrawing = TRUE,
BOOL bSelectOnInsertion = TRUE, BOOL pBlock = FALSE,
BOOL bUpdatePosition=FALSE,
BOOL bCutSpecial=FALSE); // Silviu Simen 18 August 1998 Cut/Paste of Special Obj
~EDT_ModifInsert (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vFillListForInsertion (EDT_SuperObject *pEdObj, EDT_SuperObject *pParent);
void fn_vSendMessageInsert (tdeTypeModif eType, tdstPosition *p_stPosition);
};
/*===========================================================================
* Description: ModifDelete
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifDelete : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
BOOL m_bUpdate;
BOOL m_bDestroy;
BOOL m_bSelect;
CPA_List<EDT_ParentByType> m_lstModifByType;
CPA_List<EDT_SaveParents> m_stListObjects;
CPA_List<EDT_SaveParents> m_stListForTools;
BOOL m_bDeleted;
CString m_csType;
// Begin Silviu Simen 18 August 1998 Cut/Paste of Special Obj.
BOOL m_bCutSpecial;
// End Silviu Simen 18 August 1998 Cut/Paste of Special Obj.
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifDelete (EDT_HierarchyEditor *pEditor, CPA_List<EDT_ListByDLL> *pSelectByDLL,
CString csType, BOOL bUpdateDrawing = TRUE, BOOL bDestroy = TRUE,
BOOL bSelectOnUndo = TRUE, BOOL pBlock = FALSE,
BOOL bCutSpecial = FALSE); // Silviu Simen Cut/Paste of Special Objs.
EDT_ModifDelete (EDT_HierarchyEditor *pEditor, EDT_SuperObject *pObjectToDelete,
CString csType, BOOL bUpdateDrawing = TRUE, BOOL bDestroy = TRUE,
BOOL bSelectOnUndo = TRUE, BOOL pBlock = FALSE,
BOOL bCutSpecial = FALSE); // Silviu Simen Cut/Paste of Special Objs.
~EDT_ModifDelete (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
EDT_ParentByType * fn_pstFindParentListFromObj (EDT_SuperObject *pEdObj);
void fn_vFillListForDLLs (EDT_SuperObject *pEdObj);
// message
void fn_vSendMessageDelete (tdeTypeModif eType);
};
/*===========================================================================
* Description: ModifPaste
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifPaste : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
BOOL m_bUpdate;
CPA_List<EDT_ParentByType> m_lstModifByType;
CPA_List<EDT_SaveParents> m_stListObjects;
CPA_List<EDT_SaveParents> m_stListForTools;
BOOL m_bDone;
CString m_csType;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifPaste(EDT_HierarchyEditor *pEditor, CPA_List<EDT_SaveParents> *pListObj,
CString csType, long lNbCopy, BOOL bUpdateDrawing = TRUE);
~EDT_ModifPaste (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
EDT_ParentByType * fn_pstFindParentListFromObj (EDT_SuperObject *pEdObj);
void fn_vFillListForDLLs (EDT_SuperObject *pEdObj);
void fn_vSendMessageCopy (tdeTypeModif eType);
};
/*===========================================================================
* Description: ModifParent
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifParent : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
BOOL m_bUpdate;
CPA_List<EDT_ParentByType> m_lstModifByType;
CPA_List<EDT_SaveParents> m_stListForTools;
CString m_csType;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifParent(EDT_HierarchyEditor *pEditor, CPA_List<EDT_ListByDLL> *pSelectByDLL,
EDT_SuperObject *pParent, CString csType, BOOL bUpdateDrawing = TRUE);
EDT_ModifParent(EDT_HierarchyEditor *pEditor, CPA_List<EDT_SaveParents> *pListModif, CString csType);
~EDT_ModifParent (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vSendMessageParent (tdeTypeModif eType);
EDT_ParentByType * GetOrCreateListByDLL (CPA_ObjectDLLBase *p_oDLL);
};
/*===========================================================================
* Description: ModifMove
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifMove : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
BOOL m_bUpdate;
CPA_List<EDT_PosByType> m_lstModifByType;
EDT_PosByType m_stListForTools;
EDT_ModifParent *m_pModifParent;
CString m_csType;
public:
// paent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifMove(EDT_HierarchyEditor *pEditor, CPA_List<EDT_ListByDLL> *pSelectByDLL,
CString csType, BOOL bUpdateDrawing = TRUE);
~EDT_ModifMove (void);
// actions
BOOL Do (void);
BOOL Undo (void);
BOOL Cancel (void);
// functions
void fn_vSendMessageMove (tdeTypeModif eType);
void fn_vInitListModif (CPA_List<EDT_SaveParents> *pListModif);
void fn_vRegisterPositions (void);
};
/*===========================================================================
* Description: ModifName
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifName : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
CPA_ObjectDLLBase *m_poDLL;
EDT_SuperObject *m_pModifiedObject;
CString m_csInitialName;
CString m_csFinalName;
CString m_csType;
BOOL m_bRenameObject;
BOOL m_bHasObjectName;
public:
// paent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifName(EDT_HierarchyEditor *pEditor, EDT_SuperObject *pModifiedObject, CString csFinalName, BOOL bRenameObject = TRUE);
~EDT_ModifName (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vSendMessageName (tdeTypeModif eType);
};
/*===========================================================================
* Description: ModifState
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifState : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
EDT_SuperObject *m_pModifiedObject;
CString m_csTypeModif;
BOOL m_bInitialState;
GEO_tdxHandleToMatrix m_hInitialMatrix;
GEO_tdxHandleToMatrix m_hFinalMatrix;
EDT_SuperObject *m_pInitialParent;
EDT_SuperObject *m_pFinalParent;
CString m_csInitialName;
CString m_csFinalName;
CPA_List<EDT_ParentByType> m_lstParentByType;
CPA_List<EDT_SaveParents> m_stParentForTools;
CPA_List<EDT_PosByType> m_lstPosByType;
EDT_PosByType m_stPosForTools;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifState(EDT_HierarchyEditor *pEditor, EDT_SuperObject *pModifiedObject,
CString csTypeModif, BOOL bInitialState);
~EDT_ModifState (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vInsertInHierarchy (void);
void fn_vRemoveFromHierarchy (void);
EDT_ParentByType * fn_pstFindParentListFromObj (EDT_SuperObject *pEdObj);
void fn_vFillListForDelete (EDT_SuperObject *pEdObj, EDT_SuperObject *pInitialFather, EDT_SuperObject *pFinalFather);
EDT_PosByType * fn_pstFindPosListFromObj (EDT_SuperObject *pEdObj);
void fn_vFillListForMove (EDT_SuperObject *pEdObj);
void fn_vRegisterPositions (void);
void fn_vSendMessageCreate (tdeTypeModif eType);
void fn_vSendMessageDelete (tdeTypeModif eType);
void fn_vSendMessageParent (tdeTypeModif eType);
void fn_vSendMessageMove (tdeTypeModif eType);
void fn_vSendMessageName (tdeTypeModif eType);
};
/*===========================================================================
* Description: ModifState
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_ModifValidate : public CPA_Modif
{
private:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bFirstTime;
EDT_ModifState *m_pModifState;
EDT_SuperObject *m_pModifiedObject;
EDT_TempModif *m_pTempModif;
CString m_csTypeModif;
BOOL m_bInitialState;
BOOL m_bCreated;
BOOL m_bDeleted;
CString m_csOriginalName;
EDT_SuperObject * m_pOriginalFather;
GEO_tdxHandleToMatrix m_hOriginalPosition;
public:
// parent editor
EDT_HierarchyEditor * GetParentEditor (void) { return m_pEditor; }
CPA_Interface * GetInterface (void);
// creation
EDT_ModifValidate (EDT_HierarchyEditor *pEditor, EDT_SuperObject *pModifiedObject,
CString csTypeModif, BOOL bInitialState);
~EDT_ModifValidate (void);
// actions
BOOL Do (void);
BOOL Undo (void);
};
#endif // __EDTMODIF_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,54 @@
//ParseSection.hpp
#ifndef _PARSESECTION
#define _PARSESECTION
const char cBeginBracket = '{';
const char cEndBracket = '}';
const char cExternalReferencesIndicator = '^';
const char cThisFileReference = '*';
const char cStringDelimitator = '"';
const char cBackslash = '\\';
const char cParameterBeginIndicator = '(';
const char cParameterEndIndicator = ')';
const static char szEditModificationsKW [] = {"Edit-Modifications:"};
const static char szEditGeometricModificationsKW [] = {"Edit-Geometric-Modifications:"};
class CParseSection
{
private:
CString m_csFinalMDFFileName;
CStringList m_lstOfRoots;
CStringList m_lstOfInitialMDFSections;
CStringList m_lstOfInitialUnchangeableMDFSections;
CStringList m_lstOfIncludedExternalReferences;
protected:
int CopySection (CString csFileName, CString csSectionName, BOOL bCopyAsItIs = FALSE);
int CopySectionWithAnalyze (CString csFileName, CString csSectionName)
{
return CopySection (csFileName, csSectionName, FALSE);
}
int CopySectionAsItIs (CString csFileName, CString csSectionName)
{
return CopySection (csFileName, csSectionName, TRUE);
}
int ReadSection (CString csFileName, CString csSectionName, CStringList &rSection);
int AnalyseSection (CString csFileName, CStringList &rSection);
int WriteSection (CStringList &rSection);
int FillListOfInitialMDFSections (CString csInitialMDFFileName);
CString ComputeAbsoluteFileName (CString csFileName);
int IsFileNameAbsolute (CString csFileName);
int CreateTheFinalMDFFile ();
int IsSectionIncluded (CString csSectionName);
CString RemoveParameters (CString csRedSectionName);
public:
CParseSection (CString csFinalMDFFileName = "");
int ParseFile (CString csInitialMDFFileName, CString csFinalMDFFileName = "");
void AddRoot (CString csRoot);
};
#endif //_PARSESECTION

View File

@@ -0,0 +1,23 @@
//ROMTEAM StickObjects (Nicolae Suparatu 10/02/98)
// Get the transform parameters (rotation + translation) in order to move one
// triangle over another one, if they are congruent
// Author: Nicolae Suparatu
#define eps 1e-4
typedef float Matrix[3][3];
typedef float Vector[3];
// dst = destination triangle (on lines)
// src = source triangle (on lines)
// r = resulting rotation matrix
// t = resulting translation matrix
int GetTransform(Matrix &dst, Matrix &src, Matrix &r, Vector &t);
void Convert(Matrix &r, Vector &t, Matrix &mo, Vector &vo);
float sqr(float f);
//ENDROMTEAM StickObjects (Nicolae Suparatu)

View File

@@ -0,0 +1,229 @@
/*=========================================================================
*
* EDTsobj.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTSOBJ_HPP__
#define __EDTSOBJ_HPP__
#include "stdafx.h"
#include <afxtempl.h>
#pragma warning(disable:4786)
#define HieFriend
#include "incSPO.h"
#undef HieFriend
#include "itf/CPASObj.hpp"
#include "SCR.h"
class EDT_HierarchyEditor;
class EDT_TempModif;
//**************************************
#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
//**************************************
//=====================================================================
// type name for super objects (constant)
#define C_szSuperObjectTypeName "SuperObject"
//=====================================================================
/*===========================================================================
* Description: class EDT_SuperObject
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_SuperObject : public CPA_SuperObject
{
private:
// matrix
CPA_SectionObject *m_pMatrixSection;
// temporary modification
EDT_TempModif *m_pTempModif;
//CPA2 Stegaru Cristian 98-02
CString m_csModifSectionName;
CString m_csInitialSPOName;
//End CPA2 Stegaru Cristian 98-02
public:
//================ Constructors ===========================
EDT_SuperObject (EDT_HierarchyEditor *pEditor,
HIE_tdxHandleToSuperObject hEngineSO,
tdeSaveStatus eStatus,
tdeTypeSO eTypeSO = C_NoType,
CString csName = "",
CString csFileName = ""
);
EDT_SuperObject (EDT_HierarchyEditor *pEditor,
tdeSaveStatus eStatus,
tdeTypeSO eTypeSO ,
CString csName = "",
CString csFileName = ""
);
EDT_SuperObject (EDT_SuperObject &r_oSource);
~EDT_SuperObject (void);
//ANNECY CO SPOFLAG 03/02/98
//================ Flag ===========================
unsigned long GetFlags (void);
void SetFlags (unsigned long ulFlags);
//ANNECY CO SPOFLAG
//ANNECY CO SPOFLAG 05/02/98
BOOL fn_bIsEditProtected (void);
//ENDANNECY CO SPOFLAG
//ANNECY Shaitan Transparency 26/03/98 {
//================ Transparency ===========================
float fn_fGetTransparencyLevel (void);
void fn_vSetTransparencyLevel (float fNewLevel);
//ENDANNECY Shaitan Transparency }
//================ Engine Struct ===========================
void SetEngineStruct (HIE_tdxHandleToSuperObject hEngineSO);
HIE_tdxHandleToSuperObject GetEngineStruct (void) { return GetStruct(); }
//================ Editor ===========================
EDT_HierarchyEditor * GetSuperObjectEditor (void) { return (EDT_HierarchyEditor *) CPA_SuperObject::GetEditor(); }
//================ Section Object ===========================
void fn_vInitSectionName (const CString csEngineFileName);
void fn_vUpdateSectionName (void);
//================ Matrix Section ===========================
CPA_SectionObject * GetMatrixSection (void) { return m_pMatrixSection; }
CString GetMatrixSectionName (void);
//================ Dialogs ===========================
CString GetNameToDraw (void);
CString GetTypeToDraw (void);
CString GetOwnerToDraw (void);
//================ Object & DLL ===========================
void MyObjectIsAlsoACopy (EDT_SuperObject *p_oSource);
//================ Name & Name to draw ===========================
void SetNameForCopy (EDT_SuperObject *pDesc);
void SetNameForPaste (EDT_SuperObject *pDesc);
CString GetOwnerName (void);
CString GetLevelName (void);
//================ Modifications ===========================
// moves
void fn_vTranslate (MTH3D_tdstVector *p_stVector, BOOL bAbsolute);
void fn_vRotate (POS_tdstCompletePosition *p_stMatrix);
void fn_vSetPosition (POS_tdstCompletePosition *pRefMatrix);
// parent
void fn_vInsertUnderParent (EDT_SuperObject *pEdParent, EDT_SuperObject *pBrother = NULL, BOOL bUpdatePos = FALSE, POS_tdstCompletePosition *pRefMatrix = NULL);
BOOL fn_bAcceptAsParent (EDT_SuperObject *pEdObj);
BOOL fn_bAcceptAsChild (EDT_SuperObject *pEdObj);
// protected childs
void fn_vRemoveNonProtectedChilds (void);
//================ Temporary Modifications ===========================
EDT_TempModif * GetTemporaryModif (void) { return m_pTempModif; }
CString GetTempModifSectionName (void);
//CPA2 Stegaru Cristian 98-02
void mfn_vSetTempModifSectionName (CString csModifSectionName) { m_csModifSectionName = csModifSectionName;}
void mfn_vSetInitialSPOName (CString csInitialSPOName) { m_csInitialSPOName = csInitialSPOName;}
CString mfn_csGetInitialSPOName () { return m_csInitialSPOName;}
//End CPA2 Stegaru Cristian 98-02
BOOL fn_bIsTemporary (void) { return (m_pTempModif != NULL); }
void SetTemporaryModif (EDT_TempModif *pTempSO);
BOOL fn_bInitTemporarySO (void);
void fn_vUpdateTemporaryModif (CString csTypeModif, BOOL bAddModif);
void fn_vSetOnState (const CString csModificationType, BOOL bOnInitialState);
void fn_vValidateState (const CString csModificationType, BOOL bInitialState);
BOOL fn_bCanBeValidated (void);
//================ Notify ===========================
void fn_vNotifySave (void);
void fn_vNotifyUnSave (void);
void fn_vNotifyRestore (void);
void fn_vNotifyRename (void);
BOOL fn_bCanBeNotified (void);
tdeMissingCriteria fn_eCheckValidity (const CString csNewName);
void fn_vUpdateReference (CPA_SaveObject *pReferencedObject);
CString fn_csComputeReferencedSectionName (const CString csNewName) ;
//================ Scripts ===========================
void fn_vSaveMatrix (SCR_tdst_File_Description *p_stFile, GEO_tdxHandleToMatrix hMatrix, CString csMatrixName);
static void CallBackSave (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
static void CallBackSaveMatrix (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
// load
static SCR_tde_Anl_ReturnValue CallBackLoadModif (SCR_tdst_File_Description *p_fFile, char *szName, char *szParams[], SCR_tde_Anl_Action eAction);
//================ Display ===========================
void SetDrawingFlag (tdeDrawingFlag eNewFlag);
//================ Matrix ===========================
BOOL fn_bHasSamePosition (GEO_tdxHandleToMatrix hInitialMatrix, GEO_tdxHandleToMatrix hFinalMatrix);
// Begin Silviu Simen 18 August 1998 Cut/Paste Mechanism
void fn_vSetOnlyPosition (MTH3D_tdstVector *pTransMatrix);
// End Silviu Simen 18 August 1998 Cut/Paste Mechanism
};
#endif //__EDTSOBJ_HPP__
#endif //ACTIVE_EDITOR

View File

@@ -0,0 +1,121 @@
/*=========================================================================
*
* EDTSpec.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDTSPEC_HPP__
#define __EDTSPEC_HPP__
//**************************************
#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
//**************************************
#include "itf/CPAEnum.hpp"
#include "itf/CPAListB.hpp"
class EDT_HierarchyEditor;
class EDT_SuperObject;
class EDT_SubMenu;
/*===========================================================================
* Description: Class EDT_Specific
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_SpecificEditor
{
protected:
EDT_HierarchyEditor *m_pEditor;
BOOL m_bIsLoadingWorld;
CString m_csStaticFileName;
CString m_csDynamicFileName;
public:
EDT_SpecificEditor (EDT_HierarchyEditor *pEditor);
~EDT_SpecificEditor (void);
EDT_HierarchyEditor * GetEditor (void) { return m_pEditor; }
CString GetStaticFileName (void) { return m_csStaticFileName; }
CString GetDynamicFileName (void) { return m_csDynamicFileName; }
CString GetModifSectionName (void);
void fn_vSpecificInit (void);
/*===========================================================================
General
=========================================================================*/
public:
// submenu
long fn_lDefineSubmenu (EDT_SubMenu *p_oSubMenu, UINT uiStartID);
void fn_vOnSubmenuCommand (UINT uiCmdMsg);
// parent
//ANNECY Shaitan EmptySectors 25/02/98
// EDT_SuperObject * GetDefaultParentFromPos (tdstPosition *p_stPosition, tdeTypeSO eTypeInsert);
//ENDANNECY Shaitan EmptySectors
EDT_SuperObject * GetDefaultParentForPaste (EDT_SuperObject *pEdObj);
// permissions
BOOL fn_bCanBeParent (EDT_SuperObject *pNewParent, CPA_List<CPA_SuperObject> *pChilds);
BOOL fn_bCanBeParent (EDT_SuperObject *pNewParent, EDT_SuperObject *pChild);
long fn_lCanMoveObjects (CPA_List<CPA_SuperObject> *pObjectsToMove);
// type SO
BOOL fn_bCanChangeTypeSO (EDT_SuperObject *pEdObj, tdeTypeSO eType);
void fn_vInitTypeSO (EDT_SuperObject *pEdObj, EDT_SuperObject *pParent);
// load
EDT_SuperObject * fn_pInitEditorMap (HIE_tdxHandleToSuperObject hRoot);
/*===========================================================================
Specific
=========================================================================*/
public:
//ANNECY Shaitan EmptySectors 25/02/98
// void fn_vInitSectorsParameters (EDT_SuperObject *pSRoot);
//ENDANNECY Shaitan EmptySectors
// permissions
BOOL fn_bCheckParentAndType (EDT_SuperObject *pEdObj, EDT_SuperObject *pParent);
BOOL fn_bCheckSectorMove (EDT_SuperObject *pEdObj, long *p_lNbBreak, BOOL bSelected);
//ANNECY Shaitan EmptySectors 25/02/98
BOOL fn_bCheckSaveStatus (tdeSaveStatus eStatus, EDT_SuperObject *pParent);
//ENDANNECY Shaitan EmptySectors
// super-object type
tdeTypeSO GetTypeFromFile (CString csFileName);
BOOL fn_bIsValidType (tdeTypeSO eTypeSO);
};
#endif // __EDTSPEC_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,204 @@
/*=========================================================================
*
* EDTTemp.hpp - List of Temporary Modifs - definition
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __EDT_TEMP_HPP__
#define __EDT_TEMP_HPP__
//**************************************
#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
//**************************************
#include "itf/CPASectO.hpp"
#include "incPOS.h"
#include "SCR.h"
class EDT_HierarchyEditor;
class EDT_SuperObject;
// modifications
#define C_szCreation "Creation"
#define C_szSuppression "Suppression"
#define C_szChangeFather "Father"
#define C_szChangePosition "Position"
#define C_szChangeName "Name"
#define C_lNbTypeModifs 5
static CString g_a_csTypeModifs [] =
{
C_szCreation,
C_szSuppression,
C_szChangeFather,
C_szChangePosition,
C_szChangeName
};
typedef enum tdeTempModif_
{
E_tm_SaveTemp,
E_tm_DeleteTemp
}
tdeTempModif;
/*===========================================================================
* Description: class EDT_TemporarySO
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_TempModif : public CPA_SectionObject
{
private:
// original super-object
EDT_SuperObject * m_pOriginalSO;
// matrix
CPA_SectionObject * m_pMatrixSection;
// changes
BOOL m_bCreated;
BOOL m_bDeleted;
// name
CString m_csFinalName;
// father
EDT_SuperObject * m_pFinalFather;
// position
GEO_tdxHandleToMatrix m_hFinalPosition;
// loaded modification
BOOL m_bLoaded;
//CPA2 Stegaru Cristian 98-02
CString m_csOriginalSOName,
m_csInitialSPOName;
BOOL m_bNameChanged,
m_bFatherChanged,
m_bPositionChanged;
//End CPA2 Stegaru Cristian 98-02
public:
// constructors
//CPA2 Stegaru Cristian 98-02
EDT_TempModif (EDT_SuperObject *pOriginalSO, BOOL bLoaded, CString csModifSectionName = "", CString csOriginalSOName = "");
//End CPA2 Stegaru Cristian 98-02
~EDT_TempModif (void);
// original object
EDT_SuperObject * GetOriginalSO (void) { return m_pOriginalSO; }
// matrix
CString GetMatrixSectionName (void);
CPA_SectionObject * GetMatrixSection (void) { return m_pMatrixSection; }
// load
BOOL fn_bWasLoaded (void) { return m_bLoaded; }
// get functions
BOOL fn_bWasCreated (void) { return m_bCreated; }
BOOL fn_bWasDeleted (void) { return m_bDeleted; }
CString GetFinalName (void) { return m_csFinalName; }
EDT_SuperObject * GetFinalFather (void) { return m_pFinalFather; }
GEO_tdxHandleToMatrix GetFinalPosition (void) { return m_hFinalPosition; }
// set functions
void SetCreated (BOOL bCreated);
void SetDeleted (BOOL bDeleted);
//CPA2 Stegaru Cristian 98-02
void SetFinalPosition (GEO_tdxHandleToMatrix hNewPosition);
void SetFinalFather (EDT_SuperObject *pNewFather);
void SetFinalName (CString csNewName);
CString mfn_csGetOriginalSOName () { return m_csOriginalSOName;}
void mfn_vSetOriginalSOName (CString csOriginalSOName) { m_csOriginalSOName = csOriginalSOName;}
BOOL mfn_bValidModif ()
{
BOOL bRet = FALSE;
if (m_bLoaded || //modif from a previous session
(!m_bLoaded && m_bCreated)) //inserted
bRet = TRUE;
return bRet;
}
CString mfn_csGetInitialSPOName ()
{
return m_csInitialSPOName;
/* CString csInitialSPOName;
if (m_pOriginalSO)
csInitialSPOName = m_pOriginalSO->mfn_csGetInitialSPOName ();
return csInitialSPOName;
*/ }
void mfn_vSetInitialSPOName (CString csInitialSPOName)
{
m_csInitialSPOName = csInitialSPOName;
}
//End CPA2 Stegaru Cristian 98-02
// modification functions
void fn_vUpdateModification (CString csTypeModif, BOOL bAddModif = TRUE);
void fn_vCancelModification (CString csTypeModif);
BOOL fn_bIsModified (CString csTypeModif);
// save
void fn_vNotifySave (void);
void fn_vNotifyUnsave (void);
void fn_vNotifyRename (void);
static void CallBackSaveModif (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
static void CallBackSaveMatrix (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
/*===========================================================================
* Description: Class EDT_TempList
* Creation date:
* Author: Shaitan
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class EDT_TempList : public CPA_SectionObject
{
private:
CPA_List<EDT_TempModif> m_oListOfTempModif;
EDT_HierarchyEditor *m_pEditor;
public:
EDT_TempList (EDT_HierarchyEditor *pEditor, BOOL bLoaded);
~EDT_TempList (void);
CPA_List<EDT_TempModif> * GetListOfTemporaryModifs (void) { return &m_oListOfTempModif; }
EDT_HierarchyEditor * GetEditor (void) { return m_pEditor; }
void fn_vAddTemporaryModif (EDT_TempModif *pModif, BOOL bNotify = TRUE);
void fn_vRemoveTemporaryModif (EDT_TempModif *pModif);
void fn_vChangeTemporaryModif (EDT_TempModif *pModif);
void fn_vRemoveAllTemporaryModifs (void);
static void CallBackSaveListModif (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
#endif // __EDT_TEMP_HPP__
#endif // ACTIVE_EDITOR

View File

@@ -0,0 +1,54 @@
//ParseSection.hpp
#ifndef _PARSESECTION
#define _PARSESECTION
const char cBeginBracket = '{';
const char cEndBracket = '}';
const char cExternalReferencesIndicator = '^';
const char cThisFileReference = '*';
const char cStringDelimitator = '"';
const char cBackslash = '\\';
const char cParameterBeginIndicator = '(';
const char cParameterEndIndicator = ')';
const static char szEditModificationsKW [] = {"Edit-Modifications:"};
const static char szEditGeometricModificationsKW [] = {"Edit-Geometric-Modifications:"};
class CParseSection
{
private:
CString m_csFinalMDFFileName;
CStringList m_lstOfRoots;
CStringList m_lstOfInitialMDFSections;
CStringList m_lstOfInitialUnchangeableMDFSections;
CStringList m_lstOfIncludedExternalReferences;
protected:
int CopySection (CString csFileName, CString csSectionName, BOOL bCopyAsItIs = FALSE);
int CopySectionWithAnalyze (CString csFileName, CString csSectionName)
{
return CopySection (csFileName, csSectionName, FALSE);
}
int CopySectionAsItIs (CString csFileName, CString csSectionName)
{
return CopySection (csFileName, csSectionName, TRUE);
}
int ReadSection (CString csFileName, CString csSectionName, CStringList &rSection);
int AnalyseSection (CString csFileName, CStringList &rSection);
int WriteSection (CStringList &rSection);
int FillListOfInitialMDFSections (CString csInitialMDFFileName);
CString ComputeAbsoluteFileName (CString csFileName);
int IsFileNameAbsolute (CString csFileName);
int CreateTheFinalMDFFile ();
int IsSectionIncluded (CString csSectionName);
CString RemoveParameters (CString csRedSectionName);
public:
CParseSection (CString csFinalMDFFileName = "");
int ParseFile (CString csInitialMDFFileName, CString csFinalMDFFileName = "");
void AddRoot (CString csRoot);
};
#endif //_PARSESECTION