@@ -114,150 +114,148 @@ dbIStream& operator>>(dbIStream& stream, dbTransform& t)
114114//
115115void dbTransform::invert (dbTransform& result) const
116116{
117- Point offset (-offset_.x (), -offset_.y ());
118117 Point offset (-offset_.x (), -offset_.y ());
119118 dbOrientType::Value orient;
120119
121120 switch (orient_) {
122- switch (orient_) {
123- case dbOrientType::R0:
124- orient = dbOrientType::R0;
125- break ;
126-
127- case dbOrientType::R90:
128- orient = dbOrientType::R270;
129- offset.rotate270 ();
130- break ;
131-
132- case dbOrientType::R180:
133- orient = dbOrientType::R180;
134- offset.rotate180 ();
135- break ;
136-
137- case dbOrientType::R270:
138- orient = dbOrientType::R90;
139- offset.rotate90 ();
140- break ;
141-
142- case dbOrientType::MY:
143- offset.setX (-offset.x ());
144- orient = dbOrientType::MY;
145- break ;
146-
147- case dbOrientType::MYR90:
148- offset.setX (-offset.x ());
149- offset.rotate90 ();
150- orient = dbOrientType::MYR90;
151- break ;
152-
153- case dbOrientType::MX:
154- offset.setY (-offset.y ());
155- orient = dbOrientType::MX;
156- break ;
157-
158- case dbOrientType::MXR90:
159- offset.setY (-offset.y ());
160- offset.rotate90 ();
161- orient = dbOrientType::MXR90;
162- break ;
163- default :
164- throw std::runtime_error (" Unknown orientation" );
165- }
166-
167- result.offset_ = Point3D (offset, mirror_z_ ? offset_.z () : -offset_.z ());
168- result.orient_ = orient;
169- result.mirror_z_ = mirror_z_;
121+ case dbOrientType::R0:
122+ orient = dbOrientType::R0;
123+ break ;
124+
125+ case dbOrientType::R90:
126+ orient = dbOrientType::R270;
127+ offset.rotate270 ();
128+ break ;
129+
130+ case dbOrientType::R180:
131+ orient = dbOrientType::R180;
132+ offset.rotate180 ();
133+ break ;
134+
135+ case dbOrientType::R270:
136+ orient = dbOrientType::R90;
137+ offset.rotate90 ();
138+ break ;
139+
140+ case dbOrientType::MY:
141+ offset.setX (-offset.x ());
142+ orient = dbOrientType::MY;
143+ break ;
144+
145+ case dbOrientType::MYR90:
146+ offset.setX (-offset.x ());
147+ offset.rotate90 ();
148+ orient = dbOrientType::MYR90;
149+ break ;
150+
151+ case dbOrientType::MX:
152+ offset.setY (-offset.y ());
153+ orient = dbOrientType::MX;
154+ break ;
155+
156+ case dbOrientType::MXR90:
157+ offset.setY (-offset.y ());
158+ offset.rotate90 ();
159+ orient = dbOrientType::MXR90;
160+ break ;
161+ default :
162+ throw std::runtime_error (" Unknown orientation" );
170163 }
171164
172- void dbTransform::apply (Point & p) const
173- {
174- switch (orient_) {
175- case dbOrientType::R0:
176- break ;
177-
178- case dbOrientType::R90:
179- p.rotate90 ();
180- break ;
181-
182- case dbOrientType::R180:
183- p.rotate180 ();
184- break ;
185-
186- case dbOrientType::R270:
187- p.rotate270 ();
188- break ;
189-
190- case dbOrientType::MY:
191- p.setX (-p.x ());
192- break ;
193-
194- case dbOrientType::MYR90:
195- p.setX (-p.x ());
196- p.rotate90 ();
197- break ;
198-
199- case dbOrientType::MX:
200- p.setY (-p.y ());
201- break ;
202-
203- case dbOrientType::MXR90:
204- p.setY (-p.y ());
205- p.rotate90 ();
206- break ;
207- }
208-
209- p.addX (offset_.x ());
210- p.addY (offset_.y ());
165+ result.offset_ = Point3D (offset, mirror_z_ ? offset_.z () : -offset_.z ());
166+ result.orient_ = orient;
167+ result.mirror_z_ = mirror_z_;
168+ }
169+
170+ void dbTransform::apply (Point& p) const
171+ {
172+ switch (orient_) {
173+ case dbOrientType::R0:
174+ break ;
175+
176+ case dbOrientType::R90:
177+ p.rotate90 ();
178+ break ;
179+
180+ case dbOrientType::R180:
181+ p.rotate180 ();
182+ break ;
183+
184+ case dbOrientType::R270:
185+ p.rotate270 ();
186+ break ;
187+
188+ case dbOrientType::MY:
189+ p.setX (-p.x ());
190+ break ;
191+
192+ case dbOrientType::MYR90:
193+ p.setX (-p.x ());
194+ p.rotate90 ();
195+ break ;
196+
197+ case dbOrientType::MX:
198+ p.setY (-p.y ());
199+ break ;
200+
201+ case dbOrientType::MXR90:
202+ p.setY (-p.y ());
203+ p.rotate90 ();
204+ break ;
211205 }
212206
213- void dbTransform::apply (Point3D & p) const
214- {
215- Point p2d (p.x (), p.y ());
216- apply (p2d);
207+ p.addX (offset_.x ());
208+ p.addY (offset_.y ());
209+ }
217210
218- int z = p. z ();
219- if (mirror_z_) {
220- z = -z ;
221- }
211+ void dbTransform::apply (Point3D& p) const
212+ {
213+ Point p2d (p. x (), p. y ()) ;
214+ apply (p2d);
222215
223- p. setX (p2d. x () );
224- p. setY (p2d. y ());
225- p. setZ (z + offset_. z ()) ;
216+ int z = p. z ( );
217+ if (mirror_z_) {
218+ z = -z ;
226219 }
227220
228- void dbTransform::apply (Rect & r) const
229- {
230- Point ll = r.ll ();
231- Point ur = r.ur ();
232- apply (ll);
233- apply (ur);
234- r.init (ll.x (), ll.y (), ur.x (), ur.y ());
235- }
221+ p.setX (p2d.x ());
222+ p.setY (p2d.y ());
223+ p.setZ (z + offset_.z ());
224+ }
236225
237- void dbTransform::apply (Cuboid & c ) const
238- {
239- Point3D lll = c. lll ();
240- Point3D uur = c. uur ();
241- apply (lll );
242- apply (uur );
243- c .init (lll .x (), lll .y (), lll. z (), uur. x (), uur. y (), uur. z ());
244- }
226+ void dbTransform::apply (Rect& r ) const
227+ {
228+ Point ll = r. ll ();
229+ Point ur = r. ur ();
230+ apply (ll );
231+ apply (ur );
232+ r .init (ll .x (), ll .y (), ur. x (), ur. y ());
233+ }
245234
246- void dbTransform::apply (Polygon & p ) const
247- {
248- std::vector<Point> points = p. getPoints ();
249- for (Point& pt : points) {
250- apply (pt );
251- }
252- p. setPoints (points );
253- }
235+ void dbTransform::apply (Cuboid& c ) const
236+ {
237+ Point3D lll = c. lll ();
238+ Point3D uur = c. uur ();
239+ apply (lll );
240+ apply (uur);
241+ c. init (lll. x (), lll. y (), lll. z (), uur. x (), uur. y (), uur. z () );
242+ }
254243
255- void dbTransform::concat (const dbTransform& t, dbTransform& result)
256- {
257- result.offset_ = offset_;
258- t.apply (result.offset_ );
259- result.orient_ = orientMul[orient_][t.orient_ ];
260- result.mirror_z_ = mirror_z_ ^ t.mirror_z_ ;
244+ void dbTransform::apply (Polygon& p) const
245+ {
246+ std::vector<Point> points = p.getPoints ();
247+ for (Point& pt : points) {
248+ apply (pt);
261249 }
250+ p.setPoints (points);
251+ }
252+
253+ void dbTransform::concat (const dbTransform& t, dbTransform& result)
254+ {
255+ result.offset_ = offset_;
256+ t.apply (result.offset_ );
257+ result.orient_ = orientMul[orient_][t.orient_ ];
258+ result.mirror_z_ = mirror_z_ ^ t.mirror_z_ ;
259+ }
262260
263261} // namespace odb
0 commit comments