[vtkusers] From world coordinates to vtkBorderWidget's coordinate???
Arnaud Gelas
arnaudgelas at gmail.com
Fri Apr 11 09:13:03 EDT 2014
Hi all,
I have world coordinates for both corners of a rectangle and I would like to draw the corresponding rectangle using vtkBorderWidget / vtkBorderRepresentation.
Assuming the 2 locations are:
* double lowerLeftCorner[3], upperRightCorner[3];
How would you set it to Position and Position2, by the means of PositionCoordinate and Position2Coordinate?
I have tried the following:
vtkSmartPointer< vtkCoordinate > temp = vtkSmartPointer< vtkCoordinate >::New();
temp->SetCoordinateSystemToWorld();
temp->SetValue( lowerLeftCorner[0], lowerLeftCorner[1], lowerLeftCorner[2] );
double* left = temp->GetComputedDoubleDisplayValue( renderer );
renderer->DisplayToNormalizedDisplay( left[0], left[1] );
renderer->NormalizedDisplayToViewport( left[0], left[1] );
renderer->ViewportToNormalizedViewPort( left[0], left[1] );
borderRepresentation->GetPositionCoordinate()->SetValue( left[0], left[1] );
I have tried doing the same for upperRightCorner, or making it relative as it is done inside vtkBorderRepresentation, i.e.
borderRepresentation->GetPositionCoordinate()->SetValue( right[0], right[1] );
or
borderRepresentation->GetPositionCoordinate()->SetValue( right[0] - left[0], right[1] - left[1] );
It does not appear right on the screen afterwards… I am definitively missing something here…
What is the correct way to proceed?
I would really appreciate if anyone could enlighten me here!!!
Best,
Arnaud
More information about the vtkusers
mailing list