In memoriam: Jacques Guignot

This release is dedicated to our fellow french developer Jacques

Guignot.

 

Jacques was the third member to join the team, when we were still

rewriting and starting to expand the API from Blender 2.25 Publisher,

a couple months after Michel Selten started the initiative. Besides

rewriting the Ipo module, he also contributed all new modules --

Curve, Effects, Metaball and World -- present in the 2.28 release,

when our implementation finally substituted the old one. This team

effort was later voted "Best Coding Achievement" in the first Blender

Conference (2003).

 

Jacques was a computer programming teacher and open source enthusiast,

and also a man of culture and sensibility, a pleasure to chat with.

Most of all we will remember him as a very kind and friendly developer.

Thanks, pal!

 

Jacques died on February 6th, 2005.

 

Blender Python API Release Notes for Blender 2.37

1) Important notes:

 

- This release is still compiled against Python version 2.3, for the

next we should be with 2.4. If you need a version compiled against

2.4, please check or ask at the testing builds forum of blender.org,

there were talks about having those available about a week after

official release.

 

- There have been a few changes in directory structure for scripts.

Now both the data dir and modules dir are inside the main scripts dir.

This can cause problems for users who have their own .blender/ folders

in their home dirs, since some scripts won't be able to find all

BPython modules they need. The "fix" is quite simple: copy the

scripts/ dir tree from Blender's installation on top of your

<homedir>/.blender/scripts folder.

 

2) Additions and updates:

 

- New module: Text3d + Font to access 3d text objects

 

- new menus for registered scripts: Render, Themes, FaceSelect, System

- added Oops location and selection attributes for materials, mesh

- data and objects added .insertIpoKey() method for objects,

- materials, lamps, worlds, cameras. .clearScriptLinks() method now

- accepts optional list of script links to clear added users attribute

- for some types improved access to layers in Scene, Object: old

- .Layer(s) expects an integer (layer bitmask), .layers accepts a list

- of strings

 

Script links:

- New: Space Handlers -- these are different script links, linked to spaces

(3d View only, currently) for events and draw callbacks. Check Blender

Python Reference documentation for 2.37 for details.

- new event: "Render", runs as "Render" before rendering stills or animations

and as "PostRender" after rendering, for cleanups.

- now "blender -y" disables all script links, not only scene onload ones.

- new "Enable Script Links" button in scripts buttons window, plus cosmetic

updates to help adding script links.

 

Per module:

 

Blender:

- added Run(), UpdateMenus(), ShowHelp()

- Get() now can return all paths from User Preferences window, File Paths tab

- added .mode attribute: tells if Blender is in "background" or "interactive" mode

- .event attribute holds ascii value (if valid) during gui events callback

 

Object:

- support for particle interaction settings and softbody settings

- object.getData(): added optional boolean parameter 'names_only'

- object.get/setDupliVerts()

 

Curve:

- curve.isCyclic(), CurNurb.isCyclic()

- get/setBevOb() (get, set and clear bevel object)

- access to attributes flagU and flagV

 

NMesh:

- complete edges support

- face.sel (edit mode selection state) and face.hide attributes

- nmesh.update(): added optional boolean parameter 'vertex_shade' to

init vcols with shading info

- nmesh.setMode() accepts alternatively an int parameter, as returned

by nmesh.getMode()

- nmesh.transform()

- GetNames()

 

Window:

- file and image selectors now support methods as callbacks

 

Image:

- image.setFilename()

- image.getPixelF(), image.getMaxXY()

 

Camera:

- camera.get/setScale for ortho cameras

 

Draw:

- Image()

- large text support in Text() and GetStringWidth()

 

Texture:

- 'NormalMap' image flag

 

Scene:

- scene.getActiveObject()

 

Scene.Render:

- render.getTimeCode()

 

Registry:

- support for writing to / reading from config files saved to disk

 

Theme:

- support for Time space and new theme variables

 

3) Bug Fixes:

 

#2093: Ipo.addCurve() added curves of undefined type

#2160: Buggy script header stopped registration of other scripts

#2117: Overflow in Armature.Bone.setName()

#2157: crash in Blender.Image.image.reload() method

#2192: sys.makename() parameter length smaller than related functions

#2074: crash with totally empty string button

#2123: filename string being overwritten in Text.Load() fixed

#1655: background mode (blender -P script) fixed / expanded to work properly

#2379: made small changes to bevel_center's ui to improve display of a button value

#2254: Curve.appendPoint() gave segfault in PySequence_Check()

#2566: setting a scene's MapOld and MapNew values does nothing

#2418: crash when calling the file selector after setting the progress bar

#2429: event for canceled menus being picked as normal event

#2211: hangs when adding verts to a mesh with groups

#2033: vertices of mesh parented to lattice scaled incorrectly

#2607: possible segfault with String button if the allowable length is greater than 400

#2490: Vector == None gives warning

#2476: Image.Draw() failing in certain screen configurations

 

- World.get/setMode() were not registered

- Preventing scripts win redraws during slider callbacks

- Broken OpenGL urls in BGL docs fixed

- Added corrections and missing ipo channels for Camera, World, Material modules

- Mathutils: Matrix_Determinant() was returning its input arg rather than

the determinant; fixed code and added 16 digits precision to AngleBetweenVecs() (was 8)

 

4) Scripts:

 

Updated:

 

Save Current Theme

Texture Baker

BVH importer

Apply Deform

Sel Same (Similar Faces)

AC3D import and export

BPy Doc Browser

System Info

Help Browser

Dispaint

Fix From Armature (now called Fix From Everything)

Unweld

VRML 2 (now called VRML 97)

Batch Name Edit

Paths importer (svg part)

Wavefront OBJ importer and exporter

 

New:

 

X3D exporter by Bart

Envelope Suite by Jonas Petersen

BVH 2 Armature by Jean-Baptiste Perin

Camera Changer by Regis Montoya

Interactive Console by Campbell

Discombobulator by Evan J. Rosky

Scripts Config Editor (helper script)

 

5) Documentation

 

- Old and new scripts basic documentation can be browsed with the

Scripts Help Browser Script in the Help menu. Some of them have

links to online documentation.

 

Also, this is the wiki page for new offered scripts:

New Scripts

 

- Soon after the release the updated 2.37 BPython API Reference

doc should become available at the documentation section of blender.org.

 

6) )Credits

 

(98 commits from January 4th to May 29th)

 

The following people have contributed with code commits, bug reports,

documentation, patches, suggestions, script updates or additions (we

appologize for possible omissions and thank corrections):

 

Joilnen B. Leite, Stephane Soppera, Ken Hughes, Stephen Swaney, Johnny

Matthews, Joseph Gilbert, Campbell Barton, Jonathan Merritt, Willian

P. Germano, Tom Musgrove, Toni Alatalo, Austin Benesh, Martin Poirier,

Kent Mein, Michael Reimpell, Yann Vernier, Daniel Dunbar, Jean-Michel

Soler, Alex Mole, Gergely Erdelyi, Roland Hess, Manuel Bastioni, Paolo

Colombo, Melchior Franz, Gert de Roost, Bart, Jonas Petersen,

Jean-Baptiste Perin, Regis Montoya, Evan J. Rosky, German Alonso

Tamayo.