Mercurial > hg > orthanc-stone
comparison Framework/Scene2D/Internals/CairoPolylineRenderer.cpp @ 804:61ba4b504e9a
PolylineSceneLayer now has one color per chain
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 28 May 2019 15:58:21 +0200 |
parents | 6e471e6cf09b |
children | 6e888cf6a48b |
comparison
equal
deleted
inserted
replaced
802:f38c1fc08655 | 804:61ba4b504e9a |
---|---|
31 { | 31 { |
32 const PolylineSceneLayer& layer = GetLayer<PolylineSceneLayer>(); | 32 const PolylineSceneLayer& layer = GetLayer<PolylineSceneLayer>(); |
33 | 33 |
34 cairo_t* cr = GetCairoContext(); | 34 cairo_t* cr = GetCairoContext(); |
35 | 35 |
36 cairo_set_source_rgb(cr, layer.GetRedAsFloat(), layer.GetGreenAsFloat(), layer.GetBlueAsFloat()); | |
37 cairo_set_line_width(cr, layer.GetThickness()); | 36 cairo_set_line_width(cr, layer.GetThickness()); |
38 | 37 |
39 for (size_t i = 0; i < layer.GetChainsCount(); i++) | 38 for (size_t i = 0; i < layer.GetChainsCount(); i++) |
40 { | 39 { |
40 const Color& color = layer.GetColor(i); | |
41 cairo_set_source_rgb(cr, color.GetRedAsFloat(), | |
42 color.GetGreenAsFloat(), | |
43 color.GetBlueAsFloat()); | |
44 | |
41 const PolylineSceneLayer::Chain& chain = layer.GetChain(i); | 45 const PolylineSceneLayer::Chain& chain = layer.GetChain(i); |
42 | 46 |
43 if (!chain.empty()) | 47 if (!chain.empty()) |
44 { | 48 { |
45 for (size_t j = 0; j < chain.size(); j++) | 49 for (size_t j = 0; j < chain.size(); j++) |
60 { | 64 { |
61 ScenePoint2D p = chain[0].Apply(transform); | 65 ScenePoint2D p = chain[0].Apply(transform); |
62 cairo_line_to(cr, p.GetX(), p.GetY()); | 66 cairo_line_to(cr, p.GetX(), p.GetY()); |
63 } | 67 } |
64 } | 68 } |
69 | |
70 cairo_stroke(cr); | |
65 } | 71 } |
66 | |
67 cairo_stroke(cr); | |
68 } | 72 } |
69 } | 73 } |
70 } | 74 } |