123
This commit is contained in:
75
Editor/Include/IDataBaseItem.h
Normal file
75
Editor/Include/IDataBaseItem.h
Normal file
@@ -0,0 +1,75 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IDataBaseItem.h
|
||||
// Version: v1.00
|
||||
// Created: 3/5/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IDataBaseItem_h__
|
||||
#define __IDataBaseItem_h__
|
||||
#pragma once
|
||||
|
||||
|
||||
struct IDataBaseLibrary;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/** Base class for all items contained in BaseLibraray.
|
||||
*/
|
||||
struct IDataBaseItem
|
||||
{
|
||||
struct SerializeContext
|
||||
{
|
||||
XmlNodeRef node;
|
||||
bool bLoading;
|
||||
bool bCopyPaste;
|
||||
bool bIgnoreChilds;
|
||||
bool bUniqName;
|
||||
SerializeContext() : node(0),bLoading(false),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
|
||||
SerializeContext( XmlNodeRef _node,bool bLoad ) : node(_node),bLoading(bLoad),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
|
||||
SerializeContext( const SerializeContext &ctx ) : node(ctx.node),bLoading(ctx.bLoading),
|
||||
bCopyPaste(ctx.bCopyPaste),bIgnoreChilds(ctx.bIgnoreChilds),bUniqName(ctx.bUniqName) {};
|
||||
};
|
||||
|
||||
//! Return Library this item are contained in.
|
||||
//! Item can only be at one library.
|
||||
virtual IDataBaseLibrary* GetLibrary() const = 0;
|
||||
|
||||
//! Change item name.
|
||||
virtual void SetName( const CString &name ) = 0;
|
||||
//! Get item name.
|
||||
virtual const CString& GetName() const = 0;
|
||||
|
||||
//! Get full item name, including name of library.
|
||||
//! Name formed by adding dot after name of library
|
||||
//! eg. library Pickup and item PickupRL form full item name: "Pickups.PickupRL".
|
||||
virtual CString GetFullName() const = 0;
|
||||
|
||||
//! Get only nameof group from prototype.
|
||||
virtual CString GetGroupName() = 0;
|
||||
//! Get short name of prototype without group.
|
||||
virtual CString GetShortName() = 0;
|
||||
|
||||
//! Serialize library item to archive.
|
||||
virtual void Serialize( SerializeContext &ctx ) = 0;
|
||||
|
||||
//! Generate new unique id for this item.
|
||||
virtual void GenerateId() = 0;
|
||||
//! Returns GUID of this material.
|
||||
virtual REFGUID GetGUID() const = 0;
|
||||
|
||||
//! Validate item for errors.
|
||||
virtual void Validate() {};
|
||||
|
||||
//! Gathers resources by this item.
|
||||
virtual void GatherUsedResources( CUsedResources &resources ) {};
|
||||
};
|
||||
|
||||
#endif // __IDataBaseItem_h__
|
||||
115
Editor/Include/IDataBaseLibrary.h
Normal file
115
Editor/Include/IDataBaseLibrary.h
Normal file
@@ -0,0 +1,115 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IDataBaseLibrary.h
|
||||
// Version: v1.00
|
||||
// Created: 30/4/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IDataBaseLibrary_h__
|
||||
#define __IDataBaseLibrary_h__
|
||||
#pragma once
|
||||
|
||||
|
||||
struct IDataBaseManager;
|
||||
struct IDataBaseItem;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Description:
|
||||
// Interface to access specific library of editor data base.
|
||||
// Ex. Archetype library, Material Library.
|
||||
// See Also:
|
||||
// IDataBaseItem,IDataBaseManager
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct IDataBaseLibrary
|
||||
{
|
||||
// Description:
|
||||
// Return IDataBaseManager interface to the manager for items stored in this library.
|
||||
virtual IDataBaseManager* GetManager() = 0;
|
||||
|
||||
// Description:
|
||||
// Return library name.
|
||||
virtual const CString& GetName() const = 0;
|
||||
|
||||
// Description:
|
||||
// Return filename where this library is stored.
|
||||
virtual const CString& GetFilename() const = 0;
|
||||
|
||||
// Description:
|
||||
// Save contents of library to file.
|
||||
virtual bool Save() = 0;
|
||||
|
||||
// Description:
|
||||
// Load library from file.
|
||||
// Arguments:
|
||||
// filename - Full specified library filename (relative to root game folder).
|
||||
virtual bool Load( const CString &filename ) = 0;
|
||||
|
||||
// Description:
|
||||
// Serialize library parameters and items to/from XML node.
|
||||
virtual void Serialize( XmlNodeRef &node,bool bLoading ) = 0;
|
||||
|
||||
// Description:
|
||||
// Marks library as modified, indicates that some item in library was modified.
|
||||
virtual void SetModified( bool bModified=true ) = 0;
|
||||
|
||||
// Description:
|
||||
// Check if library parameters or any items where modified.
|
||||
// If any item was modified library may need saving before closing editor.
|
||||
virtual bool IsModified() const = 0;
|
||||
|
||||
// Description:
|
||||
// Check if this library is not shared and internal to current level.
|
||||
virtual bool IsLevelLibrary() const = 0;
|
||||
|
||||
// Description:
|
||||
// Make this library accessible only from current Level. (not shared)
|
||||
virtual void SetLevelLibrary( bool bEnable ) = 0;
|
||||
|
||||
// Description:
|
||||
// Associate a new item with the library.
|
||||
// Watch out if item was already in another library.
|
||||
virtual void AddItem( IDataBaseItem* pItem ) = 0;
|
||||
|
||||
// Description:
|
||||
// Return number of items in library.
|
||||
virtual int GetItemCount() const = 0;
|
||||
|
||||
// Description:
|
||||
// Get item by index.
|
||||
// See Also:
|
||||
// GetItemCount
|
||||
// Arguments:
|
||||
// index - Index from 0 to GetItemCount()
|
||||
virtual IDataBaseItem* GetItem( int index ) = 0;
|
||||
|
||||
// Description:
|
||||
// Remove item from library, does not destroy item,
|
||||
// only unliks it from this library, to delete item use IDataBaseManager.
|
||||
// See Also:
|
||||
// AddItem
|
||||
virtual void RemoveItem( IDataBaseItem* item ) = 0;
|
||||
|
||||
// Description:
|
||||
// Remove all items from library, does not destroy items,
|
||||
// only unliks them from this library, to delete item use IDataBaseManager.
|
||||
// See Also:
|
||||
// RemoveItem,AddItem
|
||||
virtual void RemoveAllItems() = 0;
|
||||
|
||||
// Description:
|
||||
// Find item in library by name.
|
||||
// This function usually uses linear search so it is not particularry fast.
|
||||
// See Also:
|
||||
// GetItem
|
||||
virtual IDataBaseItem* FindItem( const CString &name ) = 0;
|
||||
};
|
||||
|
||||
#endif // __IDataBaseLibrary_h__
|
||||
92
Editor/Include/IDataBaseManager.h
Normal file
92
Editor/Include/IDataBaseManager.h
Normal file
@@ -0,0 +1,92 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IDataBaseManager.h
|
||||
// Version: v1.00
|
||||
// Created: 3/5/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IDataBaseManager_h__
|
||||
#define __IDataBaseManager_h__
|
||||
#pragma once
|
||||
|
||||
struct IDataBaseItem;
|
||||
struct IDataBaseLibrary;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Interface to the collection of all items or specific type
|
||||
// in data base libraries.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct IDataBaseManager
|
||||
{
|
||||
//! Clear all libraries.
|
||||
virtual void ClearAll() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Library items.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Make a new item in specified library.
|
||||
virtual IDataBaseItem* CreateItem( IDataBaseLibrary *pLibrary ) = 0;
|
||||
//! Delete item from library and manager.
|
||||
virtual void DeleteItem( IDataBaseItem* pItem ) = 0;
|
||||
|
||||
//! Find Item by its GUID.
|
||||
virtual IDataBaseItem* FindItem( REFGUID guid ) const = 0;
|
||||
virtual IDataBaseItem* FindItemByName( const CString &fullItemName ) = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Libraries.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Add Item library.
|
||||
virtual IDataBaseLibrary* AddLibrary( const CString &library ) = 0;
|
||||
virtual void DeleteLibrary( const CString &library ) = 0;
|
||||
//! Get number of libraries.
|
||||
virtual int GetLibraryCount() const = 0;
|
||||
//! Get Item library by index.
|
||||
virtual IDataBaseLibrary* GetLibrary( int index ) const = 0;
|
||||
|
||||
//! Find Items Library by name.
|
||||
virtual IDataBaseLibrary* FindLibrary( const CString &library ) = 0;
|
||||
|
||||
//! Load Items library.
|
||||
virtual IDataBaseLibrary* LoadLibrary( const CString &filename ) = 0;
|
||||
|
||||
//! Save all modified libraries.
|
||||
virtual void SaveAllLibs() = 0;
|
||||
|
||||
//! Serialize property manager.
|
||||
virtual void Serialize( XmlNodeRef &node,bool bLoading ) = 0;
|
||||
|
||||
//! Export items to game.
|
||||
virtual void Export( XmlNodeRef &node ) {};
|
||||
|
||||
//! Returns unique name base on input name.
|
||||
virtual CString MakeUniqItemName( const CString &name ) = 0;
|
||||
virtual CString MakeFullItemName( IDataBaseLibrary *pLibrary,const CString &group,const CString &itemName ) = 0;
|
||||
|
||||
//! Root node where this library will be saved.
|
||||
virtual CString GetRootNodeName() = 0;
|
||||
//! Path to libraries in this manager.
|
||||
virtual CString GetLibsPath() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Validate library items for errors.
|
||||
virtual void Validate() = 0;
|
||||
|
||||
// Description:
|
||||
// Collects names of all resource files used by managed items.
|
||||
// Arguments:
|
||||
// resources - Structure where all filenames are collected.
|
||||
virtual void GatherUsedResources( CUsedResources &resources ) = 0;
|
||||
};
|
||||
|
||||
#endif // __IDataBaseManager_h__
|
||||
35
Editor/Include/IGizmoManager.h
Normal file
35
Editor/Include/IGizmoManager.h
Normal file
@@ -0,0 +1,35 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IGizmoManager.h
|
||||
// Version: v1.00
|
||||
// Created: 4/5/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IGizmoManager_h__
|
||||
#define __IGizmoManager_h__
|
||||
#pragma once
|
||||
|
||||
class CGizmo;
|
||||
struct DisplayContext;
|
||||
struct HitContext;
|
||||
|
||||
/** GizmoManager manages set of currently active Gizmo objects.
|
||||
*/
|
||||
struct IGizmoManager
|
||||
{
|
||||
virtual void AddGizmo( CGizmo *gizmo ) = 0;
|
||||
virtual void RemoveGizmo( CGizmo *gizmo ) = 0;
|
||||
|
||||
virtual void Display( DisplayContext &dc ) = 0;
|
||||
virtual bool HitTest( HitContext &hc ) = 0;
|
||||
};
|
||||
|
||||
#endif // __IGizmoManager_h__
|
||||
249
Editor/Include/IObjectManager.h
Normal file
249
Editor/Include/IObjectManager.h
Normal file
@@ -0,0 +1,249 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IObjectManager.h
|
||||
// Version: v1.00
|
||||
// Created: 4/5/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IObjectManager_h__
|
||||
#define __IObjectManager_h__
|
||||
#pragma once
|
||||
|
||||
// forward declarations.
|
||||
struct DisplayContext;
|
||||
struct IGizmoManager;
|
||||
class CObjectLayer;
|
||||
struct IAnimNode;
|
||||
class CUsedResources;
|
||||
class CSelectionGroup;
|
||||
class CObjectLayerManager;
|
||||
class CObjectClassDesc;
|
||||
class CObjectArchive;
|
||||
|
||||
#include "ObjectEvent.h"
|
||||
|
||||
enum SerializeFlags
|
||||
{
|
||||
SERIALIZE_ALL = 0,
|
||||
SERIALIZE_ONLY_SHARED = 1,
|
||||
SERIALIZE_ONLY_NOTSHARED = 2,
|
||||
SERIALIZE_IGNORE_EXTERNAL = 4,
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
typedef std::vector<CBaseObject*> CBaseObjectsArray;
|
||||
|
||||
struct IObjectSelectCallback
|
||||
{
|
||||
//! Called when object is selected.
|
||||
//! Return true if selection should proceed, or false to abort object selection.
|
||||
virtual bool OnSelectObject( CBaseObject *obj ) = 0;
|
||||
};
|
||||
|
||||
struct ObjectHitInfo
|
||||
{
|
||||
CViewport *view; //!< Viewport that originates hit testing.
|
||||
CCamera *camera; //!< Camera for hit testing (can be NULL).
|
||||
BBox bounds; //!< World bounds for hit testing (If Camera is NULL).
|
||||
CPoint point2d; //!< 2D point on view that was use to shoot the ray.
|
||||
CBaseObject *object; //!< Object that was hit.
|
||||
int axis; //!< Axis of object that was hit.
|
||||
float distance; //!< Distance to the hit point.
|
||||
bool bIgnoreAxis; //! True if axis collision must be ignored.
|
||||
|
||||
ObjectHitInfo( CViewport *pView,CPoint point )
|
||||
{
|
||||
view = pView;
|
||||
object = 0;
|
||||
axis = 0;
|
||||
point2d = point;
|
||||
distance = 0;
|
||||
camera = NULL;
|
||||
bounds.min=Vec3d(-10000,-10000,-10000);
|
||||
bounds.max=Vec3d(10000,10000,10000);
|
||||
bIgnoreAxis = false;
|
||||
}
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Interface to access editor objects scene graph.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
struct IObjectManager
|
||||
{
|
||||
public:
|
||||
//! This callback will be called on response to object event.
|
||||
typedef Functor2<CBaseObject*,int> EventCallback;
|
||||
|
||||
virtual CBaseObject* NewObject( CObjectClassDesc *cls,CBaseObject *prev=0,const CString &file="" ) = 0;
|
||||
virtual CBaseObject* NewObject( const CString &typeName,CBaseObject *prev=0,const CString &file="" ) = 0;
|
||||
virtual CBaseObject* NewObject( CObjectArchive &archive,CBaseObject *pUndoObject=0,bool bMakeNewId=false ) = 0;
|
||||
|
||||
virtual void DeleteObject( CBaseObject *obj ) = 0;
|
||||
virtual void DeleteAllObjects() = 0;
|
||||
virtual CBaseObject* CloneObject( CBaseObject *obj ) = 0;
|
||||
|
||||
virtual void BeginEditParams( CBaseObject *obj,int flags ) = 0;
|
||||
virtual void EndEditParams( int flags=0 ) = 0;
|
||||
|
||||
//! Get number of objects manager by ObjectManager, (not contain sub objects of groups).
|
||||
virtual int GetObjectCount() const = 0;
|
||||
|
||||
//! Get array of objects, managed by manager, (not contain sub objects of groups).
|
||||
//! @param layer if 0 get objects for all layers, or layer to get objects from.
|
||||
virtual void GetObjects( CBaseObjectsArray &objects,CObjectLayer *layer=0 ) = 0;
|
||||
|
||||
//! Display objects on specified display context.
|
||||
virtual void Display( DisplayContext &dc ) = 0;
|
||||
|
||||
//! Check intersection with objects.
|
||||
//! Find intersection with nearest to ray origin object hit by ray.
|
||||
//! If distance tollerance is specified certain relaxation applied on collision test.
|
||||
//! @return true if hit any object, and fills hitInfo structure.
|
||||
virtual bool HitTest( Vec3 &raySrc,Vec3 &rayDir,float distanceTollerance,ObjectHitInfo &hitInfo ) = 0;
|
||||
|
||||
//! Send event to all objects.
|
||||
//! Will cause OnEvent handler to be called on all objects.
|
||||
virtual void SendEvent( ObjectEvent event ) = 0;
|
||||
|
||||
//! Send event to all objects within givven bounding box.
|
||||
//! Will cause OnEvent handler to be called on objects withing bounding box.
|
||||
virtual void SendEvent( ObjectEvent event,const BBox &bounds ) = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Find object by ID.
|
||||
virtual CBaseObject* FindObject( REFGUID guid ) const = 0;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Find object by name.
|
||||
virtual CBaseObject* FindObject( const CString &sName ) const = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Find BaseObject who is owner of specified animation node.
|
||||
virtual CBaseObject* FindAnimNodeOwner( IAnimNode* node ) const = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Operations on objects.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Makes object visible or invisible.
|
||||
virtual void HideObject( CBaseObject *obj,bool hide ) = 0;
|
||||
//! Freeze object, making it unselectable.
|
||||
virtual void FreezeObject( CBaseObject *obj,bool freeze ) = 0;
|
||||
//! Unhide all hidden objects.
|
||||
virtual void UnhideAll() = 0;
|
||||
//! Unfreeze all frozen objects.
|
||||
virtual void UnfreezeAll() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Object Selection.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual bool SelectObject( CBaseObject *obj ) = 0;
|
||||
virtual void UnselectObject( CBaseObject *obj ) = 0;
|
||||
|
||||
//! Select objects withing specified distance from givven position.
|
||||
//! Return number of selected objects.
|
||||
virtual int SelectObjects( const BBox &box,bool bUnselect=false ) = 0;
|
||||
|
||||
//! Selects/Unselects all objects within 2d rectangle in given viewport.
|
||||
virtual void SelectObjectsInRect( CViewport *view,const CRect &rect,bool bSelect ) = 0;
|
||||
|
||||
//! Clear default selection set.
|
||||
//! @Return number of objects removed from selection.
|
||||
virtual int ClearSelection() = 0;
|
||||
|
||||
//! Deselect all current selected objects and selects object that were unselected.
|
||||
//! @Return number of selected objects.
|
||||
virtual int InvertSelection() = 0;
|
||||
|
||||
//! Get current selection.
|
||||
virtual CSelectionGroup* GetSelection() const = 0;
|
||||
//! Get named selection.
|
||||
virtual CSelectionGroup* GetSelection( const CString &name ) const = 0;
|
||||
//! Change name of current selection group.
|
||||
//! And store it in list.
|
||||
virtual void NameSelection( const CString &name ) = 0;
|
||||
//! Set one of name selections as current selection.
|
||||
virtual void SetSelection( const CString &name ) = 0;
|
||||
//! Removes one of named selections.
|
||||
virtual void RemoveSelection( const CString &name ) = 0;
|
||||
|
||||
//! Delete all objects in current selection group.
|
||||
virtual void DeleteSelection() = 0;
|
||||
|
||||
//! Generates uniq name base on type name of object.
|
||||
virtual CString GenUniqObjectName( const CString &typeName ) = 0;
|
||||
//! Register object name in object manager, needed for generating uniq names.
|
||||
virtual void RegisterObjectName( const CString &name ) = 0;
|
||||
//! Enable/Disable generating of unique object names (Enabled by default).
|
||||
//! Return previous value.
|
||||
virtual bool EnableUniqObjectNames( bool bEnable ) = 0;
|
||||
|
||||
//! Find object class by name.
|
||||
virtual CObjectClassDesc* FindClass( const CString &className ) = 0;
|
||||
virtual void GetClassCategories( std::vector<CString> &categories ) = 0;
|
||||
virtual void GetClassTypes( const CString &category,std::vector<CString> &types ) = 0;
|
||||
|
||||
//! Export objects to xml.
|
||||
//! When onlyShared is true ony objects with shared flags exported, overwise only not shared object exported.
|
||||
virtual void Export( const CString &levelPath,XmlNodeRef &rootNode,bool onlyShared ) = 0;
|
||||
|
||||
//! Serialize Objects in manager to specified XML Node.
|
||||
//! @param flags Can be one of SerializeFlags.
|
||||
virtual void Serialize( XmlNodeRef &rootNode,bool bLoading,int flags=SERIALIZE_ALL ) = 0;
|
||||
|
||||
//! Load objects from object archive.
|
||||
//! @param bSelect if set newly loaded object will be selected.
|
||||
virtual void LoadObjects( CObjectArchive &ar,bool bSelect ) = 0;
|
||||
|
||||
virtual void ChangeObjectId( CBaseObject *obj,int newId ) = 0;
|
||||
virtual void ChangeObjectName( CBaseObject *obj,const CString &newName ) = 0;
|
||||
|
||||
//! Convert object of one type to object of another type.
|
||||
//! Original object is deleted.
|
||||
virtual bool ConvertToType( CBaseObject *object,ObjectType objectType ) = 0;
|
||||
|
||||
//! Set new selection callback.
|
||||
//! @return previous selection callback.
|
||||
virtual IObjectSelectCallback* SetSelectCallback( IObjectSelectCallback* callback ) = 0;
|
||||
|
||||
// Enables/Disables creating of game objects.
|
||||
virtual void SetCreateGameObject( bool enable ) = 0;
|
||||
//! Return true if objects loaded from xml should immidiatly create game objects associated with them.
|
||||
virtual bool IsCreateGameObjects() const = 0;
|
||||
|
||||
virtual IGizmoManager* GetGizmoManager() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Get acess to object layers manager.
|
||||
virtual CObjectLayerManager* GetLayersManager() const = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Invalidate visibily settings of objects.
|
||||
virtual void InvalidateVisibleList() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// ObjectManager notification Callbacks.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void AddObjectEventListener( const EventCallback &cb ) = 0;
|
||||
virtual void RemoveObjectEventListener( const EventCallback &cb ) = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Used to indicate starting and ending of objects loading.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void StartObjectsLoading( int numObjects ) = 0;
|
||||
virtual void EndObjectsLoading() = 0;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Gathers all resources used by all objects.
|
||||
virtual void GatherUsedResources( CUsedResources &resources ) = 0;
|
||||
};
|
||||
|
||||
#endif // __IObjectManager_h__
|
||||
105
Editor/Include/IPreferencesPage.h
Normal file
105
Editor/Include/IPreferencesPage.h
Normal file
@@ -0,0 +1,105 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IPreferencesPage.h
|
||||
// Version: v1.00
|
||||
// Created: 28/10/2003 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IPreferencesPage_h__
|
||||
#define __IPreferencesPage_h__
|
||||
#pragma once
|
||||
|
||||
#include "Plugin.h"
|
||||
/*
|
||||
* IPreferencePage is the interface class for preferences pages.
|
||||
*/
|
||||
struct IPreferencesPage
|
||||
{
|
||||
virtual void Release() = 0;
|
||||
|
||||
//! Return category where this preferences page belongs.
|
||||
virtual const char* GetCategory() = 0;
|
||||
|
||||
//! Title of this preferences page.
|
||||
virtual const char* GetTitle() = 0;
|
||||
|
||||
//! Returns Page window.
|
||||
virtual CWnd* GetWindow() = 0;
|
||||
|
||||
//! Called by the editor when the Apply Now button is clicked.
|
||||
virtual void OnApply() = 0;
|
||||
|
||||
//! Called by the editor when the Cancel button is clicked.
|
||||
virtual void OnCancel() = 0;
|
||||
|
||||
//! Called by the editor when the Cancel button is clicked, and before the cancel has taken place.
|
||||
//! @return true to perform Cancel operation, false to abort Cancel.
|
||||
virtual bool OnQueryCancel() = 0;
|
||||
|
||||
//! Called by the editor when the preferences page is made the active page or is not longer the active page.
|
||||
//! @param bActive true when page become active, false when page deactivated.
|
||||
virtual void OnSetActive( bool bActive ) = 0;
|
||||
|
||||
//! Called by the editor when the OK, Apply Now, or Close button is clicked.
|
||||
virtual void OnOK() = 0;
|
||||
|
||||
//! Access to variable block for this preferences page.
|
||||
virtual CVarBlock* GetVars() = 0;
|
||||
};
|
||||
|
||||
/*! Interface used to create new preferences pages.
|
||||
You can query this interface from any IClassDesc interface with ESYSTEM_CLASS_PREFERENCE_PAGE system class Id.
|
||||
*/
|
||||
struct __declspec( uuid("{D494113C-BF13-4171-9171-0333DF10EAFC}") ) IPreferencesPageCreator
|
||||
{
|
||||
//! Get number of preferences page hosted by this class.
|
||||
virtual int GetPagesCount() = 0;
|
||||
//! Creates a new preferences page by page index.
|
||||
//! @param index must be within 0 <= index < GetPagesCount().
|
||||
virtual IPreferencesPage* CreatePage( int index,const CRect &rc,CWnd *pParentWnd ) = 0;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* IPreferencesPageClassDesc is a plugin class description for all IPreferencesPage derived classes.
|
||||
*/
|
||||
struct IPreferencesPageClassDesc : public IClassDesc
|
||||
{
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// IClassDesc implementation.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual ESystemClassID SystemClassID() { return ESYSTEM_CLASS_PREFERENCE_PAGE; };
|
||||
|
||||
//! This method returns the human readable name of the class.
|
||||
virtual const char* ClassName() { return "Preferences Page"; };
|
||||
|
||||
//! This method returns Category of this class, Category is specifing where this plugin class fits best in
|
||||
//! create panel.
|
||||
virtual const char* Category() { return "Preferences"; };
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//! Show a modal about dialog / message box for the plugin.
|
||||
virtual void ShowAbout() {};
|
||||
|
||||
virtual bool CanExitNow() { return true; };
|
||||
|
||||
//! The plugin should write / read its data to the passed stream. The data is saved to or loaded
|
||||
//! from the editor project file. This function is called during the usual save / load process of
|
||||
//! the editor's project file
|
||||
virtual void Serialize( CXmlArchive &ar ) {};
|
||||
|
||||
//! Editor can send to class various events.
|
||||
virtual void Event( EClassEvent event ) {};
|
||||
|
||||
};
|
||||
|
||||
#endif // __IPreferencesPage_h__
|
||||
|
||||
61
Editor/Include/ObjectEvent.h
Normal file
61
Editor/Include/ObjectEvent.h
Normal file
@@ -0,0 +1,61 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: ObjectEvent.h
|
||||
// Version: v1.00
|
||||
// Created: 13/5/2004 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __ObjectEvent_h__
|
||||
#define __ObjectEvent_h__
|
||||
#pragma once
|
||||
|
||||
//! Standart objects types.
|
||||
enum ObjectType
|
||||
{
|
||||
OBJTYPE_GROUP = 1<<0,
|
||||
OBJTYPE_TAGPOINT = 1<<1,
|
||||
OBJTYPE_AIPOINT = 1<<2,
|
||||
OBJTYPE_ENTITY = 1<<3,
|
||||
OBJTYPE_SHAPE = 1<<4,
|
||||
OBJTYPE_VOLUME = 1<<5,
|
||||
OBJTYPE_BRUSH = 1<<6,
|
||||
OBJTYPE_PREFAB = 1<<7,
|
||||
OBJTYPE_ANY = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//! Events that objects may want to handle.
|
||||
//! Passed to OnEvent method of CBaseObject.
|
||||
enum ObjectEvent
|
||||
{
|
||||
EVENT_INGAME = 1, //!< Signals that editor is switching into the game mode.
|
||||
EVENT_OUTOFGAME, //!< Signals that editor is switching out of the game mode.
|
||||
EVENT_REFRESH, //!< Signals that editor is refreshing level.
|
||||
EVENT_AFTER_LOAD, //!< Signals that editor is finished loading all objects.
|
||||
EVENT_PLACE_STATIC, //!< Signals that editor needs to place all static objects on terrain.
|
||||
EVENT_REMOVE_STATIC,//!< Signals that editor needs to remove all static objects from terrain.
|
||||
EVENT_DBLCLICK, //!< Signals that object have been double clicked.
|
||||
EVENT_KEEP_HEIGHT, //!< Signals that object must preserve its height over changed terrain.
|
||||
EVENT_UNLOAD_ENTITY,//!< Signals that entities scripts must be unloaded.
|
||||
EVENT_RELOAD_ENTITY,//!< Signals that entities scripts must be reloaded.
|
||||
EVENT_RELOAD_TEXTURES,//!< Signals that all posible textures in objects should be reloaded.
|
||||
EVENT_RELOAD_GEOM, //!< Signals that all posible geometries should be reloaded.
|
||||
EVENT_UNLOAD_GEOM, //!< Signals that all posible geometries should be unloaded.
|
||||
EVENT_MISSION_CHANGE, //!< Signals that mission have been changed.
|
||||
EVENT_CLEAR_AIGRAPH,//!< Signals that ai graph is about to be deleted.
|
||||
EVENT_PREFAB_REMAKE,//!< Recreate all objects in prefabs.
|
||||
|
||||
EVENT_PHYSICS_GETSTATE,//!< Signals that entities should accept thier phyical state from game.
|
||||
EVENT_PHYSICS_RESETSTATE,//!< Signals that physics state must be reseted on objects.
|
||||
};
|
||||
|
||||
#endif // __ObjectEvent_h__
|
||||
|
||||
Reference in New Issue
Block a user