File: ContactContainer.h

package info (click to toggle)
macromoleculebuilder 4.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 118,996 kB
  • sloc: cpp: 23,722; python: 5,098; ansic: 2,101; awk: 145; perl: 144; makefile: 40; sh: 38
file content (54 lines) | stat: -rw-r--r-- 3,295 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* -------------------------------------------------------------------------- *
 *                           MMB (MacroMoleculeBuilder)                       *
 * -------------------------------------------------------------------------- *
 *                                                                            *
 * Copyright (c) 2011-12 by the Author.                                       *
 * Author: Samuel Flores                                                      *
 *                                                                            *
 * See RNABuilder.cpp for the copyright and usage agreement.                  *
 * -------------------------------------------------------------------------- */

#ifndef ContactContainer_H_
#define ContactContainer_H_

#include "BiopolymerClass.h"
#include "ResidueStretchContainer.h"

class MMB_EXPORT ContactContainer : public ResidueStretchContainer <ContactStretch> {
private:
	//vector <ContactStretch> contactStretchVector;
	vector <ContactWithin> contactWithinVector;
    //HuntCrossleyForce huntCrossleyForce;
public:
  	void clear();
  	void validateContact(ContactStretch, BiopolymerClassContainer & myBiopolymerClassContainer);
	void addContactToVector(ContactStretch myContactStretch) ;
	void addContactToVector(ContactStretch myContactStretch, BiopolymerClassContainer & myBiopolymerClassContainer) ;
	void addContactToVector(string myChain, int myStartResidue, int myEndResidue, string myContactScheme, BiopolymerClassContainer & myBiopolymerClassContainer) ;

    void deleteContact(int id);
    void updateContact(int id, string myChain, int myStartResidue, int myEndResidue, string myContactScheme, BiopolymerClassContainer & myBiopolymerClassContainer);

    vector <ContactWithin> & getContactWithinVector() { return contactWithinVector; }
	void validateContactWithin(ContactWithin contactWithin ,  BiopolymerClassContainer & myBiopolymerClassContainer);
	void pushContactWithin(ContactWithin contactWithin, BiopolymerClassContainer & myBiopolymerClassContainer);
	void createContactsWithin( BiopolymerClassContainer & myBiopolymerClassContainer, State & state );
    void deleteContactWithin(int id);
    void updateContactWithin(int id, String chainID, int resID, double radius, String contactScheme, BiopolymerClassContainer & myBiopolymerClassContainer);

	void listDistances( BiopolymerClassContainer & myBiopolymerClassContainer, State & state );


	void printContact(ContactStretch contactStretch);
    void printContact(int contactIndex) ;
    void printContacts() ;
    //void createHuntCrossleyForce(GeneralForceSubsystem & forces,GeneralContactSubsystem & contacts,ContactSetIndex contactSetLargeSpheres)
    //HuntCrossleyForce & getHuntCrossleyForce();  
	void applyContactsToBiopolymers	(BiopolymerClassContainer & myBiopolymerClassContainer,GeneralContactSubsystem &  contacts,GeneralForceSubsystem & forces,SimbodyMatterSubsystem & matter, LeontisWesthofClass & myLeontisWesthofClass,double excludedVolumeRadius, double excludedVolumeStiffness);
	ContactStretch getContact(int contactIndex);
	int numContacts() ;
    bool hasSharedContact(String chainID, ResidueID startResidueID, ResidueID endResidueID,  String contactScheme) ;
    bool hasSharedContact(ContactStretch contactStretch) ;
};

#endif