#include <itkMeshSource.h>
Inheritance diagram for itk::MeshSource< TOutputMesh >:
Public Types | |
typedef MeshSource | Self |
typedef ProcessObject | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef DataObject::Pointer | DataObjectPointer |
typedef TOutputMesh | OutputMeshType |
typedef OutputMeshType::Pointer | OutputMeshPointer |
Public Member Functions | |
virtual const char * | GetNameOfClass () const |
void | SetOutput (TOutputMesh *output) |
virtual DataObjectPointer | MakeOutput (unsigned int idx) |
OutputMeshType * | GetOutput (void) |
OutputMeshType * | GetOutput (unsigned int idx) |
virtual void | GraftOutput (DataObject *output) |
virtual void | GraftNthOutput (unsigned int idx, DataObject *output) |
Static Public Member Functions | |
Pointer | New () |
Protected Member Functions | |
MeshSource () | |
virtual | ~MeshSource () |
void | PrintSelf (std::ostream &os, Indent indent) const |
void | GenerateInputRequestedRegion () |
MeshSource is the base class for all process objects that output mesh data. Specifically, this class defines the GetOutput() method that returns a pointer to the output mesh. The class also defines some internal private data members that are used to manage streaming of data.
Definition at line 43 of file itkMeshSource.h.
|
|
Some convenient typedefs. Reimplemented from itk::ProcessObject. Reimplemented in itk::SpatialObjectToPointSetFilter< TInputSpatialObject, TOutputPointSet >. Definition at line 59 of file itkMeshSource.h. |
|
|
|
|
|
|
|
|
Definition at line 128 of file itkMeshSource.h. |
|
Requested region of Mesh is specified as i of N unstructured regions. Since all DataObjects should be able to set the requested region in unstructured form, just copy output->RequestedRegion all inputs. Reimplemented from itk::ProcessObject. |
|
|
Get the mesh output of this process object. Reimplemented from itk::ProcessObject. |
|
Get the mesh output of this process object. Reimplemented in itk::ImageToMeshFilter< TInputImage, TOutputMesh >. |
|
Graft the specified DataObject onto this ProcessObject's output. This method grabs a handle to the specified DataObject's bulk data to used as its output's own bulk data. It also copies the region ivars (RequestedRegion, BufferedRegion, LargestPossibleRegion) and meta-data (Spacing, Origin) from the specified data object into this filter's output data object. Most importantly, however, it leaves the Source ivar untouched so the original pipeline routing is intact. This method is used when a process object is implemented using a mini-pipeline which is defined in its GenerateData() method. The usage is:
// setup the mini-pipeline to process the input to this filter firstFilterInMiniPipeline->SetInput( this->GetInput() ); // setup the mini-pipeline to calculate the correct regions // and write to the appropriate bulk data block lastFilterInMiniPipeline->GraftOutput( this->GetOutput() ); // execute the mini-pipeline lastFilterInMiniPipeline->Update(); // graft the mini-pipeline output back onto this filter's output. // this is needed to get the appropriate regions passed back. this->GraftOutput( lastFilterInMiniPipeline->GetOutput() ); For proper pipeline execution, a filter using a mini-pipeline must implement the GenerateInputRequestedRegion(), GenerateOutputRequestedRegion(), GenerateOutputInformation() and EnlargeOutputRequestedRegion() methods as necessary to reflect how the mini-pipeline will execute (in other words, the outer filter's pipeline mechanism must be consistent with what the mini-pipeline will do). |
|
Graft the specified DataObject onto this ProcessObject's output. This method grabs a handle to the specified DataObject's bulk data to used as its output's own bulk data. It also copies the region ivars (RequestedRegion, BufferedRegion, LargestPossibleRegion) and meta-data (Spacing, Origin) from the specified data object into this filter's output data object. Most importantly, however, it leaves the Source ivar untouched so the original pipeline routing is intact. This method is used when a process object is implemented using a mini-pipeline which is defined in its GenerateData() method. The usage is:
// setup the mini-pipeline to process the input to this filter firstFilterInMiniPipeline->SetInput( this->GetInput() ); // setup the mini-pipeline to calculate the correct regions // and write to the appropriate bulk data block lastFilterInMiniPipeline->GraftOutput( this->GetOutput() ); // execute the mini-pipeline lastFilterInMiniPipeline->Update(); // graft the mini-pipeline output back onto this filter's output. // this is needed to get the appropriate regions passed back. this->GraftOutput( lastFilterInMiniPipeline->GetOutput() ); For proper pipeline execution, a filter using a mini-pipeline must implement the GenerateInputRequestedRegion(), GenerateOutputRequestedRegion(), GenerateOutputInformation() and EnlargeOutputRequestedRegion() methods as necessary to reflect how the mini-pipeline will execute (in other words, the outer filter's pipeline mechanism must be consistent with what the mini-pipeline will do). |
|
Make a DataObject of the correct type to used as the specified output. Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a SmartPointer to a DataObject. If a subclass of MeshSource has multiple outputs of different types, then that class must provide an implementation of MakeOutput(). Reimplemented from itk::ProcessObject. Reimplemented in itk::ImageToMeshFilter< TInputImage, TOutputMesh >. |
|
|
|
Set the mesh output of this process object. This call is slated to be removed from ITK. You should GraftOutput() and possible DataObject::DisconnectPipeline() to properly change the output. |