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-01Small change to keep MSVC happy -- defined variable at the start of a ↵Simon Clitherow
conditional block.
2007-01-01-> Fix for bug #5472Geoffrey Bantle
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.
2006-12-31Prevent user from applying editmode operations that will be ignored by multires.Nicholas Bishop
2006-12-29=== Transform Snap ===Martin Poirier
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-23Select Grouped editdata- minor fix in the menu.Campbell Barton
Updated Python Mesh API to support UV and Color layers with names. Similar to vertex group's renamed a function in customdata.c CustomData_free_layers -> CustomData_free_layers_active and made CustomData_free_layers accept an index, this is needed so python could free layers that arnt active.
2006-12-16made editmode select grouped work with mixed selections - can show select ↵Campbell Barton
grouped items for vert/edges/faces all at once. bad comment in Axiscopy and spelling fix in export_obj
2006-12-06Another 3-in-one commit:Ton Roosendaal
- Unitialized variable in new shadow code caused Sun lamp shadow to not work. - Ipo handle bug: when the handle was vertical it flipped around - Loop select: unitialized variable caused it to work unpredictable in cases. Also found an unitialized var in collaps_edgeuvs().
2006-12-05Modifier Stack: Limit calculation to required data.Ben Batt
This commit upgrades the modifier stack to only calculate the data which is needed, either by modifiers further down the stack or by other functions at the end of the stack (e.g. drawing functions). This speeds up modifier stack recalculation, especially where vertex groups and UV coordinates are concerned. For example, a mesh with an Armature modifier followed by a Subsurf modifier would previously have required the Subsurf modifier to interpolate all the vertex groups in the mesh, slowing down modifier calculations considerably. With this update, vertex group data is not propagated beyond the Armature modifier, so calculations are faster. Note that this depends on the order of modifiers in the stack. If the Armature and Subsurf modifiers were swapped in the above example, the Subsurf modifier would have to interpolate vertex groups, as they are needed by the Armature modifier.
2006-11-20Added custom vertex/edge/face data for meshes:Brecht Van Lommel
All data layers, including MVert/MEdge/MFace, are now managed as custom data layers. The pointers like Mesh.mvert, Mesh.dvert or Mesh.mcol are still used of course, but allocating, copying or freeing these arrays should be done through the CustomData API. Work in progress documentation on this is here: http://mediawiki.blender.org/index.php/BlenderDev/BlenderArchitecture/CustomData Replaced TFace by MTFace: This is the same struct, except that it does not contain color, that now always stays separated in MCol. This was not a good design decision to begin with, and it is needed for adding multiple color layers later. Note that this does mean older Blender versions will not be able to read UV coordinates from the next release, due to an SDNA limitation. Removed DispListMesh: This now fully replaced by DerivedMesh. To provide access to arrays of vertices, edges and faces, like DispListMesh does. The semantics of the DerivedMesh.getVertArray() and similar functions were changed to return a pointer to an array if one exists, or otherwise allocate a temporary one. On releasing the DerivedMesh, this temporary array will be removed automatically. Removed ssDM and meshDM DerivedMesh backends: The ssDM backend was for DispListMesh, so that became obsolete automatically. The meshDM backend was replaced by the custom data backend, that now figures out which layers need to be modified, and only duplicates those. This changes code in many places, and overall removes 2514 lines of code. So, there's a good chance this might break some stuff, although I've been testing it for a few days now. The good news is, adding multiple color and uv layers should now become easy.
2006-11-15Bugfix #5224Ton Roosendaal
Prob: selection sometimes gave wrong edges/faces Selection code for editmesh was still using a short for calculating the distance of a projected vertex/edge/face from the mouse position. In zoomed in cases that'll give overflows and unpredictable results. It was fixed only half before... now all shorts are removed for distance calculus.
2006-11-12Added custom vertex data support to editmode. Only used for vertex groupsBrecht Van Lommel
now, others can be added later (sticky, shape keys). Beside one small fix for knife exact vertex group interpolation, is intended to work the same as before. Also fixes bug #5200, related to editmode undo and vertex groups. And corrects the editmode to faceselect mode selection conversion, that was broken in a previous commit.
2006-11-11Added custom face data support in edit mode. The code used to do this isBrecht Van Lommel
the CustomData module from the modifier stack rewrite, but with additions to make it also usable in edit mode. Some of the datatypes from that module were move to a DNA header file, they are not saved to file now, but will be soon. The only code that wasn't abstracted is the uv collapse / merging code. It is rather complicated, will look into that in the future. There should be no user level changes.
2006-11-05-> Fix for Bug #5056Geoffrey Bantle
hide_mesh() in editmesh_mods.c wasn't checking for fgon edges properly, causing fgon faces dissapear when hiding unrelated verts/edges. Fixed.
2006-09-21one liner,Campbell Barton
editmode select grouped, face area and perimeter comparing didnt work sometimes, simpler comparison that still scales well
2006-08-28fixed a crash in selecting edges based on face angle with some hidden edges.Campbell Barton
2006-08-28Integration of the Google Summer of Code Modifier Stack Upgrade project. TheBen Batt
main features are: * Modifiers can now be in any order in the modifier stack * DerivedMesh now has a standard framework for custom element data to be passed through the stack with mesh data (being copied and interpolated as appropriate), so modifiers can access whatever data they need * The modifier stack code has been refactored and a number of bugs have been removed * The EdgeSplit modifier has been added: http://mediawiki.blender.org/index.php/BlenderDev/EdgeSplitModifier * The DerivedMesh modifier has been added: http://mediawiki.blender.org/index.php/BlenderDev/DisplaceModifier * The UVProject modifier has been added: http://mediawiki.blender.org/index.php/BlenderDev/UVProjectModifier For more info, see: http://mediawiki.blender.org/index.php/User:Artificer/ModifierStackUpgrade (currently undergoing reorganisation)
2006-08-20Huge commit: VERSEJiri Hnidek
- All code is in #ifdef ... #endif - Only make build system is supported and you have to add: export WITH_VERSE=true to user-def.mk file - Blender can share only mesh objects and bitmaps now - More informations can be found at wiki: http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlender http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlenderUserDoc I hope, that I didn't forget at anything
2006-08-11-> Vertex support for knife toolGeoffrey Bantle
Previously the knife tool only allowed you to cut through edges. This approach is limited however, since many times you want to cut through vertices in order to create precise cuts or terminate a cut in a specific way. Blenders knife tool now supports cutting through vertices as demonstrated in these pictures: http://briggs.zanqdo.com/newknife1.jpg http://briggs.zanqdo.com/newknife2.jpg Since the vertex intersection code is very precise, vertex snapping has been added to the knife tool to assist the user when they wish to cut through vertices and can be toggled by pressing and holding the 'alt' key. Notes: -Vertex cutting and vertex snapping are only available when using the 'knife exact' option. -Added various fixes to the precision of the knife tool.
2006-07-31Siggraph show commit!Ton Roosendaal
- pending commit for OSX intel systems, with intel graphics. These now call an extra swapbuffers after glFlush(). Code is ifdeffed, and doesnt affect other systems. - show-off commit: option to have transparent nodes over the composite result. Only draws Image for active Viewer Node now, and image doesnt translate nor zoom (which isnt bad though). Set in themes the alpha color of "node backdrop" to make nodes transparent.
2006-07-10fixed comparison eith edge angle.Campbell Barton
2006-07-04Fix for bug #4607:Brecht Van Lommel
- Crash in recalc normals with vertices in infinity.
2006-06-27previous commit to editface made it impossible to leave faceSelect mode of ↵Campbell Barton
the object was in an unseen layer. Now you can leave faceSelect/UV mode while the object is hidden but not enter it. This is how editmode works. Tweak to crease comparison.
2006-06-27Added select similar crease to edge select groups. Needed this recently.Campbell Barton
2006-06-24fix for report 4440 in the bug trackerJoilnen Leite
.
2006-06-22Bugfix #3773Ton Roosendaal
Option SHIFT+CTRL+5, "select all non-tria/quad" didnt work at all.
2006-06-20scaled comparison adjustment only effects editmode select groupCampbell Barton
documented a workaround for python drawinf pixel aligned text in teh 2d view Added links from Draw.Test to the OpenGL functions that set the location and color.
2006-06-19Fix for editmehs select grouped.Campbell Barton
the function that compares 2 face areas/perimeters edge length now will match 2 zero area values (previous method to make the function compare proportionaly messed this up)
2006-06-08-> Fix for bug #3867Geoffrey Bantle
Face loop cut was failing on meshes with hidden parts. Also modified edge ring selection code in editmesh_mods.c to ignore hidden parts of mesh.
2006-05-31-> Fix for bug #4247Geoffrey Bantle
The mouse handling code for selecting/deselecting face/edge loops and edge rings was causing single edges to be selected in face mode when face loop select failed.
2006-05-21Intergrated select group editmode into the menus and re-shuffled the Mesh ↵Campbell Barton
tool buttons to fit a threshold value in. also changed the way areas/perimeter and lengths are compared so it will be indipendant of scale.
2006-05-11-> New menu and toolbox entriesGeoffrey Bantle
Added the following to the 'select' menu of 3d header and toolbox while in mesh editmode: ' -Path Select -Edge Loop Multi-Select -Edge Ring Multi-Select -Loop to Region -Region to Loop Also added Collapse Faces and Collapse Edges to menu and toolbox as well as made them available in selection modes other than face exclusive and edge exclusive.
2006-03-28Removed a bad return and and unused variable.Campbell Barton
swappsed all // for /**/.
2006-03-28Modified editmesh_mods.cCampbell Barton
Added "Similar Edge Face Angles" to "Select Edge Groups" This means you can select edges based on the angles of edges in the existing selection. Only works for edges with 2 face users at the moment.
2006-03-27-> Stored SelectionsGeoffrey Bantle
Previously Blender did not store the order in which vertices, edges or faces were selected in edit mode. In many cases it is useful to have this data, however it is not desirable to store every selection made. Now blender stores selections in the order in which they were made in a linked list called 'selected' in EditMesh. EditSelection structs are created whenever 'EM_store_selection' from editmesh_lib.c is called (currently only on user selection with mouse). There are several cases in which they might be deallocated by calling the 'EM_remove_selection' function however: -When the user deselects something with the mouse ('mouse_mesh' in editmesh_mods.c) -When switching selection modes stored selections that are not relevant to the new mode are removed by the 'EM_strip_selections' function (multi-select mode is supported) -When the vertex, edge or face pointed to by a certain stored selection is deallocated -When EM_clear_flag_all is called and where the flag passed to the function contains the 'SELECT' bitmask. -When leaving edit mode (making stored selection data persistent across editing sessions will require modifications to mesh DNA later) Todo: There are a few cases still where you can temporarily end up with a stored selection that points to an element that is no longer selected (edge loop de-select can cause this for instance). The solution to this is to add a call to EM_remove_selection from 'EM_select_edge' and 'EM_select_face' when these functions are being used to deselect elements. For the sake of completeness however this will also require that an 'EM_select_vert' function be coded and called at all appropriate parts of the editmesh code. I will look into this later in the week. For now there are two tools that already take advantage of the stored selections. The first one is 'merge at first or last vertex' in the merge menu (the 'firstvert' and 'lastvert' pointers are gone from EditMesh). The second tool is path select, which builds a path between the last vert selected and the second to last vert selected. This allows you to build complex path selections in a short amount of time like this 'select A, select B, path select. select C, path select. select D...'
2006-03-26select group with large selections could make blender hang. break out of the ↵Campbell Barton
loop when no more can be done.
2006-03-26Made group work from multiple selection's (before it used the first selected ↵Campbell Barton
face/vert/edge) so you can select 2 faces and then get all coplaner faces around both. Added fp to face and edge edit data so as to store edge length and face area/perimeter. (in the union so minimal overhead) current implimentation is fairly optimized. Change to arithb.c was just to command Inpf as being the dot producr.
2006-03-25Fixed a possible bug where counting faces was a short and could be less then ↵Campbell Barton
the number of items selected. Added Vertex group select menu- Similar Normal|Same FaceUsers|Shared Vertex Groups
2006-03-25Added select group edges (Length/Direction/FaceUsers)Campbell Barton
Added VecAngle2 - needed for grouping by normal and planer faces. Made select face & edge group ignore hidden faces. fixed a bug where hiding faces didnt update G.tot*sel
2006-03-25Added select group meny to mesh editmode.Campbell Barton
Currently only works for faces. Try Shift+G in face/editmode.
2006-03-152 New tools, 'Loop to region' and 'Region to loop'Geoffrey Bantle
-> Loop to Region Examines the current set of selected edges and seperates them into groups of 'loops' that each bisect the mesh into two parts. Then for each loop it selects the smaller 'half' of the mesh. Example images: http://www.umsl.edu/~gcbq44/looptoregion2a.jpg http://www.umsl.edu/~gcbq44/looptoregion2b.jpg This tool handles multiple loops fine as is shown by these images: http://www.umsl.edu/~gcbq44/looptoregion1a.jpg http://www.umsl.edu/~gcbq44/looptoregion1b.jpg Furthermore it handles 'holes' just fine as well: http://www.umsl.edu/~gcbq44/looptoregion3a.jpg http://www.umsl.edu/~gcbq44/looptoregion3b.jpg -> Region to Loop This is the 'logical inverse' of loop to region. Example: http://www.umsl.edu/~gcbq44/regiontoloop1a.jpg http://www.umsl.edu/~gcbq44/regiontoloop1b.jpg Both features can be accessed by the 'Edge Menu' in EditMode (CTRL-E).
2006-03-03-> Silly mistake in loop_multiselect() in editmesh_mods.c, called ↵Geoffrey Bantle
EM_select_flush() instead of EM_selectmode_flush()... Oops!
2006-02-28-> Loop MultiSelectGeoffrey Bantle
Added new function in editmesh_mods.c, "loop multiselect" and can be accessed via the CTRL-E popup menu in editmode. It is used to select multiple edge loops/rings based upon the current selection set. It does this simply by looping through a list of currently selected edges and calls 'edge_loop_select' or 'edge_ring_select' for each one. This can be used to build large selection sets quickly, as can be seen in the following example images... step 1 - http://www.umsl.edu/~gcbq44/multiselectA.jpg step 2 - http://www.umsl.edu/~gcbq44/multiselectB.jpg step 3 - http://www.umsl.edu/~gcbq44/multiselectC.jpg -> Misc While I was in there I fixed a couple of existing issues as well... - "Select Less" now gets a proper undo push. - countall() wasn't being called after inclusive selection mode conversion - some strange formatting in EM_convertsel() in editmesh_lib.c fixed.
2006-02-22"Select Random" in editmode for meshes did not do an undo_push... This wasGeoffrey Bantle
pretty annoying so I fixed it.
2006-02-22[Two Sections here; First is the log that *should* have been includedGeoffrey Bantle
to my previous commit (whoops). The second part covers the changes I have made to the code since then (all related to merge tools code).] # Part One: Complete Log for Commit from 2/13/06 -> Upgraded merge tools. The new merge tools add several options to blenders Merge submenu, accessed via the WKEY whilst in Editmode for meshes. The new options depend on current mode: - Vertex mode: "At First" and "At Last" When choosing "At First" or "At last" it will merge all selected vertices at the first or last selected vertex. (Note: Blender now keeps track of the last and first verts selected in editMode (G.editMesh->lastvert and G.editMesh->firstvert pointers. This meant additions were made to the undomesh code in editmesh.c as well). - Edge mode: "Collapse Edges" When choosing this option, Blender examines the current set of selected edges and groups them according whether or not they are topologically connected. It then goes through each group and merges them one by one to a single point. - Face Mode: "Collapse Faces" Works the same as "Collapse Edges", only works on groups of topologically connected faces. -> Inclusive selection mode conversion. This feature extends the ability of blenders selection mode conversions. Currently when you change selection modes from a "lower order" mode to a "higher order" one (vertex->edge, vertex->face or edge->face) blender only selects elements in the new mode whose elements were completely selected in the previous mode. This patch does not change blenders default behavior but offers implicit selection mode conversion as an alternative. To access it, hold either the left or right CTRL keys and click on a selection mode in the view 3d selection mode header buttons. This can be accessed via the CTRL-TAB selection mode switching as well, simply hold CTRL while clicking the mode you want or entering its number on the keypad. In some programs, such as Wings and Mirai, it has been demonstrated that it can also be very useful to exploit selection mode switching to implicitly select previously unselected elements as well. For instance switching selection mode from vertex to edges will select all edges currently associated with the currently selected vertices. The same behavior is applied to switching between vertex->face and edge->face. By exploiting this sort of selection conversion complex selection sets can be built quicker. Furthermore I modified blenders UndoMesh code to make selection mode switching "undo coherent". Aside from its relevance to inclusive selection mode conversion, this really counts as a "bug" in my mind. Previously selection mode switch could cause the selection state of the mesh to be invalid when certain modeling operations were undone. An example of this would be "edge subdivide-> switch to face mode-> undo"; you end up with edges selected while still in face mode! # Part Two: Log for this Commit -> Code Cleanup As per Ton's request I reformatted all my code, changed variable names and eliminated my use of "LinkNode" structs and replaced them with "ListBase" instead. There should be no warnings while compiling now either. -> Remove doubles bug Fixed small problem in removedoublesflag() in editmesh_tools.c that caused editface structs to get their UV's scrambled. Vertex colors might not be safe though? Need to investigate later. -> Small bug in in the the code for merge last/first It could cause a crash when exiting editmode, switching meshes, then entering editmode again. "lastvert" and "firstvert" pointers are now set to NULL whenever exiting editmode now (see load_editmesh() in editmesh.c). I will find a better solution to this *soon*... -> All merge tools now UV aware (optional) The default behavior is to leave UVs alone, but if you hold CTRL while clicking on the menu entry, UV's are merged. This works fine in most situations, although some investigation into how to best handle merging of UVs at the border of UV islands needs to be done. This last item brings up a point about the current state of the interface: several functions accessed through the WKEY menu now use the CTRL modifier to change how they behave (This convention has been in place for a while, see subdivide for example). Unfortunately there is no way to communicate the way modifier keys change the behavior of certain functions to the user. This makes such options invisible for all intents and purposes...
2006-02-14Modified Files:Geoffrey Bantle
source/blender/blenlib/BLI_editVert.h source/blender/include/BIF_editmesh.h source/blender/src/edit.c source/blender/src/editmesh.c source/blender/src/editmesh_lib.c source/blender/src/editmesh_mods.c source/blender/src/editmesh_tools.c source/blender/src/header_view3d.c Log: Commit of the 'upgraded merge tools' (Patch #3345) and 'inclusive selection mode conversion' (Patch #3768).
2006-02-09Seam Cutting in Faceselect Mode:Brecht Van Lommel
- Mark Border Seam: mark edges on the border of face selection as seam. - Clear Seam: clears seams in selected faces. Hotkey: Ctrl+E - Alt+RMB Click: mark/clear edge as seam - Alt+Shift+RMB Click: mark/clear seams along the shortest/straightest path from last marked seam. The cost of the path also includes some measure of 'straightness' next to the typical distance to make things work more predicatble and edgeloop friendly. Note that this cuts a path from edge to edge, not vertex to vertex. That gives some nice control over the direction of the seam. Also includes: - Removed old LSCM code. - Fix updates glitches with DerivedMesh/Subsurf drawing in FaceSelect mode. Now there's a drawMappedFacesTex instead of drawFacesTex. - Minimize Stretch menu entry called Limit Stitch. - Removed the lasttface global, was being set before it was used anyway, so might as wel return from a function. - Moved some backbuf sampling code to drawview.c from editmesh, so it can be used by Faceselect and VPaint. - Use BLI_heap in parametrizer.c.
2006-02-06Quite weird... I recall I fixed it, then it came back again.Ton Roosendaal
Vertex selection (mesh edit) was using a short to calculate distances, which can overflow with vertices outside of view.
2006-01-30More simple fixes to cleanup warnings and what not:Kent Mein
extern/bullet/BulletDynamics/ConstraintSolver/SimpleConstraintSolver.h added newline at end of file. intern/boolop/intern/BOP_Face2Face.cpp fixed indentation and had nested declarations of a varible i used for multiple for loops, changed it to just one declaration. source/blender/blenkernel/bad_level_call_stubs/stubs.c added prototypes and a couple other fixes. source/blender/include/BDR_drawobject.h source/blender/include/BSE_node.h source/blender/include/butspace.h source/blender/render/extern/include/RE_shader_ext.h added struct definitions source/blender/src/editmesh_mods.c source/gameengine/Ketsji/KX_BlenderMaterial.cpp source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp source/gameengine/Ketsji/KX_RaySensor.cpp removed unused variables; source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp changed format of case statements to avoid warnings in gcc. Kent
2006-01-29Made mesh align to face/verts also align to an edge and a verts normal, ↵Campbell Barton
existing functionality was not changed. usefull for rotating about an edge.
2006-01-24Giant commit!Ton Roosendaal
A full detailed description of this will be done later... is several days of work. Here's a summary: Render: - Full cleanup of render code, removing *all* globals and bad level calls all over blender. Render module is now not called abusive anymore - API-fied calls to rendering - Full recode of internal render pipeline. Is now rendering tiles by default, prepared for much smarter 'bucket' render later. - Each thread now can render a full part - Renders were tested with 4 threads, goes fine, apart from some lookup tables in softshadow and AO still - Rendering is prepared to do multiple layers and passes - No single 32 bits trick in render code anymore, all 100% floats now. Writing images/movies - moved writing images to blender kernel (bye bye 'schrijfplaatje'!) - made a new Movie handle system, also in kernel. This will enable much easier use of movies in Blender PreviewRender: - Using new render API, previewrender (in buttons) now uses regular render code to generate images. - new datafile 'preview.blend.c' has the preview scenes in it - previews get rendered in exact displayed size (1 pixel = 1 pixel) 3D Preview render - new; press Pkey in 3d window, for a panel that continuously renders (pkey is for games, i know... but we dont do that in orange now!) - this render works nearly identical to buttons-preview render, so it stops rendering on any event (mouse, keyboard, etc) - on moving/scaling the panel, the render code doesn't recreate all geometry - same for shifting/panning view - all other operations (now) regenerate the full render database still. - this is WIP... but big fun, especially for simple scenes! Compositor - Using same node system as now in use for shaders, you can composit images - works pretty straightforward... needs much more options/tools and integration with rendering still - is not threaded yet, nor is so smart to only recalculate changes... will be done soon! - the "Render Result" node will get all layers/passes as output sockets - The "Output" node renders to a builtin image, which you can view in the Image window. (yes, output nodes to render-result, and to files, is on the list!) The Bad News - "Unified Render" is removed. It might come back in some stage, but this system should be built from scratch. I can't really understand this code... I expect it is not much needed, especially with advanced layer/passes control - Panorama render, Field render, Motion blur, is not coded yet... (I had to recode every single feature in render, so...!) - Lens Flare is also not back... needs total revision, might become composit effect though (using zbuffer for visibility) - Part render is gone! (well, thats obvious, its default now). - The render window is only restored with limited functionality... I am going to check first the option to render to a Image window, so Blender can become a true single-window application. :) For example, the 'Spare render buffer' (jkey) doesnt work. - Render with border, now default creates a smaller image - No zbuffers are written yet... on the todo! - Scons files and MSVC will need work to get compiling again OK... thats what I can quickly recall. Now go compiling!