Chrysalis - Renderer
Toggle main menu visibility
Loading...
Searching...
No Matches
ProjectRenderer.h
Go to the documentation of this file.
1
#ifndef CHRYSALIS_PROJECTRENDERER_H
2
#define CHRYSALIS_PROJECTRENDERER_H
3
4
#include "Project.h"
5
#include "
CursorRenderer.h
"
6
#include "
PatternRenderer.h
"
7
#include "
CartesianRenderer.h
"
8
#include "
BaseRendererObserver.h
"
9
10
namespace
Chrysalis
{
11
class
ProjectRenderer
{
12
public
:
13
explicit
ProjectRenderer
(
MainOpenGLProgram
* program,
CartesianRenderer
* cartesianRenderer,
CursorRenderer
* cursorRenderer);
14
~ProjectRenderer
();
15
16
void
initialize
()
const
;
17
void
addObserver
(
BaseRendererObserver
* observer);
18
19
void
scaleChanged
(
float
scaleFactor,
float
zoomX,
float
zoomY);
20
void
areaSizeChanged
(
float
width,
float
height);
21
void
areaOffsetChanged
(
float
deltaX,
float
deltaY);
22
void
cursorPositionChanged
(
float
x,
float
y)
const
;
23
protected
:
24
void
useProject
(
const
Project* project);
25
26
void
render
()
const
;
27
[[nodiscard]]
bool
prepareNextFrame
()
const
;
28
private
:
29
void
updateProjectionMatrix();
30
31
bool
isInitialized_ =
false
;
32
33
Area
area_;
34
float
scale_ = 10.f;
35
36
glm::mat4x4 projection_{};
37
39
MainOpenGLProgram
* program_;
41
CursorRenderer
* cursorRenderer_;
43
CartesianRenderer
* cartesianRenderer_;
44
std::vector<std::unique_ptr<PatternRenderer>> patternRenderers_;
45
std::vector<BaseRendererObserver*> observers_;
46
};
47
}
48
49
#endif
//CHRYSALIS_PROJECTRENDERER_H
BaseRendererObserver.h
CartesianRenderer.h
CursorRenderer.h
PatternRenderer.h
Chrysalis::Area
Definition
Area.h:5
Chrysalis::BaseRendererObserver
Definition
BaseRendererObserver.h:5
Chrysalis::CartesianRenderer
Definition
CartesianRenderer.h:10
Chrysalis::CursorRenderer
Definition
CursorRenderer.h:9
Chrysalis::MainOpenGLProgram
Definition
MainOpenGLProgram.h:7
Chrysalis::ProjectRenderer::render
void render() const
Definition
ProjectRenderer.cpp:82
Chrysalis::ProjectRenderer::addObserver
void addObserver(BaseRendererObserver *observer)
Definition
ProjectRenderer.cpp:23
Chrysalis::ProjectRenderer::initialize
void initialize() const
Definition
ProjectRenderer.cpp:17
Chrysalis::ProjectRenderer::areaSizeChanged
void areaSizeChanged(float width, float height)
Definition
ProjectRenderer.cpp:39
Chrysalis::ProjectRenderer::useProject
void useProject(const Project *project)
Definition
ProjectRenderer.cpp:27
Chrysalis::ProjectRenderer::cursorPositionChanged
void cursorPositionChanged(float x, float y) const
Definition
ProjectRenderer.cpp:60
Chrysalis::ProjectRenderer::prepareNextFrame
bool prepareNextFrame() const
Definition
ProjectRenderer.cpp:97
Chrysalis::ProjectRenderer::areaOffsetChanged
void areaOffsetChanged(float deltaX, float deltaY)
Definition
ProjectRenderer.cpp:45
Chrysalis::ProjectRenderer::scaleChanged
void scaleChanged(float scaleFactor, float zoomX, float zoomY)
Definition
ProjectRenderer.cpp:51
Chrysalis::ProjectRenderer::~ProjectRenderer
~ProjectRenderer()
Definition
ProjectRenderer.cpp:11
Chrysalis::ProjectRenderer::ProjectRenderer
ProjectRenderer(MainOpenGLProgram *program, CartesianRenderer *cartesianRenderer, CursorRenderer *cursorRenderer)
Definition
ProjectRenderer.cpp:7
Chrysalis
Definition
Area.h:4
renderer
include
ProjectRenderer.h
Generated by
1.17.0