Field3D
Todo List

Member DenseFieldIO::writeInternal (hid_t layerGroup, typename DenseField< Data_T >::Ptr field)
Tune the chunk size of the gzip call

Member Field3DInputFile::parseLayer (hid_t loc_id, const std::string &partitionName, const std::string &layerName)
Set some sort of flag if we fail during this call. We can't throw exceptions inside hdf5.

Member Field3DInputFile::readMetadata (hid_t metadata_id)
Replace char* with std::string

Member Field3DInputFile::readMetadata (hid_t metadata_id, FieldBase::Ptr field) const
Replace char* with std::string

Member Field3DOutputFile::createNewPartition (const std::string &partitionName, const std::string &layerName, typename Field< Data_T >::Ptr field)
We should probably remove the group on disk if we can't write the mapping

Class FieldIO
Merge this into ClassFactory.

Member FieldRes::FieldRes (const FieldRes &src)
OSS Go over the copy constructing - is it implemented right? 8hr

Class FrustumFieldMapping
Define local perspective space

Member FrustumFieldMapping::getLocalToVoxelMatrix (M44d &result)
Unit test this

File Hdf5Util.cpp
The write attrib calls need some serious cleanup. They should be using scoped objects to open attributes and groups instead of all the replicated close calls.

File Hdf5Util.h
Clean up the attribute read/write functions. Make them throw exceptions when failing.

Member isIdentical (typename Field< Data_T >::Ptr a, typename Field< Data_T >::Ptr b)
This should also check the mapping

Member MACFieldIO::writeInternal (hid_t layerGroup, typename MACField< Data_T >::Ptr field)
Tune the chunk size of the gzip call

Class MatrixFieldMapping
Add calls for easily specifying the transform given grid size, offset, rotation, etc.

Member MatrixFieldMapping::getLocalToVoxelMatrix (M44d &result)
Unit test this

Member MatrixFieldMapping::localToWorldDir (const V3d &lsV, V3d &wsV) const
Generalize and make time-dependent.

Member MatrixFieldMapping::voxelToWorldDir (const V3d &vsV, V3d &wsV) const
Generalize and make time-dependent.

Member MatrixFieldMapping::worldToLocalDir (const V3d &wsV, V3d &lsV) const
Generalize and make time-dependent.

Member MatrixFieldMapping::worldToVoxelDir (const V3d &wsV, V3d &vsV) const
Generalize and make time-dependent.

Class PluginLoader
Look into adding maya-style single-plugin load and unload functions

Class SparseField< Data_T >
Make this class thread safe!

Class SparseField< Data_T >::const_iterator
Code duplication between this and iterator!!!!!!!!!!!!!!!!!!!!!!

Class SparseField< Data_T >::iterator
Code duplication between this and const_iterator !!!!!!!!!!!!!

File SparseFieldIO.h
Use boost::addressof instead of & operator

Member SparseFieldIO::create ()
If the file can't be created hdf5 spits out an ugly error msg, we should make sure that doesn't happen.

Member SparseFieldIO::writeInternal (hid_t layerGroup, typename SparseField< Data_T >::Ptr field)
Tune the chunk size of the gzip call