Mercurial > hg > orthanc-stone
annotate OrthancStone/Sources/Toolbox/DebugDrawing2D.cpp @ 2175:43ef60388fa2
removed useless function
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 22 Oct 2024 21:54:39 +0200 |
parents | f14260c15151 |
children |
rev | line source |
---|---|
2156
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 /** |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 * Stone of Orthanc |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 * Department, University Hospital of Liege, Belgium |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 * Copyright (C) 2017-2023 Osimis S.A., Belgium |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 * |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 * This program is free software: you can redistribute it and/or |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public License |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 * as published by the Free Software Foundation, either version 3 of |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 * the License, or (at your option) any later version. |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 * |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, but |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 * WITHOUT ANY WARRANTY; without even the implied warranty of |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 * |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 * License along with this program. If not, see |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 * <http://www.gnu.org/licenses/>. |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 **/ |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 #include "DebugDrawing2D.h" |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 |
2166 | 26 #include <stdio.h> |
27 | |
2156
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 namespace OrthancStone |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 class DebugDrawing2D::Segment |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 private: |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 double x1_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 double y1_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
36 double x2_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
37 double y2_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
38 std::string color_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
39 bool arrow_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 public: |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
42 Segment(double x1, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 double y1, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 double x2, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 double y2, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 const std::string& color, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 bool arrow) : |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 x1_(x1), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 y1_(y1), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 x2_(x2), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 y2_(y2), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 color_(color), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 arrow_(arrow) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 double GetX1() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 return x1_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 double GetY1() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 return y1_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 double GetX2() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 return x2_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 double GetY2() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 return y2_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 const std::string& GetColor() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 return color_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 bool IsArrow() const |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 return arrow_; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
86 }; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
87 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
88 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 void DebugDrawing2D::AddSegment(double x1, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 double y1, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 double x2, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 double y2, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 const std::string& color, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 bool arrow, |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 bool addToExtent) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 if (addToExtent) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 extent_.AddPoint(x1, y1); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 extent_.AddPoint(x2, y2); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 segments_.push_back(Segment(x1, y1, x2, y2, color, arrow)); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 void DebugDrawing2D::SaveSvg(const std::string& path) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 // Size in pixels |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 float ww, hh; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 if (extent_.IsEmpty()) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
112 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
113 ww = 2048.0f; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 hh = 2048.0f; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 else if (extent_.GetWidth() > extent_.GetHeight()) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 ww = 2048.0f; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 hh = ww * extent_.GetHeight() / extent_.GetWidth(); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
121 else |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
122 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
123 hh = 2048.0f; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 ww = hh * extent_.GetWidth() / extent_.GetHeight(); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 FILE* fp = fopen(path.c_str(), "w"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 fprintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 fprintf(fp, "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 fprintf(fp, "<svg width=\"%f\" height=\"%f\" viewBox=\"0 0 %f %f\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", ww, hh, extent_.GetWidth(), extent_.GetHeight()); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 // http://thenewcode.com/1068/Making-Arrows-in-SVG |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 fprintf(fp, "<defs>\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 fprintf(fp, "<marker id=\"arrowhead\" markerWidth=\"2\" markerHeight=\"3\" \n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 fprintf(fp, "refX=\"2\" refY=\"1.5\" orient=\"auto\">\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 fprintf(fp, "<polygon points=\"0 0, 2 1.5, 0 3\" />\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 fprintf(fp, "</marker>\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 fprintf(fp, "</defs>\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
140 fprintf(fp, "<rect fill=\"#fff\" stroke=\"#000\" x=\"0\" y=\"0\" width=\"%f\" height=\"%f\"/>\n", extent_.GetWidth(), extent_.GetHeight()); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 for (std::list<Segment>::const_iterator it = segments_.begin(); it != segments_.end(); ++it) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 float strokeWidth = 0.1; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 std::string s; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 if (it->IsArrow()) |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 { |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 s = "marker-end=\"url(#arrowhead)\""; |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 fprintf(fp, "<line x1=\"%f\" y1=\"%f\" x2=\"%f\" y2=\"%f\" stroke=\"%s\" stroke-width=\"%f\" %s/>\n", |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 it->GetX1() - extent_.GetX1(), it->GetY1() - extent_.GetY1(), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 it->GetX2() - extent_.GetX1(), it->GetY2() - extent_.GetY1(), |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 it->GetColor().c_str(), strokeWidth, s.c_str()); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 fprintf(fp, "</svg>\n"); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 fclose(fp); |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 } |
340bde744884
added DebugDrawing2D and GeometryToolbox::IntersectLineAndSegment()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 } |