Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfMeshRenderer.h
1/*******************************************************************************
2 * This file is part of Tissue Forge.
3 * Copyright (c) 2022-2024 T.J. Sego and Tien Comlekoglu
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
20#ifndef _MODELS_VERTEX_SOLVER_TFMESHRENDERER_H_
21#define _MODELS_VERTEX_SOLVER_TFMESHRENDERER_H_
22
23#include <rendering/tfSubRenderer.h>
24#include <shaders/tfFlat3D.h>
25
26#include <Magnum/GL/GL.h>
27#include <Magnum/GL/Buffer.h>
28#include <Magnum/GL/Mesh.h>
29#include <Magnum/Shaders/Shaders.h>
30
31
32namespace TissueForge::models::vertex {
33
34
36
42 static MeshRenderer *get();
43
44 HRESULT start(const std::vector<fVector4> &clipPlanes) override;
45
46 HRESULT draw(rendering::ArcBallCamera *camera, const iVector2 &viewportSize, const fMatrix4 &modelViewMat) override;
47
48 private:
49
50 std::vector<Magnum::Vector4> _clipPlanes;
51
52 Magnum::GL::Buffer _bufferFaces{Corrade::Containers::NoCreate};
53 Magnum::GL::Buffer _bufferEdges{Corrade::Containers::NoCreate};
54 Magnum::GL::Mesh _meshFaces{Corrade::Containers::NoCreate};
55 Magnum::GL::Mesh _meshEdges{Corrade::Containers::NoCreate};
56 shaders::Flat3D _shaderFaces{Corrade::Containers::NoCreate};
57 shaders::Flat3D _shaderEdges{Corrade::Containers::NoCreate};
58
59 };
60
61}
62
63#endif // _MODELS_VERTEX_SOLVER_TFMESHRENDERER_H_
Definition tfArcBallCamera.h:66
Definition tfMeshRenderer.h:35
HRESULT start(const std::vector< fVector4 > &clipPlanes) override
Starts the renderer.
HRESULT draw(rendering::ArcBallCamera *camera, const iVector2 &viewportSize, const fMatrix4 &modelViewMat) override
Updates visualization.
Definition tfSubRenderer.h:34
int32_t HRESULT
Definition tf_port.h:255