Skip to content

Commit 18df0cf

Browse files
committed
odb: fix merge issues
Signed-off-by: osamahammad21 <[email protected]>
1 parent 3c14a2f commit 18df0cf

File tree

3 files changed

+130
-136
lines changed

3 files changed

+130
-136
lines changed

src/odb/include/odb/dbTransform.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ class dbIStream;
1717
//
1818
class dbTransform
1919
{
20-
dbOrientType::Value orient_ = dbOrientType::R0;
21-
Point3D offset_;
22-
bool mirror_z_ = false;
23-
2420
public:
2521
// T = <R0, (0,0,0), false>
2622
dbTransform() = default;
@@ -114,9 +110,9 @@ class dbTransform
114110

115111
private:
116112
friend class _dbBlock;
117-
118113
dbOrientType::Value orient_ = dbOrientType::R0;
119-
Point offset_;
114+
Point3D offset_;
115+
bool mirror_z_ = false;
120116
};
121117

122118
dbOStream& operator<<(dbOStream& stream, const dbTransform& t);

src/odb/src/3dblox/checker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void Checker::unfoldChip(odb::dbChipInst* chip_inst, UnfoldedChip unfolded_chip)
5454
} else {
5555
// calculate the cuboid of the chip
5656
unfolded_chip.cuboid = chip_inst->getMasterChip()->getCuboid();
57-
for (auto chip_inst : unfolded_chip.chip_inst_path) {
57+
for (auto chip_inst : std::views::reverse(unfolded_chip.chip_inst_path)) {
5858
chip_inst->getTransform().apply(unfolded_chip.cuboid);
5959
}
6060
debugPrint(

src/odb/src/db/dbTransform.cpp

Lines changed: 127 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -114,150 +114,148 @@ dbIStream& operator>>(dbIStream& stream, dbTransform& t)
114114
//
115115
void 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

Comments
 (0)