The PDBInfo Class


The Intrinsic PDBInfo class, and related classes are:


Click here to see PDBInfo Class documentation


Class FootNote

class FootNote{
friend class FootNoteMgr;
  int _no;
  LineBuffer * _footNote;
  NonLinearListMgr * _atoms;
  FootNote * _next;
public:
  FootNote(){_footNote=0; _atoms=0; _no=0; _next=0;}
  FootNote(int i){_footNote=0; _atoms=0; _no=i; _next=0;}
  FootNote(const FootNote&);
  ~FootNote();
  int MyNumber() const {return _no;}
  NonLinearListMgr * MyAtoms() const {return _atoms;}
  LineBuffer * MyFootNote() const {return _footNote;}
  FootNote * Next() const {return _next;}
  void AddAtom(const ATom&);
  void AddLineBuffer(LineBuffer&);
  void deleteMyAtoms() { delete _atoms; _atoms = 0; }

#if NEED_OBJECTSTORE
 static os_typespec *get_os_typespec();
#endif

};


Class FootNoteMgr

class FootNoteMgr {
public:
  FootNote  * _footNotes;
  FootNoteMgr(){_footNotes=0;}
  FootNoteMgr(const FootNoteMgr&);
  ~FootNoteMgr();
  void AddFootNote(int, LineBuffer*, NonLinearListMgr* =0);
  void AddFootNote(FootNote&);
  void AddTxt(char*, int);
  void AddAtom(ATom*, int);
  FootNote * FootNotes() const {return _footNotes;}
  FootNote * FindFootNote(ATom *);

#if NEED_OBJECTSTORE
 static os_typespec *get_os_typespec();
#endif

};


Class IntrInfo

class IntrInfo {
friend class IntrPdbFile;
protected:

  IntrInfo();
  IntrInfo(const IntrInfo&);
  ~IntrInfo();
  Compound *_compound;
  double *_origx;
  double *_scale;
  NonCrystTransValueMgr * _matrix;
  TranslationVectorMgr * _tVector;
  Vector * _crystalLength;
  Vector * _crystalAngle;
  SpaceGroup * _spaceGroup;
  FootNoteMgr * _footNotes;

  LineBuffer *_header;
  LineBuffer *_obslte;
  LineBuffer *_compnd;
  LineBuffer *_source;
  LineBuffer *_expdta;
  LineBuffer *_author;
  LineBuffer *_revdat;
  LineBuffer *_sprsde;
  LineBuffer *_jrnl;
  LineBuffer *_remark;

public:



  LineBuffer * MyHeader() const {return _header;}
  LineBuffer * MyObslte() const {return _obslte;}
  LineBuffer * MyCompnd() const {return _compnd;}
  LineBuffer * MySource() const {return _source;}
  LineBuffer * MyExpdta() const {return _expdta;}
  LineBuffer * MyAuthor() const {return _author;}
  LineBuffer * MyRevdat() const {return _revdat;}
  LineBuffer * MySprsde() const {return _sprsde;}
  LineBuffer * MyJrnl() const {return _jrnl;}
  LineBuffer * MyRemark() const {return _remark;}

  float MyResolution() const;
  void AssignSpaceGroup(SpaceGroup& s){ _spaceGroup=&s;}
  void AssignCompound(Compound& c){_compound=&c;}
  void AddCrystalLengthVector(Vector& vector){_crystalLength=&vector;}
  void AddCrystalAngleVector(Vector& vector){_crystalAngle=&vector;}
  SpaceGroup * MySpaceGroup() const {return _spaceGroup;}
  Vector * MyCrystalLengthVector() const {return _crystalLength;}
  Vector * MyCrystalAngleVector() const {return _crystalAngle;}
  Vector * MyTranslationVector(int) const;
  NonCrystTransValueMgr * MyMatrixMgr() const {return _matrix;}
  FootNoteMgr * MyFootNoteMgr() const { return _footNotes;}
  Compound * MyCompound() const {return _compound;}
  TranslationVectorMgr * MyTransVectorMgr() const {return _tVector;}
  void AddOrigx(int, double, double, double, double);
  void AddScale(int, double, double, double, double);
  void NewMatrixMgr(){ // _matrix= new NonCrystTransValueMgr;}
	_matrix = NEW_SEG(INFO_SEG,
	NonCrystTransValueMgr::get_os_typespec(),
	1,NonCrystTransValueMgr)
  }
  void NewTransVectorMgr(){ // _tVector= new TranslationVectorMgr;}
	_tVector = NEW_SEG(INFO_SEG,
	TranslationVectorMgr::get_os_typespec(),
	1,TranslationVectorMgr)
  }
  void NewFootNoteMgr(){ // _footNotes= new FootNoteMgr;}
	_footNotes = NEW_SEG(INFO_SEG,
	FootNoteMgr::get_os_typespec(),
	1,FootNoteMgr)
  }

  void SetMyMatrixMgr(NonCrystTransValueMgr *mx) { _matrix = mx; }
  void SetMyTransVectorMgr(TranslationVectorMgr *tv) { _tVector = tv; }
  void renewMatrix() { //_matrix = 0;  
			 delete _matrix;
			_matrix = 0;
		       // _matrix = new NonCrystTransValueMgr; }
        _matrix = NEW_SEG(INFO_SEG,
        NonCrystTransValueMgr::get_os_typespec(),
        1,NonCrystTransValueMgr)
  }


  void renewVector() { // _tVector = 0; 
			delete _tVector;
			_tVector = 0;
		       // _tVector = new TranslationVectorMgr; }
        _tVector = NEW_SEG(INFO_SEG,
        TranslationVectorMgr::get_os_typespec(),
        1,TranslationVectorMgr)
  }


  // ********************************************************************
  // In following methods, O11 is represented as ORIGX_O(1,1) T1 is 
  // represented as ORIGX_T(1).
  // ***** Caution *****
  // DO NOT try to use ORIGX_O(0, 0) or ORIGX_T(0);
  // ********************************************************************

  double ORIGX_O(int i, int j) const {
    return _origx[(i-(i<1?0:1))*4+j-(i<1?0:1)];
  }
  double ORIGX_T(int i) const {return _origx[i*4-1];}
  double SCALE_S(int i, int j) const {
    return _scale[(i-(i<1?0:1))*4+j-(i<1?0:1)];
  }
  double SCALE_U(int i) const {return _scale[i*4-1];}
};


Back to The PDBLib


Currently under Heavy Construction, please excuse the mess


jcooper@cuhhca.hhmi.columbia.edu