VTK  9.0.1
Backend.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Types.h"
4 
5 namespace RTW
6 {
7  class Backend
8  {
9  public:
10  virtual ~Backend() = default;
11 
12  public:
13  virtual RTWError Init() = 0;
14  virtual void Shutdown() = 0;
15 
16  virtual bool IsSupported(RTWFeature feature) const = 0;
17 
18  virtual RTWData NewData(size_t numItems, RTWDataType, const void *source, const uint32_t dataCreationFlags = 0) = 0;
19  virtual RTWGeometry NewGeometry(const char *type) = 0;
20  virtual RTWTexture NewTexture(const char* type) = 0;
21  virtual RTWLight NewLight3(const char *light_type) = 0;
22  virtual RTWMaterial NewMaterial2(const char *renderer_type, const char *material_type) = 0;
23  virtual RTWVolume NewVolume(const char *type) = 0;
24  virtual RTWTransferFunction NewTransferFunction(const char *type) = 0;
25  virtual RTWRenderer NewRenderer(const char *type) = 0;
26  virtual RTWCamera NewCamera(const char *type) = 0;
27  virtual RTWModel NewModel() = 0;
28  virtual RTWGeometry NewInstance(RTWModel modelToInstantiate, const rtw::affine3f &transform) = 0;
29  virtual RTWFrameBuffer NewFrameBuffer(const rtw::vec2i &size, const RTWFrameBufferFormat format, const uint32_t frameBufferChannels) = 0;
30 
31  virtual void Release(RTWObject) = 0;
32 
33  virtual void AddGeometry(RTWModel, RTWGeometry) = 0;
34  virtual void AddVolume(RTWModel, RTWVolume) = 0;
35 
36  virtual void SetString(RTWObject, const char *id, const char *s) = 0;
37  virtual void SetObject(RTWObject, const char *id, RTWObject other) = 0;
38  virtual void SetData(RTWObject, const char *id, RTWData) = 0;
39  virtual void SetMaterial(RTWGeometry, RTWMaterial) = 0;
40  virtual void Set1i(RTWObject, const char *id, int32_t x) = 0;
41  virtual void Set2i(RTWObject, const char *id, int32_t x, int32_t y) = 0;
42  virtual void Set1f(RTWObject, const char *id, float x) = 0;
43  virtual void Set2f(RTWObject, const char *id, float x, float y) = 0;
44  virtual void Set3i(RTWObject, const char *id, int x, int y, int z) = 0;
45  virtual void Set3f(RTWObject, const char *id, float x, float y, float z) = 0;
46  virtual void Set4f(RTWObject, const char *id, float x, float y, float z, float w) = 0;
47 
48  virtual void RemoveParam(RTWObject, const char *id) = 0;
49 
50  virtual RTWError SetRegion(RTWVolume, void *source, const rtw::vec3i &regionCoords, const rtw::vec3i &regionSize) = 0;
51 
52  virtual void Commit(RTWObject) = 0;
53 
54  virtual float RenderFrame(RTWFrameBuffer, RTWRenderer, const uint32_t frameBufferChannels) = 0;
55 
56  virtual void FrameBufferClear(RTWFrameBuffer, const uint32_t frameBufferChannels) = 0;
57  virtual const void* MapFrameBuffer(RTWFrameBuffer, const RTWFrameBufferChannel) = 0;
58  virtual void UnmapFrameBuffer(const void *mapped, RTWFrameBuffer) = 0;
59 
60  virtual void SetDepthNormalizationGL(RTWFrameBuffer frameBuffer, float clipMin, float clipMax) = 0;
61  virtual int GetColorTextureGL(RTWFrameBuffer frameBuffer) = 0;
62  virtual int GetDepthTextureGL(RTWFrameBuffer frameBuffer) = 0;
63 
64  // Convenience functions (TODO remove)
65  inline void Setf(RTWObject object, const char *id, float x)
66  {
67  Set1f(object, id, x);
68  }
69 
70  inline void Set3fv(RTWObject object, const char *id, const float *xyz)
71  {
72  Set3f(object, id, xyz[0], xyz[1], xyz[2]);
73  }
74 
75  inline void SetVec2f(RTWObject object, const char *id, const rtw::vec2f &v)
76  {
77  Set2f(object, id, v.x, v.y);
78  }
79 
80  };
81 }
RTW::Backend::Commit
virtual void Commit(RTWObject)=0
RTWVolume
struct RTWHandle * RTWVolume
Definition: Types.h:99
RTW::Backend::Set3fv
void Set3fv(RTWObject object, const char *id, const float *xyz)
Definition: Backend.h:70
RTW::Backend::Set1f
virtual void Set1f(RTWObject, const char *id, float x)=0
RTWLight
struct RTWHandle * RTWLight
Definition: Types.h:98
RTW::Backend::NewGeometry
virtual RTWGeometry NewGeometry(const char *type)=0
RTW::Backend::GetColorTextureGL
virtual int GetColorTextureGL(RTWFrameBuffer frameBuffer)=0
rtw::vec2f::y
float y
Definition: Types.h:80
RTW::Backend::UnmapFrameBuffer
virtual void UnmapFrameBuffer(const void *mapped, RTWFrameBuffer)=0
RTWFrameBuffer
struct RTWHandle * RTWFrameBuffer
Definition: Types.h:90
RTWObject
struct RTWHandle * RTWObject
Definition: Types.h:102
Types.h
RTWFrameBufferChannel
RTWFrameBufferChannel
Definition: Types.h:22
vtkX3D::type
@ type
Definition: vtkX3D.h:522
RTW::Backend::SetVec2f
void SetVec2f(RTWObject object, const char *id, const rtw::vec2f &v)
Definition: Backend.h:75
RTW::Backend::Set3f
virtual void Set3f(RTWObject, const char *id, float x, float y, float z)=0
RTW::Backend::IsSupported
virtual bool IsSupported(RTWFeature feature) const =0
RTW::Backend::Setf
void Setf(RTWObject object, const char *id, float x)
Definition: Backend.h:65
RTWModel
struct RTWHandle * RTWModel
Definition: Types.h:94
RTW::Backend::NewTexture
virtual RTWTexture NewTexture(const char *type)=0
RTW::Backend::SetMaterial
virtual void SetMaterial(RTWGeometry, RTWMaterial)=0
RTW
Definition: Backend.h:5
RTW::Backend::NewMaterial2
virtual RTWMaterial NewMaterial2(const char *renderer_type, const char *material_type)=0
RTW::Backend::FrameBufferClear
virtual void FrameBufferClear(RTWFrameBuffer, const uint32_t frameBufferChannels)=0
RTWFeature
RTWFeature
Definition: Types.h:107
RTW::Backend::RenderFrame
virtual float RenderFrame(RTWFrameBuffer, RTWRenderer, const uint32_t frameBufferChannels)=0
RTW::Backend::NewRenderer
virtual RTWRenderer NewRenderer(const char *type)=0
rtw::vec2i
Definition: Types.h:81
RTW::Backend::NewModel
virtual RTWModel NewModel()=0
RTW::Backend::SetObject
virtual void SetObject(RTWObject, const char *id, RTWObject other)=0
rtw::vec2f
Definition: Types.h:80
RTW::Backend::GetDepthTextureGL
virtual int GetDepthTextureGL(RTWFrameBuffer frameBuffer)=0
RTW::Backend::NewFrameBuffer
virtual RTWFrameBuffer NewFrameBuffer(const rtw::vec2i &size, const RTWFrameBufferFormat format, const uint32_t frameBufferChannels)=0
RTW::Backend::~Backend
virtual ~Backend()=default
RTW::Backend::Release
virtual void Release(RTWObject)=0
RTWMaterial
struct RTWHandle * RTWMaterial
Definition: Types.h:97
RTW::Backend::Init
virtual RTWError Init()=0
RTW::Backend::NewData
virtual RTWData NewData(size_t numItems, RTWDataType, const void *source, const uint32_t dataCreationFlags=0)=0
RTW::Backend::MapFrameBuffer
virtual const void * MapFrameBuffer(RTWFrameBuffer, const RTWFrameBufferChannel)=0
RTWGeometry
struct RTWHandle * RTWGeometry
Definition: Types.h:96
rtw::vec2f::x
float x
Definition: Types.h:80
RTWFrameBufferFormat
RTWFrameBufferFormat
Definition: Types.h:16
vtkX3D::size
@ size
Definition: vtkX3D.h:259
RTWTransferFunction
struct RTWHandle * RTWTransferFunction
Definition: Types.h:100
RTW::Backend::Set1i
virtual void Set1i(RTWObject, const char *id, int32_t x)=0
RTW::Backend::NewLight3
virtual RTWLight NewLight3(const char *light_type)=0
RTWTexture
struct RTWHandle * RTWTexture
Definition: Types.h:101
RTW::Backend::Set2f
virtual void Set2f(RTWObject, const char *id, float x, float y)=0
RTW::Backend::Set3i
virtual void Set3i(RTWObject, const char *id, int x, int y, int z)=0
RTW::Backend::Set4f
virtual void Set4f(RTWObject, const char *id, float x, float y, float z, float w)=0
RTW::Backend::Shutdown
virtual void Shutdown()=0
RTW::Backend::SetDepthNormalizationGL
virtual void SetDepthNormalizationGL(RTWFrameBuffer frameBuffer, float clipMin, float clipMax)=0
RTW::Backend
Definition: Backend.h:7
RTW::Backend::NewCamera
virtual RTWCamera NewCamera(const char *type)=0
rtw::affine3f
Definition: Types.h:87
rtw::vec3i
Definition: Types.h:82
RTWData
struct RTWHandle * RTWData
Definition: Types.h:95
RTW::Backend::Set2i
virtual void Set2i(RTWObject, const char *id, int32_t x, int32_t y)=0
RTWRenderer
struct RTWHandle * RTWRenderer
Definition: Types.h:92
RTW::Backend::AddGeometry
virtual void AddGeometry(RTWModel, RTWGeometry)=0
RTW::Backend::NewVolume
virtual RTWVolume NewVolume(const char *type)=0
RTW::Backend::RemoveParam
virtual void RemoveParam(RTWObject, const char *id)=0
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:959
RTW::Backend::SetRegion
virtual RTWError SetRegion(RTWVolume, void *source, const rtw::vec3i &regionCoords, const rtw::vec3i &regionSize)=0
RTW::Backend::SetData
virtual void SetData(RTWObject, const char *id, RTWData)=0
RTWError
RTWError
Definition: Types.h:6
RTW::Backend::NewTransferFunction
virtual RTWTransferFunction NewTransferFunction(const char *type)=0
RTW::Backend::NewInstance
virtual RTWGeometry NewInstance(RTWModel modelToInstantiate, const rtw::affine3f &transform)=0
RTWCamera
struct RTWHandle * RTWCamera
Definition: Types.h:93
RTW::Backend::SetString
virtual void SetString(RTWObject, const char *id, const char *s)=0
RTW::Backend::AddVolume
virtual void AddVolume(RTWModel, RTWVolume)=0
RTWDataType
RTWDataType
Definition: Types.h:59