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