The Intrinsic PDBInfo class, and related classes are:
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 };
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
};
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];} };
Currently under Heavy Construction, please excuse the mess
jcooper@cuhhca.hhmi.columbia.edu