[vtkusers] Error compiling vtkInfovisParallel / vtkPBGLBreadtFirstSearch.cxx (VTK 6.1.0)

Jeff Baumes jeff.baumes at kitware.com
Mon Jun 23 11:05:15 EDT 2014


The fix is on gerrit here for review:

http://review.source.kitware.com/#/t/4325/

Jeff


On Sun, Jun 22, 2014 at 6:45 PM, Martijn Steenwijk <
martijnsteenwijk at gmail.com> wrote:

> Hi Jeff,
>
> Sorry for the late response. You can drop the error about the nan's. It
> was another error in my code. So fixing the first issue would be enough.
>
> Best,
> Martijn
>
>
> On Tue, Jun 17, 2014 at 3:42 PM, Jeff Baumes <jeff.baumes at kitware.com>
> wrote:
>
>> I did a Windows build where I was able to replicate the first issue
>> (subscript out of range), but not the second issue. Here are some details
>> on my setup:
>>
>> Visual Studio 2010 64-bit
>> Boost 1.55.0
>> VTK master
>> Windows 7
>>
>> When I turn on testing and run the following:
>>
>> C:\code\VTK-build>"C:\Program Files (x86)\CMake 2.8\bin\ctest.exe" -R
>> Divided -V -C Debug
>>
>> the bundling completes successfully and matches the test image. Can you
>> reproduce your error running the test?
>>
>> Jeff
>>
>>
>> On Mon, Jun 16, 2014 at 10:53 AM, Martijn Steenwijk <
>> martijnsteenwijk at gmail.com> wrote:
>>
>>> I tried the previous conversion-example in my own code (after updating
>>> the edgebundling filter); that's why it gave the same values as the output
>>> of the edgebundling filter. Stupid, sorry.
>>>
>>>
>>> BUT; (completely separately from the edgebundlingfilter) conversion from
>>> vtkData to
>>>  vtkVector3f *nodes = reinterpret_cast<vtkVector3f*>(
>>>
>>> vtkFloatArray::SafeDownCast(g->GetPoints()->GetData())->GetPointer(0));
>>> gives zeros for all elements (the IND stuff might result from division
>>> somewhere?)
>>>
>>> whereas
>>> vtkVector3d *nodes = reinterpret_cast<vtkVector3d*>(
>>>
>>> vtkDoubleArray::SafeDownCast(graph->GetPoints()->GetData())->GetPointer(0));
>>> gives Access violation reading location 0x000000e0.
>>>
>>> So I think this should be done differently I think...
>>>
>>> Thanks again for your help.
>>>
>>> Best,
>>> Martijn
>>>
>>>
>>> On Mon, Jun 16, 2014 at 4:41 PM, Jeff Baumes <jeff.baumes at kitware.com>
>>> wrote:
>>>
>>>> On second thought this will not work when converting to vtkVector3f,
>>>> you would need to use vtkVector3d everywhere ...
>>>>
>>>> Jeff
>>>>
>>>>
>>>> On Mon, Jun 16, 2014 at 10:39 AM, Jeff Baumes <jeff.baumes at kitware.com>
>>>> wrote:
>>>>
>>>>> See if it works if you change vtkFloatArray to vtkDoubleArray. May be
>>>>> another issue of not testing all cases/systems.
>>>>>
>>>>> Jeff
>>>>>
>>>>>
>>>>> On Mon, Jun 16, 2014 at 10:37 AM, Martijn Steenwijk <
>>>>> martijnsteenwijk at gmail.com> wrote:
>>>>>
>>>>>> Hi Jeff,
>>>>>>
>>>>>> It does run, but does not give proper output. I tried to figure out
>>>>>> what's going wrong. The filter returns 8 vertices and 11 edges, however the
>>>>>> points have values
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>> -1.#IND -1.#IND -1.#IND
>>>>>>
>>>>>> I've the feeling th at it already goes wrong at the import of the
>>>>>> points; i.e.
>>>>>>   vtkVector3f *nodes = reinterpret_cast<vtkVector3f*>(
>>>>>>
>>>>>> vtkFloatArray::SafeDownCast(g->GetPoints()->GetData())->GetPointer(0));
>>>>>>
>>>>>> std::cout << nodes[0][0] << std::cendl;
>>>>>>
>>>>>> gives already  -1.#IND
>>>>>>
>>>>>> Best,
>>>>>> Martijn
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jun 16, 2014 at 1:32 PM, Jeff Baumes <jeff.baumes at kitware.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Looks to me like you caught a bug. This does indeed sometimes go off
>>>>>>> the end of the array, but the potential junk data it gets is always
>>>>>>> multiplied with an alpha value of 0, so the algorithm still functions
>>>>>>> properly. It seems this code may not currently be tested in an environment
>>>>>>> with runtime bounds-checking exceptions. Modifiying the loop with an
>>>>>>> additional check may resolve the problem (though on my Mac I am not getting
>>>>>>> the runtime error even though it was going past the end of the array):
>>>>>>>
>>>>>>>   for (vtkIdType e = 0; e < numEdges; ++e)
>>>>>>>     {
>>>>>>>     for (int m = 0; m < newMeshCount; ++m)
>>>>>>>       {
>>>>>>>       float indexFloat = (this->MeshCount - 1.0f)*m/(newMeshCount -
>>>>>>> 1.0f);
>>>>>>>       int index = static_cast<int>(indexFloat);
>>>>>>>       float alpha = indexFloat - index;
>>>>>>>       vtkVector3f before = this->EdgeMesh[e][index];
>>>>>>>       if (alpha > 0)
>>>>>>>         {
>>>>>>>         vtkVector3f after = this->EdgeMesh[e][index+1];
>>>>>>>         newEdgeMesh[e][m] = before + alpha*(after - before);
>>>>>>>         }
>>>>>>>       else
>>>>>>>         {
>>>>>>>         newEdgeMesh[e][m] = before;
>>>>>>>         }
>>>>>>>       }
>>>>>>>     }
>>>>>>>
>>>>>>> Let me know if this works for you and we can get a fix into VTK.
>>>>>>>
>>>>>>> Jeff
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jun 16, 2014 at 6:00 AM, Martijn Steenwijk <
>>>>>>> martijnsteenwijk at gmail.com> wrote:
>>>>>>>
>>>>>>>> To add on that. It seems that LayoutEdgePoints() is in its first
>>>>>>>> iteration (so i is 0 at line 530) - this is right after
>>>>>>>> initializeedgemesh().
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Martijn
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jun 16, 2014 at 11:52 AM, Martijn Steenwijk <
>>>>>>>> martijnsteenwijk at gmail.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hi Jeff,
>>>>>>>>>
>>>>>>>>> You're right. At first glance I thought that too, but then got a
>>>>>>>>> linker error message which was (after second reading) not related to VTK.
>>>>>>>>> Sorry, I should have looked better.
>>>>>>>>>
>>>>>>>>> Now it does compile, but I'm getting another error on calling
>>>>>>>>> Update() of vtkBoostDividedEdgeBundling: I use the same graph as in the
>>>>>>>>> TestBoostDividedEdgeBundling:
>>>>>>>>>
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(20, 40, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(20, 80, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(20, 120, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(20, 160, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(380, 40, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(380, 80, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(380, 120, 0);
>>>>>>>>>   graph->AddVertex();
>>>>>>>>>   points->InsertNextPoint(380, 160, 0);
>>>>>>>>>   graph->SetPoints(points.GetPointer());
>>>>>>>>>
>>>>>>>>>   graph->AddEdge(0, 4);
>>>>>>>>>   graph->AddEdge(0, 5);
>>>>>>>>>   graph->AddEdge(1, 4);
>>>>>>>>>   graph->AddEdge(1, 5);
>>>>>>>>>   graph->AddEdge(2, 6);
>>>>>>>>>   graph->AddEdge(2, 7);
>>>>>>>>>   graph->AddEdge(3, 6);
>>>>>>>>>   graph->AddEdge(3, 7);
>>>>>>>>>
>>>>>>>>>   graph->AddEdge(4, 0);
>>>>>>>>>   graph->AddEdge(5, 0);
>>>>>>>>>   graph->AddEdge(6, 0);
>>>>>>>>>
>>>>>>>>> Then a "vector subscript out of range" is thrown at line 368 of
>>>>>>>>> vtkBoostDividedEdgeBundling.cxx (see image):
>>>>>>>>> [image: Inline image 2]
>>>>>>>>>
>>>>>>>>> it tries to get this->EdgeMesh[e][index+1] where e=0 and index=1
>>>>>>>>> (so  element [0][2] is requested), but this->EdgeMesh[e] has length 2.
>>>>>>>>>
>>>>>>>>> Any thoughts how this can be solved?
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Martijn
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jun 16, 2014 at 3:49 AM, Jeff Baumes <
>>>>>>>>> jeff.baumes at kitware.com> wrote:
>>>>>>>>>
>>>>>>>>>> You should not need to turn on the vtkInfovisParallel module to
>>>>>>>>>> compile vtkBoostDividedEdgeBundling. You should be able to just turn
>>>>>>>>>> vtkInfovisBoostGraphAlgorithms on.
>>>>>>>>>>
>>>>>>>>>> Jeff
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, Jun 14, 2014 at 4:38 AM, Martijn Steenwijk <
>>>>>>>>>> martijnsteenwijk at gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi David,
>>>>>>>>>>>
>>>>>>>>>>> Thanks for your response. I'm building this module because I
>>>>>>>>>>> would like to use vtkBoostDevidedEdgeBundling which seems to rely on this
>>>>>>>>>>> module (i.e. If I do not compile the module I get a linker error). Or am I
>>>>>>>>>>> doing something wrong?
>>>>>>>>>>>
>>>>>>>>>>> Is there any quick fix for this?
>>>>>>>>>>>
>>>>>>>>>>> Thanks for your response,
>>>>>>>>>>> Martijn
>>>>>>>>>>>
>>>>>>>>>>> Verstuurd vanaf mijn iPhone
>>>>>>>>>>>
>>>>>>>>>>> Op 14 jun. 2014 om 00:55 heeft David E DeMarle <
>>>>>>>>>>> dave.demarle at kitware.com> het volgende geschreven:
>>>>>>>>>>>
>>>>>>>>>>> I had that compiling with boost 1.48 on one of the dashboard
>>>>>>>>>>> machines a while back.
>>>>>>>>>>>
>>>>>>>>>>> The module itself hasn't been maintained in a long while and
>>>>>>>>>>> thus I marked it as deprecated in master a few months back. If there is
>>>>>>>>>>> interest in it from the community and someone brings it up to date with
>>>>>>>>>>> current boost and supply tests for the module, I can undeprecate it before
>>>>>>>>>>> 6.2.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> David E DeMarle
>>>>>>>>>>> Kitware, Inc.
>>>>>>>>>>> R&D Engineer
>>>>>>>>>>> 21 Corporate Drive
>>>>>>>>>>> Clifton Park, NY 12065-8662
>>>>>>>>>>> Phone: 518-881-4909
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Jun 13, 2014 at 5:51 PM, Martijn Steenwijk <
>>>>>>>>>>> martijnsteenwijk at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>> I'm trying to compile VTK 6.1.0 on Windows (MSVC 2010) with
>>>>>>>>>>>> Boost 1.55.0 and openmpi 1.6.2. I'm getting an error while compiling
>>>>>>>>>>>> vtkInfovisParallel / vtkPBGLBreadtFirstSearch.cxx. as listed below. It
>>>>>>>>>>>> seems that Boost misses some properties. Could this be related to the Boost
>>>>>>>>>>>> version (if so, what could be used best?)
>>>>>>>>>>>>
>>>>>>>>>>>> Any help would be appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> Best,
>>>>>>>>>>>> Martijn
>>>>>>>>>>>>
>>>>>>>>>>>> D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2039: 'ref' : is not a member of
>>>>>>>>>>>> 'boost::detail::error_property_not_found'
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/pending/detail/property.hpp(16) : see
>>>>>>>>>>>> declaration of 'boost::detail::error_property_not_found'
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  ..\..\..\Infovis\Parallel\vtkPBGLBreadthFirstSearch.cxx(365) : see
>>>>>>>>>>>> reference to function template instantiation 'void
>>>>>>>>>>>> boost::detail::parallel_bfs_helper<vtkDirectedGraph*,DistributedColorMap,pbgl_bfs_distance_recorder<DistanceMap>,boost::detail::error_property_not_found,boost::vtkGraphIndexMap>(DistributedGraph
>>>>>>>>>>>> &,boost::graph_traits<vtkGraph*>::vertex_descriptor,ColorMap,BFSVisitor,BufferRef,VertexIndexMap)'
>>>>>>>>>>>> being compiled
>>>>>>>>>>>> 94>          with
>>>>>>>>>>>> 94>          [
>>>>>>>>>>>> 94>              DistanceMap=DistributedDistanceMap,
>>>>>>>>>>>> 94>              DistributedGraph=vtkDirectedGraph *,
>>>>>>>>>>>> 94>              ColorMap=DistributedColorMap,
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  BFSVisitor=pbgl_bfs_distance_recorder<DistributedDistanceMap>,
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  BufferRef=boost::detail::error_property_not_found,
>>>>>>>>>>>> 94>              VertexIndexMap=boost::vtkGraphIndexMap
>>>>>>>>>>>> 94>          ]
>>>>>>>>>>>> 94>D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2780: 'void boost::breadth_first_search(const VertexListGraph
>>>>>>>>>>>> &,graph_traits<G>::vertex_descriptor,const
>>>>>>>>>>>> boost::bgl_named_params<T,Tag,Base> &)' : expects 3 arguments - 5 provided
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/graph/breadth_first_search.hpp(334) : see
>>>>>>>>>>>> declaration of 'boost::breadth_first_search'
>>>>>>>>>>>> 94>D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2780: 'void boost::breadth_first_search(const VertexListGraph
>>>>>>>>>>>> &,SourceIterator,SourceIterator,Buffer &,BFSVisitor,ColorMap)' : expects 6
>>>>>>>>>>>> arguments - 5 provided
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/graph/breadth_first_search.hpp(112) : see
>>>>>>>>>>>> declaration of 'boost::breadth_first_search'
>>>>>>>>>>>> 94>D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2039: 'ref' : is not a member of
>>>>>>>>>>>> 'boost::detail::error_property_not_found'
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/pending/detail/property.hpp(16) : see
>>>>>>>>>>>> declaration of 'boost::detail::error_property_not_found'
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  ..\..\..\Infovis\Parallel\vtkPBGLBreadthFirstSearch.cxx(373) : see
>>>>>>>>>>>> reference to function template instantiation 'void
>>>>>>>>>>>> boost::detail::parallel_bfs_helper<vtkUndirectedGraph*,DistributedColorMap,pbgl_bfs_distance_recorder<DistanceMap>,boost::detail::error_property_not_found,boost::vtkGraphIndexMap>(DistributedGraph
>>>>>>>>>>>> &,boost::graph_traits<vtkGraph*>::vertex_descriptor,ColorMap,BFSVisitor,BufferRef,VertexIndexMap)'
>>>>>>>>>>>> being compiled
>>>>>>>>>>>> 94>          with
>>>>>>>>>>>> 94>          [
>>>>>>>>>>>> 94>              DistanceMap=DistributedDistanceMap,
>>>>>>>>>>>> 94>              DistributedGraph=vtkUndirectedGraph *,
>>>>>>>>>>>> 94>              ColorMap=DistributedColorMap,
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  BFSVisitor=pbgl_bfs_distance_recorder<DistributedDistanceMap>,
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  BufferRef=boost::detail::error_property_not_found,
>>>>>>>>>>>> 94>              VertexIndexMap=boost::vtkGraphIndexMap
>>>>>>>>>>>> 94>          ]
>>>>>>>>>>>> 94>D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2780: 'void boost::breadth_first_search(const VertexListGraph
>>>>>>>>>>>> &,graph_traits<G>::vertex_descriptor,const
>>>>>>>>>>>> boost::bgl_named_params<T,Tag,Base> &)' : expects 3 arguments - 5 provided
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/graph/breadth_first_search.hpp(334) : see
>>>>>>>>>>>> declaration of 'boost::breadth_first_search'
>>>>>>>>>>>> 94>D:\libs\boost_1_55_0\boost/graph/distributed/breadth_first_search.hpp(111):
>>>>>>>>>>>> error C2780: 'void boost::breadth_first_search(const VertexListGraph
>>>>>>>>>>>> &,SourceIterator,SourceIterator,Buffer &,BFSVisitor,ColorMap)' : expects 6
>>>>>>>>>>>> arguments - 5 provided
>>>>>>>>>>>> 94>
>>>>>>>>>>>>  D:\libs\boost_1_55_0\boost/graph/breadth_first_search.hpp(112) : see
>>>>>>>>>>>> declaration of 'boost::breadth_first_search'
>>>>>>>>>>>> 108>------ Build started: Project: ALL_BUILD, Configuration:
>>>>>>>>>>>> Debug Win32 ------
>>>>>>>>>>>> 108>  Build all projects
>>>>>>>>>>>> ========== Build: 105 succeeded, 3 failed, 24 up-to-date, 0
>>>>>>>>>>>> skipped ==========
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> 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://public.kitware.com/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://public.kitware.com/mailman/listinfo/vtkusers
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20140623/39d53dec/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 157129 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20140623/39d53dec/attachment-0001.png>


More information about the vtkusers mailing list