Medical Imaging Interaction Toolkit
2016.11.0
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 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) | |
virtual void | UpdateOutputInformation () override |
virtual void | SetRequestedRegionToLargestPossibleRegion () override |
Set the RequestedRegion to the LargestPossibleRegion. More... | |
virtual bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
Determine whether the RequestedRegion is outside of the BufferedRegion. More... | |
virtual bool | VerifyRequestedRegion () override |
Verify that the RequestedRegion is within the LargestPossibleRegion. More... | |
virtual void | SetRequestedRegion (const itk::DataObject *data) 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 |
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 TimeGeometry as TimeGeometry 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... | |
virtual unsigned long | GetMTime () const override |
Get the modified time of the last change of the contents this data object or its geometry. More... | |
virtual void | Graft (const DataObject *) override |
Public Member Functions inherited from mitk::OperationActor | |
itkTypeMacroNoParent (OperationActor) virtual ~OperationActor() | |
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) | |
virtual | ~TubeGraph () |
TubeGraph & | operator= (const TubeGraph &rhs) |
Protected Member Functions inherited from mitk::UndirectedGraph< TubeGraphVertex, TubeGraphEdge > | |
UndirectedGraph () | |
UndirectedGraph (const UndirectedGraph< VertexType, EdgeType > &graph) | |
virtual | ~UndirectedGraph () |
Protected Member Functions inherited from mitk::BaseData | |
BaseData () | |
BaseData (const BaseData &other) | |
~BaseData () | |
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... | |
virtual 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 37 of file mitkTubeGraph.h.
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS > mitk::TubeGraph::DirectedGraphType |
Definition at line 49 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 43 of file mitkTubeGraph.h.
|
protected |
Definition at line 23 of file mitkTubeGraph.cpp.
|
protected |
Definition at line 27 of file mitkTubeGraph.cpp.
|
protectedvirtual |
Definition at line 31 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 192 of file mitkTubeGraph.cpp.
References mitk::Geometry3D::New().
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 184 of file mitkTubeGraph.cpp.
mitk::TubeGraph::TubeDescriptorType mitk::TubeGraph::GetRootTube | ( | ) |
Definition at line 286 of file mitkTubeGraph.cpp.
mitk::TubeGraph::VertexDescriptorType mitk::TubeGraph::GetRootVertex | ( | ) |
Definition at line 291 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 158 of file mitkTubeGraph.cpp.
References mitk::TubeGraphEdge::GetEdgeAverageDiameter().
mitk::TubeGraph::mitkClassMacro | ( | TubeGraph | , |
Superclass | |||
) |
|
static |
Referenced by mitk::TubeGraphIO::Read().
|
protected |
Definition at line 296 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 243 of file mitkTubeGraph.cpp.
std::vector< mitk::TubeGraph::TubeDescriptorType > mitk::TubeGraph::SearchAllPathBetweenVertices | ( | const TubeDescriptorType & | startTube, |
const TubeDescriptorType & | endTube | ||
) |
Search every path between two tubes.
Definition at line 66 of file mitkTubeGraph.cpp.
References MITK_INFO.
std::vector< mitk::TubeGraph::TubeDescriptorType > mitk::TubeGraph::SearchPathToPeriphery | ( | const TubeDescriptorType & | startTube | ) |
Definition at line 113 of file mitkTubeGraph.cpp.
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 35 of file mitkTubeGraph.cpp.
void mitk::TubeGraph::SetRoot | ( | const VertexDescriptorType & | root | ) |
Definition at line 278 of file mitkTubeGraph.cpp.
References ErrorId.
void mitk::TubeGraph::SetRootTube | ( | const TubeDescriptorType & | root | ) |
Definition at line 265 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 55 of file mitkTubeGraph.h.
Referenced by mitk::TubeGraphDataInteractor::CheckOverTube(), mitk::TubeGraphPicker::GetPickedTube(), mitk::TubeGraphIO::Read(), mitk::TubeGraphDataInteractor::ResetPickedTubes(), mitk::TubeGraphDataInteractor::SelectTubesByActivationModus(), mitk::TubeGraphDataInteractor::SetActivationMode(), SetRoot(), and SetRootTube().