[vtkusers] vtkBoxWidget handle size bug or feature?

Sankhesh Jhaveri sankhesh.jhaveri at kitware.com
Fri Feb 9 11:01:00 EST 2018


Hi Berti,

That seems like a bug to me. Mind creating a merge request
<https://www.vtk.org/contributing-code/> for your fix?

Thanks,
Sankhesh
​

On Wed, Feb 7, 2018 at 1:55 AM Berti Krüger <berti_krueger at hotmail.com>
wrote:

> As i have seen by walking through the source code of vtkBoxWidget.cxx the
> method for resizing the handles vtkBoxWidget::SizeHandles() is first
> called in
> the constructor
>
> vtkBoxWidget::vtkBoxWidget()
> {
>   ...
>
>   // Define the point coordinates
>   double bounds[6];
>   bounds[0] = -0.5;
>   bounds[1] = 0.5;
>   bounds[2] = -0.5;
>   bounds[3] = 0.5;
>   bounds[4] = -0.5;
>   bounds[5] = 0.5;
>   // Points 8-14 are down by PositionHandles();
>   this->PlaceWidget(bounds);
>
>   ...
> }
>
>
> by the method
>
>
> void vtkBoxWidget::PlaceWidget(double bds[6])
> {
>   ...
>   this->SizeHandles();
>   ...
> }
>
>
>
> The method void vtkBoxWidget::SizeHandles() looks like this:
>
> void vtkBoxWidget::SizeHandles()
> {
>   double radius = this->vtk3DWidget::SizeHandles(1.5);
>   for(int i=0; i<7; i++)
>   {
>     this->HandleGeometry[i]->SetRadius(radius);
>   }
> }
>
>
> And it is also called in void vtkBoxWidget::OnLeftButtonUp(), void
> vtkBoxWidget::OnMiddleButtonUp() and in void
> vtkBoxWidget::OnRightButtonUp().
>
>
> So if you click on the widget the line
>
> double radius = this->vtk3DWidget::SizeHandles(1.5);
>
> is executed a second time after its execution in the constructor which
> results
> in resizing of the spheres (factor 1.5 again).
>
>
> Anyway. I have now subclassed vtkBoxWidget and have overwritten the
> SizeHandles() method and it works now how i need it in my project.
>
>
> Thanks again to the vtk developers for making vtk opensource.
>
>
> Berti Krüger
>
>
> PS: If anyone can help me with some enlightenment regarding the default
> behaviour of vtkBoxWidget i would still be glad (e.g. bug or feature?).
>
>
>
> Am Wed, 7 Feb 2018 06:21:55 +0000
> schrieb Berti Krüger <berti_krueger at hotmail.com>:
>
> > It seems i am not the only one who doesn't understand the logic behind
> the
> > sizing of the vtkBoxWidget handles:
> >
> >
> http://massmail.spl.harvard.edu/public-archives/slicer-devel/2011/006000.html
> >
> > "Hello,
> >
> > I am using a vtkBoxWidget, and it seems the size of the handles depends
> on
> > the ValidPick (to know if handle has been picked or not) (and on the
> > renderer to. We have to set a current renderer before calling
> PlaceWidget.)
> >
> > So, when I am creating the box, ValidPick is 0 because handles have not
> been
> > picked yet.
> > The size of the handles is calculate with:
> >
> > return (this->HandleSize * factor * this->InitialLength);
> >
> >
> > But, when we resize the box, ValidPick change to 1 (on
> > OnLeftButtonDown() (same for middle and right button) ), and the size
> > is now calculated like this:
> >
> > return (this->HandleSize * factor *  sqrt(radius) );
> >
> >
> > InitialLength has been replaced by sqrt(radius) (defined on
> > vtk3DWidget::SizeHandles)
> >
> > But sqrt(radius) is different from InitalLength.
> >
> > So, when we create a vtkBoxWidget, handles are small, and when we resize
> it,
> > handles are bigger.
> >
> >
> > Is this normal, or it's a bug ?
> >
> > Thank you.
> > Laurent."
> >
> >
> >
> > Am Mon, 5 Feb 2018 10:00:16 +0000
> > schrieb Berti Krüger <berti_krueger at hotmail.com>:
> >
> > > Hello Everyone!
> > >
> > > I am currently using a vtkBoxWidget in my project (VTK 8.1). After i
> > > created the vtkBoxWidget, the size handles (= vtkSphereActors) have
> not been
> > > picked yet and are small and nice.
> > >
> > > But, when I resize the vtkBoxWidget (smaller or larger, it doesn't
> matter)
> > > or simply click on it, the handles get bigger (radius increases) and
> stay
> > > this way.
> > >
> > > They sometimes tend to get so large that they are piercing the mesh and
> > > visually adding themselves to it, which is annoying. And they never get
> > > smaller again, sometimes they get even larger.
> > >
> > > When i zoom out by large amount and then zoom in again, the handles get
> > > normal ( = small) again.
> > >
> > > Is this the intented behaviour, and if so, what is the purpose of it
> or is
> > > it a bug ?
> > >
> > >
> > > Thank you very much in advance.
> > >
> > >
> > > Berti Krüger
> > >
> > > _______________________________________________
> > > 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
> > >
> > > Search the list archives at: http://markmail.org/search/?q=vtkusers
> > >
> > > Follow this link to subscribe/unsubscribe:
> > > https://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
> >
> > Search the list archives at: http://markmail.org/search/?q=vtkusers
> >
> > Follow this link to subscribe/unsubscribe:
> > https://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
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> https://vtk.org/mailman/listinfo/vtkusers
>
-- 
Sankhesh Jhaveri *Sr. Research & Development Engineer* | Kitware
<http://www.kitware.com/> | (518) 881-4417
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://vtk.org/pipermail/vtkusers/attachments/20180209/cff34aae/attachment.html>


More information about the vtkusers mailing list