vtkBorderWidgetウィンドウの位置を設定する問題
2800 ワード
vtkBorderWidgetを使用するには、Widgetの位置とサイズを変更する必要があります.
- representation->GetPositionCoordinate()->SetCoordinateSystemToWorld();
- representation->GetPosition2Coordinate()->SetCoordinateSystemToWorld();
- representation->SetPosition(pos[0],pos[1]);
- representation->SetPosition(pos1[0],pos1[1]);
この方法はwidgetの位置を設定することができるが、widgetにマウスと対話する能力を失わせ、vtkBorderReprsentationのソースコードを参照すると、構造関数ではwidget位置の初期化が以下のように採用されていることが分かった.
- this->PositionCoordinate->SetCoordinateSystemToNormalizedViewport();
- this->PositionCoordinate->SetValue(0.05, 0.05);
- this->Position2Coordinate = vtkCoordinate::New();
- this->Position2Coordinate->SetCoordinateSystemToNormalizedViewport();
- this->Position2Coordinate->SetValue(0.1, 0.1);
そこで、コードを次のように書き換えます.
- representation->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport();
- representation->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
- representation->SetPosition(pos[0],pos[1]);
- representation->SetPosition(pos1[0],pos1[1]);
最終的な結果、widget位置は自分の意思で修正され、マウスとのインタラクションを継続することができる.