FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
GridWithCartesianVertices.hpp
1#ifndef __FIBER_GRID_TYPES_GRIDWITHCARTESIANVERTICES_HPP
2#define __FIBER_GRID_TYPES_GRIDWITHCARTESIANVERTICES_HPP
3
4#include "TypedGrid.hpp"
5
6
7namespace Fiber
8{
9
11{
13 Vertices;
14
18
20 CartesianPositions;
21
22 GridWithCartesianVertices(const RefPtr<Grid>&theGrid = nullptr)
23 {
24 assign( theGrid );
25 }
26
27 bool assign(const RefPtr<Grid>&theGrid)
28 {
29 Vertices = nullptr;
30 CartesianVertices = nullptr;
31 CartesianPositions = nullptr;
32
33 if (!TypedGrid::assign(theGrid) ) return false;
34
35 Vertices = theGrid->findVertices();
36 if (!Vertices)
37 return false;
38
39 CartesianVertices = theGrid->getCartesianRepresentation(*Vertices );
40 if (!CartesianVertices)
41 return false;
42
43 CartesianPositions = theGrid->CartesianPositions();
44 if (!CartesianPositions)
45 return false;
46
47 return true;
48 }
49
50 ~GridWithCartesianVertices();
51
52
53 bool isValid() const
54 {
55 return CartesianPositions.valid();
56 }
57
58static GridWithCartesianVertices
59 create( Grid&myGrid, int Dims, const RefPtr<Field>&Positions)
60 {
61 Representation&myCartesianRepresentation = myGrid.makeCartesianRepresentation(Dims);
62 myCartesianRepresentation[ FIBER_POSITIONS ] = Positions;
63
64 return GridWithCartesianVertices( myGrid.self() );
65 }
66};
67
68
69} // namespace Fiber
70
71#endif // __FIBER_GRID_TYPES_GRIDWITHCARTESIANVERTICES_HPP
72
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
Definition GridWithCartesianVertices.hpp:11
RefPtr< Representation > CartesianVertices
Collection of all fields given on vertices relative to cartesian coordinates.
Definition GridWithCartesianVertices.hpp:17
Base class for grid types.
Definition TypedGrid.hpp:47