This commit should hopefully fix some of the problems some people were
having with tablet support in sculpt mode, and also the problems I made
visible with my previous commit related to number field dragging.
Now, all the ghost related stuff is tucked away in ghostwinlay.c and a
simple Blender API, similar to the existing get_mbut() for example, is
provided to access the tablet data. As with the other mouse related data in
Blender, the tablet data is cached upon each mouse move or click, in the
Window struct.
You can now just use:
float get_pressure(void);
void get_tilt(float *xtilt, float *ytilt);
short get_activedevice(void);
to get such data from the tablet. Documentation on the returned data
is in ghostwinlay.c in the _Window struct definition.
Brecht and Nicholas, I've updated the painting and sculpt code and it works
just fine here, you may want to give it a check though to make sure I
haven't done anything silly.
* Added a keyword argument to mesh.transform() - "selected_only" so you can transform the selected verts. this wont break existing scripts.
* Documented these changes in epydocs.
* used these functions in BPyAddMesh
* refactor copying and freeing of node->storage by handlerizing them.
- freestoragefunc
- copystoragefunc
- node_util.c/h have generic handlers for these.
Posemode: you can get a situation of an active object, in posemode, which
is not selected. That is very invisible, and gives issues for tools like
'clear rotation', because it checks for selected objects.
Als fixed clear (alt+g,r,s) options to only work on posemode for the active
object.
Added patch #5231 Insert multiple movies / audio tracks in video sequence
editor by Diego Borghetti.
Opening several movie / audio (HD) tracks in the file selector results in
adding them in a row to the timeline.
console - Ctrl+Tab was autocomplete but that conflicted with weightpaint. Use Ctrl+Enter and Shift+Enter for newline without executing.
also made console.py import bpy.
----------
Convert charRGBA to tp_getseters, update PyTypeObject structure to initialize
all the proper values, and use PyType_Ready to initialize (this means we can
remove the local tp_dealloc function again).
Fixed bug #6358, UV face select + Multires level change crashes
* Reading in multires files wasn't relinking the MTFace customdata stored for level 1. This was leaving tpage as a bad pointer.
----------
Change deprecation printfs to print warning once instead of everytime the
deprecated method is called. Also commented out deprecation warnings for
code which will eventually be replaced by experimental Blender.Main/bpy
module.
fkey - automatic quad from 4 verts does so on a tetrahedron
Added a case where there are 4 verts selected but > 4 edges selected. Uses addfaces_from_edgenet in that case now. This fixes the example blend that was given.
Crashes in composite; caused by bad bad bug in freeing "passed on" buffers,
only happens with option "Free unused" set though.
Appeared to be mixup of variable names. Code changes with 2 bytes... :)
Long keyframes didn't always display correctly when keyframes were being transformed. The old code assumed that the keyframes were all sorted chronologically. However, for technical reasons, this is not the case during transforms, causing problems.
Some slowdowns may be experienced on actions with large numbers of keyframes. I've only noticed a minor slowdown on some test-animations from Plumiferos I've got, but those files had a LOT of keyframes.
-Adding name "self" to the pydriver's dictionary, so that objects can be easily referenced in their own expressions. For example, the expression:
self.LocY
for the LocX channel of an object would force this object's location in X to be equal to its location in Y. As always, feedback welcomed.
import OBJ dosnt raise a Py Error when no image is given for a material
export FBX works much better, tested 179 models and dosnt crash on any now. tested import export with large scene, 375,000 tri's.
Mesh.py doc note about UV coords,,
editmesh_add minor typo
Clearing number buttons and press enter (for assigning zero) did not give
a button event anymore. Caused by code for python eval, it treated this
as an error.
Composite preview in Image window didn't work OK when making a window
fullscreen. That because it depended too much on a composite editor to be
open, for refresh events.
Now you can use preview panels in a full-screen image window too.
It also works a bit different... noticable while dragging preview panel
around.
When saving files (images), the filewindow was giving relative paths on
a save-over menu.
Also: added in group.c a note about problems with timeoffset.
Note: the intent of the original modification (and these updates) is not to
change how new_id() functions. What has been done is to pull out the code
which calculates a new name for an ID in the case of duplicate, as would
happen when you copy any datablock, into a separate function. This code is
necessary in the new Python Library module, since it otherwise is extremely
difficult to locate a new datablock appended from a library. new_id() calls
this separate function to generate a name for the new ID if necessary, just
as it previously did.
To make the purpose of this new function clearer, I renamed it
check_for_dupid() and added more extensive comments. I repeat, it's not
meant to be a substitute for new_id().