/*============================================================================= NOTE: THIS FILE IS A HANDMADE WRAPPER FOR THE ManagedITK PROJECT. Project: ManagedITK Program: Insight Segmentation & Registration Toolkit Module: itkManagedImageConstIteratorWithIndex.cxx Language: C++/CLI Author: Dan Mueller $Date: 2007-04-11 16:26:16 +1000 (Wed, 11 Apr 2007) $ $Revision: 128 $ Copyright (c) Queensland University of Technology (QUT) 2007. All rights reserved. Portions of this code are covered under the ITK and VTK copyright. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =============================================================================*/ #pragma once #pragma warning( disable : 4635 ) // Disable warnings about XML doc comments #ifndef __itkManagedImageConstIteratorWithIndex_cxx #define __itkManagedImageConstIteratorWithIndex_cxx // Include some useful ManagedITK files #include "itkManagedPixelType.cxx" #include "itkManagedPixel.cxx" #include "itkManagedIndex.cxx" #include "itkManagedImageRegion.cxx" #include "itkManagedImageBase.cxx" // Use some managed namespaces #using #using using namespace System; using namespace System::IO; using namespace System::Reflection; using namespace System::Diagnostics; namespace itk { /// ///This class is a managed wrapper for itk::ImageIterator. /// public ref class itkImageConstIteratorWithIndex abstract : System::Collections::IEnumerable, INativePointer { protected: bool m_IsDisposed; String^ m_MangledTypeString; ///Default constructor. itkImageConstIteratorWithIndex(){} public: /// ///Get/set the pointer to the native ITK object associated with ///this wrapper instance. /// ///The pointer to the native ITK object. property void* NativePointer{ virtual void* get()=0; virtual void set ( void* value )=0; } ///Get a string representing the type instance of this INativePointer. ///"IUC2", "IF3", "IUC2IUC2". property String^ MangledTypeString { virtual String^ get() { return this->m_MangledTypeString; } } /// ///Get/set the index at the current iterator location. ///Iterators NOT in the "WithIndex" family calculate the index on demand (expensive call). ///Iterators in the "WithIndex" family maintain the index during operation (inexpensive call). /// property itkIndex^ Index { virtual itkIndex^ get()=0; virtual void set(itkIndex^ value)=0; } ///Get the image region this iterator walks. property itkImageRegion^ Region { virtual itkImageRegion^ get()=0; } ///Get the image this iterator walks. property itkImageBase^ Image { virtual itkImageBase^ get()=0; } ///Get the pixel value at the current iterator location. virtual itkPixel^ Get() = 0; ///Move the iterator to the beginning location. virtual void GoToBegin() = 0; ///Move the iterator to the ending location. virtual void GoToReverseBegin() = 0; ///Returns if the iterator is at the beginning of the region to iterate. virtual bool IsAtReverseEnd() = 0; ///Returns if the iterator is at the end of the region to iterate. virtual bool IsAtEnd() = 0; ///Increment the iterator. virtual itkImageConstIteratorWithIndex^ operator++() = 0; ///Decrement the iterator. virtual itkImageConstIteratorWithIndex^ operator--() = 0; ///Implement the IEnumerable interface. virtual System::Collections::IEnumerator^ GetEnumerator() = 0; }; // end ref class } // end namespace itk #endif