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
camera.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/camera.h"
2#ifndef UFE_CAMERA_H
3#define UFE_CAMERA_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 "sceneItem.h"
15#include "observer.h"
17#include "types.h"
18
19#include <memory>
20#include <array>
21
23{
24
26
51{
52public:
53 typedef std::shared_ptr<Camera> Ptr;
54
56 {
58 Orthographic
59 };
60
69 static Ptr camera(const SceneItem::Ptr &item);
70
78 static bool addObserver(
79 const SceneItem::Ptr &item, const Observer::Ptr &obs);
80
88 static bool removeObserver(
89 const SceneItem::Ptr &item, const Observer::Ptr &obs);
90
91 typedef bool (*RemoveObserverItemType)(const SceneItem::Ptr &item, const Observer::Ptr& obs);
92
100 static bool removeObserver(
101 const Path &path, const Observer::Ptr &obs);
102
103 typedef bool (*RemoveObserverPathType)(const Path& path, const Observer::Ptr& obs);
104
110 static std::size_t nbObservers(const SceneItem::Ptr &item);
111
119 static bool hasObserver(
120 const SceneItem::Ptr &item, const Observer::Ptr &obs);
121
124 static bool hasObservers(const Path &path);
125
130 static bool hasObservers(Rtid runTimeId);
131
135 static void notify(const Path &path);
136
140 Camera(const Camera &) = default;
142 virtual ~Camera();
143
145 virtual const Path &path() const = 0;
146
148 virtual SceneItem::Ptr sceneItem() const = 0;
149
155 float ha) = 0;
156
160 virtual void horizontalAperture(float ha)
161 {
162 auto cmd = horizontalApertureCmd(ha);
163 if (cmd)
164 {
165 cmd->execute();
166 }
167 }
168
171 virtual float horizontalAperture() const = 0;
172
178 float va) = 0;
179
183 virtual void verticalAperture(float va)
184 {
185 auto cmd = verticalApertureCmd(va);
186 if (cmd)
187 {
188 cmd->execute();
189 }
190 }
191
194 virtual float verticalAperture() const = 0;
195
201 float hao) = 0;
202
206 virtual void horizontalApertureOffset(float hao)
207 {
208 auto cmd = horizontalApertureOffsetCmd(hao);
209 if (cmd)
210 {
211 cmd->execute();
212 }
213 }
214
217 virtual float horizontalApertureOffset() const = 0;
218
224 float vao) = 0;
225
229 virtual void verticalApertureOffset(float vao)
230 {
231 auto cmd = verticalApertureOffsetCmd(vao);
232 if (cmd)
233 {
234 cmd->execute();
235 }
236 }
237
240 virtual float verticalApertureOffset() const = 0;
241
247 float fs) = 0;
248
252 virtual void fStop(float fs)
253 {
254 auto cmd = fStopCmd(fs);
255 if (cmd)
256 {
257 cmd->execute();
258 }
259 }
260
263 virtual float fStop() const = 0;
264
270 float fl) = 0;
271
275 virtual void focalLength(float fl)
276 {
277 auto cmd = focalLengthCmd(fl);
278 if (cmd)
279 {
280 cmd->execute();
281 }
282 }
283
286 virtual float focalLength() const = 0;
287
293 float fd) = 0;
294
298 virtual void focusDistance(float fd)
299 {
300 auto cmd = focusDistanceCmd(fd);
301 if (cmd)
302 {
303 cmd->execute();
304 }
305 }
306
309 virtual float focusDistance() const = 0;
310
316 float ncp) = 0;
317
321 virtual void nearClipPlane(float ncp)
322 {
323 auto cmd = nearClipPlaneCmd(ncp);
324 if (cmd)
325 {
326 cmd->execute();
327 }
328 }
329
332 virtual float nearClipPlane() const = 0;
333
339 float fcp) = 0;
340
344 virtual void farClipPlane(float fcp)
345 {
346 auto cmd = farClipPlaneCmd(fcp);
347 if (cmd)
348 {
349 cmd->execute();
350 }
351 }
352
355 virtual float farClipPlane() const = 0;
356
362 Projection p) = 0;
363
367 virtual void projection(Projection p)
368 {
369 auto cmd = projectionCmd(p);
370 if (cmd)
371 {
372 cmd->execute();
373 }
374 }
375
378 virtual Projection projection() const = 0;
379
382 virtual bool renderable() const = 0;
383
387 virtual bool computedVisibility() const;
388};
389
390}
391
392#endif /* UFE_CAMERA_H */
Abstract base class for camera interface.
Definition: camera.h:51
virtual void focalLength(float fl)
Definition: camera.h:275
static void notify(const Path &path)
@ Perspective
Definition: camera.h:57
virtual float verticalAperture() const =0
virtual float focalLength() const =0
virtual Projection projection() const =0
virtual void focusDistance(float fd)
Definition: camera.h:298
virtual VerticalApertureUndoableCommand::Ptr verticalApertureCmd(float va)=0
virtual void verticalApertureOffset(float vao)
Definition: camera.h:229
std::shared_ptr< Camera > Ptr
Definition: camera.h:53
Camera()
Constructor.
static Ptr camera(const SceneItem::Ptr &item)
virtual HorizontalApertureUndoableCommand::Ptr horizontalApertureCmd(float ha)=0
virtual float verticalApertureOffset() const =0
virtual void farClipPlane(float fcp)
Definition: camera.h:344
static std::size_t nbObservers(const SceneItem::Ptr &item)
virtual float nearClipPlane() const =0
static bool hasObservers(const Path &path)
Camera(const Camera &)=default
Default copy constructor.
virtual float focusDistance() const =0
virtual float horizontalApertureOffset() const =0
virtual void projection(Projection p)
Definition: camera.h:367
virtual void nearClipPlane(float ncp)
Definition: camera.h:321
static bool removeObserver(const Path &path, const Observer::Ptr &obs)
virtual SceneItem::Ptr sceneItem() const =0
virtual float fStop() const =0
virtual const Path & path() const =0
virtual bool renderable() const =0
virtual FStopUndoableCommand::Ptr fStopCmd(float fs)=0
virtual FocalLengthUndoableCommand::Ptr focalLengthCmd(float fl)=0
static bool addObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
virtual FarClipPlaneUndoableCommand::Ptr farClipPlaneCmd(float fcp)=0
virtual void horizontalAperture(float ha)
Definition: camera.h:160
virtual HorizontalApertureOffsetUndoableCommand::Ptr horizontalApertureOffsetCmd(float hao)=0
virtual float horizontalAperture() const =0
virtual void verticalAperture(float va)
Definition: camera.h:183
virtual NearClipPlaneUndoableCommand::Ptr nearClipPlaneCmd(float ncp)=0
virtual FocusDistanceUndoableCommand::Ptr focusDistanceCmd(float fd)=0
virtual void fStop(float fs)
Definition: camera.h:252
virtual bool computedVisibility() const
static bool hasObservers(Rtid runTimeId)
static bool removeObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
virtual ~Camera()
Destructor.
virtual ProjectionUndoableCommand::Ptr projectionCmd(Projection p)=0
virtual void horizontalApertureOffset(float hao)
Definition: camera.h:206
virtual VerticalApertureOffsetUndoableCommand::Ptr verticalApertureOffsetCmd(float vao)=0
virtual float farClipPlane() const =0
static bool hasObserver(const SceneItem::Ptr &item, const Observer::Ptr &obs)
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< SetValueUndoableCommand > Ptr
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