5 #ifndef BALL_KERNEL_BOND_H
6 #define BALL_KERNEL_BOND_H
8 #ifndef BALL_CONCEPT_PROPERTY_H
12 #ifndef BALL_CONCEPT_COMPOSITE_H
16 #ifndef BALL_CONCEPT_ATOMCONTAINER_H
20 #define BALL_BOND_DEFAULT_FIRST_ATOM 0
21 #define BALL_BOND_DEFAULT_SECOND_ATOM 0
22 #define BALL_BOND_DEFAULT_NAME ""
23 #define BALL_BOND_DEFAULT_ORDER ORDER__UNKNOWN
24 #define BALL_BOND_DEFAULT_TYPE TYPE__UNKNOWN
73 : public Exception::GeneralException
76 NotBound(
const char* file,
int line);
107 ORDER__QUADRUPLE = 4,
113 NUMBER_OF_BOND_ORDERS
129 TYPE__DISULPHIDE_BRIDGE = 3,
131 TYPE__SALT_BRIDGE = 4,
175 Bond(
const Bond& bond,
bool deep =
true);
214 virtual void clear();
223 virtual void destroy();
270 Bond& operator = (
const Bond& bond);
276 void swap(
Bond& bond);
287 void setFirstAtom(
Atom* atom);
292 void setSecondAtom(
Atom* atom);
295 const Atom* getFirstAtom()
const;
297 Atom* getFirstAtom();
300 const Atom* getSecondAtom()
const;
302 Atom* getSecondAtom();
311 Atom* getPartner(
const Atom& atom)
const;
314 void setName(
const String& name);
320 void setOrder(Order bond_order);
323 Order getOrder()
const;
330 bool isAromatic()
const;
333 void setType(Type bond_type);
336 Type getType()
const;
342 float getLength()
const;
349 const Atom* getBoundAtom(
const Atom& atom)
const;
356 Atom* getBoundAtom(
const Atom& atom);
370 bool isBondOf(
const Atom& atom)
const;
377 bool isBound()
const;
386 bool isInterBond()
const;
396 bool isInterBondOf(
const AtomContainer& atom_container)
const;
406 bool isIntraBond()
const;
416 bool isIntraBondOf(
const AtomContainer& atom_container)
const;
428 virtual bool isValid()
const;
436 virtual void dump(std::ostream& s = std::cout,
Size depth = 0)
const;
463 void arrangeBonds_();
467 # ifndef BALL_NO_INLINE_FUNCTIONS
468 # include <BALL/KERNEL/bond.iC>
472 #endif // BALL_KERNEL_BOND_H
#define BALL_BOND_DEFAULT_ORDER
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
#define BALL_CREATE_DEEP(name)
BALL_EXPORT bool operator==(const String &s1, const String &s2)
#define BALL_BOND_DEFAULT_TYPE