34#include <NDEVR/SoftwareService.h>
35#include <NDEVR/PopupInfo.h>
36#include <NDEVR/SelectionTreeManager.h>
37#include <NDEVR/Model.h>
38#include <NDEVR/DesignObjectLookup.h>
39#include <NDEVR/SnapLocation.h>
41#include <NDEVR/UUID.h>
42#include <NDEVR/Dictionary.h>
50 struct ShowPropertiesSettings;
51 class QTModelManagerView;
55 class QCaptureManager;
56 class CachedFactoryIOThread;
59 class ModelEditController;
63 struct FactoryParameters;
65 class ProjectFileManager;
66 class ContextMenuManager;
68 class GraphicsSession;
70 struct CaptureRequest;
111 virtual void addScene(
Scene object,
bool ignore_application_scene =
false)
override;
141 virtual void update(
const Time& time,
const std::function<
void()>& wait_callback)
override;
175 virtual void _qtUpdate(
const Time& time);
176 virtual void _qtUpdateDeleted(
UUID model);
177 virtual void _qtUpdateDeleted();
178 virtual void _qtUpdateAdded();
179 virtual void _qtUpdateModified();
227 void _cleanupMemory();
228 void _refreshModelList();
231 void refreshScene(
UUID object,
bool ignore_application_scene)
override;
234 SelectionTreeManager m_selection_tree_manager;
254#if NDEVR_SUPPORTS_THREADING
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
A thread designed to read and write files using the FactoryIO interface. Thread will perform all acti...
Definition CachedFactoryIOThread.h:47
Provides a constant, unmodifiable pointer that has shared ownership of a dynamically allocated object...
Definition GraphicsPipeline.h:42
A core class where all Design Objects including models, materials, and geometries are stored....
Definition DesignObjectLookup.h:65
Manages all active and inactive tasks for a DesignObjectLookup.
Definition DesignTask.h:28
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:320
A core class within the model heirarchy containing vertex-based data (Usually 3D data) within a set c...
Definition Geometry.h:64
Used for interfacing with a Gaphics engine, such as Vulkan or OpenGL.
Definition QTModelManager.h:75
virtual bool hasGraphicsSession(const DynamicPointer< GraphicsDevice > &device)=0
virtual void clearAll() const =0
virtual void addRequest(const ConstPointer< CaptureRequest > &request)=0
virtual const DynamicPointer< GraphicsSession > & graphicsSession(const DynamicPointer< GraphicsDevice > &device)=0
virtual void removeRequest(const ConstPointer< CaptureRequest > &request)=0
virtual void addGraphicsSession(DynamicPointer< GraphicsSession > session, bool add_cameras=true)=0
virtual void executeRequest(const ConstPointer< CaptureRequest > &request)=0
virtual bool requestHandleManagerUpdating() const =0
virtual bool canServiceCaptureRequests() const =0
Stores a default rendering engine to be used with the application.
Definition QTModelManager.h:91
virtual GraphicsManagerBase * createManager(QTModelManager *manager)=0
static GraphicsManagerFactory * s_factory
Definition QTModelManager.h:98
static GraphicsManagerFactory * DefaultFactory()
static void SetDefaultFactory(GraphicsManagerFactory *factory)
A class that has any number of children that also feed into the log. Can be used to easily collect lo...
Definition LogManager.h:14
Container responsible for storing and setting the appearance of a Model or Geometry within the NDEVR ...
Definition Material.h:51
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
Manages writing to the NDV file and any folder operations for projects. Also responsible for creating...
Definition ProjectFileManager.h:32
A wrapper around DesignObjectLookup that provides signal and slot functionality and adds rendering ca...
Definition QTModelManager.h:105
void onSwapSelectedSignal(Buffer< UUID > old_selected, Buffer< UUID > new_selected)
virtual void addCameraModel(const UUID &camera, const Model &object) override
WindowManager * windowManager()
Definition QTModelManager.h:133
virtual DynamicPointer< QTDesignObject > getQTObject(UUID id)
bool m_is_updating
Definition QTModelManager.h:258
void onCommandExecutedSignal(UUID id)
GraphicsManagerBase * graphicsManager()
void setRequestDeploymentCallback(const String &callback_name, const std::function< void(const UUID &)> &callback)
void onDeleteModel(UUID id)
virtual DynamicPointer< LibraryManager > libraryManager()
void onZoomToModel(SnapLocation location, UUID id, UUID camera)
Buffer< UUID > m_selected_object
Definition QTModelManager.h:244
virtual void addModel(Model object) override
void onCleanupRequestSignal()
void onDeleteCommand(UUID id)
void onUpdateFocus(UUID id, bool focussed)
Buffer< UUID > m_added_objects
Definition QTModelManager.h:241
void onDeleteGeometry(UUID id)
void onZoomToModel(SnapLocation location, UUID id)
void onAddCamera(UUID id)
void onActiveProjectChanged(UUID id)
Time m_last_audit_time
Definition QTModelManager.h:237
void addLayerSignal(Buffer< UUID > id)
QTModelManager(const QTModelManager &manager)=delete
void onShowPropertiesRequested(UUID object)
virtual DesignTaskManager * taskManager() const override
virtual void ShowProperties(const ShowPropertiesSettings &settings)
Buffer< UUID > m_top_level_change
Definition QTModelManager.h:246
void popSelected(const UUID &id, bool signal=true)
Buffer< UUID > m_objects_to_remove
Definition QTModelManager.h:245
virtual void removeSelected(Buffer< UUID > ids)
ContextMenuManager * contextMenuManager()
Definition QTModelManager.h:135
ProjectFileManager * projectFileManager()
Definition QTModelManager.h:158
virtual void saveModel(FactoryParameters &file, bool is_blocking=false)
virtual bool hasBeenModified() const
void onDeleteObject(UUID id)
virtual bool useProjectFolders() const
virtual void startQTUpdate(const TimeSpan &interval)
void onDeleteObjects(Buffer< UUID > ids)
virtual void exportModels(ExportRequest request)
virtual void addLayer(Model object) override
void activeLayerChangedSignal(UUID id)
void onObjectUpdatedSignal(const Buffer< UUID > &ids)
Time m_last_qt_update_time
Definition QTModelManager.h:236
virtual void setWindowManager(WindowManager *manager)
Definition QTModelManager.h:134
virtual void clearSelected() override
virtual Model restoreModel(UUID id) override
QTimer m_auto_save_timer
Definition QTModelManager.h:240
virtual LogManager * logManager() const override
virtual bool canProcessMimeData(const QMimeData *data) const
void onRefreshObject(UUID id)
void deleteObject(UUID id) override
virtual void setActiveLayer(UUID layer_id) override
void onAddCommand(UUID id)
Dictionary< UUID, DynamicPointer< QTDesignObject > > m_qt_design_objects
Definition QTModelManager.h:247
virtual QTModelManagerView * modelManagerView()
void setSelectedToFocus()
const Dictionary< String, std::function< void(const UUID &)> > & requestDeploymentCallbacks()
virtual void requestQTUpdate()
virtual ~QTModelManager()
Buffer< UUID > m_deleted_objects
Definition QTModelManager.h:242
virtual void updateModelTopLevel(const Model &object) override
virtual void processMimeData(const QMimeData *data, PopupInfo origin=PopupInfo())
void onDeleteMaterial(UUID id)
virtual void clearAll() override
UUID m_focused_object
Definition QTModelManager.h:238
void onUpdateCommand(UUID id)
void setGraphicsManager(GraphicsManagerBase *graphics_manager)
Definition QTModelManager.h:160
bool m_needs_cleanup
Definition QTModelManager.h:257
void onAddMaterial(Buffer< UUID > id)
void onAddCameraObject(UUID camera, UUID object)
virtual void setActiveProject(UUID project_id) override
void canOpenProjectSignal(bool can_open_project)
virtual Buffer< DynamicPointer< QTDesignObject > > getQTObjectsByID(const Buffer< UUID > &ids)
virtual void eraseModel(UUID id) override
void onAddGeometry(Buffer< UUID > id)
void onDeleteCamera(UUID id)
void layerUpdatedSignal(UUID id)
virtual void setSelected(Buffer< UUID > ids) override
virtual Buffer< UUID > selected() const
virtual void appendSelected(Buffer< UUID > ids) override
void canImportFileSignal(bool can_import_file)
virtual void stopQTUpdate()
virtual void addScene(Scene object, bool ignore_application_scene=false) override
void addSelected(const UUID &id, bool signal=true)
virtual void setProjectTimeZone()
void onAddScene(Buffer< UUID > id)
virtual void addMaterial(Material object) override
QTimer m_launch_timer
Definition QTModelManager.h:239
virtual void postCommand(const DynamicPointer< DesignCommand > &command) override
DynamicPointer< LibraryManager > m_library_manager
Definition QTModelManager.h:253
virtual void update(const Time &time, const std::function< void()> &wait_callback) override
void canExitApplicationSignal(bool can_exit)
void onModelTopLevelChange(Buffer< UUID > id)
void onAddModel(Buffer< UUID > id)
Buffer< UUID > m_erased_objects
Definition QTModelManager.h:243
void onSelectedSignal(Buffer< UUID > ids, bool selected)
virtual void addGeometry(Geometry object) override
virtual bool hasUserSavedProject() const
Dictionary< String, std::function< void(const UUID &)> > m_request_deployment_callbacks
Definition QTModelManager.h:259
virtual void runCommand(const DynamicPointer< DesignCommand > &command) override
A Qt compatible ItemModel for interfacing with a DesignObjectLookup.
Definition QTModelManagerView.h:44
The root Model that is responsible for storing the underlying data for all Scene Models.
Definition Model.h:492
Software Services provide an interface for adding to or changing the software behavior via functional...
Definition SoftwareService.h:9
Software Service Managers take a Software service to modify the behavior of the software.
Definition SoftwareService.h:15
The core String class for the NDEVR API.
Definition String.h:69
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
Stores a time span, or difference between two times, with an optional start time.
Definition TimeSpan.h:46
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Manages all windows and logic surrounding dialogs and views for displaying and managing any environme...
Definition WindowManager.h:68
SnapLocation
A list of directions that a view can be pointed relative to an object or scene.
Definition ViewLocation.h:40
Stores information related to exporting specific data from the software.
Definition ExportRequest.h:10
A container of input information that is to be filled with output information by an IOFactory.
Definition IOFactory.h:61
Stores settings for setting up and displaying a DesignObjectDialog such as whether the dialog is part...
Definition ShowPropertySettings.h:25