Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2007-01-03added sharp edge theme colorCampbell Barton
2006-12-29* Patch #5337 from Juho: Ipo vertex size theme settingMatt Ebb
(with some small modifications)
2006-12-29* Dynamic icon file loading and themeabilityMatt Ebb
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-15== Action Editor - 'Long' Keyframes ==Joshua Leung
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-10-28* Simple patch 5058 from gsrb3d to use constants instead of magic numbers forMatt Ebb
theme drawtypes
2006-07-03* Fix for Matt's fix!Ton Roosendaal
The "generator" class for nodes then better completely disappears, also from theme color choices menu. Since there was room for it, made the generator themecolor to become color for 'Convertor' node types.
2006-06-16* Added header pulldown menus for the Node Editor. Also tweaked colours and someMatt Ebb
of the menu organisation, consolidating the redundant 'Generators' with 'Input'.
2006-06-08==Sequencer==Peter Schlaile
Added patch by Matt Ebb, that enhances the sequencer GUI in several ways: - It looks a lot better - Strip colours are themeable. - The drawing code is more readable. - The background of the timeline makes now distinguishing the channels easier by alternating between different shades of gray. - Handle-scaling is clamped to min and max-values, making it possible to grab strips at large zooming levels more easily. - Preview-images can be panned by dragging it with the middle mouse button. Home-Key resets the position. - Since some people can't grab the meaning of "C 0", it is renamed to "Chan: 0" - Effect strips have slightly different colors to distinguish them better. Additionally: - fixed an off by one error in Matt's patch - Scene-rendering saves CFRA to avoid jumping current-scene on scrub (might be academic fix, since most likely it only happens if you add the sequencer-scene to the timeline... But nevertheless it bugs you on testing the GUI ;-)
2006-03-11Fix for messy commits in attempt to fix groups wire colors...Ton Roosendaal
- if you add new theme colors, you need to initialize them correctly and add that in the usiblender.c version patching for saved themes - the code for detecting group membership was highly confusing - group colors were even used for non-groups Further; I didnt add group theme colors yet, that's not a bug. It's a todo item I preferred to tackle with having a decent wirecolor system once.
2006-03-10fix for bug 3970Joilnen Leite
.
2006-02-20Hrms... theeth indeed cleaned up code, but it should also work! Didn'tTon Roosendaal
compiling show the warnings?
2006-02-19Patch: [ #3283 ] strcat --> sprintfMartin Poirier
Less yuckiness!
2006-01-04Orange: more Node goodies;Ton Roosendaal
- New Node: "Mapping". Allows input vector to be translated, rotated and scaled. And optional be clipped to a range. Works for colors too! - The button "Normal" now allows incremental input, so a click in the button won't change the normal anymore - Connecting wires now show selection state for Nodes, with nice blended colors. Both colors were added in Themes, but default to black and white
2006-01-02Orange: more noodle updates!Ton Roosendaal
**** NEW: Group Nodes Node trees usually become messy and confusing quickly, so we need not only a way to collapse Nodes into single 'groups', but also a way to re-use that data to create libraries of effects. This has been done by making a new Library data type, the NodeTree. Everything that has been grouped is stored here, and available for re-use, appending or linking. These NodeTrees are fully generic, i.e. can store shader trees, composit trees, and so on. The 'type' value as stored in the NodeTree will keep track of internal type definitions and execute/drawing callbacks. Needless to say, re-using shader trees in a composit tree is a bit useless, and will be prevented in the browsing code. :) So; any NodeTree can become a "Goup Node" inside in a NodeTree. This Group Node then works just like any Node. To prevent the current code to become too complex, I've disabled the possibility to insert Groups inside of Groups. That might be enabled later, but is a real nasty piece of code to get OK. Since Group Nodes are a dynamic Node type, a lot of work has been done to ensure Node definitions can be dynamic too, but still allow to be stored in files, and allow to be verified for type-definition changes on reloading. This system needs a little bit maturing still, so the Python gurus should better wait a little bit! (Also for me to write the definite API docs for it). What works now: - Press CTRL+G to create a new Group. The grouping code checks for impossible selections (like an unselected node between selected nodes). Everthing that's selected then gets removed from the current tree, and inserted in a new NodeTree library data block. A Group Node then is added which links to this new NodeTree. - Press ALT+G to ungroup. This will not delete the NodeTree library data, but just duplicate the Group into the current tree. - Press TAB, or click on the NodeTree icon to edit Groups. Note that NodeTrees are instances, so editing one Group will also change the other users. This also means that when removing nodes in a Group (or hiding sockets or changing internal links) this is immediately corrected for all users of this Group, also in other Materials. - While editing Groups, only the internal Nodes can be edited. A single click outside of the Group boundary will close this 'edit mode'. What needs to be done: - SHIFT+A menu in toolbox style, also including a list of Groups - Enable the single-user button in the Group Node - Displaying all (visible) internal group UI elements in the Node Panel - Enable Library linking and prevent editing of Groups then. **** NEW: Socket Visibility control Node types will be generated with a lot of possible inputs or outputs, and drawing all sockets all the time isn't very useful then. A new option in the Node header ('plus' icon) allows to either hide all unused sockets (first keypress) or to reveil them (when there are hidden sockets, the icon displays black, otherwise it's blended). Hidden sockets in Nodes also are not exported to a Group, so this way you can control what options (in/outputs) exactly are available. To be done: - a way to hide individual sockets, like with a RMB click on it. **** NEW: Nodes now render! This is still quite primitive, more on a level to replace the (now obsolete and disabled) Material Layers. What needs to be done: - make the "Geometry" node work properly, also for AA textures - make the Texture Node work (does very little at the moment) - give Material Nodes all inputs as needed (like Map-to Panel) - find a way to export more data from a Material Node, like the shadow value, or light intensity only, etc Very important also to separate from the Material Buttons the "global" options, like "Ztransp" or "Wire" or "Halo". These can not be set for each Material-Node individually. Also note that the Preview Render (Buttons window) now renders a bit differently. This was a horrid piece of antique code, using a totally incompatible way of rendering. Target is to fully re-use internal render code for previews. OK... that's it mostly. Now test!
2005-12-30Orange: Small tweaks in Node drawing;Ton Roosendaal
- theme colors now are different... the specific colors are only drawn in the headers of nodes, making the backdrop color constant. Allows for much more outstanding colors this way, without distracting from previews. - soft shadow now is drawn pixel-sized, so doesn't scale up or down.
2005-12-28Christmas coding work!Ton Roosendaal
********* Node editor work: - To enable Nodes for Materials, you have to set the "Use Nodes" button, in the new Material buttons "Nodes" Panel or in header of the Node editor. Doing this will disable Material-Layers. - Nodes now execute materials ("shaders"), but still only using the previewrender code. - Nodes have (optional) previews for rendered images. - Node headers allow to hide buttons and/or preview image - Nodes can be dragged larger/smaller (right-bottom corner) - Nodes can be hidden (minimized) with hotkey H - CTRL+click on an Input Socket gives a popup with default values. - Changing Material/Texture or Mix node will adjust Node title. - Click-drag outside of a Node changes cursor to "Knife' and allows to draw a rect where to cut Links. - Added new node types RGBtoBW, Texture, In/Output, ColorRamp - Material Nodes have options to ouput diffuse or specular, or to use a negative normal. The input socket 'Normal' will force the material to use that normal, otherwise it uses the normal from the Material that has the node tree. - When drawing a link between two not-matching sockets, Blender inserts a converting node (now only for value/rgb combos) - When drawing a link to an input socket that's already in use, the old link will either disappear or flip to another unused socket. - A click on a Material Node will activate it, and show all its settings in the Material Buttons. Active Material Nodes draw the material icon in red. - A click on any node will show its options in the Node Panel in the Material buttons. - Multiple Output Nodes can be used, to sample contents of a tree, but only one Output is the real one, which is indicated in a different color and red material icon. - Added ThemeColors for node types - ALT+C will convert existing Material-Layers to Node... this currently only adds the material/mix nodes and connects them. Dunno if this is worth a lot of coding work to make perfect? - Press C to call another "Solve order", which will show all possible cyclic conflicts (if there are). - Technical: nodes now use "Type" structs which define the structure of nodes and in/output sockets. The Type structs store all fixed info, callbacks, and allow to reconstruct saved Nodes to match what is required by Blender. - Defining (new) nodes now is as simple as filling in a fixed Type struct, plus code some callbacks. A doc will be made! - Node preview images are by default float ********* Icon drawing: - Cleanup of how old icons were implemented in new system, making them 16x16 too, correctly centered *and* scaled. - Made drawing Icons use float coordinates - Moved BIF_calcpreview_image() into interface_icons.c, renamed it icon_from_image(). Removed a lot of unneeded Imbuf magic here! :) - Skipped scaling and imbuf copying when icons are OK size ********* Preview render: - Huge cleanup of code.... - renaming BIF_xxx calls that only were used internally - BIF_previewrender() now accepts an argument for rendering method, so it supports icons, buttonwindow previewrender and node editor - Only a single BIF_preview_changed() call now exists, supporting all signals as needed for buttos and node editor ********* More stuff: - glutil.c, glaDrawPixelsSafe() and glaDrawPixelsTex() now accept format argument for GL_FLOAT rects - Made the ColorBand become a built-in button for interface.c Was a load of cleanup work in buttons_shading.c... - removed a load of unneeded glBlendFunc() calls - Fixed bug in calculating text length for buttons (ancient!)
2005-12-22Big commit in orange: Interface icons for materials, texturesAndrea Weikert
world and lamp. Also for images in pupmenus. Also preparation for work on using preview images in imagebrowser. -- Andrea
2005-11-20Patch by Matt Ebb: upgraded usablitiy of text button.Ton Roosendaal
Textbuttons now allow a selection too (like any textbutton in other UIs). By default, on activating a textbutton, the entire button text is selected when you enter the button. A single arrowkey or LMB click reveils the cursor then. Here's more user notes: LMB click: If inside the button, places the text cursor at the clicked position. If outside the button, confirms/finishes editing LMB drag: Selects the text between the start and end point of the drag. Backspace: Deletes selected text, or backspaces a character Shift Backspace: Deletes all, as before. Delete: Deletes selected text or forward deletes a character Shift LeftArrow: Extends the selection left Shift RightArrow: Extends the selection right LeftArrow: If there's a selection, move the cursor to the left edge of the selection, otherwise move the cursor left a character. RightArrow: If there's a selection, move the cursor to the right edge of the selection, otherwise move the cursor right a character. UpArrow/Home: Move the cursor to the beginning of the line DownArrow/End: Move the cursor to the end of the line Ctrl Left arrow and Ctrl Right arrow to jump between directory separators
2005-11-19Removal of warning messages, unused variables, and casting errors.Ton Roosendaal
2005-11-19Finally switched to porting UI stuff from tuhopuu!Ton Roosendaal
This commit is based on the patch & cool design work of Matt. It includes the new Lamp drawing style, and replaces the Object center dots with a similar styled OpenGL drawn dot. Important side-note is that removing the old glDrawPixels() for centers or lamps will not only make Blender faster, but also prevents crashing on a couple of cheaper 3d cards (as reported for S3 and Intel on-board cards) Notes: - The new default only draws Object centers when selected or active. If you like to see them always, use the View Properties Panel. You can also save that in the .B.blend - The size for centers (and lamps) is in the User settings "View & Controls" - Unselected Lamps, and their offset lines from zero Z, are drawn in a new Theme color Changes and additions in Matt's patch: - Lamps and centers are drawn fixed size, in pixels. Also the 'sun' lamp draws screen aligned now. - Center dots now also draw in blue to denote Library linkage or to show that an Object has been linked to other scenes. - When objects are empty (no vertices) they will always draw a center dot. Otherwise these objects would never be selectable anymore! - Added theme setting for center size, and initialization - Removed the old redundant code for drawing centers - Cleanup of drawing routines, made center dots faster - Started removing calls to glBlendFunc(). Regular alpha drawing should become standard, and the (very) occasional exception should return this to default after usage.
2005-10-10Stage two of the giant animation recode project; Ipo/Action/NLA cleanupTon Roosendaal
-> Note; added 2 new c files (split editipo.c). MSVC needs upgrade. Impatient people can check the goodies in CMS: http://www.blender3d.org/cms/Action_and_NLA_editor.706.0.html Most work was on trying to unwind the spaghetti for editing ipos. Too much history and bad design got added here. Most evident changes: - made generic 'context' for detecting which Ipo is being edited, or to assign ipos or to retrieve ipo curves. - made generic insertkey() for all ipo types, including actions - shuffled a lot of code around to make things more logical. Also made sure local functions are not exported It is far from ready... when action/nla was added in Blender, a lot of duplicate code was generated. That's for another time. Now the goodies; - made Actions to allow any Ipo type - made NLA to define active actions, for Action window too - corrected timing for active action, so it shows the 'real time', as defined in NLA editor. I did update python code, but that would require testing. Testing is needed for this commit in general, too many changes happened on all levels of the animation system. :) Will keep track of all reports this evening, hopefully it doesnt break the pre-release schedule!
2005-08-15 - get rid of unused object_deform_curveDaniel Dunbar
- some tweaks to modifier UI thanks to Bart (aligning buttons)
2005-08-06 - added copy button to modifier stack UIDaniel Dunbar
- add warning about applying decimation - some more UI tweaks (rounding of modifier pane, make toggles only in header, add object name to try to convey that modifier stack is tied to OB) - bug fix, modifier recalc wasn't done on make link - bug fix, uiBlockEndAlign didn't clear align flags with certain themes, pretty sure this wasn't intended. (TON: PLEASE CHECK)
2005-08-05 - added UI_EMBOSSR option (rounded emboss)Daniel Dunbar
- added support for vector icons, from user API side is just like using a regular icon... on icon side is defined by a function in resources.c instead of using the blenderbuttons png file. vector icons are much easier to add and scale properly. intent is that vector icons would be drawn in window coordinates which lets icon developers make the most beautiful icons, but this requires some tweaking of the interface drawing that I am not going to do atm. - changed BIF_draw_icon* to take coordinates of where to draw icon instead of using passed in raster position - switch modifier UI to using vector icons, and tweaked some position and style stuff. - replaced most uses of UI_EMBOSSX with UI_EMBOSS (do same thing, just there to confuse people I guess) After the window coordinate stuff is sorted out with vector icons it probably makes sense to move all non-photorealistic icons in blenderbuttons to vector form just so scaling goes better.
2005-07-16More armature goodies;Ton Roosendaal
The B-Bones! (where the B can be read as 'block' or 'bezier' or 'b-spline') - set option on/off in edit buttons, armature panel - scaling of B-bones only works in editmode, use ALT+S to make bones fatter or thinner. Also works for constrainted transform - In pose mode, you now have a buttons panel with per-bone settings too Here you can find the "segments" button, which allows bones to interpolate between previous/next bones, including roll. - Buttons to control interpolation ("In" and "Out" are disabled, doesn't work satisfying yet NOTE: this doesn't give deform yet! Main purpose for now is to test if this drawing method serves to animate/pose armatures well. Still need to review proper interpolation methods... maybe bezier is too limited.
2005-07-12Cleanup of Armature 3d drawing.Ton Roosendaal
- In Solid drawmode, bones get drawn solid too now. Including Outline- selection color, if that's set. Disable it by setting Object-buttons "drawtype" for the Armature. Color used for solid bones is in Theme editor. - EditMode armature now follows (Mesh edit) theme colors (Vertex, Edge) - PoseMode armature has ThemeColor for selection, and draws three extra colors now; - blue shade for bones with action Ipos - yellow for bones with IK - green for bones with a constraint - "X ray" now only works for PoseMode... needs review, can be done better - "Draw Names" option uses theme color too, also indicates selection. Fixes; - In Armature EditMode, the deformed Mesh goes to rest-position - Border select didn't clear 'active' flag in Bones in PoseMode - Mouse-click select didn't work when a dashed line was close to Bone
2005-05-13TextEditor: syntax color support.Ton Roosendaal
Patch provided by Ricki Myers. Works quite obvious, see Theme editor too! Notes about the provided code; - The default syntax colors were screaming! Toned it down to match the default dark on lightgrey background better. - Added: initializing colors in saved themes (usiblender.c) - The implementation of the button for this option was quite clumsy... Blender UI options services this a lot easier. (Same fixed for 'line numbers' option) - Bracket matching now uses as color a mix of backdrop and the selected-text color. Noticed my texteditor did it too... -> I really miss comments in code describing a little bit the thought process behind the code. Like a short introduction on this feature in the top of the drawtext.c, little remarks on new functions. ALso in patch tracker or the mailinglist no docs was mentioned? -> drawtext.c now gets messy quickly... lack of overview, structure, and confusing mix of personal coding styles. For not-active supported code dangerous...
2005-05-08UI goodies & cleanupTon Roosendaal
- TimeLine: Marker grabbing works now. Use GKEY or select+drag, as usual Holding CTRL will step with 1 second (corrected for ntsc dudes yes!) Also added this in header pulldown - Time values and Time grid draw fixed for Seconds display. It used to draw steps of 2/5/10/20/50/100 etc. frames. Now does steps in seconds. Again corrected for "Frames/Sec" value. - "Frames/Sec" button redraws TimeLine, Secquencer, etc - Bug fixed in editing Theme for TimeLine (was editing Image Select...) - Added Grid color to Theme choices for Ipo, TimeLine, Sequencer, NLA, Action, Sound. Was missing!
2005-05-05Added the new Timeline Window, copied from Tuhopuu, coded by Matt Ebb.Ton Roosendaal
Main change is that it's an own Space type now, not part of the Audio window... the audio window should restrict to own options. This way functionality is nicely separated. Since it's the first time I added a new space (since long!) I've made an extensive tutorial as well. You can find that here: http://www.blender3d.org/cms/Adding_new_Space_Window.557.0.html Notes for using timewindow; - Add time markers with MKey - CTRL+M gives option to name Marker - Markers cannot be moved yet... - Pageup-Pagedown keys moves current frame to next-prev Marker - Xkey removes Markers - If an object has Ipos or an Action, it draws key lines - CTRL+Pageup-Pagedown moves current frame to next-prev Key - Press S or E to set start/end frame for playback Notes about the implementation in Tuhopuu: - Add new Marker now selects new, deselects others - Selecting Marker didn't work like elsewhere in Blender, on click it should deselect all, except the indicated Marker. Not when holding SHIFT of course - Not exported functions are static now - Removed unused defines (MARKER_NONE NEXT_AVAIL) - Drawing order was confusing, doing too many matrix calls - Removed not needed scrollbar, added new function to draw time values. (Has advantage the MMB scroll works not confusing on a scrollbar) - Added proper support for 'frame mapping' - The string button (name Marker) had a bug (checked str[64] while str was only 64 long) - String button itself didn't allow "OK on enter" - Made frame buttons in header larger, the arrows overlapped - Removed support for negative frame values, that won't work so simple!
2005-05-03UI cleanup work;Ton Roosendaal
Proportional edit: - Proportional mode added to header as button/menu. Including new option to have only connected geometry influenced. - Added icons for proportional & proportional modes - Make proportional edit data part of Scene, so all gets saved. The Global flag G_PROPORTIONAL was removed - Made sure #defines get used properly, also tweaked order for proportional so it starts with regular 'smooth' by default. - Use ALT+O in editmode to switch to new proportional 'connected' mode Other UI stuff: - in EditMode, the layer buttons get hidden... the amount of icons in 3d header grows to fast. :) - made less ugly icons for the Manipulators. Still can be better. - Added alpha-filter for pre-processing Icon-image, giving nicer display of icon-antialising on dark or bright backdrops - disabled Manipulators when in editmode, and current layers don't show the edited data. - Added the value used to define Normal size (editmode draw) in Scene too, so it gets saved.
2005-04-28Add bracket matching to text editor.Stephen Swaney
#2437 from the Patch Tracker. Contributed by Ricki Myers (themyers). Thanks! Highlight color is set in UserPref theme colors.
2005-04-28A couple more simple gcc4.X warnings fixed.Kent Mein
softbody.c I removed an unused var. text.c added return values to 2 return statements that didn't have anything. Makefile added $(FIX_STUBS_WARNINGS) to CFLAGS for the stub. source/blender/src/editface.c fixed up int vs unsigned int stuff source/blender/src/resources.c had two vars declared as unsigned char * and then inputs to them were cast as char * so updated the casts. Kent
2005-03-27Transform goodies;Ton Roosendaal
- Added icons for the Widgets to blenderbuttons pic - Added in header - if widget in use - three buttons to choose widget type (hold shift for combo widgets) - Hotkey CTRL+space now switches widgets on/off I also noticed negative scaling doesn't work satisfying yet; - for scale widget, using center didn't work correct anymore (fixed) - negative scaling didn't even get applied! (fixed) - but; scaling somethig negative now flips back to positive... ???? Last one i need Martin P for! Note that I had to change Mat3ToSize....
2005-03-20 - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)Daniel Dunbar
NOTE: BLI_winstuff.h was meant to be a wrapper around windows.h to handle undefining various crap that windows.h defines. Platform specific headers should only have to be included in a few places. This reduces the number of inclusions of BLI_winstuff.h to 16 which is a much more reasonable number (than the 144 or whatever it used to be)
2005-03-10- Added more space in icons image (blenderbuttons.png)Ton Roosendaal
It now only uses 1 extra row of 21 buttons. More can simply be added - Added new icons for the new proportional edit options Root, Linear and Constant - Made sure pulldown and pop-up menu work for new prop options - Transform fix; proportional edit circle was drawing in Object mode
2005-03-09big warning hunt commitJean-Luc Peurière
lot of casts, added prototypes, missing includes and some true errors
2004-12-27Biiig commit! Thanks to 2-3 weeks of cvs freeze...Ton Roosendaal
Render: - New; support for dual CPU render (SDL thread) Currently only works with alternating scanlines, but gives excellent performance. For both normal render as unified implemented. Note the "mutex" locks on z-transp buffer render and imbuf loads. - This has been made possible by major cleanups in render code, especially getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct OSA or using Materials or Texture data to write to. - Made normal render fully 4x32 floats too, and removed all old optimizes with chars or shorts. - Made normal render and unified render use same code for sky and halo render, giving equal (and better) results for halo render. Old render now also uses PostProcess options (brightness, mul, gamma) - Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer after render. Using PostProcess menu you will note an immediate re- display of image too (32 bits RGBA) - Added "Hue" and "Saturation" sliders to PostProcess options - Render module is still not having a "nice" API, but amount of dependencies went down a lot. Next todo: remove abusive "previewrender" code. The last main global in Render (struct Render) now can be re-used for fully controlling a render, to allow multiple "instances" of render to open. - Renderwindow now displays a smal bar on top with the stats, and keeps the stats after render too. Including "spare" page support. Not only easier visible that way, but also to remove the awkward code that was drawing stats in the Info header (extreme slow on some ATIs too) - Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping defines. - I might have forgotten stuff... and will write a nice doc on the architecture!
2004-10-06Version 1.0 of the new OutlinerTon Roosendaal
The outliner is a hierarchical diagram displaying a list of data in Blender and its dependencies. The 'databrowse' doesn't really show it, and Oops is too chaotic still. And most of all, the former two don't offer much tools. After discussions on irc, Matt came with this design proposal; http://mke3.net/blender/interface/layout/outliner/ Which is closely followed for the implementation. The current version only shows all 'library data' in Blender (objects, meshes, ipos, etc) and not the 'direct data' such as vertex groups or NLA. I decided to make it inside the Oopw window, as an option. You can find the option in the "View" pulldown, or directly invoke it with ALT+SHIFT+F9 Here's a quick overview of the Outliner GUI: - Header pulldown has options what it can show (Visible = in current layers) - click on triangle arrow to open/close - press AKEY to open/close all - Leftmouse click on an item activates; and does based on type a couple of extra things: - activates a scene - selects/activates the Object - enters editmode (if clicked on Mesh, Curve, etc) - shows the appropriate Shading buttons (Lamp, Material, Texture) - sets the IpoWindow to the current IPO - activates the Ipo-channel in an Action - Selected and Active objects are drawn in its Theme selection color - SHIFT+click on Object does extend-select - Press DOTkey to get the current active data in center of view TODO; - rightmouse selection; for indicating operations like delete or duplicate - showing more data types - icon (re)design... - lotsof options as described in Matts paper still...
2004-09-24EditMesh refactory + undo recodeTon Roosendaal
The changelog is very long... it's on the web too: http://www.blender3d.org/cms/Mesh_editing_rewrite.425.0.html EditMesh refactor notes (user) **** New selection modes When entering Edit Mode for a Mesh, you now have the choice for three selection modes. These are shown as icons in the 3D header (hotkey is being searched for!). - Vertex Select Select vertices as usual, fully compatible with how previous version work - Edge Select Vertices are not drawn anymore, and selections happen by default on the edges. It is a true edge select, meaning that you can select three out of four edges in a face, without automatic having the 4th edge selected. - Face Select Instead of vertices, now selection 'points' are drawn in the face centers. Selected faces also get a colored outline, like for edges. This also is true face select, for each face individual regardless selection status of its vertices or edges. While holding SHIFT, and press a selection mode, you can also combine the above choices. Now selection becomes mixed, and will behave as expected. For example; in Edge+Face select mode, selecting the 4 edges of a face will select the face too. The selection modes and optional drawing modes (like transparant faces, normals, or solid drawing) all work together. All of Blender's mesh editing tools now react to the correct selection mode as well. Most noticeable it's in: **** Extrude Extruding in Edge or Face Select mode allows much more precise control over what's extruded and what should be excluded. Try for example a checker pattern selection, and extrude it. New is the fixed translation when faces are extruded. This always follows the (averaged) face normal(s) of the old face(s), enabling much easier working in 3D views . A single 'G' (Grab) or 'R' (Rotate) or 'S' (Scale) will change transform modus as usual. **** Other things to note - Hiding edges/faces will also behave different based on Select Mode. - while editing, normals of faces are updated always now - Border select (BKEY) has 2 different rules for edges; when one edge is fully inside of the border, it will only select edges that are fully inside. Otherwise it selects each edge intersecting with the border. - in face mode, adding vertices, edges or a circle is invisible... - "Add monkey" now works as a normal primitive (rotated and on 3d cursor) - Mesh undo was fully recoded, hopefully solving issues now with Vertex Keys and Groups - Going in and out of editmode was fully recoded. Especially on larger models you'll notice substantial speed gain. **** Todo Add 'FaceSelect mode' functionality in EditMode, including zbuffered selection, display and editing of UV texture. EditMesh refactor notes (coder) **** Usage of flags in general The "->f" flags are reserved for the editmesh.c and editmesh_lib.c core functions. Actually only selection status is there now. The "->f1" and "->f2" flags are free to use. They're available in vertex/edge/face structs. Since they're free, check carefully when calling other functions that use these flags... for example extrude() or subdivide() use them. **** Selection flags EditVert: eve->f & SELECT EditEdge: eed->f & SELECT EditFace: efa->f & SELECT - Selection is only possible when not-hidden! - Selection flags are always up-to-date, BUT: if selection mode >= SELECT_EDGE vertex selection flags can be incorrect if selection mode == SELECT_FACE vertex/edge selection flags can be incorrect This because of shared vertices or edges. - use for selecting vertices: eve->f &= SELECT - use for selecting edges always: void EM_select_edge(eed, 1) // 1 = select, 0 = deselect - use for selecting faces always: void EM_select_face(efa, 1) // 1 = select, 0 = deselect - To set the 'f' flags in all of the data: void EM_set_flag_all(int flag); void EM_clear_flag_all(int flag); - the old faceselectedOR() and faceselectedAND() are still there, but only to be used for evaluating its vertices **** Code hints for handling selection If the selectmode is 'face'; vertex or edge selections need to be flushed upward. Same is true for 'edge' selection mode. This means that you'll have to keep track of all selections while coding... selecting the four vertices in a face doesn't automatically select the face anymore. However, by using the above calls, at least selections flush downward (to vertex level). You then can call: void EM_selectmode_flush(void); Which flushes selections back upward, based on the selectmode setting. This function does the following: - if selectmode 'vertex': select edges/faces based on its selected vertices - if selectmode 'edge': select faces based its selected edges This works fine in nice controlled situations. However, only changing the vertex selections then still doesn't select a face in face mode! If you really can't avoid only working with vertex selections, you can use this call: void EM_select_flush(void); Now selection is flushed upward regardless current selectmode. That can be destructive for special cases however, like checkerboard selected faces. So use this only when you know everything else was deselected (or deselect it). Example: adding primitives. **** Hide flags EditVert: eve->h EditEdge: eed->h EditFace: efa->h - all hide flags are always up-to-date - hidden vertices/edges/faces are always deselected. so when you operate on selection only, there's no need to check for hide flag. **** Unified undo for editmode New file: editmode_undo.h A pretty nice function pointer handler style undo. Just code three functions, and your undo will fly! The c file has a good reference. Also note that the old undo system has been replaced. It currently uses minimal dependencies on Meshes themselves (no abuse of going in/out editmode), and is restricted nicely to editmode functions. **** Going in/out editmode As speedup now all vertices/faces/edges are allocated in three big chunks. In vertices/faces/edges now tags are set to denote such data cannot be freed. ALso the hashtable (lookup) for edges uses no mallocs at all anymore, but is part of the EditEdge itself.
2004-09-18Another step in the undo evolution.Ton Roosendaal
- Made unified API for undo calls, to be found in space.c BIF_undo_push(char *str) BIF_undo(void) BIF_redo(void) These calls will do all undo levels, including editmode and vpaint. The transition is work in progress, because mesh undo needs recode. - New global hotkey CTR+Z for undo Note: 'shaded draw mode' still is SHIFT+Z, the old CTRL+Z was to recalc the lighting in shaded mode, which already became much more interactive, like during/after any transform(). Recalc hotkey now is SHIFT+ALT+Z CTRL+<any modifier>+Z is redo. - For OSX users; the Apple-key ("Command") now maps to CTRL as well. This disables the one-mouse-button hack for rightmouse btw, will be fixed in next commit. At least we can use Apple-Z :) - Old Ukey for undo is still there, as a training period... my preference is to restore Ukey to "reload original data" as in past, and only use new CTRL+Z for undo. - Added undo_push() for all of editobject.c and editview.c. Meaning we can start using/testing global undo in the 3d window. Please dont comment on missing parts for now, first I want someone to volunteer to tackle all of that. - Since the global undo has a full 'file' in memory, it can save extremely fast on exit to <temp dir>/quit.blend. That's default now when global undo is enabled. It prints "Saved session recovery to ..." in console then. - In file menu, a new option is added "Recover Last Session". Note that this reads the undo-save, which is without UI. - With such nice new features we then can also kill the disputed Cancel/Confirm menu on Q-KEY. - Added fix which initializes seam/normal theme color on saved themes. They showed black now.... (Note: that's in usiblender.c!)
2004-09-06Add theme colour for "Draw Normals"Nathan Letwory
2004-08-31Three functionalities in one commit, but there's overlap so I can'tTon Roosendaal
separate it... 1) Curve/Surface editmode undo Uses same syntax as mesh undo, so simple to integrate. Edit-curve data is also quite simpler, so no need for any hack at all. It re-uses the undo system from next point, which is nice short & clean local code 2) Framework for global undo The undo calls themselves are commented out. In a next commit I want to enable it for a couple of main features, for further feedback. The speed goes surprisingly well, especially with this new version that 'pushes' undo after a command, ensuring interactivity isnt frustrated 3) framework for texture based icons in Blender Not activated code, but tested here. Part of 2.3 UI project. btw: Johnny Matthews will assist in (and complete) the undo project
2004-07-13Added LSCM UV Unwrapping:Brecht Van Lommel
http://www.loria.fr/~levy/Galleries/LSCM/index.html http://www.loria.fr/~levy/Papers/2002/s2002_lscm.pdf Implementation Least Squares Conformal Maps parameterization, based on chapter 2 of: Bruno Levy, Sylvain Petitjean, Nicolas Ray, Jerome Maillot. Least Squares Conformal Maps for Automatic Texture Atlas Generation. In Siggraph 2002, July 2002. Seams: Stored as a flag (ME_SEAM) in the new MEdge struct, these seams define where a mesh will be cut when executing LSCM unwrapping. Seams can be marked and cleared in Edit Mode. Ctrl+EKEY will pop up a menu allowing to Clear or Mark the selected edges as seams. Select Linked in Face Select Mode now only selects linked faces if no seams separate them. So if seams are defined, this will now select the 'face group' defined by the seams. Hotkey is still LKEY. LSCM Unwrap: unwrap UV's by calculating a conformal mapping (preserving local angles). Based on seams, the selected faces will be 'cut'. If multiple 'face groups' are selected, they will be unwrapped separately and packed in the image rectangle in the UV Editor. Packing uses a simple and fast algorithm, only designed to avoid having overlapping faces. LSCM can be found in the Unwrap menu (UKEY), and the UV Calculation panel. Pinning: UV's can be pinned in the UV Editor. When LSCM Unwrap is then executed, these UV's will stay in place, allowing to tweak the solution. PKEY and ALT+PKEY will respectively pin and unpin selected UV's. Face Select Mode Drawing Changes: - Draw Seams option to enable disable drawing of seams - Draw Faces option to enable drawing of selected faces in transparent purple - Draw Hidden Edges option to enable drawing of edges of hidden faces - Draw Edges option to enable drawing of edges of visible faces The colors for these seams, faces and edges are themeable.
2004-04-01New UV editor / Image Window features:Brecht Van Lommel
- Draw Faces in the UV editor - Draw Faces, selected in the UV editor, in the 3D view - Draw Shadow Mesh in the UV editor (for faces unselected in the 3D view) - Select Linked UVs (LKEY) - Unlink Selection (Alt+LKEY) - Stick (Local) UVs to Mesh Vertex on selection - Active Face Select - Reload Image - Show / Hide Faces in the UV editor (H, Shift+H, Alt+H) - Proportional Editing (O, Shift+O) - Stitch, Limit Stitch UVs (snap by mesh vertex) - Weld / Align UVs (WKEY) - UVs Snap to Pixels on/off switch - RMB in Texture Paint or Vertex Paint mode picks color - Select Inverse in Faceselect mode I hope these are all the features that were commited. The new UV Mapping panel (and code) will follow later.
2004-01-28Whoops, this should have gone along with the panel shading commit.Matt Ebb
2004-01-24* Small tweaks to the default theme's coloursMatt Ebb
2004-01-10* Fixed a silly problem when changing the colours of the 'Neutral' button ↵Matt Ebb
theme entry (which changed both the outline of buttons and various other grey buttons). Added a new theme colour 'Outline' and left 'Neutral' to remain, well, neutral. Thanks Desoto for the report.
2003-11-22- this routine is going to be my waterloo!Ton Roosendaal
forgot to check null pointer...
2003-11-17- finished some minor drawing stuff which i couldnt complete last friday:Ton Roosendaal
(related to rounded theme) - layer buttons in view3d header grouped - outline colour now blends darker with respect to background (better visibility on dark backgrounds) - added some align calls to user settings menu Now back to real bugs!
2003-11-09- added panel backdrop for buttonswin to themesTon Roosendaal
- made hilite of headers a tinsy bit subtler - opengl render (icon 3d window) uses theme for backdrop