[Bf-committers] extending Blender/Yafray Python API

Dietrich Bollmann diresu at web.de
Wed Jun 6 06:32:28 CEST 2007


Hello,

I tried to get an account on the patch tracker but (even after
following the indications at [Resend confirmation email to a pending
account]) I never got a confirmation email.
 
So - here comes the patch per email :)

--- 
Hi,

I wrote some new functions for the Blender/Yafray Python API with the
idea to make all Yafray GUI options readable and settable from the
Python API.

I also reimplemented some setter/getter functions as settable/gettable
member variables as I found this kind of duplication to be common in
the API (often with the functions deprecated).

I like verbose names - so the length of the variable names might not
be appreciated.  Please change them to whatever you think is more
appropriate.

Thanks, Dietrich


* Here comes a list with the newly implemented variables:

(plus two new getter functions and a constant)

scn.render.yafrayGIQuality              - only the setter
`setYafrayGIQuality()' existed
scn.render.getYafrayGIQuality()         - only the setter
`setYafrayGIQuality()' existed
scn.render.yafrayExportToXML            - neither a setter nor a getter
existed
scn.render.yafrayAutoAntiAliasing       - neither a setter nor a getter
existed
scn.render.yafrayClampRGB               - neither a setter nor a getter
existed
scn.render.yafrayAntiAliasingPasses     - neither a setter nor a getter
existed
scn.render.yafrayAntiAliasingSamples    - neither a setter nor a getter
existed
scn.render.yafrayAntiAliasingPixelSize  - neither a setter nor a getter
existed
scn.render.yafrayAntiAliasingThreshold  - neither a setter nor a getter
existed
scn.render.yafrayNumberOfProcessors     - there was already a setter and
a getter: scn.render.yafrayProcessorCount()
scn.render.yafrayGIMethod               - only the setter
`setYafrayGIMethod()' existed
scn.render.getYafrayGIMethod()          - only the setter
`setYafrayGIMethod()' existed
scn.render.yafrayGICache                - only the setter
`enableYafrayGICache()' existed
scn.render.yafrayGICacheBumpNormals     - there was neither a setter nor
a getter
scn.render.yafrayGICacheShadowQuality   - there was already a setter and
a getter: yafrayGIShadowQuality()
scn.render.yafrayGICachePixelsPerSample - there was already a setter and
a getter: yafrayGIPixelsPerSample()
scn.render.yafrayGICacheRefinement      - there was already a setter and
a getter: yafrayGIRefinement()
scn.render.yafrayGIPhotons              - there was only a setter:
enableYafrayGIPhotons()
scn.render.yafrayGITunePhotons          - there was only a setter:
enableYafrayGITunePhotons()

Blender.Scene.Render.USEAOSETTINGS      - new - as this option existed
also in the GUI


* Testing the new functions

This is Blash - the GNU BLender-Again SHell :)
Connection to Blender Server established.   (IP address: 127.0.0.1,
port: 6789)
>>> import Blender; scn = Blender.Scene.GetCurrent()
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.NONE;
scn.render.yafrayGIQuality
0
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.LOW;
scn.render.yafrayGIQuality
1
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.MEDIUM;
scn.render.yafrayGIQuality
2
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.HIGH;
scn.render.yafrayGIQuality
3
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.HIGHER;
scn.render.yafrayGIQuality
4
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.BEST;
scn.render.yafrayGIQuality
5
>>> scn.render.yafrayGIQuality = Blender.Scene.Render.USEAOSETTINGS;
scn.render.yafrayGIQuality
6
>>> scn.render.yafrayGIQuality
6
>>> scn.render.getYafrayGIQuality()
6
>>> scn.render.yafrayExportToXML = not scn.render.yafrayExportToXML;
scn.render.yafrayExportToXML; 
1
>>> scn.render.yafrayExportToXML = not scn.render.yafrayExportToXML;
scn.render.yafrayExportToXML; 
0
>>> scn.render.yafrayExportToXML = not scn.render.yafrayExportToXML;
scn.render.yafrayExportToXML; 
1
>>> scn.render.yafrayAutoAntiAliasing = not
scn.render.yafrayAutoAntiAliasing; scn.render.yafrayAutoAntiAliasing
1
>>> scn.render.yafrayAutoAntiAliasing = not
scn.render.yafrayAutoAntiAliasing; scn.render.yafrayAutoAntiAliasing
0
>>> scn.render.yafrayAutoAntiAliasing = not
scn.render.yafrayAutoAntiAliasing; scn.render.yafrayAutoAntiAliasing
1
>>> scn.render.yafrayClampRGB = not scn.render.yafrayClampRGB;
scn.render.yafrayClampRGB
1
>>> scn.render.yafrayClampRGB = not scn.render.yafrayClampRGB;
scn.render.yafrayClampRGB
0
>>> scn.render.yafrayAntiAliasingPasses =  0;
scn.render.yafrayAntiAliasingPasses
0
>>> scn.render.yafrayAntiAliasingPasses = 64;
scn.render.yafrayAntiAliasingPasses
64
>>> scn.render.yafrayAntiAliasingPasses = 65
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 0 to 64
>>> scn.render.yafrayAntiAliasingSamples =    0;
scn.render.yafrayAntiAliasingSamples
0
>>> scn.render.yafrayAntiAliasingSamples = 2048;
scn.render.yafrayAntiAliasingSamples
2048
>>> scn.render.yafrayAntiAliasingSamples = 2049
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 0 to 2048
>>> scn.render.yafrayAntiAliasingPixelSize = 1.0;
scn.render.yafrayAntiAliasingPixelSize
1.0
>>> scn.render.yafrayAntiAliasingPixelSize = 2.0;
scn.render.yafrayAntiAliasingPixelSize
2.0
>>> scn.render.yafrayAntiAliasingPixelSize = 0.9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 1.000000 to 2.000000
>>> scn.render.yafrayAntiAliasingThreshold = 0.05;
scn.render.yafrayAntiAliasingThreshold
0.05000000074505806
>>> scn.render.yafrayAntiAliasingThreshold = 1.0;
scn.render.yafrayAntiAliasingThreshold
1.0
>>> scn.render.yafrayAntiAliasingThreshold = 0.04
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 0.050000 to 1.000000
>>> scn.render.yafrayNumberOfProcessors = 1;
scn.render.yafrayNumberOfProcessors
1
>>> scn.render.yafrayNumberOfProcessors = 8;
scn.render.yafrayNumberOfProcessors
8
>>> scn.render.yafrayNumberOfProcessors = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 1 to 8
>>> scn.render.yafrayGIMethod = Blender.Scene.Render.NONE;
scn.render.yafrayGIMethod
0
>>> scn.render.yafrayGIMethod = Blender.Scene.Render.SKYDOME;
scn.render.yafrayGIMethod
1
>>> scn.render.yafrayGIMethod = Blender.Scene.Render.GIFULL;
scn.render.yafrayGIMethod
2
>>> scn.render.getYafrayGIMethod()
2
>>> scn.render.yafrayGICache = not scn.render.yafrayGICache;
scn.render.yafrayGICache
1
>>> scn.render.yafrayGICache = not scn.render.yafrayGICache;
scn.render.yafrayGICache
0
>>> scn.render.yafrayGICacheBumpNormals = not
scn.render.yafrayGICacheBumpNormals; scn.render.yafrayGICacheBumpNormals
1
>>> scn.render.yafrayGICacheBumpNormals = not
scn.render.yafrayGICacheBumpNormals; scn.render.yafrayGICacheBumpNormals
0
>>> scn.render.yafrayGICacheShadowQuality = 0.01;
scn.render.yafrayGICacheShadowQuality
0.0099999997764825821
>>> scn.render.yafrayGICacheShadowQuality = 1.0;
scn.render.yafrayGICacheShadowQuality
1.0
>>> scn.render.yafrayGICacheShadowQuality = 0.001
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 0.010000 to 1.000000
>>> scn.render.yafrayGICachePixelsPerSample = 1;
scn.render.yafrayGICachePixelsPerSample
1
>>> scn.render.yafrayGICachePixelsPerSample = 50;
scn.render.yafrayGICachePixelsPerSample
50
>>> scn.render.yafrayGICachePixelsPerSample = 51
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 1 to 50
>>> scn.render.yafrayGICacheRefinement = 0.001;
scn.render.yafrayGICacheRefinement
0.0010000000474974513
>>> scn.render.yafrayGICacheRefinement = 1.0;
scn.render.yafrayGICacheRefinement
1.0
>>> scn.render.yafrayGICacheRefinement = 0.0001
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: out of range - expected 0.001000 to 1.000000
>>> scn.render.yafrayGIPhotons = not scn.render.yafrayGIPhotons;
scn.render.yafrayGIPhotons
1
>>> scn.render.yafrayGIPhotons = not scn.render.yafrayGIPhotons;
scn.render.yafrayGIPhotons
0
>>> scn.render.yafrayGITunePhotons = not scn.render.yafrayGITunePhotons;
scn.render.yafrayGITunePhotons
1
>>> scn.render.yafrayGITunePhotons = not scn.render.yafrayGITunePhotons;
scn.render.yafrayGITunePhotons
0
>>> Blender.Scene.Render.USEAOSETTINGS
6
>>> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-blender-yafray-python-api.txt
Type: text/x-patch
Size: 24330 bytes
Desc: not available
Url : http://lists.blender.org/pipermail/bf-committers/attachments/20070606/ec51933f/attachment-0001.bin 


More information about the Bf-committers mailing list