MeshKit
1.0
|
00001 //-----------------------------------C++-------------------------------------// 00002 // File: src/algs/Dijkstra.hpp 00003 // Wednesday February 11 10:50 2011 00004 // Brief: Dijkstra typically only provides the lengths between all pairs of 00005 // vertices 00006 // 00007 //---------------------------------------------------------------------------// 00008 00009 00010 #ifndef MESHKIT_DIJKSTRAIMPRINTING_HPP 00011 #define MESHKIT_DIJKSTRAIMPRINTING_HPP 00012 00013 #include <stdlib.h> 00014 #include <stdio.h> 00015 #include <assert.h> 00016 #include <string> 00017 #include <iostream> 00018 #include <fstream> 00019 #include <string.h> 00020 #include <limits.h> 00021 00022 #include <iGeom.h> 00023 #include "meshkit/MKCore.hpp" 00024 #include "meshkit/ModelEnt.hpp" 00025 #include "meshkit/SizingFunction.hpp" 00026 #include "moab/ReadUtilIface.hpp" 00027 #include "Global.hpp" 00028 #include <iMesh.h> 00029 #include <iGeom.h> 00030 #include <set> 00031 #include <iRel.h> 00032 #include <vector> 00033 #include <set> 00034 #include <list> 00035 00036 #include "meshkit/MeshScheme.hpp" 00037 00038 using namespace std; 00039 00040 namespace MeshKit 00041 { 00042 //===========================================================================// 00049 //===========================================================================// 00050 00051 class Dijkstra 00052 { 00053 public: 00054 00055 Dijkstra(vector<vector<double> > t); 00056 ~Dijkstra(); 00057 void getResults(vector<vector<double> > &d); 00058 00059 void getSurfList(vector<vector<vector<int> > > &l, int src_size, int tgt_size); 00060 00061 00062 00063 private: 00064 void algs(int s, vector<double> &f_list); 00065 int minDistance(vector<double> d, vector<bool> sptSet); 00066 void addSurfToList(int layer_index, int value, int src_size, vector<vector<int> > &datalist); 00067 void getTopMostSurf(); 00068 00069 private://private member variable 00070 vector<vector<double> > dist; 00071 int topmost_target_surf; 00072 vector<vector<double> > order_dist; 00073 vector<int> surf_list; 00074 }; 00075 00076 } 00077 00078 #endif 00079 00080