1 #line 1 "S:/jenkins/workspace/ECP/ufe/ufe-full-python3.10-windows/ufe/include/pathSubject.h" 2 #ifndef _ufePathSubject 3 #define _ufePathSubject 40 typedef std::shared_ptr<PathSubject>
Ptr;
53 using AddObserverFcn = std::function<bool(const SceneItem::Ptr& item, const Observer::Ptr& obs)>;
78 void addObservers(
const Path&
path,
const Path& endAncestor);
79 void removeObservers(
const Path&
path,
const Path& endAncestor);
86 template<
bool ADD_OBSERVER>
87 void addRemoveObserverHelper(
const Path&
path);
96 template<
bool ADD_OBSERVER>
97 void addRemoveObserversHelper(
Path path,
const Path& endAncestor);
99 void reparent(
const Path& oldPath,
const Path& newPath);
100 void rename(
const Path& oldPath,
const Path& newPath);
101 void objectDelete(
const Path&
path);
103 class SceneChangedObserver;
const RemoveObserverFcn _removeObserverFcn
std::function< bool(const SceneItem::Ptr &item, const Observer::Ptr &obs)> AddObserverFcn
Callable function to add an observer to a SceneItem.
std::shared_ptr< Observer > Ptr
Definition of macros for symbol visibility.
std::function< bool(const Path &Path, const Observer::Ptr &obs)> RemoveObserverFcn
Callable function to remove an observer from a Path.
const Observer::Ptr _sceneChangedObserver
std::shared_ptr< PathSubject > Ptr
bool removeObserver(const Observer::Ptr &obs)
Observer pattern Subject class.
const Observer::Ptr _forwardingObserver
Identify an object or 3D path in the scene.
bool addObserver(const Observer::Ptr &obs)
Helper to make a Path observable.
Path path(const std::string &pathString)
const AddObserverFcn _addObserverFcn