VTK
|
Base class for graph data types. More...
#include <vtkGraph.h>
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... | |
vtkGraph * | NewInstance () 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... | |
vtkDistributedGraphHelper * | GetDistributedGraphHelper () |
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... | |
double * | GetEdgePoint (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) |
vtkGraphInternals * | GetGraphInternals (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... | |
vtkFieldData * | GetAttributesAsFieldData (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 vtkDataSetAttributes * | GetVertexData () |
Get the vertex or edge data. More... | |
virtual vtkDataSetAttributes * | GetEdgeData () |
Get the vertex or edge data. More... | |
double * | GetPoint (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... | |
vtkPoints * | GetPoints () |
Returns the points array for this graph. More... | |
virtual void | SetPoints (vtkPoints *points) |
Returns the points array for this graph. More... | |
double * | GetBounds () |
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 | |
vtkDataObject * | NewInstance () 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 vtkDataSetAttributes * | GetAttributes (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 vtkInformation * | GetInformation () |
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 vtkFieldData * | GetFieldData () |
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... | |
vtkCommand * | GetCommand (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 vtkGraph * | SafeDownCast (vtkObjectBase *o) |
static vtkGraph * | GetData (vtkInformation *info) |
Retrieve a graph from an information vector. More... | |
static vtkGraph * | GetData (vtkInformationVector *v, int i=0) |
Retrieve a graph from an information vector. More... | |
Static Public Member Functions inherited from vtkDataObject | |
static vtkDataObject * | New () |
static int | IsTypeOf (const char *type) |
static vtkDataObject * | SafeDownCast (vtkObjectBase *o) |
static vtkInformation * | GetActiveFieldInformation (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 vtkInformation * | GetNamedFieldInformation (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 vtkInformation * | SetActiveAttribute (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 vtkInformationStringKey * | DATA_TYPE_NAME () |
static vtkInformationDataObjectKey * | DATA_OBJECT () |
static vtkInformationIntegerKey * | DATA_EXTENT_TYPE () |
static vtkInformationIntegerPointerKey * | DATA_EXTENT () |
static vtkInformationIntegerVectorKey * | ALL_PIECES_EXTENT () |
static vtkInformationIntegerKey * | DATA_PIECE_NUMBER () |
static vtkInformationIntegerKey * | DATA_NUMBER_OF_PIECES () |
static vtkInformationIntegerKey * | DATA_NUMBER_OF_GHOST_LEVELS () |
static vtkInformationDoubleKey * | DATA_TIME_STEP () |
static vtkInformationInformationVectorKey * | POINT_DATA_VECTOR () |
static vtkInformationInformationVectorKey * | CELL_DATA_VECTOR () |
static vtkInformationInformationVectorKey * | VERTEX_DATA_VECTOR () |
static vtkInformationInformationVectorKey * | EDGE_DATA_VECTOR () |
static vtkInformationIntegerKey * | FIELD_ARRAY_TYPE () |
static vtkInformationIntegerKey * | FIELD_ASSOCIATION () |
static vtkInformationIntegerKey * | FIELD_ATTRIBUTE_TYPE () |
static vtkInformationIntegerKey * | FIELD_ACTIVE_ATTRIBUTE () |
static vtkInformationIntegerKey * | FIELD_NUMBER_OF_COMPONENTS () |
static vtkInformationIntegerKey * | FIELD_NUMBER_OF_TUPLES () |
static vtkInformationIntegerKey * | FIELD_OPERATION () |
static vtkInformationDoubleVectorKey * | FIELD_RANGE () |
static vtkInformationIntegerVectorKey * | PIECE_EXTENT () |
static vtkInformationStringKey * | FIELD_NAME () |
static vtkInformationDoubleVectorKey * | ORIGIN () |
static vtkInformationDoubleVectorKey * | SPACING () |
static vtkInformationDoubleVectorKey * | BOUNDING_BOX () |
static vtkInformationDataObjectKey * | SIL () |
static vtkDataObject * | GetData (vtkInformation *info) |
Retrieve an instance of this class from an information object. More... | |
static vtkDataObject * | GetData (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 vtkObject * | New () |
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 vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkGraph () | |
~vtkGraph () override | |
void | AddVertexInternal (vtkVariantArray *propertyArr=0, vtkIdType *vertex=0) |
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=NULL) |
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 | |
vtkGraphInternals * | Internals |
The adjacency list internals of this graph. More... | |
vtkDistributedGraphHelper * | DistributedHelper |
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... | |
vtkDataSetAttributes * | VertexData |
The vertex and edge data. More... | |
vtkDataSetAttributes * | EdgeData |
The vertex and edge data. More... | |
Protected Attributes inherited from vtkDataObject | |
vtkFieldData * | FieldData |
int | DataReleased |
vtkTimeStamp | UpdateTime |
vtkInformation * | Information |
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 | |
vtkPoints * | Points |
The vertex locations. More... | |
static double | DefaultPoint [3] |
The vertex locations. More... | |
vtkIdTypeArray * | EdgeList |
The optional mapping from edge id to source/target ids. More... | |
virtual vtkIdTypeArray * | GetEdgeList () |
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... | |
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, Tcl, 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.
Definition at line 287 of file vtkGraph.h.
typedef vtkDataObject vtkGraph::Superclass |
Definition at line 290 of file vtkGraph.h.
|
protected |
|
overrideprotected |
|
static |
|
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 |
|
protectedvirtual |
Reimplemented from vtkDataObject.
Reimplemented in vtkReebGraph, vtkMolecule, vtkTree, vtkDirectedAcyclicGraph, vtkUndirectedGraph, vtkMutableDirectedGraph, vtkDirectedGraph, and vtkMutableUndirectedGraph.
vtkGraph* vtkGraph::NewInstance | ( | ) | const |
|
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 |
Get the vertex or edge data.
|
virtual |
Get the vertex or edge data.
|
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.
|
overridevirtual |
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.
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 |
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.
|
overridevirtual |
The modified time of the graph.
Reimplemented from vtkDataObject.
|
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.
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.
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 |
Random-access method for retrieving outgoing edges from vertex v.
|
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 |
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.
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 |
Random-access method for retrieving incoming edges to vertex v.
Reimplemented in vtkUndirectedGraph.
|
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 |
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 |
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 |
The number of edges in the graph.
In a distributed graph, this returns the number of edges stored locally.
|
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 |
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.
|
overridevirtual |
Shallow copies the data object into this graph.
If it is an incompatible graph, reports an error.
Reimplemented from vtkDataObject.
Reimplemented in vtkMolecule.
|
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 |
Does a shallow copy of the topological information, but not the associated attributes.
|
virtual |
Performs the same operation as ShallowCopy(), but instead of reporting an error for an incompatible graph, returns false.
Reimplemented in vtkMolecule.
|
virtual |
Performs the same operation as DeepCopy(), but instead of reporting an error for an incompatible graph, returns false.
Reimplemented in vtkMolecule.
|
virtual |
Reclaim unused memory.
|
static |
Retrieve a graph from an information vector.
|
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.
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.
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.
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.
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.
Get the number of edge points associated with an edge.
Get the x,y,z location of a point along edge e.
void vtkGraph::ClearEdgePoints | ( | vtkIdType | e | ) |
Clear all points associated with an edge.
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.
Definition at line 581 of file vtkGraph.h.
Adds a point to the end of the list of edge points for a certain edge.
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.
|
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.
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.
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
protected |
Removes an edge from the graph.
This invalidates the id of the last edge, since it is reassigned to e.
|
protected |
Removes a collection of vertices from the graph, along with any adjacent edges.
|
protected |
Removes a collection of edges from the graph.
|
protectedpure virtual |
Subclasses override this method to accept the structure based on their requirements.
Implemented in vtkTree, vtkUndirectedGraph, vtkDirectedAcyclicGraph, and vtkDirectedGraph.
|
protectedvirtual |
Copy internal data structure.
|
protected |
Private method for setting internals.
|
protected |
Private method for setting edge points.
|
protected |
If this instance does not own its internals, it makes a copy of the internals.
This is called before any write operation.
|
protectedvirtual |
Fast access functions for iterators.
|
protectedvirtual |
Fast access functions for iterators.
Reimplemented in vtkUndirectedGraph.
|
protected |
Builds a mapping from edge id to source/target vertex id.
|
protectedvirtual |
The optional mapping from edge id to source/target ids.
|
protectedvirtual |
The optional mapping from edge id to source/target ids.
|
friend |
Friend iterator classes.
Definition at line 773 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 774 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 775 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 776 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 777 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 778 of file vtkGraph.h.
|
friend |
Friend iterator classes.
Definition at line 779 of file vtkGraph.h.
|
protected |
The adjacency list internals of this graph.
Definition at line 728 of file vtkGraph.h.
|
protected |
The distributed graph helper.
Only non-NULL for distributed graphs.
Definition at line 733 of file vtkGraph.h.
|
protected |
The structure for holding the edge points.
Definition at line 743 of file vtkGraph.h.
|
protected |
The vertex and edge data.
Definition at line 786 of file vtkGraph.h.
|
protected |
The vertex and edge data.
Definition at line 787 of file vtkGraph.h.
|
protected |
(xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds.
Definition at line 793 of file vtkGraph.h.
|
protected |
Time at which bounds were computed.
Definition at line 798 of file vtkGraph.h.
|
protected |
The vertex locations.
Definition at line 804 of file vtkGraph.h.
|
staticprotected |
The vertex locations.
Definition at line 805 of file vtkGraph.h.
|
protected |
The optional mapping from edge id to source/target ids.
Definition at line 814 of file vtkGraph.h.