for these modules. Adds some new convenience funcs to gen_utils.
This is internal change only and presents little change to the
BPy API except for cleanup of some inconsistencies.
A big contribution from Ken Hughes. Thanks!
- give it the key/items interface
- creates some factory functions for const generation
- genutils methods
- method for getting module constants
- method for throwing errors with a print string
- updates to function names
- clean up interpreter launch a bit
- Mostly this cleans up the #includes and header files in the python project.
- Warning fixes are mostly casting issues and misc fixes. General warning clean up.
- #include Python.h MUST come as the first include to avoid the POSIX redefine warning in the unix makefiles
- fno-strict-aliasing flag added to makefile to fix a unavoidable type punning warning in types.c
- based on a request by Campbell (he also provided a patch for scene.Layer) access to layers was improved a little, keeping the old method (ob.Layers is a bitmask) and adding the nicer one (ob.layers is a list of ints). Done for objects and scenes. House-cleaning: .Layer was renamed to .Layers (actually just using strncmp instead of strcmp, so both work, same done for Window.ViewLayers).
- finally committing patch by Ken Hughes to let .clearScriptLinks() accept a parameter (list of strings) to clear only specified texts.
- doc updates and fixes (JMS reported a problem in nmesh.transform() example code).
Thanks all who contributed.
- applied Campbell Barton's patch for access to Oops location and selection of materials, mesh data and objects, slightly modified. Thanks, Campbell;
- got rid of warnings in many files, hopefully not introducing any other during the process. Mostly this was done: 1) new EXPP_incr_ret_True/False functions were added and used instead of "Py_INCREF(Py_True/False); return Py_True/False;". Currently at least the functions use the fact that PyTrue/False == 1/0 and use 1 and 0 to avoid the warnings. 2) Filling of certain types structs got 0's added for all not defined data and methods. This is surely Python version specific, since these structs can change size and content at each major version number Python update.
- patch by Jonathan Merritt: new function Blender.Draw.Image() + its doc;
- patch by Campbell Barton: .users attribute for many types;
- tiny internal change in nmesh.hasVertexUV() method.
Thanks to Jonathan and Campbell for the patches and the patience!
- move static declarations and data definitions out of headers.
the BGL module still need cleaning.
- move declarations out of modules.h and into appropriate .h files.
modules.h still exists as a container for the few modules that
need to #include almost everything.
- all files now have a $Id tag and have been formatted by indent
there are no changes to executable code.
pre-commit versions are tagged with bpy-cleanup-pre-20041007
for the sake of paranoia.
Run everything thru indent to cleanup spaces vs tabs.
Clean up some of the comments by hand.
BGL.c was not touched due to all that macro wackyness.
There are no functional changes to the code.
Pre-indent versions of source are tagged with
tag bpy-cleanup-20040925 , just in case.
- now more than 31 channels possible for ipos
- added lotsa new channels all over
- Texture block has ipo now too
- recoded getname_ei functions
(Will ask nathan to give release log info when he's back!)
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
- Window: added .GetCursorPos()
- Lamp: updated for NoDiffuse and NoSpecular modes
- Registry: new module to handle persistent data
- vector: made it correctly print only 3 values when vec->size==3:
Fixes nmvert coords printed with a 4th 0.0 coordinate
- Text: fixed crash on startup (Python 2.3, linux):
added definition of the Text pyobject earlier, in Types.c
- Continued getting rid of print methods and updating repr ones:
Needed to fix crashes on Windows >= 98 systems.
- Found and fixed a few small memory leaks in EXPP_interface, related to
execution of script links.
* Moved public declarations in camera and lamp to a new file: bpy_types.h.
* Fixed minor bugs in material, rgbTuple and Lamp + other minor changes.
* Made part of the changes to conform to decided naming conventions.
- Trying to fix linking problems in OSX;
- Making module .Get functions behave like the ones in Blender 2.25 - 2.27
(Guignot pointed the incompatibility);
- Included more types to Blender.Types;
- Found by luck and corrected two bugs that were making Blender crash;
- Added/updated some simple functions.
When a script that used setAttr for Camera Data objs (the bug also
affected some other modules) was executed multiple times, Blender
would crash after, let's say, the first 5 or 6 tries. Problem, as
Guignot pointed, was with reference counting. Should be ok now, all
affected modules were fixed.
* The Scene module is now "complete" (= 2.25).
* Made some necessary updates to Object and NMesh.
Found that syntax errors in scripts were giving SIGSEGV, my mistake.
* Added new helper type: rgbTuple.
This is used to represent and deal with rgb color triplets in modules
like Material and Lamp. Updated Lamp module to use it.
Partially implemented. Most of it comes from opy_nmesh.c, plus needed
changes to integrate in into exppython.
* Added helper submodule vector, needed by NMesh.
* Minor changes in other files.
Callbacks registered with Draw.Register in Python are called now.
That should fix submodule Blender.Draw.
* Added a few other missing functions to BPY_interface.c
* Finished implementing Get() function for Camera, Lamp, Image and Text:
Both the .Get(name) and .Get() cases are handled now.
* Added function Blender.ReleaseGlobalDict():
This function should give script writers control over whether the
global Python Interpreter Dict should be cleared after the script is
run (default is to clear). This is a test.
Most of the code comes from bpython/intern/opy_window.c, but two
new functions were added, to access the file and image selector
windows in Blender.
* Added submodules Draw (gui) and BGL (OpenGL wrapper):
The code comes from bpython/intern/opy_draw.c, with minor changes
to integrate it in the new implementation.
* Made changes to Camera, Lamp and Image submodules:
The implementation was improved. These files should be good
starting points for interested new coders to look at, now.
* Renamed interface.[ch] to EXPP_interface.[ch] to avoid conflict:
There is another interface.h file in source/blender/include.
* Implemented BPY_end_python function.
* Implemented error handling. This results in rerunning a script after an
error has occurred. No need to restart blender anymore.
* Camera module supports dir()
* variable assignment now calls the Python equivalent function - this has
type checking and should be safer now.
* Implemented the Lamp module. Used the Camera module as a template.
* Implemented the Image module.
* Added EXPP_ClampFloat and EXPP_intError functions to gen_utils.[ch]
* Implemented 'constant' object.