FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Vitreous.hpp
1#ifndef __VITREOUS_HPP
2#define __VITREOUS_HPP
3
4#include <ocean/shrimp/VObjectStatus.hpp>
5#include <ocean/shrimp/VEnum.hpp>
6#include <ocean/GLvish/GLProgram.hpp>
7#include <ocean/GLvish/GLTexture.hpp>
8
9#include "VFieldRenderObject.hpp"
10#include <eye/retina/SortedFragmentIterator.hpp>
11
12#include <bundle/BundleProperty.hpp>
13
14namespace Wizt
15{
16
70{
71protected:
72public:
73
78
80
81 struct VolumeState : State
82 {
83 RefPtr<BoundingBox> GridBBox;
84 string theFieldname;
85
87 RepresentationLevels_t RepresentationLevels;
88
89 LastSlices_t LastSlices;
90 };
91
92 RefPtr<State> newState() const override
93 {
94 return new VolumeState();
95 }
96
97 in<Range> myRange;
98 in<double> Opacity,
99 inGamma,
100 inBase;
101
102 in<int> tsCancellationSensitivity,
103 nSlices,
104 SubSample;
105
106 in<bool> do16BitTextures,
107 doGamma,
108 doExp;
109
110 in<int> AMRMinLevel,
111 AMRMaxLevel;
112
113public:
114 TypedSlot<Enum> SpecialOptions;
115
122 Vitreous(const string&name, int, const RefPtr<VCreationPreferences>&VP,
123 const string&inputfieldname);
124
128 ~Vitreous();
129
130 bool update(VRequest&R, double precision) override;
131
132 virtual string statusInfo(VRequest&Context) const;
133
134 virtual RefPtr<GLTexture3D>
135 loadVolume(VGLRenderContext &Context,
136 const RefPtr<GLProgram>&MyProgram,
138 const MultiIndex<3>&Left,
139 const MultiIndex<3>&Right,
140 const MultiIndex<3>&Sub) const;
141
147static string CutCode(const RefPtr<BoundingBox>&CutBox, const string&varname, bool invert);
148
150 {
151 int NumberOfSlices;
152
153 const Vitreous& VR;
155
156 LastSlices_t &LastSlices;
157 bool MaximumIntensityProjection;
158 RefPtr<GLProgram> MyProgram;
159 int done;
160
161 double CutDistance;
162 bool CutFront;
163
166
167 int Left, Right, Sub;
168
169 /*
170 * Using definition to avoid invalid overloaded virtual hidden warning
171 */
172 using SortedFragmentIterator::apply;
173 bool apply(const SpatialFragment&VF) override;
174 };
175};
176
177} //namespace Wizt
178
179#endif // VITREOUS_HPP
_Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(_Tp)) const
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Base class for objects rendering fields on a fiber bundle.
Definition VFieldRenderObject.hpp:23
Base class for objects rendering fields on a fiber bundle via the technique of texture-based volume r...
Definition Vitreous.hpp:70
Fiber::GridInspector< isFragmentedUniformCartesianGrid > GridInspector
This volume renderer allows operations on fragmented uniform Grids.a.
Definition Vitreous.hpp:77
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...
Definition SortedFragmentIterator.hpp:41
An iterator over field fragments that traverses the fragments in back-to-front order as seen from the...
Definition SortedFragmentIterator.hpp:23
Definition Vitreous.hpp:150
Definition Vitreous.hpp:82