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
nodeDef.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/nodeDef.h"
2#ifndef UFE_NODEDEF_H
3#define UFE_NODEDEF_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 "attributeDef.h"
15#include "rtid.h"
16#include "sceneItem.h"
17#include "undoableCommand.h"
18#include "value.h"
19
20#include <memory>
21#include <string>
22#include <vector>
23
25
26typedef std::vector<AttributeDef::ConstPtr> ConstAttributeDefs;
27
37{
38public:
39 typedef std::shared_ptr<NodeDef> Ptr;
40
42 virtual ~NodeDef();
43
45 virtual std::string type() const = 0;
46
54 virtual std::size_t nbClassifications() const = 0;
55
63 virtual std::string classification(std::size_t level) const = 0;
64
66 virtual std::vector<std::string> inputNames() const = 0;
67
73 virtual bool hasInput(const std::string& name) const = 0;
74
81 virtual AttributeDef::ConstPtr input(const std::string& name) const = 0;
82
84 virtual ConstAttributeDefs inputs() const = 0;
85
87 virtual std::vector<std::string> outputNames() const = 0;
88
94 virtual bool hasOutput(const std::string& name) const = 0;
95
102 virtual AttributeDef::ConstPtr output(const std::string& name) const = 0;
103
105 virtual ConstAttributeDefs outputs() const = 0;
106
108 static Ptr definition(const Rtid& id, const std::string& type);
109
115 virtual Value getMetadata(const std::string& key) const = 0;
116
118 virtual bool hasMetadata(const std::string& key) const = 0;
119
126 const SceneItem::Ptr& parent, const PathComponent& name) const = 0;
127
134 const SceneItem::Ptr& parent, const PathComponent& name) const = 0;
135
136protected:
139}; // end class
140
141typedef std::vector<NodeDef::Ptr> NodeDefs;
142
143} // end namespace
144
145#endif /* UFE_NODEDEF_H */
std::shared_ptr< const AttributeDef > ConstPtr
Definition: attributeDef.h:31
std::shared_ptr< InsertChildCommand > Ptr
Abstract base class for NodeDef interface.
Definition: nodeDef.h:37
virtual ~NodeDef()
Destructor.
virtual bool hasOutput(const std::string &name) const =0
virtual ConstAttributeDefs inputs() const =0
virtual std::string type() const =0
virtual std::size_t nbClassifications() const =0
virtual ConstAttributeDefs outputs() const =0
virtual Value getMetadata(const std::string &key) const =0
static Ptr definition(const Rtid &id, const std::string &type)
std::shared_ptr< NodeDef > Ptr
Definition: nodeDef.h:39
virtual std::vector< std::string > inputNames() const =0
virtual AttributeDef::ConstPtr input(const std::string &name) const =0
virtual bool hasMetadata(const std::string &key) const =0
Returns true if metadata key has a non-empty value.
virtual std::vector< std::string > outputNames() const =0
NodeDef()
Constructor.
virtual InsertChildCommand::Ptr createNodeCmd(const SceneItem::Ptr &parent, const PathComponent &name) const =0
virtual std::string classification(std::size_t level) const =0
virtual SceneItem::Ptr createNode(const SceneItem::Ptr &parent, const PathComponent &name) const =0
virtual AttributeDef::ConstPtr output(const std::string &name) const =0
virtual bool hasInput(const std::string &name) const =0
Constant string representation with fixed space and O(1) comparison.
Definition: pathComponent.h:35
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:45
Value class that can hold a wide set of types.
Definition: value.h:66
std::string string(const Path &path)
std::vector< AttributeDef::ConstPtr > ConstAttributeDefs
Definition: nodeDef.h:26
std::vector< NodeDef::Ptr > NodeDefs
Definition: nodeDef.h:141
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