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
object3d.h
Go to the documentation of this file.
1 #line 1 "S:/jenkins/workspace/ECP/ufe/ufe-full-python3.10-windows/ufe/include/object3d.h"
2 #ifndef _object3d
3 #define _object3d
4 // ===========================================================================
5 // Copyright 2019 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 "common/ufeExport.h"
13 
14 #include "sceneItem.h"
15 #include "observer.h"
16 #include "undoableCommand.h"
17 #include "notification.h"
18 
19 #include <memory>
20 
21 UFE_NS_DEF {
22 
23 struct BBox3d;
24 
26 
39 {
40 public:
41  typedef std::shared_ptr<Object3d> Ptr;
42 
50  static Ptr object3d(const SceneItem::Ptr& item);
51 
59  static bool addObserver(const Observer::Ptr& obs);
60 
68  static bool removeObserver(const Observer::Ptr& obs);
69 
75  static std::size_t nbObservers();
76 
84  static bool hasObserver(const Observer::Ptr& obs);
85 
90  static void notify(const Notification& notif);
91 
93  Object3d();
95  Object3d(const Object3d&) = default;
97  virtual ~Object3d();
98 
100  virtual SceneItem::Ptr sceneItem() const = 0;
101 
104  virtual BBox3d boundingBox() const = 0;
105 
108  virtual bool visibility() const = 0;
109 
111  virtual void setVisibility(bool vis) = 0;
112 
114  virtual Ufe::UndoableCommand::Ptr setVisibleCmd(bool vis) = 0;
115 };
116 
117 }
118 
119 #endif /* _object3d */
std::shared_ptr< UndoableCommand > Ptr
Abstract base class for 3D object interface.
Definition: object3d.h:38
std::shared_ptr< Object3d > Ptr
Definition: object3d.h:41
std::shared_ptr< Observer > Ptr
Definition: observer.h:36
Definition of macros for symbol visibility.
#define UFE_NS_DEF
Definition: ufe.h:35
Base class for all notifications.
Definition: notification.h:28
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:40
3D bounding box class.
Definition: types.h:177
#define UFE_SDK_DECL
Definition: ufeExport.h:36