Commit Graph

711 Commits

Author SHA1 Message Date
Joshua Leung
8039ad32df A few code cleanups for the IPO cleaning stuff in an attempt to get rid
of a bug which hides all but the active ipo-curve after cleaning. The bug
still remains, but I hope to have a solution soon.
2007-01-04 22:35:19 +00:00
Nicholas Bishop
6643cc53d9 Fixed bug #5592, change from sculpt mode to edit mode crashes 2.43RC1 on OsX Intel. Fix was to check that undo data is taken from the correct object. 2007-01-04 07:48:26 +00:00
Nicholas Bishop
0762a5a975 Fixed bug #5582, Subsurfed Multires'd objects don't display properly with interactive display unset. Added a new function for sculptmode that checks to make sure that not only are there some modifiers active, but that they are actually enabled for realtime editing. 2007-01-04 06:11:45 +00:00
Campbell Barton
59e44e4afa added sharp edge theme color 2007-01-03 05:50:17 +00:00
Nicholas Bishop
d813fb3da8 Added undo push for retopo all. 2007-01-02 20:33:11 +00:00
Geoffrey Bantle
d48a472fe5 -> Fix for bug #5472
Vertex snapping now works with backbuffered selection modes. Previously
backbuffer sampling had no way to check whether or not the indices that
it retrieved were selected or not. To resolve this I added two optional
arguments to sample_backbuf_rect in drawview.c. The first argument tells
the function that some additional testing  of the retrieved index values
needs to be done and the second argument is a pointer to a function to
do the testing. findnearestvert() in editmesh_mods.c now makes use of this
and passes sample_backbuf_rect() the appropriate argument when being used
for vertex snapping.
2007-01-01 09:41:10 +00:00
Joshua Leung
c96e3e6e7d == Armature Ghost and Path Drawing ==
The Plumiferos Team have requested some improvements to the
ghost and path drawing tools for armatures. These changes make
these more useful, with more customisable settings. A new panel in
the editing panels for armatures has been added to house these
settings.

-> Ghosts
In addition to the existing method of showing ghosts either side of the
current frame, it is now possible to show ghosts from a given frame range.
This is useful for visualising how the poses in another part of the animation
changed, while editing another part. The colour of ghosts goes from light
(earlier on) to darker (later on).

-> Paths
Several new options for path drawing have been added.
* It is now possibly specify a frame range in which to calculate paths too.
This offers speedups for longer timelines as a shorter span of time can be
sampled.
* Keyframes from the active action/action strip can be shown in a different
colour (in the default theme, this is yellow) on the path.
* Frame numbers for the highlighted positions on the path can be drawn.

Two notes of caution:
* For ghost range: keep the frame ranges relatively small (20-50 frames),
otherwise you will experience a slowdown.
* For path frame numbers: if you have a graphics card which is picky about
text in the 3d-view (like x,y,z labels on empty), this may cause issues.
2007-01-01 08:32:11 +00:00
Nicholas Bishop
a8cb4a7860 Fixed bug #5557, retopo - toggling fullscreen shifts painted lines 2006-12-31 22:18:21 +00:00
Nicholas Bishop
0909fa71ea Added Ctrl+FKey shortcut for rotating the brush texture. Also improved the drawing of rotated brushes in propset mode. 2006-12-31 21:55:12 +00:00
Peter Schlaile
1834540830 == Sequencer ==
Bugfixes:
* The speed controller changes now dynamically the IPO-curve range to
  it's needs. (Frame matching and negative velocities didn't work...
  Obviously nobody tried ;-)
* Fixed some redraw bugs. The IPO window is correctly updated if one pushes
  the IPO Frame locking button.
2006-12-31 15:38:14 +00:00
Nicholas Bishop
9903c78c12 Prevent user from applying editmode operations that will be ignored by multires. 2006-12-31 10:51:21 +00:00
Joshua Leung
26719af48a A few little tweaks for compiling purposes. 2006-12-30 05:38:54 +00:00
Nicholas Bishop
04f9d7c604 Hopefully fixed bug #5437, sculpt - seam selection flushing eats lots of ram on low multires level
This appears to have been caused by the excessive amount of memory that multires was eating up every time an edit operation pushed a new undo copy. Added a hack for multires that allows it to use the same multires data for multiple undo copies until the user actually changes levels (which is when multires data is actually updated.)
2006-12-30 00:51:26 +00:00
Matt Ebb
376ee50d3e * Dynamic icon file loading and themeability
This patch allows icon files (.png) to be loaded into Blender dynamically,
without having to go through the tedious and technical process of compiling
them in. It also makes them part of the theme settings so they can be
attached as part of a theme and saved in the default .B.blend.

Icon files should be stored in $HOME/.blender/icons/ . This really sucks on
Mac since it's hidden in the finder, but it's a separate issue. We need a
better system of finding things like this, python scripts etc, perhaps a
nice wrapped function something like BLI_getresourcedir(), then it's easy to
do platform specific stuff there, like using ~/Library/Application Data on Mac.

More info and docs in the patch tracker @
https://projects.blender.org/tracker/index.php?func=detail&aid=5334&group_id=9&atid=127
2006-12-29 04:46:47 +00:00
Nicholas Bishop
ef0d41b956 Fix for bug #5539, brush circle cursor is slow. 2006-12-28 23:23:10 +00:00
Martin Poirier
3c13561ab5 === Transform Snap ===
Fixed the bug where it would snap to a selected (moving) vertex.

Fixed a bug with Snap Closest with only one vertex selected.

=== Internals: EditMesh Mods ===

Modify and documented findnearestvert.

Added a new parameter to restrict the search to selected or unselected vert instead of just adding a bias to them (as previously). Currently, the "strict" method bypasses the openGL optimisation, people with more knowledge about that should feel invited to fix it.

=== Internals: EditMesh Tools ===

Adding missing newline at the end.
2006-12-28 22:42:58 +00:00
Joshua Leung
d665beb5df This just silences a compiler warning I got as a result of Nick's commit
last night.

warning: "struct View3D" declared inside parameter list
2006-12-28 22:08:33 +00:00
Nicholas Bishop
356ea2ff28 Added numerical input for sculptmode propset 2006-12-28 08:24:37 +00:00
Joshua Leung
819b5d51f6 == Armature Centering Tools ==
After all these years, it is now possible to (re)center armatures like you
can do with meshes and curves.

At the moment, you can only access this functionality from the menus
(Spacebar->Transform) as the armature button panels are pretty
crowded.
2006-12-27 23:30:59 +00:00
Ton Roosendaal
d109129663 Bugfix #5498
Textbutton: SHIFT+Arrow selections did not work proper when the amount of
text in a button was more than its width could display. Now still doesn't
work OK 100% (when selection itself goes outside of button view).

Also: removed the very bad SELWIDTH define (but->selend - but->selsta).
That's not making readable code!
2006-12-26 10:18:38 +00:00
Ton Roosendaal
e4511c805f Ancient bug: when subdividing the screen many times, it gives a crash when
the amount of subwindows reaches 128 (64 areas+headers).

Added a warning instead of crash!
2006-12-26 09:19:19 +00:00
Geoffrey Bantle
0aebc13199 -> Further work to improve triangle conversion tool:
The improved triangle to quad conversion is now better integrated
into Blender in several respects. First of all the code makes distinctions
between 'simple' pairs and 'complex' pairs. Simple pairs are an island of
exactly two selected triangles that are joined by an edge. These simple pairs
are subject to the old 2.42 rules for joining triangles. Complex pairs are part
of larger islands of selected triangles and their conversion is controlled by
several parameters that can be individually tweaked via new buttons located
in the "Mesh Tools" panel of the editing buttons. Furthermore the tool deals
with any arbitrary combination of simple and complex islands in a consistent and
logcial way.

The code has also been drasitcally cleaned up and should address the open
bugs in the tracker regarding alt-j. However as part of cleanup the tool has
been made somewhat slower to insure a consistent mesh structure. This is a
limitation of the exist_face() function in editmesh and will have to be adressed
at a later date.
2006-12-26 02:00:56 +00:00
Nicholas Bishop
6b64ccdca1 Sculptmode now works properly with shape keys (Merry Christmas.) Fixes bug #5499, Sculpt mode don't works correctly with Shape Key. 2006-12-25 19:11:20 +00:00
Nicholas Bishop
dd5077060e Cleanup of the SDNA SculptData struct. Moved a lot of data that isn't saved into a separate SculptSession struct (outside of SDNA.) 2006-12-25 08:52:57 +00:00
Ton Roosendaal
8eb1d00e0d Bugfix #5497
Imagewindow: new Jkey (swap render rects) feature didn't correctly support
the Curves panel.
2006-12-23 11:22:20 +00:00
Martin Poirier
1ad1522d10 === Transform Snap ===
==== Rotation Snap ====

Snap is no longer limited to Translation, it works in Rotation too.

There's some bugs left with rotation snap when using constraints, I'll be ironing that next.

==== Bug Fixes ====

* Fix manipulators to always use Grid.
* Fix initialization bug (took two transform call to do a correct snap init when changing between Grid and Snap)
2006-12-23 00:52:34 +00:00
Martin Poirier
39c0f6dd83 === Transform Snap ===
The circle drawn around the snap point is now truely constant regardless of zoom and size of the window. That size if linearly proportional to the vertex size (bigger vertex -> bigger circle).
2006-12-21 20:45:57 +00:00
Brecht Van Lommel
47bc3d1208 Added names to UV and vertex color layers, and display them as a list.
Added support for multiple UVs in the render engine. This also involved
changing the way faces are stored, to allow data to be added optionally
per 256 faces, same as the existing system for vertices.

A UV layer can be specified in the Map Input panel and the Geometry node
by name. Leaving this field blank will default to the active UV layer.

Also added sharing of face selection and hiding between UV layers, and at
the same time improved syncing with editmode selection and hiding.

Still to do:
- Multi UV support for fastshade.
- Multires and NMesh preservation of multiple UV sets.
2006-12-21 13:47:27 +00:00
Martin Poirier
88ef092876 === Transform Snap ===
(Implementing Matt's idea)

Grid and Snap are now exclusively controlled by the Control key (pun intented).

You can switch to Snap by selecting the snap option in the Transform menu (this option is only available in edit mode on a mesh. this option is per 3D view) (NOTE: There is currently no hotkey for that, anyone should feel free to add one).

When Snap is selected, holding down Ctrl during translations (grab) snaps to vertex.

All other situations which have no snapping code yet defaults to Grid.
2006-12-20 19:47:12 +00:00
Ton Roosendaal
253432bfc7 The Big Image refactor!
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html

Or in short:

- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images

Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
2006-12-20 17:57:56 +00:00
Martin Poirier
f4a03182fb === Transform Snap ===
Draw a circle around the snapping point for visual aid.

Different snapping target method, switchable in the 3d view header menu in the Transform menu.

* Closest: Snaps the closest vertex to the point
* Median: Snaps the median of the selection to the point
* Center: Snaps the transform center to the point (this is different from median because you can use Cursor/Boundbox as center)

Fix a bug with constraints/snap handling.
2006-12-19 22:25:07 +00:00
Joshua Leung
468208aee3 == Action Editor - Column Select Tools ==
* 'On Selected Markers' and 'Between Selected Markers' now get a
correction for NLA action scaling .

* Bugfix for 'Between Selected Markers': now keyframes that occur
on and between the selected markers get selected.

* Bugfix for 'On Selected Markers': now it only considers selected
markers (it used to consider all markers)
2006-12-19 09:21:41 +00:00
Martin Poirier
59b30d178a === Transform Snap ===
Work in Progress: this adds vertex snapping capabilities to translations.

As before, use the menu or the hotkey (` during transform) to turn on snapping.

Currently, snapping is restricted to translation and only snap to verts. Also, it will snap the nearest moving vert to the snapping vert.

This also has a timeout period and refreshes the snapping point only every 0.25 seconds (assuming the timer is precise enough to do that) to mitigate the slowdown due to repeated calls to findnearestvert. Eventually, a faster method will have to be used.

Also, this uncovered a bug in findnearestvert which can manifest itself as jumps and lags in snapping. People are looking into it.

Still, with all those disclaimers, get the suggestions/critics pouring in.
2006-12-18 23:48:32 +00:00
Nicholas Bishop
019b13b830 Added support for undoing multires actions in sculptmode. 2006-12-18 08:39:11 +00:00
Joshua Leung
abda078196 == NLA Editor ==
Todo Tracker Item: #4754

Now the 'Convert Action to NLA Strip' command (CKEY) is able to
be found in the NLA editor's header in the Strip Menu. It now tries
to add a convert the active action of the active object (so it is no
longer dependant on mouse location).
2006-12-18 05:15:17 +00:00
Joshua Leung
d1c9de7cd6 == Action Editor ==
When the current action is the active strip in the nla editor and that strip
is scaled, snapping keys to the current frame didn't work correct. Now,
I've added a correction for snapping and mirroring keyframes in action
editor for such cases.
2006-12-18 00:21:47 +00:00
Joshua Leung
ca90938826 == Long Keyframes ==
Bugfix for an error reported by Bassam/slikdigit.
Sometimes, long keyframes could still get created where they aren't
supposed to be (only occuring in a few ipo-curves).
2006-12-16 00:07:14 +00:00
Joshua Leung
c43b064895 == Action Editor - 'Long' Keyframes ==
When animating, it is often useful to be able to visually see where the
'pauses' are between keyframes. Long keyframes do this - linking two
keyframes in the same channel together.

Long keyframes are only drawn when the two keyframes have the exact
same values. This has to happen for every ipo-curve represented by the
keyframes shown for a long keyframe to be drawn.

I've added two new theme colours for the action editor. They are for
the selected and deselected colours of the long keyframes (currently
defaulted to be the same as the NLA strip selection colours).
2006-12-15 05:51:53 +00:00
Nicholas Bishop
487b147235 Fixed bug #5402, retopo paint lines don't follow zoom level of 3d viewport. Retopo paint is now specific to one view (the first view you click in after activating retopo paint.) 2006-12-13 00:54:16 +00:00
Brecht Van Lommel
80ee52e444 Multiple UV and vertex color layers: (still work in progress)
These can be created and deleted in the Mesh panel in the same place as
before. There is always one active UV and vertex color layer, that is
edited and displayed.

Important things to do:
- Render engine, material support
- Multires and NMesh now lose non active layers

Also CustomData changes to support muliple layers of the same type, and
changes to layer allocation, updated documentation is here:
http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData
2006-12-12 21:29:09 +00:00
Campbell Barton
97b6a65c74 Added a new Python slot "UvCalculate", moved Archimap and "UVs from adjacent" into it.
Removed 1/2 1/4 1/8 uv mapping options.
made re-evaluating the py-scripts dir use the wait cursor (could take a while at times)
2006-12-12 04:18:45 +00:00
Joshua Leung
c41e0e205f A little bit of code cleanup:
* Moved BEZSELECTED macro to blendef.h as it is used in several files
* Removed other duplicated macros
2006-12-11 03:47:15 +00:00
Joshua Leung
c9b23feaf5 Bugfix: (2nd part of bug #5393)
Action Channel 'protecting' now works for the NLA editor. Action
channels in the active action that are 'protected' cannot get
transformed, duplicated, or deleted in the NLA editor.
2006-12-10 05:52:51 +00:00
Ton Roosendaal
7f1e3874f9 Node editing usablity!
- Removed stupid idea to insert convertor nodes in Node Shaders, when a
  link is created by non-matching sockets. Now it works like Compositor,
  doing a default conversion. Works like this:

1 from 3 or 4 values: take average
3 from 1: copy to all
3 from 4: copy 3
4 from 1: copy to 3, set alpha to 1
4 from 3: copy 3, set alpha to 1

- Added select-linked in Nodes. Lkey or Shift+L. Also in pulldown menus
2006-12-08 21:20:36 +00:00
Nicholas Bishop
3da771fefc Fix for bug #5369, retopology - undo reverts elipse to pen
Moved the retopo tool settings into ToolSettings.
2006-12-08 00:44:44 +00:00
Ton Roosendaal
17231f83f3 Work on RenderLayer and Pass control:
Full log:
http://www.blender3d.org/cms/Render_Passes.829.0.html

In short:
- Passes now have option to be excluded from "Combined".
- RenderLayers allow to override Light (Lamp groups) or Material.
- RenderLayers and Passes are in Outliner now, (ab)using Matt's nice
  'restriction collumns'. :)
2006-12-07 14:17:38 +00:00
Ben Batt
c0becb4532 Removed SlowerDraw and FasterDraw buttons in Mesh panel after discussion
with Ton on IRC. This feature was old, something of a hack and didn't really
work well with the modifier stack. To paraphrase Ton: We want to make blender
higher quality, so poorly thought out code should be removed, or replaced
with decent implementations.
2006-12-06 12:34:26 +00:00
Joshua Leung
6c138fc6a9 == Action Editor ==
Now it is possible to 'protect' action channels and constraint channels.
* When a channel is 'protected', the only operation possible on keyframes
is selection. All other operations are not able to be performed.
* The padlock to the right of each channel's name toggles the protection
status of that channel. You can only alter the protection status of one
channel at a time.

Todos:
* Menus still pop up when trying to do stuff to keyframes even if
all the keyframes selected are from protected channels.
* Shapekey channels shown in action editor should also get locks
2006-12-06 02:37:32 +00:00
Ton Roosendaal
09d3d15f45 Node editor: when adding a new node, automatic links are created:
- from all selected nodes
- only connections between highest order socket types; so if there's RGBA
  and Value sockets, only RGBA sockets are connected. This because in
  these cases the Value sockets usually are for user input.
  Example: Mix node.

Thanks Trip for the hint!
2006-12-05 21:33:56 +00:00
Ton Roosendaal
869eeadeff Damn! Commit for render passes in wrong dir.... 2006-12-05 16:44:57 +00:00