Previous changes for Constraint Up/Down buttons broke the drawing of some constraints. It seems the lack of any buttons within an pair of uiBeginBlockAlign() and uiEndBlockAlign() caused problems.
* Buttons to change position of constraints in constraint stack are now totally hidden if they don't do anything valid. It'll have to be this way until we get grey-able buttons.
* Duplicating keyframes in Action Editor now sets correct undo-string
Added a new constraint, "Limit Distance". This constraint defines a 'virtual sphere' around the target which the owner can be made to stay inside, outside, or on the surface of it.
This constraint is best used when applied using the Ctrl-Alt-C hotkey, as the radius is set correctly that way.
One usage, is to prevent the target of an IK-chain from straying away from the chain. Care should be taken to not use a member of the IK-chain as the target though.
Description of Variables:
* 'Dist' - Radius of virtual sphere
* 'R' - Click on this to recalculate the 'Dist' value (note: like the 'R' button in the StretchTo constraint, this is currently buggy)
' Mode' - This menu gives different options for how the limiting sphere should act. The mode names are self explanatory.
* 'Soft' and 'SoftDistance' - currently not functional (so settings are hidden). These are used to define a smaller radius around the sphere of influence where a non-linear relationship between input and resulting locations occurs to prevent the owner 'crashing' into the sphere.
i did not like the accusation blenders soft body module is too bad coded to not respect law of energy conservation.
well .. animators most of the times don't care if there was a theoretical physics law .. they want to get things done
hum i think
on the other hand it is for sure raising confidence to the soft body module when simple physical rules can be verified
so i won't 'turn a hand' on either approach
IMHO the inaccurate soft approach serves best to animators
anyhow
you have both so you can decide devil or Beelzebub
have fun BM
Up/Down buttons which are disabled are now always drawn, but those that are disabled (cannot be done) now have their 'button backgrounds' not drawn. Also, they won't do anything when clicked.
Now, the Limit Rotation Constraint can be made to work on the Transform values like the Limit Location/Rotation constraints. Use the "For Transform" button to activate.
Note: this does not really work as well as for the other constraints, as it currently does conversions between eulers/quats and matrices. This results in loss of rotation data.
that is : good enough to pass PQC = personal qualitiy control
*sigh*
before peach freeze
some of them almost did ..
but hey we want to give 'em peachers something to rely on
not a mushy "may be it works"
so 'implicit solver' is gone for now
and from what i read between the lines in various papers
the main problem is the Jacobian has negative 'eigenvalues'
yeah that rings a bell .. the transition from a continuous system to a discrete one
bears that.
/* you did not read/understand that .. fine .. because this is something that might give me my late PhD */
- 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.
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.
a glance to view is the "STU PID semi implicit euler"
most of the work to implement a semi implicit euler was done ..
now i am dealing with the tradeoffs between 'calculation time' which is quite expensive .. inverting a 0(n*n) sparse matrix /* once agian thanks to brecht for his work on making sparse matrices LU decomposition and evaluating inverses that easy*/ putting it into and cropping works pretty nice .. argh off topic again
...
while i spent a little time on reading recent papers i found :
1. control on springs needs to be split in pushing and pulling /* fabric pushes easy but pulls hard */
2. diagonals on 4-gons (in the current SB model) can be seen as shear .. thus need a contol to modify .. this commit wil add it
3. 2 nd order springs /*aka rigidity */ can focus on bending .. thus renaming 'em
i have no idea how i would provide backward compatiblity, but the spots i marked in code :)
* Tidied up coding style of code in editconstraint.c
- removed blank lines, made whitespace-use more consistent
* Shuffled code in editconstraint.c and BIF_editconstraint.h so that it was in a more orderly fashion
* Reduced code redundancy in test_constraints
- tests which can apply to general constraints (target existance, and clashes with the owner) are not copied out for each constraint that needs it
- ChildOf constraint now gets validated too (before it was missing such checks)
* Recoded the way PyConstraints build the menu for displaying scripts available for use. It now uses dynstr instead of guessing how much memory to allocate for each entry
Proxy protected bones can now get local (per-file) constraints added to them, which will be preserved after a file load. This is necessary for adding constraints to proxy-protected bones for special purposes while animating (i.e. adding CopyLocs to IK-hand controls to pick up an object).
These must be added after any constraints from the proxy, as proxy constraints may come and go without warning. As such, the UI forbids this from happening by removing the relevant button.
I've also made UI-changes to show which constraints come from the proxy (the buttons to move the constraint up/down and delete it, are replace with two icons - a the proxy 'ghost' icon and a lock). Also, trying to change any settings of proxy-protected constraint will show an error.
Notes:
* Object constraints are still not playing nice with proxies yet. They didn't before this commit either...
* Most were uninitialised vars
* Fixed whitespace in a few places
* The change I made in rendercore.c -> do_bake_shade() was for an uninitialised var, but I hope it does't cause any rendering errors...
- protecting the particle cache now actually protects the cache a bit better and not just prevent the clear button from working
- cache was being used for "none" physics.
- a bad tooltip for "reactor initial velocity"
============================
- Strand render now has options to remove child strands as
the object's faces becomes smaller, in the Simplification
particle panel.
- "Reference Size" is the approximate size of the object on
screen, after which simplification starts.
- "Rate" is how fast strands are removed.
- "Transition" is the percentage of strands being faded out as
they are removed.
- Another "Viewport" option removes strands on faces that are
outside of the viewport. "Rate" again controls how fast these
are removed.
- Strand render in Blender Units now has an adjustable minimum
width. Below this minimum width, strands start fading out
instead of getting smaller.
=========
- The render and realtime button for the particle system modifier
and the enabled button for particles now work seperate again,
made a bad design decision to tie them together. Now with only
the render button and not realtime enabled it renders.
- Fix for bug #7948: particle mode crash while constraining axis.
- Fix for bug #7945: crash loading effector groups from an old file.
- Fix for bug #7942: crash for reactor particles emitting from particles.
* Added display of current chain-length setting to the header, when transforming with Auto-IK on
* Removed debug print accidentally left in
* Fixed compiler warning in buttons_object.c
* Made 'cob' be a stack var instead of allocating memory (as suggested by Martin)
* Adjusted the position of "Trans" button in panel, and changed its name/tooltip to better describe its function
* 'Active' constraint now draws brighter than other constraints... this is still not clear enough though.
* [Peach Request] AutoIK now respects axis locking (rotation locks).
- Temporary DOF-Locks are turned on for those bones that are part of an AutoIK chain while transforming. These locks get cleared after transforming.
- This works for all bones except the root bone of the chain, which doesn't seem to be able to be locked.
* Limit Location constraint can now optionally affect Translations too (i.e. NKEY panel values won't change).
- LimitRot,LimitScale support (for their respective transforms) will be done at a later date
- This only works if the constraint is using World/Local space (the other spaces are not supported yet).
- I've added a temporary button in the LimitLoc panel to enable this option (it is disabled by default). This button will be properly assigned a place in that panel sometime.
=========
- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
Amount. The render amount particles are now only distributed and cached
at render time, which should make editing with child particles faster.
- Two new options for diffuse strand shading:
- Surface Diffuse: computes the strand normal taking the normal at
the surface into account.
- Blending Distance: the distance in Blender units over which to
blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
grass. This is a work in progress, and has a number of known issues,
don't report bugs to me for this feature yet.
More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
modifier.c, BKE_modifier.h - flag for modifiers to say they use pointcache, also new func modifiers_usesPointCache
renamed //pointcache to //blendcache_blendfilename so blendfiles in the same dir dont conflict, and other to show this dir isnt limited to pointcache only (nodes way want to use this)
wizard_curve2tree.py - better defaults for pretty tree's
Fixes for bugs in #7833
- Hair softbody cache was reset on rendering.
- When Alt-a playback is synced to audio frames are skipped. This caused dynamics caching to go crazy. Now the first loop of playback goes through all frames if there are non cached dynamic systems.
Invalid point caches weren't cleared when new systems were created. This caused messed up shapes when softbody was added.
-> Constraint Influence Ipo now can be local, linked to constraint itself
You enable this in the IpoWindow header, with the Action icon to the left
of the Ipo Type menu. The button tooltips give the clue as well.
Tech note: the Ipo now can get directly linked to a constraint, and is
being called during regular pose constraint solving.
Actions (and drivers in actions) are being calculated *before* pose
constraint solving. Result of actions then is written in bones, which
then solves the entire pose.
This means you can have a driver on both the constraint, as on the action
channel for the constraint! Not that I'm going to debug that easily :)
Additional fix: Joshua added a copy/paste IpoCurve feature, but he broke
the functionality to be able to paste in an empty ipo channel. That now
works again
Object panels were using object_data_is_libdata, which meant linked obdata could not have object settings changed.
curve2tree
- option to face leaves up or down
- random pitch and roll options
- place 2 leaves on a point for denser leaves
- random seed entry so you can get reproducible results
=========
- Fix for bug #7837: circle drawtype + velocity crashed.
- Setting density vertex group didn't do proper refresh.
Mesh Deform Modifier
====================
- Make it work for nurbs and curves.