Jump to content

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


photo

Recommended Posts

Posted

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

Posted

Hi,

 

I've tried to reproduce this behavior, but it seems that all working correct. Parent node didn't change its position. Could you please provide simple test scene to our developers? Thanks!

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

Posted

please try again test in referenceNode Editor.

Posted

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:

Posted (edited)

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
Posted

thank you for reply

 

i will check , different between old engine and now engine.

Posted

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;

}

}

}

}

Posted

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);

}

}

Posted

It's not clear what exactly is the engine version you use. Basically, it could be any improvement due to the added functionality or a fixed bug.

×
×
  • Create New...