Ensure bed shape is in correct orientation (#9350)

Fix #9345

This also fixes deltamaker's plate logo rendering:
![image](https://github.com/user-attachments/assets/517c9b3c-8eee-4081-a2bc-5913fe35328b)

And fix bed rendering issue for custom shaped bed without model:
![image](https://github.com/user-attachments/assets/9643413e-9b1c-4e74-afe8-edf2306e7021)


Also fix rendering of exclusion area that are defined in clockwise:
![image](https://github.com/user-attachments/assets/0949c1c3-6304-4ece-85c7-f3162249bf90)
This commit is contained in:
SoftFever 2025-05-01 17:28:10 +08:00 committed by GitHub
commit a4f35e0291
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 42 additions and 28 deletions

View file

@ -2627,12 +2627,13 @@ void PartPlate::generate_exclude_polygon(ExPolygon &exclude_polygon)
exclude_polygon.contour.append({ scale_(p(0)), scale_(p(1)) });
}
}
exclude_polygon.contour.make_counter_clockwise();
}
bool PartPlate::set_shape(const Pointfs& shape, const Pointfs& exclude_areas, Vec2d position, float height_to_lid, float height_to_rod)
{
Pointfs new_shape, new_exclude_areas;
m_raw_shape = shape;
for (const Vec2d& p : shape) {
new_shape.push_back(Vec2d(p.x() + position.x(), p.y() + position.y()));
}