Commit Graph

1057 Commits

Author SHA1 Message Date
a88675d0e4 Added first Rigid Body python access (mass). Basic others will follow. This helps Collada 1.4 Import/Export. 2006-05-16 23:17:56 +00:00
bb69543fa9 *added new Object method Object.evaluatePose(frame)
- the new methods will advance an object's pose correctly to any frame

Example:
myobj = Blender.Object.Get('obert')
for x in range(10):
  myobj.evaluatePose(x)
  pose = myobj.getPose()
  print 'Data at Frame %d' % x
  for bone in pose.bones.values():
    print bone.head, bone.tail
    print bone.head, bone.tail
2006-05-16 20:32:21 +00:00
16f4d0c0b6 *documentation update 2006-05-14 18:29:32 +00:00
d305965b3d *applying patch
[ #4143 ] Methods for reading bone movement limits
Submitted By:
Aron Cristian (criller)

Gives the ability to return/set the limitations on a posebone when that bone is part of an IK chain.
2006-05-14 18:24:11 +00:00
Ken Hughes
d9045c860b ===Python API===
Make me.faces.sel and me.edges.sel behave like EM_select_face() and
EM_select_edge() in source/blender/src/editmesh_lib.c.

Script users should note that if they change ANY of the selection states
(vertex, edge, face) and then call a mesh "tool" method (like me.remDoubles)
that the selection states of the mesh MAY change, since these tools use the
edit mode (which updates select states).
2006-05-14 14:12:45 +00:00
Ken Hughes
b69cde1eb7 ===Python API===
Fixing some nmesh typos in Mesh docfile (thanks, Hos).
2006-05-12 20:47:39 +00:00
Ken Hughes
24c08a722e ===Python API===
* use CONSTRAINT_LOCAL instead of SELECT in "Copy Rotate" constraint
* remove "LOCAL" key for now from "Copy Size" constraint; not supported
  right now in Blender UI
2006-05-12 13:10:55 +00:00
Ken Hughes
d6bad3e236 ===Python API===
Added NULL constraint (and fixed bug that didn't allow appending FLOOR
constraint), and added support for Constraint.Settings.LOCAL key support in
COPYLOC, COPYROT and COPYSIZE constraints when target object is an armature.
2006-05-12 04:34:02 +00:00
831a1fa91d Added MVert.hide property because hidden verts were hanging BPyMesh_Redux 2006-05-11 20:35:43 +00:00
a3783d32e0 Added some shortcuts to Mesh
MFace.area
 MFace.cent
 MEdge.length

Updated some scripts that used these.
2006-05-11 10:06:15 +00:00
8f84542c23 Modified mesh to allow writing to normals.
renamed meshPrettyNormals to meshCalcNormals, and it now writes to normals rather then returning a list of vecs.
updated vertexpaint_selfshadow_ao to be a bit more efficient and make use of the above changes.
2006-05-10 12:12:21 +00:00
f81206228c Fixed typo 2006-05-10 03:59:16 +00:00
41623cbdb9 made mesh's getFromObject pick the materials from object or obdata as set by the objects colbits.
its crufty that None of the exports currently export materials correctly, hopefully this will help.
2006-05-10 01:38:02 +00:00
Ken Hughes
4de7589720 Bugfix: mesh.removeVertsFromGroup() caused segfault due to NULL pointer. 2006-05-09 14:17:34 +00:00
Ken Hughes
4b310f2b8f ===Python API===
Correct error in Constraint example code.
2006-05-09 01:34:59 +00:00
Ken Hughes
5f6a5f1b17 ===Python API===
Bugfix: replaced calls to enter_editmode() and exit_editmode(), which would
cause segfaults on scripts run in background mode (discovered by NichG).
2006-05-08 05:37:00 +00:00
Ken Hughes
cd3af13a1b ===Python API===
New Constraint API.  Constraints are accessible through a "constraints"
attribute in poses and objects.  Would be REALLY NICE for armature users to
pound on this code.
2006-05-07 14:57:58 +00:00
bb52e70c8a Added "VertexPaint" slot for python menus 2006-05-07 13:09:29 +00:00
390380e97b Bugfixes for frame number boost:
- Found several places, where people explicitly casted the frame number
  to short.
- Fixed the crash in BPY_interface by adding an empty line (to make it
  recompile everywhere, make clean doesn't help...)

  For the build system maintainers:

  Problem was: The change in makesdna changed the position of the
  scriptlink structure. BPY_interface.c somehow didn't get recompiled
  (not even after a make clean!!!) which triggered crashes on adding
  scriptlinks.
2006-05-07 08:23:51 +00:00
53e777aae1 added optional 'worldspace' arg to getLocation/getSize/getEuler
getSize is never flipped, but added a note in the docs.
correction to getEuler, its not wrapped.

also removed all // comments to shut GCC up.
2006-05-07 08:12:18 +00:00
5f571e4ded ==Bugfix==
Made the frame boost from short to int (30000 -> 300000 frames) complete
by walking through the source and finally changing all frame-variables
to ints.

This should finally fix the framecounter warp around seen in some buttons.

If you step on any further problems that may arise starting from frame
32768 please just give me a hint and I'll fix it.

(Sorry about that, didn't know enough about Blender, when I did it the first
time...)
2006-05-06 15:26:53 +00:00
e9718958ee Applied pack unpack from Pablo Martin (caedes),
http://projects.blender.org/tracker/?func=detail&atid=127&aid=3246&group_id=9
adds

Blender.c:
Blender.UnpackModes (dict with the unpack modes)
Blender.UnpackAll(mode)
Blender.PackAll()
Blender.CountPackedFiles()

Image.c:
image.packed (this was working)
image.pack()
image.unpack()

Sound.c:
sound.packed
sound.pack()
sound.unpack()
2006-05-06 06:17:46 +00:00
9681a329c1 added a python menu slot for weight pain.
Also needed to seperate
  view3d_paintmenu
into
  view3d_vpaintmenu
  view3d_tpaintmenu
  view3d_wpaintmenu

The view3d_paintmenu and do_view3d_paintmenu were getting messy and had a lot of if's in it.
2006-05-05 06:57:33 +00:00
Ken Hughes
18a23ab8c9 ===Python API===
Bufgix #4171: Action_setName() didn't call rename_id(), messing up the
internal database.  Patch provided by Roland Hess (thanks).
2006-05-04 13:42:12 +00:00
Ken Hughes
e5ccb8773d Bugfix #4169: unlinking an empty object using scene.unlink() wasn't checking
for ob->data == NULL, causing segfault.
2006-05-03 17:15:33 +00:00
Ken Hughes
9874d5c76f ===Python API===
Added activeGroup attribute to Mesh API, to get/set active vertex group for
meshes.
2006-05-02 17:44:44 +00:00
35b8dac2ca As mentioned in the pydrivers commit, I had to change the order in
exit_usiblender() to finalize Python before main library data was freed.
This solved a somewhat specific sigsegv with pydrivers, but as Ken
Hughes found out (thanks!) caused one with scripts that called Blender.Exit().

Now running scripts (G.main->script) are freed in BPY_end_python()
itself (so before the rest of the library data is freed), before
Py_Finalize(). Works fine in all my tests so far.

The file script.c should become obsolete with this change (I added a
comment about it there). If all is indeed fine, it will be removed
later.
2006-05-02 02:42:08 +00:00
Ken Hughes
30f4f3e2c4 ===Python API===
Remove references in epydoc to deleted NMesh modes SUBSURF and OPTIMAL.
2006-05-01 21:15:49 +00:00
Ken Hughes
02506b1a5b ===Python API===
Make EXPP_setBitfield() PyObject_IsTrue() to evaluate parameter, so
boolean-type attribute setters will accept wider range of true/false inputs.
2006-05-01 05:28:51 +00:00
066a2b2ed2 Small update for pydrivers: force reloading the pydrivers.py Blender
text module when user edits the input text box of any pydriver
(Transform Properties panel, Ipo window).

It's enough to click in and out of a single pydriver's text input box
for the module reloading and also re-evaluation of all pydrivers
available. Maybe this "refreshing" should also be available from a
menu, let's see.

Note for Python fans:

Definitions and redefinitions in a reloaded module are properly handled
in Python, but previously defined data in the module doesn't disappear.
So if you define a function "f" inside a module, import it, then change
the function's name to "g" and reload the module, both "f" and "g" will
be available. This is considered a feature, check reload's documentation:
http://docs.python.org/lib/built-in-funcs.html#l2h-59
2006-04-30 22:10:39 +00:00
89dab4397d Pydrivers: Ipo Drivers controlled by Python expressions
wiki with info: http://mediawiki.blender.org/index.php/BlenderDev/PyDrivers

(there are two sample .blends in the patch tracker entry, last link in
the wiki page)

Notes:

In usiblender.c I just made Python exit before the main library gets
freed. I found a situation with pydrivers where py's gc tried to del
objects on exit and their ID's were not valid anymore (so sigsegv).

Ton needs to check the depsgraph part.

For now pydrivers can reference their own object, something normal
ipodrivers can't. This seems to work fine and is quite useful, but if
tests prove the restriction is necessary, we just need to uncomment a
piece of code in EXPP_interface.c, marked with "XXX".

Thanks Ton for the ipodrivers code and adding the hooks for the py part
and Martin for the "Button Python Evaluation" patch from which I started
this one.

Anyone interested, please check the wiki, the .blends (they have
README's) and tell me about any issue.
2006-04-30 16:22:31 +00:00
Ken Hughes
3b84767824 ===Python API===
Remove "EXPP_MOD_" from descriptions in Settings dictionary.
2006-04-29 14:24:30 +00:00
Ken Hughes
fce1ff5634 ===Python API===
Bugfix: call to EXPP_ReturnPyObjError() was discarding value
2006-04-28 20:32:41 +00:00
Ken Hughes
139c190605 ===Python API===
Added render.getRenderWinSize() method, to complement render.setRenderWinSize()
2006-04-27 20:24:27 +00:00
176a4c8507 Added scalePart to mathutils matrix type object.
and made it so toEuler converts a 4x4 matrix to a 3x3 rather then raising an error.

Its not straight fwd to get an objects worldspace loc/size/rot from its 4x4 matrix.
Example from updated docs.
      import Blender
      scn = Blender.Scene.GetCurrent()
      ob = scn.getActiveObject()
      if ob:
        mat= ob.mat # Same as martixWorld
        print 'Location", mat.translationPart() # 3D Vector
        print 'Size", mat.scalePart() # 3D Vector
        print 'Rotation", mat.toEuler() # Euler object
2006-04-27 12:32:44 +00:00
b69db8f090 Made space handelers check that G_DOSCRIPTLINKS is enabled before running.
Its scary to think that a redraw space handeler could run
  import os
  os.system('rm -rf ~/')
removing all user files, Just by opening the blend file!

This means at least you can opt not to run any python scripts you dont want to..
2006-04-26 08:22:39 +00:00
16a816c38d - initialize some globals to 0 explicitly 2006-04-26 00:51:58 +00:00
Ken Hughes
74acf8224d ===Python API===
Fix some small typos in Pose epydocs.
2006-04-25 22:00:18 +00:00
ab5c87cbf4 Re arranged how modifiers are used.
All settings through Blender.Modifier.Settings
see the epydocs
Also added some error checking to fix some possible segfaults.
Added more epydocs

Modifiers API should be stable enough to use now, though give it a bit of time for testing.
2006-04-25 13:01:19 +00:00
Ken Hughes
5fa5ea352e ===Bugfix===
matrix.resize4x4() was incorrectly allocating a array of pointers using
the wrong cast -- sizeof(float) instead of sizeof(float *).  Worked fine
on 32-bit systems but caused a crash on AMD64.  Discovered by a student
in one of my classes (kudos, Joe).
2006-04-24 23:00:03 +00:00
26c8d8f983 For some reason the render docs didn't mention the fact that you the RenderData stuct has the 'currentFrame' method for proper frame access. 2006-04-24 16:17:03 +00:00
87949e5c67 warnings cleanup for the python project on windows 2006-04-24 15:09:07 +00:00
Ken Hughes
94ebee891c Some Ipo getseters calling setter methods; added the necessary wrapper
functions to make this work correctly.
2006-04-24 05:24:58 +00:00
Ken Hughes
e6db82ec04 ===Python API===
Fix for Cygwin/GCC compile errors: doesn't like PyObject_Del() in the
PyTypeObject declarations :-P
2006-04-23 17:15:20 +00:00
Ken Hughes
6f94c5ef5e ===Python API===
More Modifier API changes:
 * add Blender.Modifier.Settings dict with constants for modifier types
 * add mod.type attribute, which returns type of the Modifier
 * add some internal consistency checks in ModSeq_remove
2006-04-23 17:01:04 +00:00
Ken Hughes
fe1495cf24 Little bit of code clean-up and commenting. 2006-04-23 14:17:14 +00:00
Stephen Swaney
e8b2d0d211 fix compiler warnings.
The 'excess elements in struct initializer' is fatal on some platforms.
2006-04-23 12:56:58 +00:00
b3bd7c869a added remove to the modifier seq (when pymodifier->md is NULL then its been removed)
added name to the docs
2006-04-23 08:01:02 +00:00
Ken Hughes
8001a8b409 ===Python API===
Initial commit for new Modifier API.  Probably does about 70-75% of what it
should, but it's a start.
2006-04-23 02:34:50 +00:00
Ken Hughes
1e1e908816 Miscellaneous fixes to documentation. 2006-04-21 20:31:27 +00:00