在一个widget中根据vtkDistanceWiget测出了一段距离,想在另一个widget中同步显示这段距离,可是显示不出来,请大家帮忙看一下,或者给个思路


代码:
vtkDistanceWidget* distanceWidget = vtkDistanceWidget::New();
distanceWidget->SetInteractor(m_renderWindows[i]->GetInteractor());
vtkDistanceRepresentation3D* representation = vtkDistanceRepresentation3D::New();
distanceWidget->SetRepresentation(representation);
distanceWidget->SetPriority(0.9);
static_cast<vtkDistanceRepresentation*> (distanceWidget->GetRepresentation())->SetLabelFormat("%-#6.3g px");
distanceWidget->ManagesCursorOn();
distanceWidget->On();
想在另外一个widget中显示:
vtkDistanceWidget* widget3 = dynamic_cast<vtkDistanceWidget*>(m_tempWidget[3]);
widget3->SetWidgetStateToManipulate();
vtkDistanceRepresentation* representation = static_cast<vtkDistanceRepresentation*>(widget3->GetRepresentation());
representation->SetPoint1WorldPosition(m_tempPos1);
representation->SetPoint2WorldPosition(m_tempPos2);
vtkSmartPointer<vtkLineRepresentation> pRepresent = vtkSmartPointer<vtkLineRepresentation>::New();
pRepresent->SetPoint1WorldPosition(m_tempPos1);
pRepresent->SetPoint2WorldPosition(m_tempPos2);
pRepresent->SetLineColor(0, 1, 0);
lineWidget->SetInteractor(m_renderWindows[3]->GetInteractor());
lineWidget->SetRepresentation(pRepresent);
lineWidget->On();


代码:
vtkDistanceWidget* distanceWidget = vtkDistanceWidget::New();
distanceWidget->SetInteractor(m_renderWindows[i]->GetInteractor());
vtkDistanceRepresentation3D* representation = vtkDistanceRepresentation3D::New();
distanceWidget->SetRepresentation(representation);
distanceWidget->SetPriority(0.9);
static_cast<vtkDistanceRepresentation*> (distanceWidget->GetRepresentation())->SetLabelFormat("%-#6.3g px");
distanceWidget->ManagesCursorOn();
distanceWidget->On();
想在另外一个widget中显示:
vtkDistanceWidget* widget3 = dynamic_cast<vtkDistanceWidget*>(m_tempWidget[3]);
widget3->SetWidgetStateToManipulate();
vtkDistanceRepresentation* representation = static_cast<vtkDistanceRepresentation*>(widget3->GetRepresentation());
representation->SetPoint1WorldPosition(m_tempPos1);
representation->SetPoint2WorldPosition(m_tempPos2);
vtkSmartPointer<vtkLineRepresentation> pRepresent = vtkSmartPointer<vtkLineRepresentation>::New();
pRepresent->SetPoint1WorldPosition(m_tempPos1);
pRepresent->SetPoint2WorldPosition(m_tempPos2);
pRepresent->SetLineColor(0, 1, 0);
lineWidget->SetInteractor(m_renderWindows[3]->GetInteractor());
lineWidget->SetRepresentation(pRepresent);
lineWidget->On();