[Bf-python] Layer handling inconsistant

Carlos López klopes at unizar.es
Wed Apr 20 08:51:15 CEST 2005


Campbell Barton wrote:

> Heres a solution!
> the visibleLayer is a property of the scene, each scene has its own 
> visible layers, just checked.
> Keep Window.ViewLayer(), just add the layer flag as class variable to 
> the scene.

Sorry!
The visibleLayer is a Window property! You just may keep it, using the 
lock button (next to layers squares) to get it common to a whole scene, 
so there must be a 'lock' window flag.

Regards,
Klópes

> scn = Scene.GetCurrent()
> ob.layer = scn.layer
>
> - We should realy be adding scene spesific stuff, rather then global.
> - Cam
>
>
>
> Campbell Barton wrote:
>
>>
>> >From python object docs
>>
>> *The object layer. This value is a bitmask with one position set for 
>> each of the 20 possible layers starting from the low order bit. The 
>> easiest way to deal with these values in in hexadecimal notation. 
>> Example: *
>>
>> * ob.Layer = 0x04 # sets layer 3 ( bit pattern 0100 )
>> *
>>
>>
>> So ob.layer is a flag, and objects can Exist on Multiple layers (Try 
>> moving to another layer with M pressing shift while selecting 
>> multiple layers)
>>
>> The flag is what blender uses internally, I have become used to using 
>> binary logic in python- and it seems you need to be when python 
>> functions are returning flags.
>>
>> There realy needs to be a way to get the view flag of the active 
>> layers, having the user generate the flag themself is realy dumb.
>> - Cam
>>
>>
>>
>> Joseph Gilbert wrote:
>>
>>> Hehe.  Well ViewLayer() returns the list of visible layers and 
>>> ob.layer shows the layer the object is visible on (i didn't write 
>>> either of these O:-)  ) You can't do a ob.layer = ViewLayer(). 
>>> Doesn't make sense. Objects need to be on a single layer. (correct 
>>> me here if i'm wrong). If what you want is a test to see which layer 
>>> is visible and move and object to it, you need to test for ob.layer 
>>> in the list returned by Window.ViewLayer(). Right?
>>>
>>> if ob.layer in Window.ViewLayer():
>>>   ob.layer = Window.ViewLayer()[0]
>>>
>>> or something should work right?
>>>
>>>
>>> Campbell Barton wrote:
>>>
>>>> Stephen Swaney wrote:
>>>>
>>>>> On Mon, Apr 18, 2005 at 10:53:44AM -0400, Gilbert, Joseph wrote:
>>>>>  
>>>>>
>>>>>> ob.layer takes a single int as input. It looks like you want to 
>>>>>> set the ob.layer to a list of ints returned by viewLayer(). I 
>>>>>> think the best way to implement this is to have ob.setattr to 
>>>>>> parse a sequence instead of an "int" value. (see vector() in 
>>>>>> mathutils) That way ob.layer will accept a single int or a list 
>>>>>> of values. This approach would allow you to do ob.layer = 
>>>>>> ViewLayer().
>>>>>>   
>>>>>
>>>>>
>>>>> I would rather see overloaded argument lists like this than flags to
>>>>> change the return type of a method.
>>>>>
>>>>>  
>>>>>
>>>> I dont think its ideal for have ob.layer accepting both formats of 
>>>> layers is ideal.
>>>> What if they want to see of the object is equel to the view layers?
>>>>
>>>> if ob.layer != Window.ViewLayer(): # Would Not work
>>>>
>>>> would need to do
>>>>
>>>> oldlayer = ob.layer
>>>> ob.layer = Window.ViewLayer()
>>>> visLayer = ob.layer
>>>> ob.layer = oldlayer
>>>> if oldLayer != visLayer: # This would work.
>>>>     .....
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>  
>>>
>>
>>
>> -- 
>> Campbell J Barton
>>
>> 133 Hope Street
>> Geelong West, Victoria 3218 Australia
>>
>> URL:    http://www.metavr.com
>> e-mail: cbarton at metavr.com
>> phone: AU (03) 5229 0241
>>  
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> 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