[vtk-developers] A weird 6.x specific bug with ModifiedEvents

Bill Lorensen bill.lorensen at gmail.com
Mon Apr 14 12:57:13 EDT 2014


Ooops, I think Kyle has left Kitware...

On Mon, Apr 14, 2014 at 12:54 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> GetColor should return the value set by SetColor. If we need the
> composite color then we should explicitly ask for it.
>
> I'm not sure why this change was made. Kyle made it.
>
> Bill
>
>
> On Mon, Apr 14, 2014 at 12:52 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>> So here is the bug the sample code uncovers:
>>
>> SetColor
>> 1) Sets the Color ivar to the requested color
>> 2) SetColor calls SetAmbientColor which triggers the Modified event
>>     The Modified event call GetColor which calls ComputeCompositeColor
>> and computes a composite color
>>     The composite color is not correct
>> 3) Color continues to get corrupted with SetDiffuseColor and SetSpecularColor.
>>
>>
>>
>> On Mon, Apr 14, 2014 at 12:40 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>> I do not think that GetColor should change the value of Color. If we
>>> need the composite color, we could have a method GetCompositeColor().
>>> No SetCompositeColor.
>>>
>>> Bill
>>>
>>>
>>> On Mon, Apr 14, 2014 at 12:24 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>> Really bad stuff. ComputeCompositeColor "sets" this->Color directly.
>>>> ComputeCompositeColor was added about a year ago...
>>>>
>>>>
>>>>
>>>> On Mon, Apr 14, 2014 at 12:18 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>> This is indeed weird.
>>>>>
>>>>> GetColor does not return the value set by SetColor. It calls
>>>>> ComputeCompositeColor.
>>>>>
>>>>> Also, SetColor calls SetAmbientColor, SetDiffuseColor and
>>>>> SetSpecularColor. Each should cause a Modified event. In fact if you
>>>>> remove the o.GetColor() call in the Modified callback, you will see
>>>>> three modified events and each call will change one more of the color
>>>>> s (ambeint, diffuse, specular).
>>>>>
>>>>>
>>>>> Very strange.
>>>>>
>>>>> Bill
>>>>>
>>>>>
>>>>> On Mon, Apr 14, 2014 at 11:35 AM, Prabhu Ramachandran
>>>>> <prabhu at aero.iitb.ac.in> wrote:
>>>>>> Hi everyone,
>>>>>>
>>>>>> I just discovered a weird bug with VTK 6.1 and 6.0 that doesn't happen with
>>>>>> VTK 5.x.  Here is a tiny Python script:
>>>>>>
>>>>>> ##################################################
>>>>>> import vtk
>>>>>> def f(o, e):
>>>>>>     print e, o.GetAmbientColor(), o.GetColor(),
>>>>>>     print o.GetDiffuseColor(), o.GetSpecularColor()
>>>>>>
>>>>>> p = vtk.vtkProperty()
>>>>>> p.AddObserver('ModifiedEvent', f)
>>>>>> p.SetColor(0,0,0)
>>>>>> print p.GetColor()
>>>>>> ##################################################
>>>>>>
>>>>>> If you comment out the AddObserver line, everything works correctly but with
>>>>>> it, you can never set the color of the property!  This doesn't seem to be
>>>>>> specific to Python and happens with a small C++ example as well.
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>> cheers,
>>>>>> Prabhu
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Unpaid intern in BillsBasement at noware dot com
>>>>
>>>>
>>>>
>>>> --
>>>> Unpaid intern in BillsBasement at noware dot com
>>>
>>>
>>>
>>> --
>>> Unpaid intern in BillsBasement at noware dot com
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com



-- 
Unpaid intern in BillsBasement at noware dot com



More information about the vtk-developers mailing list