1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/**
*
* This file is part of Tulip (www.tulip-software.org)
*
* Authors: David Auber and the Tulip development Team
* from LaBRI, University of Bordeaux
*
* Tulip is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* Tulip is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
*/
#ifndef MISFILTERING_H
#define MISFILTERING_H
#include <tulip/TulipPluginHeaders.h>
#include <tulip/MutableContainer.h>
#include <tulip/tuliphash.h>
class MISFiltering {
public :
MISFiltering(tlp::Graph *);
~MISFiltering();
void computeFiltering();
void getNearest(tlp::node, std::vector<tlp::node> &,std::vector<unsigned int>&, unsigned int, unsigned int = 3);
std::vector<tlp::node> ordering;
std::vector<unsigned int> index;
private :
unsigned int level;
tlp::MutableContainer<bool> inLastVi;
tlp::MutableContainer<bool> inCurVi;
tlp::MutableContainer<bool> removed;
std::vector<unsigned int> v_dist;
TLP_HASH_MAP<unsigned int, TLP_HASH_SET<tlp::node> > levelToNodes;
void bfsDepth(tlp::node, unsigned int);
void updateVectors();
tlp::Graph * g_copy;
tlp::MutableContainer<bool> removedVisit;
tlp::MutableContainer<bool> attendedVisit;
tlp::MutableContainer<bool> visited;
std::vector<tlp::node> toVisit;
};
#endif
|