FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
OrthoSlice.hpp
1#ifndef _FISHEYE_SCALAR_ORTHOSLICE_HPP
2#define _FISHEYE_SCALAR_ORTHOSLICE_HPP
3
4#include "fisheyescalarDllApi.h"
5
6#include <bone/BundleInput.hpp>
7#include <bone/FishField.hpp>
8
9#include <ocean/shrimp/VObjectStatus.hpp>
10
11#include <ocean/GLvish/VGLRenderObject.hpp>
12#include <ocean/GLvish/BoundingBox.hpp>
13#include <ocean/GLvish/VGLColormap.hpp>
14#include <ocean/GLvish/Shader.hpp>
15
16#include <ocean/eagle/PhysicalSpace.hpp>
17
18#include <eye/retina/TexturedQuad.hpp>
19#include <eye/retina/FieldSlice.hpp>
20#include <eye/retina/VFieldRenderObject.hpp>
21
22#include <bone/FieldObject.hpp>
23
24#include <GL/Texture.hpp>
25
26namespace Wizt
27{
28
29
30using namespace Fiber;
31using namespace Eagle;
32using namespace META;
33
42 virtual public Fish<Skeleton>,
43 public Orientation
44{
45public:
47
49
50 struct FieldState : State, FieldSlice
51 {
52 WeakPtr<Colormap> LastColormap;
53 int RefinementLevel;
54 Ageable TriggerAge;
56
57 int bits;
58
61 Blocks_t Blocks;
62
63 RefPtr<Quad> extract(const RefPtr<FragmentID>&f,
64 const MultiIndex<3>&Dims,
66
68 : bits(8)
69 {}
70
72 {
73// puts("~FieldState()"); fflush(stdout);
74 }
75
76 using FieldSlice::reset;
77
78 void reset()
79 {
80 Blocks.clear();
81 }
82
83 bool empty() const
84 {
85 return Blocks.size() < 1;
86 }
87
88 bool IrregularFragment(const RefPtr<FragmentID>&f, const RefPtr<CreativeArrayBase>&DC) override;
89 };
90
91 RefPtr<State> newState() const override
92 {
93 return new FieldState();
94 }
95
96 TypedSlot<double> SliceLocation;
97 TypedSlot<Enum> Mode;
98 TypedSlot<VColormap> myColormap;
99 TypedSlot<Range> myRange;
100 TypedSlot<double> Transparency;
101
102 TypedSlot<string> DataFunction;
103
105 TypedSlot<int> Multiplicity;
106
108 TypedSlot<double> tsEpsilon;
109
110 OrthoSlice(const string&name, int p, const RefPtr<VCreationPreferences>&VP);
111
112 void setup(const CreationSlots_t&CreationSlots) override;
113
114 bool update(VRequest&R, double precision) override;
115 bool render(VGLRenderContext&Context) const override;
116
117static string createChildname(const string&parent_name)
118 {
119 return "OrthoSliceFor" + parent_name;
120 }
121
122//static RefPtr<VAcceptInfo> accept(const RefPtr<VObject>&vobj);
123
124};
125
126} // namespace Wizt
127
128#endif
129
130
constexpr auto empty(const _Container &__cont) noexcept(noexcept(__cont.empty())) -> decltype(__cont.empty())
void clear() noexcept
size_type size() const noexcept
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Information per time slice, mainly a set of Grid objects that are accessed via GridID objects.
Definition Slice.hpp:36
Render a slice of a scalar field given on a grid in uniform cartesian coordinates,...
Definition OrthoSlice.hpp:44
Base class for objects rendering fields on a fiber bundle.
Definition VFieldRenderObject.hpp:23
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 ...
Class for ranges of types, such as minimum/maximum.
Definition Range.hpp:379
Definition anemonefish/FieldSlice.hpp:23
Convenience class to provide an input slot for selection a coordinate orientation along the X,...
Definition XYZOrientation.hpp:17
Definition OrthoSlice.hpp:51