|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
A set of lines stored on a Grid. More...
#include <LineSet.hpp>
Classes | |
| struct | FunctorFragmentIterator |
| struct | FunctorPerFrag |
| struct | FunctorPerFrag< LineSet::TComputeScalarDerivative > |
| struct | FunctorPerFrag< LineSet::TComputeTVectorDerivative > |
| struct | FunctorPerFrag< LineSet::TComputeUnitTVectorDerivative > |
| struct | NumberOfLinesIterator |
| struct | PredefinedFieldNames |
| Predefined field names on linesets. More... | |
| struct | SetupStandardFieldIterator |
| struct | TComputeScalarDerivative |
| struct | TComputeTVectorDerivative |
| struct | TComputeUnitTVectorDerivative |
Public Member Functions | |
| LineSet (const WeakPtr< Grid > &G=NullPtr()) | |
| Retrieve a LineSet from a Grid object. | |
| LineSet (const RefPtr< Grid > &G, const RefPtr< CoordsArray_t > &Coords, const RefPtr< LinesetArray_t > &Lineset, const RefPtr< TangentialVector_t > &Tangents=NullPtr()) | |
| Create a new LineSet within a Grid object. | |
| LineSet (Grid &G, const RefPtr< CoordsArray_t > &Coords, const RefPtr< LinesetArray_t > &Lineset, const RefPtr< TangentialVector_t > &Tangents=NullPtr()) | |
| bool | operator= (const WeakPtr< Grid > &G) |
| Assign from Grid pointer, will overwrite all members. | |
| LineSet & | operator= (const LineSet &LS) |
| Assigning from existing LineSet - faster than assigning from Grid pointer since it is just copying pointers. | |
| ~LineSet () | |
| Destructor, cleans up references. | |
| operator bool () const | |
| Return true if line indices are defined, thus this is a set of lines. | |
| bool | operator! () const |
| Inverse operator of the line indices check. | |
| RefPtr< CoordsArray_t > | getCoords (const RefPtr< FragmentID > &f=NullPtr()) const |
| Return coordinate array. | |
| RefPtr< MemCore::ChunkBase > | getCoordsAsMemChunk () const |
| Return Mem ChunkBase of Coordinates Added by Bidur. | |
| RefPtr< MemCore::ChunkBase > | getTangentsAsMemChunk () const |
| Return Mem ChunkBase of Tangential Vectors Added by Bidur. | |
| RefPtr< LinesetArray_t > | getLineset (const RefPtr< FragmentID > &f=NullPtr()) const |
| Return edges information. | |
| template<int N, class T > | |
| RefPtr< Fiber::MemBase > | extractDataFromField (const std::string &fieldname, RefPtr< FragmentID > fragID=NullPtr()) |
| Return data arrays stored on the line. | |
| index_t | NumberOfLines (const RefPtr< FragmentID > &f) const |
| Return the number of lines stored here. | |
| index_t | NumberOfLines () const |
| void | iterateCompatibleFragmentation (const CoordinateFragmentIterator &) |
| void | iterateCompatibleFragmentation (const CoordinateFragmentIteratorWithVertexID &) |
| void | iterateCompatibleFragmentation (const LineVertexIterator &) |
| RefPtr< TangentialVector_t > | getTangentialVectors (const RefPtr< FragmentID > &f=NullPtr(), const string &FieldName=TangentialVectorFieldName) |
| Compute tangential vectors in a grid object, which has a set of lines defined. | |
| RefPtr< TangentialVector_t > | getNormalVectors (const string &FieldName=NormalVectorFieldName) |
| Get the normal vectors, the projected acceleration vectors, for this line set. | |
| RefPtr< FieldID > | ComputeTVectorDerivative (const RefPtr< Grid > &theGrid, const string &F, const string &dF="") |
| RefPtr< FieldID > | ComputeScalarDerivative (const RefPtr< Grid > &theGrid, const string &F, const string &dF="") |
| RefPtr< FieldID > | ComputeUnitTVectorDerivative (const RefPtr< Grid > &theGrid, const string &F, const string &dF="") |
| bool | setupStandardFields (const RefPtr< Grid > &theGrid) |
| Setup some standard fields suitable for lines on this Grid. | |
| RefPtr< Field > | getFieldOnLines (const string &field_name) const |
| LineSet | orient (bool CounterClockWise) |
Static Public Member Functions | |
| static SkeletonID | PerLineSkeletonID () |
| A Skeleton ID for sets of edges, thereby defining lines. | |
| static SkeletonID | ID () |
| static SkeletonID | IDFragmented () |
| static void | ComputeCurveTangents (MultiArray< 1, Eagle::tvector3 > &Tangents, const CreativeIterator< Eagle::PhysicalSpace::point > &Vertices, const LineIndices_t &Line) |
| static RefPtr< TangentialVector_t > | ComputeTangentialVectors (const CoordsArray_t &Vertices, const LinesetArray_t &LinesetArray) |
| Compute tangential vectors along a set of lines. | |
| static RefPtr< TangentialVector_t > | ComputeArcLength (const CoordsArray_t &Vertices, const LinesetArray_t &LinesetArray) |
| static uint32_t | getNumberOfDistinctIndices (const LineSet::LinesetArray_t &lines) |
| static std::string | unfragment (const Grid &GridIn, Grid &GridOut) |
Public Attributes | |
| RefPtr< Skeleton > | Vertices |
| RefPtr< Skeleton > | Lineset |
| RefPtr< Representation > | CartesianVertices |
| RefPtr< Representation > | LinesAsVertices |
| RefPtr< Field > | Coords |
| RefPtr< Field > | TangentialVectors |
| RefPtr< Field > | LineIndices |
| PredefinedFieldNames | FieldNames |
Static Public Attributes | |
| static const char | TangentialVectorFieldName [] = "Tangents" |
| A default name for the field that holds the tangential vectors of a grid describing lines. | |
| static const char | NormalVectorFieldName [] = "NormalVectors" |
| A default name for the field that holds the normal vectors of a grid describing lines. | |
| static const char | ArcLengthFieldName [] = "ArcLength" |
| A default name for the field that holds the respective values of a curve parameter. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| gridop_API RefPtr< Grid > | ExtractTrajectories (Bundle &B, const string &SelectedGridName, double StartTime, double ComaLength, const string &TrajectoryGridName, bool IterateOnlyLoadedSlices) |
| Extract trajectories of the vertices of a Grid over time. | |
A set of lines stored on a Grid.
The Grid must carry Vertices in Cartesian coordinates and a (1,2) Skeleton (dimension 1, depth 2) is a set of edges.
The positions field of this edge set is a set of vector<index_t> which describes the vertices that make up a curve each. This class supports computation of quantities such as defined at http://en.wikipedia.org/wiki/Differential_geometry_of_curves
A Grid object can be easily tested whether it is ("conforms to the concept of") a LineSet:
If the reason for not being a LineSet need to be inspected further, then the members of the LineSet can be investigated.
The index type used for line set indices.
This is a 32 bit unsigned integer because of OpenGL, mostly. OpenGL cannot render 64bit indices, and we want to be able to shuffle the line set indices stored here directly to the graphics card.
| Fiber::LineSet::LineSet | ( | const RefPtr< Grid > & | G, |
| const RefPtr< CoordsArray_t > & | Coords, | ||
| const RefPtr< LinesetArray_t > & | Lineset, | ||
| const RefPtr< TangentialVector_t > & | Tangents = NullPtr() |
||
| ) |
Create a new LineSet within a Grid object.
The Grid object will be modified, and existing information most likely destroyed.
For creating a line set, the following code may be used:
References max(), std::max(), MemCore::Cache::MemCache(), min(), std::min(), PerLineSkeletonID(), and TangentialVectorFieldName.
|
static |
Compute tangential vectors along a set of lines.
This function is computationally intensive.
References Fiber::HyperslabParameters::count().
Referenced by getTangentialVectors().
| RefPtr< LineSet::TangentialVector_t > Fiber::LineSet::getTangentialVectors | ( | const RefPtr< FragmentID > & | f = NullPtr(), |
| const string & | FieldName = TangentialVectorFieldName |
||
| ) |
Compute tangential vectors in a grid object, which has a set of lines defined.
The resulting field is stored at the Grid.
| FieldName | The name of the field under which the tangents shall be stored in the current Grid. It may be set to an empty string to disable storage. Even then, it will be stored in this LineSet object (but vanish once the LineSet object dies). |
Make use of timestamps of the involved fields (whatever this means)
Define an exception class here to indicate the many reasons of failures here, instead of just returning a NullPtr.
References ComputeTangentialVectors(), std::cout, std::endl(), getCoords(), and getLineset().
References Fiber::HyperslabParameters::count().
Assign from Grid pointer, will overwrite all members.
Will inspect the new Grid object for comformance to the LineSet properties.
References PerLineSkeletonID().
|
inlinestatic |
A Skeleton ID for sets of edges, thereby defining lines.
This skeleton bundles the vertices and edges per line together. See also the ID() function.
Referenced by LineSet(), LineSet(), and operator=().
Setup some standard fields suitable for lines on this Grid.
Actually nothing is computed yet, just fields will be defined. They come with deferred creation (see class OnDemandCreator ) and will be computed once accessed via a Field's create() function.
|
related |
Extract trajectories of the vertices of a Grid over time.
| B | The Bundle that carries the time evolution of the input Grid and which will be used to host the output Grid. |
| SelectedGridName | The name of the evolving Grid |
| TrajectoryGridName | Name of the new Grid that will carry the trajectories as a LineSet. It will be cached in the Bundle. |
| StartTime | When shall we start the trajectories? Note that the trajectories run \i backward in time, thus they are rather a trail. |
| ComaLength | How long shall the trajectories be? |
| IterateOnlyLoadedSlices | Flag to specify if timesteps that have not yet been loaded into memory should be inspected. This will make the result more precise, but will significantly slow down the process if disc access is required. |
References MemCore::Intercube::addInterface().