[Bf-python] Scene.Layer+docs in Patch tracker

Campbell Barton cbarton at metavr.com
Wed Apr 20 06:09:22 CEST 2005


Another in the list of emails to myself. :)

This patch makes to possible to use scene layers the same way as 
object.Layer
scene.Layer since layers are properties of scenes.

As with ob.Layer, scene.Layer is a int flag.
you can of course interchange ob.Layer and scene.Layer variables.
G.vd.lay (Current display layer) is updated if the scene being changed 
is active. as with Objects
Blender.Redraw(-1) Will refresh the buttons.
- Cheers

https://projects.blender.org/tracker/index.php?func=detail&aid=2460&group_id=9&atid=127




> 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.
>
> 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
>>  
>>
>
>
>-- 
>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
>  
>


-- 
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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/bf-python/attachments/20050420/d5f24c05/attachment.html>


More information about the Bf-python mailing list