Mercurial > hg > orthanc-stone
diff Framework/Radiography/RadiographySceneWriter.cpp @ 481:159a465e27bd am-touch-events
reworked RadiographyScene export to export to an Orthanc::Image too
author | am@osimis.io |
---|---|
date | Thu, 14 Feb 2019 16:23:59 +0100 |
parents | b85f635f1eb5 |
children | aede9b042cb7 |
line wrap: on
line diff
--- a/Framework/Radiography/RadiographySceneWriter.cpp Thu Feb 14 10:18:02 2019 +0100 +++ b/Framework/Radiography/RadiographySceneWriter.cpp Thu Feb 14 16:23:59 2019 +0100 @@ -57,6 +57,22 @@ output["fontName"] = layer.GetFontName(); } + void RadiographySceneWriter::WriteLayer(Json::Value& output, const RadiographyMaskLayer& layer) + { + output["type"] = "mask"; + output["instanceId"] = layer.GetInstanceId(); // the dicom layer it's being linked to + output["foreground"] = layer.GetForeground(); + output["corners"] = Json::arrayValue; + const std::vector<MaskPoint>& corners = layer.GetCorners(); + for (size_t i = 0; i < corners.size(); i++) + { + Json::Value corner; + corner["x"] = corners[i].x; + corner["y"] = corners[i].y; + output["corners"].append(corner); + } + } + void RadiographySceneWriter::WriteLayer(Json::Value& output, const RadiographyAlphaLayer& layer) { output["type"] = "alpha"; @@ -128,6 +144,10 @@ { WriteLayer(output, dynamic_cast<const RadiographyAlphaLayer&>(layer)); } + else if (dynamic_cast<const RadiographyMaskLayer*>(&layer) != NULL) + { + WriteLayer(output, dynamic_cast<const RadiographyMaskLayer&>(layer)); + } else { throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);