PeriDyno 1.0.0
Loading...
Searching...
No Matches
VtkRenderEngine.h
Go to the documentation of this file.
1
16
17#pragma once
18
19#include <RenderEngine.h>
20
21#include <vtkExternalOpenGLRenderer.h>
22#include <vtkExternalOpenGLRenderWindow.h>
23#include <vtkExternalOpenGLCamera.h>
24#include <vtkExternalLight.h>
25
26#include <vtkActor.h>
27#include <vtkCubeSource.h>
28#include <vtkPlaneSource.h>
29
30#include <vtkSequencePass.h>
31#include <vtkDefaultPass.h>
32#include <vtkLightsPass.h>
33#include <vtkShadowMapPass.h>
34#include <vtkShadowMapBakerPass.h>
35#include <vtkRenderPassCollection.h>
36#include <vtkCameraPass.h>
37#include <vtkOverlayPass.h>
38#include <vtkOpaquePass.h>
39#include <vtkVolumetricPass.h>
40#include <vtkTranslucentPass.h>
41
42#include "VtkVisualModule.h"
43
44namespace dyno
45{
47 {
48 public:
50
51 virtual void initialize() override;
52 virtual void terminate() override;
53 virtual void draw(dyno::SceneGraph* scene, const RenderParams& rparams) override;
54
55 virtual std::string name() const override;
56
57 virtual std::vector<SelectionItem> select(int x, int y, int w, int h) override;
58
59 private:
61 void setCamera(const RenderParams& rparams);
62
63 private:
64 bool m_useOffScreen = true;
65
66 vtkNew<vtkExternalOpenGLRenderer> mVtkRenderer;
67 vtkNew<vtkExternalOpenGLRenderWindow> mVtkWindow;
68 vtkNew<vtkExternalOpenGLCamera> mVtkCamera;
69
70 vtkNew<vtkLight> mVtkLight;
71
72 std::vector<VtkVisualModule*> mVisualModules;
73
74 // ground plane
75 vtkNew<vtkPlaneSource> mPlane;
76 vtkNew<vtkPlaneSource> mPlaneWireFrame;
77 vtkNew<vtkActor> mPlaneActor;
78 vtkNew<vtkActor> mPlaneWireFrameActor;
79
80 // bounding box
81 vtkNew<vtkCubeSource> mSceneCube;
82 vtkNew<vtkActor> mBoxActor;
83
84 // render passes
85 struct
86 {
87 vtkNew<vtkRenderPassCollection> passes;
88 vtkNew<vtkSequencePass> seq;
89
90 vtkNew<vtkShadowMapPass> shadow;
91 vtkNew<vtkShadowMapBakerPass> baker;
92 vtkNew<vtkLightsPass> light;
93 vtkNew<vtkTranslucentPass> translucent;
94 vtkNew<vtkVolumetricPass> volume;
95 vtkNew<vtkOverlayPass> overlay;
96 vtkNew<vtkOpaquePass> opaque;
97
98 vtkNew<vtkCameraPass> cameraPass;
100
101
103
105 };
106};
vtkNew< vtkCameraPass > cameraPass
vtkNew< vtkExternalOpenGLRenderWindow > mVtkWindow
vtkNew< vtkExternalOpenGLCamera > mVtkCamera
void setScene(dyno::SceneGraph *scene)
virtual std::string name() const override
vtkNew< vtkVolumetricPass > volume
vtkNew< vtkExternalOpenGLRenderer > mVtkRenderer
vtkNew< vtkActor > mPlaneActor
friend struct GatherVisualModuleAction
struct dyno::VtkRenderEngine::@340163273235376101235017354364217037303154346237 mRenderPasses
virtual void initialize() override
vtkNew< vtkShadowMapPass > shadow
vtkNew< vtkOverlayPass > overlay
vtkNew< vtkLightsPass > light
void setCamera(const RenderParams &rparams)
virtual std::vector< SelectionItem > select(int x, int y, int w, int h) override
virtual void draw(dyno::SceneGraph *scene, const RenderParams &rparams) override
vtkNew< vtkPlaneSource > mPlaneWireFrame
vtkNew< vtkLight > mVtkLight
vtkNew< vtkTranslucentPass > translucent
vtkNew< vtkPlaneSource > mPlane
std::vector< VtkVisualModule * > mVisualModules
vtkNew< vtkShadowMapBakerPass > baker
vtkNew< vtkActor > mBoxActor
vtkNew< vtkActor > mPlaneWireFrameActor
vtkNew< vtkRenderPassCollection > passes
vtkNew< vtkCubeSource > mSceneCube
vtkNew< vtkOpaquePass > opaque
virtual void terminate() override
vtkNew< vtkSequencePass > seq
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
int scene
Definition GltfFunc.h:20