FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
FragmentCluster.hpp
1#ifndef __FIBER_GRID_FRAGMENTCLUSTER_HPP
2#define __FIBER_GRID_FRAGMENTCLUSTER_HPP
3
4
5
6#include <field/Field.hpp>
7#include <grid/Representation.hpp>
8
9#include <field/Fragment.hpp>
10
11#include <aerie/KDTree.hpp>
12
13namespace Fiber
14{
15
21{
32 struct FragmentArray : map<RefPtr<FragmentID>, Fragment, CompareFragmentIDsNumerically>
33 {
35 WeakPtr<Representation> RefinementLevel;
36 };
37
40
41 fragmentcluster_t fragmentcluster;
42
43 int refinement_level;
44 string datafield_name;
45
46 bool apply(const RefPtr<FragmentID>&f, const RefPtr<CreativeArrayBase>&F) override;
47
48 int addField(const RefPtr<Field>&F, int RLevel, const string&internal_name);
49
50public:
53
56
57 MemCore::Ageable YoungestFieldAge,
58 OldestFieldAge;
59
63 void clear();
64
69 int addFields(FieldCollection&Fields, int RLevel,
70 const WeakPtr<Representation>&RefinementLevel);
71
76 {
77 virtual ~Iterator() = 0;
78
80 virtual bool beginLevel(int RefinementLevel,
82
84 virtual bool apply(int RefinementLevel,
87 const Fragment&FragmentData) = 0;
88
90 virtual bool endLevel(int RefinementLevel,
91 const WeakPtr<Representation>&Refinement);
92 };
93
104 int iterate(Iterator&RFI,
106 const string&SelectionField = "Positions") const;
107
108
109// utilize the fragment based fragment selection (specify a fragment by its name to be drawn)
110
111 int iterateStringList( Iterator&RFI,
113 const string&SelectionField = "Positions");
114
115// lod iteration
116 int iterateOneRefClosest( Iterator&RFI, const RefPtr<FragmentSelector>&FS,
117 const string&SelectionField,
119 double equi_dist, unsigned refinement );
120
121};
122
123
124} /* namespace Fiber */
125
126#endif /* __FIBER_GRID_FRAGMENTCLUSTER_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
A collection of arbitrarily named Field references.
Definition Fragment.hpp:70
A collection of field fragments, as retrieved by a FieldCollection, and possibly stored over many ref...
Definition FragmentCluster.hpp:21
Base class for iterators over the fragments of a field.
Definition FragmentID.hpp:249
Data structure describing all fields available per fragment, which is a selection of createable data ...
Definition Fragment.hpp:38
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
Definition fs/init.hpp:20
Iterator object for iterating over a fragment cluster.
Definition FragmentCluster.hpp:76