Mercurial > hg > orthanc-stone
diff Samples/Sdl/BasicScene.cpp @ 860:238693c3bc51 am-dev
merge default -> am-dev
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Mon, 24 Jun 2019 14:35:00 +0200 |
parents | e3c56d4f863f |
children | 31319fe867b9 77c96ba899f9 |
line wrap: on
line diff
--- a/Samples/Sdl/BasicScene.cpp Wed Jun 19 17:36:33 2019 +0200 +++ b/Samples/Sdl/BasicScene.cpp Mon Jun 24 14:35:00 2019 +0200 @@ -29,6 +29,7 @@ #include "../../Framework/Scene2D/Scene2D.h" #include "../../Framework/Scene2D/ZoomSceneTracker.h" #include "../../Framework/Scene2DViewport/ViewportController.h" +#include "../../Framework/Scene2DViewport/UndoStack.h" #include "../../Framework/StoneInitialization.h" #include "../../Framework/Messages/MessageBroker.h" @@ -49,10 +50,9 @@ static const unsigned int FONT_SIZE = 32; static const int LAYER_POSITION = 150; -using namespace OrthancStone; - -void PrepareScene(ViewportControllerPtr controller) +void PrepareScene(boost::shared_ptr<OrthancStone::ViewportController> controller) { + using namespace OrthancStone; Scene2D& scene(*controller->GetScene()); // Texture of 2x2 size { @@ -104,21 +104,21 @@ { std::auto_ptr<PolylineSceneLayer> layer(new PolylineSceneLayer); - layer->SetThickness(1); + layer->SetThickness(10); PolylineSceneLayer::Chain chain; chain.push_back(ScenePoint2D(0 - 0.5, 0 - 0.5)); chain.push_back(ScenePoint2D(0 - 0.5, 2 - 0.5)); chain.push_back(ScenePoint2D(2 - 0.5, 2 - 0.5)); chain.push_back(ScenePoint2D(2 - 0.5, 0 - 0.5)); - layer->AddChain(chain, true); + layer->AddChain(chain, true, 255, 0, 0); chain.clear(); chain.push_back(ScenePoint2D(-5, -5)); chain.push_back(ScenePoint2D(5, -5)); chain.push_back(ScenePoint2D(5, 5)); chain.push_back(ScenePoint2D(-5, 5)); - layer->AddChain(chain, true); + layer->AddChain(chain, true, 0, 255, 0); double dy = 1.01; chain.clear(); @@ -126,9 +126,8 @@ chain.push_back(ScenePoint2D(4, -4 + dy)); chain.push_back(ScenePoint2D(-4, -4 + 2.0 * dy)); chain.push_back(ScenePoint2D(4, 2)); - layer->AddChain(chain, false); + layer->AddChain(chain, false, 0, 0, 255); - layer->SetColor(0,255, 255); scene.SetLayer(50, layer.release()); } @@ -142,10 +141,11 @@ void TakeScreenshot(const std::string& target, - const Scene2D& scene, + const OrthancStone::Scene2D& scene, unsigned int canvasWidth, unsigned int canvasHeight) { + using namespace OrthancStone; // Take a screenshot, then save it as PNG file CairoCompositor compositor(scene, canvasWidth, canvasHeight); compositor.SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, FONT_SIZE, Orthanc::Encoding_Latin1); @@ -162,11 +162,12 @@ } -void HandleApplicationEvent(ViewportControllerPtr controller, - const OpenGLCompositor& compositor, +void HandleApplicationEvent(boost::shared_ptr<OrthancStone::ViewportController> controller, + const OrthancStone::OpenGLCompositor& compositor, const SDL_Event& event, - FlexiblePointerTrackerPtr& activeTracker) + boost::shared_ptr<OrthancStone::IFlexiblePointerTracker>& activeTracker) { + using namespace OrthancStone; Scene2D& scene(*controller->GetScene()); if (event.type == SDL_MOUSEMOTION) { @@ -276,8 +277,9 @@ } -void Run(ViewportControllerPtr controller) +void Run(boost::shared_ptr<OrthancStone::ViewportController> controller) { + using namespace OrthancStone; SdlOpenGLWindow window("Hello", 1024, 768); controller->FitContent(window.GetCanvasWidth(), window.GetCanvasHeight()); @@ -289,7 +291,7 @@ compositor.SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, FONT_SIZE, Orthanc::Encoding_Latin1); - FlexiblePointerTrackerPtr tracker; + boost::shared_ptr<IFlexiblePointerTracker> tracker; bool stop = false; while (!stop) @@ -368,14 +370,16 @@ **/ int main(int argc, char* argv[]) { + using namespace OrthancStone; StoneInitialize(); Orthanc::Logging::EnableInfoLevel(true); try { MessageBroker broker; - ViewportControllerPtr controller = boost::make_shared<ViewportController>( - boost::ref(broker)); + boost::shared_ptr<UndoStack> undoStack(new UndoStack); + boost::shared_ptr<ViewportController> controller = boost::make_shared<ViewportController>( + undoStack, boost::ref(broker)); PrepareScene(controller); Run(controller); }