Refactored the constraints reading code to take advantage of the new ID loopers. Now, adding a new constraint type will not require much effort with the file loading code, unless the constraint uses any special direct data which needs to be handled differently.
Added a system for running a callback on all the ID-blocks referenced by constraints (like for modifiers). Also, added an API function which calls these on the constraints present in the given list.
These could be used for:
- the proxies + action/pyconstraint fix that campbell committed
- simplification of file loading code
Sensor and Controllers: small fixes and suggestion (comments) for future improvement - mainly to replace text properties to material, text or object datablocks.
Actuators done:
* IPO
* CAMERA
Actuators to be done:
All the others (their structure is in the file)
Adding NC_LOGIC
** If someone want to help on that:
Files used for actuator RNA:
- logic_window.c
- DNA_actuator_types.h
*** my first big RNA operation. critics/suggestions are welcome
**** padded some DNA variables that were not been used.
- IK-Solver interfaces were still converting units from degrees to radians. Made these all use radians now.
- Tried to fix the DOF limits drawing. This is still not totally functional again yet, but at least there are visible lines now.
- near clipping is not used to clamp minimum zoom level in ortho mode.
- view selected applied to a single point (no bound-box volume) just moves the view rather then zooming in.
for sintels face view selected didnt work well for eg: selecting a face at the mouth and zooming in.
- backbuf colors were ignored with VBO's, disable since to make this work with VBO's it would need to re-bind a color array, then restore the previous one after.
If you have some bones selected, and then hide their layer, they would stay selected + visible even when you make another selection. Now, they are hidden and are no longer visible when they aren't on visible layers.
Currently, this is only done if the channels are being filtered by visibility, but this could easily be changed to do without this check. Will see how this goes after some production testing. :)
act.time can set the sound position (float in seconds)
act.is3D RO gives you the dimension of the audio
act.minGain3D, maxGain3D ... set the 3D parameters of the sound
** PyDoc to be done. Jörg Müller (NeXyon) do you want to document them? The file is here:
//source/gameengine/PyDoc/GameTypes.py
+ adding a missing \n to KX_Scene.cpp. (kind of typo)
from reading all places dynamic hair is used I think these changes are correct (cloth seems to share pointcache with the psys) but its not obvious.
jahka: please check this is ok.
A btBvhTriangleMeshShape object is created when converting
a mesh to physics, also in case of Soft body although the
soft body will not use it (it only uses the mesh interface).
This patch keeps this system for compatibility with the
KX converter but avoids the creation of the BVH structure,
which consumes a lots of CPU. This should speed up
significantly the conversion of large mesh to softbody.
A secondary optimization is that the sharing of shapeInfo
is extended to rigid body using gImpact. Before it was
only active between static body and soft body.
- Number of multicuts can now be set (only usable for multicut mode)
- Midpoint cutting is now done using shift-k + drag hotkey mapping
These were just minor properties changes, which shouldn't be too much of a hassle for BMesh merging.
Only recalculate changes when absolutely necessary (mouse move triggers a soft recalc that will only happen before the next redraw other events trigger hard recalcs). The problem was that mouse moves are reported as lots of events (with small dx,dy) between each redraw which would trigger often heavy recalculations every time while only the last one was really important (the one before the redraw).
This makes snap project (retopo) much more manageable but induces a very small lag equal to one refresh cycle. Confirming transform does a hard refresh, so the final result is always consistent with mouse position.