CIBC:Documentation:SCIRun:DevTasks
From SCIRun Documentation Wiki
SCIRun Developer TODO list
Developer's manual (needs work): information about building releases, unit testing etc. can be found there.
The SCIRun issue tracker is on the gforge site .
SCIRun Externals (dependencies built and packaged with SCIRun)
- Update tetgen repository - currently testing.
-
PNG repository - needs to be reverted to expected version (1.2.35) from version 1.0.12.- done - Update boost repository to 1.48? Seg3D2 and BioMesh3D depend on this repository too.
- Netlib LAPACK 3.4 has overhauled C API. Download, test and decide if current netlib repository (v3.2.1) should up updated.
SCIRun Core
Algorithms
- find and review code where DenseMatrix::solve is used and make sure return values are checked
FiniteElements
- FiniteElements/BuildMatrix/BuildFEMatrix.cc has some incomplete code - see TODOs in code
Util
-
Clean up Environment.ccStill needs some refactoring, since we'd like to enable per-session settings (rather than per-user). - Use log4j C++ port for more flexible logging?
- NotFinished.h: delete
-
RWS.h: delete/replace - StringUtil: keep for wrappers
- Timer.h: replace with boost
- TypeDesc.h: replace with something like Qt's Q_OBJECT type description?
Math
- could the Gaussian class (Core/Math/Gaussian.*) be replaced by Boost normal (Gaussian) distribution?
- Split into Core_LinearAlgebra, Core_MathWrappers
Flagged for review/deprecation/removal
- fft.c
- PiecewiseInterp
- MusilRNG
- MiscMath.h
-
MinMax.h - Mat.c
- linalg.h
- Gaussian.h: see above
- Spline, CatMull
Containers
- Array1: replace with std equivalent
- Look to deprecate/replace with boost most of the types here.
- Would be great to replace LockingHandle with boost::shared_ptr.
Events
- Rewrite?
Thread
- Replace with boost::thread.
Exception
- Consider inheriting/integrating std::exception.
- Research boost::exception.
- Assertion mechanism: make more flexible (e.g. runtime configurable).
Geom
- The name is confusing, since there is also Core_Geometry and Core_GeomInterfaces.
- Extract library: GeometryDisplayablePrimitives for GeomObj and subtypes.
Datatypes
- Change return type of dense(), etc. member functions on Matrix to return shared_ptrs (and in the case of returning self, return a shared_ptr with no-op deleter--although consider shared_from_this idiom).
- Change data store to boost::shared_array
IO
- document input and output file formats
Init
- Move to application layer.
General
-
Move namespace SCIRunAlgo into SCIRun::Algo to remove need for using directives in headers.- do during Qt migration -
notset.h: try to delete - Soloader.cc: clean up attempted loading of Release/Debug libraries
-
XmlParser.*: is it used? Still uses xerces, would like to remove. - sci_system.h: delete
SystemCall
- TempFileManager: Replace with boost?
- SysCallManager: Replace with boost?
Matlab
- Move out of Core
SCIRun Modules
- find and review code where DenseMatrix::solve is used and make sure return values are checked
- review modules to see if any should be deprecated and retired
Forward/Inverse toolkit
SCIRun Networks
Posssibly broken networks
- Packages/BioPSE/nets/Samples/build-misfit-and-localize.srn - GetColumnOrRowFromMatrix doesn't appear to be incrementing columns and updating
BioPSE Package
- BuildBEMatrix UI (Ayla)
- review what to keep (modules and networks) and what to discard (Darrell)
Teem Package and Nrrd Support
- review and start integration plan for upcoming Teem release (Ayla)
Testing
Samples and Regression Testing
- simpler tests for modules
Collaborator code
CUDA support (currently on hold)
- sync Devon Yablonski's branch with trunk (Ayla)
- integrate GPU module code (Ayla)
Documentation
- Here is a list of solvers and wrapped LAPACK functions: LinearAlgebraInSCIRun
- make sure list of modules and categories is up-to-date and add links to newly documented modules (Dan)
Modules Without Documentation
-
GetSliceFromStructuredFieldByIndices- Done AYK 12/19/11: page existed under old module name, redirected old link and updated -
ShowPointPath- Done BE 11/21/11 -
ShowLinePath- Done BE 11/21/11 -
GetFieldData- Done DJS 11/18/11 -
SetFieldData- Done DJS 11/18/11 -
ResampleRegularMesh- Done DJS 12/19/11 -
MapFieldDataOntoNodes-Done DJS 12/19/11 -
MapFieldDataOntoElems- Done DJS 12/19/11 -
CreateMeshFromNrrd-DJS 3/7/12 -
ProjectPointsOntoMesh- 2/15/12 JDT -
ClipFieldByMesh- Done DJS 12/19/11 -
GetDomainStructure- DJS 3/7/12 -
ScaleFieldMeshAndData- DJS 3/7/12 -
RefineMesh- JDT 2/28/12 -
GetMeshQualityField- Brett -
CleanupTetMesh- Dafang -
FairMesh- Brett -
AddKnownsToLinearSystem- Dafang -
SubsampleStructuredFieldByIndices- Ayla -
MapFieldDataOntoNodesRadialbasis- DJS 12/19/2011 -
MatchDomainLabels- Moritz -
EditPath- Brett -
SimulateForwardMagneticField- Moritz -
AlignMeshBoundingBoxes- Brett -
ConvertMeshToIrregularMesh- Dafang -
GetFieldNodes- Dafang -
PadRegularMesh- Ayla -
RemoveUnusedNodes- Brett -
SetFieldNodes- JDT 2/29/12 -
CreateParameterBundle- JDT 2/29/12 -
InsertEnvironmentIntoBundle- JDT 2/29/12 -
CalculateFieldData4- JB 01/17/2012 -
CalculateFieldData5- JB 01/17/2012 -
CalculateProfile- JB 01/17/2012 -
ProjectLocalMaxOnSurface-- see Modules to Deprecate -- JB 01/17/2012 -
QueryFieldData- Ayla - needs test network! -
SplitFieldIntoNrrdData- DJS 3/7/12 -
DefinePeriodicBoundaries- Dafang - GeneratePolarProjection - Moritz - to be deprecated?
- GeneratePolarProjectionOnImage - Moritz - to be deprecated?
-
ApplyFilterToFieldData- JDT 2/29/12 - ApplyTriSurfPhaseFilter
-
CalculateFieldDataMetric- Brett 3/7/12 - SetFieldDataToConstantValue - Josh
-
BuildNrrdGradient- Moritz - FilterPhaseData - Moritz - to be deprecated?
- BuildFEMatrix - Moritz - duplicated in two versions in BioPSE and SCIRun
-
ManageFieldSeries- Ayla - this turned out to be an empty module - ApplyTriSurfArrayPhaseFilter
- ConvertCurveArrayToSurface
CreateFieldArrayFromData- DJS 3/20/12ExtractFieldArrayRange- DJS 3/7/12- GeneratePolarProjectionForFieldArray
- GeneratePolarProjectionOnImageForFieldArray
-
GetFieldFromFieldArray-DJS 3/20/12 -
InsertFieldIntoFieldArray-DJS 3/20/12 -
MergeFieldArray- DJS 3/20/12 -
ReportFieldArrayInfo- DJS 3/20/12 - BuildFEGridMapping - Darrell
- BuildFEGridMappingByDomain - Darrell
-
BuildFESurfRHSDJS 4/2/12 -
BuildFEVolRHSDJS 4/2/12 - BuildSurfaceResistorMatrix
-
WriteFieldArray- DJS 3/20/12 -
StreamMatrixFromDisk- DJS 3/20/12 -
StreamACQFileFromDisk-DJS 3/20/12 -
ReadFieldArray- DJS 3/20/12 -
ReportDataArrayInfo- DJS 3/20/12 -
CalcTMP- DJS 3/20/12 -
AddLinkedNodesToLinearSystemJDT 3/7/12 - CreateScalarMatrix - Brett
-
RemoveZeroRowsAndColumns- JDT 5/2/12 -
RemoveZerosFromMatrix- JDT 5/2/12 -
SelectSubMatrix- Brett - SetSubmatrix - Brett
- CalculateMeshCenter - Brett
- CalculateMeshConnector - Moritz
- GenerateLinearSegments - Moritz
- GenerateMedialAxisPoints - Brett
- GetAllSegmentationBoundaries -jess
- SplitFieldByConnectedRegion - Brett
- SplitFieldByDomain - Brett
- SplitNodesByDomain -jess
GetNetworkFileName- Ayla - test network?ColorMap2DSemantics- Ayla - this turned out to be an empty module- CreateScaleBar - jess
- ShowTextureSurface -jess
- ConvertFieldToNrrd -jess
- BuildDerivedNrrdWithGage
- BuildNrrdGradientAndMagnitude
Modules With Incomplete Or Out-of-date Documentation
-
ShowMatrix- documentation updated AYK 12/6/11 -
ClipFieldByFunction2- documentation updated AYK 12/6/11 - JoinFields - missing module reference - Brett
-
EditMeshBoundingBox - missing module referenceDJS 3/7/12 -
TransformMeshWithTransform- missing module reference</strike> - Done DJS 12/18/11 -
ShowTextureVolume-DJS -
ConvertFieldsToTexture- missing module reference - Ayla -
MaskLatVolWithTriSurf- DJS 3/7/12 -
ConvertMeshCoordinateSystem - empty- done AYK 12/19/11 -
GetFieldBoundary - missing module reference, does this do data interpolation? No it does not interpolate- Done DJS 12/18/11 - BuildMappingMatrix - needs rewrite
-
CalculateVectorMagnitudes- Done DJS 12/18/11 - SelectTimeStepFromNrrd
- ReadField - no desc. for time series and script tabs - Ayla
- ShowFieldGlyphs - needs more detail - Ayla
-
RegisterWithCorrespondences - formatting and bit of cleanup- Documentation done DJS 12/18/11 -
AppendMatrix- Ayla -
GeneratePointSamplesFromField - DJS 2/29/12 - MergeFields
- <strike>CreateLatvol - missing module reference - DJS 12/19/11
-
SmoothVecFieldMedian- DJS 12/19/11 - ShowAndEditCameraWidget
-
SolveInverseProblemWithTikhonovSVD - needs more detail (TODO: Burak)- BE 01/18/2012 -
SolveInverseProblemWithTSVD- needs more detail (TODO: Burak) </strike> - BE 01/18/2012 -
SolveInverseProblemWithTikhonov- missing module reference, updates - Moritz -
BuildEITMatrix- (TODO: Burak and other EIT modules -- send Dana a list of authors) - SetEITGround
- SimulateEITAnalytically
Modules With Duplicated Or Partially Duplicated Functionality
- BuildFEMatrix (SCIRun and BioPSE packages) - these are virtually identical
- partially duplicated functionality: GeneratePointSamplesFromField vs. GeneratePointSamplesFromFieldOrWidget
- partially duplicated functionality: MapFieldDataFromSourceToDestination vs (MapFieldDataFromElemToNode, MapFieldDataFromNodeToElem, MapFieldDataOntoElems, MapFieldDataOntoNodes)
- Virtually identical with differing number of inputs: CalculateFieldData CalculateFieldData2, CalculateFieldData3, etc.
- duplicated functionality: SetFieldDataToConstantValue can be easily performed with SetFieldData or CreateFieldData
- RemoveZeroRowsAndColumns and RemoveZerosFromMatrix do essentially the same thing, with only a little side functionality. These could be combined into one module with the proper options.
Modules To Deprecate?
- FilterPhaseData
- GeneratePolarProjection
- GeneratePolarProjectionOnImage
- ClipFieldWithSeeds - Darrell -Note this module is broken and probably not needed.
-
ProjectLocalMaxOnSurface- deleted -
InterfaceWithCubit- deleted -
InterfaceWithCamal- deleted -
SmoothMesh- deleted -
MesquiteDomain- deleted -
MesquiteMesh- deleted -
TracePoints- deleted
Modules To Rename
- ConvertLatVolDataFromElemToNode and ConvertLatVolDataFromNodeToElem apparently work on LatVolField, StructHexVolField, ImageField, and StuctQuadSurfField, so a better name should be chosen