ufe  2.0
Universal Front End is a DCC-agnostic component that will allow a DCC to browse and edit data in multiple data models
baseUndoableCommands.h
Go to the documentation of this file.
1 #line 1 "S:/jenkins/workspace/ufe-full-windows/ufe/include/baseUndoableCommands.h"
2 #ifndef _baseUndoableCommands
3 #define _baseUndoableCommands
4 // ===========================================================================
5 // Copyright 2020 Autodesk, Inc. All rights reserved.
6 //
7 // Use of this software is subject to the terms of the Autodesk license
8 // agreement provided at the time of installation or download, or which
9 // otherwise accompanies this software in either electronic or hard copy form.
10 // ===========================================================================
11 
12 #include "common/ufeExport.h"
13 #include "undoableCommand.h"
14 #include "hierarchy.h"
15 #include "path.h"
16 
17 #include <memory>
18 
20 {
21 
22  struct Matrix4d;
23 
25  //
26  // Set operation commands do not hold onto a SceneItem, because that item
27  // might be stale when undo or redo is executed. This is for two reasons:
28  // - redo and undo of commands later in the undo stack may make the item stale
29  // - operations between the point of creation of the set command and its
30  // execution may make the item stale.
31  //
33  {
34  public:
36  virtual ~BaseUndoableCommand();
37 
39  inline void setPath(const Path &path) { fPath = path; }
40 
42  inline const Path &path() const { return fPath; }
43 
46 
47  private:
49  };
50 
52  template <typename VALUE_TYPE>
54  {
55  public:
56  typedef std::shared_ptr<SetValueUndoableCommand> Ptr;
57  typedef VALUE_TYPE ValueType;
58 
63 
67 
68  virtual bool set(VALUE_TYPE v) = 0;
69  };
70 
72  template <typename VALUE_TYPE>
74  {
75  public:
76  typedef std::shared_ptr<SetValue3UndoableCommand> Ptr;
77  typedef VALUE_TYPE ValueType;
78 
83 
89 
90  virtual bool set(VALUE_TYPE x, VALUE_TYPE y, VALUE_TYPE z) = 0;
91  };
92 
100 }
101 
102 #endif /* _baseUndoableCommands */
std::shared_ptr< SetValue3UndoableCommand > Ptr
Abstract class for set Value3 command.
Definition of macros for symbol visibility.
SetValueUndoableCommand(const Path &path)
Constructor.
static SceneItem::Ptr createItem(const Path &path)
std::shared_ptr< SetValueUndoableCommand > Ptr
Identify an object or 3D path in the scene.
Definition: path.h:37
Ufe::SceneItem::Ptr sceneItem() const
Abstract class for set value command.
const Path & path() const
virtual ~SetValue3UndoableCommand()
Destructor.
#define UFE_NS_DEF
Definition: ufe.h:35
Abstract base class for undoable commands.
SetValue3UndoableCommand(const Path &path)
Constructor.
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:40
void setPath(const Path &path)
Set the path of the object onto which the command is applied.
Path path(const std::string &pathString)
#define UFE_SDK_DECL
Definition: ufeExport.h:36
virtual ~SetValueUndoableCommand()
Destructor.
Base class for undoable set operation commands.