Cafu Engine
ToolMorphT Class Reference

This class represents the "Edit Vertices" / "Morph" tool. More...

#include "ToolMorph.hpp"

Inheritance diagram for ToolMorphT:

Public Member Functions

 ToolMorphT (MapDocumentT &MapDoc, ToolManagerT &ToolMan, wxWindow *ParentOptionsBar)
 
void NoteEditModeChanged ()
 This is called by the options bar whenever the edit mode has changed (edit vertices, edges, or both). More...
 
void InsertVertex ()
 Called by the options bar when the user pressed the "Insert Vertex" button. More...
 
int GetWxEventID () const
 Returns the ID of the wxWidgets event (menu selection or toolbar button click) that is associated with activating this tool. More...
 
wxWindow * GetOptionsBar ()
 Returns the options bar window associated with this tool. NULL if no options bar has been assigned. More...
 
void OnActivate (ToolT *OldTool)
 
void OnDeactivate (ToolT *NewTool)
 
bool CanDeactivate ()
 
bool OnKeyDown2D (ViewWindow2DT &ViewWindow, wxKeyEvent &KE)
 
bool OnLMouseDown2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 Also used for LMB "double-click" events (use ME.ButtonDClick() for distinction). More...
 
bool OnMouseMove2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 
bool OnLMouseUp2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 
bool OnKeyDown3D (ViewWindow3DT &ViewWindow, wxKeyEvent &KE)
 
bool OnLMouseDown3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 Also used for LMB "double-click" events (use ME.ButtonDClick() for distinction). More...
 
bool OnMouseMove3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 
bool OnLMouseUp3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 
bool IsHiddenByTool (const MapElementT *Elem) const
 The caller calls this method in order to learn whether it should exempt the given map element Elem from normal 2D and 3D rendering. This is usually true when Elem is currently being modified by the tool and thus rendered (in a special way) by the tool itself. Examples include brushes being morphed and terrains being edited. More...
 
void RenderTool2D (Renderer2DT &Renderer) const
 
void RenderTool3D (Renderer3DT &Renderer) const
 
void NotifySubjectChanged_Selection (SubjectT *Subject, const ArrayT< MapElementT * > &OldSelection, const ArrayT< MapElementT * > &NewSelection)
 Notifies the observer that the selection in the current subject has been changed. More...
 
void NotifySubjectChanged_Deleted (SubjectT *Subject, const ArrayT< MapPrimitiveT * > &Primitives)
 Notifies the observer that one or more map primitives have been deleted. More...
 
void NotifySubjectChanged_Modified (SubjectT *Subject, const ArrayT< MapElementT * > &MapElements, MapElemModDetailE Detail)
 
void NotifySubjectChanged_Modified (SubjectT *Subject, const ArrayT< MapElementT * > &MapElements, MapElemModDetailE Detail, const ArrayT< BoundingBox3fT > &OldBounds)
 
void NotifySubjectDies (SubjectT *dyingSubject)
 This method is called whenever a subject is about the be destroyed (and become unavailable). More...
 
virtual const
cf::TypeSys::TypeInfoT
GetType () const
 
- Public Member Functions inherited from ToolT
 ToolT (MapDocumentT &MapDoc, ToolManagerT &ToolMan)
 The constructor. More...
 
virtual ~ToolT ()
 The destructor. More...
 
void Activate (ToolT *OldTool)
 
void Deactivate (ToolT *NewTool)
 
bool IsActiveTool () const
 
virtual bool UpdateStatusBar (ChildFrameT *ChildFrame) const
 
virtual bool OnKeyUp2D (ViewWindow2DT &ViewWindow, wxKeyEvent &KE)
 
virtual bool OnChar2D (ViewWindow2DT &ViewWindow, wxKeyEvent &KE)
 
virtual bool OnMMouseDown2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 Also used for MMB "double-click" events (use ME.ButtonDClick() for distinction). More...
 
virtual bool OnMMouseUp2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 
virtual bool OnRMouseClick2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 For the RMB, only a "click" event is available, because the RMB is also used for mouse-looking and the context menu. More...
 
virtual bool OnMouseWheel2D (ViewWindow2DT &ViewWindow, wxMouseEvent &ME)
 
virtual int OnContextMenu2D (ViewWindow2DT &ViewWindow, wxContextMenuEvent &CE, wxMenu &Menu)
 
virtual bool OnKeyUp3D (ViewWindow3DT &ViewWindow, wxKeyEvent &KE)
 
virtual bool OnChar3D (ViewWindow3DT &ViewWindow, wxKeyEvent &KE)
 
virtual bool OnMMouseDown3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 Also used for MMB "double-click" events (use ME.ButtonDClick() for distinction). More...
 
virtual bool OnMMouseUp3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 
virtual bool OnRMouseClick3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 For the RMB, only a "click" event is available, because the RMB is also used for mouse-looking and the context menu. More...
 
virtual bool OnMouseWheel3D (ViewWindow3DT &ViewWindow, wxMouseEvent &ME)
 
virtual int OnContextMenu3D (ViewWindow3DT &ViewWindow, wxContextMenuEvent &CE, wxMenu &Menu)
 
virtual bool OnIdle3D (ViewWindow3DT &ViewWindow, const wxPoint &Point)
 
- Public Member Functions inherited from ObserverT
virtual void NotifySubjectChanged (SubjectT *Subject, MapDocOtherDetailT OtherDetail)
 Notifies the observer that some other detail than those specifically addressed below has changed. More...
 
virtual void NotifySubjectChanged_Groups (SubjectT *Subject)
 Notifies the observer that the groups in the current subject have been changed (new group added, group deleted, visibility changed, anything). More...
 
virtual void NotifySubjectChanged_Created (SubjectT *Subject, const ArrayT< IntrusivePtrT< cf::GameSys::EntityT > > &Entities)
 Notifies the observer that one or more entities have been created. More...
 
virtual void NotifySubjectChanged_Created (SubjectT *Subject, const ArrayT< MapPrimitiveT * > &Primitives)
 Notifies the observer that one or more map primitives have been created. More...
 
virtual void NotifySubjectChanged_Deleted (SubjectT *Subject, const ArrayT< IntrusivePtrT< cf::GameSys::EntityT > > &Entities)
 Notifies the observer that one or more entities have been deleted. More...
 
virtual ~ObserverT ()
 The virtual destructor. More...
 
virtual void Notify_EntChanged (SubjectT *Subject, const ArrayT< IntrusivePtrT< MapEditor::CompMapEntityT > > &Entities, EntityModDetailE Detail)
 
virtual void Notify_VarChanged (SubjectT *Subject, const cf::TypeSys::VarBaseT &Var)
 Notifies the observer that a variable has changed. More...
 

Static Public Member Functions

static void * CreateInstance (const cf::TypeSys::CreateParamsT &Params)
 
- Static Public Member Functions inherited from ToolT
static void * CreateInstance (const cf::TypeSys::CreateParamsT &Params)
 

Static Public Attributes

static const cf::TypeSys::TypeInfoT TypeInfo
 
- Static Public Attributes inherited from ToolT
static const cf::TypeSys::TypeInfoT TypeInfo
 

Additional Inherited Members

- Protected Member Functions inherited from ObserverT
 ObserverT ()
 The constructor. It is protected so that only derived classes can create instances of this class. More...
 
- Protected Attributes inherited from ToolT
MapDocumentTm_MapDoc
 The document that is modified by this tool. More...
 
ToolManagerTm_ToolMan
 The tool manager that manages this tool. More...
 

Detailed Description

This class represents the "Edit Vertices" / "Morph" tool.

Member Function Documentation

wxWindow * ToolMorphT::GetOptionsBar ( )
virtual

Returns the options bar window associated with this tool. NULL if no options bar has been assigned.

Reimplemented from ToolT.

int ToolMorphT::GetWxEventID ( ) const
inlinevirtual

Returns the ID of the wxWidgets event (menu selection or toolbar button click) that is associated with activating this tool.

Implements ToolT.

void ToolMorphT::InsertVertex ( )

Called by the options bar when the user pressed the "Insert Vertex" button.

bool ToolMorphT::IsHiddenByTool ( const MapElementT Elem) const
virtual

The caller calls this method in order to learn whether it should exempt the given map element Elem from normal 2D and 3D rendering. This is usually true when Elem is currently being modified by the tool and thus rendered (in a special way) by the tool itself. Examples include brushes being morphed and terrains being edited.

Reimplemented from ToolT.

void ToolMorphT::NoteEditModeChanged ( )

This is called by the options bar whenever the edit mode has changed (edit vertices, edges, or both).

void ToolMorphT::NotifySubjectChanged_Deleted ( SubjectT Subject,
const ArrayT< MapPrimitiveT * > &  Primitives 
)
virtual

Notifies the observer that one or more map primitives have been deleted.

Parameters
SubjectThe map document in which the primitives have been deleted.
PrimitivesList of deleted map primitives.

Reimplemented from ObserverT.

void ToolMorphT::NotifySubjectChanged_Modified ( SubjectT Subject,
const ArrayT< MapElementT * > &  MapElements,
MapElemModDetailE  Detail 
)
virtual
Parameters
SubjectThe map document in which the elements have been modified.
MapElementsList of modified map elements.
DetailInformation about what has been modified: Can be one of MEMD_PRIMITIVE_PROPS_CHANGED, MEMD_GENERIC, MEMD_ASSIGN_PRIM_TO_ENTITY and MEMD_MATERIAL_CHANGED.

Reimplemented from ObserverT.

void ToolMorphT::NotifySubjectChanged_Modified ( SubjectT Subject,
const ArrayT< MapElementT * > &  MapElements,
MapElemModDetailE  Detail,
const ArrayT< BoundingBox3fT > &  OldBounds 
)
virtual
Parameters
SubjectThe map document in which the elements have been modified.
MapElementsList of modified map elements.
DetailInformation about what has been modified: Can be MEMD_TRANSFORM or MEMD_PRIMITIVE_PROPS_CHANGED. In the case of MEMD_PRIMITIVE_PROPS_CHANGED one can assume that only map primitives (no entities) are in the MapElements array.
OldBoundsHolds the bounds of each objects BEFORE the modification (has the same size as MapElements).

Reimplemented from ObserverT.

void ToolMorphT::NotifySubjectChanged_Selection ( SubjectT Subject,
const ArrayT< MapElementT * > &  OldSelection,
const ArrayT< MapElementT * > &  NewSelection 
)
virtual

Notifies the observer that the selection in the current subject has been changed.

Parameters
SubjectThe map document in which the selection has been changed.
OldSelectionArray of the previously selected objects.
NewSelectionArray of the new selected objects.

Reimplemented from ObserverT.

void ToolMorphT::NotifySubjectDies ( SubjectT dyingSubject)
virtual

This method is called whenever a subject is about the be destroyed (and become unavailable).

Parameters
dyingSubjectThe subject that is being destroyed.

Implements ObserverT.

bool ToolMorphT::OnLMouseDown2D ( ViewWindow2DT ViewWindow,
wxMouseEvent &  ME 
)
virtual

Also used for LMB "double-click" events (use ME.ButtonDClick() for distinction).

Reimplemented from ToolT.

bool ToolMorphT::OnLMouseDown3D ( ViewWindow3DT ViewWindow,
wxMouseEvent &  ME 
)
virtual

Also used for LMB "double-click" events (use ME.ButtonDClick() for distinction).

Reimplemented from ToolT.


The documentation for this class was generated from the following files: