<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px;">
<div style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0);">I can’t find his reply in my ITK developer list folder — likely because Outlook for OS X is a total piece of crap — but here is what Jim Miller said:</div>
<div style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0);"><br>
</div>
<div>
<blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px;">
<div><font color="#00007f" face="Courier">Background.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">In STL, one requests an iterator from a container using the begin()/end() methods.  In ITK, we have many potential iterator types to run across an image, so we removed the iterators from the containers (image). There
 is a fair amount of work to initialize an image iterator, so rather than constructing new iterators (in loops) using methods like begin()/end(), we created the GoToBegin()/IsAtEnd() methods.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">Current issue.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">If Begin() on an iterator returns an iterator, then it should be deprecated. We’d rather people use use GoToBegin()/IsAtEnd() to be efficient.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">Begin()/End() should have been removed from all Image iterators long ago.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">But many of the other types listed (MapContainer, FixedArray, Neighborhood, …) follow the STL paradigm more closely (where you ask a container for an iterator) and these should have Begin()/End() methods and probably
 should not have GoToBegin()/GoToEnd().</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">So in summary, Begin()/End() should be called on a container to return an iterator while GoToBegin()/IsAtEnd() should be called on an iterator to reset or test the end condition.</font></div>
<div><font color="#00007f" face="Courier"> </font></div>
<div><font color="#00007f" face="Courier">Jim</font></div>
</blockquote>
</div>
<div style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0);"><br>
</div>
<div style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0);">On 7/11/14, 9:53 AM, "Matt McCormick" <<a href="mailto:matt.mccormick@kitware.com">matt.mccormick@kitware.com</a>> wrote:</div>
<div style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0);"><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="font-family: Calibri, sans-serif; color: rgb(0, 0, 0); border-left-color: rgb(181, 196, 223); border-left-width: 5px; border-left-style: solid; padding: 0px 0px 0px 5px; margin: 0px 0px 0px 5px;">
<div>Hi Kent,</div>
<div><br>
</div>
<div>I think this is a bug -- they should all be deprecated -- with ITKv4</div>
<div>we tried to use GoToBegin and GoToEnd consistently.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Matt</div>
<div><br>
</div>
<div>On Fri, Jul 11, 2014 at 10:14 AM, Williams, Norman K</div>
<div><<a href="mailto:norman-k-williams@uiowa.edu">norman-k-williams@uiowa.edu</a>> wrote:</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>I ran into this when doing an explicit instantiation of ImageRegionIterator.</div>
<div><br>
</div>
<div>Explicit instantiation will elaborate every method in a class, not just the</div>
<div>ones that are called, so ImageRegionIterator::Begin (which is deprecated) is</div>
<div>implemented by calling Superclass::Begin (which is also deprecated) which</div>
<div>throws a compiler warning about the method being deprecated.</div>
<div><br>
</div>
<div>My first impulse was to change the implementation to call the non-deprecated</div>
<div>Superclass::GoToBegin,  but that’s kind of silly — it’s probably not worth</div>
<div>the effort to push through Gerrit.</div>
<div><br>
</div>
<div>The real question is this: Why are Begin and End deprecated in the Image</div>
<div>Region iterators, and not in all the other classes?  There are a lot of</div>
<div>classes that have Begin/End and not GoToBegin and GoToEnd:</div>
<div><br>
</div>
<div>ConstShapedNeighborhoodIterator</div>
<div>ConstSliceIterator</div>
<div>EquivalencyTable</div>
<div>FixedArray</div>
<div>FixedArray</div>
<div>ImageConstIterator</div>
<div>ImageConstIteratorWithIndex</div>
<div>ImageConstIteratorWithOnlyIndex</div>
<div>ImageIterator</div>
<div>ImageRegionConstIterator</div>
<div>ImageRegionIterator</div>
<div>ImageRegionReverseConstIterator</div>
<div>ImageRegionReverseIterator</div>
<div>ImageReverseConstIterator</div>
<div>IndexedContainerInterface</div>
<div>IndexedContainerInterface</div>
<div>MapContainer</div>
<div>MapContainer</div>
<div>MetaDataDictionary</div>
<div>MetaDataDictionary</div>
<div>Neighborhood</div>
<div>Neighborhood</div>
<div>NeighborhoodIterator</div>
<div>ObjectStore</div>
<div>Point</div>
<div>ShapedNeighborhoodIterator</div>
<div>SliceIterator</div>
<div>SparseFieldLayer</div>
<div>SparseFieldLayer</div>
<div>SpecialCoordinatesImage</div>
<div>ThreadedIteratorRangePartitioner</div>
<div>VectorContainer</div>
<div>VectorContainer</div>
<div>NarrowBand</div>
<div>NarrowBand</div>
<div>MultivariateLegendrePolynomial</div>
<div>MultivariateLegendrePolynomial</div>
<div>Histogram</div>
<div>Histogram</div>
<div>ImageToListSampleAdaptor</div>
<div>ImageToListSampleAdaptor</div>
<div>ImageToNeighborhoodSampleAdaptor</div>
<div>ImageToNeighborhoodSampleAdaptor</div>
<div>JointDomainImageToListSampleAdaptor</div>
<div>JointDomainImageToListSampleAdaptor</div>
<div>ListSample</div>
<div>ListSample</div>
<div>MembershipSample</div>
<div>MembershipSample</div>
<div>PointSetToListSampleAdaptor</div>
<div>PointSetToListSampleAdaptor</div>
<div>Subsample</div>
<div>Subsample</div>
<div>VectorContainerToListSampleAdaptor</div>
<div>VectorContainerToListSampleAdaptor</div>
<div>LevelSetContainerBase</div>
<div>LevelSetContainerBase</div>
<div>LevelSetEquationContainer</div>
<div>LevelSetEquationContainer</div>
<div>LevelSetEquationTermContainer</div>
<div>LevelSetEquationTermContainer</div>
<div>OneWayEquivalencyTable</div>
<div>WatershedSegmentTable</div>
<div>WatershedSegmentTable</div>
<div>WatershedSegmentTree</div>
<div>WatershedSegmentTree</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>________________________________</div>
<div>Notice: This UI Health Care e-mail (including attachments) is covered by the</div>
<div>Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential</div>
<div>and may be legally privileged.  If you are not the intended recipient, you</div>
<div>are hereby notified that any retention, dissemination, distribution, or</div>
<div>copying of this communication is strictly prohibited.  Please reply to the</div>
<div>sender that you have received the message in error, then delete it.  Thank</div>
<div>you.</div>
<div>________________________________</div>
<div><br>
</div>
<div>_______________________________________________</div>
<div>Powered by www.kitware.com</div>
<div><br>
</div>
<div>Visit other Kitware open-source projects at</div>
<div><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a></div>
<div><br>
</div>
<div>Kitware offers ITK Training Courses, for more information visit:</div>
<div><a href="http://kitware.com/products/protraining.php">http://kitware.com/products/protraining.php</a></div>
<div><br>
</div>
<div>Please keep messages on-topic and check the ITK FAQ at:</div>
<div><a href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a></div>
<div><br>
</div>
<div>Follow this link to subscribe/unsubscribe:</div>
<div><a href="http://public.kitware.com/mailman/listinfo/insight-developers">http://public.kitware.com/mailman/listinfo/insight-developers</a></div>
<div><br>
</div>
<div>_______________________________________________</div>
<div>Community mailing list</div>
<div><a href="mailto:Community@itk.org">Community@itk.org</a></div>
<div><a href="http://public.kitware.com/mailman/listinfo/community">http://public.kitware.com/mailman/listinfo/community</a></div>
<div><br>
</div>
</blockquote>
<div>_______________________________________________</div>
<div>Powered by www.kitware.com</div>
<div><br>
</div>
<div>Visit other Kitware open-source projects at</div>
<div><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a></div>
<div><br>
</div>
<div>Kitware offers ITK Training Courses, for more information visit:</div>
<div><a href="http://kitware.com/products/protraining.php">http://kitware.com/products/protraining.php</a></div>
<div><br>
</div>
<div>Please keep messages on-topic and check the ITK FAQ at:</div>
<div><a href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a></div>
<div><br>
</div>
<div>Follow this link to subscribe/unsubscribe:</div>
<div><a href="http://public.kitware.com/mailman/listinfo/insight-developers">http://public.kitware.com/mailman/listinfo/insight-developers</a></div>
<div><br>
</div>
</blockquote>
<br>
<br>
<hr>
Notice: This UI Health Care e-mail (including attachments) is covered by the Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and may be legally privileged.  If you are not the intended recipient, you are hereby notified that any
 retention, dissemination, distribution, or copying of this communication is strictly prohibited.  Please reply to the sender that you have received the message in error, then delete it.  Thank you.
<hr>
</body>
</html>