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;
60 float coarsePenalty(
float atom_type_penalty,
float bond_length_penalty)
const;
66 float finePenalty()
const {
return estimated_bond_length_penalty;}
84 int fixed_virtual_order,
91 const vector<Bond*>& free_bonds,
92 int fixed_virtual_order,
Assignment of bond orders from topology information.
A full or partial solution to the AStar-based bond order assignment problem.
vector< short > bond_orders
float estimated_atom_type_penalty
float finePenalty() const
AssignBondOrderProcessor * abop
bool estimatePenalty_(bool include_heuristic_term=true, HEURISTIC_INDEX heuristic_index=SIMPLE)
float coarsePenalty(float atom_type_penalty, float bond_length_penalty) const
PartialBondOrderAssignment(AssignBondOrderProcessor *parent)
float getAtomTypePenalty(bool include_heuristic_term=true, HEURISTIC_INDEX heuristic_index=SIMPLE)
Convenience function to obtain total atom type penalty value.
~PartialBondOrderAssignment()
float estimateAtomTypePenalty_(Atom *atom, Index atom_index, int fixed_valence, int fixed_virtual_order, int num_free_bonds, HEURISTIC_INDEX heuristic_index)
Estimates the atom type penalty for a given unclosed atom.
float estimateBondLengthPenalty_(Index atom_index, const vector< Bond * > &free_bonds, int fixed_virtual_order, int fixed_valence, int num_free_bonds)
Estimates the bond length penalty for a given unclosed atom.
float estimated_bond_length_penalty
boost::shared_ptr< BondOrderAssignment > convertToFullAssignment()
float coarsePenalty() const