ufe 7.0
Universal Front End is a DCC-agnostic component that will allow a DCC to browse and edit data in multiple data models
attributes.h
Go to the documentation of this file.
1#line 1 "D:/Jenkins/workspace/EMS/ECG/ufe/full/ufe-full-python3.13-windows/ufe/include/attributes.h"
2#ifndef UFE_ATTRIBUTES_H
3#define UFE_ATTRIBUTES_H
4
5// ===========================================================================
6// Copyright 2025 Autodesk, Inc. All rights reserved.
7//
8// The use of this software is subject to the Autodesk Terms of Use or other
9// license agreement provided at the time of installation or download, or
10// which otherwise accompanies this software.
11// ===========================================================================
12
13#include "common/ufeExport.h"
14#include "attribute.h"
16#include "sceneItem.h"
17#include "observer.h"
19#include "undoableCommand.h"
20
21#include <memory>
22#include <vector>
23#include <string>
24
26
50{
51public:
52 typedef std::shared_ptr<Attributes> Ptr;
53 typedef std::vector< std::pair< std::string, std::string> > Enums;
54
62 static Ptr attributes(const SceneItem::Ptr& item);
63
71 static bool addObserver(
72 const SceneItem::Ptr& item, const Observer::Ptr& obs);
80 static bool addObserver(const Observer::Ptr& obs);
88 static bool removeObserver(
89 const SceneItem::Ptr& item, const Observer::Ptr& obs);
90
98 static bool removeObserver(const Observer::Ptr& obs);
99
105 static std::size_t nbObservers(const SceneItem::Ptr& item);
106
112 static std::size_t nbObservers();
113
121 static bool hasObserver(
122 const SceneItem::Ptr& item, const Observer::Ptr& obs);
123
131 static bool hasObserver(const Observer::Ptr& obs);
132
135 static bool hasObservers(const Path& path);
136
143 static bool hasObservers(Rtid runTimeId);
144
149 static void notify(const AttributeChanged& notification);
150
154 Attributes(const Attributes&) = default;
156 virtual ~Attributes();
157
159 virtual SceneItem::Ptr sceneItem() const = 0;
160
162 virtual Attribute::Type attributeType(const std::string& name) = 0;
163
170 virtual Attribute::Ptr attribute(const std::string& name) = 0;
171
173 virtual std::vector<std::string> attributeNames() const = 0;
174
180 virtual bool hasAttribute(const std::string& name) const = 0;
181
190 const Attribute::Type& type);
191
203 const Attribute::Type& type) = 0;
204
211 virtual bool removeAttribute(const std::string& name);
212
223
232 virtual Attribute::Ptr
233 renameAttribute(const std::string& originalName,
234 const std::string& newName);
235
245 renameAttributeCmd(const std::string& originalName,
246 const std::string& newName) = 0;
247
254 virtual Enums getEnums(const std::string& attrName) const = 0;
255}; // end class Attributes
256
257
258} // end namespace
259
260#endif /* UFE_ATTRIBUTES_H */
Base class for all attribute changed notifications.
std::string Type
Definition: attribute.h:40
std::shared_ptr< Attribute > Ptr
Definition: attribute.h:39
std::shared_ptr< AttributeUndoableCommand > Ptr
Abstract base class for Attributes interface.
Definition: attributes.h:50
static bool hasObservers(const Path &path)
virtual UndoableCommand::Ptr removeAttributeCmd(const std::string &name)=0
virtual bool hasAttribute(const std::string &name) const =0
static std::size_t nbObservers(const SceneItem::Ptr &item)
virtual Attribute::Ptr addAttribute(const std::string &name, const Attribute::Type &type)
static bool hasObserver(const Observer::Ptr &obs)
virtual std::vector< std::string > attributeNames() const =0
virtual AddAttributeUndoableCommand::Ptr addAttributeCmd(const std::string &name, const Attribute::Type &type)=0
static bool removeObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
static bool addObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
virtual Enums getEnums(const std::string &attrName) const =0
virtual Attribute::Ptr attribute(const std::string &name)=0
std::vector< std::pair< std::string, std::string > > Enums
Definition: attributes.h:53
static Ptr attributes(const SceneItem::Ptr &item)
static bool addObserver(const Observer::Ptr &obs)
static bool hasObservers(Rtid runTimeId)
static std::size_t nbObservers()
Attributes(const Attributes &)=default
Default copy constructor.
virtual Attribute::Type attributeType(const std::string &name)=0
virtual SceneItem::Ptr sceneItem() const =0
static bool hasObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
virtual Attribute::Ptr renameAttribute(const std::string &originalName, const std::string &newName)
virtual bool removeAttribute(const std::string &name)
std::shared_ptr< Attributes > Ptr
Definition: attributes.h:52
static bool removeObserver(const Observer::Ptr &obs)
virtual ~Attributes()
Destructor.
Attributes()
Constructor.
static void notify(const AttributeChanged &notification)
virtual RenameAttributeUndoableCommand::Ptr renameAttributeCmd(const std::string &originalName, const std::string &newName)=0
std::shared_ptr< Observer > Ptr
Definition: observer.h:37
Identify an object or 3D path in the scene.
Definition: path.h:40
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:45
std::shared_ptr< UndoableCommand > Ptr
std::string string(const Path &path)
Path path(const std::string &pathString)
uint32_t Rtid
Definition: rtid.h:27
#define UFE_NS_DEF
Definition: ufe.h:36
Definition of macros for symbol visibility.
#define UFE_SDK_DECL
Definition: ufeExport.h:35