From 2c6fb5aa9591672e2de83c9156d7d7732b8e9f8b Mon Sep 17 00:00:00 2001 From: kradchen Date: Mon, 14 Jul 2025 16:33:28 +0800 Subject: [PATCH] feat: add real distance getter&setter to RulerAnnotationActor, add MeasureChangedEvent with realDistance changed. --- .../Rendering/Measure/RulerAnnotationActor.cpp | 15 +++++++++++++-- src/src/Rendering/Measure/RulerAnnotationActor.h | 8 ++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/src/Rendering/Measure/RulerAnnotationActor.cpp b/src/src/Rendering/Measure/RulerAnnotationActor.cpp index 61b04a0..f0e46e5 100644 --- a/src/src/Rendering/Measure/RulerAnnotationActor.cpp +++ b/src/src/Rendering/Measure/RulerAnnotationActor.cpp @@ -20,7 +20,18 @@ vtkStandardNewMacro(RulerAnnotationActor) -RulerAnnotationActor::RulerAnnotationActor() { +void RulerAnnotationActor::SetDistanceName(const QString &aName) +{ + mDistance = aName; +} + +QString RulerAnnotationActor::GetDistanceName() +{ + return mDistance; +} + +RulerAnnotationActor::RulerAnnotationActor() +{ text = vtkActor2D::New(); vtkNew textMapper; textMapper->SetInput("0"); @@ -64,7 +75,7 @@ void RulerAnnotationActor::BuildShape() { // p1[2] = 0.0; // p2[2] = 0.0; realDistance = std::sqrt(vtkMath::Distance2BetweenPoints(p1, p2)); - + this->InvokeEvent(MeasureChangedEvent,&realDistance); double dis; if (isCalibration) { dis = calibDistance; diff --git a/src/src/Rendering/Measure/RulerAnnotationActor.h b/src/src/Rendering/Measure/RulerAnnotationActor.h index cb7c959..2e30f14 100644 --- a/src/src/Rendering/Measure/RulerAnnotationActor.h +++ b/src/src/Rendering/Measure/RulerAnnotationActor.h @@ -32,6 +32,14 @@ public: } } + void SetDistanceName(const QString& aName); + QString GetDistanceName(); + + double GetRealDistance(){ + return realDistance; + } + + protected: RulerAnnotationActor();