[Paraview-developers] String/Array List domain regular expression

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Wed Apr 14 10:22:59 EDT 2010


What you suggest seems reasonable. I don't think there's anything
already there for such a custom behaviour.

Utkarsh

On Wed, Apr 14, 2010 at 4:46 AM, Biddiscombe, John A. <biddisco at cscs.ch> wrote:
> Question :
>
> The string array name regex stuff seems to work very nicely. Will check in later today I hope. But here's a problem
>
> I'd like the user to be able to specify a string (in some config dialog created by the plugin) and have the ArrayListDomain, or StringListDomain, pick up the regex from the user.
>
> If I create a custom panel for a particular filter, I reckon I can get the ArrayListDomain from the filter proxy property.
>
> Is there another way that doesn't involve extra work?
>
> thanks
>
> JB
>
>
>
>> -----Original Message-----
>> From: paraview-developers-bounces at paraview.org [mailto:paraview-developers-
>> bounces at paraview.org] On Behalf Of Biddiscombe, John A.
>> Sent: 06 April 2010 15:35
>> To: paraview-developers at paraview.org
>> Subject: [Paraview-developers] String/Array List domain regular expression
>>
>> I get a lot of data where scalars are defined by names like Density,
>> density, rho, RHO, m_c_rho, rho_ - or any other possibly name that vaguely
>> describes the data.
>>
>>
>>
>> I've added a couple of new fields to the string array XML - an example is
>> best
>>
>>          name="Yarray"
>>
>>          command="SetYarray"
>>
>>          default_values="Coords_1"
>>
>>          default_regex_delimiter=","
>>
>>          default_regex=".*Y,.*y,.*oords_1"
>>
>>          number_of_elements="1">
>>
>>
>>
>> Now the regex is used to search all possible scalar arrays to find the first
>> match. Not very complex, but my first tests show that for reasonably simple
>> regexs (and data arrays), all seems good and I'm now able to save several
>> array selection clicks by getting the default found for me.
>>
>>
>>
>> In order to make this work, I added to vtkSMStringVectorProperty
>>
>>   // Description:
>>
>>   // If this string vector has regular expression searches attached
>>
>>   // then provide a hook so that the a string list domain can pass in a list
>>
>>   // of possible strings from which a default can be selected
>>
>>   bool GetDefaultUsesRegex();
>>
>>
>>
>>   // Description:
>>
>>   // Using the regular expression list, pick one of the possible string
>>
>>   // to be used as the default value
>>
>>   const char* GetDefaultValue(vtkStringList *list);
>>
>>
>>
>> and some tweaks to vtkSMStringListDomain so that the calls are made
>> appropriately.
>>
>> unfortunately, in order to pick a default, the vtkSMStringListDomain has to
>> copy all of its internal array values into a vtkStringList, pass them to the
>> VectorProperty, let it choose one and then destroy the list afterwards. This
>> is because we are not allowed to use vtkstd::anything in headers and the
>> list is already stored internally as a vtkstd::vector< ... >
>>
>>
>>
>> I don't like it.
>>
>>
>>
>> however, when I'm sure I've not broken anything I'll check the stuff in. I'd
>> be grateful if one of the ServerManager Proxy whizzes from Kitware would
>> take a glance at the code when it goes in to see if there's a tidier
>> (/better) way of doing it. I'm never quite sure of the
>> ArrayListDomain/StringListDomain/StringVectorProperty/etc etc as to who is
>> supposed to own what.
>>
>>
>>
>> Thanks
>>
>>
>>
>> JB
>>
>>
>>
>>
>>
>> --
>>
>> John Biddiscombe,                            email:biddisco @ cscs.ch
>>
>> http://www.cscs.ch/ <http://www.cscs.ch/>
>>
>> CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
>>
>> Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82
>>
>>
>
> _______________________________________________
> Paraview-developers mailing list
> Paraview-developers at paraview.org
> http://public.kitware.com/mailman/listinfo/paraview-developers
>


More information about the Paraview-developers mailing list