VTK
9.1.0
|
Reeb graph computation for PL scalar fields. More...
#include <vtkReebGraph.h>
Public Member Functions | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkReebGraph * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
void | PrintNodeData (ostream &os, vtkIndent indent) |
int | GetDataObjectType () override |
Return class name of data type. | |
int | Build (vtkPolyData *mesh, vtkDataArray *scalarField) |
Build the Reeb graph of the field 'scalarField' defined on the surface mesh 'mesh'. | |
int | Build (vtkUnstructuredGrid *mesh, vtkDataArray *scalarField) |
Build the Reeb graph of the field 'scalarField' defined on the volume mesh 'mesh'. | |
int | Build (vtkPolyData *mesh, vtkIdType scalarFieldId) |
Build the Reeb graph of the field given by the Id 'scalarFieldId', defined on the surface mesh 'mesh'. | |
int | Build (vtkUnstructuredGrid *mesh, vtkIdType scalarFieldId) |
Build the Reeb graph of the field given by the Id 'scalarFieldId', defined on the volume mesh 'mesh'. | |
int | Build (vtkPolyData *mesh, const char *scalarFieldName) |
Build the Reeb graph of the field given by the name 'scalarFieldName', defined on the surface mesh 'mesh'. | |
int | Build (vtkUnstructuredGrid *mesh, const char *scalarFieldName) |
Build the Reeb graph of the field given by the name 'scalarFieldName', defined on the volume mesh 'mesh'. | |
int | StreamTriangle (vtkIdType vertex0Id, double scalar0, vtkIdType vertex1Id, double scalar1, vtkIdType vertex2Id, double scalar2) |
Streaming Reeb graph computation. | |
int | StreamTetrahedron (vtkIdType vertex0Id, double scalar0, vtkIdType vertex1Id, double scalar1, vtkIdType vertex2Id, double scalar2, vtkIdType vertex3Id, double scalar3) |
Streaming Reeb graph computation. | |
void | CloseStream () |
Finalize internal data structures, in the case of streaming computations (with StreamTriangle or StreamTetrahedron). | |
void | DeepCopy (vtkDataObject *src) override |
Deep copies the data object into this graph. | |
int | Simplify (double simplificationThreshold, vtkReebGraphSimplificationMetric *simplificationMetric) |
Simplify the Reeb graph given a threshold 'simplificationThreshold' (between 0 and 1). | |
void | Set (vtkMutableDirectedGraph *g) |
Use a pre-defined Reeb graph (post-processing). | |
Public Member Functions inherited from vtkMutableDirectedGraph | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkMutableDirectedGraph * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
virtual vtkIdType | SetNumberOfVertices (vtkIdType numVerts) |
Allocates space for the specified number of vertices in the graph's internal data structures. | |
vtkIdType | AddVertex () |
Adds a vertex to the graph and returns the index of the new vertex. | |
vtkIdType | AddVertex (vtkVariantArray *propertyArr) |
Adds a vertex to the graph with associated properties defined in propertyArr and returns the index of the new vertex. | |
vtkIdType | AddVertex (const vtkVariant &pedigreeId) |
Adds a vertex with the given pedigreeID to the graph and returns the index of the new vertex. | |
vtkEdgeType | AddEdge (vtkIdType u, vtkIdType v) |
Adds a directed edge from u to v , where u and v are vertex indices, and returns a vtkEdgeType structure describing that edge. | |
vtkEdgeType | AddEdge (vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr) |
Adds a directed edge from u to v , where u and v are vertex indices, with associated properties defined in propertyArr and returns a vtkEdgeType structure describing that edge. | |
vtkEdgeType | AddEdge (const vtkVariant &u, vtkIdType v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u is a vertex pedigree ID and v is a vertex index, and returns a vtkEdgeType structure describing that edge. | |
vtkEdgeType | AddEdge (vtkIdType u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u is a vertex index and v is a vertex pedigree ID, and returns a vtkEdgeType structure describing that edge. | |
vtkEdgeType | AddEdge (const vtkVariant &u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u and v are vertex pedigree IDs, and returns a vtkEdgeType structure describing that edge. | |
void | LazyAddVertex () |
Adds a vertex to the graph. | |
void | LazyAddVertex (vtkVariantArray *propertyArr) |
Adds a vertex to the graph with associated properties defined in propertyArr . | |
void | LazyAddVertex (const vtkVariant &pedigreeId) |
Adds a vertex with the given pedigreeID to the graph. | |
void | LazyAddEdge (vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u and v are vertex indices. | |
void | LazyAddEdge (const vtkVariant &u, vtkIdType v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u is a vertex pedigree ID and v is a vertex index. | |
void | LazyAddEdge (vtkIdType u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u is a vertex index and v is a vertex pedigree ID. | |
void | LazyAddEdge (const vtkVariant &u, const vtkVariant &v, vtkVariantArray *propertyArr=nullptr) |
Adds a directed edge from u to v , where u and v are vertex pedigree IDs. | |
vtkGraphEdge * | AddGraphEdge (vtkIdType u, vtkIdType v) |
Variant of AddEdge() that returns a heavyweight vtkGraphEdge object. | |
vtkIdType | AddChild (vtkIdType parent, vtkVariantArray *propertyArr) |
Convenience method for creating trees. | |
vtkIdType | AddChild (vtkIdType parent) |
void | RemoveVertex (vtkIdType v) |
Removes the vertex from the graph along with any connected edges. | |
void | RemoveEdge (vtkIdType e) |
Removes the edge from the graph. | |
void | RemoveVertices (vtkIdTypeArray *arr) |
Removes a collection of vertices from the graph along with any connected edges. | |
void | RemoveEdges (vtkIdTypeArray *arr) |
Removes a collection of edges from the graph. | |
Public Member Functions inherited from vtkDirectedGraph | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkDirectedGraph * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
int | GetDataObjectType () override |
Return what type of dataset this is. | |
bool | IsStructureValid (vtkGraph *g) override |
Check the storage, and accept it if it is a valid undirected graph. | |
Public Member Functions inherited from vtkGraph | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkGraph * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
int | GetDataObjectType () override |
Return what type of dataset this is. | |
void | Initialize () override |
Initialize to an empty graph. | |
void | ComputeBounds () |
Compute the bounds of the graph. | |
vtkMTimeType | GetMTime () override |
The modified time of the graph. | |
virtual void | GetOutEdges (vtkIdType v, vtkOutEdgeIterator *it) |
Initializes the out edge iterator to iterate over all outgoing edges of vertex v. | |
virtual vtkIdType | GetDegree (vtkIdType v) |
The total of all incoming and outgoing vertices for vertex v. | |
virtual vtkIdType | GetOutDegree (vtkIdType v) |
The number of outgoing edges from vertex v. | |
virtual vtkOutEdgeType | GetOutEdge (vtkIdType v, vtkIdType index) |
Random-access method for retrieving outgoing edges from vertex v. | |
virtual void | GetOutEdge (vtkIdType v, vtkIdType index, vtkGraphEdge *e) |
Random-access method for retrieving outgoing edges from vertex v. | |
virtual void | GetInEdges (vtkIdType v, vtkInEdgeIterator *it) |
Initializes the in edge iterator to iterate over all incoming edges to vertex v. | |
virtual vtkIdType | GetInDegree (vtkIdType v) |
The number of incoming edges to vertex v. | |
virtual vtkInEdgeType | GetInEdge (vtkIdType v, vtkIdType index) |
Random-access method for retrieving incoming edges to vertex v. | |
virtual void | GetInEdge (vtkIdType v, vtkIdType index, vtkGraphEdge *e) |
Random-access method for retrieving incoming edges to vertex v. | |
virtual void | GetAdjacentVertices (vtkIdType v, vtkAdjacentVertexIterator *it) |
Initializes the adjacent vertex iterator to iterate over all outgoing vertices from vertex v. | |
virtual void | GetEdges (vtkEdgeListIterator *it) |
Initializes the edge list iterator to iterate over all edges in the graph. | |
virtual vtkIdType | GetNumberOfEdges () |
The number of edges in the graph. | |
virtual void | GetVertices (vtkVertexListIterator *it) |
Initializes the vertex list iterator to iterate over all vertices in the graph. | |
virtual vtkIdType | GetNumberOfVertices () |
The number of vertices in the graph. | |
void | SetDistributedGraphHelper (vtkDistributedGraphHelper *helper) |
Sets the distributed graph helper of this graph, turning it into a distributed graph. | |
vtkDistributedGraphHelper * | GetDistributedGraphHelper () |
Retrieves the distributed graph helper for this graph. | |
vtkIdType | FindVertex (const vtkVariant &pedigreeID) |
Retrieve the vertex with the given pedigree ID. | |
void | ShallowCopy (vtkDataObject *obj) override |
Shallow copies the data object into this graph. | |
void | DeepCopy (vtkDataObject *obj) override |
Deep copies the data object into this graph. | |
virtual void | CopyStructure (vtkGraph *g) |
Does a shallow copy of the topological information, but not the associated attributes. | |
virtual bool | CheckedShallowCopy (vtkGraph *g) |
Performs the same operation as ShallowCopy(), but instead of reporting an error for an incompatible graph, returns false. | |
virtual bool | CheckedDeepCopy (vtkGraph *g) |
Performs the same operation as DeepCopy(), but instead of reporting an error for an incompatible graph, returns false. | |
virtual void | Squeeze () |
Reclaim unused memory. | |
unsigned long | GetActualMemorySize () override |
Return the actual size of the data in kibibytes (1024 bytes). | |
void | ReorderOutVertices (vtkIdType v, vtkIdTypeArray *vertices) |
Reorder the outgoing vertices of a vertex. | |
bool | IsSameStructure (vtkGraph *other) |
Returns true if both graphs point to the same adjacency structure. | |
vtkIdType | GetNumberOfEdgePoints (vtkIdType e) |
Get the number of edge points associated with an edge. | |
double * | GetEdgePoint (vtkIdType e, vtkIdType i) |
Get the x,y,z location of a point along edge e. | |
void | ClearEdgePoints (vtkIdType e) |
Clear all points associated with an edge. | |
void | SetEdgePoint (vtkIdType e, vtkIdType i, const double x[3]) |
Set an x,y,z location of a point along an edge. | |
void | SetEdgePoint (vtkIdType e, vtkIdType i, double x, double y, double z) |
void | AddEdgePoint (vtkIdType e, const double x[3]) |
Adds a point to the end of the list of edge points for a certain edge. | |
void | AddEdgePoint (vtkIdType e, double x, double y, double z) |
vtkGraphInternals * | GetGraphInternals (bool modifying) |
Returns the internal representation of the graph. | |
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. | |
vtkFieldData * | GetAttributesAsFieldData (int type) override |
Returns the attributes of the data object as a vtkFieldData. | |
vtkIdType | GetNumberOfElements (int type) override |
Get the number of elements for a specific attribute type (VERTEX, EDGE, etc.). | |
void | Dump () |
Dump the contents of the graph to standard output. | |
vtkIdType | GetEdgeId (vtkIdType a, vtkIdType b) |
Returns the Id of the edge between vertex a and vertex b. | |
bool | ToDirectedGraph (vtkDirectedGraph *g) |
Convert the graph to a directed graph. | |
bool | ToUndirectedGraph (vtkUndirectedGraph *g) |
Convert the graph to an undirected graph. | |
virtual vtkDataSetAttributes * | GetVertexData () |
Get the vertex or edge data. | |
virtual vtkDataSetAttributes * | GetEdgeData () |
Get the vertex or edge data. | |
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. | |
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. | |
vtkPoints * | GetPoints () |
Returns the points array for this graph. | |
virtual void | SetPoints (vtkPoints *points) |
Returns the points array for this graph. | |
double * | GetBounds () |
Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). | |
void | GetBounds (double bounds[6]) |
Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). | |
vtkIdType | GetSourceVertex (vtkIdType e) |
Retrieve the source and target vertices for an edge id. | |
vtkIdType | GetTargetVertex (vtkIdType e) |
Retrieve the source and target vertices for an edge id. | |
void | SetEdgePoints (vtkIdType e, vtkIdType npts, const double pts[]) |
Get/Set the internal edge control points associated with each edge. | |
void | GetEdgePoints (vtkIdType e, vtkIdType &npts, double *&pts) |
Get/Set the internal edge control points associated with each edge. | |
void | ShallowCopyEdgePoints (vtkGraph *g) |
Copy the internal edge point data from another graph into this graph. | |
void | DeepCopyEdgePoints (vtkGraph *g) |
Copy the internal edge point data from another graph into this graph. | |
Public Member Functions inherited from vtkDataObject | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkDataObject * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
vtkMTimeType | GetMTime () override |
Data objects are composite objects and need to check each part for MTime. | |
virtual void | Initialize () |
Restore data object to initial state,. | |
void | ReleaseData () |
Release data back to system to conserve memory resource. | |
virtual int | GetDataObjectType () |
Return class name of data type. | |
vtkMTimeType | GetUpdateTime () |
Used by Threaded ports to determine if they should initiate an asynchronous update (still in development). | |
virtual unsigned long | GetActualMemorySize () |
Return the actual size of the data in kibibytes (1024 bytes). | |
virtual void | CopyInformationFromPipeline (vtkInformation *vtkNotUsed(info)) |
Copy from the pipeline information to the data object's own information. | |
virtual void | CopyInformationToPipeline (vtkInformation *vtkNotUsed(info)) |
Copy information from this data object to the pipeline information. | |
void | DataHasBeenGenerated () |
This method is called by the source when it executes to generate data. | |
virtual void | PrepareForNewData () |
make the output data ready for new data to be inserted. | |
virtual int | GetExtentType () |
The ExtentType will be left as VTK_PIECES_EXTENT for data objects such as vtkPolyData and vtkUnstructuredGrid. | |
virtual void | Crop (const int *updateExtent) |
This method crops the data object (if necessary) so that the extent matches the update extent. | |
virtual vtkDataSetAttributes * | GetAttributes (int type) |
Returns the attributes of the data object of the specified attribute type. | |
virtual vtkDataArray * | GetGhostArray (int type) |
Returns the ghost arrays of the data object of the specified atribute type. | |
virtual vtkFieldData * | GetAttributesAsFieldData (int type) |
Returns the attributes of the data object as a vtkFieldData. | |
virtual int | GetAttributeTypeForArray (vtkAbstractArray *arr) |
Retrieves the attribute type that an array came from. | |
virtual vtkIdType | GetNumberOfElements (int type) |
Get the number of elements for a specific attribute type (POINT, CELL, etc.). | |
virtual vtkInformation * | GetInformation () |
Set/Get the information object associated with this data object. | |
virtual void | SetInformation (vtkInformation *) |
Set/Get the information object associated with this data object. | |
virtual int | GetDataReleased () |
Get the flag indicating the data has been released. | |
virtual void | SetFieldData (vtkFieldData *) |
Assign or retrieve a general field data to this data object. | |
virtual vtkFieldData * | GetFieldData () |
Assign or retrieve a general field data to this data object. | |
void | GlobalReleaseDataFlagOn () |
Turn on/off flag to control whether every object releases its data after being used by a filter. | |
void | GlobalReleaseDataFlagOff () |
Turn on/off flag to control whether every object releases its data after being used by a filter. | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. | |
virtual void | DebugOff () |
Turn debugging output off. | |
bool | GetDebug () |
Get the value of the debug flag. | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. | |
virtual void | Modified () |
Update the modification time for this object. | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | 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. | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
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. | |
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. | |
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. | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
int | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. | |
virtual vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name) |
Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
virtual void | Delete () |
Delete a VTK object. | |
virtual void | FastDelete () |
Delete a reference to this object. | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. | |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). | |
int | GetReferenceCount () |
Return the current reference count of this object. | |
void | SetReferenceCount (int) |
Sets the reference count. | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
Static Public Member Functions | |
static vtkReebGraph * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkReebGraph * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkMutableDirectedGraph | |
static vtkMutableDirectedGraph * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkMutableDirectedGraph * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkDirectedGraph | |
static vtkDirectedGraph * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkDirectedGraph * | SafeDownCast (vtkObjectBase *o) |
static vtkDirectedGraph * | GetData (vtkInformation *info) |
Retrieve a graph from an information vector. | |
static vtkDirectedGraph * | GetData (vtkInformationVector *v, int i=0) |
Retrieve a graph from an information vector. | |
Static Public Member Functions inherited from vtkGraph | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkGraph * | SafeDownCast (vtkObjectBase *o) |
static vtkGraph * | GetData (vtkInformation *info) |
Retrieve a graph from an information vector. | |
static vtkGraph * | GetData (vtkInformationVector *v, int i=0) |
Retrieve a graph from an information vector. | |
Static Public Member Functions inherited from vtkDataObject | |
static vtkDataObject * | New () |
static vtkTypeBool | 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) | |
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. | |
static void | RemoveNamedFieldInformation (vtkInformation *info, int fieldAssociation, const char *name) |
Remove the info associated with an array. | |
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). | |
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). | |
static void | SetPointDataActiveScalarInfo (vtkInformation *info, int arrayType, int numComponents) |
Convenience version of previous method for use (primarily) by the Imaging filters. | |
static const char * | GetAssociationTypeAsString (int associationType) |
Given an integer association type, this static method returns a string type for the attribute (i.e. | |
static int | GetAssociationTypeFromString (const char *associationName) |
Given a string association name, this static method returns an integer association type for the attribute (i.e. | |
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 * | DIRECTION () |
static vtkInformationDoubleVectorKey * | BOUNDING_BOX () |
static vtkInformationDataObjectKey * | SIL () |
static vtkDataObject * | GetData (vtkInformation *info) |
Retrieve an instance of this class from an information object. | |
static vtkDataObject * | GetData (vtkInformationVector *v, int i=0) |
Retrieve an instance of this class from an information object. | |
static void | SetGlobalReleaseDataFlag (int val) |
Turn on/off flag to control whether every object releases its data after being used by a filter. | |
static int | GetGlobalReleaseDataFlag () |
Turn on/off flag to control whether every object releases its data after being used by a filter. | |
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. | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
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. | |
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name) |
Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. | |
static bool | GetUsingMemkind () |
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkReebGraph () | |
~vtkReebGraph () override | |
Protected Member Functions inherited from vtkMutableDirectedGraph | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkMutableDirectedGraph () | |
~vtkMutableDirectedGraph () override | |
Protected Member Functions inherited from vtkDirectedGraph | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkDirectedGraph () | |
~vtkDirectedGraph () override | |
Protected Member Functions inherited from vtkGraph | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkGraph () | |
~vtkGraph () override | |
void | AddVertexInternal (vtkVariantArray *propertyArr=nullptr, vtkIdType *vertex=nullptr) |
Protected method for adding vertices, optionally with properties, used by mutable subclasses. | |
void | AddVertexInternal (const vtkVariant &pedigree, vtkIdType *vertex) |
Adds a vertex with the given pedigree ID to the graph. | |
void | RemoveVertexInternal (vtkIdType v, bool directed) |
Removes a vertex from the graph, along with any adjacent edges. | |
void | RemoveEdgeInternal (vtkIdType e, bool directed) |
Removes an edge from the graph. | |
void | RemoveVerticesInternal (vtkIdTypeArray *arr, bool directed) |
Removes a collection of vertices from the graph, along with any adjacent edges. | |
void | RemoveEdgesInternal (vtkIdTypeArray *arr, bool directed) |
Removes a collection of edges from the graph. | |
virtual bool | IsStructureValid (vtkGraph *g)=0 |
Subclasses override this method to accept the structure based on their requirements. | |
virtual void | CopyInternal (vtkGraph *g, bool deep) |
Copy internal data structure. | |
void | SetInternals (vtkGraphInternals *internals) |
Private method for setting internals. | |
void | SetEdgePoints (vtkGraphEdgePoints *edgePoints) |
Private method for setting edge points. | |
void | ForceOwnership () |
If this instance does not own its internals, it makes a copy of the internals. | |
void | BuildEdgeList () |
Builds a mapping from edge id to source/target vertex id. | |
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. | |
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. | |
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. | |
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. | |
virtual void | GetOutEdges (vtkIdType v, const vtkOutEdgeType *&edges, vtkIdType &nedges) |
Fast access functions for iterators. | |
virtual void | GetInEdges (vtkIdType v, const vtkInEdgeType *&edges, vtkIdType &nedges) |
Fast access functions for iterators. | |
virtual vtkIdTypeArray * | GetEdgeList () |
The optional mapping from edge id to source/target ids. | |
virtual void | SetEdgeList (vtkIdTypeArray *list) |
The optional mapping from edge id to source/target ids. | |
Protected Member Functions inherited from vtkDataObject | |
virtual vtkObjectBase * | NewInstanceInternal () const |
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. | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
Implementation * | Storage |
Protected Attributes inherited from vtkMutableDirectedGraph | |
vtkGraphEdge * | GraphEdge |
Graph edge that is reused of AddGraphEdge calls. | |
Protected Attributes inherited from vtkGraph | |
vtkGraphInternals * | Internals |
The adjacency list internals of this graph. | |
vtkDistributedGraphHelper * | DistributedHelper |
The distributed graph helper. | |
vtkGraphEdgePoints * | EdgePoints |
The structure for holding the edge points. | |
double | Bounds [6] |
(xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds. | |
vtkTimeStamp | ComputeTime |
Time at which bounds were computed. | |
vtkDataSetAttributes * | VertexData |
The vertex and edge data. | |
vtkDataSetAttributes * | EdgeData |
The vertex and edge data. | |
vtkPoints * | Points |
The vertex locations. | |
vtkIdTypeArray * | EdgeList |
The optional mapping from edge id to source/target ids. | |
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 | |
std::atomic< int32_t > | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
Additional Inherited Members | |
Static Protected Member Functions inherited from vtkObjectBase | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
Static Protected Attributes inherited from vtkGraph | |
static double | DefaultPoint [3] |
The vertex locations. | |
Reeb graph computation for PL scalar fields.
vtkReebGraph is a class that computes a Reeb graph given a PL scalar field (vtkDataArray) defined on a simplicial mesh. A Reeb graph is a concise representation of the connectivity evolution of the level sets of a scalar function.
It is particularly useful in visualization (optimal seed set computation, fast flexible isosurface extraction, automated transfer function design, feature-driven visualization, etc.) and computer graphics (shape deformation, shape matching, shape compression, etc.).
Reference: "Sur les points singuliers d'une forme de Pfaff completement integrable ou d'une fonction numerique", G. Reeb, Comptes-rendus de l'Academie des Sciences, 222:847-849, 1946.
vtkReebGraph implements one of the latest and most robust Reeb graph computation algorithms.
Reference: "Robust on-line computation of Reeb graphs: simplicity and speed", V. Pascucci, G. Scorzelli, P.-T. Bremer, and A. Mascarenhas, ACM Transactions on Graphics, Proc. of SIGGRAPH 2007.
vtkReebGraph provides methods for computing multi-resolution topological hierarchies through topological simplification. Topoligical simplification can be either driven by persistence homology concepts (default behavior) or by application specific metrics (see vtkReebGraphSimplificationMetric). In the latter case, designing customized simplification metric evaluation algorithms enables the user to control the definition of what should be considered as noise or signal in the topological filtering process.
References: "Topological persistence and simplification", H. Edelsbrunner, D. Letscher, and A. Zomorodian, Discrete Computational Geometry, 28:511-533, 2002.
"Extreme elevation on a 2-manifold", P.K. Agarwal, H. Edelsbrunner, J. Harer, and Y. Wang, ACM Symposium on Computational Geometry, pp. 357-365, 2004.
"Simplifying flexible isosurfaces using local geometric measures", H. Carr, J. Snoeyink, M van de Panne, IEEE Visualization, 497-504, 2004
"Loop surgery for volumetric meshes: Reeb graphs reduced to contour trees", J. Tierny, A. Gyulassy, E. Simon, V. Pascucci, IEEE Trans. on Vis. and Comp. Graph. (Proc of IEEE VIS), 15:1177-1184, 2009.
Reeb graphs can be computed from 2D data (vtkPolyData, with triangles only) or 3D data (vtkUnstructuredGrid, with tetrahedra only), sequentially (see the "Build" calls) or in streaming (see the "StreamTriangle" and "StreamTetrahedron" calls).
vtkReebGraph inherits from vtkMutableDirectedGraph.
Each vertex of a vtkReebGraph object represents a critical point of the scalar field where the connectivity of the related level set changes (creation, deletion, split or merge of connected components). A vtkIdTypeArray (called "Vertex Ids") is associated with the VertexData of a vtkReebGraph object, in order to retrieve if necessary the exact Ids of the corresponding vertices in the input mesh.
The edges of a vtkReebGraph object represent the regions of the input mesh separated by the critical contours of the field, and where the connectivity of the input field does not change. A vtkVariantArray is associated with the EdgeDta of a vtkReebGraph object and each entry of this array is a vtkAbstractArray containing the Ids of the vertices of those regions, sorted by function value (useful for flexible isosurface extraction or level set signature computation, for instance).
See Graphics/Testing/Cxx/TestReebGraph.cxx for examples of traversals and typical usages (customized simplification, skeletonization, contour spectra, etc.) of a vtkReebGraph object.
Definition at line 131 of file vtkReebGraph.h.
Definition at line 137 of file vtkReebGraph.h.
anonymous enum |
Enumerator | |
---|---|
ERR_INCORRECT_FIELD | |
ERR_NO_SUCH_FIELD | |
ERR_NOT_A_SIMPLICIAL_MESH |
Definition at line 149 of file vtkReebGraph.h.
|
protected |
|
overrideprotected |
|
static |
|
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 vtkMutableDirectedGraph.
|
static |
|
protectedvirtual |
Reimplemented from vtkMutableDirectedGraph.
vtkReebGraph * vtkReebGraph::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 vtkMutableDirectedGraph.
void vtkReebGraph::PrintNodeData | ( | ostream & | os, |
vtkIndent | indent | ||
) |
|
inlineoverridevirtual |
Return class name of data type.
This is one of VTK_STRUCTURED_GRID, VTK_STRUCTURED_POINTS, VTK_UNSTRUCTURED_GRID, VTK_POLY_DATA, or VTK_RECTILINEAR_GRID (see vtkSetGet.h for definitions). THIS METHOD IS THREAD SAFE
Reimplemented from vtkDirectedGraph.
Definition at line 147 of file vtkReebGraph.h.
int vtkReebGraph::Build | ( | vtkPolyData * | mesh, |
vtkDataArray * | scalarField | ||
) |
Build the Reeb graph of the field 'scalarField' defined on the surface mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' has vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh (for example, the surface mesh contains quads instead of triangles).
int vtkReebGraph::Build | ( | vtkUnstructuredGrid * | mesh, |
vtkDataArray * | scalarField | ||
) |
Build the Reeb graph of the field 'scalarField' defined on the volume mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' has vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh.
int vtkReebGraph::Build | ( | vtkPolyData * | mesh, |
vtkIdType | scalarFieldId | ||
) |
Build the Reeb graph of the field given by the Id 'scalarFieldId', defined on the surface mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' as vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh (for example, the surface mesh contains quads instead of triangles).
vtkReebGraph::ERR_NO_SUCH_FIELD: the scalar field given by the Id 'scalarFieldId' does not exist.
int vtkReebGraph::Build | ( | vtkUnstructuredGrid * | mesh, |
vtkIdType | scalarFieldId | ||
) |
Build the Reeb graph of the field given by the Id 'scalarFieldId', defined on the volume mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' as vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh.
vtkReebGraph::ERR_NO_SUCH_FIELD: the scalar field given by the Id 'scalarFieldId' does not exist.
int vtkReebGraph::Build | ( | vtkPolyData * | mesh, |
const char * | scalarFieldName | ||
) |
Build the Reeb graph of the field given by the name 'scalarFieldName', defined on the surface mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' as vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh (for example, the surface mesh contains quads instead of triangles).
vtkReebGraph::ERR_NO_SUCH_FIELD: the scalar field given by the name 'scalarFieldName' does not exist.
int vtkReebGraph::Build | ( | vtkUnstructuredGrid * | mesh, |
const char * | scalarFieldName | ||
) |
Build the Reeb graph of the field given by the name 'scalarFieldName', defined on the volume mesh 'mesh'.
Returned values:
vtkReebGraph::ERR_INCORRECT_FIELD: 'scalarField' does not have as many tuples as 'mesh' as vertices.
vtkReebGraph::ERR_NOT_A_SIMPLICIAL_MESH: the input mesh 'mesh' is not a simplicial mesh.
vtkReebGraph::ERR_NO_SUCH_FIELD: the scalar field given by the name 'scalarFieldName' does not exist.
int vtkReebGraph::StreamTriangle | ( | vtkIdType | vertex0Id, |
double | scalar0, | ||
vtkIdType | vertex1Id, | ||
double | scalar1, | ||
vtkIdType | vertex2Id, | ||
double | scalar2 | ||
) |
Streaming Reeb graph computation.
Add to the streaming computation the triangle of the vtkPolyData surface mesh described by vertex0Id, scalar0 vertex1Id, scalar1 vertex2Id, scalar2
where vertexNId is the Id of the vertex in the vtkPolyData structure and scalarN is the corresponding scalar field value.
IMPORTANT: The stream must be finalized with the "CloseStream" call.
int vtkReebGraph::StreamTetrahedron | ( | vtkIdType | vertex0Id, |
double | scalar0, | ||
vtkIdType | vertex1Id, | ||
double | scalar1, | ||
vtkIdType | vertex2Id, | ||
double | scalar2, | ||
vtkIdType | vertex3Id, | ||
double | scalar3 | ||
) |
Streaming Reeb graph computation.
Add to the streaming computation the tetrahedra of the vtkUnstructuredGrid volume mesh described by vertex0Id, scalar0 vertex1Id, scalar1 vertex2Id, scalar2 vertex3Id, scalar3
where vertexNId is the Id of the vertex in the vtkUnstructuredGrid structure and scalarN is the corresponding scalar field value.
IMPORTANT: The stream must be finalized with the "CloseStream" call.
void vtkReebGraph::CloseStream | ( | ) |
Finalize internal data structures, in the case of streaming computations (with StreamTriangle or StreamTetrahedron).
After this call, no more triangle or tetrahedron can be inserted via StreamTriangle or StreamTetrahedron. IMPORTANT: This method must be called when the input stream is finished. If you need to get a snapshot of the Reeb graph during the streaming process (to parse or simplify it), do a DeepCopy followed by a CloseStream on the copy.
|
overridevirtual |
Deep copies the data object into this graph.
If it is an incompatible graph, reports an error.
Reimplemented from vtkGraph.
int vtkReebGraph::Simplify | ( | double | simplificationThreshold, |
vtkReebGraphSimplificationMetric * | simplificationMetric | ||
) |
Simplify the Reeb graph given a threshold 'simplificationThreshold' (between 0 and 1).
This method is the core feature for Reeb graph multi-resolution hierarchy construction.
Return the number of arcs that have been removed through the simplification process.
'simplificationThreshold' represents a "scale", under which each Reeb graph feature is considered as noise. 'simplificationThreshold' is expressed as a fraction of the scalar field overall span. It can vary from 0 (no simplification) to 1 (maximal simplification).
'simplificationMetric' is an object in charge of evaluating the importance of a Reeb graph arc at each step of the simplification process. if 'simplificationMetric' is nullptr, the default strategy (persitence of the scalar field) is used. Customized simplification metric evaluation algorithm can be designed (see vtkReebGraphSimplificationMetric), enabling the user to control the definition of what should be considered as noise or signal.
References:
"Topological persistence and simplification", H. Edelsbrunner, D. Letscher, and A. Zomorodian, Discrete Computational Geometry, 28:511-533, 2002.
"Extreme elevation on a 2-manifold", P.K. Agarwal, H. Edelsbrunner, J. Harer, and Y. Wang, ACM Symposium on Computational Geometry, pp. 357-365, 2004.
"Simplifying flexible isosurfaces using local geometric measures", H. Carr, J. Snoeyink, M van de Panne, IEEE Visualization, 497-504, 2004
"Loop surgery for volumetric meshes: Reeb graphs reduced to contour trees", J. Tierny, A. Gyulassy, E. Simon, V. Pascucci, IEEE Trans. on Vis. and Comp. Graph. (Proc of IEEE VIS), 15:1177-1184,2009.
void vtkReebGraph::Set | ( | vtkMutableDirectedGraph * | g | ) |
Use a pre-defined Reeb graph (post-processing).
Use with caution!
|
protected |
Definition at line 359 of file vtkReebGraph.h.