- Unlinked text block was sending as reference to note which isn't safe at all
- Minor reorgonize of text space listener to use switches instead of big condition
snapping cursor to selection (fixes#23966: Cursor to selected: incorrect behaviour in curves)
- Keep handles' of selected vectors if control point is selected when
snapping selection to grid/cursor
- Added definitions to hard-coded numeric flags for make_trans_verts
and removed unused proportional flag
modified the patch to store the string internally rather then an array of allocated string pointers, less hassle with memory allocation.
changed to use fnmatch, so *.foo is needed (not .foo as with the patch)
This means we can do operator drawing without passing self.properties as an argument.
while this check if quite specific, if this gives problems later on we should probably change operators not to try to mix an operator and its properties, it looks nice to a scripter but internally is not easy to manage.
caused auto connect to not work in some cases, because that now orders nodes
and only connects if the new node is to the right of the old node.
I doubted between always connecting to the new node as output or keeping this
ordering trick also when adding nodes. Decided on the latter because then you
can also add a node between two others and have it auto connect to both.
* Fix turned into a thorough cleanup and reorganization of particle collision response code.
* Collisions are now much more accurate, stable and even a bit more in agreement with real world physics.
* Only still remaining problem is rotating/deforming deflector objects, but that's something for the future.
* Visible changes should only be positive, i.e. no leaking particles, no strange instabilities etc.
- converted 3 options in keying sets to use bl_options like panels & operators
- removed function arguments for new keying sets, better adjust these after to avoid duplicating properties in function arguments (they were not used).
* normal offset not taken properly into account
* wrong usage of BVHTree (epsilon != radius) caused massive slowdowns in calculations, for example just opening test file took about 30 s on my machine, after fix about 0.5 s :)
crash when using too much stack memory, each recursive call for the sorting function would allocate 200 bytes in TransData per call (64bit os), now pass this as an argument.
this is because of fairly confusing logic, when an SRGB image has a float buffer added its always LINEAR, so we have to account for this elsewhere.
So the conversion from byte to float works like this:
* NONE -> NON-LINEAR
* SRGB/LINEAR -> LINEAR
...but none change the profile variable.
Submitted by Shane Ambler.
The original patches made an enum for action zone edges, changed positioning for minimised icons and repositioned minimised icon for operator properties panel.
I kept the enum idea, but further improved on the naming. Some switches used in place of if/else blocks and added some comments. See patch tracker for more comments.
* Fix var declaration in bpy_interface.c
* Remove forward declarations from py_capi_utils.h: they are unnecessary and break compiles (there were probably many warnings about this during compile with GCC).
Reported and patched by Torsten Rupp
When a time marker is added in the timeline window via keyboard (keycode M) or existing markers are selected/moved via
the mouse the marker resp. the selection state is not draw immediately in the timeline window region.
The patch adds notifiers where necessary to ensure updates.
This troubles were caused by "break" of ND_OBJECT case in outliner area listener,
so not all cases were handled.
Handle more data and actions in outline listener, but not refresh when it's
actually unneeded (there where problems with it without that "break" -- extra
refreshing could be made).
Patch by Shane Ambler
Reported by Anthony Edlin
From the patch details:
"
In response to bug #23078 the operator panel disappears when dragged above the top of the 3dview without showing the
azone icon to restore it.
This patch properly hides the operator panel if dragged near the top of the 3dview so that the azone icon is in place
"
Thanks!
Patch by Alexander Kuznetsov
Reported by Chidozie Oku
From patch description:
"
Handler is now released on every exit from File Selector. For example pressing ctrl-up and then changing editor type
to another also releases the handler.
When an area is changed from SPACE_FILE, ED_fileselect_exit is called for clean up. It takes function of freeing folder
list and files (before it was done in cancel or exec functions) because they must be released on every exit anyway.
op!=null means cancel or exec was not executed so a handler was not released. ED_fileselect_exit then releases the handler
without changing screens.
"
Thanks!
* Velocity for particles that were born at exactly integer frames was calculated wrong when they were born.
Note: If you had a raytrace acceleration related bug, please clear the pointcache for all particles, toggle a particle setting to reset pointcache and rebake to create a valid simulation.
from Dan Eicher (dna)
Basically just wraps distfactor_to_bone() and passes the correct head/tail depending on which bone type it's called
from.
note:
renamed envelope() --> evaluate_envelope()
This runs after changing a property and allows correcting incompatible options.
Returning True will redraw the UI.
Currently this is used for setting the write extension when saving files, so changing the image format also corrects the extension.
The same is accessible from python where its used when saving SVG/EPS/PNG files.
This fixes: [#23828] obj export problems, [#23760] Exporting OBJ and filetype ending
also fixed document submission operator.
Now the filename in the file selector is the one used for writing this means we remove the "Save Over" popup which could be overlooked too easily.
Instead display the filename field with red tint, and a note in the tooltip.
Added ND_OB_SELECT notifier to separate operator. Selected objects
aren't actually changing, but there is no existing ND which could be used
for outliner update.
- BKE_add_image_extension now sets the extension rather then appending. (no more image.jpg.tga)
- py/rna functions which have no return value now raise an error if a non-None value is returned.
- added back the red-alert flag so buttons can have a red highlight if somethings wrong.
color, made sample a modal operator now to solve this. It's an indirect
solution, but couldn't think of anything better, and it's useful to have
anyway.
Crash was caused by missed offscreen OpenGL buffer. Added checking around this stuff.
Also fixed crash of simple "Image from view operator".
Note: This commit fixes only crashing, you'll be still unable to use this tools.
- rna buttons with units set now use the units base value for snapping.
- bone head/tail radius could be set negative.
matt: removed a check in ui_is_but_unit() which made angle buttons return false, what was this for?
from Lorenzo Tozzi (oni_niubbo) with minor edits.
--- from the tracker
The present situation is this: due to bug#22274, during editing, UTF chars are stripped from buttons with a unit associated
(length, angles, etc.).
Example: if the button displays '90°' and you click on it with LMB, the editing string will become '90'.
The problem arises if you use microns: '34µm' becomes '34' that blender interprets as 34 meters. So clicking on a button
and hitting enter won't confirm the previous value, but will change it (very badly also).
Of course nobody is using microns in blender, but the problem will arise when we will implement areas and option 'Separate
Units' will be enabled. The value '2m² 3cm²' will become '2m' during editing.
This patch solves the problem rewriting the string in a smarter way than just stripping the UTF chars: the unit is translated
from unit->name_short ('µm') to unit->name_alt ('um'). So clicking on '34µm' the editing string will become
'34um'.
--- end
note: rather then allowing empty strings in name_alt field I made it so if the unit system was the default one a NULL name_alt will just strip the string, since its the default its not needed.
- ignore MSVC warnings when FREE_WINDOWS is defined to quiet warnings.
- the CMake flags were not being set correctly making blender have weirdo colors (no -funsigned-char).
was missing a call to glLoadName(-1); so drawing commands after the bone were taken into account with the selection.
made some other minor changes that dont change functionality.
By Luca Bonavita (mindrones)
The patch renames and moves gl_round_box, gl_round_box_shade and gl_round_box_vertical_shade to UI_interface.h, so the extern usages are not needed anymore.
By Luca Bonavita (mindrones)
From detailed description: This patch doesnt change functionality, but uses the existing color math functions from math_color.c into
sequencer_draw.c.
- fix for minor inconsistency in armature selection, entering editmode and selecting a bone would move the manipulator because the selected bones, childs root wasnt selected on entering editmode.
- use copy_v3_v3 rather then VECCOPY in editarmature.c
The funny thing is: I only spotted this bug in March of this year. Almost one year after the original release. I think I don't parent objects to the camera often.
In terms of code I think that I can even think in a more elegant solution. I don't really need to rotate the camera, but simply to calculate its Modelview Matrix.
"""
m_rasterizer->SetViewMatrix(viewmat, cam->NodeGetWorldOrientation(), cam->NodeGetWorldPosition(), 1.0);
cam->SetModelviewMatrix(viewmat);
"""
The reason why I originally was rotating the camera was to make sure the frustum calculation was using the right camera frustum. For the frustum it takes the camera modelviewmatrix so the rotation really shouldn't be necessary. Leaving as it's for the time being.
* Note: the bug was never officially reported
- A property used in an 'active' poll for UI code in the NLA Editor was missed during the RNA renaming madness, leading to error prints in the console
- For matrix blending code, 'fsize' arrays were being declared wrong size (4 elements long instead of 3).
- use preset subclass with funcs for updating the keyconfig
- keyconfig filenames are used for the UI names as with presets (so separation anymore)
- keyconfig's are stored in the preset dir (scripts/cfg dir removed)
- only the active keyconfig script is loaded
- some bugfixes for saving keymaps
- user interactions no longer saves keyconfigs too, I think this needs to be re-worked.
developer note...
multiple keyconfigs at once are not really needed now that they are stored & accessed directly in python.
for now I left it alone but we could consider to remove this capability in the future.
The FullScreen state was never set. Therefore the window boundary was returning the wrong dimensions (it was assuming that it was not fullscreen).
* Note: blender.exe -W has a similar problem. We are working on that ...
Tested in Windows only. If someone can test in Linux and OSX please let me know if it's good there as well. To test it: ./blenderplayer -f myfile.blend
After last commit I realized that we have a different behavior when running blenderplayer or a runtime. Reason being is that when running blenderplayer the filename is mandatory. While in runtime mode it has no use for it (it can still be passed, but it makes no difference).
I also updated the -h (help) message to be multiplataform and to pass the filename argument only when in blenderplayer mode.
If someone wants to have fun it would be nice to port the blender new parsing code to the gameplayer.
* note: how come "noaudio" is used in the examples but it's not in the options list? *ouch*
I'm leaving as it's in case noaudio get implemented ...
Now reloading the user defaults also unloads/loads addons, resetting the state to the one set in the user preferences.
moved addon functions into bpy.utils
- bpy.utils.addon_enable(name, default_set=True)
- bpy.utils.addon_disable(name, default_set=True)
- bpy.utils.addon_reset_all(name, default_set=True)
the user preference operators now just wrap these.
argc always include the filename, therefore all the optional parameters should check for < argc instead of <=argc.
E.g. That was causing "blenderplayer -f 800 600 myfile.blend" to play in a wrong Bpp (since it was trying to parse the filename to fullScreenBpp).
Bug introduced on rev. 16448 (in 2.49) and merged to 2.5 in rev. 19323
This happened/was most noticeable when clicking on a bone of an armature in posemode but not active (i.e. some object other than the armature is active when trying to select the bone).
* multiply the diffuse and specular colors by their respective intensities
* only output <transparency> if MA_TRANSP flag is on
* only output <reflective> and <reflectivity> if MA_RAYMIRROR flag is on
- option only available to cmake, scons and make have this enabled always.
- without this clang/llvm can compile blender
- this was the second biggest internal lib, 192mb -> 172mb for all blenders libs (with debug flags), so gives some speedup to linking.
this was the one module left to be renamed.
We didn't get to any conclusion in the mailing list, but Campbell suggested texture and I think its a good name. We can change any time before next Beta, but for now I think it's handy to have something.
The original proposal is from May:
http://lists.blender.org/pipermail/bf-committers/2010-May/027587.html
The reason this didnt work is all sibclasses of pythons type() or PyType_Type in C, have to have their size set to sizeof(PyHeapTypeObject) rather then sizeof(PyTypeObject) as you might expect.
This is strange since its not a heap-class (defined in pythons runtime), but a static C type, so Im not sure about this, and cant find any documentation but it seems to work ok.
Nurb's material number used to be clamped to [0;-1] for case object hasn't got
materials. Forced to keep material number on zero if object hasn't got any materials.
- operator properties are now converted into python property() class members which bypass the operator 'properties' member.
self.properties.mysetting
... can now be written as ...
self.mysetting
- fix for error reloading rigify
* Now cloth reads cache using subframes when rendering.
* Cloth cache also was reset every time on the start frame which kind of defeats the point of the caching.
eg:
bpy.types.Scene.myprop = BoolProperty()
note, this uses an ugly python metaclass, this should be replaced with a C implimentation which is included but commented out, causing crashes in pythons GC which gives no hint as to where the bug comes from.
Fixed bug #23657, "Modifiers dosen't work when you select diffrent mesh for object"
Multires modifier now adds empty mdisps if they're missing, rather than displaying a warning
Switching an object's mesh will now check for a multires modifier; if found the modifier's total number of levels are reset to match the mesh's mdisps
Switching the mesh also forces a multires update so that sculpted changes aren't lost
- rna internal deferred properties now store the functions as PyObjects rather then C function pointers
- Property functions now allow the first non keyword argument to be a class.