ufe 5.5
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.11-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
22
23struct BBox3d;
24
26
39{
40public:
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
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
115};
116
117}
118
119#endif /* _object3d */
Base class for all notifications.
Definition: notification.h:29
Abstract base class for 3D object interface.
Definition: object3d.h:39
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:41
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:36
std::shared_ptr< SceneItem > Ptr
Definition: sceneItem.h:44
std::shared_ptr< UndoableCommand > Ptr
3D bounding box class.
Definition: types.h:200
#define UFE_NS_DEF
Definition: ufe.h:35
Definition of macros for symbol visibility.
#define UFE_SDK_DECL
Definition: ufeExport.h:36