Todo List

Member AffineAcceleration::operator() (const Point_t &q, const Vector_t &dot_q) const
return negative acceleration, and make Gamma global.

Class ComputeEigenVectors
Derive from a field object

Class DreiBein
Derive from VSkeletonRenderObject instead

Member Expression::ternary (const Iterator< Data > &p, const Iterator< Data1 > &q, const Iterator< Data2 > &r)
This function should really have the signature

Class Expression< Operator >
Complete Iterator implementation for passing-Operator version

Member ExtractTrajectories
Implement option to interrupt the computation, especcially when slow disc access is enabled.

Class F5_polar_point3_float_t
Add HDF5 type

Member F5Bappend_slice (hid_t file_id, const double *time)

Maybe move to another header.

Add consistency check on re-open of an existing group

Member F5Cwrite_regular_surface (hid_t file_id, double time, const char *name, const F5_vec3_point_t *Coords, int Xdims, int Ydims, const char *coordinate_system)
merge with F5Cwrite_regular_surface

Member F5Cwrite_triangular_surface (hid_t file_id, double time, const char *name, const F5_vec3_point_t *Coords, int nCoords, const F5_triangle32_t *Triangles, int nTriangles, const char *coordinate_system)
merge with F5write_triangular_surface

Member F5Fcreate (F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t property_id)
Add consistency check of sustained dataspace properties across multiple fields per representation.

Member F5Fis_linear (F5Path *fpath, const char *fieldname)
Implement. Similar to F5Lread_linear().

Member F5Flink_triangular_surface (F5Path *target, double time, const char *gridname, const F5_vec3_point_t *Coords, int nCoords, const F5_triangle_t *Triangles, int nTriangles, const char *coordinate_system)
make F5Flink_triangular_surface() failsafe. Extend the concept of linking datasets for sharing available for other grid types as well.

Member F5Fwrite (F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Implement, and add consistency check of sustained dataspace properties across multiple fields per representation.

Group F5L
Separate these functions into F5-Dataset functions, with prefix F5D, of the form:

Member F5Lread_linear (hid_t F_id, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
Add error checkings if the used attributes do not exist.

Member F5Lwrite_linear (hid_t R_id, const char *fieldname, int dimension, const hsize_t *dataspace_dims, hid_t fieldtype, const void *base, const void *delta)
Remove dimension parameter, it is clear from the fieldtype's members.

Member F5Lwrite_permutation (hid_t R_id, const char *fieldname, hsize_t size, hsize_t *permutation_indices, hsize_t nvalues, hid_t fieldtype, const void *dataPtr)

implement

add structure function

add possibility to share permutation index datasets

Member F5parameter_delete (const F5ParameterSpace *, const char *name)
Implement.

Member F5parameter_find (const F5ParameterSpace *, const char *name)
Implement.

Member F5parameter_get (F5ParameterSpace *, const char *name)
Implement.

Member F5parameter_load (hid_t FileID)
Implement.

Member F5parameter_save (hid_t FileID, const F5ParameterSpace *)
Implement.

Member F5Rlink_default_vertex_topology (F5Path *grid, const hsize_t target_refinement[3])
Check for an eventually existing "Points" group and handle HDF5 error codes.

Member F5write_particle_positions3fv (hid_t fileID, double time, const char *name, const float *x, const float *y, const float *z, int nCoords)

Implement.

use newer field interface

Member F5write_particle_positions_with_field_d (hid_t fileID, double time, const char *name, const F5_vec3_point_t *Coords, int nCoords, const double *data)

Implement

use newer field interface

Member F5write_polar_particle_positions (hid_t fileID, double time, const char *name, const F5_polar_point3_float_t *Coords, int nCoords)
Implement.

Member F5write_regular_surface_cell_field_dbl (hid_t file_id, double time, const char *name, const F5_vec3_point_t *Coords, int Xdims, int Ydims, const char *fieldname, double *data)
use newer field interface

Member F5write_regular_surface_vertex_field_rgb (hid_t file_id, double time, const char *name, const F5_vec3_point_t *Coords, int Xdims, int Ydims, const char *fieldname, F5_rgb_t *data)
use newer field interface

Member F5write_triangular_surface (hid_t file_id, double time, const char *name, const F5_vec3_point_t *Coords, int nCoords, const F5_triangle32_t *Triangles, int nTriangles)
Use the new Field interface from uniform grids

Member F5Xclose (hid_t obj_id)
Better Error Value than "-1".

Member Fiber::BBoxExpander::expand (const RefPtr< Field > &Coords, RefPtr< BoundingBox > &theBox)
Think about generalization to treatment of BoundingBalls instead. For now this is not done, as BoundingBoxes are used in most practical cases, and various operations can be done more efficient on them. Need also to revise the API to add and merge bounding boxes and bounding balls then.

Member Fiber::Curve::ArcLength::ArcLength (const CurveOperatorData &CurveData, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::Curve::Curvature::Curvature (const CurveOperatorData &CD, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::Curve::CurveQuantity::CurveQuantity (const CurveOperatorData &CD, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::Curve::ProperTime::ProperTime (const CurveOperatorData &CD, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::Curve::StepSize::StepSize (const CurveOperatorData &CurveData, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::Curve::Torsion::Torsion (const CurveOperatorData &CD, const MemBase::Creator_t &C=MemCoreNullPtr())
Implement cache management

Member Fiber::EigenArrays::create (const RefPtr< MemBase > &Data)
this needs improval through using an OnDemandCreator

Class Fiber::FieldSelection
Add iterator class

Class Fiber::LineSet
Yet to be done:
  1. Do really support all differential geometric curve properties
  2. Support fragmented edge fields
  3. Support fragmented coordinate fields (not easy, need to take care of global indices and fragment ID's, if a curve if split among coordinate fragments, might not be able to continue at all, but rather require some recombination routine to be called)
  4. Support other point types than the default one, such to support double and float coordinates, also other dimensionalities and coordinate systems (this is going to become a template nightmare).
  5. Support a parallelization interface such that each curve in the line set can be computed independently by some Thread.

Member Fiber::LineSet::getTangentialVectors (const RefPtr< FragmentID > &f=NullPtr(), const string &FieldName=TangentialVectorFieldName)

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.

Member Fiber::LineSet::IterateLineSetFragment (Iterator &IC, const RefPtr< FragmentID > &f) const
More complete support fragmented edges and more. Now same fragmentataion is assumed for lines and vertices, also same names! This should be checked if this is the case.

Member Fiber::LocalFromWorldPoint::get (const point position, pair< point, string > &data)

should just return a pair<> here as return value, and rather use a fragment ID itself instead of a string

CHECK WHETHER PARAMETERS REALLY NEED TO BE COPIED HERE

Member Fiber::LocalFromWorldPoint::getBorderIntersectionNormal (const point worldposition, const pair< point, string > localpoint, const tvector direction, point &intersection, bivector &normal)
CHECK WHETHER PARAMETERS REALLY NEED TO BE COPIED HERE

Member Fiber::LocalFromWorldPoint::numberOfBordersOfCell (const pair< point, string > localdata, int &hint1, int &hint2)
CHECK WHETHER PARAMETERS REALLY NEED TO BE COPIED HERE

Member Fiber::MultiIndex::linear (const MultiIndex &Dimens) const
Optimize the implemented formula.

Member Fiber::MultiIndex::MultiIndex (const MultiIndex< Dims-1 > &m, const index_t &Slice, int SliceDirection)
Optimize this to peform recursive construction!

Member Fiber::PolynomialArray::locate (T &value) const
Expand to cover non-linear polynomials (currently implementation is trivially just for linear expressions).

Member Fiber::TangentialVectorsAndCurveParameter::TangentialVectorsAndCurveParameter (Grid &G, const string &TangentFieldName=TangentialVectorFieldName, const string &LengthFieldName=CurveParameterFieldName)
Make use of timestamps of the involved fields

Class Fiber::TriangularSurface
Compute area, curvature, ... http://en.wikipedia.org/wiki/Barycentric_coordinates_%28mathematics%29

Member FiberSpace::operator[] (const ID &id)
revise to use FragmentProvider

Member Field::setPersistentData (const RefPtr< MemBase > &Mb, const RefPtr< FragmentID > &=NullPtr(), const RefPtr< MemCore::Cache > &Cache=MemCoreCache::MemCache())
Revise this API

Member GL::ElementRenderer::sortByDepth (Wizt::VRenderContext &Context, const MemCore::RefPtr< Fiber::CreativeArrayBase > &VertexCoordinates, unsigned Discretization=2)
Add memory management

Member Grid::operator[] (const SkeletonID &Sid)
Add thread mutex

Member MultiArrayBase::operator[] (const MultiIndex< N > &I) const
Creation of elements not tested!

Member Representation::getSize () const
Consider the case of unfragmented Positions with fragmented fields.

Class SurfaceView
Derive from... some common base object?

Member UniGridMapper::localCellCoordinatesFromCurviGrid (const point &p, point &uvw, double grid_epsilon=0.0)
remove the un-nice epsilon grid boundary via neighbourhood

Class Wizt::AnalyticGrid
Generalize this to other grid types, and unify it with the Grid generators in the cephalus/ place, such as RandomPointDistribution, PointDistribution, etc. All Grid generators should go into a common "fiber base" location.

Member Wizt::FieldOperatorObject::FieldOperation (VRequest &Context, Fiber::Field &, Fiber::Representation &, Fiber::Representation &FieldIDSource)=0
Ease field identifier creation by sharing of identifier creators among representations.

Class Wizt::SplatRenderObject
Derive from class Programmable instead of doing same stuff here manually. Code is currently messy with VGLRenderContext and VRenderContext mixed.