[vtk-developers] Proposal to make small enhancement to vtkSetGet

Sebastien BARRE sebastien at barre.nom.fr
Thu Apr 26 15:15:26 EDT 2001


At 26/04/2001 23:28, Prabhu Ramachandran wrote:

>There are quite a few variables that use the vtkSetClampMacro for
>variables that have ranges of valid values.  AFAIK, right now there is
>no way to extract the actual range of allowed values.  If this
>information were available it would be easy to create a scale or
>slider widget to control such widgets automatically.  By adding about
>10 lines of code to vtkSetGet.h it should be trivially possible to add
>methods that return the max and min allowed values.  Here is sample
>code.

[...]

>What do you folks think of this proposal?  If no one objects I will
>test and commit it this weekend.

Seems a good idea to me (as we both have the same GUI ideas in mind :)

>This should not affect any existing code.  I am not sure about the
>naming conventions that I have used here.  Let me know if I should use
>something like GetRadiusMinValue()/GetRadiusMaxValue() or anything
>else instead of what I used earlier.

I guess the Get___MinValue and Get__MaxValue would be better. Check :

   vtkSetClampMacro(MaximumSpeed,float,0.0,VTK_LARGE_FLOAT)

where :
         GetMaximumSpeedMax might be a bit difficult to grab. Or am I just 
paranoid ? :)

Of course, do not forget to rebuild VTK first :), to check if these new 
functions won't clash with any existing function with the same signature 
among the 122 files using vtkSetClampMacro.

I guess the next step would be to include these "semantic hints" at a 
higher level, directly in more meaningful types (typedefs would be fine), 
for example a vtkRGBTriplet instead of an array of float, a 
vtkAngleInDegrees instead of a float, so that we might detect these types 
in scripting language and provide a GUI that would allow the user to enter 
the value in any unit/way (RGB/CMYK/Lab, degrees/rad), and convert it to 
RGB/degrees, etc.). Of course, this fit in the famous "let's remove the 
'hints' file" process :)






More information about the vtk-developers mailing list