Commit Graph

485 Commits

Author SHA1 Message Date
d00d1f1c89 Routine purge of compiler warnings
* 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...
2007-12-30 23:27:35 +00:00
1c02a5f620 Added a new option for 'Apply Object', (Ctrl+A) Called "Apply Visual Transform to Loc/Size/Rot"
Since there was no easy way to apply a constraint's transformation back to the original objects transformation.

Also adjusted how Apply Scale/Rot works so that it wont change some objects then raise an error and leave others unchanged, better to check first so it changes everything or nothing.
2007-12-28 17:10:55 +00:00
015007beaf == Sculpt ==
Fixed bad level calls in sculptmode.
2007-12-26 22:40:56 +00:00
88e71a5b79 == Multires ==
Cleaned up bad level calls for multires; moved most of multires functions to blenkern, where they should have been in the first place. Functionality of the tool is unchanged.
2007-12-26 09:39:15 +00:00
26b0261a53 Particle Edit Mode
==================

- Added a Remove Doubles tool, to remove two particles with the
  same root position.
2007-12-20 17:04:10 +00:00
84b58f8653 Particles
=========

- 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.
2007-12-18 16:55:09 +00:00
bb6640a63c Shift+O subdivision switching now also allows to switch
particle systems on/off if they exist.
2007-12-17 12:54:39 +00:00
457057a9e8 Fix for mirroring issues in particle mode, where the particles were
not mirrored exactly, though the problem is not completely solved.
The way local frames are computed for particles is still not fully
symmetric, which shows especially on long hairs...

Also made the shift+o subsurf switch work recursively into
dupli-groups, did only the first level before.
2007-12-11 20:02:21 +00:00
a8c8aee7c6 Group instancing usablitity issue: Hotkey SHIFT+O to set subsurf on/off
should not work if object had not a subsurf modifier before.
2007-12-03 16:21:16 +00:00
1e32ec2000 minor update, "Draw Handles" wasnt working when disabled everywhere and replaced some magic numbers 2007-12-01 23:25:00 +00:00
044b78c83b new function object_is_libdata - checks ob->id.lib but also accounts for proxy's.
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
2007-11-27 19:23:26 +00:00
7da56f4a9b Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.
2007-11-26 22:09:57 +00:00
574744bf42 New Curve function in the curve specials menu - "Smooth Radius" this smooth's the radius of selected curve points to unselected or endpoints. useful when changing the taper of a long curve
with many points (think treetrunk), it would be nice to take into account distance on the path when doing the curve interpolation.
Also moved added undo call's that were missing for 2 of the other curve specials.
2007-11-08 00:06:48 +00:00
30be716fc8 Pole Target for IK
==================

This adds an extra target to the IK solver constraint to define the
roll of the IK chain.

http://www.blender.org/development/current-projects/changes-since-244/inverse-kinematics/

Also fixes a crashes using ctrl+I to set an IK constraint on a bone
due to the recent constraints refactor.
2007-10-24 14:58:31 +00:00
6422a740c2 == Constraints System - Recode 2 ==
Once again, I've recoded the constraints system. This time, the goals were:
* To make it more future-proof by 'modernising' the coding style. The long functions filled with switch statements, have given way to function-pointers with smaller functions for specific purposes.
* To make it support constraints which use multiple targets more readily that it did. In the past, it was assumed that constraints could only have at most one target.

As a result, a lot of code has been shuffled around, and modified. Also, the subversion number has been bumped up.

Known issues:
* PyConstraints, which were the main motivation for supporting multiple-targets, are currently broken. There are some bimport() error that keeps causing problems. I've also temporarily removed the doDriver support, although it may return in another form soon. 
* Constraints BPy-API is currently has a few features which currently don't work yet
* Outliner currently only displays the names of the constraints instead of the fancy subtarget/target/constraint-name display it used to do. What gets displayed here needs further investigation, as the old way was certainly not that great (and is not compatible with the new system too)
2007-10-21 23:00:29 +00:00
e5a9e0b12a Fix "Remove Doubles" of w menu and a couple of typos:
This commit makes "Remove Doubles" of w menu to work again.
Also renamed "AutoMarge" to "AutoMerge".
Added shortcut of "Select Inverse" to menus and renamed 
"Select/Deselect All" to be consistent with rest of Blender.
2007-10-20 12:16:54 +00:00
0014fed54f Cosmetic change for Copy Attributes menu (Ctrl-C).
The "drawtype" options copies all the draw extra (x-ray, wire, ...) too, so I've renamed the menu entry "draw options".
2007-10-19 17:31:57 +00:00
5ea45a1385 Mesh edit option 'AutoMerge' - access from the mesh menu, basically runs remove doubles after transform. but only merges
unselected verts into selected verts, so it wont merge verts your not editing.
2007-10-18 21:47:55 +00:00
8bb97b6efa patch 7145 - Copy Select objects by PassIndex, Ctrl+C, Ctrl+G
Sequencer Feature, Split Image Sequence.
Splits a image sequence into strips. useful for importing frames for animatics.
 Also added undo calls in a few places that did not have it.
2007-10-17 11:17:11 +00:00
adef239fc0 * Changed the "Make Links -> To Scene..." menu to use a columned
popup menu - more manageable when you've got a lot of scenes.

Also changed an error message from using a popup menu to the proper
error() function with icon etc.
2007-09-24 03:03:43 +00:00
6e38ff32be reverted Mesh Specials WKey menu.
Ctrl+V/E/F are still there but Andy and Ton requested this unchanged.
2007-09-14 13:25:39 +00:00
670611e408 This should hopefully fix bug
[#7310] FluidSim Domain/Fluid from Duplicate Object Bug Monitor 

patch provided by Genscher

Kent
2007-09-13 20:44:00 +00:00
b2b3b01894 Added UV face rotate and mirror to editmode and re arranged some of the editmode keys
The WKey menu was way too big and not well organized, re-arranged keys like this.

Ctrl+V - Vert Menu  (remove doubles, smooth...)
Ctrl+E - Edge Menu - left as is
Ctrl+F - Face Menu - (flip normals, shading, Rotate and Mirror UV's/Colors)

Wkey menu only has subdivide in it now.

filesel.c - only show the relative paths option if the file is saved, (flag on by default caused the image to silently fail loading on my system, and gave permission errors on a users), also removed a warning.
2007-09-12 10:35:48 +00:00
c08ef3e1d6 Added active drawing in editmode (may need some more work), this hilightes the last selected vert/edge/face, which is needed for moving some of the UV tools into editmode.
Added copy menu for editmode for copying from the active faces material, image, UV's vcols etc,
improved on the current vertex color copy by averaging the 4th color when copying color from a tri to a quad.

And added edge crease and length copy

cerrently verts dont have a copy menu but eventually copy weights would be good.
2007-09-11 14:36:03 +00:00
0bd32f3ac6 Changes to "Face Select" mode
* Does not indicate that UV's exist, nor does it add UV's when used.
* Only accessible for texturepaint, vertexpaint and weightpaint from a button in the header (Paint Selection Mask)
* Not accessible from the mode menu, this is only an option that applies to paint modes.

This dosnt effect DNA, face select (G_FACESELECT) can be enabled at any time but is only used when paint modes are enabled.

Other changes
* UKey is uv unwrap in editmode, Ukey for undo was editmode only anyway.
* UVCalc in editmode adds a UV Layer if there is not one alredy.
* texture draw in editmode does not draw the face dots (they are get in the way of texturing)
* some missing updates were added.
* removed manipulator from when paint modes are enabled since the manipulator is not drawn in the 3d view.
2007-09-10 19:32:44 +00:00
e8a808da24 UV Editing is now done in editmode rather then UV/Face Select mode.
Notes
* you cant edit UV's in the image window in "UV Face Select" mode. (removed UV from the name)
* going into Face Select mode no longer adds UV's and does not need UV's to work.
* The UV Calculation menu is now in editmode (Alt+W)

Todo..
* Image replace - partly broken in stable also.
* Rotate/Mirror UV/VCol are still only in Face Select mode.
* Hide/Reveal is not quite right, (issue with editmode flushing)
2007-09-10 12:26:36 +00:00
8ddbd84240 Patch #6794: Subdivide Multi for Armatures
This patch, by Juho Vepsalainen (BeBraw), introduces subdivide multi functionality for armatures. It lets you specify the number of divisions that selected bones should be divided into. 

I've slightly optimised the code a bit, though the change shouldn't make much of a difference. I've also fixed a minor bug in the menu highlighting, due to duplicate menu event-codes.
2007-09-09 11:05:21 +00:00
04a2eb2e4e adding 2 new functions
Mat3ToScalef and Mat4ToScalef

These return a floating point scale value which is the average of the 3 axies.
Use this to adjust curve radius when applying scale/rot
2007-09-02 22:53:59 +00:00
50ea568179 Bugfix for [#7018] Hiding, unhiding a spot lamp and then setting it to buf shadow segfaults
buttons were not redrawing so it was possible to use them without an active object, this crashed blender.
2007-08-31 23:23:38 +00:00
373f91c8b1 Bone Heat Weighting
===================

This is a new automatic vertex weighting method, next to the existing
envelope based method. The details are here:

http://www.blender.org/development/current-projects/changes-since-244/skinning/

This is based on section 4 of the paper:

"Automatic Rigging and Animation of 3D Characters"
Ilya Baran and Jovan Popovic, SIGGRAPH 2007

Implementation Notes:

- Generic code for making mesh laplacian matrices has been added, which
  is only used by bone heat weighting at the moment.
- Bone to vertex visibility checking is done with the raytracing code.
- Fixed an issue in the subsurf limit calculation function, where the
  position of vertices on boundary edges was wrong. It is still not the
  correct position, but at least it's in the neighbourhood now.
2007-07-28 14:04:02 +00:00
044b354458 Bugfix #6945: Weight painting bug
Trying to Clear Rotation of a armature bone while in Weight Painting mode didn't work anymore due to Bugfix #6486. Now it checks if ob==active_object and also if weightpainting is on.
2007-07-16 05:49:04 +00:00
af55d208f4 == Constraints System ==
After just over a week of coding, I've finished doing a major refactor/cleanup of the constraints code. In the process, quite a few old kludges and ugly hacks have been removed. Also, some new features which will greatly benefit riggers have been implemented.

=== What's New ===
* The long-awaited ``ChildOf Constraint'':
This allows you to animate parent influences, and choose which transformation channels the parent affects the child on (i.e. no translation/rotation/scaling). It should be noted that disabling some combinations may not totally work as expected. Also, the 'Set Inverse' and 'Clear Inverse' buttons at the bottom of this constraint's panel set/clear the inverse correction for the parent's effects. Use these to make the owner not stick/be glued to the parent.
* Constraint/Target Evaluation Spaces:
In some constraints, there are now 1-2 combo boxes at the bottom of their panel, which allows you to pick which `co-ordinate space' they are evaluated in. This is much more flexible than the old 'local' options for bones only were.
* Action Constraint - Loc/Rot/Size Inputs
The Action Constraint can finally use the target's location/rotation/scaling transforms as input, to control the owner of the constraint. This should work much more reliably than it used to. The target evaluation should now also be more accurate due to the new space conversion stuff.
* Transform - No longer in Crazy Space (TM)
Transforming objects/bones with constraints applied should no longer occur in Crazy Space. They are now correctly inverse-corrected. This also applies to old-style object tracking.

=== General Code Changes ===
* solve_constraints is now in constraints.c. I've removed the old `blend consecutive constraints of same type' junk, which made the code more complex than it needed to be.
* evaluate_constraint is now only passed the constraint, and two matrices. A few unused variables have been removed from here.
* A tempolary struct, bConstraintOb, is now passed to solve_constraints instead of relying on an ugly, static workobject in some cases. This works much better.
* Made the formatting of constraint code consistent
* There's a version patch for older files so that constraint settings are correctly converted to the new system. This is currently done for MajorVersion <= 244, and SubVersion < 3. I've bumped up the subversion to 3 for this purpose. However, with the imminent 2.45 release, this may need to be adjusted accordingly.
* LocEulSizeToMat4 and LocQuatSizeToMat4 now work in the order Size, Rot, Location. I've also added a few other math functions.
* Mat4BlendMat4 is now in arithb. I've modified it's method slightly, to use other arithb functions, instead of its crazy blending scheme. 
* Moved some of the RigidBodyJoint constraint's code out of blenkernel, and into src. It shouldn't be setting its target in its data initialisation function based + accessing scene stuff where it was doing so.

=== Future Work ===
* Geometry to act as targets for constraints. A space has been reserved for this already. 
* Tidy up UI buttons of constraints
2007-07-15 03:35:37 +00:00
b3996a53c2 Fix segfaul reported by slikdigit in irc. 2007-06-19 22:03:08 +00:00
add68862b9 Bugfix #6809: K key in 3d viewport does not exit keyframe mode in Ipo Editor
Patch by Juho Vepsäläinen (BeBraw) included with the report fixes this issue.
2007-06-06 04:13:02 +00:00
a8bc1f3397 fix for a crash in Blender.Mesh,
getting curve data from an object failed (with only 1 curve vertex)
Blender.Mesh didnt check this and crashed.
2007-05-28 16:49:48 +00:00
99135b0674 dont use tface hide or select anymore, since maintaining 2 sets of hide/select data for each face is annoying.
using mface->flag for both.

Also found that the cdDM_drawMappedFaces and cdDM_drawFacesTex_common could get normals mixed up when rendering hidden faces. because hidden/invisible faces used continue without advancing to the next normal.
2007-04-29 13:39:46 +00:00
836ccb8ab0 Bugfix #6614:
spurious "can't edit external libdata" for normal operations on proxy armature


Also, fixed two typos in code comments.
2007-04-28 03:01:12 +00:00
23f59a8e8a Removed unused variable and reorganised another 2007-04-27 11:32:11 +00:00
59384464ec SubSurf can be enable/disable in linked data. 2007-04-25 16:52:20 +00:00
13b1fbd665 made blender take hidden objects into account in more situations.
Ctrl+RMB used to select a hidden object as well as "Select Grouped -> Parent"

Also made OOps and data browser check for hidden objects.

Added a countall to hide/unhide objects.
2007-04-25 02:20:55 +00:00
94ad8c810c Changed TESTBASE and TESTBASE_LIB to check the hidden flag
Checked every instance of testbase to see this dosnt break anything, also changed TESTBASE and TESTBASELIB, both were used incorrectly in places.

added error_libdata() for library error messages that are everywhere.
added object_data_is_libdata to test if the object and its data's are from a library.
fixed 2 crashs in adding Curve points to a library object (remember to check, verify_ipocurve returns NULL!)
made duplicating and making dupli's real for lib objects possible, disabled joining into lib armatures and meshes.
2007-04-22 22:08:19 +00:00
3fe793f2b5 [ #6442 ] image.repack (Python)
- Modified pack so it can repack too, rather the n raising an error.

editobject - Dont need to recalc data when hiding and unhiding. rather do what layers do and re-sort the scene.
2007-04-19 23:45:33 +00:00
60b3268c32 adding a python function for cleaning strings (for filenames and export names) BPySys.py - used fotr obj and fbx export.
view.c - missed one smoothview/camera.
Brigg's hide object patch didnt change the object selection flag, other minor changes also.
2007-04-19 20:58:09 +00:00
f5a40315ca -> Keybindings for hiding objects
Small feature, added keybindings for setting the visibility restriction flags
that were previously only accesible via the outliner

HKEY 		Hides all selected
SHIFT-HKEY 	Hides all unselected
ALT-HKEY 	Shows all hidden
2007-04-19 19:47:51 +00:00
b95f4ba2ad added a hook menu for object mode, more commands can be added here but currently there is only Reset Offset and Recenter at Cursor
This functionality was requested by malfico when dealing with many hooks.
2007-04-17 16:14:41 +00:00
61b6f47faf Bugfix #6559
Issue in Blender 10 years ago already:

CTRL+L "Link Materials" reduced total amount of materials in cases, which
it should not.

It now just copies Material links from the active to selected Objects.

Note for developers: see how this now is 3 lines of code, instead of
like 30. I have no idea what I was thinking back then... the current
solution could have been coded back then too.
2007-04-14 10:21:05 +00:00
54efb4c916 external library, block locking spree. Many areas of blender allow changing of library data.
Added checks to the following areas
* half the material buttons
* multires, shapekeys, vert groups
* renaming a linked Object in the links could loose the object on next reload.

Made center functions check for library data as well as changing
the way it works.

Rather then centering all objects in the selection and stopping if it finds libdata, or a multiuser mesh.
It centers all that it can, and reports any objects that didnt center and why.
2007-04-13 09:39:25 +00:00
1e5bdbcb2f added another copy option 'protected transform' makes changing the protection values all at once possible 2007-04-12 06:12:17 +00:00
5a3ab0e32e Found a bug where "make dupes real" would crash, when the group was an extternal link. - 1 liner fix from Ton.
Also added "sort faces by selection" to the sort menu.


DNA_meshdata_types use C comments for GCC verbose warnings to be quiet
2007-04-10 11:45:07 +00:00
76420c2fec appending libdata no longer breaks all external references.
Existing data is flagged with LIB_APPEND_TAG and all_local only has an option to only operate on un-flagged data.

If you append an object thats linked to a material alredy linked in your scene, the material will not be made local.
So at worst youll need to make local some of the datablocks.

This is fairly simple and though my tests show it to work, do some tests on your own libraries before assuming its problem free.


scripttemplate_mesh_edit wasnt updated with PyAPI changes and moved some functions into generic places.
2007-04-07 17:35:47 +00:00