As of v2.0. Aten utilises a plugin system to provide all of it's import / export capabilities, replacing the filters system used in previous versions. The intention behing both systems is very similar - while writing a plugin requires marginally more work than writing a filter, it is more efficient, better integrated with the rest of Aten, and benefits from the ability to use the full C++ language set (whereas filters were always restricted to the extent of the command language.
File plugins implement the FilePluginInterface class, and provide import and/or export functionality for a particular type of file of a specified format. These file type correspond loosely to a Model, Grid, or Trajectory object in Aten, or a forcefield Expression, although there is no restriction imposed on what a particular file plugin can import (despite its designated type).
There are a handful of options that are treated as 'common' to the import and export of all object types, and which are always passed to the plugin doing the reading / writing. Not all the standard options make sense across all of the object types, and which are accessible at the point of import / export depends on which are incorporated into Aten's file dialogs. Some of these options are utilised by the underlying FilePluginInterface (e.g. "keepNames") while others are the responsibility of the plugin to check and act upon (e.g. "preventRebonding").
|cacheAll||bool||Trajectory Import||If true, then all frames from the Trajectory file should be loaded immediately into memory, rather than read in as needed from disk.|
|coordinatesInBohr||bool||Model/Grid/Trajectory Import||Whether imported coordinates of Models or Grids are in Bohr rather than Angstrom. The conversion is made automatically by Aten once the plugin has finished loading data, and there is no need for the plugin to check / act on the value.|
|forceRhombohedral||bool||Model/Grid/Trajectory Import||Whether hexagonal spacegroups should be forced into rhombohedral settings (this setting is usually passed as an argument to the pack() command).|
|keepNames||bool||Model/Trajectory Import||If true, the original atom names read from files are stored in a new skeleton forcefield which is immediately associated to the Model, after which the standard atom name to element conversion is applied to the atoms. In this way, the original names of the atoms can be exported afterwards. This mapping is handled by the createAtom() function of the FilePluginInterface.|
|keepTypes||bool||Model/Grid/Trajectory Import||If true, imported atom names are looked up in all available forcefields, with types (and elements) being assigned if positive matches are found. This mapping is handled by the createAtom() function of the FilePluginInterface.|
|keepView||bool||Model Import||Normally, the view for each individual model is reset after import is complete. If this option is set to true, then this reset is prevented. This is handled by Aten, and there is no need for the plugin to check / act on the value.|
|preventFolding||bool||Model/Grid/Trajectory Import||If a plugin uses the fold() or foldMolecules() Model functions, it should check this value to see whether to proceed with the fold.|
|preventPacking||bool||Model/Grid/Trajectory Import||If a plugin uses the pack() Model functions, it should check this value to see whether to proceed with the pack.|
|preventRebonding||bool||Model/Grid/Trajectory Import||If a plugin uses the calculateBonding() Model functions, it should check this value to see whether to proceed with the rebonding.|
|zMappingType||bool||Model/Grid/Trajectory Import||Affects the type of z-mapping used to convert atom names to element types. This value is used within the createAtom() function of FilePluginInterface.|