-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Pose
node (like Transform
node but without scale
)
#4079
Conversation
If it were possible, my inclination would be to instead move in the direction of letting I did run into a lot of perplexment once when I had scaled a Also I have doubts about the claim that it "should be rare" that people would have |
Note that the |
|
Yes. |
I see, I'm not entirely sure WbAbstractPose would even need to exist after the rework to be honest. Since the scale-related methods would be moved down to WbTransform, the only difference that remains between WbPose & WbAbstractPose is the children field. After discussing with Olivier, it might be cleaner to just have a Pose node that inherits from Group (hence avoid multiple inheritance too) and consider the Skin its own thing. It would entail some duplication that's true, but frankly given that the As it stands, it would look something like this, but like I mentioned there might be roadblocks:
|
If |
How do you suggest Skin to have scale but not children in this context (i.e. with the addition of the Pose node that doesn't have scale)? |
I would keep at least the WbAbstractPose class including all the translation/rotation code and use it as base class for the WbPose and WbSkin classes. |
I'm fine with that, but that would still leave duplication for the scale, as I don't see another way of adding scale support without also getting children in the mix (or at least, not without making a mess with the classes) |
continued here: #5978 |
Description
Scaling of robots is problematic due to the presence of sensors and physics. The
Pose
node, from whichTransform
,Solids
andRobots
will inherit, is much like aTransform
node but without the scale parameter. This latter will be exposed by the "new"Transform
node, in order to maintain backwards compatibility.Related Issues
Fixes #4034
Tasks
Add the list of tasks of this PR.
Pose
nodeTransform
toPose
AbstractTransform
toAbstractPose
findUpperTransform
,findUppermostTransform
, ...WbPose *transform
toWbPose *pose
WbTransform
class that inherits fromWbPose
WbMatter
inherit fromWbPose
WbSkin
inherit fromWbTransform
instead ofWbAbstractTransform
scale
fromPose
(and all references to it inSolid
,Robot
, ... )WbTrack
functionalityShape
children inTransform
nodesboundingObjects
should allow only PoseTransform { Solid {}}
structures intoPose { Solid {}}
(should be rare)