1 #ifndef BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H
2 #define BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H
4 #ifndef BALL_COMMON_GLOBAL_H
8 #ifndef BALL_KERNEL_ATOM_H
12 #ifndef BALL_KERNEL_BOND_H
16 #include <boost/shared_ptr.hpp>
21 class AssignBondOrderProcessor;
22 class BondOrderAssignment;
50 boost::shared_ptr<BondOrderAssignment> convertToFullAssignment();
60 float coarsePenalty(
float atom_type_penalty,
float bond_length_penalty)
const;
63 float coarsePenalty()
const;
66 float finePenalty()
const {
return estimated_bond_length_penalty;}
69 float getAtomTypePenalty(
bool include_heuristic_term =
true, HEURISTIC_INDEX heuristic_index = SIMPLE);
78 bool estimatePenalty_(
bool include_heuristic_term =
true, HEURISTIC_INDEX heuristic_index = SIMPLE);
81 float estimateAtomTypePenalty_(
Atom* atom,
84 int fixed_virtual_order,
86 HEURISTIC_INDEX heuristic_index);
90 float estimateBondLengthPenalty_(
Index atom_index,
91 const vector<Bond*>& free_bonds,
92 int fixed_virtual_order,
114 #endif // BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H