VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkGraph Class Referenceabstract

Base class for graph data types. More...

#include <vtkGraph.h>

Inheritance diagram for vtkGraph:
[legend]
Collaboration diagram for vtkGraph:
[legend]

Public Types

typedef vtkDataObject Superclass
 
- Public Types inherited from vtkDataObject
enum  FieldAssociations {
  FIELD_ASSOCIATION_POINTS, FIELD_ASSOCIATION_CELLS, FIELD_ASSOCIATION_NONE, FIELD_ASSOCIATION_POINTS_THEN_CELLS,
  FIELD_ASSOCIATION_VERTICES, FIELD_ASSOCIATION_EDGES, FIELD_ASSOCIATION_ROWS, NUMBER_OF_ASSOCIATIONS
}
 Possible values for the FIELD_ASSOCIATION information entry. More...
 
enum  AttributeTypes {
  POINT, CELL, FIELD, POINT_THEN_CELL,
  VERTEX, EDGE, ROW, NUMBER_OF_ATTRIBUTE_TYPES
}
 Possible attribute types. More...
 
enum  FieldOperations { FIELD_OPERATION_PRESERVED, FIELD_OPERATION_REINTERPOLATED, FIELD_OPERATION_MODIFIED, FIELD_OPERATION_REMOVED }
 Possible values for the FIELD_OPERATION information entry. More...
 
typedef vtkObject Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 Return 1 if this class is the same type of (or a subclass of) the named class. More...
 
vtkGraphNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent) override
 Methods invoked by print to print information about the object including superclasses. More...
 
int GetDataObjectType () override
 Return what type of dataset this is. More...
 
void Initialize () override
 Initialize to an empty graph. More...
 
void ComputeBounds ()
 Compute the bounds of the graph. More...
 
vtkMTimeType GetMTime () override
 The modified time of the graph. More...
 
virtual void GetOutEdges (vtkIdType v, vtkOutEdgeIterator *it)
 Initializes the out edge iterator to iterate over all outgoing edges of vertex v. More...
 
virtual vtkIdType GetDegree (vtkIdType v)
 The total of all incoming and outgoing vertices for vertex v. More...
 
virtual vtkIdType GetOutDegree (vtkIdType v)
 The number of outgoing edges from vertex v. More...
 
virtual vtkOutEdgeType GetOutEdge (vtkIdType v, vtkIdType index)
 Random-access method for retrieving outgoing edges from vertex v. More...
 
virtual void GetOutEdge (vtkIdType v, vtkIdType index, vtkGraphEdge *e)
 Random-access method for retrieving outgoing edges from vertex v. More...
 
virtual void GetInEdges (vtkIdType v, vtkInEdgeIterator *it)
 Initializes the in edge iterator to iterate over all incoming edges to vertex v. More...
 
virtual vtkIdType GetInDegree (vtkIdType v)
 The number of incoming edges to vertex v. More...
 
virtual vtkInEdgeType GetInEdge (vtkIdType v, vtkIdType index)
 Random-access method for retrieving incoming edges to vertex v. More...
 
virtual void GetInEdge (vtkIdType v, vtkIdType index, vtkGraphEdge *e)
 Random-access method for retrieving incoming edges to vertex v. More...
 
virtual void GetAdjacentVertices (vtkIdType v, vtkAdjacentVertexIterator *it)
 Initializes the adjacent vertex iterator to iterate over all outgoing vertices from vertex v. More...
 
virtual void GetEdges (vtkEdgeListIterator *it)
 Initializes the edge list iterator to iterate over all edges in the graph. More...
 
virtual vtkIdType GetNumberOfEdges ()
 The number of edges in the graph. More...
 
virtual void GetVertices (vtkVertexListIterator *it)
 Initializes the vertex list iterator to iterate over all vertices in the graph. More...
 
virtual vtkIdType GetNumberOfVertices ()
 The number of vertices in the graph. More...
 
void SetDistributedGraphHelper (vtkDistributedGraphHelper *helper)
 Sets the distributed graph helper of this graph, turning it into a distributed graph. More...
 
vtkDistributedGraphHelperGetDistributedGraphHelper ()
 Retrieves the distributed graph helper for this graph. More...
 
vtkIdType FindVertex (const vtkVariant &pedigreeID)
 Retrieve the vertex with the given pedigree ID. More...
 
void ShallowCopy (vtkDataObject *obj) override
 Shallow copies the data object into this graph. More...
 
void DeepCopy (vtkDataObject *obj) override
 Deep copies the data object into this graph. More...
 
virtual void CopyStructure (vtkGraph *g)
 Does a shallow copy of the topological information, but not the associated attributes. More...
 
virtual bool CheckedShallowCopy (vtkGraph *g)
 Performs the same operation as ShallowCopy(), but instead of reporting an error for an incompatible graph, returns false. More...
 
virtual bool CheckedDeepCopy (vtkGraph *g)
 Performs the same operation as DeepCopy(), but instead of reporting an error for an incompatible graph, returns false. More...
 
virtual void Squeeze ()
 Reclaim unused memory. More...
 
void ReorderOutVertices (vtkIdType v, vtkIdTypeArray *vertices)
 Reorder the outgoing vertices of a vertex. More...
 
bool IsSameStructure (vtkGraph *other)
 Returns true if both graphs point to the same adjacency structure. More...
 
vtkIdType GetNumberOfEdgePoints (vtkIdType e)
 Get the number of edge points associated with an edge. More...
 
doubleGetEdgePoint (vtkIdType e, vtkIdType i)
 Get the x,y,z location of a point along edge e. More...
 
void ClearEdgePoints (vtkIdType e)
 Clear all points associated with an edge. More...
 
void SetEdgePoint (vtkIdType e, vtkIdType i, double x[3])
 Set an x,y,z location of a point along an edge. More...
 
void SetEdgePoint (vtkIdType e, vtkIdType i, double x, double y, double z)
 
void AddEdgePoint (vtkIdType e, double x[3])
 Adds a point to the end of the list of edge points for a certain edge. More...
 
void AddEdgePoint (vtkIdType e, double x, double y, double z)
 
vtkGraphInternalsGetGraphInternals (bool modifying)
 Returns the internal representation of the graph. More...
 
void GetInducedEdges (vtkIdTypeArray *verts, vtkIdTypeArray *edges)
 Fills a list of edge indices with the edges contained in the induced subgraph formed by the vertices in the vertex list. More...
 
vtkFieldDataGetAttributesAsFieldData (int type) override
 Returns the attributes of the data object as a vtkFieldData. More...
 
vtkIdType GetNumberOfElements (int type) override
 Get the number of elements for a specific attribute type (VERTEX, EDGE, etc.). More...
 
void Dump ()
 Dump the contents of the graph to standard output. More...
 
vtkIdType GetEdgeId (vtkIdType a, vtkIdType b)
 Returns the Id of the edge between vertex a and vertex b. More...
 
bool ToDirectedGraph (vtkDirectedGraph *g)
 Convert the graph to a directed graph. More...
 
bool ToUndirectedGraph (vtkUndirectedGraph *g)
 Convert the graph to an undirected graph. More...
 
virtual vtkDataSetAttributesGetVertexData ()
 Get the vertex or edge data. More...
 
virtual vtkDataSetAttributesGetEdgeData ()
 Get the vertex or edge data. More...
 
doubleGetPoint (vtkIdType ptId)
 These methods return the point (0,0,0) until the points structure is created, when it returns the actual point position. More...
 
void GetPoint (vtkIdType ptId, double x[3])
 These methods return the point (0,0,0) until the points structure is created, when it returns the actual point position. More...
 
vtkPointsGetPoints ()
 Returns the points array for this graph. More...
 
virtual void SetPoints (vtkPoints *points)
 Returns the points array for this graph. More...
 
doubleGetBounds ()
 Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). More...
 
void GetBounds (double bounds[6])
 Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). More...
 
vtkIdType GetSourceVertex (vtkIdType e)
 Retrieve the source and target vertices for an edge id. More...
 
vtkIdType GetTargetVertex (vtkIdType e)
 Retrieve the source and target vertices for an edge id. More...
 
void SetEdgePoints (vtkIdType e, vtkIdType npts, double *pts)
 Get/Set the internal edge control points associated with each edge. More...
 
void GetEdgePoints (vtkIdType e, vtkIdType &npts, double *&pts)
 Get/Set the internal edge control points associated with each edge. More...
 
void ShallowCopyEdgePoints (vtkGraph *g)
 Copy the internal edge point data from another graph into this graph. More...
 
void DeepCopyEdgePoints (vtkGraph *g)
 Copy the internal edge point data from another graph into this graph. More...
 
- Public Member Functions inherited from vtkDataObject
vtkDataObjectNewInstance () const
 
void ReleaseData ()
 Release data back to system to conserve memory resource. More...
 
vtkMTimeType GetUpdateTime ()
 Used by Threaded ports to determine if they should initiate an asynchronous update (still in development). More...
 
virtual unsigned long GetActualMemorySize ()
 Return the actual size of the data in kibibytes (1024 bytes). More...
 
virtual void CopyInformationFromPipeline (vtkInformation *vtkNotUsed(info))
 Copy from the pipeline information to the data object's own information. More...
 
virtual void CopyInformationToPipeline (vtkInformation *vtkNotUsed(info))
 Copy information from this data object to the pipeline information. More...
 
void DataHasBeenGenerated ()
 This method is called by the source when it executes to generate data. More...
 
virtual void PrepareForNewData ()
 make the output data ready for new data to be inserted. More...
 
virtual int GetExtentType ()
 The ExtentType will be left as VTK_PIECES_EXTENT for data objects such as vtkPolyData and vtkUnstructuredGrid. More...
 
virtual void Crop (const int *updateExtent)
 This method crops the data object (if necessary) so that the extent matches the update extent. More...
 
virtual vtkDataSetAttributesGetAttributes (int type)
 Returns the attributes of the data object of the specified attribute type. More...
 
virtual int GetAttributeTypeForArray (vtkAbstractArray *arr)
 Retrieves the attribute type that an array came from. More...
 
virtual vtkInformationGetInformation ()
 Set/Get the information object associated with this data object. More...
 
virtual void SetInformation (vtkInformation *)
 Set/Get the information object associated with this data object. More...
 
virtual int GetDataReleased ()
 Get the flag indicating the data has been released. More...
 
virtual void SetFieldData (vtkFieldData *)
 Assign or retrieve a general field data to this data object. More...
 
virtual vtkFieldDataGetFieldData ()
 Assign or retrieve a general field data to this data object. More...
 
void GlobalReleaseDataFlagOn ()
 Turn on/off flag to control whether every object releases its data after being used by a filter. More...
 
void GlobalReleaseDataFlagOff ()
 Turn on/off flag to control whether every object releases its data after being used by a filter. More...
 
- Public Member Functions inherited from vtkObject
 vtkBaseTypeMacro (vtkObject, vtkObjectBase)
 
virtual void DebugOn ()
 Turn debugging output on. More...
 
virtual void DebugOff ()
 Turn debugging output off. More...
 
bool GetDebug ()
 Get the value of the debug flag. More...
 
void SetDebug (bool debugFlag)
 Set the value of the debug flag. More...
 
virtual void Modified ()
 Update the modification time for this object. More...
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
int HasObserver (unsigned long event)
 
int HasObserver (const char *event)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
vtkCommandGetCommand (unsigned long tag)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObserver (vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
void RemoveObservers (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
int HasObserver (unsigned long event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
int HasObserver (const char *event, vtkCommand *)
 Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 Allow user to set the AbortFlagOn() with the return value of the callback method. More...
 
int InvokeEvent (unsigned long event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
int InvokeEvent (const char *event, void *callData)
 This method invokes an event and return whether the event was aborted or not. More...
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 Return the class name as a string. More...
 
virtual void Delete ()
 Delete a VTK object. More...
 
virtual void FastDelete ()
 Delete a reference to this object. More...
 
void InitializeObjectBase ()
 
void Print (ostream &os)
 Print an object to an ostream. More...
 
virtual void Register (vtkObjectBase *o)
 Increase the reference count (mark as used by another object). More...
 
virtual void UnRegister (vtkObjectBase *o)
 Decrease the reference count (release by another object). More...
 
int GetReferenceCount ()
 Return the current reference count of this object. More...
 
void SetReferenceCount (int)
 Sets the reference count. More...
 
void PrintRevisions (ostream &)
 Legacy. More...
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 Methods invoked by print to print information about the object including superclasses. More...
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkGraphSafeDownCast (vtkObjectBase *o)
 
static vtkGraphGetData (vtkInformation *info)
 Retrieve a graph from an information vector. More...
 
static vtkGraphGetData (vtkInformationVector *v, int i=0)
 Retrieve a graph from an information vector. More...
 
- Static Public Member Functions inherited from vtkDataObject
static vtkDataObjectNew ()
 
static int IsTypeOf (const char *type)
 
static vtkDataObjectSafeDownCast (vtkObjectBase *o)
 
static vtkInformationGetActiveFieldInformation (vtkInformation *info, int fieldAssociation, int attributeType)
 Return the information object within the input information object's field data corresponding to the specified association (FIELD_ASSOCIATION_POINTS or FIELD_ASSOCIATION_CELLS) and attribute (SCALARS, VECTORS, NORMALS, TCOORDS, or TENSORS) More...
 
static vtkInformationGetNamedFieldInformation (vtkInformation *info, int fieldAssociation, const char *name)
 Return the information object within the input information object's field data corresponding to the specified association (FIELD_ASSOCIATION_POINTS or FIELD_ASSOCIATION_CELLS) and name. More...
 
static void RemoveNamedFieldInformation (vtkInformation *info, int fieldAssociation, const char *name)
 Remove the info associated with an array. More...
 
static vtkInformationSetActiveAttribute (vtkInformation *info, int fieldAssociation, const char *attributeName, int attributeType)
 Set the named array to be the active field for the specified type (SCALARS, VECTORS, NORMALS, TCOORDS, or TENSORS) and association (FIELD_ASSOCIATION_POINTS or FIELD_ASSOCIATION_CELLS). More...
 
static void SetActiveAttributeInfo (vtkInformation *info, int fieldAssociation, int attributeType, const char *name, int arrayType, int numComponents, int numTuples)
 Set the name, array type, number of components, and number of tuples within the passed information object for the active attribute of type attributeType (in specified association, FIELD_ASSOCIATION_POINTS or FIELD_ASSOCIATION_CELLS). More...
 
static void SetPointDataActiveScalarInfo (vtkInformation *info, int arrayType, int numComponents)
 Convenience version of previous method for use (primarily) by the Imaging filters. More...
 
static const char * GetAssociationTypeAsString (int associationType)
 Given an integer association type, this static method returns a string type for the attribute (i.e. More...
 
static int GetAssociationTypeFromString (const char *associationType)
 Given an integer association type, this static method returns a string type for the attribute (i.e. More...
 
static vtkInformationStringKeyDATA_TYPE_NAME ()
 
static vtkInformationDataObjectKeyDATA_OBJECT ()
 
static vtkInformationIntegerKeyDATA_EXTENT_TYPE ()
 
static vtkInformationIntegerPointerKeyDATA_EXTENT ()
 
static vtkInformationIntegerVectorKeyALL_PIECES_EXTENT ()
 
static vtkInformationIntegerKeyDATA_PIECE_NUMBER ()
 
static vtkInformationIntegerKeyDATA_NUMBER_OF_PIECES ()
 
static vtkInformationIntegerKeyDATA_NUMBER_OF_GHOST_LEVELS ()
 
static vtkInformationDoubleKeyDATA_TIME_STEP ()
 
static vtkInformationInformationVectorKeyPOINT_DATA_VECTOR ()
 
static vtkInformationInformationVectorKeyCELL_DATA_VECTOR ()
 
static vtkInformationInformationVectorKeyVERTEX_DATA_VECTOR ()
 
static vtkInformationInformationVectorKeyEDGE_DATA_VECTOR ()
 
static vtkInformationIntegerKeyFIELD_ARRAY_TYPE ()
 
static vtkInformationIntegerKeyFIELD_ASSOCIATION ()
 
static vtkInformationIntegerKeyFIELD_ATTRIBUTE_TYPE ()
 
static vtkInformationIntegerKeyFIELD_ACTIVE_ATTRIBUTE ()
 
static vtkInformationIntegerKeyFIELD_NUMBER_OF_COMPONENTS ()
 
static vtkInformationIntegerKeyFIELD_NUMBER_OF_TUPLES ()
 
static vtkInformationIntegerKeyFIELD_OPERATION ()
 
static vtkInformationDoubleVectorKeyFIELD_RANGE ()
 
static vtkInformationIntegerVectorKeyPIECE_EXTENT ()
 
static vtkInformationStringKeyFIELD_NAME ()
 
static vtkInformationDoubleVectorKeyORIGIN ()
 
static vtkInformationDoubleVectorKeySPACING ()
 
static vtkInformationDoubleVectorKeyBOUNDING_BOX ()
 
static vtkInformationDataObjectKeySIL ()
 
static vtkDataObjectGetData (vtkInformation *info)
 Retrieve an instance of this class from an information object. More...
 
static vtkDataObjectGetData (vtkInformationVector *v, int i=0)
 Retrieve an instance of this class from an information object. More...
 
static void SetGlobalReleaseDataFlag (int val)
 Turn on/off flag to control whether every object releases its data after being used by a filter. More...
 
static int GetGlobalReleaseDataFlag ()
 Turn on/off flag to control whether every object releases its data after being used by a filter. More...
 
- Static Public Member Functions inherited from vtkObject
static vtkObjectNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 
static void BreakOnError ()
 This method is called when vtkErrorMacro executes. More...
 
static void SetGlobalWarningDisplay (int val)
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOn ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static void GlobalWarningDisplayOff ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
static int GetGlobalWarningDisplay ()
 This is a global flag that controls whether any debug, warning or error messages are displayed. More...
 
- Static Public Member Functions inherited from vtkObjectBase
static vtkTypeBool IsTypeOf (const char *name)
 Return 1 if this class type is the same type of (or a subclass of) the named class. More...
 
static vtkObjectBaseNew ()
 Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More...
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkGraph ()
 
 ~vtkGraph () override
 
void AddVertexInternal (vtkVariantArray *propertyArr=nullptr, vtkIdType *vertex=nullptr)
 Protected method for adding vertices, optionally with properties, used by mutable subclasses. More...
 
void AddVertexInternal (const vtkVariant &pedigree, vtkIdType *vertex)
 Adds a vertex with the given pedigree ID to the graph. More...
 
void RemoveVertexInternal (vtkIdType v, bool directed)
 Removes a vertex from the graph, along with any adjacent edges. More...
 
void RemoveEdgeInternal (vtkIdType e, bool directed)
 Removes an edge from the graph. More...
 
void RemoveVerticesInternal (vtkIdTypeArray *arr, bool directed)
 Removes a collection of vertices from the graph, along with any adjacent edges. More...
 
void RemoveEdgesInternal (vtkIdTypeArray *arr, bool directed)
 Removes a collection of edges from the graph. More...
 
virtual bool IsStructureValid (vtkGraph *g)=0
 Subclasses override this method to accept the structure based on their requirements. More...
 
virtual void CopyInternal (vtkGraph *g, bool deep)
 Copy internal data structure. More...
 
void SetInternals (vtkGraphInternals *internals)
 Private method for setting internals. More...
 
void SetEdgePoints (vtkGraphEdgePoints *edgePoints)
 Private method for setting edge points. More...
 
void ForceOwnership ()
 If this instance does not own its internals, it makes a copy of the internals. More...
 
void BuildEdgeList ()
 Builds a mapping from edge id to source/target vertex id. More...
 
void AddEdgeInternal (vtkIdType u, vtkIdType v, bool directed, vtkVariantArray *propertyArr, vtkEdgeType *edge)
 Protected method for adding edges of a certain directedness used by mutable subclasses. More...
 
void AddEdgeInternal (const vtkVariant &uPedigree, vtkIdType v, bool directed, vtkVariantArray *propertyArr, vtkEdgeType *edge)
 Protected method for adding edges of a certain directedness used by mutable subclasses. More...
 
void AddEdgeInternal (vtkIdType u, const vtkVariant &vPedigree, bool directed, vtkVariantArray *propertyArr, vtkEdgeType *edge)
 Protected method for adding edges of a certain directedness used by mutable subclasses. More...
 
void AddEdgeInternal (const vtkVariant &uPedigree, const vtkVariant &vPedigree, bool directed, vtkVariantArray *propertyArr, vtkEdgeType *edge)
 Protected method for adding edges of a certain directedness used by mutable subclasses. More...
 
virtual void GetOutEdges (vtkIdType v, const vtkOutEdgeType *&edges, vtkIdType &nedges)
 Fast access functions for iterators. More...
 
virtual void GetInEdges (vtkIdType v, const vtkInEdgeType *&edges, vtkIdType &nedges)
 Fast access functions for iterators. More...
 
- Protected Member Functions inherited from vtkDataObject
 vtkDataObject ()
 
 ~vtkDataObject () override
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
 ~vtkObject () override
 
void RegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
 These methods allow a command to exclusively grab all events. More...
 
void InternalReleaseFocus ()
 These methods allow a command to exclusively grab all events. More...
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

vtkGraphInternalsInternals
 The adjacency list internals of this graph. More...
 
vtkDistributedGraphHelperDistributedHelper
 The distributed graph helper. More...
 
vtkGraphEdgePoints * EdgePoints
 The structure for holding the edge points. More...
 
double Bounds [6]
 (xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds. More...
 
vtkTimeStamp ComputeTime
 Time at which bounds were computed. More...
 
vtkDataSetAttributesVertexData
 The vertex and edge data. More...
 
vtkDataSetAttributesEdgeData
 The vertex and edge data. More...
 
- Protected Attributes inherited from vtkDataObject
vtkFieldDataFieldData
 
int DataReleased
 
vtkTimeStamp UpdateTime
 
vtkInformationInformation
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

Friends

class vtkAdjacentVertexIterator
 Friend iterator classes. More...
 
class vtkEdgeListIterator
 Friend iterator classes. More...
 
class vtkInEdgeIterator
 Friend iterator classes. More...
 
class vtkOutEdgeIterator
 Friend iterator classes. More...
 
class boost::vtk_edge_iterator
 Friend iterator classes. More...
 
class boost::vtk_in_edge_pointer_iterator
 Friend iterator classes. More...
 
class boost::vtk_out_edge_pointer_iterator
 Friend iterator classes. More...
 
- Friends inherited from vtkObject
vtkPointsPoints
 The vertex locations. More...
 
static double DefaultPoint [3]
 The vertex locations. More...
 
vtkIdTypeArrayEdgeList
 The optional mapping from edge id to source/target ids. More...
 
virtual vtkIdTypeArrayGetEdgeList ()
 The optional mapping from edge id to source/target ids. More...
 
virtual void SetEdgeList (vtkIdTypeArray *list)
 The optional mapping from edge id to source/target ids. More...
 

Detailed Description

Base class for graph data types.

vtkGraph is the abstract base class that provides all read-only API for graph data types. A graph consists of a collection of vertices and a collection of edges connecting pairs of vertices. The vtkDirectedGraph subclass represents a graph whose edges have inherent order from source vertex to target vertex, while vtkUndirectedGraph is a graph whose edges have no inherent ordering.

Graph vertices may be traversed in two ways. In the current implementation, all vertices are assigned consecutive ids starting at zero, so they may be traversed in a simple for loop from 0 to graph->GetNumberOfVertices() - 1. You may alternately create a vtkVertexListIterator and call graph->GetVertices(it). it->Next() will return the id of the next vertex, while it->HasNext() indicates whether there are more vertices in the graph. This is the preferred method, since in the future graphs may support filtering or subsetting where the vertex ids may not be contiguous.

Graph edges must be traversed through iterators. To traverse all edges in a graph, create an instance of vtkEdgeListIterator and call graph->GetEdges(it). it->Next() returns lightweight vtkEdgeType structures, which contain the public fields Id, Source and Target. Id is the identifier for the edge, which may be used to look up values in assiciated edge data arrays. Source and Target store the ids of the source and target vertices of the edge. Note that the edge list iterator DOES NOT necessarily iterate over edges in order of ascending id. To traverse edges from wrapper code (Python, Java), use it->NextGraphEdge() instead of it->Next(). This will return a heavyweight, wrappable vtkGraphEdge object, which has the same fields as vtkEdgeType accessible through getter methods.

To traverse all edges outgoing from a vertex, create a vtkOutEdgeIterator and call graph->GetOutEdges(v, it). it->Next() returns a lightweight vtkOutEdgeType containing the fields Id and Target. The source of the edge is always the vertex that was passed as an argument to GetOutEdges(). Incoming edges may be similarly traversed with vtkInEdgeIterator, which returns vtkInEdgeType structures with Id and Source fields. Both vtkOutEdgeIterator and vtkInEdgeIterator also provide the wrapper functions NextGraphEdge() which return vtkGraphEdge objects.

An additional iterator, vtkAdjacentVertexIterator can traverse outgoing vertices directly, instead needing to parse through edges. Initialize the iterator by calling graph->GetAdjacentVertices(v, it).

vtkGraph has two instances of vtkDataSetAttributes for associated vertex and edge data. It also has a vtkPoints instance which may store x,y,z locations for each vertex. This is populated by filters such as vtkGraphLayout and vtkAssignCoordinates.

All graph types share the same implementation, so the structure of one may be shared among multiple graphs, even graphs of different types. Structures from vtkUndirectedGraph and vtkMutableUndirectedGraph may be shared directly. Structures from vtkDirectedGraph, vtkMutableDirectedGraph, and vtkTree may be shared directly with the exception that setting a structure to a tree requires that a "is a tree" test passes.

For graph types that are known to be compatible, calling ShallowCopy() or DeepCopy() will work as expected. When the outcome of a conversion is unknown (i.e. setting a graph to a tree), CheckedShallowCopy() and CheckedDeepCopy() exist which are identical to ShallowCopy() and DeepCopy(), except that instead of emitting an error for an incompatible structure, the function returns false. This allows you to programmatically check structure compatibility without causing error messages.

To construct a graph, use vtkMutableDirectedGraph or vtkMutableUndirectedGraph. You may then use CheckedShallowCopy to set the contents of a mutable graph type into one of the non-mutable types vtkDirectedGraph, vtkUndirectedGraph. To construct a tree, use vtkMutableDirectedGraph, with directed edges which point from the parent to the child, then use CheckedShallowCopy to set the structure to a vtkTree.

Warning
All copy operations implement copy-on-write. The structures are initially shared, but if one of the graphs is modified, the structure is copied so that to the user they function as if they were deep copied. This means that care must be taken if different threads are accessing different graph instances that share the same structure. Race conditions may develop if one thread is modifying the graph at the same time that another graph is copying the structure.
Vertex pedigree IDs:
The vertices in a vtkGraph can be associated with pedigree IDs through GetVertexData()->SetPedigreeIds. In this case, there is a 1-1 mapping between pedigree Ids and vertices. One can query the vertex ID based on the pedigree ID using FindVertex, add new vertices by pedigree ID with AddVertex, and add edges based on the pedigree IDs of the source and target vertices. For example, AddEdge("Here", "There") will find (or add) vertices with pedigree ID "Here" and "There" and then introduce an edge from "Here" to "There".
Vertex pedigree IDs:
To configure the vtkGraph with a pedigree ID mapping, create a vtkDataArray that will store the pedigree IDs and set that array as the pedigree ID array for the vertices via GetVertexData()->SetPedigreeIds().
Distributed graphs:
vtkGraph instances can be distributed across multiple machines, to allow the construction and manipulation of graphs larger than a single machine could handle. A distributed graph will typically be distributed across many different nodes within a cluster, using the Message Passing Interface (MPI) to allow those cluster nodes to communicate.
Distributed graphs:
An empty vtkGraph can be made into a distributed graph by attaching an instance of a vtkDistributedGraphHelper via the SetDistributedGraphHelper() method. To determine whether a graph is distributed or not, call GetDistributedGraphHelper() and check whether the result is non-nullptr. For a distributed graph, the number of processors across which the graph is distributed can be retrieved by extracting the value for the DATA_NUMBER_OF_PIECES key in the vtkInformation object (retrieved by GetInformation()) associated with the graph. Similarly, the value corresponding to the DATA_PIECE_NUMBER key of the vtkInformation object describes which piece of the data this graph instance provides.
Distributed graphs:
Distributed graphs behave somewhat differently from non-distributed graphs, and will require special care. In a distributed graph, each of the processors will contain a subset of the vertices in the graph. That subset of vertices can be accessed via the vtkVertexListIterator produced by GetVertices(). GetNumberOfVertices(), therefore, returns the number of vertices stored locally: it does not account for vertices stored on other processors. A vertex (or edge) is identified by both the rank of its owning processor and by its index within that processor, both of which are encoded within the vtkIdType value that describes that vertex (or edge). The owning processor is a value between 0 and P-1, where P is the number of processors across which the vtkGraph has been distributed. The local index will be a value between 0 and GetNumberOfVertices(), for vertices, or GetNumberOfEdges(), for edges, and can be used to access the local parts of distributed data arrays. When given a vtkIdType identifying a vertex, one can determine the owner of the vertex with vtkDistributedGraphHelper::GetVertexOwner() and the local index with vtkDistributedGraphHelper::GetVertexIndex(). With edges, the appropriate methods are vtkDistributedGraphHelper::GetEdgeOwner() and vtkDistributedGraphHelper::GetEdgeIndex(), respectively. To construct a vtkIdType representing either a vertex or edge given only its owner and local index, use vtkDistributedGraphHelper::MakeDistributedId().
Distributed graphs:
The edges in a distributed graph are always stored on the processors that own the vertices named by the edge. For example, given a directed edge (u, v), the edge will be stored in the out-edges list for vertex u on the processor that owns u, and in the in-edges list for vertex v on the processor that owns v. This "row-wise" decomposition of the graph means that, for any vertex that is local to a processor, that processor can look at all of the incoming and outgoing edges of the graph. Processors cannot, however, access the incoming or outgoing edge lists of vertex owned by other processors. Vertices owned by other processors will not be encountered when traversing the vertex list via GetVertices(), but may be encountered by traversing the in- and out-edge lists of local vertices or the edge list.
Distributed graphs:
Distributed graphs can have pedigree IDs for the vertices in the same way that non-distributed graphs can. In this case, the distribution of the vertices in the graph is based on pedigree ID. For example, a vertex with the pedigree ID "Here" might land on processor 0 while a vertex pedigree ID "There" would end up on processor 3. By default, the pedigree IDs themselves are hashed to give a random (and, hopefully, even) distribution of the vertices. However, one can provide a different vertex distribution function by calling vtkDistributedGraphHelper::SetVertexPedigreeIdDistribution. Once a distributed graph has pedigree IDs, the no-argument AddVertex() method can no longer be used. Additionally, once a vertex has a pedigree ID, that pedigree ID should not be changed unless the user can guarantee that the vertex distribution will still map that vertex to the same processor where it already resides.
See also
vtkDirectedGraph vtkUndirectedGraph vtkMutableDirectedGraph vtkMutableUndirectedGraph vtkTree vtkDistributedGraphHelper
Thanks:
Thanks to Brian Wylie, Timothy Shead, Ken Moreland of Sandia National Laboratories and Douglas Gregor of Indiana University for designing these classes.
Examples:
vtkGraph (Examples)
Tests:
vtkGraph (Tests)

Definition at line 287 of file vtkGraph.h.

Member Typedef Documentation

Definition at line 290 of file vtkGraph.h.

Constructor & Destructor Documentation

vtkGraph::vtkGraph ( )
protected
vtkGraph::~vtkGraph ( )
overrideprotected

Member Function Documentation

static int vtkGraph::IsTypeOf ( const char *  type)
static
virtual int vtkGraph::IsA ( const char *  name)
virtual

Return 1 if this class is the same type of (or a subclass of) the named class.

Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataObject.

Reimplemented in vtkReebGraph, vtkMolecule, vtkTree, vtkDirectedAcyclicGraph, vtkUndirectedGraph, vtkMutableDirectedGraph, vtkDirectedGraph, and vtkMutableUndirectedGraph.

static vtkGraph* vtkGraph::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkGraph::NewInstanceInternal ( ) const
protectedvirtual
vtkGraph* vtkGraph::NewInstance ( ) const
void vtkGraph::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
overridevirtual

Methods invoked by print to print information about the object including superclasses.

Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkDataObject.

Reimplemented in vtkReebGraph, vtkMolecule, vtkTree, vtkUndirectedGraph, vtkMutableDirectedGraph, and vtkMutableUndirectedGraph.

virtual vtkDataSetAttributes* vtkGraph::GetVertexData ( )
virtual

Get the vertex or edge data.

virtual vtkDataSetAttributes* vtkGraph::GetEdgeData ( )
virtual

Get the vertex or edge data.

int vtkGraph::GetDataObjectType ( )
inlineoverridevirtual

Return what type of dataset this is.

Reimplemented from vtkDataObject.

Reimplemented in vtkReebGraph, vtkMolecule, vtkTree, and vtkUndirectedGraph.

Definition at line 304 of file vtkGraph.h.

void vtkGraph::Initialize ( )
overridevirtual

Initialize to an empty graph.

Reimplemented from vtkDataObject.

Reimplemented in vtkMolecule.

double* vtkGraph::GetPoint ( vtkIdType  ptId)

These methods return the point (0,0,0) until the points structure is created, when it returns the actual point position.

In a distributed graph, only the points for local vertices can be retrieved.

void vtkGraph::GetPoint ( vtkIdType  ptId,
double  x[3] 
)

These methods return the point (0,0,0) until the points structure is created, when it returns the actual point position.

In a distributed graph, only the points for local vertices can be retrieved.

vtkPoints* vtkGraph::GetPoints ( )

Returns the points array for this graph.

If points is not yet constructed, generates and returns a new points array filled with (0,0,0) coordinates. In a distributed graph, only the points for local vertices can be retrieved or modified.

virtual void vtkGraph::SetPoints ( vtkPoints points)
virtual

Returns the points array for this graph.

If points is not yet constructed, generates and returns a new points array filled with (0,0,0) coordinates. In a distributed graph, only the points for local vertices can be retrieved or modified.

void vtkGraph::ComputeBounds ( )

Compute the bounds of the graph.

In a distributed graph, this computes the bounds around the local part of the graph.

double* vtkGraph::GetBounds ( )

Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax).

In a distributed graph, this computes the bounds around the local part of the graph.

void vtkGraph::GetBounds ( double  bounds[6])

Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax).

In a distributed graph, this computes the bounds around the local part of the graph.

vtkMTimeType vtkGraph::GetMTime ( )
overridevirtual

The modified time of the graph.

Reimplemented from vtkDataObject.

virtual void vtkGraph::GetOutEdges ( vtkIdType  v,
vtkOutEdgeIterator it 
)
virtual

Initializes the out edge iterator to iterate over all outgoing edges of vertex v.

For an undirected graph, returns all incident edges. In a distributed graph, the vertex v must be local to this processor.

virtual vtkIdType vtkGraph::GetDegree ( vtkIdType  v)
virtual

The total of all incoming and outgoing vertices for vertex v.

For undirected graphs, this is simply the number of edges incident to v. In a distributed graph, the vertex v must be local to this processor.

virtual vtkIdType vtkGraph::GetOutDegree ( vtkIdType  v)
virtual

The number of outgoing edges from vertex v.

For undirected graphs, returns the same as GetDegree(). In a distributed graph, the vertex v must be local to this processor.

virtual vtkOutEdgeType vtkGraph::GetOutEdge ( vtkIdType  v,
vtkIdType  index 
)
virtual

Random-access method for retrieving outgoing edges from vertex v.

virtual void vtkGraph::GetOutEdge ( vtkIdType  v,
vtkIdType  index,
vtkGraphEdge e 
)
virtual

Random-access method for retrieving outgoing edges from vertex v.

The method fills the vtkGraphEdge instance with the id, source, and target of the edge. This method is provided for wrappers, GetOutEdge(vtkIdType, vtkIdType) is preferred.

virtual void vtkGraph::GetInEdges ( vtkIdType  v,
vtkInEdgeIterator it 
)
virtual

Initializes the in edge iterator to iterate over all incoming edges to vertex v.

For an undirected graph, returns all incident edges. In a distributed graph, the vertex v must be local to this processor.

Reimplemented in vtkUndirectedGraph.

virtual vtkIdType vtkGraph::GetInDegree ( vtkIdType  v)
virtual

The number of incoming edges to vertex v.

For undirected graphs, returns the same as GetDegree(). In a distributed graph, the vertex v must be local to this processor.

Reimplemented in vtkUndirectedGraph.

virtual vtkInEdgeType vtkGraph::GetInEdge ( vtkIdType  v,
vtkIdType  index 
)
virtual

Random-access method for retrieving incoming edges to vertex v.

Reimplemented in vtkUndirectedGraph.

virtual void vtkGraph::GetInEdge ( vtkIdType  v,
vtkIdType  index,
vtkGraphEdge e 
)
virtual

Random-access method for retrieving incoming edges to vertex v.

The method fills the vtkGraphEdge instance with the id, source, and target of the edge. This method is provided for wrappers, GetInEdge(vtkIdType, vtkIdType) is preferred.

Reimplemented in vtkUndirectedGraph.

virtual void vtkGraph::GetAdjacentVertices ( vtkIdType  v,
vtkAdjacentVertexIterator it 
)
virtual

Initializes the adjacent vertex iterator to iterate over all outgoing vertices from vertex v.

For an undirected graph, returns all adjacent vertices. In a distributed graph, the vertex v must be local to this processor.

virtual void vtkGraph::GetEdges ( vtkEdgeListIterator it)
virtual

Initializes the edge list iterator to iterate over all edges in the graph.

Edges may not be traversed in order of increasing edge id. In a distributed graph, this returns edges that are stored locally.

virtual vtkIdType vtkGraph::GetNumberOfEdges ( )
virtual

The number of edges in the graph.

In a distributed graph, this returns the number of edges stored locally.

virtual void vtkGraph::GetVertices ( vtkVertexListIterator it)
virtual

Initializes the vertex list iterator to iterate over all vertices in the graph.

In a distributed graph, the iterator traverses all local vertices.

virtual vtkIdType vtkGraph::GetNumberOfVertices ( )
virtual

The number of vertices in the graph.

In a distributed graph, returns the number of local vertices in the graph.

void vtkGraph::SetDistributedGraphHelper ( vtkDistributedGraphHelper helper)

Sets the distributed graph helper of this graph, turning it into a distributed graph.

This operation can only be executed on an empty graph.

vtkDistributedGraphHelper* vtkGraph::GetDistributedGraphHelper ( )

Retrieves the distributed graph helper for this graph.

vtkIdType vtkGraph::FindVertex ( const vtkVariant pedigreeID)

Retrieve the vertex with the given pedigree ID.

If successful, returns the ID of the vertex. Otherwise, either the vertex data does not have a pedigree ID array or there is no vertex with the given pedigree ID, so this function returns -1. If the graph is a distributed graph, this method will return the Distributed-ID of the vertex.

void vtkGraph::ShallowCopy ( vtkDataObject obj)
overridevirtual

Shallow copies the data object into this graph.

If it is an incompatible graph, reports an error.

Reimplemented from vtkDataObject.

Reimplemented in vtkMolecule.

void vtkGraph::DeepCopy ( vtkDataObject obj)
overridevirtual

Deep copies the data object into this graph.

If it is an incompatible graph, reports an error.

Reimplemented from vtkDataObject.

Reimplemented in vtkReebGraph, and vtkMolecule.

virtual void vtkGraph::CopyStructure ( vtkGraph g)
virtual

Does a shallow copy of the topological information, but not the associated attributes.

virtual bool vtkGraph::CheckedShallowCopy ( vtkGraph g)
virtual

Performs the same operation as ShallowCopy(), but instead of reporting an error for an incompatible graph, returns false.

Reimplemented in vtkMolecule.

virtual bool vtkGraph::CheckedDeepCopy ( vtkGraph g)
virtual

Performs the same operation as DeepCopy(), but instead of reporting an error for an incompatible graph, returns false.

Reimplemented in vtkMolecule.

virtual void vtkGraph::Squeeze ( )
virtual

Reclaim unused memory.

static vtkGraph* vtkGraph::GetData ( vtkInformation info)
static

Retrieve a graph from an information vector.

static vtkGraph* vtkGraph::GetData ( vtkInformationVector v,
int  i = 0 
)
static

Retrieve a graph from an information vector.

void vtkGraph::ReorderOutVertices ( vtkIdType  v,
vtkIdTypeArray vertices 
)

Reorder the outgoing vertices of a vertex.

The vertex list must have the same elements as the current out edge list, just in a different order. This method does not change the topology of the graph. In a distributed graph, the vertex v must be local.

bool vtkGraph::IsSameStructure ( vtkGraph other)

Returns true if both graphs point to the same adjacency structure.

Can be used to test the copy-on-write feature of the graph.

vtkIdType vtkGraph::GetSourceVertex ( vtkIdType  e)

Retrieve the source and target vertices for an edge id.

NOTE: The first time this is called, the graph will build a mapping array from edge id to source/target that is the same size as the number of edges in the graph. If you have access to a vtkOutEdgeType, vtkInEdgeType, vtkEdgeType, or vtkGraphEdge, you should directly use these structures to look up the source or target instead of this method.

vtkIdType vtkGraph::GetTargetVertex ( vtkIdType  e)

Retrieve the source and target vertices for an edge id.

NOTE: The first time this is called, the graph will build a mapping array from edge id to source/target that is the same size as the number of edges in the graph. If you have access to a vtkOutEdgeType, vtkInEdgeType, vtkEdgeType, or vtkGraphEdge, you should directly use these structures to look up the source or target instead of this method.

void vtkGraph::SetEdgePoints ( vtkIdType  e,
vtkIdType  npts,
double pts 
)

Get/Set the internal edge control points associated with each edge.

The size of the pts array is 3*npts, and holds the x,y,z location of each edge control point.

void vtkGraph::GetEdgePoints ( vtkIdType  e,
vtkIdType npts,
double *&  pts 
)

Get/Set the internal edge control points associated with each edge.

The size of the pts array is 3*npts, and holds the x,y,z location of each edge control point.

vtkIdType vtkGraph::GetNumberOfEdgePoints ( vtkIdType  e)

Get the number of edge points associated with an edge.

double* vtkGraph::GetEdgePoint ( vtkIdType  e,
vtkIdType  i 
)

Get the x,y,z location of a point along edge e.

void vtkGraph::ClearEdgePoints ( vtkIdType  e)

Clear all points associated with an edge.

void vtkGraph::SetEdgePoint ( vtkIdType  e,
vtkIdType  i,
double  x[3] 
)

Set an x,y,z location of a point along an edge.

This assumes there is already a point at location i, and simply overwrites it.

void vtkGraph::SetEdgePoint ( vtkIdType  e,
vtkIdType  i,
double  x,
double  y,
double  z 
)
inline

Definition at line 581 of file vtkGraph.h.

void vtkGraph::AddEdgePoint ( vtkIdType  e,
double  x[3] 
)

Adds a point to the end of the list of edge points for a certain edge.

void vtkGraph::AddEdgePoint ( vtkIdType  e,
double  x,
double  y,
double  z 
)
inline

Definition at line 588 of file vtkGraph.h.

void vtkGraph::ShallowCopyEdgePoints ( vtkGraph g)

Copy the internal edge point data from another graph into this graph.

Both graphs must have the same number of edges.

void vtkGraph::DeepCopyEdgePoints ( vtkGraph g)

Copy the internal edge point data from another graph into this graph.

Both graphs must have the same number of edges.

vtkGraphInternals* vtkGraph::GetGraphInternals ( bool  modifying)

Returns the internal representation of the graph.

If modifying is true, then the returned vtkGraphInternals object will be unique to this vtkGraph object.

void vtkGraph::GetInducedEdges ( vtkIdTypeArray verts,
vtkIdTypeArray edges 
)

Fills a list of edge indices with the edges contained in the induced subgraph formed by the vertices in the vertex list.

vtkFieldData* vtkGraph::GetAttributesAsFieldData ( int  type)
overridevirtual

Returns the attributes of the data object as a vtkFieldData.

This returns non-null values in all the same cases as GetAttributes, in addition to the case of FIELD, which will return the field data for any vtkDataObject subclass.

Reimplemented from vtkDataObject.

vtkIdType vtkGraph::GetNumberOfElements ( int  type)
overridevirtual

Get the number of elements for a specific attribute type (VERTEX, EDGE, etc.).

Reimplemented from vtkDataObject.

void vtkGraph::Dump ( )

Dump the contents of the graph to standard output.

vtkIdType vtkGraph::GetEdgeId ( vtkIdType  a,
vtkIdType  b 
)

Returns the Id of the edge between vertex a and vertex b.

This is independent of directionality of the edge, that is, if edge A->B exists or if edge B->A exists, this function will return its Id. If multiple edges exist between a and b, here is no guarantee about which one will be returned. Returns -1 if no edge exists between a and b.

bool vtkGraph::ToDirectedGraph ( vtkDirectedGraph g)

Convert the graph to a directed graph.

bool vtkGraph::ToUndirectedGraph ( vtkUndirectedGraph g)

Convert the graph to an undirected graph.

void vtkGraph::AddVertexInternal ( vtkVariantArray propertyArr = nullptr,
vtkIdType vertex = nullptr 
)
protected

Protected method for adding vertices, optionally with properties, used by mutable subclasses.

If vertex is non-null, it will be set to the newly-added (or found) vertex. Note that if propertyArr is non-null and the vertex data contains pedigree IDs, a vertex will only be added if there is no vertex with that pedigree ID.

void vtkGraph::AddVertexInternal ( const vtkVariant pedigree,
vtkIdType vertex 
)
protected

Adds a vertex with the given pedigree ID to the graph.

If a vertex with this pedigree ID already exists, no new vertex is added, but the vertex argument is set to the ID of the existing vertex. Otherwise, a new vertex is added and its ID is provided.

void vtkGraph::AddEdgeInternal ( vtkIdType  u,
vtkIdType  v,
bool  directed,
vtkVariantArray propertyArr,
vtkEdgeType edge 
)
protected

Protected method for adding edges of a certain directedness used by mutable subclasses.

If propertyArr is non-null, it specifies the properties to be attached to the newly-created edge. If non-null, edge will receive the newly-added edge.

void vtkGraph::AddEdgeInternal ( const vtkVariant uPedigree,
vtkIdType  v,
bool  directed,
vtkVariantArray propertyArr,
vtkEdgeType edge 
)
protected

Protected method for adding edges of a certain directedness used by mutable subclasses.

If propertyArr is non-null, it specifies the properties to be attached to the newly-created edge. If non-null, edge will receive the newly-added edge.

void vtkGraph::AddEdgeInternal ( vtkIdType  u,
const vtkVariant vPedigree,
bool  directed,
vtkVariantArray propertyArr,
vtkEdgeType edge 
)
protected

Protected method for adding edges of a certain directedness used by mutable subclasses.

If propertyArr is non-null, it specifies the properties to be attached to the newly-created edge. If non-null, edge will receive the newly-added edge.

void vtkGraph::AddEdgeInternal ( const vtkVariant uPedigree,
const vtkVariant vPedigree,
bool  directed,
vtkVariantArray propertyArr,
vtkEdgeType edge 
)
protected

Protected method for adding edges of a certain directedness used by mutable subclasses.

If propertyArr is non-null, it specifies the properties to be attached to the newly-created edge. If non-null, edge will receive the newly-added edge.

void vtkGraph::RemoveVertexInternal ( vtkIdType  v,
bool  directed 
)
protected

Removes a vertex from the graph, along with any adjacent edges.

This invalidates the id of the last vertex, since it is reassigned to v.

void vtkGraph::RemoveEdgeInternal ( vtkIdType  e,
bool  directed 
)
protected

Removes an edge from the graph.

This invalidates the id of the last edge, since it is reassigned to e.

void vtkGraph::RemoveVerticesInternal ( vtkIdTypeArray arr,
bool  directed 
)
protected

Removes a collection of vertices from the graph, along with any adjacent edges.

void vtkGraph::RemoveEdgesInternal ( vtkIdTypeArray arr,
bool  directed 
)
protected

Removes a collection of edges from the graph.

virtual bool vtkGraph::IsStructureValid ( vtkGraph g)
protectedpure virtual

Subclasses override this method to accept the structure based on their requirements.

Implemented in vtkTree, vtkUndirectedGraph, vtkDirectedAcyclicGraph, and vtkDirectedGraph.

virtual void vtkGraph::CopyInternal ( vtkGraph g,
bool  deep 
)
protectedvirtual

Copy internal data structure.

void vtkGraph::SetInternals ( vtkGraphInternals internals)
protected

Private method for setting internals.

void vtkGraph::SetEdgePoints ( vtkGraphEdgePoints *  edgePoints)
protected

Private method for setting edge points.

void vtkGraph::ForceOwnership ( )
protected

If this instance does not own its internals, it makes a copy of the internals.

This is called before any write operation.

virtual void vtkGraph::GetOutEdges ( vtkIdType  v,
const vtkOutEdgeType *&  edges,
vtkIdType nedges 
)
protectedvirtual

Fast access functions for iterators.

virtual void vtkGraph::GetInEdges ( vtkIdType  v,
const vtkInEdgeType *&  edges,
vtkIdType nedges 
)
protectedvirtual

Fast access functions for iterators.

Reimplemented in vtkUndirectedGraph.

void vtkGraph::BuildEdgeList ( )
protected

Builds a mapping from edge id to source/target vertex id.

virtual vtkIdTypeArray* vtkGraph::GetEdgeList ( )
protectedvirtual

The optional mapping from edge id to source/target ids.

virtual void vtkGraph::SetEdgeList ( vtkIdTypeArray list)
protectedvirtual

The optional mapping from edge id to source/target ids.

Friends And Related Function Documentation

friend class vtkAdjacentVertexIterator
friend

Friend iterator classes.

Definition at line 773 of file vtkGraph.h.

friend class vtkEdgeListIterator
friend

Friend iterator classes.

Definition at line 774 of file vtkGraph.h.

friend class vtkInEdgeIterator
friend

Friend iterator classes.

Definition at line 775 of file vtkGraph.h.

friend class vtkOutEdgeIterator
friend

Friend iterator classes.

Definition at line 776 of file vtkGraph.h.

friend class boost::vtk_edge_iterator
friend

Friend iterator classes.

Definition at line 777 of file vtkGraph.h.

Friend iterator classes.

Definition at line 778 of file vtkGraph.h.

Friend iterator classes.

Definition at line 779 of file vtkGraph.h.

Member Data Documentation

vtkGraphInternals* vtkGraph::Internals
protected

The adjacency list internals of this graph.

Definition at line 728 of file vtkGraph.h.

vtkDistributedGraphHelper* vtkGraph::DistributedHelper
protected

The distributed graph helper.

Only non-nullptr for distributed graphs.

Definition at line 733 of file vtkGraph.h.

vtkGraphEdgePoints* vtkGraph::EdgePoints
protected

The structure for holding the edge points.

Definition at line 743 of file vtkGraph.h.

vtkDataSetAttributes* vtkGraph::VertexData
protected

The vertex and edge data.

Definition at line 786 of file vtkGraph.h.

vtkDataSetAttributes* vtkGraph::EdgeData
protected

The vertex and edge data.

Definition at line 787 of file vtkGraph.h.

double vtkGraph::Bounds[6]
protected

(xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds.

Definition at line 793 of file vtkGraph.h.

vtkTimeStamp vtkGraph::ComputeTime
protected

Time at which bounds were computed.

Definition at line 798 of file vtkGraph.h.

vtkPoints* vtkGraph::Points
protected

The vertex locations.

Definition at line 804 of file vtkGraph.h.

double vtkGraph::DefaultPoint[3]
staticprotected

The vertex locations.

Definition at line 805 of file vtkGraph.h.

vtkIdTypeArray* vtkGraph::EdgeList
protected

The optional mapping from edge id to source/target ids.

Definition at line 814 of file vtkGraph.h.


The documentation for this class was generated from the following file: