Hi,<div><br></div><div>  I fixed the warnings and pushed them to gerrit.  <a href="http://review.source.kitware.com/#q,status:open+project:VTK+branch:master+topic:CellTreeLocator,n,z">http://review.source.kitware.com/#q,status:open+project:VTK+branch:master+topic:CellTreeLocator,n,z</a></div>
<div><br></div><div>  The example works fine on my machine.  I will try to go through the code and fix that.  I will let you know when I fixed it.</div><div><br></div><div>Thanks,</div><div><br></div><div>Tharindu<br><br>
<div class="gmail_quote">On Fri, Jul 29, 2011 at 8:22 AM, Biddiscombe, John A. <span dir="ltr"><<a href="mailto:biddisco@cscs.ch">biddisco@cscs.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
It's very sad that we can't use the "using" syntax thanks to the borland and other old compilers, but that's life. (I've patched my version (patch attached), but can't push to Gerrit as I'm using the vtk branch from paraview, not the vtk one from vtk <sigh>)<br>

<br>
The crash is reproducible on my system too. I must confess I didn't try the test before as I was more interested in findcell stuff and querying cells inside regions etc at the mo.<br>
<br>
Stepping through the code I can see that a condition is being missed in the split part of the algorithm, but I'm not quite sure yet how to fix it or why it is occurring.<br>
<br>
It is worth noting that the CellTreeLocator should come with a very large health warning : This class will not work on all datasets. It will only work when a true disjoint partitioning is available. They don't mention that much in the paper (or I didn't pick up on it). One reason for the extra node in the ModifiedBSPTree is to handle cells which can't be partitioned into either side.<br>

<br>
Consider a chess board - imagine 64 quad cells in the dataset. No problem. Now add one more cell which is the whole board (ie the hull of the 64 mini quads). This will break the CellTreeLocator - cells which overlap other cells can't (always) be partitioned nicely. For most datasets this isn't going to be a problem as most datasets are well behaved, but when I worked on lidar data and triangulating buildings from it many years ago, I often found long skinny triangles which could not be binned in either half and the extra node solved it nicely.<br>

<br>
Anyway, it occurs to me that the test uses 2D polygons (tessellated sphere) in 3D space and it may be the bounds check is flawed for this case in the split algorithm and needs to be improved. One 2D cell might be axis aligned and cause a file somewhere ...<br>

<br>
When I get time I'll look into it, but if anyone else fixes it first please tell me so that I can not waste any time on it.<br>
<br>
JB<br>
<div><div></div><div class="h5"><br>
<br>
-----Original Message-----<br>
From: <a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a> [mailto:<a href="mailto:vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a>] On Behalf Of David Gobbi<br>
Sent: 29 July 2011 02:36<br>
To: David Doria<br>
Cc: VTK Developers; Andy Bauer<br>
Subject: Re: [vtk-developers] Cell Tree Locator Update<br>
<br>
On Thu, Jul 28, 2011 at 6:11 PM, David Doria <<a href="mailto:daviddoria@gmail.com">daviddoria@gmail.com</a>> wrote:<br>
><br>
>> /home/acbauer/CODE/VTK/VTK/Filtering/vtkAbstractCellLocator.h:107: warning:<br>
>> `virtual int vtkAbstractCellLocator::IntersectWithLine(double*, do<br>
>> uble*, double, double&, double*, double*, int&, vtkIdType&)' was hidden<br>
><br>
> I think these "function was hidden" are fixed by saying "using<br>
> functionName;" in the subclass, as I've done here:<br>
> <a href="http://review.source.kitware.com/#patch,sidebyside,1862,1,Filtering/vtkKdTreePointLocator.h" target="_blank">http://review.source.kitware.com/#patch,sidebyside,1862,1,Filtering/vtkKdTreePointLocator.h</a><br>

><br>
> If there is a better way to fix them, I'd like to know about it.<br>
<br>
That trick will not work on Visual Studio 7.1, which is still a<br>
supported compiler for VTK.  It also breaks the wrappers.<br>
<br>
If a VTK class overrides one version of IntersectWithLine, then it<br>
should override all of them.  If need be, you can just define all the<br>
unneeded ones as inline methods that calls the superclass methods.<br>
<br>
 - David<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
<br>
</div></div><br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers" target="_blank">http://www.vtk.org/mailman/listinfo/vtk-developers</a><br>
<br>
<br></blockquote></div><br></div>