Commit Graph

80 Commits

Author SHA1 Message Date
Campbell Barton 2a331067cc resolve some compiler warnings with intel c/c++ compiler
* subsurf code had a lot of unused variables, removed these where they are obviously not needed. commented if they could be useful later.
* some variables declorations hide existing variables (many of these left), but fixed some that could cause confusion.
* removed unused vars
* obscure python memory leak with colorband.
* make_sample_tables had a loop running wasnt used.
* if 0'd functions in arithb.c that are not used yet.
* made many functions static
2008-09-29 17:08:11 +00:00
Joshua Leung b24485ab92 Patch #17336: Lock bones in edit mode
Submitted by: Lorenzo Pierfederici (lento) 

This patch adds the ability to lock transformation on bones in edit mode, to protect them from accidental editing.

Bones can be locked from the editing buttons, the transform property panel, the specials popup menu or the python api.
2008-07-27 04:19:56 +00:00
Campbell Barton be0b8ccfaa Used GET_INT_FROM_POINTER to get rid of many warnings that only occurred with 64bit os's
Also use Py_ssize_t which we might need to define for older python's
2008-04-17 21:14:55 +00:00
Chris Want 5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
Martin Poirier 5dfef1ae35 Reverting to 2_2x BPY
I was careful in selectively rolling back revisions, but if you've committed changes unrelated to BPY mixed with BPY changes, I might have reverted those too, so please double check.
2007-12-17 20:21:06 +00:00
Campbell Barton 9723e3ef39 miscellaneous edits from python development branch merged back into trunk 2007-12-07 09:51:02 +00:00
Campbell Barton 6142ae3785 ==Python API==
Bugfix, Space Handlers could crash blender when used with armatures.
also fixed some possible bugs in other areas.
2007-11-06 13:44:26 +00:00
Campbell Barton ef85f6ea21 ==Python API==
layerMask access for bone and armatures
Window.PoseMode() similar to Window.EditMode()
2007-10-26 08:19:40 +00:00
Campbell Barton ca843fd2f8 armature weakref evilness again, using editmode in python is not the best.
replacing PyWeakref_NewProxy with PyWeakref_NewRef fixes this problem.

list(bpy.data.armatures) # would mess up weakrefs
[arm for arm in bpy.data.armatures] # didnt.
2007-08-27 16:09:02 +00:00
Campbell Barton e7a2a175df getting the armature twice would cause a weakref error and crash after 2-4 runs..
data = arm_ob.data
bones = arm_ob.data.bones.values()

Fixed by returning existing armatures if they exist in the weakref list. tested with FBX and BVH support.
2007-08-25 19:05:18 +00:00
Campbell Barton b38e987932 armature weakref fix from stable, Curve.c removed unneeded cruft 2007-08-01 12:57:59 +00:00
Ken Hughes ea9b3dc387 Fix segfault in PyBonesDict_FromPyArmature() caused by uninitialized memory. 2007-05-25 20:54:48 +00:00
Campbell Barton f231bd0d57 Many long standing memory leaks fixed in the BPY api.
Data from Armature.c and logic.c still leaks.

Mostly todo with PyList_Append adding a refcount and the bpython api not decrefing.

Also added some features needed to fix a bug in mesh_clean.py (ob.pinShape and ob.activeShape)
2007-05-25 16:43:25 +00:00
Martin Poirier c4f6ac80df === Bugfix ===
Coverity bugfix (missing NULL check) and ref counting errors. (on module constants, so not really leaking, just not good.)
2007-05-21 19:42:11 +00:00
Campbell Barton c97be098f7 Python API
made all libdata hashable - use the object type,name and lib for the hash.
added .tag to libdata so we can test if data's been processed without using dictionaries
added libdataseq.tag (write only) setting the tag flag (which can always be dirty)
2007-03-26 02:10:24 +00:00
Campbell Barton ee5dc4d0bf removed duplicate functionality, macro's and functions existed to check a PyObjects type, now only use macro's 2007-03-15 01:09:14 +00:00
Campbell Barton 5c5a80f644 made all python types that can do .__copy__(), also do .copy()
added copy function to lamp, texture and ipo types
2007-03-14 03:01:24 +00:00
Campbell Barton e0c77c0f14 made all data adding functions accept a name such as add_mesh or add_curve, previously only some datatypes adding functions accepted a name.
also updated the Bpy.py epydocs
2007-03-11 16:25:17 +00:00
Campbell Barton 1135434ed1 moved python functions that deal with blender libdata into gen_library.c from gen_utils and BPY_interface
small cleanup, removed unused functions and explicetly cast pointers..
2007-03-11 04:05:45 +00:00
Campbell Barton 436e1697fd made attributes (name, property, users, fakeUser, lib) into functions all python types can use.
removed a lot of code duplication when moving to this.
Also removed unused functions GetMaterialByName(), same for Mesh, Object, World etc.
2007-02-25 07:36:50 +00:00
Campbell Barton 086d51c822 BPython API
* Added data.lib attributes to almost all data types, (except for Text3d and NLA)
  This is None or the path of the library as a string.
* Main was giving a warning, Include Curve.h rather then CurNurb.h
* Added Library.LinkedLibs(), returns a list of externaly linked libs.
2007-02-23 14:51:20 +00:00
Campbell Barton a2ce2600d9 renamed posebone.ik to hasIK, removed unused code, made the function name of Armatue's py object from Blender object consistant with others. 2007-02-21 23:14:01 +00:00
Stephen Swaney f5a48dfd31 Bugfix for #5000
Setup for Armature weak ref list was missing from some places where
we execute py code.  This confused the interpreter and gave random
attribute/tuple parse errors.
Changed name of weak ref list to "__arm_weakrefs" to avoid name
collision with user variables.
2007-01-31 03:12:26 +00:00
Joseph Eagar 3ab085a5b6 =Python bugfix=
Armature code had missing NULL pointer check that crashed when used in pydrivers.
2007-01-30 22:38:43 +00:00
Kent Mein 6446c23447 Needed an extra header to find offsetof
Kent
2007-01-25 16:21:11 +00:00
Joseph Gilbert ea8189389c Bug fix for:
[ #5000 ] Changin EditMode in Script wrecks memory

Armatures create weakreferences in __main__.__dict__.  When Window.Editmode is called, the weaklist it iterated over and armatures are updated.
2007-01-25 15:19:28 +00:00
Campbell Barton a03c8ba8a0 creating new objects from
ob = scn.objects.new(arm_data)
didnt work.

Also added docs to Pose - that make an armature, add an action and add pose keyframes
2007-01-22 11:26:55 +00:00
Joshua Leung c967679bb8 == Armature Joining Bugfixes ==
Since 2.40 (and a few pre-releases around then), armature joining has not
worked correctly. Constraints and other attributes of bones in posemode
(IK DOF limits, transform locks, custom shapes, etc.) were not preserved
on the armature(s) that were joined onto the last selected armature. This
was a serious production problem, as it meant that you could not easily
add pre-made rig segments and merge them with the rest of your rigs without
having to redo all the constraints. After a few attempts, I've finally
managed to fix this.

All constraints and parenting relationships get name corrections for the post-
merge armatures. Action channels in actions don't really get any corrections
yet unless the action is being used by an Action Constraint.

Python-API people: beware, I may have broken something in this commit.
2007-01-16 09:18:01 +00:00
Campbell Barton 9afe662c12 renameing datablocks was imposing a name limit on the python side.
This isnt needed because the limit is alredy being set by rename_id()
some other minor changed- use None returning maro
2006-12-27 05:04:20 +00:00
Campbell Barton ed47053fa6 Arnaure.Get() now raises an error when the name dosnt exist. added warning in docs.
Image - added img.fields, img.fields_odd, img.antialias, also updated the docs. replaced Py_BuildValue with faster list creation for getPixel functions.
2006-12-22 21:23:27 +00:00
Campbell Barton 1041ad4719 added fakeUser and users to more pytypes 2006-12-17 02:16:29 +00:00
Campbell Barton dda63a9dde added comparison function to many python types so you can do == and =! 2006-10-06 16:48:28 +00:00
Ken Hughes 66bd3fbd18 ===Python API===
Bugfix #4886: deleting a bone would disconnect bones when it shouldn't have.
Thanks to Michael Ward (easybreasy) for locating the problem.
2006-08-17 21:36:56 +00:00
Campbell Barton 314fbb4ff5 Added Armature.New() 2006-08-17 07:14:29 +00:00
Campbell Barton 8e7095a464 Added __copy__ to armature, material, curve, group 2006-08-15 11:24:08 +00:00
Ken Hughes a33bd50108 ===Python API===
Bugfix #4690: BonesDict_repr() had a string overflow for really complicated
armatures.  Added a string length check and terminate before overflowing.
2006-07-14 14:48:45 +00:00
Joseph Gilbert 87949e5c67 warnings cleanup for the python project on windows 2006-04-24 15:09:07 +00:00
Stephen Swaney 342bb99a19 a little spring cleaning to remove some compiler warnings for
implicit declarations, redundant redeclarations, missing initializers,
nested externs and other cruft.

Cleaned up includes and moved extern _Type decls from Types.h into
Types.c since that is the only place where they are needed now.

Did not touch Ipo.[ch] since work is on-going there.
2006-04-16 15:28:50 +00:00
Campbell Barton e0f9c69a2c quick fix for Python armature CVS making bones with no layers, therefor being invisible.
Should realy have Bone/Layer access through python.
2006-03-06 02:07:39 +00:00
Chris Want c8b48e70e6 Final merge of HEAD (bf-blender) into the orange branch.
Here are my notes on things to look out for as potential problem
spots:

source/blender/blenkernel/intern/displist.c:
+ is initfastshade(void) supposed to be empty? I had
to make it empty to get the merged tree to compile.

source/blender/python/api2_2x/Armature.c:
+ went with the version that had Armature_getLayers()

source/blender/python/api2_2x/Object.c
+ went with the version of Object_getPose() from bf-blender.
(#ifdef 0-ed the other version)

source/blender/python/api2_2x/Pose.[ch]
+ had problems linking due to no Pose_Init() ... copied these
two files straight from bf-blender.

source/blender/src/drawview.c:
+ view3d_panel_properties() had things shifted a few things shifted
a few pixels, otherwise, things were painless

source/blender/src/splash.jpg.c:
+ went with bf-blender version (orange is dead)

source/gameengine:
+ went with bf-blender version -- does not compile due to IMB_rect* stuff,
Ton should look into this.
2006-01-28 16:35:18 +00:00
Joseph Gilbert 7d536502f8 *fixes global redefinitions
- added some extern keywords
2006-01-16 16:34:08 +00:00
Stephen Swaney 148134205f fix previously fixed error msg. 2006-01-14 19:05:33 +00:00
Stephen Swaney dea1ac52b4 bugfix: #3738 Armature bones returns none instead of key error
BonesDict was returning None instead of throwing a KeyError
when key not found.
Also fixed a few compile warnings about struct initialization.
2006-01-12 21:21:41 +00:00
Ton Roosendaal ed2b55585d Wednesday sync orange with bf-blender
Note: has the crazyspace fix!
2006-01-04 15:47:16 +00:00
Joseph Gilbert de37b11e56 [ #3712 ] Calling makeEditable() and update() on an armature twice duplicates bones
* fixes bug where editbones are not freed on calling update()
2006-01-04 15:07:15 +00:00
Ton Roosendaal f47899fc0f Orange; merger with bf-blender.
(Merging is *not* fun work, especially not with bugfixes in main branch
for code that got cleaned up in the other! Poor Hos... :)
2006-01-03 21:43:31 +00:00
Alexander Ewering 6f10660f0c Fixing a bit of horrible code in Armature.c (BonesDict_repr).
There is a lot of very dangerous (and slow) string manipulation code in
there. I do not want to appear arrogant, but a bit of basic code QA in this
module certainly can't hurt.

Please see the diff for further explanation ;-)
2005-12-23 22:16:33 +00:00
Ton Roosendaal 4f235db6e6 Tuesday merger of Orange branch with bf-blender 2005-12-13 20:32:39 +00:00
Joseph Gilbert 9ae9527c51 - Armature/Bone API for python
* this resolves a number of outstanding issues with the armature api and gets this ready for release
- add/remove bones possible
- rolls work correctly now!
- ik'ing to parent should work
- flags for tip/root/bone selection
- etc.
2005-12-12 18:46:26 +00:00
Toni Alatalo 5b71510ecf A patch from Ken Hughes per request of Bassam here at Orange: Python access to armature visibility layers. 2005-12-07 19:36:01 +00:00