- Keyed particles work again for all visualizations (previously only "path"), they still need some work though to be fully operational.
- Keyed particles weren't saved or loaded correctly.
It seems everytime I try to fix something here I break something
else, but anyway, another try at getting this to work properly.
Fixes for:
- Getting dupliverts/faces derivedmesh with orco caused wrong results
on meshes in linked dupligroups with proxy, because modifier stack
was revaluated with wrong object matrix, now gets orco another way.
- Fix render instances being hidden when original object was not added
to the object render list.
- Changed the way object instances find their original objects, now
works the other way around, original objects look for their instances
instead.
There's probably issues still with recursive dupligroups..
* Generalized the interactive brush property control from sculpt mode into a simple API
* Modified sculpt mode to take advantage of this (even fixes some minor bugs!)
* Added shortcuts in particle edit to set brush size/strength (FKEY/shift+FKEY)
Still todo are the other modes that have brushes...
----------
Added RenderData.activeLayer attribute, lets user access the active
rendering layer. Also corrected description of RenderData.freeImages
attribute.
Note: doesn't seem like there is any support in the python API for accessing
the renderlayers settings....
add split area to screen manager
- RMB+ALT down on area edge activates
- mouse move interactively to area that is to be removed
- LMB to confirm, ESC to cancel
TODO:
- notifications for interactive drawing to mark area to remove
Some fixes
- uninitialized var warning.
- exit function of operators need to run before modal handler is removed if operator is used there.
- replaced MEM_mallocN with MEM_callocN to get rid of uninitialized mem for wmOperator.
- respect return value of wm_handler_operator_call() and break out of operator handling.
Now you can set/get: float, arrays (int and float) and string.
The only special function is OP_get_string, it is special
because return a pointer to the IDProperty data, so you can't
change/resize/free the string.
It's possible "fix" this with:
1) Return a "const char"
2) Return a duplicate string
All this new function are not in use yet, but i make a simple test
with the "move areas" operator (add a property of every type and then
print the result in the other size) and work fine, more test are welcome.
Other thing to check is the new OP_free_property function, because this
properties are only local to the operator, i choice free all this in the
"exit callback" of every operator (only move areas have property now),
so comment about this are welcome too :)
Also add some notes to the WM_api.h file.
This commit adds split area to the window/screen manager.
- RMB down on area edge activates
- mouse move interactively moves areas through new edge.
- RMB up to confirm action
- ESCKEY or LMB to cancel.
This still crashes in some situations, but I'm on it!
Also will start using new operator property system by bdiego
This is a simple API around IDProperty to store properties
in the Operator, it is really simple and this first commit
just add support for IDP_INT data type.
Take care that this "properties" are not save yet and you get
some "Error totblock" more with this.
I add some notes to the WM_api.h file, please check this,
comment and ideas are welcome.
- while sampling color in image window, you now get the sampled color as a line
drawn in the node editor Curve nodes, allowing quicker view of what values you
actually change.
- reverted temporary the patch [#6779] by Matthew Plough
He replaced image drawing of backdrop-node-editor with our Texture drawing
function. That call is extremely slow, and should be by definition slower
than glDrawPixels (unless you don't upload the image each time to gfx mem).
Drawing large frames (2k, 4k) in node editor became unacceptable slow, even
with the neatest hardware around. (tested nvidia, ati)
Probably (Campbell thinks) this is a bypass for Linux ATI cards?
Anyhoo, this should be investigated further before applying. It better then
becomes a user pref, or even much better: part of the OpenGL profiler we need.
Newly added strip->scale was never initialized 1.0f on adding, causing
divide by zero in NLA/Action UI.
Bug since september or so... is nobody using NLA? :)
Now, the Limit Scale Constraint can be made to work on the Transform values like the Limit Location constraint. Use the "For Transform" button to activate.
For clarity, this means that when scaling with a Limit Scale Constraint with this option on, the relevant values in the Transform Properties will stop changing once the Limit defined in the Limit Constraint is reached.
Removed a pair of uiPanelPush()/uiPanelPop() calls from the Transform Orientation panel, which were causing minor redraw/refresh problems for the panel's buttons here.
Snapping for object mode
Changes:
- Transform snap now working in object mode and not just mesh edit mode
- Shift-Tab can be used to toggle snap on/off inside transform too (no more Esc,toggle,restart)
- Object mode snap: Closest uses the bounding box corners of all selected objects, Median uses object center and Center uses transform center (same as edit mode).
- Object mode snap: all visible meshes can be used to get the snapping point (unlike edit mode snap which is limited to selected mesh: this might be adjusted to make edit mode snap use all visible too).
To Do:
- Add "Active" snap target method: use active object (or mesh element) as snap target
- Add snapping capabilities to Scale
- (Maybe) Add "Near pointer" snap target method: use selected element that is closest to mouse pointer as snap target. Active could probably accomplish that already in a less confusing manner, so I might skip this.
Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -> Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.
If you plan on using only a single custom orientation and don't really need a list, I suggest you use the hotkey as it adds and selects at the same time.
Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).
Adding from an object, the orientation is a normalized version of the object's orientation.
Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest.
(More logical orientations can be suggested).
I plan to add: 2 vertice (connected or not) => edge orientation , 3 vertice = face orientation
Differences from the patch:
- orientations no longer link back to the object they came from, everything is copy on creation.
- orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)
[#6861] Black dots when using small lamps on Mirror materials in 2.44 and 2.43.
some values were not initialized properly, for example, the window coordinates for reflections, this caused NAN color values for some pixels, (may also fix plumiferos bad pixel problem from last bconf)
This commit restores the "big red button". When Auto-Keying is enabled (record button toggled on), a menu appears beside it to choose which behaviour for auto-keying should be used. This should be more efficient for quickly turning Auto-Keying on/off.
I've also added the relevant version-patches to fix up old files so that sensible default options are in use.