Jump to content

[SOLVED] parent node position is changed when child node position is changed.


photo

Recommended Posts

look at first picture.

 

PR_EZ_BL_02 Node Position IS 0 , 0 , 0

 

when Child Node Position is changed.

 

Parent Node position is changed.

 

repeat Child Node Pos is Changed.

 

more errors.

 

i can't detail position change.

 

how to solved problem?

post-58-0-86978100-1353399605_thumb.png

post-58-0-93201200-1353400036_thumb.png

Link to comment

Which version of SDK do you use? Latest is 2012-11-16.

So, my steps to reproduce this issue is:

  1. Launch editor.
  2. Create new world (and save it).
  3. Add an Object -> Dummy Object.
  4. Add a node -> Reference to Node.
  5. Open Nodes window (N).
  6. Alt+drag NodeReference to Dummy Object node. So now NodeReference is became a child of Dummy Object.
  7. Copy-paste 2 times NodeReference.
  8. Edit NodeReference for all nodes in Node Reference editor.
  9. Edit each NodeReference coordinates separetely.

Dummy Object position coordinates is always stays at zero.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

i have use Old Ver Engine.

 

my world is

 

 

  • world
    • Reference Node
      • ObjectDummy ( 2. Position is Change )
        • ObjectMesh
        • ObjectMesh ( 1. Position is Changed )

have you solve this problem in Old Ver Engine?

Edited by wxywxy.ji
Link to comment

last question.

 

are you changed this code?

 

editor_reference.h

 

void update(Node node)

{

// save node

node.setWorldTransform(reference.getIWorldTransform() * dummy.getWorldTransform() * node.getWorldTransform());

engine.world.saveNode(name,node);

node.setWorldTransform(reference.getWorldTransform() * dummy.getIWorldTransform() * node.getWorldTransform());

 

// reload nodes

foreach(NodeReference reference; references) {

reference.setNodeName(name);

}

}

 

code is changed in updated sdk version

 

void update(Node node)

{

int num_root_nodes = 0;

int num_free_nodes = 0;

forloop(int i = 0; engine.editor.getNumNodes()) {

Node node = engine.editor.getNode(i);

if(node.getParent() == dummy) num_root_nodes++;

if(node.getParent() == NULL) num_free_nodes++;

}

if(num_root_nodes == 0 && num_free_nodes == 1) {

forloop(int i = 0; engine.editor.getNumNodes()) {

Node node = engine.editor.getNode(i);

if(node.getParent() == NULL) {

node.setWorldParent(dummy);

break;

}

}

}

}

Link to comment

we have custemize old ver.

 

we can't change update sdk.

i want know that why code was changed?

 

void update(Node node)

{

// save node

node.setWorldTransform(reference.getIWorldTransform() * dummy.getWorldTransform() * node.getWorldTransform());

engine.world.saveNode(name,node);

node.setWorldTransform(reference.getWorldTransform() * dummy.getIWorldTransform() * node.getWorldTransform());

 

// reload nodes

foreach(NodeReference reference; references) {

reference.setNodeName(name);

}

}

Link to comment
×
×
  • Create New...