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
2004-10-07- Outliner now sorts Objects alphabeticallyTon Roosendaal
(i tried sort 'by type', but thats very unclear... need think over) - Vertex Groups are visualized in Outliner (and selectable) - Armature Bones are visualized & editable too In general; Outliner now also supports indirect data (Structs with no ID) - changed weirdo NLA icon into something that makes sense. (Thnx sten!)
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-06Add theme colour for "Draw Normals"Nathan Letwory
2004-07-15Commit for the 4 aforementioned "features":Alexander Ewering
- "Global Pivot": Maintains a global Pivot and Align mode setting for all 3d views when enabled, instead of seperate settings per 3d view - "Auto Perspective": Switch to ortho mode automatically on 1/3/7, and to Perspective when the view is rotated with the mouse - "Align mode": As suggested on the list, when enabled, transformations on several objects only transform their locations, not their sizes or rotations. - Grid dotted when not 1:1 ***ATTENTION***! The User Interface parts of these features have not been committed, as I work on my own modified UI here. The three features need toggle buttons to turn them on and off. I used the following 3 buttons (first two features are in userprefs, third as a 3d view setting): uiDefButBitS(block, TOG, USER_AUTOPERSP, B_DRAWINFO, "Auto Persp", (xpos+edgespace+(3*medprefbut)+(3*midspace)+smallprefbut+2),y3+10,smallprefbut,buth, &(U.uiflag), 0, 0, 0, 0, "Automatically switch between orthographic and perspective"); uiDefButBitS(block, TOG, USER_LOCKAROUND, B_DRAWINFO, "Global Pivot", (xpos+edgespace+(4*midspace)+(4*medprefbut)),y3+10,smallprefbut,buth, &(U.uiflag), 0, 0, 0, 0, "Use global pivot setting for all 3d views"); uiDefIconButS(block, TOG|BIT|10, B_AROUND, ICON_ALIGN, xco+=XIC,0,XIC,YIC, &G.vd->flag, 0, 0, 0, 0, "Translate only (align)"); Someone needs to add these to the interface in an appropriate manner! Thanks.
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-06-26The revised patch from Leon for new particle effects.Ton Roosendaal
New is that objects can have a force field, and Meshes can even deflect (collide) particles. This is in a new sub-menu in Object buttons F7 The full instructions where on the web, Leon mailed it me and I will put it in CMS tomorrow. For those who like to play with it now, here are demo files: http://download.blender.org/demo/test/ Quite some changes where in the integration though... so previous created particle deflectors will not work. Changes to mention now are: - gravity is renamed to 'force field' - force field and deflector options are in Object now, not in Mesh - the options also have its own struct, doesnt add to Object by default - force fields are possible for all object types, but only work on center. So empty objects are typical for it. Work to do: - add draw method in 3d win to denote forcefield objects - check on the UI (panel with different size?) - add 'recalc' button in deflector panel
2004-04-05New icons for the sticky / face select state in the UV editor / Image Window.Brecht Van Lommel
The png file containing the icons, 'blenderbuttons', was updated to contain these new icons. It now also contains the icons from the 2.30 ui makeover. The file had not been updated since then.
2004-03-23[GameEngine] Commit all Kester's changes made to the gameengine to restore ↵Nathan Letwory
2.25 like physics. [SCons] Build with Solid as default when enabling the gameengine in the build process [SCons] Build solid and qhull from the extern directory and link statically against them That was about it. There are a few things that needs double checking: * Makefiles * Projectfiles * All the other systems than Linux and Windows on which the build (with scons) has been successfully tested.
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-10-25First commit of a new toolbox system.Ton Roosendaal
Aim was to find a simple & easy system, script alike, to add and configure a toolbox system, so that others can experiment, but also of course Python. Summary: - spacebar calls it up. SHIFT+A still does old toolbox - hold left or rightmouse for 0.4 second, and it pops up as well this is experimental! Can be tweaked with Userdef var "ThresA" - it is a little bit complete for Object mode only. Needs still work at information desing/structure level - the code works like an engine, interpreting structs like this: static TBitem addmenu_curve[]= { { 0, "Bezier Curve", 0, NULL}, { 0, "Bezier Circle", 1, NULL}, { 0, "NURBS Curve", 2, NULL}, { 0, "NURBS Circle", 3, NULL}, { 0, "Path", 4, NULL}, { -1, "", 0, do_info_add_curvemenu}}; - first value is ICON code, - then name - return value - pointer to optional child last row has -1 to indicate its the last... plus a callback to event function. I also built an old toolbox style callback for this: static TBitem tb_object_select[]= { { 0, "Border Select|B", 'b', NULL}, { 0, "(De)select All|A", 'a', NULL}, { 0, "Linked...|Shift L", 'L', NULL}, { 0, "Grouped...|Shift G", 'G', NULL}, { -1, "", 0, tb_do_hotkey}}; here the return values are put back as hotkeys in mainqueue. A mainloop can do all context switching, and build menus on the fly. Meaning, it also allows other designs such as radials...
2003-10-21Added a function to shade alpha as well as colourMatt Ebb
2003-10-20Another mega commit... loadsof restructure, and a pretty good one! :)Ton Roosendaal
- changed the BIF_DrawString() function. it used to work different for AA fonts as for default fonts. Now it's identical. Setting color for fonts can just be done with OpenGL, for both font types. Removed: BIF_DrawStringRGB() - added theme color options for Buttons - recoded DefButton, so it automatically chooses the right color. - had to remove a 1000 uiBlockSetCol() calls for that reason... - uiBlockSetCol() still works, to override automatic color - removed entirely the silly old color system (BIFColorID). All color calls can now be done with a BIF_ThemeColor() call, including fonts and buttons and opengl stuff - all buttons in button header have headercolor by default - recoded drawing icons, it was a really bad & old loop doing manually colorshading and blending... which was per pixel a load of code! Now it uses a single OpenGL call to blend or colorize. Quite faster! - (as test, for review) icons don't colorize anymore with button color, but have a different alpha to blend in (when not active) - recoded the entire interface_draw.c file...: - drawing buttons is separated in three parts: 1. main drawing function for text and icons 2. free definable callback for button itself 3. free definable callback for slider - removed a load of redundant code for this! - coded a minimal theme, and adjusted Matt's buttons to match new callback system - adding new drawing themes is piece of cake now - for coders, default 'themes' to be aware of: UI_EMBOSS : the themable drawing style UI_EMBOSSP: the pulldown menu system (apart from color not themable) UI_EMBOSSN: draw nothing, only text and/or icon UI_EMBOSSM: minimal theme, still in use for Logic and Constraintsa this can be set with uiBlockSetEmboss(block) or in the uiNewBlock() call. TODO: make UI API call for button alignment (plus removed another series of warnings from code...) Plus: fixed bug in Matts commit: he used a 'short' button for an 'int'
2003-10-19- simplified Theme API. No need to include 'current active area' anymore.Ton Roosendaal
like: BIF_ThemeColor(TH_GRID); will be sufficient. Blender does the rest. - fixed bug in CTRL-X (reload home file) with themes - fixed bug in horizontal alignment of different height panels. Seems also to solve the drawing error with constraints...
2003-10-18- added Theme for File WindowTon Roosendaal
- made grid drawing using the main theme color - was annoyed with the primitive grid... so coded something that allows zooming in and out a 100fold without losing gridlines - brought back 'NKEY' for mesh editmode - added to this a 'median' option; when more vertices selected you see the average coordinate. works nice when inputting values as well (todo: make this for other editmodes) - renamed the 'NKEY' panel to 'Transform Properties', also fixed in pulldown menu. I am off for the rest of the day. More committing fun tomorrow! -Ton-
2003-10-18- Added ICON_PANEL_CLOSEMatt Ebb
2003-10-17- The basic layer for Themes in place!Ton Roosendaal
- currently only implemented for 3d window - create as many themes you like, and name them - default theme is not editable, and always will be defined at startup (initTheme) - saves in .B.blend - themes for spaces can become local too, so you can set individual 3d windows at theme 'Maya' or so. (to be implemented) - it uses alpha as well...! API: This doesnt use the old method with BFCOLORID blahblah. The API is copied from OpenGL conventions (naming) as much as possible: - void BIF_ThemeColor(ScrArea *sa, int colorid) sets a color... id's are in BIF_resources.h (TH_GRID, TH_WIRE, etc) - void BIF_ThemeColorShade(ScrArea *sa, int colorid, int offset) sets a color with offset, no more weird COLORSHADE_LGREY stuff - void BIF_GetThemeColor3fv(ScrArea *sa, int colorid, float *col) like opengl, this gives you in *col the three rgb values - void BIF_GetThemeColor4ubv(ScrArea *sa, int colorid, char *col) or the one to get 4 bytes ThemeColor calls for globals (UI etc) can also call NULL for *sa... this is to be implemented still. Next step: cleaning up interface.c for all weird colorcalls.
2003-10-15- Added ICON_MENU_PANELMatt Ebb
2003-10-08- brought back hilites in buttons when mouse-overTon Roosendaal
- automatic pulldown opening can now be controlled ( user setting?) it has two thresholds: - when no menu was opened before, it waits A milliseconds - when (in the same block a menu was opened, it waits B millisec. Currently A= 0.4 sec, B= 0.1 (or so) - 3d window header; brought back old drawtype menu (test, compare!) - another test: the old menubutton doesnt work anymore with hold-mouse only, you can also use it as the other popups (old method still works) - proposal; all buttons that pop up a block, get special drawtype (arrows)
2003-10-05huge commit, sorry!Ton Roosendaal
this is part 1 of the UI makeover. It has: - menu system from Matt integrated - buttons drawing from Matt - generic button panel system implemented - converted displaybuttons (not the rest yet) - cleaned up a lot in drawing spaces itself, to make it aligned and pixel exact. - cleaned loads of little compiler warnings, protos... still a lot of work needed, will all be in next week i hope! (warn: 2 new c files! butspace.c and buttons_scene.c)
2003-05-09added Matt Ebb's icons for the new headerbuttons.Rob Haarsma
2002-12-27Removed the config.h thing from the .h's in the source dir.Kent Mein
So we should be all set now :) Kent -- mein@cs.umn.edu
2002-11-25Did all of the .h's in sourceKent Mein
(adding) #ifdef HAVE_CONFIG_H #include <config.h> #endif also the Makefile.in's were from previous patch adding the system depend stuff to configure.ac Kent -- mein@cs.umn.edu
2002-10-30fixed spacing in the headers to get rid of some warnings and some otherKent Mein
little minor spacing issues.
2002-10-12Initial revisionv2.25Hans Lambermont