comparison 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
comparison
equal deleted inserted replaced
1613:5f0660fe06c3 1614:ad9b425f27ae
68 #include <Loaders/SeriesMetadataLoader.h> 68 #include <Loaders/SeriesMetadataLoader.h>
69 #include <Loaders/SeriesThumbnailsLoader.h> 69 #include <Loaders/SeriesThumbnailsLoader.h>
70 #include <Messages/ObserverBase.h> 70 #include <Messages/ObserverBase.h>
71 #include <Oracle/ParseDicomFromWadoCommand.h> 71 #include <Oracle/ParseDicomFromWadoCommand.h>
72 #include <Oracle/ParseDicomSuccessMessage.h> 72 #include <Oracle/ParseDicomSuccessMessage.h>
73 #include <Scene2D/ArrowSceneLayer.h>
73 #include <Scene2D/ColorTextureSceneLayer.h> 74 #include <Scene2D/ColorTextureSceneLayer.h>
74 #include <Scene2D/FloatTextureSceneLayer.h> 75 #include <Scene2D/FloatTextureSceneLayer.h>
75 #include <Scene2D/MacroSceneLayer.h> 76 #include <Scene2D/MacroSceneLayer.h>
76 #include <Scene2D/PolylineSceneLayer.h> 77 #include <Scene2D/PolylineSceneLayer.h>
77 #include <Scene2D/TextSceneLayer.h> 78 #include <Scene2D/TextSceneLayer.h>
1546 const LineAnnotation& line = dynamic_cast<const LineAnnotation&>(annotation); 1547 const LineAnnotation& line = dynamic_cast<const LineAnnotation&>(annotation);
1547 double x1, y1, x2, y2; 1548 double x1, y1, x2, y2;
1548 if (GetCurrentFrameGeometry().ProjectPoint(x1, y1, line.GetPoint1()) && 1549 if (GetCurrentFrameGeometry().ProjectPoint(x1, y1, line.GetPoint1()) &&
1549 GetCurrentFrameGeometry().ProjectPoint(x2, y2, line.GetPoint2())) 1550 GetCurrentFrameGeometry().ProjectPoint(x2, y2, line.GetPoint2()))
1550 { 1551 {
1551 std::unique_ptr<OrthancStone::PolylineSceneLayer> layer(new OrthancStone::PolylineSceneLayer); 1552 if (line.IsArrow())
1552 OrthancStone::PolylineSceneLayer::Chain chain; 1553 {
1553 chain.push_back(OrthancStone::ScenePoint2D(x1, y1)); 1554 std::unique_ptr<OrthancStone::ArrowSceneLayer> layer(
1554 chain.push_back(OrthancStone::ScenePoint2D(x2, y2)); 1555 new OrthancStone::ArrowSceneLayer(OrthancStone::ScenePoint2D(x1, y1),
1555 1556 OrthancStone::ScenePoint2D(x2, y2)));
1556 // TODO - IsArrow 1557 layer->SetColor(0, 255, 0);
1557 1558 annotationsLayer->AddLayer(layer.release());
1558 layer->AddChain(chain, false, 0, 255, 0); 1559 }
1559 annotationsLayer->AddLayer(layer.release()); 1560 else
1561 {
1562 std::unique_ptr<OrthancStone::PolylineSceneLayer> layer(new OrthancStone::PolylineSceneLayer);
1563 OrthancStone::PolylineSceneLayer::Chain chain;
1564 chain.push_back(OrthancStone::ScenePoint2D(x1, y1));
1565 chain.push_back(OrthancStone::ScenePoint2D(x2, y2));
1566 layer->AddChain(chain, false, 0, 255, 0);
1567 annotationsLayer->AddLayer(layer.release());
1568 }
1560 } 1569 }
1561 break; 1570 break;
1562 } 1571 }
1563 1572
1564 case Annotation::Type_Angle: 1573 case Annotation::Type_Angle:
2301 static OrthancStone::DicomSource source_; 2310 static OrthancStone::DicomSource source_;
2302 static boost::shared_ptr<FramesCache> cache_; 2311 static boost::shared_ptr<FramesCache> cache_;
2303 static boost::shared_ptr<OrthancStone::WebAssemblyLoadersContext> context_; 2312 static boost::shared_ptr<OrthancStone::WebAssemblyLoadersContext> context_;
2304 static std::string stringBuffer_; 2313 static std::string stringBuffer_;
2305 static bool softwareRendering_ = false; 2314 static bool softwareRendering_ = false;
2306 static WebViewerAction leftButtonAction_ = WebViewerAction_GrayscaleWindowing; 2315 static WebViewerAction leftButtonAction_ = WebViewerAction_Rotate; // WebViewerAction_GrayscaleWindowing;
2307 static WebViewerAction middleButtonAction_ = WebViewerAction_Pan; 2316 static WebViewerAction middleButtonAction_ = WebViewerAction_Pan;
2308 static WebViewerAction rightButtonAction_ = WebViewerAction_Zoom; 2317 static WebViewerAction rightButtonAction_ = WebViewerAction_Zoom;
2309 2318
2310 2319
2311 static void FormatTags(std::string& target, 2320 static void FormatTags(std::string& target,