BALL  1.4.1
bondOrderAssignment.h
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines