Best practise to transfer object characteristics



  • On 09/05/2018 at 16:52, xxxxxxxx wrote:

    Hi folks,

    usually there are different ways to perform a task and sometimes I'm unsure which one to prefer.

    E.g. like these two ways to transfer the rotation from one object to another in Python.

    Way 1:

      
    obj_2.SetRelRot(obj_1.GetRelRot())  
    

    Way 2:

      
    obj_2[c4d.ID_BASEOBJECT_REL_ROTATION] = obj_1[c4d.ID_BASEOBJECT_REL_ROTATION]  
    

    The outcome is the same here but is one way better than the other and why (e.g. performance-wise)?

    I'd intuitionally tend to the first method but I'm not absolutely sure if it is really superior to way 2.

    Any hints?

    Kind regards,
    Tom



  • On 09/05/2018 at 19:10, xxxxxxxx wrote:

    This is covered some on a cineversity wiki page, although it doesn't use the exact examples you have:

    https://www.cineversity.com/wiki/Python%3A_Creating_objects_and_modifying_parameters/

    They don't get into object methods like SetRelRot(), so it'd still be interesting to find out if there's a big difference there.



  • On 10/05/2018 at 02:53, xxxxxxxx wrote:

    Hi,

    The fastest way is the first with SetRelRot().

    darby linked an interesting page on Cineversity wiki, where there's a nice explanation why using the subscript operator [] is slower.

    In the end, performance isn't so important for most scripters and using [] isn't wrong for object's parameters.



  • On 10/05/2018 at 06:08, xxxxxxxx wrote:

    Hi Darby and Yannick,

    thank you both of you, also for the wiki link.
    So I had the right feeling indeed. 😉

    Kind regards,
    Tom


Log in to reply