Add MeasureFactory

This commit is contained in:
Krad
2022-03-10 14:55:25 +08:00
parent a4b18a19dd
commit 45643cf161
2 changed files with 49 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -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