Page MenuHome

Neither world nor local position is displayed on panel
Closed, InvalidPublic

Description

System Information
Debian x64 unstable Cinnamon

Blender Version
Broken: 2.77a abf6f08
Worked: (optional)

Short description of error
When we choose the child object and look to a panel, very often there is displayed neither it's world, nor it's local position,
but it's previous (before parenting) world position + it's personal moving after parenting.

(Example: (only for clearness, how it will be in real practice, you can remove it!!)
you can see here in attached file. Highlight "glass_r" object, you'll see it's coordinates on the panel.
Now if you create new object and specify to it "glass_r"'s coordinates from panel, it'll be very far
from it's current place. So it's not world coordinates of "glass_r" on the panel.
Origin of parent object is not far away from parent of parent's origin, which is not far away from scene's center:
(i received it through: select object, Shift+S, Origin to selected)
"glass_r": (-0.05851, -1.01855, 0.64272); "noseframe_right":(0.00839, 0.01079, 1.11964);
"glasses_1_main":(0.0, 0.0, 1.24983), so "glass_r"'s true positions are:

  • global is (-0.05851, -1.01855, 0.64272)
  • local is (−0,0669, -1.02934, -0.47692) (i received it by subtracting origin's positions ("glass_r" - "noseframe_right"))

)

Exact steps for others to reproduce the error
(Based on a (as simple as possible) attached .blend file with minimum amount of steps)

Case with error:

  1. We create 2 objects: "Cube" and "Cube-2"
    • their displayed positions are: (1.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (world and local)
  2. Make "Cube-2" child of "Cube".
    • their displayed positions are: (1.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (world)
      • local position of "Cube-2" is (0.0, 1.0, 1.0)
  3. Move "Cube" on +1 unit by X axis.
    • their displayed positions are: (2.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (not world and not local) <<error
    • their world positions are: (2.0, 0.0, 0.0), (2.0, 1.0, 1.0);
    • their local positions are (2.0, 0.0, 0.0), (0.0, 1.0, 1.0)).
  4. Move "Cube-2" on +1 unit by X axis.
    • their displayed positions are: (2.0, 0.0, 0.0) (world and local), (2.0, 1.0, 1.0) (not world and not local) <<error
    • their real world positions are: (2.0, 0.0, 0.0), (3.0, 1.0, 1.0);
    • their real local positions are (2.0, 0.0, 0.0), (1.0, 1.0, 1.0)).

So from paragraph 4 we see that it's displayed position is counted from it's previous (before parenting)
world position + changes in local position while it was parented.

(there are 2 scenes: "error case" and "normal case")

(Normal case can be only if starting position of parent object is (0, 0, 0)):

  1. We create 2 objects: "Cube" and "Cube-2"
    • their displayed positions are: (0.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (world and local)
  2. Make "Cube-2" child of "Cube".
    • their displayed positions are: (0.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (world and local)
  3. Move "Cube" on +1 unit by X axis.
    • their displayed positions are: (1.0, 0.0, 0.0) (world and local), (1.0, 1.0, 1.0) (only local)
    • world position of "Cube-2" is: (2.0, 1.0, 1.0).
  4. Move "Cube-2" on +1 unit by X axis.
    • their displayed positions are: (1.0, 0.0, 0.0) (world and local), (2.0, 1.0, 1.0) (only local)
    • world position of "Cube-2" is: (3.0, 1.0, 1.0).)

Details

Type
Bug

Event Timeline

Bastien Montagne (mont29) closed this task as Invalid.
Bastien Montagne (mont29) claimed this task.

Thanks for the report, but no bug here, this is expected behavior (when you parent an object to another, at least when using the operator, you store the inverse transformation matrix of the parent, such that parented object can “visually” keep same world position as it had before parenting.

Thank's for detailed answer.

But 3d artists have no need in inverse transformation matrix.
They only need to see the actual global or local position.

Also, due to Bledner's UI Paradigms ( https://wiki.blender.org/index.php/Dev:2.5/Source/UI/UIParadigms ), there is no need in placing there inverse transformation matrix.

Is there any places for feature requests?
(I would write there about such behavior)

Best regards,
Vladislav.

Feature requests and general discussion/suggestion like that should go through IRC (#blendercoders on freenode.net) or ML (bf-funboard@blender.org).