FOX/ObjCryst++  1.10.X (development)
Todo List
Class CrystVector< T >
check again Blitz++ support in newer gcc versions.
Class ObjCryst::AsymmetricUnit
Currently the initialization of the asymmetric unit is done numerically, slowly. A faster algorithm should be used (using dichotomy), or we could switch to using a table of asymmetric units.
Class ObjCryst::Crystal
exporting (and importing) crystal structures to/from other files format than ObjCryst's XML (eg CIF, and format used by refinement software)
Member ObjCryst::Crystal::CalcDistTable (const bool fast) const
sanitize the result distance table in a more usable structure than the currently used Crystal::mDistTableSq and Crystal::mDistTableIndex.
not using the fast option has not been very much tested...
optimize again. Test if recomputation is needed using Clocks. Use a global option instead of asymUnitMargin.
Member ObjCryst::Crystal::Print (ostream &os=cout) const
one function to print on one line and a PrintLong() function
osthe stream to which the information is outputed (default=cout)
Member ObjCryst::DiffractionDataSingleCrystal::GetIcalc_FullDeriv (std::set< RefinablePar * > &vPar)
Class ObjCryst::MolZAtom
: some flags could be added to mark the fixed/limited nature of the parameters.
Class ObjCryst::ObjRegistry< T >
(?) create two derived classes with the same interface, one which is a const registry (the 'client' registry for RefinableObj), and one which has a non-const access to the registered objects (the 'sub-objects' in RefinableObj).
Class ObjCryst::PolarizationCorr
: extend this to take into account other diffracting & monochromatic geometries.
Member ObjCryst::PowderPattern::SavePowderPattern (const string &filename="powderPattern.out") const
export in other formats (.prf,...), with a list of reflection position for all phases...
Member ObjCryst::PowderPatternDiffraction::mIntensityCorr
: store all corrections in a registry, so that other corrections can more easily be added (? Maybe not that useful, especially since these correction do not need to be displayed to the user ?).
Class ObjCryst::Radiation
also add here information about the polarization of the beam.
Class ObjCryst::RefinableObj
Define more clearly which operations are recursive (ie also modify sub-objects).
Member ObjCryst::RefinableObj::GetLSQ_FullDeriv (const unsigned int, std::set< RefinablePar * > &vPar)
Member ObjCryst::RefinableObj::GetLSQDeriv (const unsigned int, RefinablePar &)
This should be a const method, and the given RefPar should be const too...
Member ObjCryst::RefinableObj::mLSQ_FullDeriv
In development
Member ObjCryst::RefinableObj::RegisterClient (RefinableObj &) const
: the clients should be const, but are not... This need to be fixed...
Member ObjCryst::RefinableObj::XMLInput (istream &is, const XMLCrystTag &tag)
Add an bool XMLInputTag(is,tag) function to recognize all the tags from the stream. So that each inherited class can use the XMLInputTag function from its parent (ie take advantage of inheritance). The children class would first try to interpret the tag, then if unsuccessful would pass it to its parent (thus allowing overloading), etc...
Member ObjCryst::RefinableObj::XMLOutput (ostream &os, int indent=0) const
Use inheritance.. as for XMLInputTag()...
Class ObjCryst::RefinablePar

: define parameters using equations between parameters.

: for complex objects with lots of parameters, give the possibility to define vectors of parameters, all with the same properties, to reduce memory usage.

Class ObjCryst::ScatteringData

Optimize computation for Bijvoet/Friedel mates. To do this, generate an internal list of 'true independent reflections', with two entries for each, for both mates, and make the 'real' reflections only a reference to these reflections.

a lot of cleaning is necessary in the computing of structure factors, for (1) the 'preparation' part (deciding what needs to be recomputed) and (2) to allow anisotropic temperature factors (or other anisotropic parts)

Member ObjCryst::ScatteringData::SetIsIgnoringImagScattFact (const bool b)
this should become useless once we take fully advantage of coupled computation of Structure Factors for Fridel/Bijvoet mates using an internal list of 'fully unique' reflections. Then only one of the mates need to be computed..
Class ObjCryst::ScatteringPower

Anisotropic scattering (temperature factor especially) code, using derived classes

Clarify organization by removing any 'real' data from the top, abstract base class (eg remove Biso and Betaij), and by creating derived classes. Optionnaly 3 classes (used as members of ScatteringPower) could be created, TemperatureFactor, ScatteringFactor, and ResonantScatteringFactor. In any way the design of this class should not evolve, so that code using the ScatteringPower interface will remain compatible whatever modifications are made.

: there is currently a storage for Anisotropic Displacement Parameters, but Debye-Waller calculation is only isotropic.
Member ObjCryst::SpaceGroup::ChangeToAsymmetricUnit (REAL x, REAL y, REAL z) const
Member ObjCryst::SpaceGroup::Print () const
Class ObjCryst::WXCrystObj
Allow the objects to be collabsable. The difficulty is that even if the object is not shown, it is not removed by the Sizer as long as it is not deleted... Needs some testing ! Otherwise it would also be possible to delete and re-create sub-objects when collapsing, but that would be more difficult.
Class ObjCryst::WXFieldRefPar
: allow acces to the parameters limits
Class ObjCryst::WXPowderPatternBackground
Display the list of background points with the refinable intensity. Add th possibility to change the points.
Class ObjCryst::WXPowderPatternGraph
display the difference pattern. Allow to zoom. Display reflection positions for crystalline phases.
Member ObjCryst::ZScatterer::ExportFenskeHallZMatrix (ostream &os)
USe more strict formatting than space-delimited.
Member ObjCryst::ZScatterer::ImportFenskeHallZMatrix (istream &is, bool named=false)
: identify which dihedral angles should not be limited, by analysing a coordination table.
Member ObjCryst::ZScatterer::m3DDisplayIndex
This is still experimental. This is only used for the display of ZPolyhedron, and should be more developped (and it should also be saved in XML files !)