ufe  4.2
Universal Front End is a DCC-agnostic component that will allow a DCC to browse and edit data in multiple data models
observableSelection.h
Go to the documentation of this file.
1 #line 1 "S:/jenkins/workspace/ECP/ufe/ufe-full-python3.10-windows/ufe/include/observableSelection.h"
2 #ifndef _ufeObservableSelection
3 #define _ufeObservableSelection
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 "selection.h"
13 #include "subject.h"
14 
15 #include <memory> // unique_ptr
16 
17 UFE_NS_DEF {
18 
19 class SelectionCompositeNotification;
20 
22 
31 {
32 public:
33 
36 
38  ~ObservableSelection() override;
39 
56 
59  bool inCompositeNotification() const override;
60 
61 protected:
62 
64  void beginNotificationGuard() override;
68  void endNotificationGuard() override;
70 
75  void postAppend(const SceneItem::Ptr& item) override;
76 
81  void postRemove(const SceneItem::Ptr& item) override;
82 
88  void postInsert(
89  const SceneItem::Ptr& position, const SceneItem::Ptr& item
90  ) override;
91 
93  void postClear() override;
94 
96  void postReplaceWith() override;
97 
98 private:
99 
101 
103  std::unique_ptr<SelectionCompositeNotification> fCompositeNotification;
104 };
105 
106 }
107 
108 #endif /* _ufeObservableSelection */
virtual void postInsert(const SceneItem::Ptr &position, const SceneItem::Ptr &item)
virtual void postClear()
Observable selection for objects in the scene.
virtual bool inCompositeNotification() const
virtual void postRemove(const SceneItem::Ptr &item)
Observer pattern Subject class.
Definition: subject.h:40
Selection list for objects in the scene.
Definition: selection.h:27
#define UFE_NS_DEF
Definition: ufe.h:35
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:40
virtual void beginNotificationGuard()
Notification guard interface. Implementation in this class is a no-op.
virtual void postAppend(const SceneItem::Ptr &item)
Selection & operator=(const Selection &)
Syntactic convenience that calls replaceWith.
virtual void postReplaceWith()
#define UFE_SDK_DECL
Definition: ufeExport.h:36
std::unique_ptr< SelectionCompositeNotification > fCompositeNotification
Composite notification, when within the scope of a guard.
virtual void endNotificationGuard()
Notification guard interface. Implementation in this class is a no-op.