[Bf-python] mathutil PyNumberMethods behaving badly

Ken Hughes khughes at pacific.edu
Fri Jul 21 09:16:44 CEST 2006


Personally I think having -vec, vec.negate() and veg.negated() is a bit 
like flammable, inflammable and non-flammable.  A little confusing and 
somewhat redundant.  I like the math operations, but don't think we need 
a duplicate method for them (if I understand Joseph's suggestion).

Also, I was just pointing out a bug.  It needs to be fixed prior to 
2.43, but that's a long way off.  If any of the API rewrite is going to 
be done prior to 2.43, I'd like to see the discussion first before the 
implementation.

$0.02 -- Ken

Campbell Barton wrote:
> Hi Joseph, read through this and It sounds like what we want
> 
> Think I suggested that in the first place but we can take it further.
> invert() inverted() - inverted would be realy usefull because at the 
> moment You have to copy a matrix and then invert it wich can be a bit wordy
> 
> omat_i=Blender.Mathutils.Matrix( ob.matrixLocal )  # (wrapped)
> omat_i.invert()
> 
> - could be replaced with
> 
> omat_i= ob.matrixLocal.inverted()
> 
> Do you want help with this or would you rather do yourself?
> Id like to have this for 2.43
> 
> - Cam
> 
> 
> Gilbert, Joseph T. wrote:
>> This was something we discussed a few months ago.
>> The proposal was to have a 2 methods. One which returns a self-modified
>> reference and another that returns a modified-copy.
>>
>> Example:
>> ref_to_orig_vector = vector.negate()
>> new_mod_vector = vector.negated()
>>
>> The -vec are shortcuts in pymath. They should be bound to either of the
>> 2 above methods. It would make sense to have them be bound to the
>> version that returns a new_modified_vector for safety.
>>
>> To keep the current API "negate" would continue to do what it does now.
>> We would need to add "negated", etc. for all the self-modifying methods
>> of all the py math objects that require them.
>>
>> -----Original Message-----
>> From: bf-python-bounces at projects.blender.org
>> [mailto:bf-python-bounces at projects.blender.org] On Behalf Of Ken Hughes
>> Sent: Thursday, July 20, 2006 2:29 PM
>> To: Blender Foundation Python list
>> Subject: [Bf-python] mathutil PyNumberMethods behaving badly
>>
>> Cam discovered a problem in the mathutils with expressions like this:
>>
>> me = Mesh.Get('Cube')
>> x = -me.verts[0].co
>> print x
>> print me.verts[0].co
>>
>> You get this:
>>
>> [-0.565980, -1.386673, 0.000000](vector)
>> [-0.565980, -1.386673, 0.000000](vector)
>>
>> Joseph put in code which modifies the original object, since script 
>> users wanted to concatenate operations, but I don't think we really want
>>
>> to this with math operations (i.e., PyNumberMethods).
>>
>> Seems to me we need two type of operations in mathutils: one modify 
>> the original data and return it and ones that don't (now on three: 1, 
>> 2, 3, "Duh").  Obviously the math operations shouldn't do this, but 
>> looks like
>>
>> we need to "un-deprecate" some of the original methods like
>> vector.negate()
>>
>> Ken
>> _______________________________________________
>> Bf-python mailing list
>> Bf-python at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-python
>> _______________________________________________
>> Bf-python mailing list
>> Bf-python at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-python
>>
>>   
> 
> 




More information about the Bf-python mailing list