1#ifndef __FISH_POND_ANEMONEFISH_GridAnemone_HPP
2#define __FISH_POND_ANEMONEFISH_GridAnemone_HPP
4#include <spine/SkeletonOperator.hpp>
5#include <ocean/Anemonia/VRenderObject.hpp>
6#include <ocean/Anemonia/Seagrass.hpp>
7#include <ocean/shrimp/Options.hpp>
8#include <ocean/shrimp/PhysicalSpace.hpp>
10#include <memcore/Timer.hpp>
11#include <bone/FishSlice.hpp>
13#include "CellTensorFunctor.hpp"
14#include "ShaderFields.hpp"
15#include "AnemoneRenderFields.hpp"
17#include "RegionOfInterest.hpp"
19#include "AnemoneCreationContext.hpp"
21#include "anemonefishDllApi.h"
27struct LanternFestivalParameters;
30using AnemoneCreatorDependency = AnemoneRenderFields::AnemoneCreatorDependency;
32class anemonefish_API GridAnemoneState;
33using RefPtrGridAnemoneState = RefPtr<GridAnemoneState,VObject::State>;
37class anemonefish_API GridAnemone;
38struct anemonefish_API GridAnemone::AnemoneCreationContext;
105 in<bool> inFreeze, inShowTerminalOnly;
110 inMinNumberOfElementsPerFragments,
111 inMaxNumberOfElementsPerFragments;
188 Eagle::tvector3 ShiftToCenter;
215 double CoordinateCreationTime = 0.0;
296 using AnemoneRenderStatus = AnemoneRenderFields::AnemoneRenderStatus;
298static const char*getAnemoneRenderStatusDescription(AnemoneRenderStatus);
316 AnemoneRenderStatus raiseAnemone(
Anemone&RenderAnemone,
428 virtual bool isCreatingSupplementaryData(
VRenderContext&theContext,
435 bool update(
VRequest&R,
double precision)
override;
448 enum class SortMethod
456 SortMethod CurrentSortMethod = SortMethod::None;
459 bool renderSeaBed(SeaBed&SB,VRenderContext&
Context)
const;
463 const LanternFestivalParameters&LFP)
const;
470 bool environment_render(VRenderContext&
Context)
const override;
477 TouchIndex_t do_feedback_render(VRenderContext&
Context, TouchIndex_t StartIndex)
const;
483 virtual TouchIndex_t getTouchIndexFragmentIndexMultiplicator(VRenderContext&
Context,
const Fiber::Field&)
const;
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
A Field is a collection of CreativeArrayBase reference pointers which are accessed via FragmentID obj...
Definition Field.hpp:245
Context information to select a grid from within a bundle.
Definition GridSelector.hpp:26
Identifier for Skeletons within a Grid.
Definition SkeletonID.hpp:24
Definition AnemoneCreationContext.hpp:11
Definition GridAnemoneState.hpp:46
Base class for objects that render information given on a Grid.
Definition GridAnemone.hpp:79
virtual AnemoneRenderStatus initializeAnemone(Anemone &RenderAnemone, const AnemoneCreationContext &ARC, const RefPtr< AnemoneExplorer > &AE) const =0
Handling a hierarchy of fields.
Definition RenderFields.hpp:21
Anemone_Context_t operator<<(Anemone &A, VRenderContext &VC)
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...
Special properties that are available optionally in shader code.
Definition AnemoneCreationContext.hpp:36
Definition FloatingAnemone.hpp:57
The context of creating a RenderAnemone.
Definition AnemoneCreationContext.hpp:58
The Anemone Explorer is an object that lives throughout rendering of a set of Anemones.
Definition GridAnemone.hpp:204
An optional interface that is stored by the FloatingAnemoneExplorer on each AnemoneCreator to specify...
Definition GridAnemone.hpp:187
Definition GridAnemone.hpp:132
Internal class to collect fragments and to render them afterwards.
Definition Lanternfish.hpp:21