[Insight-developers] CMake Flag to make itk::Image behave like itk::OrientedImage

Stephen Aylward Stephen.Aylward at Kitware.com
Sun Sep 14 16:44:22 EDT 2008


Hi

Ok - let me get a better start :)

I really like this change and welcome it!

However, in your reply you've grouped variables based on knowledge
that you have.   You're an ITK expert.  You can weed thru the 26
variables very quickly.   My concern is the new users.  It requires
significant expertise to know that ITK_USE_DEPRECATED_LEVELSET... is
not important to them or that ITK_USE_REVIEW is important to them.
ITK's newest features are enabled by some vars and disabled by others.

I posted a proposal on standardizing and limiting our cmake vars.   It
is an option but needs input and revision from y'all.

Below you're suggesting that we group them somehow to make it easier
for new users - I like that idea very much as well.   For example, we
can have a high-level ITK_WRAP_FOR_OTHER_LANGUAGES that, if enabled,
would show the fuller set of options in that group.   etc.    Most
importantly, we'd have an ITK_USE_LATEST_AND_GREATEST that would
enable REVIEW, etc etc.

Stephen


On Sun, Sep 14, 2008 at 4:31 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> Stephen,
>
> Many of these are temporary. Several have to do with using system
> libraries. We should certainly review the ones we need to remove
> before the next release. In the spirit of this year's US Presidential
> campaign process, here is a fact check...
>
> 6 options for use/not use of system files...
> ITK_USE_SYSTEM_GDCM:BOOL=OFF
> ITK_USE_SYSTEM_LIBXML2:BOOL=OFF
> ITK_USE_SYSTEM_PNG:BOOL=OFF
> ITK_USE_SYSTEM_TIFF:BOOL=OFF
> ITK_USE_SYSTEM_VXL:BOOL=OFF
> ITK_USE_SYSTEM_ZLIB:BOOL=OFF
>
> 3 options for wrapping ...
> ITK_CSWIG_JAVA:BOOL=OFF
> ITK_CSWIG_PYTHON:BOOL=OFF
> ITK_CSWIG_TCL:BOOL=OFF
>
> 3 options for legacy control...
> ITK_LEGACY_REMOVE:BOOL=ON
> ITK_LEGACY_SILENT:BOOL=OFF
>
> 1 option for backward compatibility
> ITK_USE_DEPRECATED_LEVELSET_INTERPOLATION:BOOL=OFF
>
> 2 options for optional 3rd party libraries
> ITK_USE_LIBXML2:BOOL=OFF
> ITK_USE_MINC2:BOOL=OFF
>
> 5 options that are temporary...
> ITK_USE_TRANSFORM_IO_FACTORIES:BOOL=ON
> ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE:BOOL=ON
> ITK_USE_CONSOLIDATED_MORPHOLOGY:BOOL=ON
> ITK_USE_OPTIMIZED_REGISTRATION_METHODS:BOOL=ON
> ITK_USE_TEMPLATE_META_PROGRAMMING_LOOP_UNROLLING:BOOL=OFF
>
> 2 options for selection of option libraries
> ITK_USE_PATENTED:BOOL=ON
> ITK_USE_REVIEW:BOOL=ON
>
> 5 others...
> ITK_EXPLICIT_INSTANTIATION:BOOL=OFF
> ITK_USE_CONCEPT_CHECKING:BOOL=ON
> ITK_USE_STRICT_CONCEPT_CHECKING:BOOL=OFF
> ITK_COMPUTER_MEMORY_SIZE:STRING=1
> ITK_USE_KWSTYLE:BOOL=OFF
>
> I hope the weather in NC is not making you grumpy. Fall is on the way...
>
> Bill
>
> On Sun, Sep 14, 2008 at 4:13 PM, Stephen Aylward
> <Stephen.Aylward at kitware.com> wrote:
>> Another cmake variable?!?!?
>>
>> We now have 26 boolean cmake variables that begin with ITK_ and turn
>> on/off an option.  That means that there are 2^26 = 67,108,864
>> different possible combinations of ITK configurations that we should
>> be testing and supporting.
>>
>> Even worse, that means that users now have 26 different decisions to
>> make when installing ITK.
>>
>> What a wonderful example of feature creep degrading a package...
>>
>> s
>>
>> On Sun, Sep 14, 2008 at 12:52 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>> Luis,
>>>
>>> They may all boil down to a few issues. For example, the OrientedImage
>>> constructor set two matrices to Identity. This is not done in Image.
>>> I'm fixing that now.
>>>
>>> Bill
>>>
>>> On Sun, Sep 14, 2008 at 12:24 PM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>>
>>>> Hi Hans,
>>>>
>>>> As we agreed during the ITK Tcon 2.0 on Friday:
>>>>
>>>>     http://www.itk.org/Wiki/Minutes_091208
>>>>
>>>> a CMake flag has now been added to the top CMakeLists.txt
>>>> file with the purpose of optionally changing the itk::Image
>>>> to behave like the itk::OrientedImage.
>>>>
>>>> You can now turn this option on by going to the CMake Advanced
>>>> flags and changing:
>>>>
>>>>
>>>>        ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE
>>>>
>>>> The code from
>>>>
>>>>
>>>>   SetSpacing
>>>>   SetDirection
>>>>   TransformPhysicalPointToIndex
>>>>   TransformIndexToPhysicalPoint
>>>>   TransformPhysicalPointToContinuousIndex
>>>>   TransformContinuousIndexToPhysicalPoint
>>>>
>>>>
>>>> was copied from the itk::OrientedImage into the itk::Image.
>>>>
>>>> The new code is only used if the ITK_IMAGE_BEHAVES_AS_ORIENTED_IMAGE
>>>> flag is ON.
>>>>
>>>> Once the dust settles we can prevent the code duplication by moving
>>>> this into specific methods that the itk::OrientedImage can inherit
>>>> from the itk::Image.
>>>>
>>>> After fixing code in a couple of places, this complies with the flag
>>>> ON (at least under Linux with Gcc 4.1).
>>>>
>>>> However, as you predicted, a large number of test fail when the flag
>>>> is ON. An Experimental build with the flag ON was submitted yesterday
>>>> from zion. You will find the failing tests of this build at:
>>>>
>>>> http://www.cdash.org/CDash/viewTest.php?onlyfailed&buildid=171151
>>>>
>>>> There are 106 failing tests.
>>>> They broadly fall in the following categories:
>>>>
>>>>  1) ImageIO
>>>>     - Analyze
>>>>     - Nrrd
>>>>
>>>>  2) Mathematical Morphology
>>>>
>>>>  3) Image Registration
>>>>     - normal framework and
>>>>     - deformable registration
>>>>
>>>>  4) Resampling
>>>>
>>>>
>>>> My suggestion is to split these groups among several developers.
>>>>
>>>> I'll be happy to look at the Image registration problems.
>>>>
>>>> Hopefully, as Ken pointed out, after fixing a couple of them
>>>> we will find a pattern to follow.
>>>>
>>>>
>>>>  Please let us know if this makes sense,
>>>>
>>>>
>>>>      Thanks
>>>>
>>>>
>>>>        Luis
>>>>
>>>>
>>>> _______________________________________________
>>>> Insight-developers mailing list
>>>> Insight-developers at itk.org
>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>>
>>> _______________________________________________
>>> Insight-developers mailing list
>>> Insight-developers at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>
>>
>>
>>
>> --
>> Stephen R. Aylward, Ph.D.
>> Chief Medical Scientist
>> Kitware, Inc. - North Carolina Office
>> http://www.kitware.com
>> (518) 371-3971 x300
>>
>



-- 
Stephen R. Aylward, Ph.D.
Chief Medical Scientist
Kitware, Inc. - North Carolina Office
http://www.kitware.com
(518) 371-3971 x300


More information about the Insight-developers mailing list