[vtk-developers] [vtkusers] Help with VtkDatasetsurface filter

Cory Quammen cquammen at cs.unc.edu
Thu Apr 4 10:29:59 EDT 2013


Bhanu,

It's hard to know exactly what might be going on without seeing some
code or images. I would think, like you, that the two images should be
the same when the surface property is set to semi-transparent.

Using a vtkUnstructuredGridVolumeMapper will almost certainly be
slower than using vtkUnstructuredGridVolumeMapper because volume
rendering is in general much more computationally intensive than
surface rendering.

Cory

On Thu, Apr 4, 2013 at 10:18 AM, Bhanu Hariharan <bhanu at petrotel.com> wrote:
> Cory,
> Thanks very much for showing interest and taking the time to help me out.
>
> I think your explanation makes perfect sense. I do use vtkDataSetMapper...so
> you hit the bull's eye.
> I missed the line in the documentation about vtkDataSetMapper. I had been
> chasing vtkDataSetSurfaceFilter.
>
> That explains why I do not see any performance difference on doing an
> explicit vtkDataSetSurfaceFiltermyself.
>
> But I still have little trouble understanding the transparent grid.
> I made boundary cells all blue and in between cells all red. A transparent
> image of this grid when all cells are rendered is purple (which is expected
> blend of red and blue). This was using just vtkDataSetMapper.
>
> Now if vtkDataSetMapper is rendering only boundary surfaces( by doing an
> internal vtkDataSetSurfaceFilter )
> shouldnt I expect only  a blue image?
>
> Or could it be that when the image is transparent, vtkDataSetSurfaceFilter
> handles it somewhat differently?
> Like rendering all surfaces atleast once or something ( just trying to
> explain the purple color).
>
> Please let me know what you think of it?
>
> Thanks
> Bhanu
>
>
> PS: Would using a vtkUnstructuredGridVolumeMapper instead of a
> vtkDataSetMapper cause a performance HIT?
>
>
>
>
>
>
>
>
> On Wed, Apr 3, 2013 at 9:27 PM, Cory Quammen <cquammen at cs.unc.edu> wrote:
>>
>> Bhanu,
>>
>> Could you post a small snippet showing how you are using VTK to render
>> your unstructured grid?
>>
>> I suspect you are using a vtkDataSetMapper. The documentation for this
>> class says:
>>
>> "The 2D faces of 3D cells are mapped only if they are used by only one
>> cell, i.e., on the boundary of the data set."
>>
>> If you are in fact using a vtkDataSetMapper, I believe it is applying
>> a vtkDataSetSurfaceFilter underneath and rendering only the boundary
>> polygons. Hence you should see no difference in either image or
>> performance if you apply the vtkDataSetSurfaceFilter yourself before
>> sending it to a vtkDataSetMapper.
>>
>> If you ever want to render the whole volume, you would need to use
>> something like a vtkUnstructuredGridVolumeMapper.
>>
>> Hope that helps,
>> Cory
>>
>> On Wed, Apr 3, 2013 at 9:59 PM, Alex Malyushytskyy <alexmalvtk at gmail.com>
>> wrote:
>> > As far as I understand if all internal surfaces were eliminated (for
>> > example
>> > by vtkDataSetSurfaceFilter ) you would see only blue,
>> > but I do not think vtkDataSetSurfaceFilterdoes it.
>> >
>> > Below is only my assumption, since I did not look in the
>> > vtkDataSetSurfaceFilter internals and documentation does not answer the
>> > question, but I would expect that filter only combines small primitives
>> > which are in the same geometrical plane and are connected into large and
>> > eliminates duplicates when it works on the unstructured grid .
>> >
>> > It the array you colored original database is transferred you will see
>> > the
>> > same colors as with original database.
>> >
>> > Regards,
>> >       Alex
>> >
>> >
>> > On Wed, Apr 3, 2013 at 7:42 AM, Bhanu Hariharan <bhanu at petrotel.com>
>> > wrote:
>> >>
>> >> Thanks Alex.
>> >>
>> >> However the resulting picture (full sized model) is the same. I
>> >> expected
>> >> different picture but it is not.
>> >>
>> >> I made outer cells all blue and in between cells all red. A transparent
>> >> image of this grid when all cells are rendered is purple (which is
>> >> expected
>> >> blend of red and blue).
>> >>
>> >> But it remains the same image when I render just surface - I expect to
>> >> see
>> >> only BLUE?
>> >> Is this a VTK bug perhaps??
>> >>
>> >> Thanks again.
>> >> Bhanu
>> >>
>> >>
>> >>
>> >> On Tue, Apr 2, 2013 at 6:14 PM, Alex Malyushytskyy
>> >> <alexmalvtk at gmail.com>
>> >> wrote:
>> >>>
>> >>> I was not suggesting to use VTKActor, cause it means that your
>> >>> performance at least for large number of nodes
>> >>> will decrease. I only said it would make a difference ( possibly from
>> >>> very slow to slow or the same you currently have).
>> >>>
>> >>> As for opacity, I would expect picture be different, but I would not
>> >>> expect human eye to see the difference.
>> >>> Keep in mind that as far as I understand curse model only used during
>> >>> transition or rotation, resulted picture shown is full sized model,
>> >>>
>> >>> Regards,
>> >>>    Alex
>> >>>
>> >>>
>> >>> On Tue, Apr 2, 2013 at 3:14 PM, Bhanu Hariharan <bhanu at petrotel.com>
>> >>> wrote:
>> >>> > Alex,
>> >>> > I will try your suggestions - using VTKActor to see difference and
>> >>> > different
>> >>> > frame rates.
>> >>> >
>> >>> > I have one more question that's not related to rendering
>> >>> > performance.
>> >>> > It
>> >>> > concerns opacity.
>> >>> >
>> >>> > I was alteast expecting to see different images when I specify
>> >>> > opacity
>> >>> > < 1
>> >>> > for the grid.
>> >>> >
>> >>> > Shouldn't a transparent image look different when I render all cells
>> >>> > (all
>> >>> > layers) than when I render just surface cells?
>> >>> >
>> >>> >
>> >>> > Thanks again,
>> >>> > Bhanu
>> >>> >
>> >>> >
>> >>> >
>> >>> >
>> >>> > On Tue, Apr 2, 2013 at 4:49 PM, Alex Malyushytskyy
>> >>> > <alexmalvtk at gmail.com>
>> >>> > wrote:
>> >>> >>
>> >>> >> LOD (level of details)  technique consists of run time assessment
>> >>> >> of
>> >>> >> performance and building a special model which will be used in
>> >>> >> certain
>> >>> >> circumstances and on the one hand would look as close as possible
>> >>> >> to
>> >>> >> the original, but on another hand allows achieve desired or better
>> >>> >> performance.
>> >>> >> That what LOD actor does, crude models will be silently created and
>> >>> >> displayed during rotation or when actor is moved.
>> >>> >>
>> >>> >> Now assume there are 2 model - lets say 1st is your unstructured
>> >>> >> grid,
>> >>> >> another is result of dataSetSurfaceFilter.
>> >>> >> Since both are using LOD actors, the following might happen:
>> >>> >>
>> >>> >> 1st model is found to be too big to be displayed and as a result
>> >>> >> crude
>> >>> >> model with N1 number of nodes is created and displayed
>> >>> >> 2nd model is found to be too big to be displayed and as a result
>> >>> >> crude
>> >>> >> model with N2 number of nodes is created and displayed
>> >>> >> or it is small enough , so it is displayed as is (but lets say
>> >>> >> still
>> >>> >> have N2 nodes)
>> >>> >>
>> >>> >> Now N1 might be mostly the same as N2.
>> >>> >> And you see no difference in performance during transition or
>> >>> >> rotation.
>> >>> >> Basically this means that LOD actor does his job well enough.
>> >>> >> I bet if you were using regular actors you would see a huge
>> >>> >> performance increase.
>> >>> >>
>> >>> >> If you need further performance you may just specify different
>> >>> >> frame
>> >>> >> rate.
>> >>> >> From http://www.vtk.org/doc/release/4.0/html/classvtkLODActor.html:
>> >>> >>
>> >>> >> "To control the frame rate, you typically set the
>> >>> >> vtkRenderWindowInteractor DesiredUpdateRate and StillUpdateRate.
>> >>> >> This
>> >>> >> then will cause vtkLODActor to adjust its LOD to fulfill the
>> >>> >> requested
>> >>> >> update rate.
>> >>> >> For greater control on levels of detail, see also vtkLODProp3D.
>> >>> >> That
>> >>> >> class allows arbitrary definition of each LOD.
>> >>> >> "
>> >>> >>
>> >>> >> Hope this helps,
>> >>> >>
>> >>> >> Alex
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >> On Tue, Apr 2, 2013 at 2:18 PM, Bhanu Hariharan
>> >>> >> <bhanu at petrotel.com>
>> >>> >> wrote:
>> >>> >> > Alex,
>> >>> >> >
>> >>> >> > To be specific in one of my cases,  No. of surfaces rendered were
>> >>> >> > reduced
>> >>> >> > from 6163542 to 373626 assuming grid has hexahedrons each with 6
>> >>> >> > surfaces. I
>> >>> >> > got the number 373626 by doing
>> >>> >> >
>> >>> >> > dataSetSurfaceFilter->GetOutput()->GetNumberOfCells()
>> >>> >> >
>> >>> >> > Thats a significant reduction of number of surfaces. These are
>> >>> >> > rendered
>> >>> >> > using VTKLODActor.
>> >>> >> >
>> >>> >> > Can you please explain what you mean by "actually shown
>> >>> >> > primitives
>> >>> >> > during
>> >>> >> > rotation". What are the shown primitives?
>> >>> >> >
>> >>> >> > I am just adding the output of the dataSetSurfaceFilter to a
>> >>> >> > vtkDataSetMapper and then to a vtkLODActor.
>> >>> >> >
>> >>> >> > All I know if no. of surfaces are reduced. Do I need to do/check
>> >>> >> > something
>> >>> >> > else?
>> >>> >> >
>> >>> >> > If you need something specific to answer more specifically, I can
>> >>> >> > provide
>> >>> >> > the details. It would be a great help.
>> >>> >> >
>> >>> >> > Thanks,
>> >>> >> > Bhanu
>> >>> >> >
>> >>> >> >
>> >>> >> > ---------- Forwarded message ----------
>> >>> >> > From: Alex Malyushytskyy <alexmalvtk at gmail.com>
>> >>> >> > Date: Tue, Apr 2, 2013 at 4:03 PM
>> >>> >> > Subject: Re: [vtkusers] Help with VtkDatasetsurface filter
>> >>> >> > To: "vtkusers at vtk.org" <vtkusers at vtk.org>
>> >>> >> >
>> >>> >> >
>> >>> >> > You may get only general advice asking general questions.
>> >>> >> > Compare  the number of nodes/cells you are you are getting from
>> >>> >> > vtkDataSetSurfaceFilter with
>> >>> >> > such in the unstructured grid,
>> >>> >> > Even though it may be significantly decreased in some cases, for
>> >>> >> > example if LOD actors are used,  they may decrease actually shown
>> >>> >> > primitives during rotation approximately to the same number and
>> >>> >> > you
>> >>> >> > will not see any difference in the performance.
>> >>> >> >
>> >>> >> > Regards,
>> >>> >> >     Alex
>> >>> >> >
>> >>> >> >
>> >>> >> > On Tue, Apr 2, 2013 at 8:27 AM, Bhanu Hariharan
>> >>> >> > <bhanu at petrotel.com>
>> >>> >> > wrote:
>> >>> >> >> Hi All,
>> >>> >> >> I was wondering if anyone would be kind enough to answer the
>> >>> >> >> following
>> >>> >> >> query
>> >>> >> >> for me.
>> >>> >> >>
>> >>> >> >> I had posted this a while back and still havent found the reason
>> >>> >> >> why
>> >>> >> >> vtkDataSetSurfaceFilter hasn't made rendering any faster. The
>> >>> >> >> interaction
>> >>> >> >> and rendering time to rotate zoom etc seem to be just the same
>> >>> >> >> as
>> >>> >> >> though I
>> >>> >> >> rendered all cells in the unstructured grid.
>> >>> >> >> The reason I chose to introduce rendering just surface cells in
>> >>> >> >> the
>> >>> >> >> first
>> >>> >> >> place was to make rendering faster. But I am surprised it doesnt
>> >>> >> >> make
>> >>> >> >> any
>> >>> >> >> difference at all :(.
>> >>> >> >> Any words or ideas?
>> >>> >> >>
>> >>> >> >> Thanks so much
>> >>> >> >> Bhanu
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> On Mon, Mar 11, 2013 at 4:30 PM, Bhanu Hariharan
>> >>> >> >> <bhanu at petrotel.com>
>> >>> >> >> wrote:
>> >>> >> >>>
>> >>> >> >>> One related question though. I started using Surface Filter
>> >>> >> >>> really
>> >>> >> >>> only
>> >>> >> >>> for performance reasons.
>> >>> >> >>>
>> >>> >> >>> I was thinking if I rendered just surface cells, the rendering
>> >>> >> >>> and
>> >>> >> >>> rotation etc would be must faster.
>> >>> >> >>> However I do not find it any different than when I render all
>> >>> >> >>> cells.
>> >>> >> >>> What
>> >>> >> >>> am I missing?
>> >>> >> >>> Any reasons anyone can think of, please let me know.
>> >>> >> >>>
>> >>> >> >>>
>> >>> >> >>>
>> >>> >> >>> Thanks,
>> >>> >> >>> Bhanu
>> >>> >> >>>
>> >>> >> >>>
>> >>> >> >>>
>> >>> >> >>> On Mon, Mar 11, 2013 at 4:12 PM, Bhanu Hariharan
>> >>> >> >>> <bhanu at petrotel.com>
>> >>> >> >>> wrote:
>> >>> >> >>>>
>> >>> >> >>>> David,
>> >>> >> >>>> As you suggested, I got it to work using SetGlobalIds and then
>> >>> >> >>>> retrieving
>> >>> >> >>>> that using GetGlobalIds. Many thanks for your patience and
>> >>> >> >>>> help.
>> >>> >> >>>>
>> >>> >> >>>>
>> >>> >> >>>> -Bhanu
>> >>> >> >>>>
>> >>> >> >>>>
>> >>> >> >>>> On Wed, Mar 6, 2013 at 11:41 AM, Bhanu Hariharan
>> >>> >> >>>> <bhanu at petrotel.com>
>> >>> >> >>>> wrote:
>> >>> >> >>>>>
>> >>> >> >>>>> David,
>> >>> >> >>>>>
>> >>> >> >>>>> I am using vtk 5.2 - is it possible that this function was
>> >>> >> >>>>> not
>> >>> >> >>>>> defined
>> >>> >> >>>>> in that version.
>> >>> >> >>>>>
>> >>> >> >>>>> I get the error that SetOriginalCellIdsName is not a member
>> >>> >> >>>>> of
>> >>> >> >>>>> vtkDataSetSurfaceFilter   :(
>> >>> >> >>>>>
>> >>> >> >>>>> Bhanu
>> >>> >> >>>>>
>> >>> >> >>>>>
>> >>> >> >>>>>
>> >>> >> >>>>> On Wed, Mar 6, 2013 at 10:36 AM, David E DeMarle
>> >>> >> >>>>> <dave.demarle at kitware.com> wrote:
>> >>> >> >>>>>>
>> >>> >> >>>>>> Give DSF a name for the array.
>> >>> >> >>>>>> SetOriginalCellIdsName("idsintoDSForsomething")
>> >>> >> >>>>>> Then retrieve it from the output like
>> >>> >> >>>>>>
>> >>> >> >>>>>>
>> >>> >> >>>>>> DSF->GetOutput()->GetCellData()->GetArray("idsintoDSForsomething")
>> >>> >> >>>>>>
>> >>> >> >>>>>>
>> >>> >> >>>>>> David E DeMarle
>> >>> >> >>>>>> Kitware, Inc.
>> >>> >> >>>>>> R&D Engineer
>> >>> >> >>>>>> 21 Corporate Drive
>> >>> >> >>>>>> Clifton Park, NY 12065-8662
>> >>> >> >>>>>> Phone: 518-881-4909
>> >>> >> >>>>>>
>> >>> >> >>>>>>
>> >>> >> >>>>>> On Wed, Mar 6, 2013 at 11:29 AM, Bhanu Hariharan
>> >>> >> >>>>>> <bhanu at petrotel.com>
>> >>> >> >>>>>> wrote:
>> >>> >> >>>>>>>
>> >>> >> >>>>>>>
>> >>> >> >>>>>>> David,
>> >>> >> >>>>>>>
>> >>> >> >>>>>>> I had turned on PassThroughCell. But I do not know how to
>> >>> >> >>>>>>> access
>> >>> >> >>>>>>> the
>> >>> >> >>>>>>> new Ids array after the fact.
>> >>> >> >>>>>>> VTK Doc says something about a 'OrginalCellIds' but I am
>> >>> >> >>>>>>> not
>> >>> >> >>>>>>> sure
>> >>> >> >>>>>>> how
>> >>> >> >>>>>>> to access this.
>> >>> >> >>>>>>> So I extracted the output of DSF to a vtkPolyData but still
>> >>> >> >>>>>>> cant
>> >>> >> >>>>>>> figure out how to get to that new Ids array.
>> >>> >> >>>>>>> Any help with that is really appreciated.
>> >>> >> >>>>>>>
>> >>> >> >>>>>>> I will try your other suggestion in the meantime.
>> >>> >> >>>>>>>
>> >>> >> >>>>>>> Thanks,
>> >>> >> >>>>>>> Bhanu
>> >>> >> >>>>>>>
>> >>> >> >>>>>>>
>> >>> >> >>>>>>> On Wed, Mar 6, 2013 at 9:25 AM, David E DeMarle
>> >>> >> >>>>>>> <dave.demarle at kitware.com> wrote:
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>> Sorry for the confusion, it has been a long time since I
>> >>> >> >>>>>>>> added
>> >>> >> >>>>>>>> that
>> >>> >> >>>>>>>> code the DataSetSurfaceFilter. Turning
>> >>> >> >>>>>>>> PassThroughCell/PointIds
>> >>> >> >>>>>>>> in
>> >>> >> >>>>>>>> fact
>> >>> >> >>>>>>>> generates a new Ids array, which you can retrieve after
>> >>> >> >>>>>>>> the
>> >>> >> >>>>>>>> fact
>> >>> >> >>>>>>>> to
>> >>> >> >>>>>>>> do the
>> >>> >> >>>>>>>> lookups into the data that is input to the DSF and extract
>> >>> >> >>>>>>>> particular
>> >>> >> >>>>>>>> cells/points by their offset (n'th cell in the cell array,
>> >>> >> >>>>>>>> n'th
>> >>> >> >>>>>>>> point in the
>> >>> >> >>>>>>>> point array)
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>> However I still recommend making your own ids array and
>> >>> >> >>>>>>>> using
>> >>> >> >>>>>>>> that
>> >>> >> >>>>>>>> instead of PassThrough. vtkIdFilter will generate them for
>> >>> >> >>>>>>>> you.
>> >>> >> >>>>>>>> The
>> >>> >> >>>>>>>> array
>> >>> >> >>>>>>>> marked as the active global ids array is treated specially
>> >>> >> >>>>>>>> by
>> >>> >> >>>>>>>> most
>> >>> >> >>>>>>>> filters
>> >>> >> >>>>>>>> in that they try to preserve it across operations
>> >>> >> >>>>>>>> (including
>> >>> >> >>>>>>>> threshold and
>> >>> >> >>>>>>>> DSF). We added this to VTK a few years ago specifically
>> >>> >> >>>>>>>> for
>> >>> >> >>>>>>>> this
>> >>> >> >>>>>>>> case of
>> >>> >> >>>>>>>> finding out where particular result values come from (and
>> >>> >> >>>>>>>> in
>> >>> >> >>>>>>>> particular for
>> >>> >> >>>>>>>> surface selection). So the Threshold and surface filter
>> >>> >> >>>>>>>> will
>> >>> >> >>>>>>>> push
>> >>> >> >>>>>>>> globalIDS
>> >>> >> >>>>>>>> forward just fine. Once you get a result, grab the active
>> >>> >> >>>>>>>> globaIDs
>> >>> >> >>>>>>>> array,
>> >>> >> >>>>>>>> look for the values in it, and look them up in the
>> >>> >> >>>>>>>> original
>> >>> >> >>>>>>>> data.
>> >>> >> >>>>>>>> The
>> >>> >> >>>>>>>> extract selections filter will do the job of looking them
>> >>> >> >>>>>>>> up
>> >>> >> >>>>>>>> in
>> >>> >> >>>>>>>> the
>> >>> >> >>>>>>>> original
>> >>> >> >>>>>>>> data and pulling them out as a new dataset.
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>> David E DeMarle
>> >>> >> >>>>>>>> Kitware, Inc.
>> >>> >> >>>>>>>> R&D Engineer
>> >>> >> >>>>>>>> 21 Corporate Drive
>> >>> >> >>>>>>>> Clifton Park, NY 12065-8662
>> >>> >> >>>>>>>> Phone: 518-881-4909
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>> On Wed, Mar 6, 2013 at 10:02 AM, Bhanu Hariharan
>> >>> >> >>>>>>>> <bhanu at petrotel.com>
>> >>> >> >>>>>>>> wrote:
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>> David,
>> >>> >> >>>>>>>>> Thanks for replying. However I have a doubt.
>> >>> >> >>>>>>>>> Are you suggesting the VTKUnstructuredgrid should have an
>> >>> >> >>>>>>>>> globalids
>> >>> >> >>>>>>>>> array? Is that what the member is called - globalIds? I
>> >>> >> >>>>>>>>> actually
>> >>> >> >>>>>>>>> pass
>> >>> >> >>>>>>>>> VTKUnstructuredgrid  to a VTKThreshold filter and then
>> >>> >> >>>>>>>>> pass
>> >>> >> >>>>>>>>> that
>> >>> >> >>>>>>>>> filter to
>> >>> >> >>>>>>>>> VTKdatasetsurfacefilter.
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>> Perhaps you can post a couple lines of code. That would
>> >>> >> >>>>>>>>> be
>> >>> >> >>>>>>>>> very
>> >>> >> >>>>>>>>> helpful.
>> >>> >> >>>>>>>>> Thanks,
>> >>> >> >>>>>>>>> Bhanu
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>> On Tue, Mar 5, 2013 at 6:55 PM, David E DeMarle
>> >>> >> >>>>>>>>> <dave.demarle at kitware.com> wrote:
>> >>> >> >>>>>>>>>>
>> >>> >> >>>>>>>>>> The input data should have a globalids array containing
>> >>> >> >>>>>>>>>> a
>> >>> >> >>>>>>>>>> unique
>> >>> >> >>>>>>>>>> value for each cell. If it does, extract will preserve
>> >>> >> >>>>>>>>>> it.
>> >>> >> >>>>>>>>>> After
>> >>> >> >>>>>>>>>> the
>> >>> >> >>>>>>>>>> extraction, use that array in the polydata to do the
>> >>> >> >>>>>>>>>> look
>> >>> >> >>>>>>>>>> up to
>> >>> >> >>>>>>>>>> the original
>> >>> >> >>>>>>>>>> cell in the unstructured grid.
>> >>> >> >>>>>>>>>>
>> >>> >> >>>>>>>>>> On Mar 5, 2013 6:00 PM, "Bhanu Hariharan"
>> >>> >> >>>>>>>>>> <bhanu at petrotel.com>
>> >>> >> >>>>>>>>>> wrote:
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Hi All,
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> I need some help doing the following. Please could one
>> >>> >> >>>>>>>>>>> of
>> >>> >> >>>>>>>>>>> you
>> >>> >> >>>>>>>>>>> guide me on how.
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> I use a vtkDataSetSurfaceFilter on VTKUnstructuredGrid
>> >>> >> >>>>>>>>>>> to
>> >>> >> >>>>>>>>>>> render
>> >>> >> >>>>>>>>>>> skin of that grid. That works fine and I can see the
>> >>> >> >>>>>>>>>>> number of
>> >>> >> >>>>>>>>>>> surfaces
>> >>> >> >>>>>>>>>>> shown by grabbing the
>> >>> >> >>>>>>>>>>> dataSetSurfaceFilter->GetOutput()->GetNumberOfCells().
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> I need a way to map the surface back to the original
>> >>> >> >>>>>>>>>>> cell
>> >>> >> >>>>>>>>>>> id.
>> >>> >> >>>>>>>>>>> That
>> >>> >> >>>>>>>>>>> is if I have 2 cells and I render just skin, number of
>> >>> >> >>>>>>>>>>> surfaces
>> >>> >> >>>>>>>>>>> rendered are
>> >>> >> >>>>>>>>>>> 10. I need to be able to pick on any of these 10
>> >>> >> >>>>>>>>>>> surfaces
>> >>> >> >>>>>>>>>>> and
>> >>> >> >>>>>>>>>>> map
>> >>> >> >>>>>>>>>>> them back
>> >>> >> >>>>>>>>>>> to either of the the 2 grid cells.
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> http://www.vtk.org/doc says :
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> If PassThroughCellIdsOn is 1, then the output polygonal
>> >>> >> >>>>>>>>>>> dataset
>> >>> >> >>>>>>>>>>> will have a celldata array that holds the cell index of
>> >>> >> >>>>>>>>>>> the
>> >>> >> >>>>>>>>>>> original 3D cell
>> >>> >> >>>>>>>>>>> that produced each output cell. This is useful for cell
>> >>> >> >>>>>>>>>>> picking.
>> >>> >> >>>>>>>>>>> I turned the PassThroughCellIds On and I have UseStrips
>> >>> >> >>>>>>>>>>> turned
>> >>> >> >>>>>>>>>>> off.
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Then I did
>> >>> >> >>>>>>>>>>> vtkPolyData *surfacePolyData =
>> >>> >> >>>>>>>>>>> dataSetSurfaceFilter->GetOutput();
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> But I do not see how I can access that celldata array
>> >>> >> >>>>>>>>>>> that
>> >>> >> >>>>>>>>>>> holds
>> >>> >> >>>>>>>>>>> the original 3D cells for the surfaces.
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Please can anyone advise on how.
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Thanks in advance.
>> >>> >> >>>>>>>>>>> Bhanu
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> _______________________________________________
>> >>> >> >>>>>>>>>>> Powered by www.kitware.com
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Visit other Kitware open-source projects at
>> >>> >> >>>>>>>>>>> http://www.kitware.com/opensource/opensource.html
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Please keep messages on-topic and check the VTK FAQ at:
>> >>> >> >>>>>>>>>>> http://www.vtk.org/Wiki/VTK_FAQ
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>>> Follow this link to subscribe/unsubscribe:
>> >>> >> >>>>>>>>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>> >>> >> >>>>>>>>>>>
>> >>> >> >>>>>>>>>
>> >>> >> >>>>>>>>
>> >>> >> >>>>>>>
>> >>> >> >>>>>>
>> >>> >> >>>>>
>> >>> >> >>>>
>> >>> >> >>>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> _______________________________________________
>> >>> >> >> Powered by www.kitware.com
>> >>> >> >>
>> >>> >> >> Visit other Kitware open-source projects at
>> >>> >> >> http://www.kitware.com/opensource/opensource.html
>> >>> >> >>
>> >>> >> >> Please keep messages on-topic and check the VTK FAQ at:
>> >>> >> >> http://www.vtk.org/Wiki/VTK_FAQ
>> >>> >> >>
>> >>> >> >> Follow this link to subscribe/unsubscribe:
>> >>> >> >> http://www.vtk.org/mailman/listinfo/vtkusers
>> >>> >> >>
>> >>> >> > _______________________________________________
>> >>> >> > Powered by www.kitware.com
>> >>> >> >
>> >>> >> > Visit other Kitware open-source projects at
>> >>> >> > http://www.kitware.com/opensource/opensource.html
>> >>> >> >
>> >>> >> > Please keep messages on-topic and check the VTK FAQ at:
>> >>> >> > http://www.vtk.org/Wiki/VTK_FAQ
>> >>> >> >
>> >>> >> > Follow this link to subscribe/unsubscribe:
>> >>> >> > http://www.vtk.org/mailman/listinfo/vtkusers
>> >>> >> >
>> >>> >
>> >>> >
>> >>> _______________________________________________
>> >>> Powered by www.kitware.com
>> >>>
>> >>> Visit other Kitware open-source projects at
>> >>> http://www.kitware.com/opensource/opensource.html
>> >>>
>> >>> Please keep messages on-topic and check the VTK FAQ at:
>> >>> http://www.vtk.org/Wiki/VTK_FAQ
>> >>>
>> >>> Follow this link to subscribe/unsubscribe:
>> >>> http://www.vtk.org/mailman/listinfo/vtkusers
>> >>
>> >>
>> >
>> >
>> > _______________________________________________
>> > Powered by www.kitware.com
>> >
>> > Visit other Kitware open-source projects at
>> > http://www.kitware.com/opensource/opensource.html
>> >
>> > Please keep messages on-topic and check the VTK FAQ at:
>> > http://www.vtk.org/Wiki/VTK_FAQ
>> >
>> > Follow this link to subscribe/unsubscribe:
>> > http://www.vtk.org/mailman/listinfo/vtkusers
>> >
>>
>>
>>
>> --
>> Cory Quammen
>> Research Associate
>> Department of Computer Science
>> The University of North Carolina at Chapel Hill
>
>



-- 
Cory Quammen
Research Associate
Department of Computer Science
The University of North Carolina at Chapel Hill



More information about the vtk-developers mailing list