mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
93 lines
3.0 KiB
C++
93 lines
3.0 KiB
C++
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: vtkBoostGraphAdapter.h
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
|
|
// .NAME vtkBoostBetweennessClustering - Implements graph clustering based on
|
|
// edge betweenness centrality.
|
|
//
|
|
// .SECTION Description
|
|
//
|
|
// This vtk class uses the Boost centrality clustering
|
|
// generic algorithm to compute edge betweenness centrality on
|
|
// the input graph (a vtkGraph).
|
|
|
|
// .SECTION See Also
|
|
// vtkGraph vtkBoostGraphAdapter
|
|
|
|
#ifndef vtkBoostBetweennessClustering_h
|
|
#define vtkBoostBetweennessClustering_h
|
|
|
|
#include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
|
|
#include "vtkGraphAlgorithm.h"
|
|
|
|
class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBetweennessClustering :
|
|
public vtkGraphAlgorithm
|
|
{
|
|
public:
|
|
static vtkBoostBetweennessClustering* New();
|
|
vtkTypeMacro(vtkBoostBetweennessClustering, vtkGraphAlgorithm);
|
|
void PrintSelf(ostream &os, vtkIndent indent);
|
|
|
|
vtkBoostBetweennessClustering();
|
|
virtual ~vtkBoostBetweennessClustering();
|
|
|
|
// Description:
|
|
// Get/Set the threshold value. Algorithm terminats when the maximum edge
|
|
// centrality is below this threshold.
|
|
vtkSetMacro(Threshold, double);
|
|
vtkGetMacro(Threshold, double);
|
|
|
|
// Description:
|
|
// Get/Set the flag that sets the rule whether or not to use the
|
|
// edge weight array as set using \c SetEdgeWeightArrayName.
|
|
vtkSetMacro(UseEdgeWeightArray, bool);
|
|
vtkBooleanMacro(UseEdgeWeightArray, bool);
|
|
|
|
vtkSetMacro(InvertEdgeWeightArray, bool);
|
|
vtkBooleanMacro(InvertEdgeWeightArray, bool);
|
|
|
|
// Description:
|
|
// Get/Set the name of the array that needs to be used as the edge weight.
|
|
// The array should be a vtkDataArray.
|
|
vtkGetStringMacro(EdgeWeightArrayName);
|
|
vtkSetStringMacro(EdgeWeightArrayName);
|
|
|
|
// Description:
|
|
// Set the edge centrality array name. If no output array name is
|
|
// set then the name "edge_centrality" is used.
|
|
vtkSetStringMacro(EdgeCentralityArrayName);
|
|
|
|
protected:
|
|
|
|
virtual int RequestData(vtkInformation* request,
|
|
vtkInformationVector** inputVector,
|
|
vtkInformationVector* outputVector);
|
|
|
|
virtual int FillOutputPortInformation(int port, vtkInformation* info);
|
|
|
|
|
|
private:
|
|
|
|
double Threshold;
|
|
bool UseEdgeWeightArray;
|
|
bool InvertEdgeWeightArray;
|
|
char* EdgeWeightArrayName;
|
|
char* EdgeCentralityArrayName;
|
|
|
|
vtkBoostBetweennessClustering(const vtkBoostBetweennessClustering&); // Not implemented.
|
|
void operator=(const vtkBoostBetweennessClustering&); // Not implemented.
|
|
};
|
|
|
|
#endif // vtkBoostBetweennessClustering_h
|