VTK  9.0.2
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 }
struct RTWHandle * RTWData
Definition: Types.h:95
struct RTWHandle * RTWCamera
Definition: Types.h:93
RTWFrameBufferFormat
Definition: Types.h:17
struct RTWHandle * RTWObject
Definition: Types.h:102
struct RTWHandle * RTWTexture
Definition: Types.h:101
struct RTWHandle * RTWTransferFunction
Definition: Types.h:100
RTWFeature
Definition: Types.h:108
struct RTWHandle * RTWFrameBuffer
Definition: Types.h:90
struct RTWHandle * RTWModel
Definition: Types.h:94
struct RTWHandle * RTWGeometry
Definition: Types.h:96
struct RTWHandle * RTWVolume
Definition: Types.h:99
RTWError
Definition: Types.h:7
RTWDataType
Definition: Types.h:60
struct RTWHandle * RTWMaterial
Definition: Types.h:97
struct RTWHandle * RTWRenderer
Definition: Types.h:92
struct RTWHandle * RTWLight
Definition: Types.h:98
RTWFrameBufferChannel
Definition: Types.h:23
virtual RTWFrameBuffer NewFrameBuffer(const rtw::vec2i &size, const RTWFrameBufferFormat format, const uint32_t frameBufferChannels)=0
virtual void Set1f(RTWObject, const char *id, float x)=0
virtual void Shutdown()=0
virtual RTWModel NewModel()=0
virtual RTWTexture NewTexture(const char *type)=0
virtual void Set1i(RTWObject, const char *id, int32_t x)=0
virtual RTWCamera NewCamera(const char *type)=0
virtual void Set2f(RTWObject, const char *id, float x, float y)=0
virtual void AddVolume(RTWModel, RTWVolume)=0
virtual void Set4f(RTWObject, const char *id, float x, float y, float z, float w)=0
virtual RTWError Init()=0
virtual RTWGeometry NewInstance(RTWModel modelToInstantiate, const rtw::affine3f &transform)=0
virtual RTWRenderer NewRenderer(const char *type)=0
virtual RTWVolume NewVolume(const char *type)=0
virtual bool IsSupported(RTWFeature feature) const =0
virtual void Set3i(RTWObject, const char *id, int x, int y, int z)=0
virtual const void * MapFrameBuffer(RTWFrameBuffer, const RTWFrameBufferChannel)=0
virtual int GetColorTextureGL(RTWFrameBuffer frameBuffer)=0
virtual void SetDepthNormalizationGL(RTWFrameBuffer frameBuffer, float clipMin, float clipMax)=0
virtual RTWTransferFunction NewTransferFunction(const char *type)=0
virtual void Release(RTWObject)=0
void Setf(RTWObject object, const char *id, float x)
Definition: Backend.h:65
void SetVec2f(RTWObject object, const char *id, const rtw::vec2f &v)
Definition: Backend.h:75
virtual void Commit(RTWObject)=0
virtual void SetObject(RTWObject, const char *id, RTWObject other)=0
virtual float RenderFrame(RTWFrameBuffer, RTWRenderer, const uint32_t frameBufferChannels)=0
virtual void SetString(RTWObject, const char *id, const char *s)=0
virtual ~Backend()=default
virtual RTWData NewData(size_t numItems, RTWDataType, const void *source, const uint32_t dataCreationFlags=0)=0
virtual void Set2i(RTWObject, const char *id, int32_t x, int32_t y)=0
virtual void FrameBufferClear(RTWFrameBuffer, const uint32_t frameBufferChannels)=0
virtual void SetMaterial(RTWGeometry, RTWMaterial)=0
virtual void Set3f(RTWObject, const char *id, float x, float y, float z)=0
void Set3fv(RTWObject object, const char *id, const float *xyz)
Definition: Backend.h:70
virtual RTWGeometry NewGeometry(const char *type)=0
virtual void SetData(RTWObject, const char *id, RTWData)=0
virtual RTWLight NewLight3(const char *light_type)=0
virtual RTWMaterial NewMaterial2(const char *renderer_type, const char *material_type)=0
virtual void UnmapFrameBuffer(const void *mapped, RTWFrameBuffer)=0
virtual void RemoveParam(RTWObject, const char *id)=0
virtual RTWError SetRegion(RTWVolume, void *source, const rtw::vec3i &regionCoords, const rtw::vec3i &regionSize)=0
virtual int GetDepthTextureGL(RTWFrameBuffer frameBuffer)=0
virtual void AddGeometry(RTWModel, RTWGeometry)=0
Definition: Backend.h:6
@ type
Definition: vtkX3D.h:522
@ size
Definition: vtkX3D.h:259
float x
Definition: Types.h:80
float y
Definition: Types.h:80
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)