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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
class Bond
: Composite,
PropertyManager
{
%TypeHeaderCode
#include <BALL/KERNEL/bond.h>
%End
public:
typedef short Order;
typedef short Type;
enum BondOrder
{
ORDER__UNKNOWN = 0,
ORDER__SINGLE = 1,
ORDER__DOUBLE = 2,
ORDER__TRIPLE = 3,
ORDER__QUADRUPLE = 4,
ORDER__AROMATIC = 5,
NUMBER_OF_BOND_ORDERS
};
enum BondType
{
TYPE__UNKNOWN = 0,
TYPE__COVALENT = 1,
TYPE__HYDROGEN = 2,
TYPE__DISULPHIDE_BRIDGE = 3,
TYPE__SALT_BRIDGE = 4,
TYPE__PEPTIDE = 5,
NUMBER_OF_BOND_TYPES
};
enum Property
{
NUMBER_OF_PROPERTIES
};
Bond();
Bond(const Bond&, bool deep = true);
Bond(const String&, Atom&, Atom&, Order order = ORDER__UNKNOWN ,
Type type = TYPE__UNKNOWN );
static Bond* createBond(Bond&, Atom&, Atom&);
~Bond() throw();
virtual void clear() throw();
virtual void destroy() throw();
void finalize();
void swap(Bond&);
void setFirstAtom(Atom*);
const Atom* getFirstAtom() const;
Atom* getPartner(const Atom&) const;
void setSecondAtom(Atom*);
const Atom* getSecondAtom() const;
void setName(const String&);
const String& getName() const;
void setOrder(Order);
Order getOrder() const;
bool isAromatic() const;
void setType(Type);
Type getType() const;
float getLength() const;
const Atom* getBoundAtom(const Atom&) const;
bool isBondOf(const Atom&) const;
bool isBound() const;
bool isInterBond() const;
bool isInterBondOf(const AtomContainer&) const;
bool isInterBondOf(const System&) const;
bool isIntraBond() const;
bool isIntraBondOf(const AtomContainer&) const;
bool isIntraBondOf(const System&) const;
virtual bool isValid() const throw();
SIP_PYOBJECT __str__();
%MethodCode
const Atom* a1 = sipCpp->getFirstAtom();
const Atom* a2 = sipCpp->getSecondAtom();
String tmp("Bond {");
if ((a1 != 0) && (a2 != 0))
{
tmp += a1->getFullName();
tmp += " - ";
tmp += a2->getFullName();
tmp += ", ";
tmp += String(sipCpp->getLength());
tmp += " A";
switch (sipCpp->getOrder())
{
case Bond::ORDER__SINGLE:
tmp += ", single";
break;
case Bond::ORDER__DOUBLE:
tmp += ", double";
break;
case Bond::ORDER__AROMATIC:
tmp += ", aromatic";
break;
case Bond::ORDER__TRIPLE:
tmp += ", triple";
break;
default:
tmp += ", unknown";
}
tmp += " }";
}
return PyString_FromString(tmp.c_str());
%End
};
|