|
Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
Base Class for Tube Graphs. More...
#include <mitkTubeGraph.h>


Public Types | |
| typedef std::pair< VertexDescriptorType, VertexDescriptorType > | TubeDescriptorType |
| typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS > | DirectedGraphType |
Public Types inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
| typedef TubeGraphVertex | VertexType |
| typedef TubeGraphEdge | EdgeType |
| typedef boost::adjacency_list< boost::listS, boost::vecS, boost::undirectedS, boost::property< vertex_properties_t, VertexType >, boost::property< edge_properties_t, EdgeType > > | GraphType |
| typedef boost::graph_traits< GraphType >::vertex_descriptor | VertexDescriptorType |
| typedef boost::graph_traits< GraphType >::edge_descriptor | EdgeDescriptorType |
| typedef boost::graph_traits< GraphType >::vertex_iterator | VertexIteratorType |
| typedef boost::graph_traits< GraphType >::edge_iterator | EdgeIteratorType |
| typedef boost::graph_traits< GraphType >::adjacency_iterator | AdjacenyIteratorType |
| typedef boost::graph_traits< GraphType >::out_edge_iterator | OutEdgeIteratorType |
| typedef boost::graph_traits< GraphType >::in_edge_iterator | InEdgeIteratorType |
Public Types inherited from mitk::BaseData | |
| typedef BaseData | Self |
| typedef itk::DataObject | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::SmartPointer< const Self > | ConstPointer |
Public Types inherited from mitk::Identifiable | |
| using | UIDType = std::string |
Public Member Functions | |
| mitkClassMacro (TubeGraph, Superclass) | |
| std::vector< TubeDescriptorType > | SearchShortestPath (const TubeDescriptorType &startTube, const TubeDescriptorType &endTube) |
| std::vector< TubeDescriptorType > | SearchAllPathBetweenVertices (const TubeDescriptorType &startTube, const TubeDescriptorType &endTube) |
| std::vector< TubeDescriptorType > | SearchPathToPeriphery (const TubeDescriptorType &startTube) |
| TubeDescriptorType | GetThickestTube () |
| DirectedGraphType | GetDirectedGraph (VertexDescriptorType startVertex) |
| TubeGraph::Pointer | CreateSubGraph (std::vector< TubeDescriptorType > subGraphTubes) |
| void | RemoveSubGraph (std::vector< TubeDescriptorType > deletedTubes) |
| void | SetRootTube (const TubeDescriptorType &root) |
| void | SetRoot (const VertexDescriptorType &root) |
| TubeDescriptorType | GetRootTube () |
| VertexDescriptorType | GetRootVertex () |
Public Member Functions inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
| mitkClassMacro (UndirectedGraph, BaseData) | |
| void | UpdateOutputInformation () override |
| void | SetRequestedRegionToLargestPossibleRegion () override |
| Set the RequestedRegion to the LargestPossibleRegion. More... | |
| bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
| Determine whether the RequestedRegion is outside of the BufferedRegion. More... | |
| bool | VerifyRequestedRegion () override |
| Verify that the RequestedRegion is within the LargestPossibleRegion. More... | |
| void | SetRequestedRegion (const itk::DataObject *) override |
| Set the requested region from this data object to match the requested region of the data object passed in as a parameter. More... | |
| VertexDescriptorType | AddVertex (const VertexType &vertexData) |
| void | RemoveVertex (const VertexDescriptorType &vertex) |
| VertexType | GetVertex (const VertexDescriptorType &vertex) |
| void | SetVertex (const VertexDescriptorType &vertex, const VertexType &vertexData) |
| VertexDescriptorType | GetVertexDescriptor (const VertexType &vertexData) const |
| EdgeDescriptorType | AddEdge (const VertexDescriptorType &vertexA, const VertexDescriptorType &vertexB, const EdgeType &edgeData) |
| void | RemoveEdge (const EdgeDescriptorType &edge) |
| EdgeType | GetEdge (const EdgeDescriptorType &edge) |
| void | SetEdge (const EdgeDescriptorType &edge, const EdgeType &edgeData) |
| EdgeDescriptorType | GetEdgeDescriptor (const EdgeType &edgeData) const |
| std::pair< VertexType, VertexType > | GetVerticesOfAnEdge (const EdgeDescriptorType &edge) const |
| EdgeDescriptorType | GetEdgeDescriptorByVerices (const VertexDescriptorType &vertexA, const VertexDescriptorType &vertexB) const |
| std::vector< EdgeType > | GetAllEdgesOfAVertex (const VertexDescriptorType &vertex) const |
| int | GetNumberOfVertices () const |
| int | GetNumberOfEdges () const |
| std::vector< VertexType > | GetVectorOfAllVertices () const |
| std::vector< EdgeType > | GetVectorOfAllEdges () const |
| void | Clear () override |
| const GraphType & | GetGraph () const |
| UndirectedGraph< VertexType, EdgeType > & | operator= (const UndirectedGraph< VertexType, EdgeType > &rhs) |
Public Member Functions inherited from mitk::BaseData | |
| virtual std::vector< std::string > | GetClassHierarchy () const |
| virtual const char * | GetClassName () const |
| BaseProperty::ConstPointer | GetConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) const override |
| Get property by its key. More... | |
| std::vector< std::string > | GetPropertyKeys (const std::string &contextName="", bool includeDefaultContext=false) const override |
| Query keys of existing properties. More... | |
| std::vector< std::string > | GetPropertyContextNames () const override |
| Query names of existing contexts. More... | |
| BaseProperty * | GetNonConstProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=true) override |
| Get property by its key. More... | |
| void | SetProperty (const std::string &propertyKey, BaseProperty *property, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
| Add new or change existent property. More... | |
| void | RemoveProperty (const std::string &propertyKey, const std::string &contextName="", bool fallBackOnDefaultContext=false) override |
| Removes a property. If the property does not exist, nothing will be done. More... | |
| const mitk::TimeGeometry * | GetTimeGeometry () const |
| Return the TimeGeometry of the data as const pointer. More... | |
| const mitk::TimeGeometry * | GetTimeSlicedGeometry () const |
| Return the TimeGeometry of the data as const pointer. More... | |
| mitk::TimeGeometry * | GetTimeGeometry () |
| Return the TimeGeometry of the data as pointer. More... | |
| const mitk::TimeGeometry * | GetUpdatedTimeGeometry () |
| Return the TimeGeometry of the data. More... | |
| const mitk::TimeGeometry * | GetUpdatedTimeSliceGeometry () |
| Return the TimeGeometry of the data. More... | |
| virtual void | Expand (unsigned int timeSteps) |
| Expands the TimeGeometry to a number of TimeSteps. More... | |
| const mitk::BaseGeometry * | GetUpdatedGeometry (int t=0) |
| Return the BaseGeometry of the data at time t. More... | |
| mitk::BaseGeometry * | GetGeometry (int t=0) const |
| Return the geometry, which is a TimeGeometry, of the data as non-const pointer. More... | |
| void | UpdateOutputInformation () override |
| Update the information for this BaseData (the geometry in particular) so that it can be used as an output of a BaseProcess. More... | |
| void | CopyInformation (const itk::DataObject *data) override |
| Copy information from the specified data set. More... | |
| virtual bool | IsInitialized () const |
| Check whether the data has been initialized, i.e., at least the Geometry and other header data has been set. More... | |
| virtual bool | IsEmptyTimeStep (unsigned int t) const |
| Check whether object contains data (at a specified time), e.g., a set of points may be empty. More... | |
| virtual bool | IsEmpty () const |
| Check whether object contains data (at least at one point in time), e.g., a set of points may be empty. More... | |
| void | ExecuteOperation (Operation *operation) override |
| overwrite if the Data can be called by an Interactor (StateMachine). More... | |
| virtual void | SetGeometry (BaseGeometry *aGeometry3D) |
| Set the BaseGeometry of the data, which will be referenced (not copied!). Assumes the data object has only 1 time step ( is a 3D object ) and creates a new TimeGeometry which saves the given BaseGeometry. If an TimeGeometry has already been set for the object, it will be replaced after calling this function. More... | |
| virtual void | SetTimeGeometry (TimeGeometry *geometry) |
| Set the TimeGeometry of the data, which will be referenced (not copied!). More... | |
| virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D) |
| Set a clone of the provided Geometry as Geometry of the data. Assumes the data object has only 1 time step ( is a 3D object ) and creates a new TimeGeometry. If an TimeGeometry has already been set for the object, it will be replaced after calling this function. More... | |
| virtual void | SetClonedTimeGeometry (const TimeGeometry *geometry) |
| Set a clone of the provided TimeGeometry as TimeGeometry of the data. More... | |
| virtual void | SetClonedGeometry (const BaseGeometry *aGeometry3D, unsigned int time) |
| Set a clone of the provided geometry as BaseGeometry of a given time step. More... | |
| mitk::PropertyList::Pointer | GetPropertyList () const |
| Get the data's property list. More... | |
| void | SetPropertyList (PropertyList *propertyList) |
| Set the data's property list. More... | |
| mitk::BaseProperty::Pointer | GetProperty (const char *propertyKey) const |
| Get the property (instance of BaseProperty) with key propertyKey from the PropertyList, and set it to this, respectively;. More... | |
| void | SetProperty (const char *propertyKey, BaseProperty *property) |
| virtual void | SetOrigin (const Point3D &origin) |
| Convenience method for setting the origin of the BaseGeometry instances of all time steps. More... | |
| itk::SmartPointer< mitk::BaseDataSource > | GetSource () const |
| Get the process object that generated this data object. More... | |
| unsigned int | GetTimeSteps () const |
| Get the number of time steps from the TimeGeometry As the base data has not a data vector given by itself, the number of time steps is defined over the time sliced geometry. In sub classes, a better implementation could be over the length of the data vector. More... | |
| unsigned long | GetMTime () const override |
| Get the modified time of the last change of the contents this data object or its geometry. More... | |
| void | Graft (const DataObject *) override |
Public Member Functions inherited from mitk::OperationActor | |
| itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
Public Member Functions inherited from mitk::Identifiable | |
| Identifiable () | |
| Identifiable (const UIDType &uid) | |
| Identifiable (const Identifiable &)=delete | |
| Identifiable (Identifiable &&) noexcept | |
| virtual | ~Identifiable () |
| Identifiable & | operator= (const Identifiable &)=delete |
| Identifiable & | operator= (Identifiable &&other) noexcept |
| UIDType | GetUID () const |
| Get unique ID of an object. More... | |
Public Member Functions inherited from mitk::IPropertyOwner | |
| ~IPropertyOwner () override | |
Public Member Functions inherited from mitk::IPropertyProvider | |
| virtual | ~IPropertyProvider () |
Static Public Member Functions | |
| static Pointer | New () |
Static Public Member Functions inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
| static Pointer | New () |
Static Public Member Functions inherited from mitk::BaseData | |
| static const char * | GetStaticNameOfClass () |
Static Public Attributes | |
| static const TubeDescriptorType | ErrorId |
Protected Member Functions | |
| TubeGraph () | |
| TubeGraph (const TubeGraph &graph) | |
| ~TubeGraph () override | |
| TubeGraph & | operator= (const TubeGraph &rhs) |
Protected Member Functions inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
| UndirectedGraph () | |
| ~UndirectedGraph () override | |
Protected Member Functions inherited from mitk::BaseData | |
| BaseData () | |
| BaseData (const BaseData &other) | |
| ~BaseData () override | |
| virtual void | InitializeTimeGeometry (unsigned int timeSteps=1) |
| Initialize the TimeGeometry for a number of time steps. The TimeGeometry is initialized empty and evenly timed. In many cases it will be necessary to overwrite this in sub-classes. More... | |
| virtual void | InitializeTimeSlicedGeometry (unsigned int timeSteps=1) |
| Initialize the TimeGeometry for a number of time steps. The TimeGeometry is initialized empty and evenly timed. In many cases it will be necessary to overwrite this in sub-classes. More... | |
| virtual void | ClearData () |
| reset to non-initialized state, release memory More... | |
| virtual void | InitializeEmpty () |
| Pure virtual; Must be used in subclasses to get a data object to a valid state. Should at least create one empty object and call Superclass::InitializeTimeGeometry() to ensure an existing valid geometry. More... | |
| void | PrintSelf (std::ostream &os, itk::Indent indent) const override |
Additional Inherited Members | |
Protected Attributes inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
| GraphType | m_Graph |
Protected Attributes inherited from mitk::BaseData | |
| bool | m_LastRequestedRegionWasOutsideOfTheBufferedRegion |
| unsigned int | m_SourceOutputIndexDuplicate |
| bool | m_Initialized |
Base Class for Tube Graphs.
Definition at line 43 of file mitkTubeGraph.h.
| typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS > mitk::TubeGraph::DirectedGraphType |
Definition at line 55 of file mitkTubeGraph.h.
| typedef std::pair<VertexDescriptorType, VertexDescriptorType> mitk::TubeGraph::TubeDescriptorType |
Defines the type of the id of a single tube. It is allways the source and target descriptor: [uint, uint]
Definition at line 49 of file mitkTubeGraph.h.
|
protected |
Definition at line 20 of file mitkTubeGraph.cpp.
Referenced by CreateSubGraph().
|
protected |
Definition at line 24 of file mitkTubeGraph.cpp.
|
overrideprotected |
Definition at line 28 of file mitkTubeGraph.cpp.
| mitk::TubeGraph::Pointer mitk::TubeGraph::CreateSubGraph | ( | std::vector< TubeDescriptorType > | subGraphTubes | ) |
Create a subgraph with all given tubes. The origin graph would not be changed.
Definition at line 165 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetEdge(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetEdgeDescriptorByVerices(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetVertex(), mitk::Geometry3D::New(), and TubeGraph().
| mitk::TubeGraph::DirectedGraphType mitk::TubeGraph::GetDirectedGraph | ( | VertexDescriptorType | startVertex | ) |
Get this undirected graph as a directed graph. For this convertation you need a start point.
Definition at line 157 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::m_Graph.
Referenced by SearchPathToPeriphery().
| mitk::TubeGraph::TubeDescriptorType mitk::TubeGraph::GetRootTube | ( | ) |
Definition at line 259 of file mitkTubeGraph.cpp.
| mitk::TubeGraph::VertexDescriptorType mitk::TubeGraph::GetRootVertex | ( | ) |
Definition at line 264 of file mitkTubeGraph.cpp.
| mitk::TubeGraph::TubeDescriptorType mitk::TubeGraph::GetThickestTube | ( | ) |
Find thickest tube in the graph. This means the tube which has the element with the largest diameter.
Definition at line 131 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetEdge(), mitk::TubeGraphEdge::GetEdgeAverageDiameter(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetVertexDescriptor(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetVerticesOfAnEdge(), and mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::m_Graph.
Referenced by SearchPathToPeriphery().
| mitk::TubeGraph::mitkClassMacro | ( | TubeGraph | , |
| Superclass | |||
| ) |
|
static |
Referenced by mitk::TubeGraphIO::Read().
|
protected |
Definition at line 269 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TVertex, TEdge >::operator=().
| void mitk::TubeGraph::RemoveSubGraph | ( | std::vector< TubeDescriptorType > | deletedTubes | ) |
Remove a part of the graph. All tubes, that means all edges and if necessary also the vertex (no other out-edge) of the tube will be deleted.
Definition at line 216 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetAllEdgesOfAVertex(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::GetEdgeDescriptorByVerices(), mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::RemoveEdge(), and mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::RemoveVertex().
| std::vector< mitk::TubeGraph::TubeDescriptorType > mitk::TubeGraph::SearchAllPathBetweenVertices | ( | const TubeDescriptorType & | startTube, |
| const TubeDescriptorType & | endTube | ||
| ) |
Search every path between two tubes.
Definition at line 39 of file mitkTubeGraph.cpp.
References mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge >::m_Graph, and MITK_INFO.
| std::vector< mitk::TubeGraph::TubeDescriptorType > mitk::TubeGraph::SearchPathToPeriphery | ( | const TubeDescriptorType & | startTube | ) |
Definition at line 86 of file mitkTubeGraph.cpp.
References ErrorId, GetDirectedGraph(), and GetThickestTube().
| std::vector< mitk::TubeGraph::TubeDescriptorType > mitk::TubeGraph::SearchShortestPath | ( | const TubeDescriptorType & | startTube, |
| const TubeDescriptorType & | endTube | ||
| ) |
Search only the shortest path between two tubes.
Definition at line 32 of file mitkTubeGraph.cpp.
| void mitk::TubeGraph::SetRoot | ( | const VertexDescriptorType & | root | ) |
Definition at line 251 of file mitkTubeGraph.cpp.
References ErrorId.
| void mitk::TubeGraph::SetRootTube | ( | const TubeDescriptorType & | root | ) |
Definition at line 238 of file mitkTubeGraph.cpp.
References ErrorId.
|
static |
Represents a tube id which may not occur. This may be used for error states or for indicating that something went wrong.
Definition at line 61 of file mitkTubeGraph.h.
Referenced by mitk::TubeGraphDataInteractor::CheckOverTube(), mitk::TubeGraphPicker::GetPickedTube(), mitk::TubeGraphIO::Read(), mitk::TubeGraphDataInteractor::ResetPickedTubes(), SearchPathToPeriphery(), mitk::TubeGraphDataInteractor::SelectTubesByActivationModus(), mitk::TubeGraphDataInteractor::SetActivationMode(), SetRoot(), SetRootTube(), and mitk::TubeGraphDataInteractor::UpdateActivation().