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
object3d.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/object3d.h"
2#ifndef UFE_OBJECT3D_H
3#define UFE_OBJECT3D_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
15#include "sceneItem.h"
16#include "observer.h"
17#include "undoableCommand.h"
18#include "notification.h"
19
20#include <memory>
21
23
24struct BBox3d;
25
27
40{
41public:
42 typedef std::shared_ptr<Object3d> Ptr;
43
51 static Ptr object3d(const SceneItem::Ptr& item);
52
60 static bool addObserver(const Observer::Ptr& obs);
61
69 static bool removeObserver(const Observer::Ptr& obs);
70
76 static std::size_t nbObservers();
77
85 static bool hasObserver(const Observer::Ptr& obs);
86
91 static void notify(const Notification& notif);
92
96 Object3d(const Object3d&) = default;
98 virtual ~Object3d();
99
101 virtual SceneItem::Ptr sceneItem() const = 0;
102
105 virtual BBox3d boundingBox() const = 0;
106
109 virtual bool visibility() const = 0;
110
112 virtual void setVisibility(bool vis) = 0;
113
116};
117
118}
119
120#endif /* UFE_OBJECT3D_H */
Base class for all notifications.
Definition: notification.h:30
Abstract base class for 3D object interface.
Definition: object3d.h:40
static Ptr object3d(const SceneItem::Ptr &item)
static bool removeObserver(const Observer::Ptr &obs)
virtual SceneItem::Ptr sceneItem() const =0
Scene item accessor.
virtual bool visibility() const =0
Object3d()
Constructor.
virtual BBox3d boundingBox() const =0
static void notify(const Notification &notif)
std::shared_ptr< Object3d > Ptr
Definition: object3d.h:42
static bool hasObserver(const Observer::Ptr &obs)
static std::size_t nbObservers()
virtual Ufe::UndoableCommand::Ptr setVisibleCmd(bool vis)=0
Create an undoable visible command.
virtual ~Object3d()
Destructor.
virtual void setVisibility(bool vis)=0
Set the visibility state of the object.
static bool addObserver(const Observer::Ptr &obs)
Object3d(const Object3d &)=default
Default copy constructor.
std::shared_ptr< Observer > Ptr
Definition: observer.h:37
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:45
std::shared_ptr< UndoableCommand > Ptr
3D bounding box class.
Definition: types.h:244
#define UFE_NS_DEF
Definition: ufe.h:36
Definition of macros for symbol visibility.
#define UFE_SDK_DECL
Definition: ufeExport.h:35