<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:10.0pt;
        margin-left:0in;
        line-height:115%;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal>I am creating a border around a contour (created with a polydata object) displayed on some image data. The border is created using the vtkBorderWidget with its dimensions based on the bounds of the contour. When I rotate the camera, the border widget is not redrawn as expected. The position and position2 points for the border widget match those of the contour object, but the sides of the border are not parallel to the world coordinate axes as I would expect. Does anyone know why the border widget behaves this way? Is there a way to alter this behavior? Is there something I’m doing wrong in my set up of the widget representation?<o:p></o:p></p><p class=MsoNormal>Code I’m using to set the border widget is given below.<o:p></o:p></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>double</span><span style='font-size:10.0pt;font-family:"Courier New"'>[] bounds = myContour.GetBounds(); <o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>double</span><span style='font-size:10.0pt;font-family:"Courier New"'>[] position = <span style='color:blue'>new</span> <span style='color:blue'>double</span>[2];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>double</span><span style='font-size:10.0pt;font-family:"Courier New"'>[] position2 = <span style='color:blue'>new</span> <span style='color:blue'>double</span>[2];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p> </o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>position[0] = bounds[0];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>position[1] = bounds[2];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>position2[0] = bounds[1];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>position2[1] = bounds[3];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation = <span style='color:#2B91AF'>vtkBorderRepresentation</span>.New();<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetMoving(1); _representation.GetPositionCoordinate().SetCoordinateSystemToWorld(); _representation.GetPosition2Coordinate().SetCoordinateSystemToWorld();<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetShowBorderToOn();<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetPickable(1);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetProportionalResize(1);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetPlaceFactor(1.1);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetTolerance(15);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>_representation.SetMinimumSize(5, 5);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>SetBoxPosition(position, position2);<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Where the SetBoxPosition method is as follows:<o:p></o:p></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>if</span><span style='font-size:10.0pt;font-family:"Courier New"'> (_representation != <span style='color:blue'>null</span>)<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>{<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;text-indent:.5in;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>double</span><span style='font-size:10.0pt;font-family:"Courier New"'>[] scaledPosition = <span style='color:blue'>new</span> <span style='color:blue'>double</span>[3];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:blue'>double</span>[] scaledPosition2 = <span style='color:blue'>new</span> <span style='color:blue'>double</span>[2];<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> scaledPosition[0] = position[0] - _boxOffset;<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> scaledPosition[1] = position[1] - _boxOffset;<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> scaledPosition2[0] = position2[0] + _boxOffset;<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> scaledPosition2[1] = position2[1] + _boxOffset;<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> <span style='color:green'>//Position2 is really the dimensions of the box.<o:p></o:p></span></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> _representation.SetPosition(scaledPosition[0], scaledPosition[1]);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> _representation.SetPosition2(scaledPosition2[0] - scaledPosition[0],<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'> scaledPosition2[1] - scaledPosition[1]);<o:p></o:p></span></p><p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<o:p></o:p></p><p class=MsoNormal>Pat<o:p></o:p></p></div></body></html>