Mercurial > hg > orthanc-stone
diff Framework/Loaders/DicomStructureSetLoader.cpp @ 1000:50e5acf5553b
changed RTSTRUCT rendering from polygons to segments
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 20 Sep 2019 11:59:29 +0200 |
parents | c20dbaab360c |
children | 4f28d9459e31 |
line wrap: on
line diff
--- a/Framework/Loaders/DicomStructureSetLoader.cpp Fri Sep 20 11:58:33 2019 +0200 +++ b/Framework/Loaders/DicomStructureSetLoader.cpp Fri Sep 20 11:59:29 2019 +0200 @@ -243,7 +243,8 @@ { const Color& color = content_.GetStructureColor(i); - std::vector< std::vector<DicomStructureSet::PolygonPoint2D> > polygons; +#ifdef USE_OLD_SJO_CUT_CODE + std::vector< std::vector<Point2D> > polygons; if (content_.ProjectStructure(polygons, i, cuttingPlane)) { @@ -254,12 +255,29 @@ for (size_t k = 0; k < polygons[j].size(); k++) { - chain[k] = ScenePoint2D(polygons[j][k].first, polygons[j][k].second); + chain[k] = ScenePoint2D(polygons[j][k].x, polygons[j][k].y); } layer->AddChain(chain, true /* closed */, color); } } +#else + std::vector< std::pair<Point2D, Point2D> > segments; + + if (content_.ProjectStructure(segments, i, cuttingPlane)) + { + for (size_t j = 0; j < segments.size(); j++) + { + PolylineSceneLayer::Chain chain; + chain.resize(2); + + chain[0] = ScenePoint2D(segments[j].first.x, segments[j].first.y); + chain[1] = ScenePoint2D(segments[j].second.x, segments[j].second.y); + + layer->AddChain(chain, false /* NOT closed */, color); + } + } +#endif } return layer.release();