9 #ifndef IMPEM_DENSITY_HEADER_H 
   10 #define IMPEM_DENSITY_HEADER_H 
   12 #include <IMP/em/em_config.h> 
   43                     " DensityHeader::get_top  the top coordinates of the map " 
   44                         << 
"have not been setup yet " << std::endl);
 
   45     if (ind == 0) 
return xtop_;
 
   46     if (ind == 1) 
return ytop_;
 
   54   void compute_xyz_top(
bool force = 
false);
 
   63   void update_map_dimensions(
int nnx, 
int nny, 
int nnz);
 
   67   void update_cell_dimensions();
 
   69   void show(std::ostream& out = std::cout) 
const;
 
   71   static const unsigned short MAP_FIELD_SIZE = 4;
 
   72   static const unsigned short USER_FIELD_SIZE = 25;
 
   73   static const unsigned short COMMENT_FIELD_NUM_OF = 10;
 
   74   static const unsigned short COMMENT_FIELD_SINGLE_SIZE = 80;
 
   84   float xlen, ylen, zlen;    
 
   85   float alpha, beta, gamma;  
 
   89   float dmin, dmax, dmean;    
 
   92   int user[USER_FIELD_SIZE];  
 
   93   char map[MAP_FIELD_SIZE];   
 
   98   char comments[COMMENT_FIELD_NUM_OF][COMMENT_FIELD_SINGLE_SIZE];
 
  106   float Postmagnification;  
 
  113   float AstigmatismAngle;   
 
  114   float FocusIncrement;     
 
  115   float CountsPerElectron;  
 
  117   float EnergySlitwidth;    
 
  135     is_resolution_set_ = 
true;
 
  136     resolution_ = resolution;
 
  154                     "The origin coordinate should be between 0 and 2");
 
  157         return get_xorigin();
 
  159         return get_yorigin();
 
  161         return get_zorigin();
 
  170     top_calculated_ = 
false;
 
  178     top_calculated_ = 
false;
 
  186     top_calculated_ = 
false;
 
  190   float Objectpixelsize_;  
 
  194   inline int get_nx()
 const { 
return nx_; }
 
  196   inline int get_ny()
 const { 
return ny_; }
 
  198   inline int get_nz()
 const { 
return nz_; }
 
  199   inline int get_number_of_voxels()
 const { 
return nx_ * ny_ * nz_; }
 
  202   inline void set_data_type(
int data_type) { data_type_ = data_type; }
 
  205   float xtop_, ytop_, ztop_;  
 
  206   float xorigin_, yorigin_, zorigin_;  
 
  207   bool top_calculated_;
 
  209   bool is_resolution_set_;
 
  216   friend class cereal::access;
 
  218   template<
class Archive> 
void serialize(Archive &ar) {
 
  219     ar(nxstart, nystart, nzstart, mx, my, mz, xlen, ylen, zlen,
 
  220        alpha, beta, gamma, mapc, mapr, maps, dmin, dmax, dmean,
 
  221        ispg, nsymbt, user, map, machinestamp, rms, nlabl, comments,
 
  222        magic, voltage, Cs, Aperture, Magnification, Postmagnification,
 
  223        Exposuretime, Microscope, Pixelsize, CCDArea, Defocus,
 
  224        Astigmatism, AstigmatismAngle, FocusIncrement, CountsPerElectron,
 
  225        Intensity, EnergySlitwidth, EnergyOffset, Tiltangle, Tiltaxis,
 
  226        MarkerX, MarkerY, lswap, Objectpixelsize_, xtop_, ytop_, ztop_,
 
  227        xorigin_, yorigin_, zorigin_, top_calculated_, resolution_,
 
  228        is_resolution_set_, nx_, ny_, nz_, data_type_);
 
  235 IMPEMEXPORT DensityHeader
 
Exception definitions and assertions. 
 
#define IMP_INTERNAL_CHECK(expr, message)
An assertion to check for internal errors in IMP. An IMP::ErrorException will be thrown. 
 
DensityHeader create_density_header(const algebra::BoundingBoxD< 3 > &bb, float spacing)
Create a header from a bounding box in 3D. 
 
A bounding box in D dimensions. 
 
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node. 
 
A shared base class to help in debugging and things. 
 
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.