<html>
<body>
Hello <br>
I am not experienced with the insight of vtk and I having big troubles
with coordinate conversions.<br><br>
I need to calculate the display area occupied by annotations (see the
picture attached), but I get query values when I try.<br>
An Annotation is a vtkVectorText object associated to a vtkPolyDataMapper
and a vtkFollower actor.<br>
I made a test with two annotations &quot;OSSO MANDIBOLARE&quot; and
&quot;COLLETTO&quot; and have been placed by fixing their position
through the actor. To calculate the area they occupy in the viewport, I
first fetched the annotation bounds from the actor (now I know these are
world coordinates). Out of the bounds values (xmin, xmax, ymin, ymax,
zmin, zmax), I considered two points P1(xmin, ymin, zmin) and P2 (xmax,
ymax, zmax) that represent the annotation. Till here everything seems
fine as the values correspond to the annotation proportion that I fixed.
<br>
I converted these points from world to display coordinates to finally get
the displayed area of the annotation. <br>
Strange enough the display values do not correspond to the displayed
situation. <br><br>
Here are the values I obtained<br><br>
The view/viewport size is (1182, 877)<br><br>
&quot;OSSO MANDIBOLARE&quot; positioned in world coord (10.0, 156.0,
0.0)<br><br>
P1 and P2 world coordinates (ie bounds from vtkFollower)<br><br>
x1=010.4259<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>x2=044.0539<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dx=33.628<br>
y1=155.821<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>y2=158.094<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dy=02.273<br>
z1=0<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>z2=0<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dz=0<br><br>
Display conversion of P1 and P2<br>
x1=122.473<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>x2=257.503<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dx=135.03<br>
y1=358.38<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>y2=317.359<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dy=-41.021 <br>
z1=0.638066<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>z2=0.662627<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dz=0.024561<br>
<br>
(the negative value for dy means that dy direction is opposite to the y
positive direction in the screen/display coordinate system)<br><br>
&quot;COLLETTO&quot; positioned in world coord (160.0, 152.0,
0.0)<br><br>
P1 and P2 world coordinates (ie bounds from vtkFollower)<br><br>
x1=160.656<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>x2=186.323<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dx=25.667<br>
y1=151.731<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>y2=155.141<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dy=3.41<br>
z1=0<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>z2=0<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dz=0<br><br>
Display conversion of P1 and P2<br>
x1=699.387<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>x2=789.777<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dx=90.30<br>
y1=166.56<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>y2=141.292<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dy=-25.268 <br>
z1=0.697782<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>z2=0.720205<x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>dz=0.022423<br>
<br>
If you look in the attached picture ANNOTATION1, you can see that the
first annotation height (dy) is lower than the second, while for the
calculated values is the opposite. How can it happen? <br>
How come that the display coordinates are not on a plane as the world
ones?<br>
How can I get correct values corresponding to the situation I see in my
display?<br><br>
I changed the position of labels while not moving the camera, the result
is illustrated in the picture ANNOTATION2:<br>
&quot;OSSO MANDIBOLARE&quot; positioned in world coord (20.0, 170.0,
-20.0)<br>
&quot;COLLETTO&quot; positioned in world coord (130.0, 120.0,
40.0)<br><br>
I performed all calculations, the bounds values change, but the dx, dy,
dz remain unchanged.<br>
The display coordinates show the same problems.<br><br>
As an hypothesis I thought this was due to particular actor (ie
vtkFollower that changes the orientation of annotations to keep them
aligned to the camera), if this is it how can I take into account the
effect of vtkFollower? Should I apply a rotation to the P1 and P2 points
before converting them to display?<br><br>
Sorry for the long mail, but I really need you help to understand how to
calculate occupied display space for annotations.<br><br>
Thanks a lot,<br>
Monica<br>
<x-sigsep><p></x-sigsep>
<font face="Arial Baltic, Helvetica" size=2>&nbsp;Monica Gemo - Ph.D.
Student<br>
&nbsp;Communication and Remote Sensing Lab. (UCL/TELE)<br>
&nbsp;Belgium Lab. of Computer-Human Interaction (UCL/BCHI)<br>
&nbsp;Université catholique de Louvain<br>
&nbsp;Address : Stevin Building, room A.147<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Place du Levant, 2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
B-1348 Louvain-la-Neuve, BELGIUM<br>
&nbsp;Tel : + 32 10 47.41.05&nbsp; -&nbsp; Fax : + 32 10 47.20.89<br>
&nbsp;E-mail : gemo@tele.ucl.ac.be<br>
&nbsp;<a href="http://www.tele.ucl.ac.be/view-people.php?id=54" eudora="autourl">
http://www.tele.ucl.ac.be/view-people.php?id=54<br>
</a></font></body>
</html>