<div dir="ltr">Hey all,<div>in the time I spent in the game engine tracker for my gsoc, I found more than a couple of bugs related with basic parent/child transforms. While these can be in other places (such as data conversion, or the python api), the core is really the scene graph.</div>

<div>I reviewed and documented my understandings so far:</div><div><a href="http://wiki.blender.org/index.php/User:Brita/GSoC_BGE_cleanup_and_support/doc/sg" target="_blank">http://wiki.blender.org/index.php/User:Brita/GSoC_BGE_cleanup_and_support/doc/sg</a><br>

</div><div>but I found a lot of dubious code - undocumented and inconsistent (in style, functionality?). So I need help understanding and cleaning up some parts:</div><div><br></div><div>1) is anything wrong or amiss in the wiki page I wrote?</div>

<div>2) is doing that wiki page a waste of time? I felt it was useful for me to understand quite some concepts, but I would spend less time just leaving it scribbled in paper for myself.</div><div><br></div><div>3) types of parenting:</div>
<div>  - normal, vertex, slow and bone are implemented in the GE. I see that there are more options in the interface. Is there any that looks important to support?</div><div>I also don&#39;t know what is this one (in the conversion):</div>
<div>
<p style="margin:0px"><a href="https://developer.blender.org/diffusion/B/browse/soc-2014-bge/source/gameengine/Converter/BL_BlenderDataConversion.cpp$2256">https://developer.blender.org/diffusion/B/browse/soc-2014-bge/source/gameengine/Converter/BL_BlenderDataConversion.cpp$2256</a></p>
</div><div><br></div><div>4) Slow parents are specific to the GE?<br></div><div>Is this really used? They seem to be quite buggy or at least not doing what I would expect. What I am doing is 1) parent one object to another 2) go to the child&#39;s object properties panel &gt; Relations Extras &gt; and check slow parent, add some time offset.</div>
<div>If I now do some experiments directly in the viewport.. drag/rotate the parent, it seems to be working. There are problems: if I cancel the move, the child does not cancel. If I parent more objects to the parent, the child jumps..  Where do I need to look at to fix this? (The GE is not running yet)</div>
<div>When I do run the GE, it does not work. It looks like a normal parent relation. (I added an always motion to the parent, and pressed &#39;p&#39;)</div><div><br></div><div>5) @lukas what are those &#39;depsgraph hacks&#39; checkboxes at object properties panel &gt; Relations Extras  ?</div>
<div><br></div><div>6) method consistency on SG_Spatial.cpp</div><div>There is a SetLocal and SetWorld for Position, Orientation and Scale. So far so good. Then there is a Relative Translate Rotate and Scale</div><div>6.1) I don&#39;t really get the point of these functions and they&#39;re all different, Can someone clarify?</div>
<div>6.2) Translate optionally considers the parent, the Rotate and Scale do not.</div><div>6.3) RelativeScale does not have a &#39;local&#39; flag. Of course that applying a scale in local or world coordinates would be the same, but scaling to a value would not. Such as scale = 2 instead of scale * 2<br>
</div><div><pre style="margin-top:0px;margin-bottom:0px"><pre style="margin-top:0px;margin-bottom:0px"><pre style="margin-top:0px;margin-bottom:0px"><br></pre></pre></pre></div><div>7) The SG_ParentRelation interface has an isVertexRelation() and a isSlowRelation() . This doesn&#39;t feel like a good design, because the interface shouldn&#39;t know about concrete implementations.</div>
<div>
<br></div><div>8) KX_SG_NodeRelationships - what is the policy to decide if this should be as is or in separate files?</div><div><br></div><div>Thank you</div><div>Inês Almeida / brita_</div></div>