[vtkusers] Pick From vtkLineSource added to vtkAppendPolyData
Bhanu Hariharan
bhanu at petrotel.com
Tue Sep 17 15:09:16 EDT 2013
Alex,
Thanks for your suggestion. I am now trying to convert everything (both
grid sources and line sources) to vtkPolyData and append to
vtkAppendPolydata.
However how do I do the equivalent of
polydata->GetCellData()->GetGlobalIds()->GetTuple1( 0 );
for a vtkAppendPolydata.
I want to recognize what object I picked from the vtkAppendPolydata.
Thanks
Bhanu
On Thu, Sep 12, 2013 at 8:49 PM, Alex Malyushytskyy <alexmalvtk at gmail.com>wrote:
> >> The grid cells are from vtkunstructured grid separate from the lines I
> was talking about.
> They are different sources. The grid cells have global Ids and I used to
> be able to pick using the vtkCellpicker just fine.
>
> vtkCellPicker works with dataset which has cell data, it knows nothing
> about sources.
> It does not make sense to have two, all you need is to be able to
> recognise from the number you get which object was picked.
>
>
> Polydata also has cell data
> polydata->GetCellData()->GetGlobalIds()->GetTuple1( 0 );
> so above line works for polydata too
>
> You can add ids to polydata before (from the top of my head in this case
> all polys you combine have to have it defined , otherwise information may
> be lost)
> or after appending.
>
> Alex
>
>
>
> On Thu, Sep 12, 2013 at 5:30 PM, Bhanu Hariharan <bhanu at petrotel.com>wrote:
>
>> Alex,
>>
>> The grid cells are from vtkunstructured grid separate from the lines I
>> was talking about.
>> They are different sources. The grid cells have global Ids and I used to
>> be able to pick using the vtkCellpicker just fine.
>> Now I want the lines added as vtkpolydata to be pickable too.
>>
>> I am still unclear if I can use same VTKCELLPicker (the one for grid
>> cells added using vtkgrid) for picking both cells and the lines.
>> I turned on the PickableOn for both actors.
>>
>> Regards,
>> Bhanu
>>
>>
>>
>>
>>
>> On Thu, Sep 12, 2013 at 5:29 PM, Alex Malyushytskyy <alexmalvtk at gmail.com
>> > wrote:
>>
>>> Bhanu,
>>>
>>> First of all we are talking about polydata (vtkPolyData) where your data
>>> is stored, not grid , not vtkLineSource.
>>> vtkLineSource is just a source which generates polydata cells which
>>> represent the line,
>>> but it does not matter how they were generated.
>>>
>>>
>>> You append polydata which represent the line to existing polydata.
>>>
>>> If you had first polydata with 10 triangles (cells) and second with 3
>>> lines (cells)
>>> result of appending will have 10 triangles followed by 2 lines.
>>>
>>> So it is relatively easy to find out where cell data which comes from
>>> second polydata begins (11th to 13 cells ).
>>> But you are free to use any approach you want to recognize objects.
>>>
>>> For example
>>> If you set global IDs to both polydata before appending, such arrays
>>> should be preserved(appended) and you can use the same approach
>>> If your source creates multiple cells as polydata output and you want to
>>> be able recognize all cells as a single object you might use custom arrays
>>> which would
>>> help you to find the relations.
>>> ( in above example set 1 to each cell from 1st polydata, 2 for second )
>>>
>>> Hope this helps,
>>> Alex
>>>
>>>
>>>
>>> On Thu, Sep 12, 2013 at 8:48 AM, Bhanu Hariharan <bhanu at petrotel.com>wrote:
>>>
>>>> Thanks Alex. It would be very helpful if you could please clarify a bit
>>>> more.
>>>>
>>>> My display already has a grid of cells and a vtkCellPicker to pick
>>>> cells in the grid. And I use Picker->GetCellId() to get the cell picked. I
>>>> map the cell id returned using Picker->GetCellId() to a global cell id
>>>> using something like
>>>>
>>>> pickerdataset->GetCellData()->GetGlobalIds()->GetTuple1(m_pidCellID);
>>>>
>>>>
>>>> In the same display I also have Multiple Lines added first to
>>>> vtkPolydata using
>>>>
>>>> do for each Line
>>>>
>>>> ids->InsertId( linenumber, someId);
>>>> Lines->InsertNextCell (ids);
>>>>
>>>> mypolydata->SetPoints(mypoints);
>>>> mypolydata->SetLines(Lines); //Lines is the vtkCellArray
>>>>
>>>> myAppendPolyData->AddInput (mypolydata);
>>>> end do
>>>>
>>>> mymapper ->SetInput( myAppendPolyData->GetOutput());
>>>>
>>>>
>>>> My question is
>>>> 1. Can I use the same vtkCellPicker to pick both grid cells and Lines
>>>> or should I declare 2 different vtkCellPickers
>>>> Picker1 and Picker 2 .
>>>>
>>>> 2. Will the Picker for Lines be used the same WAY as Picker for grid
>>>> cells.
>>>> That is Can I do Picker->GetCellIId to get the Line Number? And then
>>>> map to back to some Global Line ID?
>>>>
>>>>
>>>> Thanks for your patience and I look forward to your suggestion.
>>>>
>>>> Bhanu
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Sep 11, 2013 at 7:46 PM, Alex Malyushytskyy <
>>>> alexmalvtk at gmail.com> wrote:
>>>>
>>>>>
>>>>> vtkPropPicker works only with actors.
>>>>> vtkCellPicker will allow you to identify which cell was picked in
>>>>> polydata
>>>>>
>>>>> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Picking/CellPicking
>>>>>
>>>>>
>>>>> Alex
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Sep 11, 2013 at 9:50 AM, Bhanu Hariharan <bhanu at petrotel.com>wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>>
>>>>>> I was wondering if someone can help me on how to pick Lines added to
>>>>>> a vtkAppendPolyData.
>>>>>> before adding to Mapper and Actor.
>>>>>>
>>>>>> I saw some example where a linesource was added directly to Mapper
>>>>>> and Actor.
>>>>>>
>>>>>> But I have several lines and having an actor for each one will slow
>>>>>> things down considerably. So I use vtkAppendPolyData and add all line
>>>>>> sources to it. I then pass the vtkAppendPolyData thorugh a vtktransform and
>>>>>> vtktube filter before adding to mapper and actor.
>>>>>>
>>>>>> Can someone please tell me if its possible to use vtkPropPicker or
>>>>>> VtkPicker with vtkAppendPolyData.
>>>>>> Also once picked how can I tell which line was picked. Can I assign a
>>>>>> global Id to each line?
>>>>>>
>>>>>> Thanks,
>>>>>> Bhanu
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>> *DISCLAIMER*: This e-mail and any files transmitted with it
>>>>>> ("Message") is intended only for the use of the recipient(s) named above
>>>>>> and may contain confidential information. You are hereby notified that the
>>>>>> taking of any action in reliance upon, or any review, retransmission,
>>>>>> dissemination, distribution, printing or copying of this Message or any
>>>>>> part thereof by anyone other than the intended recipient(s) is strictly
>>>>>> prohibited. If you have received this Message in error, you should delete
>>>>>> this Message immediately and advise the sender by return e-mail. Opinions,
>>>>>> conclusions and other information in this Message that do not relate to the
>>>>>> official business of PETROTEL or its affiliated Companies shall be
>>>>>> understood as neither given nor endorsed by PETROTEL or any of its
>>>>>> affiliated companies.
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> ------------------------------
>>>> *DISCLAIMER*: This e-mail and any files transmitted with it
>>>> ("Message") is intended only for the use of the recipient(s) named above
>>>> and may contain confidential information. You are hereby notified that the
>>>> taking of any action in reliance upon, or any review, retransmission,
>>>> dissemination, distribution, printing or copying of this Message or any
>>>> part thereof by anyone other than the intended recipient(s) is strictly
>>>> prohibited. If you have received this Message in error, you should delete
>>>> this Message immediately and advise the sender by return e-mail. Opinions,
>>>> conclusions and other information in this Message that do not relate to the
>>>> official business of PETROTEL or its affiliated Companies shall be
>>>> understood as neither given nor endorsed by PETROTEL or any of its
>>>> affiliated companies.
>>>>
>>>
>>>
>>
>> ------------------------------
>> *DISCLAIMER*: This e-mail and any files transmitted with it ("Message")
>> is intended only for the use of the recipient(s) named above and may
>> contain confidential information. You are hereby notified that the taking
>> of any action in reliance upon, or any review, retransmission,
>> dissemination, distribution, printing or copying of this Message or any
>> part thereof by anyone other than the intended recipient(s) is strictly
>> prohibited. If you have received this Message in error, you should delete
>> this Message immediately and advise the sender by return e-mail. Opinions,
>> conclusions and other information in this Message that do not relate to the
>> official business of PETROTEL or its affiliated Companies shall be
>> understood as neither given nor endorsed by PETROTEL or any of its
>> affiliated companies.
>>
>
>
--
------------------------------
*DISCLAIMER*: This e-mail and any files transmitted with it ("Message") is
intended only for the use of the recipient(s) named above and may contain
confidential information. You are hereby notified that the taking of any
action in reliance upon, or any review, retransmission, dissemination,
distribution, printing or copying of this Message or any part thereof by
anyone other than the intended recipient(s) is strictly prohibited. If you
have received this Message in error, you should delete this Message
immediately and advise the sender by return e-mail. Opinions, conclusions
and other information in this Message that do not relate to the official
business of PETROTEL or its affiliated Companies shall be understood as
neither given nor endorsed by PETROTEL or any of its affiliated companies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130917/4b271504/attachment.htm>
More information about the vtkusers
mailing list