FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
VertexFieldCollection.hpp
1#ifndef __VERTEXFIELDCOLLECTION_HPP
2#define __VERTEXFIELDCOLLECTION_HPP
3
4#include <bone/BundleInput.hpp>
5#include <bone/FishField.hpp>
6
7#include <ocean/plankton/VCreator.hpp>
8#include <ocean/GLvish/BoundingBox.hpp>
9#include <ocean/GLvish/ArrayTypes.hpp>
10#include <ocean/GLvish/Shader.hpp>
11
12#include <eagle/PhysicalSpace.hpp>
13
14#include <ocean/shrimp/VEnum.hpp>
15
16#include <GL/fieldGL.hpp>
17#include <GL/FieldBuffer.hpp>
18
19#include <field/Fragment.hpp>
20
21#include "VertexField.hpp"
22
23namespace Wizt
24{
25
33
40class fisheye_API VertexFieldCollection : public Fish<Fiber::Grid>
41 , private std::multimap<string, RefPtr<VertexField> >
42{
44
45public:
46 enum
47 {
57 NumberOfInputFields = 1
58 };
59
62
65
68
70 TypedSlot<Fiber::Field>&insertVertexField(const string&s, const RefPtr<VertexField>&);
71
74
76 RefPtr<VertexField> operator()(const string&s) const;
77
84 getRefinementLevel(int Level,
86 int IndexDepth = 0,
87 const Fiber::BundlePtr&SpaceTime = Fiber::BundlePtr(NullPtr() ) ) const override;
88
89
96 virtual GridSelector myGridSelector(const RefPtr<ValuePool>&VP) const;
97
107 GridSelector getGridSelector(const RefPtr<ValuePool>&VP) const override;
108
137 void retrieveFields(Fiber::FieldCollection&FieldMap,
142 Fiber::Slice&DestGridSlice, const string&HelperDestGridName,
143 bool StoreResult = true);
144
153 int append(const RefPtr<VBO>&myVBO, const VertexFragment&VertexFragments,
154 const RefPtr<GLProgram>&Shader) const;
155
160 bool isOlderThan(const Ageable&A, const RefPtr<ValuePool>&Context) const;
161
162 void updateAge(Ageable&A, const RefPtr<ValuePool>&Context) const;
163
167 RefPtr<StringList> getCurrentFieldnames(const RefPtr<ValuePool>&Context) const;
168
175 {
176 virtual ~Iterator() = 0;
177
178 virtual bool apply(const string&name, const RefPtr<VertexField>&VF) = 0;
179 };
180
182 int iterate(Iterator&It) const;
183};
184
185} // namespace Wizt
186
187#endif // __VERTEXFIELDCOLLECTION_HPP
_Expr< _ValFunClos< _ValArray, _Tp >, _Tp > apply(_Tp __func(_Tp)) const
Convenience class that implements a pointer to a Bundle object but adds some useful member funtions t...
Definition Bundle.hpp:779
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 arbitrarily named Field references.
Definition Fragment.hpp:70
Data structure describing all fields available per fragment, which is a selection of createable data ...
Definition Fragment.hpp:38
Context information to select a grid from within a bundle.
Definition GridSelector.hpp:26
A Grid is a set of Skeleton objects, each of them accessed via some unique SkeletonID object.
Definition Grid.hpp:60
Information per time slice, mainly a set of Grid objects that are accessed via GridID objects.
Definition Slice.hpp:36
Base class for render objects that require a collection of Fields given on a Grid.
Definition VertexFieldCollection.hpp:42
RefPtr< VertexField > & operator[](const string &s)
Retrieve a VertexField for the given name, create one, if required.
RefPtr< VertexField > Positions
The coordinates are a field that will always be available here.
Definition VertexFieldCollection.hpp:61
Fiber::Fragment VertexFragment
Data structure describing all data available per fragment, which is a selection of createable data ar...
Definition VertexFieldCollection.hpp:32
std::nullptr_t NullPtr
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...
Abstract iterator class for inspecting the currently available VertexFields.
Definition VertexFieldCollection.hpp:175