Netherlands
Joined: Apr 8, 2022
Post Count: 1065
Status:
Offline
Mirrored furniture deformation problem
Mirrored furniture moves from its position when opened out of its horizontal bounding box. I think a problem similar to this was already mentioned before, an elevation change with a velux window. I'm not sure but I might have reported a similar problem before too. But this is specifically a mirrored object problem where the furniture moves where it should stay in place. Look at this image:
On the left the wardrobe as I created it. Next the wardrobe with a mirrored copy next to it so the handles are both in the middle. Now I open the doors for both of the wardrobes. The mirrored wardrobe moves along the X-axis so its bounding box remains where it was, resulting in moving the whole wardrobe to the left. This should NOT happen. With an mirrored object the mirrored position should be taken into account when redrawing the furniture with an openend door, i.e. the wardrobe itself should stay in place.
To check if it's a specific left-right problem I created a copy of the wardrobe where the hinges are on the right instead of the left as on the original wardrobe. When I open the new wardrobe it stays in its original position as it should. This means it is a problem with deformations on mirrored furniture. I tried the same with one of the default eteks doors and the same problem occurs, meaning it's not a problem with the object itself.
Now I could create a copy for every piece of furniture that needs a mirrored counter part with a deformation but that would defeat the whole purpose of mirroring furniture. Also this might be a very easy problem to solve because I assume that with the drawing of the object the mirrored status is know but just not taken into account for expanding the bounding box in the correct (mirrored) direction when a deformation changes the bounding box.
---------------------------------------- Dodecagon.nl 750+ 3D models, manuals, and projects
France
Joined: Nov 7, 2005
Post Count: 9388
Status:
Offline
Re: Mirrored furniture deformation problem
I understand your point of view but the first idea was that a mirroring operation shouldn't change the coordinates of an object. Maybe this could be refined... but without breaking arrangements in existing homes!
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Netherlands
Joined: Apr 8, 2022
Post Count: 1065
Status:
Offline
Re: Mirrored furniture deformation problem
Isn't that exactly what is happening now with a mirrored object, a change of coordinates when it's deformed? Or more precisely a change of position of the original object where it should keep its original position independent of the deformation?
I understand the need to keep backward compatibility but this is a case of correcting an error. Where it does affect an existing home that home (unfortunately) needs a correction itself. I doubt there are currently many existing homes with an openedmirrored object, and specifically one where the deformation goes outside the horizontal bounding box. Better correct it now before there are even more wrong deformation positions in existing homes.
---------------------------------------- Dodecagon.nl 750+ 3D models, manuals, and projects
France
Joined: Nov 7, 2005
Post Count: 9388
Status:
Offline
Re: Mirrored furniture deformation problem
Isn't that exactly what is happening now with a mirrored object, a change of coordinates when it's deformed?
No, if you open the door and close the modification dialog, the corrdinates will change. But then if you mirror the object, its coordinates won't change.
I doubt there are currently many existing homes with an opened mirrored object, and specifically one where the deformation goes outside the horizontal bounding box.
As this behavior was programmed this way from its first version, I guess that there are some users who experienced it and moved the door afterwards to make the door frame appear at the place they actually wanted it. I also remember that updating coordinates of a deformed object was not easy to program, and fear that taking into account the mirror flag might be more complicate. Nevertheless, I keep in mind this and will try to see if it can be improved without breaking existing arrangements.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Netherlands
Joined: Apr 8, 2022
Post Count: 1065
Status:
Offline
Re: Mirrored furniture deformation problem
I don't know if this makes a difference but the right wardrobe in the image was already mirrored before the deformation. So when the deformation starts the right wardrobe could be seen as just a regular wardrobe like the non-mirrored one on the left. Maybe the deformation coordinate calculations should completely ignore the mirror flag and behave like it does with a non-mirrored object.
My thought process is this: when the deformation dialog is started for the left non-mirrored wardrobe it's position/coordinates are passed to the dialog for recalculation according to the deformation. Then the deformed object is returned for display with the new coordinates. If exacly the same procedure is used for the right mirrored wardrobe the coordinates for that object are passed to the dialog and the exact same calculations should return the required result. My thought is that it should not matter if the object was mirrored, rotated, or whatever when it enters the deformation dialog, just that it's current coordiates are passed and recalculated as with a regular non-mirrored object.
Of course I don't know the calculations behind the deformation but logically I would say that completely ignoring the mirrored flag should result in the same result as with a non-mirrored object. Just retain the flag when the object is returned from the deformation dialog. That is of course if my assumption that the current coordinates are passed to the dialog is correct.
---------------------------------------- Dodecagon.nl 750+ 3D models, manuals, and projects
France
Joined: Nov 7, 2005
Post Count: 9388
Status:
Offline
Re: Mirrored furniture deformation problem
I think I found an acceptable tradeoff: I won't change the current behavior when the user select the Mirrored shape check box, i.e. such an object will keep the same coordinates. If the object is an already widely opened door, the door frame will move on the wall, and in your case, the wardrobe box will move. But when you deform it afterwards, the parts which didn't move will keep the same position whether the object is mirrored or not. This fix will be available in the next version.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer
Netherlands
Joined: Apr 8, 2022
Post Count: 1065
Status:
Offline
Re: Mirrored furniture deformation problem
But when you deform it afterwards, the parts which didn't move will keep the same position whether the object is mirrored or not. This fix will be available in the next version.
Perfect! Thank you!
---------------------------------------- Dodecagon.nl 750+ 3D models, manuals, and projects