VHISTlib  1.84.0.3018
/daten/ahuesgen/projects/vhist/code/vhistlib/include/vhistdifflib/pathexpander.h
00001 /* $HEADERS
00002  $Id: pathexpander.h 2179 2011-06-24 09:03:24Z ahuesgen $
00003  */
00004 
00005 #ifndef PATHEXPANDER_H
00006 #define PATHEXPANDER_H
00007 
00008 #include <QLinkedList>
00009 
00010 #include "workflowtree.h"
00011 #include "path.h"
00012 #include <QHash>
00013 
00014 namespace vhist
00015 {
00016 
00017 class CostMatrix;
00018 
00019 class VHIST_EXTERN PathExpander
00020 {
00021     private:
00022         const WorkflowTree* m_tree1;
00023         const WorkflowTree* m_tree2;
00024         const CostMatrix* m_costs;
00025 
00026     public: // construction & destruction
00027         PathExpander(const WorkflowTree* tree1, const WorkflowTree* tree2,
00028                 const CostMatrix* costs);
00029         ~PathExpander();
00030 
00031     public:
00032         QLinkedList<NodeId> nodeIds(TreeId treeNo) const;
00033 
00034     public: // getter
00035         bool parentChanged(NodeId node1, const Associations& associations,
00036                 const Associations& revAssociations) const;
00037         float costForAssociation(NodeId node1, NodeId node2,
00038                 const Associations& associations,
00039                 const Associations& revAssociations) const;
00040         float costForUnmatchedNodes(int numOfUnmatchedNodes) const;
00041         float heuristicCosts(const QLinkedList<NodeId>& nodes1,
00042                 const QLinkedList<NodeId>& nodes2) const;
00043         bool calcParentCostsLater(NodeId node1, NodeId node2,
00044                 const Associations& associations,
00045                 const Associations& revAssociations) const;
00046         float calcMissingParentCosts(const Associations& associations,
00047                 const Associations& revAssociations,
00048                 const QHash<NodeId, bool>& parentCostsMissing) const;
00049 };
00050 
00051 } // namespace vhist
00052 
00053 #endif // PATHEXPANDER_H

VHISTlib 1.84.0.3018 of Jun 28 2013, generated by doxygen.