Files
ThirdParty-6/ParaView-5.0.1/VTK/Infovis/Parallel/vtkPBGLGraphSQLReader.h

138 lines
4.2 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkPBGLGraphSQLReader.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.
=========================================================================*/
/*----------------------------------------------------------------------------
Copyright (c) Sandia Corporation
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
----------------------------------------------------------------------------*/
// .NAME vtkPBGLGraphSQLReader - read a vtkGraph from a database
//
// .SECTION Description
//
// Creates a vtkGraph using two SQL tables. The edge table
// must have one row for each edge in the graph.
// The table must have two columns which represent the source and target
// vertex ids.
//
// The vertex table has one row for each vertex in the graph.
// The table must have a field whose values match those in the edge table.
//
// The source, target, and node ID fields must be of the same type.
//
// NOTE: This filter currently only produces the pedigree id field in
// the vertex attributes, and no edge attributes.
//
// @deprecated Not maintained as of VTK 6.2 and will be removed eventually.
#ifndef vtkPBGLGraphSQLReader_h
#define vtkPBGLGraphSQLReader_h
#include "vtkInfovisParallelModule.h" // For export macro
#include "vtkGraphAlgorithm.h"
class vtkSQLDatabase;
#if !defined(VTK_LEGACY_REMOVE)
class VTKINFOVISPARALLEL_EXPORT vtkPBGLGraphSQLReader : public vtkGraphAlgorithm
{
public:
static vtkPBGLGraphSQLReader* New();
vtkTypeMacro(vtkPBGLGraphSQLReader,vtkGraphAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// When set, creates a directed graph, as opposed to an undirected graph.
vtkSetMacro(Directed, bool);
vtkGetMacro(Directed, bool);
vtkBooleanMacro(Directed, bool);
// Description:
// The database to connect to.
virtual void SetDatabase(vtkSQLDatabase* db);
vtkGetObjectMacro(Database, vtkSQLDatabase);
// Description:
// The name of the vertex table in the database.
vtkSetStringMacro(VertexTable);
vtkGetStringMacro(VertexTable);
// Description:
// The name of the edge table in the database.
vtkSetStringMacro(EdgeTable);
vtkGetStringMacro(EdgeTable);
// Description:
// The name of the field in the edge query for the source node of each edge.
vtkSetStringMacro(SourceField);
vtkGetStringMacro(SourceField);
// Description:
// The name of the field in the edge query for the target node of each edge.
vtkSetStringMacro(TargetField);
vtkGetStringMacro(TargetField);
// Description:
// The name of the field in the node query for the node ID.
vtkSetStringMacro(VertexIdField);
vtkGetStringMacro(VertexIdField);
// Description:
// Get the offset/limit for this process's vertices/edges
static void GetRange(int rank, int total,
vtkIdType size, vtkIdType& offset, vtkIdType& limit);
// Description:
// Set the distribution user data.
void SetDistributionUserData(int procs, vtkIdType verts)
{ this->DistributionUserData[0] = procs;
this->DistributionUserData[1] = verts; }
// Description:
// Get the user data (# procs, # vertices) used to determine
// the distribution.
vtkIdType* GetDistributionUserData()
{ return this->DistributionUserData; }
protected:
vtkPBGLGraphSQLReader();
~vtkPBGLGraphSQLReader();
bool Directed;
vtkSQLDatabase* Database;
char* VertexTable;
char* EdgeTable;
char* SourceField;
char* TargetField;
char* VertexIdField;
vtkIdType DistributionUserData[2];
virtual int RequestData(
vtkInformation*,
vtkInformationVector**,
vtkInformationVector*);
virtual int RequestDataObject(
vtkInformation*,
vtkInformationVector**,
vtkInformationVector*);
private:
vtkPBGLGraphSQLReader(const vtkPBGLGraphSQLReader&); // Not implemented
void operator=(const vtkPBGLGraphSQLReader&); // Not implemented
};
#endif //VTK_LEGACY_REMOVE
#endif