Commit Graph

827 Commits

Author SHA1 Message Date
Campbell Barton
fcd2d30004 * minor changes, edited some tooltips (exr half and zbuf were not that helpful)
* UV coord buttons overlapped others since merging uv/face and editmode.
* added some quad join and triangulate into the Ctrl+F face menu.
* active face cant be hidden anymore.
2007-09-14 06:46:57 +00:00
Campbell Barton
256ebc10a0 Selecting faces in editmode did not delimit seams as it does in Face/UV mode.
added this to editmode, only delimit seams if face selectmode is enabled.
2007-09-13 17:02:42 +00:00
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
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
Joshua Leung
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
Matt Ebb
0ba5295404 * QMC Raytracing
This introduces QMC sampling for use in glossy reflections/refractions, soft raytraced shadows, and ambient occlusion.

This work includes many new features and speed-ups, so check out the nice docs here:

Glossy Reflection/Refraction
http://www.blender.org/development/current-projects/changes-since-244/glossy-reflectionrefraction/

Raytraced Soft Shadows
http://www.blender.org/development/current-projects/changes-since-244/raytraced-soft-shadows/

QMC Sampling
http://www.blender.org/development/current-projects/changes-since-244/qmc-sampling/

Many thanks to Brecht van Lommel for some initial code snippets and for reviewing the patch, and especially to Alfredo de Greef who gave me a lot of guidance and help along the way!
2007-09-07 03:48:50 +00:00
Andrea Weikert
f0995e87b5 fix svn properties for line endings
fix a few no newlines at end of file warnings
2007-09-05 17:55:44 +00:00
Campbell Barton
ee740fc601 Made ~ view all IPO's (similar to view all layers in the 3d view) 2007-09-04 07:26:25 +00:00
Ton Roosendaal
30f1deccd0 Bugfix #7020
Buttons window, Object context, Anim Settings panel, "draw key"
did not work. Bug since year zero...
2007-09-02 17:47:03 +00:00
Andrea Weikert
356ab94373 == imagebrowser ==
Initial commit of imagebrowser in trunk.
BIG COMMIT!

Main changes:
* completely reworked imasel space
* creation and storage of the preview images for materials, textures, world and lamp
* thumbnails of images and movie files when browsing in the file system
* loading previews from external .blend when linking or appending
* thumbnail caching according to the Thumbnail Managing Standard: http://jens.triq.net/thumbnail-spec/
* for now just kept imasel access mostly as old imgbrowser (CTRL+F4, CTRL+F1) a bit hidden still.
* filtering of file types (images, movies, .blend, py,...)
* preliminary managing of bookmarks ('B' button to add, XKEY while bookmark active to delete)

More detailed info which will be updated here: http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser

Places that need special review (and probably fixes):
* BLO_blendhandle_get_previews in readblenentry
* readfile.c: do_version and refactorings of do_library_append
* UI integration

TODO and known issues still:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management still needs some UI work (second scrollbar?), feedback here is welcome!

Credits:
Samir Bharadwaj (samirbharadwaj@yahoo.com) for the icon images.

Many thanks to everyone who gave feedback and helped so far!
2007-09-02 17:25:03 +00:00
Kent Mein
4e2143f639 This commit fixes up a bunch of svn properties to hopefully make things a little nicer for everyone.
Patch provied by gsrb3d

bug tracker #7061

Kent
2007-08-28 10:07:08 +00:00
Brecht Van Lommel
f118bebc36 Textured drawing in Edit Mode
=============================

- In textured drawmode it now draws the texture, with solid mode lighting.
- UVs and vertex colors for subsurf are not computed incremental yet, so
  editing in textured drawmode then may not be as fast as the other modes.

Implementation Notes:
- Added textured drawing functions to the editmesh and subsurf derivedmeshes.
- Removed some unused, legacy subsurf code that directly used Mesh.
- Restructured texture drawing a bit to make it more clear and allow for
  editmode drawing.

(Peach feature request)
2007-08-28 08:53:36 +00:00
Joshua Leung
59016f9f5d Bugfix #7083:
The menu entries for changing Interpolation and Extrapolation modes in the Action Editor weren't working properly (at all).
2007-08-22 08:52:57 +00:00
Matt Ebb
63a801c21d * Curve tilt interpolation types
Just a quickie feature I needed here at work- the previous linear 
interpolation of tilt in curves can give nasty pinching problems 
when trying to do flowing curves like a ribbon. This commit lets 
you choose the interpolation type, between Linear, Cardinal, and 
BSpline. The code was already set up for it pretty easily, mainly 
needed to make the choice visible to the user.

Example:
http://mke3.net/blender/devel/etc/tilt_interp_types.png

Works on selected curve 'lines', menu in 'curve tools' panel in
edit mode.
2007-08-21 01:57:15 +00:00
Brecht Van Lommel
8a46c006d6 Add "View Selected" in the IPO editor
- Numpad dot is shortcut key, same as in other windows.

(Peach feature request)
2007-08-20 17:50:04 +00:00
Matt Ebb
21c567854a Patch #6770 by James C (sheep)
Tooltip getStringSize and getBoundingBox correction

Not really any user-visible changes here, but a nice clean-up of 
internal font drawing functions, in this case used in tooltips.

Thanks!
2007-08-20 01:02:12 +00:00
Joshua Leung
dbef15f99e Bugfix #7051: Stars' preview doesn't update in real time.
Added a new event code (B_WORLDPRV2) that forces an update of the world buttons-window preview AND the 3d-view, instead of having only one of the two getting updated (with REDRAWVIEW3D or REDRAWBUTSSHADING)
2007-08-19 06:13:19 +00:00
Joshua Leung
c78e6d987b Fix for 'undefined function' compiler warning in poseobject.c, introduced by Brecht's cool heat-skinning stuff. 2007-08-15 10:38:46 +00:00
Joshua Leung
0cc2de1b37 == Action Editor Bugfixes (BugReport #7049) ==
This commit fixes several issues related to using the Action Editor with Shapekeys. I've known about most of them for a while, so now's the time to fix that.

1) When the shapekey anim data for an object comes from an Action (key's IPO block is linked to the "Shape" action-channel), the names of the individual shapekeys is now shown. They will only do so if the Action Editor is not pinned though.

2) Slider limits for the case described above should now be sane again

3) "Add New" option from the popup menu in the Action Editor header will now convert shapekey animation data from IPO to Action if the action editor is displaying Shapekey data at the time. Many users have often found the old way of having to toggle the "running man" in the IPO-editor header, too clumsy and confusing.
2007-08-15 10:04:45 +00:00
Matt Ebb
5c1335a4a5 Fix for bug #7406 'Compositor Crash'
Previously when deleting a scene, no checks were made to see if 
any render layer nodes in other scenes were referencing them,
leaving them pointing to bad memory. Now, this checks all other
scenes' nodetrees and sets pointers to the to-be-deleted scene to
NULL, which gets taken care of elsewhere.
2007-08-14 04:38:31 +00:00
Martin Poirier
9e32291a75 Small Transform code cleanup and addins for future features.
- Removing evil InitTransModeFlags (I would always forget to update that when adding new stuff). It's properly done in the per transform init now.
- Add toggleable mode for Shear (with MMB) for horizontal or vertical shear. Toggle shear mode also changes the input mode from vertical to horizontal and vice versa (it's intuitiver that way). (This was suggested in a really old patch but never implemented because I disliked adding transform specific handling in the main event switch).
- Add custom event handlers per transform (currently only used for Shear)
- Add custom data pointer and freeing flag (only (a)bused by Shear).

NOTE to Levi Schooley: Some stuff in there might be useful for you.
2007-08-09 01:07:27 +00:00
Campbell Barton
c6785e3292 fixes from 2.4x 2007-08-03 16:33:08 +00:00
Joshua Leung
fa5b4954a2 == Bone Roll - Align to Cursor ==
In this commit, a new way to set the bone roll is introduced. It aligns the z-axis of the selected bone(s) to the 3D-Cursor, so that the cursor intersects with the YZ plane. 

This makes it easier to align bone rolls to a target, for use in rigs where arms/legs are not horizontal/vertical. To use this, just press Ctrl N, and choose the "Align Z-Axis to 3D-Cursor" option.

Credits go to Robert Christian (wavez) for providing the method as a working BPy script, that demonstrated this in action.
2007-08-03 11:16:12 +00:00
Roland Hess
876cfc837e Visual Keying refactor
This code was always kludgy and this clean it up a bit.

insertmatrixkey() has been properly renamed insertkey_float().

Matrix calculations have been excised from the interface code,
and placed in insertmatrixkey(), so that you can call it from
anywhere without preliminaries and the proper values are calced
based on the passed adr code.

By much request, several semi-bug reports and discussion with
production animators, visual keying is now used automatic
for objects and bones that have constraints that cause them
to ignore their Ipos (CopyLoc, TrackTo, etc.). In those cases,
visual keying is used instead of the normal Ipo insertion
method. This "auto" functionality is toggled from the 
"Use Visual Keying" button found along with "Needed" and
"Available" in the Edit Methods prefs.

Logic as to which constraints trigger visual keying on
which adrcodes can be tweaked in match_adr_constraint()
src/editipo.c

This has been tested by a couple of people, myself included,
but I may not have hit every constraint case, so evolutionary
feedback is welcome.
2007-07-31 13:37:59 +00:00
Joilnen Leite
ab4af04a10 new ICON_FONTPREVIEW 2007-07-30 19:40:23 +00:00
Joilnen Leite
443a64135e Font preview 2007-07-30 15:59:16 +00:00
Joshua Leung
6dcde0b5be More Constraints Bugfixes:
* Transform Constraint should now work in more cases. Somehow the old code (for location case) wasn't working correctly.
* ChildOf Constraint applied on objects, should now get the right 'inverse'/'offset' matrix set. It now uses the same code that is used by Blender's parenting method to do so.
2007-07-29 11:15:37 +00:00
Brecht Van Lommel
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
Joshua Leung
74ca178199 == Transformation Constraint ==
This commit adds a new constraint to Blender: the Transformation Constraint. This constraint gives you more freedom to choose how transforms are copied from one object/bone to another object/bone. 

You can assign the Loc/Rot/Scale channels of a source to the Loc/Rot/Scale channels of a destination, specifying the range of motion (per axis) from the source to consider, and the range of motion (per axis) that will be applied to the destination. Also, for each destination axis, you can choose which of the source axes to copy from. 

A similar constraint was coded by Jason Blary (snark), as Patch #4991. This constraint is basically rewritten from scratch, although there are some elements of the original patch which may be borrowed in future.

Various notes:
* PyAPI access has been coded. 
* Space conversion is also enabled for this constraint.
* Also the useless get_constraint_col function has been removed
* Doing a rotation copy with a ratio that is not 1:1 doesn't always work correctly yet (like for the Copy Rotation constraint).
2007-07-21 07:26:15 +00:00
Joshua Leung
9116a62336 == Action Editor Bugfixes ==
Resolved Issues:
* My drawing cleanup commit the other day broke shapekey keyframe selection - was using wrong filter for Action Editor data
* Removed the old hack to limit vertical scrolling so that shapekeys were visible. It wasn't really needed anymore, and was causing problems with HomeKey.

Unresolved Issues:
* Vertical placement of sliders is slightly off
* In a test file I obtained, shapekey sliders don't work immediately after the file is loaded.
2007-07-06 09:59:18 +00:00
Joshua Leung
b6ccafc501 == Action/IPO Mute Icons ==
Added new defines for the icons used to show this, on the request of Matt Ebb. For now, the eye icons have simply been duplicated to the new spaces, but 'more descriptive' icons should be made.
2007-07-03 01:23:30 +00:00
Joshua Leung
d65816c49a == Action Editor ==
Some cleanups of the Action Editor drawing methods. These now make use of the filtering stuff I added for the backend cleanup.

Unfortuantely I still cannot get Blender's ui widgets to really work properly, so that toggle icons can have tooltips. There were some severe scaling issues.
2007-07-02 12:04:22 +00:00
Kent Mein
cdb07720ed Code cleanup's done by bedraw
This is patch #6886
https://projects.blender.org/tracker/index.php?func=detail&aid=6886&group_id=9&atid=127

removes some unused define's and some code that is no longer used and fixes some
formatting issues.

Kent
2007-06-28 15:57:54 +00:00
Roland Hess
a7a5e5c6cb Adds the following selection methods to the Sequence Editor:
Ctrl-RMB and Alt-RMB now call for different selection methods that are helpful when working within a single channel that holds several strips. The Ctrl modifier signals "Right" and the Alt modifier signals "Left".

Ctrl-RMB clicking a strip will select that strips left handle and the adjacent handle of any strip that abuts it on the left, allowing you to move the boundary between the strips without changing their outer endpoints. Ctrl-RMB clicking again on that strip will add to the selection all strips to the left of it, allowing you to slide the entire set of strips out of the way for a new one.

Alt-RMB works the same, but to the right.

Ctrl-Alt-RMB on a strip selects the surrounding handles only, allowing you to move the targeted strip and have the surrounding two strips adjust to follow.
2007-06-26 17:46:12 +00:00
Joshua Leung
a82b7171a2 == Action/IPO Editors - Code Cleanup ==
Added two macros which are used to test if the active Action/IPO editor is displaying data from a scaled NLA-strip.
2007-06-26 10:08:58 +00:00
Ton Roosendaal
9dd0c5abe5 Whoa, a new feature!
Sequence Editor: SHIFT+R, Remap Paths (also in pull down menu)

This allows to remap the root of a path to another directory.
Works on all selected Image strips. That way you can make absolute
paths relative, for example.

Example:
original path: /mnt/orange/finals/06_which_way/06_03b/
to be remapped: /mnt/orange/finals/
remap to: //
new path: //06_which_way/06_03b/
2007-06-25 13:01:46 +00:00
Nicholas Bishop
8cf2d5ca4a == Sculpt Mode ==
Added a new input control that smooths the brush stroke.

This option controlled by the menu item Sculpt>Input Control>Smooth Stroke. When enabled, the brush has a delayed effect on the model; a green line is drawn to indicate the smoothed path of the stroke. After ~200 pixels, the first half of the stroke will be applied to the model; the process then repeats, with a new segment of the stroke being applied to the model after every 200 pixels. On mouse up, any remaining portion of the stroke will be applied.

Other changes:
* Added a flags field to SculptData; currently only used for smooth stroke but other flags can be moved into it
* Moved the damaged_rects/verts into SculptSession
* Simplified brush application by moving init_editdata into do_symmetrical_brush_actions
* Removed Averaging from sculpt Input menu; smooth stroke should take its place

TODO:
* Fix display of the smooth line in Partial Redraw mode
* Make the smoothing and delay factors adjustable
* Optimize the stroke application (currently using the old 'dot' style of applying the brush)
2007-06-24 22:28:28 +00:00
Joshua Leung
1c41d19964 == Auto-Keyframing ==
I've moved the Auto-Keyframing functionality out of the special_aftertrans_update function into two separate functions, which can be called independent of the Transform system. One is for Bones, while the other is for Objects.

This now means that the Shift-S Snapping Tools will now work with auto-keyframing.
2007-06-23 06:56:16 +00:00
Joshua Leung
3caf086137 == Action Editor - Long Keyframes ==
I've recoded the way long keyframes work a bit, so that more cases are handled accurately. Now, it takes into account the number of IPO-curves that have keyframes in them on the start/end frame of the long-keyframe, instead of just taking the total number of IPO-curves present for the channel being drawn.
2007-06-19 09:46:52 +00:00
Joshua Leung
01e8789f3f == PyConstraints ==
At last! The ability to code constraints in Python. This opens up many interesting rigging possibilities, as well as making prototyping constraints easier.

* A PyConstraint script must begin with the line 
#BPYCONSTRAINT
* It must also define a doConstraint function, which performs the core actions of the constraint.
* PyConstraints use IDProperties to store custom properties for each PyConstraint instance. The scripter can choose which of these ID-Properties to expose to a user to control the behaviour of the constraint. This must be done using the Draw.PupBlock method.

Credits to Joe Eager (joeedh) for coding the original patch on which this is based. I've made heavy revisions to large parts of the patch.

For more detailed information, and some demo scripts, see the following page:
http://aligorith.googlepages.com/pyconstraints2
2007-06-18 07:41:21 +00:00
Juho Vepsalainen
a499da7192 Curve Selection Tool Refactor:
This commit refactors curve selection system to use certain curve selections
functions that encapsulate setting of selection flags. New function to select
adjacent control points was introduced too. Refactoring made it possible to 
simplify certain existing selection functions quite a bit. 
New functionality was delivered as well. Select more/less works now with NURBS 
as expected. Also two new curve selection functions were added: Select Every Nth 
and Select Random. 

See http://wiki.blender.org/index.php/BlenderDev/Curve_Selection_Tools for 
further information.
2007-06-14 14:36:27 +00:00
Nicholas Bishop
2494a5ed0d == Multires ==
* Small optimization to multires based on profiling data; calculation of edge boudndaries is now cached along with multires mapping data to improve the performance of the catmull-clark code.

* Removed an unneeded call to create the temporary data when loading files.
2007-06-10 21:51:11 +00:00
Brecht Van Lommel
d39d2e7279 Patch #6717:
Select Inverse function in the UV editor, by Juho Vepsalainen.
2007-06-10 14:06:34 +00:00
Jiri Hnidek
d1711b3972 Patch [#6729] from Juho Vepsäläinen. It adds inverse and random select for metaelems. I simplified random select a little. 2007-06-08 14:17:13 +00:00
Joshua Leung
25935dbdb1 == Action Editor - Major Recode ==
I've just spent two days rewriting the Action Editor to unify its code and bring it under control again (it was 107kb, now it is around 73 kb). 
* This means that there are no longer separate functions for each tool for Actions and Shapekeys in the Action Editor, and also no more missing tools for either. 
* Also, I've gotten rid of the need for those complicated, hierarchial loops used for action channels, as they were a pain to keep consistent with each other.
* Baking functions have been removed. See user-level-changes for more details.
* Reorganised and completely rewrote code in editaction.c, thus the lengthy diff.

User Level Changes:
* For the meantime, border-selecting Action Channels has been disabled
* Baking functions have been removed. As far as I have been able to find out, these were really non-functional anyway. Besides, I don't think they really belonged in editaction.c
* Editing Shapekey keyframes now yields the same feature set as for those in Action Channels.
* There shouldn't be any major bugs left, but I might have missed something.

Further Work:
* Do a cleanup like this to the Action Editor drawing code in drawaction.c
* Baking??? (harkyman seems to be doing something about this)
2007-06-05 12:11:00 +00:00
Nicholas Bishop
1a9f0e692a == Multires ==
* Moved the multires vertex data from struct MultiresLevel to struct Multires. There's no longer any reason to store data seperately for each level; it was just taking up extra memory.

* Incremented the subversion to 2 and adjusted do_versions to correctly load older files.

* Refactored the multires update process (which handles propagating changes to other levels)
2007-06-01 02:21:11 +00:00
Joshua Leung
2d8dd194cc == Action Editor ==
Small Action Editor feature to hopefully make keyframing quicker. Just press the IKEY in the Action Editor. Feedback on the (annoyance factor of the) popups welcome.
2007-05-31 11:47:04 +00:00
Joshua Leung
024485b9b8 Patch #6759: this speeds up the vertex group editing workflow a bit.
The hotkey Ctrl-G in EditMode for Meshes and Lattices, brings up a menu giving the user options to assign/remove selected vertices to a new/the active Vertex Group.

The hotkey Ctrl-Shift-G in EditMode for Meshes and Lattices, brings up a menu giving the user options to change the active Vertex Group and delete the current Vertex Group.
2007-05-30 10:36:17 +00:00