Commit Graph

50 Commits

Author SHA1 Message Date
e60291d39c Header file clean up and warning fixes
- 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
2005-07-18 03:50:37 +00:00
Stephen Swaney
769fa6252d Patch from Martin Poirier.
Misc bpy Curve fixes and updates, includes bugs #1687 and #2637
2005-06-13 19:15:02 +00:00
Stephen Swaney
a1f97a01e4 fix warnings about implicit declarations.
overlooked by being in a hurry.
2005-03-07 03:31:14 +00:00
Stephen Swaney
0fdc0ce297 Another step in the Big Bpy Cleanup.
- 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.
2004-10-07 19:25:40 +00:00
Stephen Swaney
a509b8adc9 Another round in the Great BPy Cleanup:
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.
2004-09-25 20:30:40 +00:00
e7d3039d12 - Blender: added option 'scriptsdir' to Blender.Get();
- small updates to the docs;
- Object: small fix to getMatrix: check during_script() to avoid undesired loops; added old behavior (pre 2.34) as option: .getMatrix('oldlocal');
- tentative fix for bug #1275: scene REDRAW scriptlinks were not being executed (the call to do so was missing):
http://projects.blender.org/tracker/index.php?func=detail&aid=1275&group_id=9&atid=125
    added the call in drawview.c, in drawview3dspace().  This causes the scriptlink to be called for each visible view3d, but that's what happens with object redraw scriptlinks, too.  Anyway, this is still a test.  The place was chosen based on the idea that a scene redraw scriptlink is like an object redraw one, but for all objs in the scene at once.

- Window.Theme: new submodule, to get/set theme options in Blender;
- Added the script save_theme.py (Help menu for now), to save the current theme in Blender as an executable script (currently shown in the Scripts->Misc menu).

There's more work to do for themes, like defining a proper place for them in the interface, adding documentation (for now the added script and the ones it generates can give a pretty good idea of how to use the new module), probably extending themes to support SpaceScript and so on.
2004-09-21 05:28:17 +00:00
446e1fae7c ** Note: two new files added, projectfiles will need an update.
Scripts:
  Campbell Barton (Ideasman, thanks) updated his Wavefront OBJ importer.
BPython:
- Finally committed pending contributions:
    Chris Keith wrote the Blender.Sound module -- still some testing to do this week;
    Joseph (joeedh) added the OnLoad scene script event;
    Satish Goda added 6 GLU functions to Blender.BGL.  Great additions, thanks all!
- Small changes to Blender.Load (leave editmode as Blender wants) and Window.EditMode (allow definition of "undo string");
- Fixed bug #1539: Window.RedrawAll() crashed Blender if an empty spacescript was available while using it in a gui-less script.
- doc updates.
2004-08-17 04:26:00 +00:00
73f1da749b Nathan's huge ipo patch.
- 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!)
2004-07-26 21:44:55 +00:00
Stephen Swaney
bce2c02fdd New Curve method Curve.appendPoint( numcurve, newpoint ) to add
points to a Curve.

New supporting module CurNurb to provide access to the curves in a Curve
and their associated points.

Curve module now supports Python iterator and sequence protocols.
This allows typical python programming idioms using 'for' statement
and the [] operator.

# example 1
for curve in a_curve:
	for point in curve:
		print point

#example 2

curnurb = a_curve[0]
curnurb.append( [1,1,1,1] )

Still under construction.  Epydoc will follow.
2004-07-21 21:01:15 +00:00
7b3b3ae432 Trying to fix bug reported by Peter den Bak and Meino Christian Cramer (thanks!):
-- splash screen disappeared (duh, I did that!) and Blender quits upon exiting from some 225 games:

It was troublesome to find how to run demos in general with the screen correctly redrawn before they started, etc.  Ended up making the above error in screenmain().  About the games, I don't have them and will need some time to get the files for testing, but I'll do it, though only on linux.

BPython:
-- Window: added GetScreens, SetScreen and improved GetScreenInfo.
-- Object, NMesh: updated (added in NMesh) method getMaterials to return either only valid materials as before or also empty slots (as None).  This previous omission can be considered a bug, since it made info about materials incomplete / incompatible with face mat indices.  Thanks Yann Vernier for bringing this up and sending/proposing a patch that also fixed a bug related to assigning lists of materials with different lengths to obj and its mesh. setMaterials also accepts Py_None entries now, which become empty slots in Blender.
-- doc updates.
2004-07-20 08:16:46 +00:00
382297b687 BPython:
- New module + doc: Blender.Library:
  It's like File->Append, loads datablocks from .blend files.
- small updates to fix warnings and accomodate for the new module, in readfile.[ch]
- New Blender.sys module function: time, a wrapper of the PIL get time function.
- Updated original makefile and scons builds.
2004-04-24 20:04:37 +00:00
abe8191d70 BPython:
- fixed two warnings, unused var in Object.c and undeclared function in script.c
- updated Blender.Draw doc, it was missing info about Button object
- refactored pytype initialization to try to fix for once platform (and distro!) specific crashes on startup.  This asked for tiny updates in Effect.[ch] (removed static from declaration, moved definitions to the .c file) and modules.h
- fixed error I made trying to fix scripts w/ no [eol] char in menus.  Thanks Michael Velikanje for reporting the problem!
2004-04-23 13:11:48 +00:00
a6a32cf504 -NLA module added
-ability to set poses for the armatures - allows for keyframing armatures
-adds support for actions/actionchannels
-additional checking for addBone and clear parenting
-moved getActionIpos from object module to NLA module
2004-04-19 06:57:41 +00:00
0ae03d1626 Eesho's patch for new noise textures!
Basically this provides three new things:

1. Choice of a list of noise-base functions, which can be used by the
   current Clouds, Marble, Wood textures as well.
2. Three new texture types: Musgrave, Voronoi and DistortedNoise
3. Python access to noise functions (not for render!)

All of this together makes Blender's builtin procedural textures a LOT
more powerful. Here again, a full webpage should be made to show off all
possibilities, and explain some of the more scientific names for settings.

A good read on Musgrave textures can be found here:
http://www.ypoart.com/Downloads/Musgrave.htm
About Voronoi:
http://www.ypoart.com/Downloads/Worley.htm
I can't find official DistortedNoise docs easily... maybe its something
Eeshlo created himself.

I've spent some time to change the patch Eeshlo provided. Worth noting:
- created main texture "Musgrave" with 5 sub choices (instead of 5 new
  main textures)
- added for all new textures the option to scale (zoom in out)
- added patch in do_versions to initialize variables

I hope the Python team will check on the Noise.c API. And include in docs!
2004-04-03 13:59:27 +00:00
8f3a9815ba Mathutils library for the python API
- support for quaternions, euler, vector, matrix operations.
- euler supports unique rotation calculation
- new matrix memory construction and internal functions
- quaternion slerp and diff calculation
- 2d, 3d, 4d vector construction and handling
- full conversion support between types
- update to object/window to reflect to matrix type
- update to types/blender/module to reflect new module
2004-02-29 13:20:34 +00:00
5e7f9dfa08 BPython:
-- New module: Blender.Texture, by new developer Alex Mole.
Most of it is done: guess only Ipo, envmap, colorband and plugin were not implemented yet.
2003-11-23 17:46:06 +00:00
a4aad039aa The new Lattice module for python
- enabled all the Lattice methods in Object.c
- added Lattice types to Types.c
- add Lattice initialization to Blender.c
- updated makefile for new lattice file
- added Lattice.c/Lattice.h
2003-11-13 04:00:59 +00:00
c0303d78b4 Exppython:
- Object: implemented getBoundBox and makeDisplayList methods
- NMesh and Object: small internal changes for nicer behavior
- Draw: added function PupMenu
- Docs: updated for the additions above
Auto build tiny fix: added the imbuf include dir to source/creator/Makefile.am
2003-09-20 03:40:16 +00:00
775f006bf1 Exppython:
- Window: implemented .SetCursorPos, .GetViewMatrix, .GetViewVector
- Lamp: .setDist was not in the methods table:
    Fix by new bpython developer Stephen Swaney
- Scene: .frameSettings was crashing Blender (pointed by jms)
- Added site dirs to sys.path (patch by Stephen Swaney)
- NMesh: small internal change (added pointer to parent object)
- Object: function NMesh_FromPyObject has a new arg: pointer to obj
- Docs: added docs for implemented functions, plus some more info
2003-09-18 00:54:43 +00:00
a09e5a7f2f Exppython:
- 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
2003-09-03 04:13:08 +00:00
916f527253 * Fixed problems in with script linking.
I had to update many files to get this to work.
2003-07-27 15:56:32 +00:00
2ccf7ffb84 * removed the #include .c statements and replaced them with corresponding .h
files.
* updated the build environment to include the needed .c files.
* Updated the modules.h file to expose the necessary functions to other
  modules.
2003-07-20 18:06:06 +00:00
b2d1921d26 Exppython:
- Trying to correct a compile problem. IpoCurve_Init wasn't declared in modules.h
2003-07-19 20:44:25 +00:00
3482beef16 name changes for Curve functions (added an underscore) 2003-07-09 23:19:18 +00:00
fad2aeb3fb - small fix in Sys.c to compile on Windows:
Thanks Florian Eggenberger for telling us about it. And Greg McBride for
   pointing a possible fix.
- Draw.Text and Draw.GetStringWidth updated:
   Now they accept an optional second parameter to set font size and Draw.Text
   returns the drawn string width.
- Partially fixed the update() and PutRaw() bugs in NMesh:
   A total fix will require bigger changes, but what was done (unless buggy)
   takes care of the common cases.
2003-07-01 05:19:14 +00:00
3284916aeb * Added some internal functions to the Material module
* Updated the Object module with some more functions. Only 1 function left to
  implement.
* Removed the getDeformData function declaration.
2003-06-29 16:49:21 +00:00
eaf1cdd383 - More renaming all around to follow our conventions
- Implemented partially Blender.Sys
- Worked on issues related to sys, path
- Took away most "debug" printfs
2003-06-28 07:38:21 +00:00
72f0cdace4 * Added function Blender.Draw.GetStringWidth().
* Added doc and small test for Blender.Test
* trying changes to make Blender.Test.unlink() safer.
2003-06-26 02:03:51 +00:00
06ee04fb05 * Added more doc files for epydoc and a test for the camera module.
* 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.
2003-06-24 07:21:17 +00:00
61e41f6817 * Added matrix module
* Moved the function EXPP_tuple_repr from vector.c to gen_utils.[ch]
* Matrix functionality should work now in Object module.
* Fixed compilation warning about implicit declaration of M_World_Init.
  Added the declaration to modules.h
2003-06-22 20:14:11 +00:00
864e5640f7 * Applied a small fix to a bug reported by Guignot:
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.
2003-06-09 04:01:48 +00:00
ad61dd37ef * Improved error checking in BPY_interface.c:
Applied a fix suggested by Guignot
* Added part of Module Blender.Scene.
* Added doxygen comments to Camera.c .
2003-06-07 03:49:45 +00:00
a9ced6d86a * Added two modules:
Guignot contributed the Ipo and Metaball modules.  Metaball wasn't
   available in the 2.25 API, it's a new addition.
* Minor changes in other files.
2003-06-05 18:03:46 +00:00
d29a8c0a3c *Minor updates:
changed some function names and cleaned the Camera header file
2003-06-05 16:21:44 +00:00
a127b38760 * Fix compilation errors on Windows hopefully. Implemented the suggestion done
by Aphex - thanks.
* Added the doc strings to the Object module.
* Added more functionality to the Object module.
2003-06-02 20:15:50 +00:00
302479603b * Updated NMesh port to exppython:
Added material and image handling/hooks and the constant dictionaries.
    Changed Image.h and Material.h to only have public declarations, so
    NMesh could include them.
2003-05-31 04:43:10 +00:00
b13c0705d3 * Module Curve updated:
Jacques Guignot (guignot) sent updated files for his Curve module.
* Module Armature (and its submodule Bone) added:
    Jordi Rovira i Bonet (bandoler) contributed both modules, which
    are NEW additions to Blender Python, not available in Blender 2.27.
* Added function to NMesh.c:
    Jordi again.  He added the function NMesh_getVertexInfluence().
2003-05-29 04:00:35 +00:00
b7bf9bf1b7 * Added submodule Blender.Material
* Added submodule Blender.Types:
    Blender Type definitions can't be static anymore.
* Some cleanup of now unused defines in Camera.h and Lamp.h
2003-05-28 04:36:18 +00:00
4ca6f542a2 * Implemented the 3 functions needed by the Object module:
For  Camera and Lamp
* Minor updates, NMesh is not finished yet.
2003-05-20 03:56:41 +00:00
612123e8fd * Updated the naming convention for some functions. I forgot those the last
time.
* Created the M_ObjectCheckPyObject and M_ObjectFromPyObject functions. These
  are needed for interfacing to other modules.
* The Object methods have been created. Not all of them are implemented yet.
2003-05-17 13:46:15 +00:00
d03323b1c3 * Added Blender.Curve submodule, written by Jacques Guignot (guignot):
Jacques contributed a new module to exppython, one that isn't available
    in the current 2.27 API.  Welcome, guignot : ).
2003-05-17 07:08:08 +00:00
ed78dcc96c * Added submodule NMesh:
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.
2003-05-17 04:29:49 +00:00
81d2589d6a * Implement Blender_Redraw(), minor changes in other files
* Implemented submodule Text
2003-05-09 04:34:40 +00:00
1e891f844a * Added submodule Window, including FileSelector and ImageSelector:
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.
2003-05-08 03:06:46 +00:00
788fa67bdf * Split Object.c (created Object.h)
* Split Blender.c (created Blender.h)
* Followed a naming convention suggested by Willian for Modules and Classes.
* Implemented New, Get and GetSelected functions for the Object module.
* Implemented most of the attributes in the Get and Set functions for the
  Object module.
* Hopefully fixed a link error on OS X.
  Declared g_blenderdict externally in modules.h and moved the real
  declaration to Blender.c
2003-04-21 20:33:06 +00:00
ec669df6ee The following updates have been contributed by Willian P. Germano:
* 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.
2003-04-08 19:54:14 +00:00
92d292f8d3 * Added the Camera module.
This one has been implemented by Willian (IanWill).
2003-03-25 19:16:13 +00:00
b6b9c648bc * Removed datablock.[ch]
* Object.Get("") should work.
* Many variables from module Object are implemented.
* Updated build environment to generate more warnings (-Wall)

Michel
2003-03-15 19:14:16 +00:00
f08719cfc6 Swig is unfortunately not an option anymore. This means implementing all
wrapper functionality by hand.

* Removed the swig files (*.i and *_wrap.c)
* Created initial datablock functionality. Most of it has been copied from
  the old implementation.
* Created some general functions in gen_utils.[ch]
* Blender.Get(), Blender.Set() and Blender.Redraw functions should work in a
  script now.
* Started implementation on an Event function call (BPY_do_pyscript)

Michel
2003-03-08 18:10:20 +00:00
4b825fddc7 Implemented enough functionality to actually execute Python from within
Blender.
* Moved api2_2x/interface.c to ./BPY_interface.c
  This will be the general api layer from which all variants of the Blender
  api. Currently only the 2.2x variant is initialised.
* Used swig (www.swig.org) to create Python wrappers for a couple of dummy
  functions.
* Started implementation of the Blender and Blender.Object modules.

Michel
2003-02-26 19:22:24 +00:00