MCPcopy Create free account
hub / github.com/KLayout/klayout / draw_round_dbl

Function draw_round_dbl

src/laybasic/laybasic/laySnap.cc:144–183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

142}
143
144std::pair<db::DPoint, db::DPoint>
145draw_round_dbl (const db::DPoint &p1, const db::DPoint &p2, int /*h*/)
146{
147 if (fabs (p1.y () - p2.y ()) < 0.1) {
148
149 double x1 = floor (p1.x () + 0.5);
150 double x2 = floor (p2.x () + 0.5);
151 double y = floor (p1.y () + 0.5);
152 return std::make_pair (db::DPoint (x1, y), db::DPoint (x2, y));
153
154 } else if (fabs (p1.x () - p2.x ()) < 0.1) {
155
156 double y1 = floor (p1.y () + 0.5);
157 double y2 = floor (p2.y () + 0.5);
158 double x = floor (p1.x () + 0.5);
159 return std::make_pair (db::DPoint (x, y1), db::DPoint (x, y2));
160
161 } else if (fabs (fabs (p1.x () - p2.x ()) - fabs (p1.y () - p2.y ())) < 0.1) {
162
163 double x1 = floor (p1.x () + 0.5);
164 double y1 = floor (p1.y () + 0.5);
165 double x2 = floor (p2.x () + 0.5);
166 double y2;
167 if (p2.y () < p1.y ()) {
168 y2 = y1 - fabs (x2 - x1);
169 } else {
170 y2 = y1 + fabs (x2 - x1);
171 }
172 return std::make_pair (db::DPoint (x1, y1), db::DPoint (x2, y2));
173
174 } else {
175
176 double y1 = floor (p1.y () + 0.5);
177 double y2 = floor (p2.y () + 0.5);
178 double x1 = floor (p1.x () + 0.5);
179 double x2 = floor (p2.x () + 0.5);
180 return std::make_pair (db::DPoint (x1, y1), db::DPoint (x2, y2));
181
182 }
183}
184
185db::DVector
186snap_angle (const db::DVector &in, lay::angle_constraint_type ac, db::DVector *snapped_to)

Callers 1

draw_roundFunction · 0.85

Calls 2

yMethod · 0.80
xMethod · 0.45

Tested by

no test coverage detected