FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Texture.hpp
1#ifndef __FIBER_GL_TEXTURE_HPP
2#define __FIBER_GL_TEXTURE_HPP
3
4
5#include <typeinfo>
6#include <eagle/GL/EagleGL.hpp>
7#include <eagle/ColorSpace.hpp>
8
9#include <ocean/GLvish/GLTexture.hpp>
10#include <ocean/GLvish/GLTexture2D.hpp>
11#include <ocean/GLvish/GLTexture3D.hpp>
12
13#include <ocean/GLvish/VGLRenderContext.hpp>
14#include <field/MemArray.hpp>
15
16#include <vishapiversion.h>
17
18#if VISH_API_VERSION_NUMBER<20130701
19#include <fiberop/SliceSelection.hpp>
20#include <memcore/Functor.hpp>
21
22#else
23
24#include <ocean/shrimp/Range.hpp>
25
26#endif
27
28
29
30#include "fishGLDllApi.h"
31
32namespace Fiber
33{
34
35/*
36fishGL_API bool LoadLuminanceTexture(RefPtr<Wizt::GLTexture2D>&Texture,
37 int TextureUnit,
38 const RefPtr<MemBase>&Data);
39*/
40
41
47 const Wizt::Range&R,
48 int TextureUnit,
49 GLenum format,
51 int BitsPerTexel);
52
53
54
55#if VISH_API_VERSION_NUMBER<20130701
61 const Range&R,
63 int TextureUnit,
64 GLenum format,
66 int BitsPerTexel);
67#endif
68
69
74template <int TextureFormat>
85
86
87#if VISH_API_VERSION_NUMBER<20130701
92template <int TextureFormat>
104#endif
105
106
114fishGL_API RefPtr<Wizt::GLTexture3D>
115 createTexture3D(const RefPtr<MemBase>&Data,
116 const type_info&TextureType,
117 const Wizt::Range&R,
118 const MultiIndex<3>&Start,
119 const MultiIndex<3>&End ,
120 const MultiIndex<3>&Step ,
121 int TextureUnit,
122 GLenum format,
123 GLenum internalformat,
124 int BitsPerTexel,
125 double Gamma);
126
127
132template <int TextureFormat>
135 const Wizt::Range&R,
136 double Gamma,
137 const MultiIndex<3>&Start = MIndex(0,0,0),
138 const MultiIndex<3>&End = MIndex(0,0,0),
139 const MultiIndex<3>&Step = MIndex(1,1,1),
140 int TextureUnit = 0,
141 GLenum format = GL_LUMINANCE,
143{
145 Start, End, Step,
146 TextureUnit, format, TextureFormat, glMemSize<TextureFormat>::bits, Gamma);
147}
148
153template <typename TextureStorageType, int TextureFormat = GL_RGBA>
155{
156
163 const Wizt::Range&R,
164 double Gamma,
165 GLenum format,
166 const MultiIndex<3>&Start = MIndex(0,0,0),
167 const MultiIndex<3>&End = MIndex(0,0,0),
168 const MultiIndex<3>&Step = MIndex(1,1,1),
169 int TextureUnit = 0)
170 {
171 return createTexture3D(DataCreator, typeid(TextureStorageType), R, Gamma,
172 Start, End, Step,
174 }
175
182 const Wizt::Range&R,
183 int TextureUnit = 0,
184 GLenum format = GL_LUMINANCE)
185 {
187 TextureUnit, format);
188 }
189
190
191#if VISH_API_VERSION_NUMBER<20130701
198 const Range&R,
199 const SliceSelection&O, const index_t&SliceNumber,
200 int TextureUnit = 0,
201 GLenum format = GL_LUMINANCE)
202 {
205 }
206#endif
207
208
209};
210
225 int slices,
227 const Eagle::FixedArray<double,3>&TOffset,
228 const Eagle::point3&Observer,
229 const Eagle::point3&BBoxMin,
230 const Eagle::point3&BBoxMax,
231 int CancellationCheck = 0xFF,
232
233 double CutDistance = -1,
234 bool CutInFrontOfCutDistance = true);
235
236
237/*
238fishGL_API int renderVolume(const Wizt::VRenderContext&Context,
239 int slices,
240 const RefPtr<Wizt::GLTexture3D>&TXT,
241 const Eagle::point3&Observer,
242 const Eagle::point3&BBoxMin,
243 const Eagle::point3&BBoxMax,
244 int CancellationCheck = 0xFF,
245 double CutDistance = -1,
246 bool CutInFrontOfCutDistance = true);
247*/
248
251fishGL_API void renderQuad(const RefPtr<Wizt::GLTexture2D>&TXT,
252 const Eagle::point3&P00,
253 const Eagle::point3&P01,
254 const Eagle::point3&P10,
255 const Eagle::point3&P11);
256
257
258
259} // GL
260
261#endif // __FIBER_GL_TEXTURE_HPP
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
int renderVolume(VRenderContext &Context, int slices, const FixedArray< double, 3 > &TS, const FixedArray< double, 3 > &TOffset, const Eagle::point3 &Observer, const Eagle::point3 &BBoxMin, const Eagle::point3 &BBoxMax, int CancellationCheck, double CutDistance, bool CutInFrontOfCutDistance)
TODO: Establish caching here via view point/observer direction and VBO's.
Definition Texture.cpp:743
RefPtr< Wizt::GLTexture3D > createTexture3D(const RefPtr< MemBase > &Data, const type_info &TextureType, const Range &RemapToTarget, const MultiIndex< 3 > &Start, const MultiIndex< 3 > &End, const MultiIndex< 3 > &Step, int TextureUnit, GLenum format, GLenum internalformat, int BitsPerTexel, double Gamma)
Load data from a memory array to a 3D OpenGL texture, purely procedural version.
Definition Texture.cpp:643
RefPtr< Wizt::GLTexture2D > createTexture2D(const RefPtr< MemBase > &Data, const type_info &TextureType, const Wizt::Range &RemapToTarget, const SliceSelection &O, const index_t &SliceNumber, int TextureUnit, GLenum format, GLenum internalformat, int BitsPerTexel)
Extract 2D data slice from a 3D memory array to a 2D OpenGL texture.
Definition Texture.cpp:686
IndexTypeConfig< sizeof(void *)>::index_t index_t
Define the index type as according to the size of a pointer, i.e.
Definition Index.hpp:22
Definition Lytica.hpp:7
Template class to load OpenGL textures of a specified type from Memory Arrays.
Definition Texture.hpp:155
static RefPtr< Wizt::GLTexture2D > Plane(const RefPtr< MemBase > &DataCreator, const Wizt::Range &R, int TextureUnit=0, GLenum format=GL_LUMINANCE)
Load data from a 2D memory array to a 2D OpenGL texture.
Definition Texture.hpp:181
static RefPtr< Wizt::GLTexture2D > Plane(const RefPtr< MemBase > &DataCreator, const Range &R, const SliceSelection &O, const index_t &SliceNumber, int TextureUnit=0, GLenum format=GL_LUMINANCE)
Load data from a 3D memory array to a 2D OpenGL texture by slice extraction.
Definition Texture.hpp:197
static RefPtr< Wizt::GLTexture3D > Volume(const RefPtr< MemBase > &DataCreator, const Wizt::Range &R, double Gamma, GLenum format, const MultiIndex< 3 > &Start=MIndex(0, 0, 0), const MultiIndex< 3 > &End=MIndex(0, 0, 0), const MultiIndex< 3 > &Step=MIndex(1, 1, 1), int TextureUnit=0)
Load data from a 3D memory array to a 3D OpenGL texture.
Definition Texture.hpp:162
Definition CreativeIterator.hpp:84