From 45643cf1610809c0bdd559c04d8dd7dad044828a Mon Sep 17 00:00:00 2001 From: Krad Date: Thu, 10 Mar 2022 14:55:25 +0800 Subject: [PATCH] Add MeasureFactory --- src/src/measure/MeasureFactory.cpp | 35 ++++++++++++++++++++++++++++++ src/src/measure/MeasureFactory.h | 14 ++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/src/measure/MeasureFactory.cpp create mode 100644 src/src/measure/MeasureFactory.h diff --git a/src/src/measure/MeasureFactory.cpp b/src/src/measure/MeasureFactory.cpp new file mode 100644 index 0000000..adaa820 --- /dev/null +++ b/src/src/measure/MeasureFactory.cpp @@ -0,0 +1,35 @@ +// +// Created by Krad on 2022/3/10. +// + +#include "MeasureFactory.h" +#include "RulerAnnotationActor.h" +#include "AngleAnnotationActor.h" +#include "OpenPolyAnnotationActor.h" +#include "TextAnnotationActor.h" +#include "ArrowAnnotationActor.h" +#include "EllipseAnnotationActor.h" + +Measure *MeasureFactory::getMeasure(AnnotationActorType type) { + switch (type) { + case AnnotationActorType::AngleAnn: + return AngleAnnotationActor::New(); + case AnnotationActorType::RulerAnn: + return RulerAnnotationActor::New(); + case AnnotationActorType::ClosedPolygonAnn:{ + OpenPolyAnnotationActor* ann = OpenPolyAnnotationActor::New(); + ann->SetClosed(1); + return ann; + } + case AnnotationActorType::OpenPolygonAnn: + return OpenPolyAnnotationActor::New(); + case AnnotationActorType::ArrowAnn: + return ArrowAnnotationActor::New(); + case AnnotationActorType::EllipseAnn: + return EllipseAnnotationActor::New(); + case AnnotationActorType::TextAnn: + return TextAnnotationActor::New(); + default: + return nullptr; + } +} diff --git a/src/src/measure/MeasureFactory.h b/src/src/measure/MeasureFactory.h new file mode 100644 index 0000000..b9320db --- /dev/null +++ b/src/src/measure/MeasureFactory.h @@ -0,0 +1,14 @@ +// +// Created by Krad on 2022/3/10. +// + +#ifndef OMEGAV_MEASUREFACTORY_H +#define OMEGAV_MEASUREFACTORY_H +#include "Measure.h" +#include "QGlobals.h" +class MeasureFactory { + static Measure* getMeasure(AnnotationActorType type); +}; + + +#endif //OMEGAV_MEASUREFACTORY_H