Commit Graph

440 Commits

Author SHA1 Message Date
dd17f7e725 BPython:
- Added Blender.Run(script) + doc update (forgot to mention in my previous commit).

Trying to fix two mistakes from my previous commit:

- nmesh.transform(): forgot yesterday that affine vectors have 4th component = 0, now updated normals transformation accordingly.

- As Ton pointed, recursive parsing of scripts dirs in search of scripts was a mess.  I simply forgot about the "//" trick and much worse, to protect against worst cases ("/", for example). Now the code uses BLI_convertstringcode to take care of "//", doesn't process if dir = "/" and there are limits:

max depth for traversing subdirs = 4
max dirs in the tree = 30.

I'll work more on this, check more, but these changes were tested and should make the code safer, of course, so I'm committing.  Sorry about the mess, I should take lessons on defensive programming ...
2005-03-19 18:23:05 +00:00
0d1738e285 Fix for building on win32 2005-03-19 17:15:25 +00:00
a96ed881dc BPython:
- Scripts:
    fixed error in "Save Current Theme" which prevented it from automatically updating script registration in menus.
    cosmetic changes in a couple of Campbell's sel_same.py script strings + more descriptive name for its new menu place (3d view, face mode -> select menu).
    small updates to help_browser.py script.

 The above changes are related to this:
- Added new script menu entries: Render (for exporters to renderers), Themes, FaceSelect (this already at the proper place).  Updated Scripts win->Scripts menu so it won't show all available entries, only  the ones we mean to see there.
- Updated menu registration so that scripts folders can become trees.  The release/scripts/ dir should be updated soon with subdirs like converters/, modifiers/, generators/ or whatever -- better discuss first (or is it? /me afraid of long irc discussions during meetings :) ).

- Modules:
    Blender: added 'udatadir' option to .Get() function and added var Blender.mode to tell if Blender is in bg or interactive mode.
    NMesh: added Campbell's nmesh.transform(matrix, recalc_normals = False) method (reworked, so my fault if it doesn't work).

- Bugs fixed:
    #2123: http://projects.blender.org/tracker/?func=detail&atid=125&aid=2123&group_id=9
    Reported by Ken Hughes (thanks!), who also found the exact problem later (it was in Text.Load, not with script links -- if only I had checked emails these days ... lost > 1 hour today to find the problem: passed filename to M_Text_Load was later being written over by a function called by add_text).  Also saw that Text.Load wasn't checking existence of passed filename (duh!), now it does.

    #1655: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1655&group_id=9
    Reported by Chris Want (thanks!): command line "blender -P script" not working properly for bg mode ("blender -b blendfile -P script").
    Had to make some small updates to get it working (bg mode for scripts was never explicitely handled, it worked due to collateral effects, let's say), interested readers can check the report after I update it or the API_intro.py doc file.  After more testing we can make further updates.  Updated many places to not call redraws if in bg mode, now it is officially available.  Blender outputs its own info when rendering in bg mode, if that is considered a nuissance we'll have to add a few "if (during_script())" calls outside bpython.

- Removed a few warnings here and there and also updated docs.
2005-03-19 06:24:55 +00:00
cbbe236f92 - patch submitted by guitargeek
-includes:
*Text3d accessors - ablity to manipulate FONT objects through python
*update to Object.link - calls text_to_curve upon ob_font link for drawing
*update to constant.h - constant type checking define
*update to curve.c - clamp values on getters/setters
*clean up of Text3d module
2005-03-19 03:24:00 +00:00
ab21276aaf fixed example of use the GetScreenInfo
.
2005-03-17 14:41:36 +00:00
Stephen Swaney
8c564af147 A little editing on the doc for the newest member of our Bpy module familily: Text3d. 2005-03-13 13:17:59 +00:00
4aeaa7a7a2 doc about set/getDupliVerts method
.
2005-03-12 12:31:33 +00:00
e1e6b10488 added getDupliVerts and setDupliVerts methods
.
2005-03-12 11:38:51 +00:00
53b578d090 Text3d submodule document
.
2005-03-10 02:49:27 +00:00
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
7968cf078e doc about Text3d module
.
2005-03-09 02:06:35 +00:00
9e52a14894 Solves a build problem with MSVC scons build. Thanks kaito for pointing out the Black box of BLI_winstuff 2005-03-07 14:48:13 +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
454041cc4f New Bpy type Text3d for accessing Blender's Font objects.
Contributed by Joilnen Leite (pidhash).
2005-03-06 14:55:00 +00:00
52b84f0e69 BPython:
- Gert de Roost reported an inconsistency between nmesh.getMode and .setMode.  Now .setMode() optionally accepts an int value, as returned by getMode().
- Campbell Barton pointed that object.getData(name_only=True) was by mistake returning the obj name, not the obdata name, as it should.  Fixed now.
- small doc updates

Thanks both for the reports.
2005-03-01 02:37:19 +00:00
Stephen Swaney
6c62b0d8b7 Part of Big Cleanup: move data declarations out of header files.
BGL.[ch] work done by Joilnen Leite (pidhash).  Thanks!

updated 0-todo.txt.
No changes to executable code.
2005-02-27 20:07:26 +00:00
Stephen Swaney
db892de35f Updates to NMesh doc contributed by Campbell Barton.
Corrections and useful user-oriented hints.
2005-02-27 15:15:39 +00:00
3cd546e484 Patch submitted by Michael Reimpell
- Adds NormalMap to python's list of Texture Image flags
2005-02-21 22:00:11 +00:00
34b61ee4e9 -AngleBetweenVecs() was returning only 8-digit precision. This changes the precision to 16-digits and should fix some problems regarding spurious numbers being returned by python after running this function. 2005-02-21 18:26:53 +00:00
b7eaee3ad2 BPython bug fixes:
-- Ton caught a redraw trying to free a busy slider button in a script.  Made sure the redraws don't happen in the scripts win during slider updates, but the realtime slider (automatically updates the 3d view) isn't working yet as it probably shouldn't with the current code. There's a pre 2.25 comment in Draw.c about it being hackish and wrong;
-- Melchior FRANZ reported a bug related to a script dict being freed too early (when two instances of the same script were on: one with a gui and the other with a file selector -- selecting the file triggered the problem);
-- bug #2074 reported by Roland Hess: totally empty string button -- no prepended but->str (e.g. "OB:") neither but->poin (the actual string) -- crashing Blender.  Crash happened on editscreen.c: screen_delayed_push_undo calls strncpy() without checking the passed string.  Didn't mess with it, better let the coder in charge of undo (Ton, right?) choose a preferred way to deal with it (report error, simply use blank string).  Staying on the python side at least for now, I just made but->str = " " (a space) when user doesn't define it, so the crash shouldn't happen anymore.

http://projects.blender.org/tracker/?func=detail&atid=125&aid=2074&group_id=9

Thanks guys for reporting the problems.
2005-02-16 03:32:57 +00:00
bc3329e49f <strings.h> is not defined on Win32 systems 2005-02-12 17:11:57 +00:00
34977b8937 BPython:
- 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.
2005-02-09 15:53:35 +00:00
05bf482f6a BPython:
- NMesh: made nmesh.update accept an optional 'vertex_shade' param to init vcols with shading info, like when you enter vpaint mode or press the relevant "make" button for a mesh without vcols.  This is still a test, the functionality was requested by Manuel Bastioni for the SSS script they are working on:
http://www.dedalo-3d.com/index.php?filename=SXCOL/makehuman/articles/subsurface_scattering_in_python.html
- sys: made makename() accept files with max FILE_MAXDIR+FILE_MAXFILE name length, should fix #2192.  Was only FILE_MAXFILE, a mistake;
- Image: added .setFilename(), contributed by Campbell Barton;
- Camera: added camera.get/setScale for the new param added by Ton for ortho cameras.  Requested by Jean-Michel Soler for the Texture Baker script;
- related doc updates.
2005-02-09 05:19:24 +00:00
3ede12b115 BPython:
- NMesh: added face.sel and face.hide attributes to NMFaces, to set / get selection and visibility state of faces as they appear in edit mode.
- doc updates, including the right fix to two edge related methods, thanks to Stephane Soppera for pointing it (my fault, Stephane).
2005-02-03 03:04:32 +00:00
41b251fab0 BPython:
- Fix related to bug #2157: crash in Blender.Image.image.reload() method.  "G.sima" was not being checked for validity.  Fix by Joilnen B. Leite (pidhash).  Thanks!
http://projects.blender.org/tracker/?func=detail&atid=125&aid=2157&group_id=9
- Added optional argument to Blender.Object.object.getData() method: getData(only_name = True) or (only_name = 1) or (1) will return only the obdata name, not a wrapper for the given struct.  This is a test based on a request by Campbell Barton who submitted code for his proposed .getDataName() method (thanks!).
- doc updates and small fixes.
2005-02-02 03:38:31 +00:00
Stephen Swaney
c153a593ac bugfix: #2117 Overflow in Armature.Bone.setName()
contributed by Joilnen B. Leite (pidhash).
2005-01-25 06:05:17 +00:00
Yann Vernier
7f4f5deac4 Separated some variable declarations from the code, for wider compiler support. 2005-01-23 20:15:06 +00:00
Yann Vernier
79c4e8a247 Changes Mathutils.Vector() to be less picky about its argument(s). 2005-01-23 17:04:02 +00:00
Yann Vernier
8d0ef2163d This should make the Texture stype attribute work for EnvMaps. 2005-01-23 16:32:51 +00:00
1da3b9f517 BPython:
- Stephane Soppera added long missed support for edge data in Blender.NMesh + related doc;
- Michael Reimpell improved script registration (fixes bug report #2160) and the file and image selectors in Blender.Window (improved with suggestions from Yann Vernier).  They now suppport methods as callbacks;
- World.get/setMode were not registered, so could not be directly called (reported by Ken Hughes).  Still needs some work to improve things, including docs.

Scripts:
- Jean-Michel Soler updated his texture baker based on input from Appolux;
- Campbell and Jean-Michel improved the bvh importer: faster, better float units scaling (by Campbell); supports Poser 3.01 files (by jms).

Thanks guys!
2005-01-22 02:48:03 +00:00
3ba66e20b9 BPython:
- Added Blender.UpdateMenus() + doc: so scripts can automatically update Blender menus when they create (or download or whatever) new scripts to be registered.
- Removed a long deprecated function from the Blender module (release dict).

Matt (broken) mentioned the UpdateMenus function a couple weeks ago.  I also updated the Save Current Theme script to use it.  This is all related to his ideas to use scripts to save and restore themes and e.g. render presets.
2005-01-13 19:19:05 +00:00
Stephen Swaney
df1acca4c5 New methods: Curve.isCyclic(), CurNurb.isCyclic() for checking if curve is cyclic ( closed ). Both methods are boolean.
Patch contributed by Toni Alatalo.  Thanks.
2005-01-13 03:42:53 +00:00
9f43accdb2 BPython:
- 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!
2005-01-13 03:04:12 +00:00
Stephen Swaney
aa3656dc45 bugfix: #2093 Ipo.addCurve() adds curves of undefined type
added some error checking and did a little cleanup.
still more to be done.
2005-01-07 01:38:14 +00:00
370ab6b7af Requested by Stephane SOPPERA,
Made NMESH_SUBDIV_MIN 0 instead of 1 so NMesh is like the gui...

Kent
2005-01-04 14:34:28 +00:00
48bc598658 More warning cleanups...
added a casts to:
   blender/blenlib/intern/BLI_memarena.c
   gameengine/Rasterizer/RAS_TexVert.cpp

Removed unused vars from:
   blender/python/api2_2x/vector.c
   gameengine/Ketsji/KX_PyMath.cpp gameengine/Ketsji/KX_Scene.cpp
   gameengine/Physics/Sumo/Fuzzics/src/SM_Object.cpp
   gameengine/Rasterizer/RAS_FramingManager.cpp
   gameengine/Rasterizer/RAS_Polygon.cpp
   gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Kent
2005-01-03 18:05:24 +00:00
610cec55c7 Biiig commit! Thanks to 2-3 weeks of cvs freeze...
Render:
- New; support for dual CPU render (SDL thread)
  Currently only works with alternating scanlines, but gives excellent
  performance. For both normal render as unified implemented.
  Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
  getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
  OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
  with chars or shorts.
- Made normal render and unified render use same code for sky and halo
  render, giving equal (and better) results for halo render. Old render
  now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
  after render. Using PostProcess menu you will note an immediate re-
  display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options

- Render module is still not having a "nice" API, but amount of dependencies
  went down a lot. Next todo: remove abusive "previewrender" code.
  The last main global in Render (struct Render) now can be re-used for fully
  controlling a render, to allow multiple "instances" of render to open.

- Renderwindow now displays a smal bar on top with the stats, and keeps the
  stats after render too. Including "spare" page support.
  Not only easier visible that way, but also to remove the awkward code that
  was drawing stats in the Info header (extreme slow on some ATIs too)

- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
  defines.

- I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-27 19:28:52 +00:00
Stephen Swaney
611f8093c1 bugfix: #2031 World setIpo() method checks for wrong IPO type
wrong constant name.
2004-12-21 01:34:23 +00:00
Stephen Swaney
626503e463 bugfix: #2032 Ipo_woIcuName() uses CAM instead of WO constants
Wrong constant names.  Fix contributed by Joilnen B. Leite <pidhash>
2004-12-21 01:15:42 +00:00
Stephen Swaney
36abceed6b bugfix: #2025 getCurveBP (and others) segfault
This method is now unsupported.  The original intent appears to
return the first BPoint of an Ipo curve.  However, BPoint Ipo curves
are not implemented and the first point therefore never existed.

The segfault was from an unchecked input parameter.

Calling this method now always throws a NotImplemented exception.
2004-12-17 17:34:51 +00:00
a368426d26 BPython, two bug fixes:
- #1911: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1911&group_id=9
    BOOL properties were returning True always, small mistake in logic.c's getData method.
- #1944: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1944&group_id=9
    G.vd was not being checked against NULL in Window.ViewLayer, causing a crash when this function was called from a command line script.  Now it returns an error in such cases.
- small doc updates, tiny minor change in Object.c.
2004-12-05 04:01:57 +00:00
aad31875d7 Special bf-committers request; Lamp/World/Material now each have 10
channels to link texture to.

The amount of code changes seems large, but is mostly getting rind of
hardcoded values (6 and 8) for channels, replacing it with MAX_MTEX.

Further did some fixes;
- Ipo for Lamp showed too many mapping channels
- Texture MapTo buttons for lamp missed the slider to blend texture color
- Lamp texture mapping "View" only worked for Spot, now it uses lamp-
  view vector for all types. (Nice for projections!)
2004-12-04 21:49:02 +00:00
Stephen Swaney
70c386cddf bugfix: #1930 Mathutils.Euler constructor fails to initialize class variables
Euler object was holding pointer to bad memory.
Euler now owns internal array memory and frees it in destructor.
2004-12-01 23:09:59 +00:00
6d9c02be4c Scripts:
- Fixes by Jean-Michel Soler: mod_ai2obj.py, mod_svg2obj.py;
- Fixes by Campbell Barton: obj_import.py;
- Small fix to mod_meshtools.py (fixes bug #1605: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1605&group_id=9);
- Updates by Jean-Baptiste (Jiba) to his blender2cal3d.py;
- Updates to all his import / export scripts (added doc data) by Anthony D'Agostino;
- Update to off_import: support for uv data, by Arne Schmitz.

BPython:
- Removed Object.get and .getSelected (deprecated long ago, we use .Get and .GetSelected) -- fixes #1861: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1861&group_id=9
- Applied patch by Michael Reimpell: quat.c - fix for wrong initialization with newQuaternionObject; Mathutils documentation improvements.
- Stani reported a wrong return msg in IpoCurve.Get (that is unimplemented).

Thanks to all coders mentioned above!
2004-11-30 02:27:46 +00:00
e3b7dfe6e2 BPython:
- fixed bug #1882: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1882&group_id=9
    Crash / hang when changing meshes that had edge data.  The mesh->totedge value was not being set to 0.  Reported by jms, thanks.
- fixed bug #1780: https://projects.blender.org/tracker/index.php?func=detail&aid=1780&group_id=9&atid=125.
    Deleting a Text that was being used as script link crashed Blender.  Added a check to unlink the Text from eventual script links when it gets removed.  Reported by kaito, thanks.
- doc updates (one related to bug #1807: http://projects.blender.org/tracker/?func=detail&atid=125&aid=1807&group_id=9 , actually a little misleading word in the NMesh doc: you can get the subsurfed mesh with NMesh.GetRawFromObject, but it's the display subdivision level that counts).
2004-11-27 18:32:26 +00:00
Chris Want
a7d624b2c1 There were some variables that should have been declared extern,
but weren't ... no more bus error when exiting on irix!
2004-11-14 01:03:01 +00:00
ac866cad12 BPython:
- Stephan Gartner reported a crash with Scripts Help Browser script found while porting blender to Linux/x86_64, related to bugs in Blender.Window.Theme module:
    two object types were being defined with wrong sizes.  My mistake, when I wrote that code I copied/pasted those portions around and didn't check properly.  Should be fixed now.  Thanks Stephan.
2004-11-11 17:59:36 +00:00
c16e5dad1c BPython:
- Small doc update in a script;
- Fixed bug #1742:
http://projects.blender.org/tracker/?func=detail&atid=125&aid=1742&group_id=9

It was an internal error in bpython.  I was using G.main->script.last to find the currently running (if any) script, but this isn't reliable, we must check each open script to find out if one of them has the SCRIPT_RUNNING bitflag set.

Thanks intrr for reporting and blendix for pointing how to reproduce the bug.  From my tests it should be working fine now.
2004-11-09 14:07:25 +00:00
4a20c3d03d Nmesh module isn't edges aware yet; but can cause crashes replacing
existing ones that use edges (like when creases or fgons in use).

Added proper free and NULL for it to prevent crashing, rest is for py
team after release ;)
2004-11-08 19:58:04 +00:00
Stephen Swaney
17217648e5 less scary 'python not found' msg was too warm and fuzzy.
now msg is less less scary and invisible if python is available.
2004-11-07 17:28:15 +00:00