FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
FragmentPainter.hpp
1#ifndef __FRAGMENTPAINTER_HPP
2#define __FRAGMENTPAINTER_HPP
3
4#include <bone/FishField.hpp>
5
6#include <ocean/GLvish/VGLRenderObject.hpp>
7#include <ocean/GLvish/BoundingBox.hpp>
8#include <ocean/GLvish/Shader.hpp>
9#include <GL/FieldBuffer.hpp>
10#include <bone/FragmentSelector.hpp>
11
12#include <grid/FragmentCluster.hpp>
13
14#include <ocean/shrimp/Options.hpp>
15
16#include "VertexFieldCollection.hpp"
17
18#include <ocean/Anemonia/FloatOrigin.hpp>
19
20namespace Wizt
21{
22
23using namespace Fiber;
24using namespace Eagle;
25
52 , public FloatOrigin
53{
59 TypedSlot<int> MyNumOfRefFragments;
60
61 TypedSlot<Options> MyOptions;
62
63 TypedSlot<double> tsFloatOriginThreshold;
64
65 virtual ~FragmentPainter();
66
71 FragmentPainter(VObject*that, const string&fragmentselectorname = "selection", int EL=5);
72
77 virtual string FragmentSelectionField() const;
78
97 virtual string GLCacheField(const RefPtr<ValuePool>&Context) const;
98
124 virtual RefPtr<ValueSet> CacheableVariables(const RefPtr<ValuePool>&Context) const;
125
130 virtual string VBOCacheKey(const RefPtr<ValuePool>&Context) const;
131
138 virtual RefPtr<VBO::Renderer> createRenderer(VGLRenderContext&Context,
140 const RefPtr<FragmentSelector>&FS) const;
141
145 virtual void updateRenderer(VGLRenderContext&Context,
146 const RefPtr<VBO::Renderer>&R,
148 const RefPtr<FragmentSelector>&FS) const;
149
150
155 //TODO: marked as override, but doesn't
156 virtual Ageable YoungestDependency(const RefPtr<ValuePool>&Context,
158
159
167 virtual bool appendOnDemandFragments(VGLRenderContext&Context,
168 const RefPtr<VBO>&myVBO,
169 int RefinementLevel,
173 const RefPtr<GLProgram>&Shader) const;
174
186 virtual void setRendererParameters(VGLRenderContext&Context,
190 ) const = 0;
191
192 virtual bool FunctorsAreOlderThan(const Ageable&A, const RefPtr<ValuePool>&Context) const;
193
194 virtual void updateFromFunctorsAge(Ageable&A, const RefPtr<ValuePool>&Context) const;
195
199 void renderFragments(Fiber::FragmentCluster&FC,
201 VGLRenderObject::UsedVBO_t&UsedVBO,
202 const RefPtr<GLProgram>&myProgram) const;
203};
204
205
206} // namespace Wizt
207
208#endif // __FRAGMENTPAINTER_HPP
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
A collection of field fragments, as retrieved by a FieldCollection, and possibly stored over many ref...
Definition FragmentCluster.hpp:21
Data structure describing all fields available per fragment, which is a selection of createable data ...
Definition Fragment.hpp:38
Base class for render objects that require a collection of Fields given on a Grid.
Definition VertexFieldCollection.hpp:42
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...
Definition fs/init.hpp:20
A helper class that supports rendering of a collection of fragments from various fields.
Definition FragmentPainter.hpp:53
TypedSlot< FragmentSelector > MyFragmentSelector
The input slot for selecting fragments out of a collection of fragments.
Definition FragmentPainter.hpp:58