peeling away layers [message #85458] |
Fri, 09 August 2013 01:41  |
lance.luvaul
Messages: 3 Registered: August 2013
|
Junior Member |
|
|
How do I gain access to the idlitvissurface object underlying a "New Graphics" surface object (created using the surface() function)?
I need to programmatically set the scale_vertex_color array, which I cannot seemto do with the surface objref but can with the idlitvissurface objref like so: "my_idlitvissurface->setproperty, scale_vertex_color=[...]"
Thanks in advance,
Lance
|
|
|
Re: peeling away layers [message #85507 is a reply to message #85458] |
Wed, 14 August 2013 01:51   |
lance.luvaul
Messages: 3 Registered: August 2013
|
Junior Member |
|
|
On Friday, August 9, 2013 6:41:46 PM UTC+10, lance....@gmail.com wrote:
> How do I gain access to the idlitvissurface object underlying a "New Graphics" surface object (created using the surface() function)?
>
>
>
> I need to programmatically set the scale_vertex_color array, which I cannot seemto do with the surface objref but can with the idlitvissurface objref like so: "my_idlitvissurface->setproperty, scale_vertex_color=[...]"
>
>
>
> Thanks in advance,
>
> Lance
Finally figured out how to do this. After you've instantiated your NG surface object (and assuming it's the only one), you can set the scale_vertex_color property this way:
igetproperty, 'surface', scale_vertex_color=svc
svc[3] = clip
isetproperty, 'surface', scale_vertex_color=svc
The first arg to i(g|s)etproperty is a path-like string that qualifies the itools visualization object. If 'surface' isn't unique enough, I believe you can use igetid() somehow immediately after instantiating the NG surface to get the fully qualified string (looks something like: "/TOOLS/GRAPHIC/WINDOW/VIEW_1/VISUALIZATION LAYER/DATA SPACE/SURFACE").
Hope this helps someone else...
|
|
|
Re: peeling away layers [message #85509 is a reply to message #85507] |
Wed, 14 August 2013 05:52  |
lance.luvaul
Messages: 3 Registered: August 2013
|
Junior Member |
|
|
On Wednesday, August 14, 2013 6:51:29 PM UTC+10, lance....@gmail.com wrote:
> On Friday, August 9, 2013 6:41:46 PM UTC+10, lance....@gmail.com wrote:
>
>> How do I gain access to the idlitvissurface object underlying a "New Graphics" surface object (created using the surface() function)?
>
>>
>
>>
>
>>
>
>> I need to programmatically set the scale_vertex_color array, which I cannot seemto do with the surface objref but can with the idlitvissurface objref like so: "my_idlitvissurface->setproperty, scale_vertex_color=[...]"
>
>>
>
>>
>
>>
>
>> Thanks in advance,
>
>>
>
>> Lance
>
>
>
> Finally figured out how to do this. After you've instantiated your NG surface object (and assuming it's the only one), you can set the scale_vertex_color property this way:
>
>
>
> igetproperty, 'surface', scale_vertex_color=svc
>
> svc[3] = clip
>
> isetproperty, 'surface', scale_vertex_color=svc
>
>
>
> The first arg to i(g|s)etproperty is a path-like string that qualifies the itools visualization object. If 'surface' isn't unique enough, I believe you can use igetid() somehow immediately after instantiating the NG surface to get the fully qualified string (looks something like: "/TOOLS/GRAPHIC/WINDOW/VIEW_1/VISUALIZATION LAYER/DATA SPACE/SURFACE").
>
>
>
> Hope this helps someone else...
Here's another way to do it:
oSystem = _IDLitSys_GetSystem()
oVis = oSystem->IDLitContainer::GetByIdentifier(igetid('surface'))
ovis->getproperty, scale_vertex_color=svc
svc[3] = clip
ovis->setproperty, scale_vertex_color=svc
|
|
|