Mercurial > hg > orthanc-stone
diff Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 1614:ad9b425f27ae
new class: ArrowSceneLayer
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 30 Oct 2020 16:26:39 +0100 |
parents | 787db80a5a1b |
children | f5d4bd7b5593 |
line wrap: on
line diff
--- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Fri Oct 30 11:07:38 2020 +0100 +++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Fri Oct 30 16:26:39 2020 +0100 @@ -70,6 +70,7 @@ #include <Messages/ObserverBase.h> #include <Oracle/ParseDicomFromWadoCommand.h> #include <Oracle/ParseDicomSuccessMessage.h> +#include <Scene2D/ArrowSceneLayer.h> #include <Scene2D/ColorTextureSceneLayer.h> #include <Scene2D/FloatTextureSceneLayer.h> #include <Scene2D/MacroSceneLayer.h> @@ -1548,15 +1549,23 @@ if (GetCurrentFrameGeometry().ProjectPoint(x1, y1, line.GetPoint1()) && GetCurrentFrameGeometry().ProjectPoint(x2, y2, line.GetPoint2())) { - std::unique_ptr<OrthancStone::PolylineSceneLayer> layer(new OrthancStone::PolylineSceneLayer); - OrthancStone::PolylineSceneLayer::Chain chain; - chain.push_back(OrthancStone::ScenePoint2D(x1, y1)); - chain.push_back(OrthancStone::ScenePoint2D(x2, y2)); - - // TODO - IsArrow - - layer->AddChain(chain, false, 0, 255, 0); - annotationsLayer->AddLayer(layer.release()); + if (line.IsArrow()) + { + std::unique_ptr<OrthancStone::ArrowSceneLayer> layer( + new OrthancStone::ArrowSceneLayer(OrthancStone::ScenePoint2D(x1, y1), + OrthancStone::ScenePoint2D(x2, y2))); + layer->SetColor(0, 255, 0); + annotationsLayer->AddLayer(layer.release()); + } + else + { + std::unique_ptr<OrthancStone::PolylineSceneLayer> layer(new OrthancStone::PolylineSceneLayer); + OrthancStone::PolylineSceneLayer::Chain chain; + chain.push_back(OrthancStone::ScenePoint2D(x1, y1)); + chain.push_back(OrthancStone::ScenePoint2D(x2, y2)); + layer->AddChain(chain, false, 0, 255, 0); + annotationsLayer->AddLayer(layer.release()); + } } break; } @@ -2303,7 +2312,7 @@ static boost::shared_ptr<OrthancStone::WebAssemblyLoadersContext> context_; static std::string stringBuffer_; static bool softwareRendering_ = false; -static WebViewerAction leftButtonAction_ = WebViewerAction_GrayscaleWindowing; +static WebViewerAction leftButtonAction_ = WebViewerAction_Rotate; // WebViewerAction_GrayscaleWindowing; static WebViewerAction middleButtonAction_ = WebViewerAction_Pan; static WebViewerAction rightButtonAction_ = WebViewerAction_Zoom;