1#ifndef __FISH_BONE_FIELD_HPP
2#define __FISH_BONE_FIELD_HPP
6#include <ocean/plankton/VObject.hpp>
7#include <ocean/plankton/VPipeline.hpp>
9#include <ocean/shrimp/VStringList.hpp>
10#include <ocean/shrimp/VTime.hpp>
12#include <bundle/FieldSelector.hpp>
14#include <meta/LIST.hpp>
15#include <meta/NativeTypeList.hpp>
17#include "FieldInputCreator.hpp"
39 VOutput(
const VObject::Deferred&D);
102static bool setValueFromText(
Fiber::Field&i,
const string&s)
146 if (!*
this)
return false;
150 if (!
VVF)
return false;
168struct fishbone_API VSlotContainer::in<Fiber::Field, VSlotContainer::InvalidExpertLevel, void> :
public TypedSlot<Fiber::Field>
170 in(VSlotContainer*that,
const string&name,
int expertLevel=0)
171 : TypedSlot<
Fiber::Field>(that, name, expertLevel)
204 NumberOfInputFields = 1
211 template <
class ...T>
214 if (!MyField)
return false;
218 if (!
VVF)
return false;
230 this->setExpertLevel( MyField,
EL);
240 this->registerOutput( MyField );
253 return Fieldname(
VP);
279 return getField(
VP,
"Positions");
306 return MyField.getTimeSlot();
314 return MyField.getSource();
331 getRefinementLevel(
int Level,
352 using Fish<
double>::IterateLevels;
383template <
class ...FieldTypes>
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
An internal class that stores a couple of textual names.
Definition FieldSelector.hpp:18
A Field is a collection of CreativeArrayBase reference pointers which are accessed via FragmentID obj...
Definition Field.hpp:245
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
Definition FishField.hpp:111
bool provides(const RefPtr< ValuePool > &Context=NullPtr())
Specify which types will be provided by this output field.
Definition FishField.hpp:45
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 ...
The information as returned by a query for Grids.
Definition GridInfo.hpp:21
RefPtr< VManagedObject > getSource() const
Get the source object of this field slot, can be used to check if the field is connected to a source ...
Definition FishField.hpp:312
TypedSlot< VTime > getTimeSlot() const
Return the associated time slot from the source object.
Definition FishField.hpp:304
Fish(const string &field, int ExpertLevel=0)
Constructor, specify slot name for this field.
Definition FishField.cpp:143
RefPtr< Fiber::Field > getCoordinates(const RefPtr< ValuePool > &VP) const
Get the coordinates on this Grid.
Definition FishField.hpp:277
void registerFieldAsOutput()
Make field visible as output.
Definition FishField.hpp:238
double getTime(const RefPtr< ValuePool > &VP, const RefPtr< Fiber::Bundle > &SpaceTime) const override
Get the time from the current field selector.
bool acceptType()
Tell this field to accept certain types.
Definition FishField.hpp:212
void setFieldExpertLevel(int EL)
Set the expert level of this slot.
Definition FishField.hpp:228
string getFieldname(const RefPtr< ValuePool > &VP) const
Get the name of the selected field.
Definition FishField.hpp:251
Construct a Fish object that can operate on various types of a field.
Definition FishField.hpp:385
bool acceptType()
Tell this field to accept certain types.
Definition FishField.hpp:144