FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
CellTensorFunctor.hpp
1#ifndef __FISH_POND_ANEMONEFISH_CellTensorFunctor_HPP
2#define __FISH_POND_ANEMONEFISH_CellTensorFunctor_HPP
3
4#include <memcore/RefPtr.hpp>
5#include <eagle/PhysicalSpace.hpp>
6#include <fiber/field/Field.hpp>
7#include <fiber/grid/SkeletonID.hpp>
8#include <fiber/grid/Grid.hpp>
9#include <aerie/BoundingBox.hpp>
10#include <plankton/VValue.hpp>
11#include <plankton/ValuePool.hpp>
12
13#include "anemonefishDllApi.h"
14
15namespace Wizt
16{
17
19{
20public:
23
24 using metric33 = Eagle::metric33;
25
32 virtual bool computeCellTensor(metric33&theCellTensor,
36 const WeakPtr<Fiber::Grid> & myCurrentGrid,
37 const WeakPtr<Fiber::Chart>& myCurrentChart,
39 ) const = 0;
40
41 virtual CellTensorFunctor*copy() const = 0;
42
43 bool getCellTensor(metric33&theCellTensor,
47 const WeakPtr<Fiber::Grid> & myCurrentGrid,
48 const WeakPtr<Fiber::Chart>& myCurrentChart,
50 ) const;
51
52}; // end CellTensorFunctor class
53
55{
56public:
58
59 bool computeCellTensor(metric33&theCellTensor,
63 const WeakPtr<Fiber::Grid> & myCurrentGrid,
64 const WeakPtr<Fiber::Chart>& myCurrentChart,
66 ) const override;
67
68 CellTensorFunctor*copy() const override;
69};
70
72template <>
74{
75static bool setValueFromText(RefPtr<CellTensorFunctor>&V, const string&s);
76static string Text(const RefPtr<CellTensorFunctor>&);
77
78};
79
80
81template <>
83{
85 {
86 if (!Source)
87 return NullPtr();
88
89 return RefPtr<CellTensorFunctor>( Source->copy() );
90 }
91};
92
93
94
95} // namespace
96
97#endif // __FISH_POND_ANEMONEFISH_CellTensorFunctor_HPP
constexpr _OI copy(_II __first, _II __last, _OI __result)
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
Definition CellTensorFunctor.hpp:19
virtual bool computeCellTensor(metric33 &theCellTensor, Fiber::CreativeArrayBase &FragmentData, const Fiber::SkeletonID &SId, const RefPtr< Eagle::BoundingBox > &BBox, const WeakPtr< Fiber::Grid > &myCurrentGrid, const WeakPtr< Fiber::Chart > &myCurrentChart, const RefPtr< Fiber::Field > &ContainingField) const =0
Definition CellTensorFunctor.hpp:55
std::nullptr_t NullPtr
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...