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);
00067
00071 void SetOutput(TOutputMesh *output);
00072
00107 virtual void GraftOutput(DataObject *output);
00108 virtual void GraftNthOutput(unsigned int idx, DataObject *output);
00110
00124 virtual DataObjectPointer MakeOutput(unsigned int idx);
00125
00126 protected:
00127 MeshSource();
00128 virtual ~MeshSource() {}
00129 void PrintSelf(std::ostream& os, Indent indent) const;
00130
00134 void GenerateInputRequestedRegion();
00135
00136 private:
00137 MeshSource(const Self&);
00138 void operator=(const Self&);
00139
00142 int m_GenerateDataRegion;
00143 int m_GenerateDataNumberOfRegions;
00144 };
00145
00146 }
00147
00148 #ifndef ITK_MANUAL_INSTANTIATION
00149 #include "itkMeshSource.txx"
00150 #endif
00151
00152 #endif
00153
00154