BALL
1.4.1
|
00001 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H 00002 #define BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H 00003 00004 #ifndef BALL_COMMON_GLOBAL_H 00005 # include <BALL/COMMON/global.h> 00006 #endif 00007 00008 #ifndef BALL_DATATYPE_HASHMAP_H 00009 # include <BALL/DATATYPE/hashMap.h> 00010 #endif 00011 00012 #ifndef BALL_STRUCTURE_BONDORDERS_PARTIALBONDORDERASSIGNMENT_H 00013 # include <BALL/STRUCTURE/BONDORDERS/partialBondOrderAssignment.h> 00014 #endif 00015 00016 namespace BALL 00017 { 00018 class AssignBondOrderProcessor; 00019 class AtomContainer; 00020 class Atom; 00021 class Bond; 00022 00030 class BALL_EXPORT BondOrderAssignment 00031 : public PartialBondOrderAssignment 00032 { 00033 friend class AssignBondOrderProcessor; 00034 00035 public: 00036 // Default constructor 00037 BondOrderAssignment(AssignBondOrderProcessor* abop); 00038 00039 // Destructor 00040 virtual ~BondOrderAssignment(); 00041 00042 // 00043 void clear(); 00044 00046 bool apply(); 00047 00048 // 00049 int getNumberOfNodeExpansions() const {return node_expansions;} 00050 00051 // 00052 int getQueueSize() const {return queue_size;} 00053 00054 // denotes whether the problem could be solved or not 00055 bool valid; 00056 00057 // the result : the set of bond orders for _ALL_ original bonds 00058 HashMap<Bond*, int> bond_order_map; 00059 00060 // the result part2: the atoms with n additional hydrogens 00061 HashMap<Atom*, int> number_of_virtual_hydrogens; 00062 00063 // the virtual atoms and bonds that should be deleted when the next 00064 // solution is applied 00065 vector<Atom*> atoms_to_delete; 00066 //vector<Bond*> bonds_to_delete; 00067 00068 float total_charge; 00069 int node_expansions; 00070 int queue_size; 00071 00072 AtomContainer* ac; 00073 }; 00074 } 00075 #endif // BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H 00076