<div dir="ltr">Ortiz, i meant to thank you for the example you provided, and asked to see Jacob&#39;s logic brick setup.<div><br></div><div>Clearing the response for clarity on what I still need feedback:</div><div><br></div>


<div>3) Parenting types<br></div><div><span style="font-family:arial,sans-serif;font-size:13px">When I parent to a vertex, does it mean I am only parenting to the position? As a user I am not choosing the specific vertex..</span><br>


</div><div><div><span style="font-family:arial,sans-serif;font-size:13px">3 Vertices/Triangle </span><span style="font-family:arial,sans-serif;font-size:13px"> </span><span style="font-family:arial,sans-serif;font-size:13px">-  at the moment this is doing exactly the same as a normal parent relation</span><br>


</div><div></div></div><div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">Shouldn&#39;t vertex (and triangle) have the relative/offset/inverse option too?</font></div></div><div style="font-family:arial,sans-serif;font-size:13px">


<font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">4) Slowparents</font></div><div><font face="arial, sans-serif"><div>
I think it makes more sense to have an object parented to another according to whether it makes sense or not for the object to be in the other&#39;s transform space (following it&#39;s scale, orientation..). I think of this as a &#39;tight&#39; connection, as if the child totally belongs to / is part off the parent. If the child is instead meant to track another object, it should not be it&#39;s child, it should follow it according to some function/logic.</div>


<div><br></div><div><div>Slow parenting is currently calculated in the scene graph as a slerp.</div><div>I think this would be better implemented with a &#39;constraint&#39; controller, allowing:</div><div>- a better user interface: the current one is quite hidden and not very flexible</div>


<div>- more constraint types and tweaking</div><div>- more flexibility in the code as well by having this out of the scene graph and instead on a step meant to update an object&#39;s location relative to others.</div><div>


- more accuracy - currently, the slerp is not using a time delta and may be run several times per frame according to scene graph needs</div><div><br></div><div>What I am proposing here is 1) move slow parent out of the scene graph 2) implement a new controller that reproduces this functionality and more</div>


<div>Does this make sense? Is it a good idea? Does it have enough priority?</div><div><br></div><div><br></div><div><div style="font-size:13px">5) what are those &#39;depsgraph hacks&#39; checkboxes at object properties panel &gt; Relations Extras ?<br>


&gt;Ton added these as a way of telling to depsgraph to tag objects or their object-data block to get calculated one more time. It&#39;s a quick hack aimed at providing an optional way to fix a very limited number of pseudo-cyclic scenarios. Does it work? Only in a very limited number of cases, but</div>


<div style="font-size:13px">hopefully enough to tide us over until the real problem gets solved...<br></div><div style="font-size:13px">-&gt; Can you give me a concrete example? should I check if the GE scenegraph is also respecting this checkboxes or it doesn&#39;t apply?<br>


<br><br>6) method consistency on SG_Spatial.cpp</div><div style="font-size:13px">There is a SetLocal and SetWorld for Position, Orientation and Scale. So far so good.</div><div style="font-size:13px">Then there is a Relative Translate Rotate and Scale:</div>


<div style="font-size:13px">6.1) I don&#39;t really get the point of these functions and they&#39;re all different, Can someone clarify?</div><div style="font-size:13px">6.2) Translate optionally considers the parent, the Rotate and Scale do not.</div>


<div style="font-size:13px">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</div>


<div style="font-size:13px"><br></div><div style="font-size:13px">The relative translate is used on the Object/Motion Actuator and the Steering Actuator with local as false.</div><div style="font-size:13px">The relative location is used in the Object/Motion Actuator and the MouseActuator</div>

<div style="font-size:13px">Both are hooked in the python API:</div><div style="font-size:13px"><a href="http://www.blender.org/documentation/blender_python_api_2_71_release/bge.types.KX_GameObject.html?highlight=applymovement#bge.types.KX_GameObject.applyMovement" style="font-size:small" target="_blank">http://www.blender.org/documentation/blender_python_api_2_71_release/bge.types.KX_GameObject.html?highlight=applymovement#bge.types.KX_GameObject.applyMovement</a><br>

</div></div><div>According to the python API docs, &#39;not local&#39; should be world space, not parent space.<br></div></div><div>The relativeTranslate is using the parent if existing, also, the caller ensures that the physics also applies the same transform using world space and never the parent: </div>

<div>
<p style="margin:0px"><a href="https://developer.blender.org/diffusion/B/browse/soc-2014-bge/source/gameengine/Ketsji/KX_GameObject.cpp$594" target="_blank">https://developer.blender.org/diffusion/B/browse/soc-2014-bge/source/gameengine/Ketsji/KX_GameObject.cpp$594</a></p>

<p style="margin:0px">Should I change this? It can have an impact in previously made games using the logic bricks or python.</p></div><div><br></div><div><div style="font-size:13px">The relative scaling is not used by logic bricks and does not have a python hook. Is it only directly connected in places where I think it can be removed.</div>

</div><div style="font-size:13px"><br></div><div style="font-size:13px">---</div><div style="font-size:13px">Inês Almeida</div></font></div></div>