[vtkusers] get the center of the vtkboxwidget

Jim Peterson jimcp at cox.net
Tue Aug 24 14:11:28 EDT 2010


Eric, Ali and all,

Fwiw, it was my misinterpretation of Ali's original source code that 
pointed us at Java. I believe Ali is actually using a .net wrapper and 
therefore a Windows host platform. The Addobserver and callback 
signatures in his example code do not match the corresponding Java 
versions, and I do not have a .net environment to test directly in. In 
order to make a Java version for testing, I had to wrap Ali's original 
logic in a class, and I had to make the callbacks instance functions 
instead of class functions (static) as originally coded. I don't believe 
these changes should have affected my results, but they are all factors 
for potential differences.

I am learning VTK as we go as well, but I suspect we will need to make 
use of the picker callbacks as opposed to the Interaction callbacks to 
address the selected boxWidget. If my exploration uncovers anything I 
will post my results.

Ali, exactly what version of VTK are you using? I have been testing with 
the 5.6.0 version myself, and my understanding is the Java wrappers 
where significantly modified. I wonder if there is any corresponding 
change required for the .NET wrapper (wherever that comes from).

Hope that helps,
Jim

Eric E. Monson wrote:
> Hey Ali,
>
> That's strange. I don't have a Java wrappers build right now, but I tried modifying the Examples/Tutorial/Step6/.../Cone6 example for both Python and Cxx and both of them give me back modified bounds as I move the box widget... They both use InteractionEvent, and if I print the bounds in the callback I see the numbers changing as I move the box...
>
> I was going to suggest trying to add your GetPolyData and GetBounds calls to the event callback in Step6.java, but I see that doesn't exist!
>
> So, I don't want to get too off-topic with Ali's problem, but does anyone know why there isn't a Step6.java? I don't use the Java wrappers much -- are there any special issues with the BoxWidget and Java?
>
> Hopefully someone else can be more help,
> -Eric
>
> ------------------------------------------------------
> Eric E Monson
> Duke Visualization Technology Group
>
>
> On Aug 24, 2010, at 2:44 AM, Ali Habib wrote:
>
>   
>> Hi All,
>>  
>> I want to get the center fo the vtkbox widget at the beginning of moving it and at the end of moving it
>>  
>> I tried adding two observers one at interaction event and the second at the Endinteraction event , but unfortunatly the center result from both of thoses are the same
>>  
>> any suggestion to solve that
>>  
>>  public static void InteractionEvent(vtk.vtkObject obj, uint eventId, Object data, IntPtr clientdata)
>>         {
>>             vtkBoxWidget widget = vtkBoxWidget.SafeDownCast(obj);
>>             widget.GetPlanes(planes);
>>             selectActor.VisibilityOn();
>>  
>>
>>             vtkPolyData before = new vtkPolyData();
>>             widget.GetPolyData(before);
>>             center_Before = GetBoundsCenter(before.GetBounds());
>>
>>             //maceActor.VisibilityOff();
>>             ///////////// Test writting /////////////////////////////////////////////
>>             //Write the file
>>
>>             /*vtkXMLPolyDataWriter writer = new vtkXMLPolyDataWriter ();
>>             writer.SetInputConnection(clipper.GetOutputPort());
>>            writer.SetFileName("disk.vtp");
>>            writer.Write();*/
>>  
>>
>>         }
>>         public static void EndInteractionEvent(vtk.vtkObject obj, uint eventId, Object data, IntPtr clientdata)
>>         {
>>             vtkBoxWidget widget = vtkBoxWidget.SafeDownCast(obj);
>>              vtkPolyData after = new vtkPolyData();
>>              widget.GetPolyData(after);
>>              center_After = GetBoundsCenter(after.GetBounds());
>>
>>              ModifyData();
>>  
>>
>>         }
>>
>>         private static double[] GetBoundsCenter(double[] bounds)
>>         {
>>             double[] center = new double[3];
>>
>>             center[0] = (bounds[0] + bounds[1]) / 2.0;
>>             center[1] = (bounds[2] + bounds[3]) / 2.0;
>>             center[2] = (bounds[4] + bounds[5]) / 2.0;
>>
>>             return center;
>>         }
>>  
>> Best regards
>> _______________________________________________
>> 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
>>     
>
> _______________________________________________
> 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
>
>   




More information about the vtkusers mailing list