1#include <anemonefish/ShadedFieldAnemone.hpp>
2#include <anemonefish/CarpetAnemone.hpp>
3#include <ocean/shrimp/VEnum.hpp>
4#include <ocean/Anemonia/ShaderConditionals.hpp>
5#include <eye/retina/Billboard.hpp>
6#include <pond/eye/shaders/ContourLines.hpp>
7#include <anemonefish/Texturizer.hpp>
8#include <eye/shaders/Phong.hpp>
9#include <ocean/Anemonia/FogInjector.hpp>
10#include <eye/retina/FieldVisibilityInjector.hpp>
11#include <ocean/Anemonia/Cursor3DProperties.hpp>
21 VObject::in<VEnum> inMaskMode, inMaskDisplayMode;
22 VObject::in<double> inMaskThreshold;
24 VObject::in<Color> inMaskColor;
25 VObject::in<double> inMaskVisibilityBoost,
29 : inMaskMode(that,
"maskmode",
VEnum{
"Show All",
"Mask",
"No Mask"},
EL)
30 , inMaskDisplayMode(that,
"maskdisplay",
31 VEnum{1,
"Interior" ,
"Exterior" ,
"Stars" ,
"Spikes",
32 "tInterior",
"tStars",
"tSpikes"},
EL+2)
33 , inMaskThreshold(that,
"maskthreshold", 0.5,
EL)
34 , MaskField(that,
"mask",
EL)
35 , inMaskColor(that,
"maskcolor", Color{1,0,0,0.7},
EL)
36 , inMaskVisibilityBoost(that,
"MaskVisibilityBoost", 1.0,
EL+4)
37 , inMaskScaleFactor(that,
"MaskScaleFactor", 0.0,
EL+4)
40 inMaskVisibilityBoost /=
46 that->recognizeInputClass(
"masking");
48 inMaskVisibilityBoost.setProperty(
"min", 1.0);
49 inMaskVisibilityBoost.setProperty(
"max", 1.1);
50 inMaskVisibilityBoost.setProperty<
string>(
"tooltip",
51 "Enhance the visibility of masked points in a strongly visual, though unnatural, way "
52 " by placing them into the foreground of unmasked points.");
54 inMaskScaleFactor.setProperty<
string>(
"tooltip",
55 "Increase visible size of masked points. This increase is dependent on the mask value "
56 "such that heavily masked points are scaled even stronger. For boolean-valued masks "
57 "all increments are identical."
61 inMaskScaleFactor.setProperty(
"min", -.004);
62 inMaskScaleFactor.setProperty(
"max", +.01);
66 void initializeVertexAnemoneMaskProperties(
Anemone&RenderAnemone,
72 RenderAnemone <<
Context <<
"MaskThreshold" << inMaskThreshold;
73 RenderAnemone <<
Context <<
"MaskColor" << inMaskColor;
74 RenderAnemone <<
Context <<
"MaskVisibilityBoost" << inMaskVisibilityBoost;
75 RenderAnemone <<
Context <<
"MaskScaleFactor" << inMaskScaleFactor;
108 in<double,6> inExtendedHeightSensitivity = {
"HeightSensitivity" , 10.0 },
109 inExtendedHeightSensitivityWeight = {
"HeightSensitivityWeight", 0.0 };
117 inCircularHeightDots,
121 inDoConsiderInputAsSRGBColorSpace;
151 string getShaderConditionals(
Anemone&RenderAnemone,
155 bool isValidVertexAnemone(
const Anemone&RenderAnemone,
169 bool initializeVertexAnemone(
Anemone&RenderAnemone,
197 RenderNamespace::glsl
basic_string< char > string
Base class for multidimensional arrays that employ deferred storage, i.e.
Definition CreativeArrayBase.hpp:75
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Identifier for Skeletons within a Grid.
Definition SkeletonID.hpp:24
const std::string & Name() const
Convenience class for drawing billboards using a Geometry Shader.
Definition Billboard.hpp:21
The CarpetAnemone handles a colormap attached to an Anemone.
Definition CarpetAnemone.hpp:62
Handling a hierarchy of fields.
Definition RenderFields.hpp:21
A FieldAnemone with shader support.
Definition ShadedFieldAnemone.hpp:24
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 ContourLines.hpp:18
The context of creating a RenderAnemone.
Definition AnemoneCreationContext.hpp:58
Definition HeightDots.hpp:89
RenderNamespace::glsl vertex_shader(VRenderContext &Context) const override
Vertexshader GLGS code.
Definition HeightDots.cpp:553
string getShaderAttributeName(const TypedSlot< Fiber::Field > &) const override
Get the name of this field as it should be called in the shader program.
Definition HeightDots.cpp:619
bool validateAnemoneData(VRenderContext &theContext, map< string, RefPtr< MemBase > > &AnemoneData, const RefPtr< Fiber::FragmentID > &theFragmentID, const Fiber::SkeletonID &theSkeletonID) const override
Checks for availability of Mask data and the "Mask only" setting: If only masked data should be displ...
Definition HeightDots.cpp:384
RefPtr< BoundingBox > getModifiedBBox(const RefPtr< ValuePool > &Context, CreativeArrayBase &CoordinateFragment, const RefPtr< FragmentID > &theFragmentID, const RefPtr< Fiber::Skeleton > &DestVertexSkeleton, const RefPtr< Fiber::Chart > &chart, bool AllowAsynchLoading) const override
Definition HeightDots.cpp:686
std::string fragment_shader(VRenderContext &Context) const override
Fragmentshader GLSL code that might stem from an text file.
Definition HeightDots.cpp:590
bool addFields(VRequest &Context, Fiber::Info< Fiber::Grid > &iG, RenderFields &FAS, const RefPtr< Fiber::Skeleton > &theVertexSkeleton, const RefPtr< Fiber::Chart > &theChart, string &InfoString) override
Automatically attach a range object to the input field if is a scalar field and no range has been pro...
Definition HeightDots.cpp:235
RenderBasin::Program::Parameters setProgramParameters(RenderBasin::Program::Parameters P, Anemone &RenderAnemone, const GridAnemone::AnemoneCreationContext &ARC, const RefPtr< GridAnemone::AnemoneExplorer > &AE) const override
Callback function to set for instance the number of output vertices for a geometry shader.
Definition HeightDots.cpp:530
Definition HeightDots.hpp:20
Helper class to manage textures used in shaders.
Definition Texturizer.hpp:17