Page 1 of 3

bf-blender / Windows (2005/05/20)

Posted: Fri May 20, 2005 11:50 pm
by gabio
Hi all. After having difficulties with a nasty bug, there I am again.
you can see all the stuff to test in there. But also in all my threads as "relevant feature".
Now in b-con 4. Max 2 week before releaseĀ­.
there is a lot of work going on. Lots of bugfixes this week.
Relevant feature:
-TextEditor: syntax color support.
-New python scripts.
-Zblur implementation removed. accessible via sequencer.
-Made TimeLine "Play" also play sound and synchronize with it

bugfix: #2254 Curve.appendPoint() gives segfault in PySequence_Check().
Argument tuple not built correctly for CurNurb_appendPointToNurb().

* Timeline should display frames by default, not seconds

On "Add duplicate object" the softbody baking info wasn't freed.

Note: currently the 'baking' stores the entire animation system, which
makes further animation refining (or duplicating) useless for a Baked
SoftBody. You can even delete the entire anim system.
This can be presented as a feature too (saves slow armature stuff).
However, I might check on a 'relative' bake too.

bugfix #2532

Grab Time marker didn't idle correctly... was not checking for correct
previous mousecoordinate.

Bug fix #2533

Made face-looping code idling correctly (hotkey K in editmode)

Bugfix #2541

Using as Pivot the "individual object centers" didn't do any rotation or
scaling in editmode. I think it was supposed to give some kind of
'connected' centers, for individual faces/edges rotate. That'll be some
more coding work to get to work. :)

Bug fix #2542

Fun, the error is in code committed by Kent Mein, in a patch provided by
Campbell, who also reported the bug. :)
There was a line that set ALL selected objects (on click) to become active,
in succession, in a loop... very bad.

Activating in Oops better be restricted to ctrl+click. Fixed!

Fixed various errors with Blender allowing editing Library linked data.

CTRL+V on buttons
NKEY Panels
join mesh
join curve
editing buttons

Also; Transform() got in useless loop when you entered without anything
selected. Not sure why Martin recoded it this way... maybe as a first
step to handlerify it? For evil Python Aussie Bosses? :P

Bug fix #2535

Armatures with > 100 bones can deliver a 'parent IK menu' that doesn't
fit on screen anymore. Fixed it with changes;

- when menu doesnt fit to right/left, it places it aligned to left hand
of window
- when more than 8 collums in a menu exist, it makes collums 25 items
instead of 20.

Also fixed for the popup menu on Bone parenting. On a 1280 screen we now
can have a menu with over 300 bones (even more when you zoom down the
buttons window a bit). Still not optimal, but at least it's less annoying.

Three fixes in 1 commit. :)

- Bug #2530
The MMB Transform constraint 'chooser' used projection code that didnt
work when zoomed in extreme. Needed a correction to scale projected
coordinate according zoomlevel.

- NKEY panel for objects: click on left/right side of scale button now
goes with increments of 0.1 (was 1.0)

- Moving window edges in Screen: prevented top header from becoming too
small due to grid-snapping. Was visible now with using Texture Font.

Baking softbody: when 'frame mapping' is used, the baking process
should disable that, since animation systems remain in their own local
system time. Framemap is only for playback!

Not doing this caused corrupt baking, bug #2531 reported it.

Fix for bug #2201: Subdivide code not doing UV and VCol properly when not cutting in the middle (knife and loop cut) ... 9&atid=125

I had to redo the uv/vcol splitting loop, merging triangles and quads code together for efficiency and cleanliness. Added a lots of comments too, so people more interested can look at that (nice ascii art too).

Deform with Curves didn't take the 'tilt' value into account.
Note, the tilting only works for '3D' curves, and is accessible in
EditMode curve with TKEY.

Bug fix: Beauty Fill crashed on non-regular geometry. Pointers NULL...

Also: fixed tooltips for icon buttons for Transform Widgets

TextEditor: syntax color support.

Patch provided by Ricki Myers. Works quite obvious, see Theme editor too!

Notes about the provided code;
- The default syntax colors were screaming! Toned it down to match the
default dark on lightgrey background better.
- Added: initializing colors in saved themes (usiblender.c)
- The implementation of the button for this option was quite clumsy...
Blender UI options services this a lot easier.
(Same fixed for 'line numbers' option)
- Bracket matching now uses as color a mix of backdrop and the
selected-text color. Noticed my texteditor did it too...

-> I really miss comments in code describing a little bit the thought
process behind the code. Like a short introduction on this feature
in the top of the drawtext.c, little remarks on new functions.
ALso in patch tracker or the mailinglist no docs was mentioned?

-> drawtext.c now gets messy quickly... lack of overview, structure,
and confusing mix of personal coding styles.
For not-active supported code dangerous...

New buttons image with syntax color icon

fix for bug in timeline found by Ztonzy on Irc

when zooming in with frame enabled, partial of frame were drawn with
multiple same int labels. confusing if harmless.

Ton, can you check this fix is the proper one ?

Fixing bug #2556: ... group_id=9

MEMSET was clearing the TransInfo struct after the constraint setup call has been made.

Temporary fix until the manipulator transform init is split off, like normal transform.

Corrected the python keywords list for syntax highlighting (it was missing "and" and "break").

Used the official list:

While "as" is not a keyword, it is (should be) always used as such, so I've added it to the list too.

Corrections on my last commit.

Sheesh, I missed "not" while copying the list and I forgot to bump the number variable to reflect the real number of keywords.

Transform MMB code fixing Ton's last fix.

His fix was good, except that it switched to project_float instead of project_short, and that's not good because we're renormalizing the vector after that, which maximizes the float errors. Since it's scalling the axis anyway with the zfac method, it can use project_short safely (I tested it with the bug tracker file that triggered the fix in the first place).

Unitialized variable in resize function.
Was caused by a previous commit, disabling Element Center mode for edit mode, since it's not working properly yet.

Fixing bug #2558: ... group_id=9

- fixing bug reported by Paolo Colombo: space handler slinks set for a 3d view were not set when the area got maximized;
- Blender.Object: added object.isSB() method to know if an object is a soft body (has ob->soft != NULL). Used in

- updates: batch_name_edit (Campbell), fixfromarmature (JMS);
- additions:
X3D exporter by Bart;
Envelope Suite by Jonas Petersen;
BVH 2 Armature by Jean-Baptiste Perin;
Camera Changer by Regis Montoya (3R);
Interactive Console by Campbell (ideasman).
- tiny updates in other scripts.

No cvs freeze msg yet, so thought I could go with a last minute new script:

- license info for camera changer (thanks Tom for pointing), made it GPL since it's stricter and so can be "downgraded" w/o problems, but emailed the author to confirm and if necessary will fix before release.

- adding Discombobulator by Evan J. Rosky (in Mesh menu): ... index.html

This is a fun script to play with, giving quite interesting results. It's good for that "high-tech" look in buildings, spaceships and walls. Thanks Evan for contributing it. GUI should have further updates in the future, like an added "horizontal" layout. (Note: ignore mention in its online docs of a problem with edit mode, the script was fixed.)

Fixing MMB selection code for good.

zfac needed to be inverted to be used properly. Works for extreme close ups and extreme zoom out.

Bug fix #2578

My fix to make subloops more idling was not needed in the case for
drawing the knife cut 'mouse trail'. This uses a proper qread() which
has a wait builtin for events.

Bugfix #2576

The ALT+F "Beauty Fill" could crash, for example on the already legendary
monkey head CTRL+T,J test. :)
Found out there was a necessary check for edge/face selection flags missing

Bug fix #2577

With rendering a border, the amount of scanlines can be 'odd', which
wasn't checked for correctly on OSA thread render.

Bug #2582

This combo didnt render OK:
1 Armature has Empties parented to Bones
2 Curve has these Empties as Hooks
3 Mesh is deformed with this Curve

Could be solved with calling makeDispList() earlier on, and it seems like
the depgraph already does a great job here. :)

Bug #2583

Pulldown Mesh in editmode didn't allow to set Proportional edit. Also the
name 'Sphere' for proportional mode was missing.

Bug fix #2585

Separate All Loose Parts crashed with subsurf on. Just copied the fix
from Separate itself, by Daniel last week.
Yes, its a nasty piece of code... :)

On start vertexpaint of subsurf, the initialized vertex colors were wrong.
It tries to use the shaded colors, but these are from the subsurfed mesh.

Didn't feel like hacking here, so for this case colors are initialized
as black.

text editor patch by antihc3.
fixes 'Memoryblock free: attempt to free NULL pointer' errors.

Fix MMB code again. (I'm near the "set an accronym for that so it's shorter to time next time" phase...)

This time, probably for good since I've really tested it through and the z factor used there never gives overflow and is correctly calibrated with both the real zfac and the zoom level.

I've decided to not include this Zblur implementation in the release.
It fails in all criticial tests, not to mention the confusing UI even. :)

Code is still there, just the options for zblur are removed now, and
Output Panel restored.

Belongs actually as an effect in the Sequencer, nice todo for a next

Back to the Future bugfix!

When a new space (window) type gets added, older Blender binaries will
crash on reading files saved with such spaces. This breaks the so nice
upward compility on files... With addition of SpaceTime I got an occasion
to verify & fix that. If Blender detects a non-existant space it will
degrade it to a 3D window now. Tested on a full 2.34 compile.

Made TimeLine "Play" also play sound and synchronize with it. Added the
feature with a header button.

Works like audio playback on ALT+A, meaning you have to add the audio
strips in Sequencer. The 'only sync' option for ALT+A doesn't work here.

Also: fixed crash on ESC in audio playback in sequencer.

Pressing ESC now stops 'animated UI playback' too. It doesnt conflict with
ESC for other situations... so might work well after all.

BPython: bug fixes / patches from trackers

(excuse me for not committing earlier)

Patches by Ken Hughes (thanks for all bug fixes!):

1) Setting a scene's MapOld and MapNew values in python does nothing:
bug #2566 submitted by Dominic Agoro-Ombaka (dmao): ... 9&atid=125
patch #2571: ... 9&atid=127

2) Calling the file selector after setting the progress bar crashes Blender:
bug #2418 submitted by Alessandro Garosi (brandano): ... 9&atid=125
patch #2568: ... 9&atid=127

3) Menus always generate same event when canceled:
bug #2429 submitted by Campbell Barton: ... 9&atid=125
patch #2579: ... 9&atid=127

4) Add a vertex to a mesh with groups using a script and then edit that mesh hangs blender:
bug #2211 reported by German Alonso Tamayo (servivo): ... 9&atid=125
patch #2580
# ... 9&atid=127

About bug #2033, I'm still looking at it, committing a small fix now.


Patches by Campbell Barton (thanks!):

#2482: BGL pydocs fix broken links ... 9&atid=127

#2426: Large text in Draw.Text and Draw.GetStreingWidth ... 9&atid=127

#2521: scene.getActiveObject() ... 9&atid=127

#2523: NMesh.GetNames() ... 9&atid=127

- docs also updated

Bugfix reported by Basse; adding a new strip in Sequencer didn't initialize
the sequence "Mult" value properly when the "Properties" Panel was open.
That resulted in images displaying black...

Fix for TimeLine "Play" with sound-sync set.
Added check for audiostream_pos() - which should return current frame
corrected for audio playback - to be at least 1 frame larger than current
frame. It caused in some situations even a backwards playback!

Two softbody thingies;

- fixed error in option "Enable Goal" which didn't work with Vertex groups

- renamed some buttons & fixed tooltips. A doc online will be there soon

corrections and missing ipo channels for Camera, World, Material
and Lamp. Contributions from Ken Hughes.

This commit fixes two related issues:
* when a blendfile gets loaded, paths are corrected with OS specific slashes (see blender.c)
* made available BLI_char_switch(char *string, char from, char to)
* made available BLI_clean(char *string);. This function should be called whenever you're doing path stuff, so paths are correctly saved, and thus avoiding other path functions stopping to work

* relative paths work now in sequencer too (due to slash mess that didn't work all too well).

Different drawing code for darkened part in TimeLine window, to indicate
the start/end frame. It uses a GL_BLEND which doesnt work nice for darker
backdrops. Now it uses ThemeColorShade() which does it OK.

Manipulators now draw on location of optimal subsurf vertices. Looks
nicer, but be aware that these locations are 'virtual', derived from
the actual Mesh Cage vertices you don't see.

Normal transform (and actual transform with Manipulators) remains on
the original vertices, which also shows with dashed line towards pivot
on scale/rotate.

-rewrite and bugfixes
Here's my changelog:
-fixed Rand() so that it doesn't seed everytime and should generate better random numbers
- changed a few error return types to something more appropriate
- clean up of uninitialized variables & removal of unneccessary objects
- NMesh returns wrapped vectors now
- World returns wrapped matrices now
- Object.getEuler() and Object.getBoundingBox() return Wrapped data when data is present
- Object.getMatrix() returns wrapped data if it's worldspace, 'localspace' returns a new matrix
- Vector, Euler, Mat, Quat, call all now internally wrap object without destroying internal datablocks
- Removed memory allocation (unneeded) from all methods
- Vector's resize methods are only applicable to new vectors not wrapped data.
- Matrix(), Quat(), Euler(), Vector() now accepts ANY sequence list, including tuples, list, or a self object to copy - matrices accept multiple sequences
- Fixed Slerp() so that it now works correctly values are clamped between 0 and 1
- Euler.rotate does internal rotation now
- Slice assignment now works better for all types
- Vector * Vector and Quat * Quat are defined and return the DOT product
- Mat * Vec and Vec * Mat are defined now
- Moved #includes to .c file from headers. Also fixed prototypes in mathutils
- Added new helper functions for incref'ing to genutils
- Major cleanup of header files includes - include Mathutils.h for access to math types
- matrix.toQuat() and .toEuler() now fixed take appropriate matrix sizes
- Matrix() with no parameters now returns an identity matrix by default not a zero matrix
- printf() now prints with 6 digits instead of 4
- printf() now prints output with object descriptor
- Matrices now support [x][y] assignment (e.g. matrix[x][y] = 5.4)
- Matrix[index] = value now expectes a sequence not an integer. This will now set a ROW of the matrix through a sequence. index cannot go above the row size of the matrix.
- slice operations on matrices work with sequences now (rows of the matrix) example: mymatrix[0:2] returns a list of 2 wrapped vectors with access to the matrix data.
- slice assignment will no longer modify the data if the assignment operation fails
- fixed error in matrix * scalar multiplication
- euler.toMatrix(), toQuat() no longer causes "creep" from repeated use
- Wrapped data will generate wrapped objects when toEuler(), toQuat(), toMatrix() is used
- Quats can be created with angle/axis, axis/angle
- 4x4 matrices can be multiplied by 3D vectors (by popular demand :))
- vec *quat / quat * vec is now defined
- vec.magnitude alias for vec.length
- all self, internal methods return a pointer to self now so you can do print vector.internalmethod() or vector.internalmethod().nextmethod() (no more print matrix.inverse() returning 'none')
- these methods have been deprecated (still functioning but suggested to use the corrected functionality):
* CopyVec() - replaced by Vector() functionality
* CopyMat() - replaced by Matrix() functionality
* CopyQuat() - replace by Quaternion() functionality
* CopyEuler() - replaced by Euler() functionality
* RotateEuler() - replaced by Euler.rotate() funtionality
* MatMultVec() - replaced by matrix * vector
* VecMultMat() - replaced by vector * matrix
- New struct containers references to python object data or internally allocated blender data for wrapping
* Explaination here: math structs now function as a 'simple wrapper' or a 'py_object' - data that is created on the fly will now be a 'py_object' with its memory managed by python
* otherwise if the data is returned by blender's G.main then the math object is a 'simple wrapper' and data can be accessed directly from the struct just like other python objects.

Bug fix #2591

Dependency issue... could solve it by calling an extra where_is_object
when a displaylist is made for vertex-parenting on deformed objects.

a new build is available

Nice job

Posted: Fri May 20, 2005 11:57 pm
by djfuego
Good good, will try this out before I hit the sack.. 8)

Posted: Sat May 21, 2005 2:32 am
by yamyam
Mirror test...

BTW, Thank you gabio!

Posted: Sat May 21, 2005 3:13 am
by SamAdam
yeah, uh, can someone please fix that horrible transform bug thing when parenting?

just add a bezier cirle, parent your camera to it with follow path. then try to move the camera.
if that doesn't do it, try scaling the circle and then grabbing the camera.

this is an old one.

Posted: Sat May 21, 2005 4:01 am
by macouno
just a quick reply and not to this build specificly.

In the recent builds when I move around from the "camera view" everything is reversed. I can understand the reasoning behind it. But and it's a big Butt! it's sooo awkward :oops:

It's reverse to everything we're used to and really there's no excuse for it, is there? I've been doing searches but haven't found the reason.

I hope... at least we get the optional setting to reverse this eh... reversal?

[edit] just read the no zblur bit... I understand but still think it's a shame[/edit]

Posted: Sat May 21, 2005 7:20 am
by bmud
Exporting the color theme doesn't include syntax highlighting (yet) :)

Posted: Sat May 21, 2005 8:51 am
by LetterRip
You might want to test sculpt mesh as well if you get a chance. just place it in your scripts directory. Then run it like any other script, there is still a chance that it will go in for release, final decision to be made this Sunday (assuming enough testers have used it with CVS releases etc.).

See this thread for details and to report results


Posted: Sat May 21, 2005 10:46 am
by tuxbot
Mirror here:


Posted: Sat May 21, 2005 11:52 am
by lusque
Soft Body does not detect collision with an armature-deformed mesh.

Is it a bug or a feature planned for a future release?
Do I have to submit to the bugtracker?

Anyway follow this link for a blend file and a screenshot: ... _Body.html

Posted: Sat May 21, 2005 1:03 pm
by gabio
Thanks yamyam and tuxbox. Updated the page to reflect.
Now spread the news! mucha tester needed!
Good weekend all.

Posted: Sat May 21, 2005 1:52 pm
by ElBarto
At the actual CVS built the of X3D and VRML exporter arn't the actual versions!!! Please bundle this versions: ... ...


Posted: Sat May 21, 2005 3:22 pm
by Doc_Holiday
Still no GameEngine Fixings. :cry: This is no more funny!

Posted: Sat May 21, 2005 3:54 pm
by Zsolt
The newly bundled Discombobulator script doesn't work. I tried with different meshes, with different settings. It exits, and gives a Python error in the console:
Traceback (most recent call last):
File "<string>, line 1225, in bevent
File "<string>, line 518, in discombobulate
AttributeError: Vector division: arguments not valid for this operation....

Posted: Sat May 21, 2005 4:22 pm
by seth7777
I had the same error with the Discombobulator and the Sculpt Mesh didn't work correctly too

Posted: Sat May 21, 2005 6:52 pm
by LetterRip
What problem did you have with sculpt mesh specifically?

Are you running it from a text window, or from the scripts window?