[vtkusers] Help with VtkDatasetsurface filter

Bhanu Hariharan bhanu at petrotel.com
Thu Apr 4 11:08:47 EDT 2013


Cory,
I have pasted a code snippet. Let me know if you need to know anything
else. I really need to know the answers.
It is starting to look like using a DataSetSurfaceFilter is of no use if it
is going to give me same result (performance and image) as the
vtkDataSetMapper that I had already been using.

Starting to wonder when does one use a datasetsurfacefilter anyway if
vtkdatasetmapper can get the same job done.


   If( ShowOnlySurface )
    {
            MyDataSetSurfaceFilter->SetInput(
MyThresholdFilter->GetOutput() );
            MyDataSetSurfaceFilter->Update();

           MyDataSetMapper->SetInput( MyDataSetSurfaceFilter->GetOutput());
   }
   else
   {
            MyDataSetMapper->SetInput( MyThresholdFilter->GetOutput());
    }

MyLODActor->SetMapper(MyDataSetMapper);
MyRenderer->AddActor(MyLODActor);

Thanks,
Bhanu


On Thu, Apr 4, 2013 at 9:29 AM, Cory Quammen <cquammen at cs.unc.edu> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130404/b43d7df1/attachment.htm>


More information about the vtkusers mailing list