[vtk-developers] Marking data modified

Ken Martin ken.martin at kitware.com
Mon Aug 15 14:47:18 EDT 2016


It is that someone is changing the data in the cell array but not marking
them modified. In OpenGL2 I look at the mtime of a cell array to determine
if I need to rebuild and re-upload that array. If points change I rebuild
the VBO, if a cell array changes I rebuild the the relavent IBO. The result
of that is that if someone changes the points or cells without marking the
array as modified they do not get rebuilt/uploaded.

So

polydata->GetPoints()->SetTuple(0,0,0,0);
ren->Render();

will not work. Nor will

polydata->GetPoints()->SetTuple(0,0,0,0);
polydata->Modified();
ren->Render();

you actually need to mark as modified the VTK object you modified for it to
work. In this case

polydata->GetPoints()->SetTuple(0,0,0,0);
polydata->GetPoints()->Modified();
ren->Render();









On Mon, Aug 15, 2016 at 2:36 PM, Berk Geveci <berk.geveci at kitware.com>
wrote:

> Can you provide a bit more detail? Who's MTime is important in this case?
> Note that vtkPolyData does not take into account the MTime of the
> underlying vtkCellArrays when computing its own MTime. So if the MTime of
> the polydata is becoming stale, simply calling Modified() on it should be
> sufficient. As far as I can tell, vtkCellArray does nothing with MTime.
>
> On Mon, Aug 15, 2016 at 1:25 PM, Shawn Waldon <shawn.waldon at kitware.com>
> wrote:
>
>> Thanks David & Berk,
>>
>> Ok, I'll add a commit to my branch to update the docs and add you as
>> reviewers.  I have a follow-up question though:  vtkPolyData::ReplaceCell.
>> This function figures out which cell array the cell is in and then calls
>> ReplaceCell on that one.  It can be in Verts, Lines, Polys, or Strips.  So
>> the caller may not know which cell array to call Modified on.  What should
>> we do in this case?
>>
>> Shawn
>>
>> On Mon, Aug 15, 2016 at 12:55 PM, Berk Geveci <berk.geveci at kitware.com>
>> wrote:
>>
>>> I agree with David.
>>>
>>> On Mon, Aug 15, 2016 at 12:54 PM, David Cole via vtk-developers <
>>> vtk-developers at vtk.org> wrote:
>>>
>>>> I don't specifically know the answer to this one, but in general,
>>>> these sorts of things are on purpose for performance in VTK.
>>>>
>>>> If you want to replace 100 (or even more) cells, you'd want
>>>> ReplaceCell NOT to call Modified, and just do it once at the end of
>>>> your bulk replacement. I'd be surprised if somebody chimed in and
>>>> contradicted this... so I would think just fixing the docs is the
>>>> right way to go here.
>>>>
>>>>
>>>> HTH,
>>>> David C.
>>>>
>>>>
>>>> On Mon, Aug 15, 2016 at 11:59 AM, Shawn Waldon <
>>>> shawn.waldon at kitware.com> wrote:
>>>> > Hi all,
>>>> >
>>>> > I have been tracking down a bug in the vtkBoxRepresentation where the
>>>> > selected face never updated.  The issue was that the widget was
>>>> calling
>>>> > ReplaceCell on the vtkCellArray for the selected face polydata, but
>>>> never
>>>> > calling Modified() on the cell array (though it did call Modified()
>>>> on the
>>>> > polydata).  With the new OpenGL backend this matters.  The
>>>> documentation for
>>>> > ReplaceCell doesn't say that you have to do this afterward and the
>>>> writer of
>>>> > vtkBoxRepresentation used that documentation.
>>>> >
>>>> > So my question is this: why doesn't ReplaceCell mark the cell array as
>>>> > modified? Is this a bug or on purpose for performance reasons?  I will
>>>> > update the docs or fix ReplaceCell once I know which is wrong.
>>>> >
>>>> > Thank you,
>>>> > Shawn
>>>> >
>>>> > _______________________________________________
>>>> > Powered by www.kitware.com
>>>> >
>>>> > Visit other Kitware open-source projects at
>>>> > http://www.kitware.com/opensource/opensource.html
>>>> >
>>>> > Search the list archives at: http://markmail.org/search/?q=
>>>> vtk-developers
>>>> >
>>>> > Follow this link to subscribe/unsubscribe:
>>>> > http://public.kitware.com/mailman/listinfo/vtk-developers
>>>> >
>>>> >
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Search the list archives at: http://markmail.org/search/?q=
>>>> vtk-developers
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://public.kitware.com/mailman/listinfo/vtk-developers
>>>>
>>>>
>>>
>>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/
> opensource/opensource.html
>
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtk-developers
>
>
>


-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and
legally privileged information, and it is intended only for the use of the
addressee.  Access to this email by anyone else is unauthorized. If you are
not the intended recipient, any disclosure, copying, distribution or any
action taken in reliance on it is prohibited and may be unlawful. If you
received this communication in error please notify us immediately and
destroy the original message.  Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20160815/abab1668/attachment.html>


More information about the vtk-developers mailing list