00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __itkMeshSource_h
00021 #define __itkMeshSource_h
00022
00023 #if defined(_MSC_VER)
00024 #pragma warning ( disable : 4786 )
00025 #endif
00026 #include "itkProcessObject.h"
00027
00028 namespace itk
00029 {
00030
00042 template <class TOutputMesh>
00043 class ITK_EXPORT MeshSource : public ProcessObject
00044 {
00045 public:
00047 typedef MeshSource Self;
00048 typedef ProcessObject Superclass;
00049 typedef SmartPointer<Self> Pointer;
00050 typedef SmartPointer<const Self> ConstPointer;
00051
00053 itkNewMacro(Self);
00054
00056 itkTypeMacro(MeshSource,ProcessObject);
00057
00059 typedef DataObject::Pointer DataObjectPointer;
00060 typedef TOutputMesh OutputMeshType;
00061 typedef typename OutputMeshType::Pointer OutputMeshPointer;
00062
00064 OutputMeshType * GetOutput(void);
00065 OutputMeshType * GetOutput(unsigned int idx);
00066
00070 void SetOutput(TOutputMesh *output);
00071
00106 virtual void GraftOutput(OutputMeshType *output);
00107
00121 virtual DataObjectPointer MakeOutput(unsigned int idx);
00122
00123 protected:
00124 MeshSource();
00125 virtual ~MeshSource() {}
00126 void PrintSelf(std::ostream& os, Indent indent) const;
00127
00131 void GenerateInputRequestedRegion();
00132
00133 private:
00134 MeshSource(const Self&);
00135 void operator=(const Self&);
00136
00139 int m_GenerateDataRegion;
00140 int m_GenerateDataNumberOfRegions;
00141 };
00142
00143 }
00144
00145 #ifndef ITK_MANUAL_INSTANTIATION
00146 #include "itkMeshSource.txx"
00147 #endif
00148
00149 #endif
00150