PeriDyno 1.0.0
Loading...
Searching...
No Matches
RenderWindow.h
Go to the documentation of this file.
1
16
17#pragma once
18#include "RenderEngine.h"
19
20namespace dyno
21{
22 // RenderWindow interface
24 {
25 public:
27
33
34 virtual void initialize(int width, int height) {}
35 virtual void mainLoop() {}
36
37 virtual std::shared_ptr<RenderEngine> getRenderEngine() { return mRenderEngine; }
38 virtual void setRenderEngine(std::shared_ptr<RenderEngine> engine) { mRenderEngine = engine; }
39
40 virtual std::shared_ptr<Camera> getCamera() { return mCamera; }
41 virtual void setCamera(std::shared_ptr<Camera> camera) { mCamera = camera; }
42
44 void setRenderParams(const RenderParams& rparams) { mRenderParams = rparams; }
45
46 virtual void setWindowSize(int w, int h);
47
49 inline void setSelectionMode(SelectionMode mode) { mSelectionMode = mode; }
50
51 void toggleImGUI();
52 inline bool showImGUI() { return mShowImWindow; }
53
54 //Screen recording
55 inline bool& isScreenRecordingOn() {
56 return mSaveScreenToggle;
57 }
58
60
61 void setScreenRecordingPath(std::string path) { mScreenRecordingPath = path; }
62
63 void saveScreen(unsigned int frame);
64
65 //Set light direction
66 void setMainLightDirection(glm::vec3 dir);
67
68 protected:
69 std::shared_ptr<RenderEngine> mRenderEngine;
71
72 std::shared_ptr<Camera> mCamera;
73
74 virtual void onSaveScreen(const std::string& filename) {};
75
76 // interface for node picking
77 public:
78 // do region selection
79 virtual const Selection& select(int x, int y, int w, int h);
80
81 // set current selection (single)
82 virtual void select(std::shared_ptr<Node> node, int instance = -1, int primitive = -1);
83
84 virtual std::shared_ptr<Node> getCurrentSelectedNode();
85
86 protected:
87 // callback when node is picked by mouse event
88 virtual void onSelected(const Selection& s);
89
91
93
94 bool mShowImWindow = true;
95
96 bool mSaveScreenToggle = false;
98
100 };
101};
virtual void setCamera(std::shared_ptr< Camera > camera)
virtual std::shared_ptr< Camera > getCamera()
void saveScreen(unsigned int frame)
RenderParams & getRenderParams()
virtual std::shared_ptr< RenderEngine > getRenderEngine()
virtual void mainLoop()
std::string mScreenRecordingPath
SelectionMode getSelectionMode()
Selection selectedObject
void setRenderParams(const RenderParams &rparams)
int & screenRecordingInterval()
virtual void onSaveScreen(const std::string &filename)
std::shared_ptr< Camera > mCamera
virtual void onSelected(const Selection &s)
bool & isScreenRecordingOn()
RenderParams mRenderParams
std::shared_ptr< RenderEngine > mRenderEngine
virtual void initialize(int width, int height)
virtual const Selection & select(int x, int y, int w, int h)
void setMainLightDirection(glm::vec3 dir)
SelectionMode mSelectionMode
void setScreenRecordingPath(std::string path)
virtual void setRenderEngine(std::shared_ptr< RenderEngine > engine)
virtual std::shared_ptr< Node > getCurrentSelectedNode()
virtual void setWindowSize(int w, int h)
void setSelectionMode(SelectionMode mode)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25