Occupancy policies


struct  ESBTL::No_occupancy_policy< Line_format >
struct  ESBTL::Accept_all_occupancy_policy< Line_format >
struct  ESBTL::Accept_none_occupancy_policy< Line_format >
class  ESBTL::Max_occupancy_policy< Line_format >
class  ESBTL::Min_occupancy_policy< Line_format >
class  ESBTL::Atom_list_occupancy_policy< Line_format >

Detailed Description

This module gathers all methods provided to handle atoms with no alternate location identification and occupancy factor different from 1. An occupancy policy must be a class of the following type:

 template <class Line_format>
 struct Occupancy_policy_concept{
   //check whether an atom can directly be added to a system. 
   //It returns -1 if not, and the number of the system otherwise.
   //Line_format must provide  similar functionalities to ESBTL::PDB::Line_format.
   //line is a line of a molecular data file representing an atom.
   //system_index is the index of the system the line should be added (provided by the selector).
   int add_or_postpone(const Line_format& line_format,const std::string& line,int system_index) const{ ... }
   //This function is called by the builder when the whole file have been read.
   //Potential atom that have not already been inserted can be. The integer returned is
   //the number of atoms added.
   template <class Builder> int finalize(Builder&) const { ... }