[vtkusers] [vtk-developers] connection vtkQtTree - vtkGraphLayoutView
Nicolas Rannou
nicolas_rannou at hms.harvard.edu
Wed Mar 16 13:51:32 EDT 2011
Thanks both!
Jeff,
Please find enclosed a patch which allows the user to select only the
vertex in the graph.
We should just call:
vtkGraphLayoutView::SetEdgeSelection(bool);
Nicolas
On 03/15/2011 09:05 PM, Jeff Baumes wrote:
> Sure enough, vtkQtTreeView::Update() was calling
> SetShowRootNode(false). If you put Update() before
> SetShowRootNode(true) in your code it should work. I also just pushed
> a fix to master that resolves this so the order should no longer matter.
>
> Jeff
>
> On Tue, Mar 15, 2011 at 7:29 PM, Nicolas Rannou
> <Nicolas_Rannou at hms.harvard.edu
> <mailto:Nicolas_Rannou at hms.harvard.edu>> wrote:
>
> Hi Julien,
>
> I tried:
>
> this->m_treeTableView->AddRepresentationFromInput(tree);
> this->m_treeTableView->SetShowRootNode(true);
> this->m_treeTableView->Update();
>
> but the root node is not visible in the vtkQtTreeView...
>
> Nicolas
>
> On Mar 15, 2011, at 6:31 PM, Julien Finet wrote:
>
>> Did you try vtkQtTreeView::SetShowRootNode(true) ?
>> Julien.
>>
>> On Tue, Mar 15, 2011 at 6:28 PM, Nicolas Rannou
>> <nicolas_rannou at hms.harvard.edu
>> <mailto:nicolas_rannou at hms.harvard.edu>> wrote:
>>
>> Hi Jeff,
>>
>> another thing we noticed is that the root vertex is not shown
>> in the vtkQtTreeView. Is there any reason for that or is it a
>> bug?
>>
>> If "A" is the tree root vertex:
>>
>> vtkGraphLayoutView:
>>
>> A--->B--->C--->D
>> | |
>> | ->E
>> ->F
>>
>> vtkQtTreeView:
>>
>> B--->C--->D
>> |
>> ->E
>> F
>>
>> Thanks,
>>
>>
>> Nicolas
>>
>>
>> On 03/14/2011 02:36 PM, Nicolas Rannou wrote:
>>> Thanks for the feedback Jeff,
>>>
>>> I added it in the bug tracker.
>>> (http://public.kitware.com/Bug/view.php?id=11969)
>>>
>>> I'll submit a patch for the vtkGraphLayoutView in the next days.
>>>
>>> Thanks,
>>>
>>> Nicolas
>>>
>>> On 03/14/2011 01:12 PM, Jeff Baumes wrote:
>>>> Glancing at your message again, it appears you are also
>>>> finding a bug in vtkQtTreeView where it interprets edge ids
>>>> as vertex ids. If you could add that to the VTK bug
>>>> tracker, I could hopefully take a look at it sometime soon.
>>>> Getting rid of edge selections in the graph layout view as
>>>> I suggested would work around this problem.
>>>>
>>>> On Mon, Mar 14, 2011 at 1:07 PM, Jeff Baumes
>>>> <jeff.baumes at kitware.com <mailto:jeff.baumes at kitware.com>>
>>>> wrote:
>>>>
>>>> I do not know of a simple way to make this difference
>>>> in selections go away. The vtkGraphLayoutView generates
>>>> vertex + edge selections, and vtkQtTreeView generates
>>>> vertex-only selections. I believe the best solution is
>>>> to have vtkGraphLayoutView have an option to not select
>>>> edges, as you suggested. If you are interested in
>>>> adding that option, you can patch
>>>> vtkGraphLayoutView.cxx to add some checks in
>>>> ConvertSelection() based on a new boolean member
>>>> variable and submit it to us for inclusion in VTK, or
>>>> you could subclass vtkGraphLayoutView and reimplement
>>>> ConvertSelection() if you want to just get it working
>>>> for your own application.
>>>>
>>>> Jeff
>>>>
>>>> On Fri, Mar 11, 2011 at 4:41 PM, Nicolas Rannou
>>>> <nicolas_rannou at hms.harvard.edu
>>>> <mailto:nicolas_rannou at hms.harvard.edu>> wrote:
>>>>
>>>> Hi all,
>>>>
>>>> I'm trying to connect a vtkQtTree and a
>>>> vtkGraphLayout but the selection is not working as
>>>> expected.
>>>>
>>>> When I select something in the vtkGraphLayout, the
>>>> selection can contain vertices and edges.
>>>> When I select something in the vtkQtTree, the
>>>> selection only contains vertices.
>>>>
>>>> If I select edges + vertices in the vtkGraphLayout,
>>>> i.e. vertices: 1 and 4, edge:3, it highlights
>>>> _vertices_ 1,3,4 in the vtkQtTree...
>>>>
>>>> Then I have 3 questions/issues:
>>>> (see pseudo-code at the end of the email)
>>>>
>>>> #1: should I modify the structure of my vtkTree
>>>> (Add specific arrays for vertices/edges?) so the
>>>> vtkQtTree handles properly selection of edges+vertices?
>>>>
>>>> #2: can I get my vtkQtTree to return the edges? Or
>>>> should I find the edges after it returns the
>>>> vertices (is there an efficient way to do it?)?
>>>>
>>>> #3: is there a straight forward way to disable
>>>> edges selection in the vtkGraphLayoutView?
>>>> (Something like: EdgesNotSelectable()?)
>>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> Nicolas
>>>>
>>>>
>>>> // What I do
>>>>
>>>> I first create a graph and add some arrays
>>>> associated to the _vertices_.
>>>> vtkSmartPointer<vtkMutableDirectedGraph> graph =
>>>> vtkSmartPointer<vtkMutableDirectedGraph>::New();
>>>> vtkIdType a = graph->AddVertex();
>>>> vtkIdType b = graph->AddChild(a);
>>>> vtkIdType c = graph->AddChild(a);
>>>>
>>>> vtkSmartPointer<vtkStringArray> cellType =
>>>> vtkSmartPointer<vtkStringArray>::New();
>>>> cellType->SetName("name");
>>>> cellType->InsertValue(a, "TypeA");
>>>> cellType->InsertValue(b, "TypeB");
>>>> cellType->InsertValue(c, "TypeC");
>>>>
>>>> graph->GetVertexData()->AddArray(cellType);
>>>> ...
>>>>
>>>> I convert the graph to a vtkTree and add this
>>>> representation to the vtkQtTree and to the
>>>> vtkGraphLayout.
>>>>
>>>> I connect the views through vtkAnnotations and
>>>> vtkEventQtSlotConnect.
>>>> this->m_annotationLink =
>>>> vtkSmartPointer<vtkAnnotationLink>::New();
>>>>
>>>> this->m_treeGraphView->GetRepresentation()->SetAnnotationLink(this->m_annotationLink);
>>>>
>>>> this->m_treeTableView->GetRepresentation()->SetAnnotationLink(this->m_annotationLink);
>>>>
>>>> this->m_connect =
>>>> vtkSmartPointer<vtkEventQtSlotConnect>::New();
>>>>
>>>> this->m_connect->Connect(this->m_treeTableView->GetRepresentation(),
>>>> vtkCommand::SelectionChangedEvent,
>>>> this, SLOT(selectionChanged(vtkObject*,
>>>> unsigned long, void*, void*)));
>>>>
>>>> this->m_connect->Connect(this->m_treeGraphView->GetRepresentation(),
>>>> vtkCommand::SelectionChangedEvent,
>>>> this, SLOT(selectionChanged(vtkObject*,
>>>> unsigned long, void*, void*)));
>>>>
>>>> selectionChanged() only call update on the 2 views
>>>>
>>>> _______________________________________________
>>>> Powered by www.kitware.com <http://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
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Jeff Baumes, Ph.D.
>>>> Technical Lead, Kitware Inc.
>>>> (518) 881-4932
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Jeff Baumes, Ph.D.
>>>> Technical Lead, Kitware Inc.
>>>> (518) 881-4932
>>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com <http://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
>>
>>
>>
>
>
>
>
> --
> Jeff Baumes, Ph.D.
> Technical Lead, Kitware Inc.
> (518) 881-4932
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110316/d06719e7/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-PATCH-Disable-edge-selection-from-vtkGraphLayoutView.patch
Type: text/x-patch
Size: 7901 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110316/d06719e7/attachment.bin>
More information about the vtkusers
mailing list