Commit Graph

539 Commits

Author SHA1 Message Date
99b288da96 view selected now uses boundboxes of dupli-objects and ignores centerpoints of the instance objects when it has duplis. view selected also working again for selected paint mask faces. 2010-02-24 20:11:35 +00:00
eb0bf10c9c [#21269] Alt E extrude options don't appear without Tool Shelf visible
Vertex selection count wasn't properly updated after extrude.
2010-02-21 15:54:41 +00:00
02b2c2f39d bugfix [#21258] Select > Mirror causes segmentation fault. 2010-02-21 11:07:06 +00:00
65cac9ae13 fix for MS compliers
keep var declaration up in .c files
2010-02-17 23:04:30 +00:00
c72ab0a39e topology based mirror, (from apricot branch)
- correct errors with non-mirrored meshes
- mirror weight paint on asymmetrical meshes
2010-02-17 19:50:42 +00:00
36520e20c7 - Extrude Menu call "extrude regions along normals" for Region option
- Extrude Menu not longer restricted by selection mode, only selection totals (will show all possible options for the selection, regardless of selection mode)
- Missing operator descriptions
2010-02-13 20:08:54 +00:00
5d9fcfb3ec Copy vertex normals on extrude (Normal orientation is wrong otherwise when not extruding faces). 2010-02-13 20:06:56 +00:00
33b1cbf06d Smart Extrude (hotkeys are tentative)
Ekey: Extrude Region
	Based on selection totals:
		Extrude region along normal if at least one face selected
		Extrude vertex along normal if only one vertex selected (experimental)
		Extrude edge on its plane if only one edge selected (experimental)
		Extrude with no constraint axis otherwise

Shift-Ekey: Extrude Individual
	Based on selection modes and selection totals
		Individual Faces if face select and some faces are selected
		Individual Edges if edge select and some edges are selected
		Individual Vertice otherwise
		
Alt-Ekey: Extrude Menu (only shows valid options for selection mode and selection totals)
2010-02-12 22:13:47 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
148435b70a batch remove .'s used with RNA_def_struct_ui_text 2010-02-10 21:15:44 +00:00
6d833bced2 Better default resolutions for UV Sphere and Torus primitives (nice square
faces)
Torus is generated flat shaded like the rest of primitives for easier
tweaking of resolution and consistency with the rest of the primitives
2010-02-09 21:05:59 +00:00
f082c7be05 add access to edge select tagging from mesh toolbar (tagging seams on Ctrl+RMB) 2010-02-09 15:48:34 +00:00
ec7df03c86 Warning fixes, one actual bug found in sequencer sound wave drawing. Also
changed some malloc to MEM_mallocN while trying to track down a memory leak.
2010-02-08 13:55:31 +00:00
d61f5451c0 Fix #21006: ring select in face mode does loop select again, on second
thought, it makes sense since it's basically the same with flushed
selection to faces.
2010-02-07 10:30:28 +00:00
636f5eae0f Fix #20220: edge ring select confusing
* no longer a modal operator now, that was useful when it was part of
  the loopcut macro but is no longer the case, and should have not
  affected regular edge ring selection.
* don't fall through to loop select in face mode, that is bad 2.4
  behavior, just use alt+rmb if you want to loop select.
* fix error number of cuts error print, missing select mode flush, and
  use more accurate notifier.
2010-02-07 01:01:32 +00:00
31955feba1 active face was incorrectly set on entering editmode. 2010-02-05 15:07:44 +00:00
7516a56cb7 Small tweaks to Knife Cut
- Number of multicuts can now be set (only usable for multicut mode)
- Midpoint cutting is now done using shift-k + drag hotkey mapping

These were just minor properties changes, which shouldn't be too much of a hassle for BMesh merging.
2010-02-03 21:33:15 +00:00
1b17112cbd editing the basis shape now updates others when relative is enabled. 2010-02-02 11:10:02 +00:00
46b0e90cf6 Mesh Extrude menu
Todo for Campbell: 
- Make menu context sensitive
- Make menu automatically run the operator if there is only one option


Note: Saved configurations and keymaps with references to "Extrude and Move" operator needs to be updated to either call the menu or one of the new extrude macros.
2010-02-01 18:30:00 +00:00
d5fadfdf40 added extrude enum function, cant be used yet because macros have no way to expose in a way that lets transform run after. 2010-02-01 13:48:13 +00:00
6de25c937f Fix #20897: ctrl + click extrude now works again with "select with"
set to left mouse, using the right mouse button, same as in 2.4x.
2010-01-31 11:01:13 +00:00
9d66bfb524 bugfix [#20740] Separate All Loose Parts 2010-01-30 19:42:03 +00:00
29377db3f1 [#19872] Mesh edit missing undo push for mode changing
copy the editmesh select mode back to the scene on undo.
2010-01-30 16:09:56 +00:00
fb7878a2c2 PROP_ENUM_NO_CONTEXT flag for rna properties, forcing enum item functions to be passed a null context (to return non-contextual items).
This is set on keymap item operator properties and macro definition operator properties to make them non-contextual (since the context at definition time is most likely not the same then at execution time, it's better to have all options visible).

This removes some more errors in keymap export and import.

This commit also sanitize some enum item function, making sure they can cope with null context and have usable defaults in that case.
2010-01-27 21:19:39 +00:00
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
Blender too now! :)

** Drag works as follows:

- drag-able items are defined by the standard interface ui toolkit
- each button can get this feature, via uiButSetDragXXX(but, ...).
  There are calls to define drag-able images, ID blocks, RNA paths, 
  file paths, and so on. By default you drag an icon, exceptionally 
  an ImBuf
- Drag items are registered centrally in the WM, it allows more drag 
  items simultaneous too, but not implemented

** Drop works as follows:

- On mouse release, and if drag items exist in the WM, it converts 
  the mouse event to an EVT_DROP type. This event then gets the full 
  drag info as customdata

- drop regions are defined with WM_dropbox_add(), similar to keymaps 
  you can make a "drop map" this way, which become 'drop map handlers' 
  in the queues.
- next to that the UI kit handles some common button types (like 
  accepting ID or names) to be catching a drop event too.

- Every "drop box" has two callbacks:
  - poll() = check if the event drag data is relevant for this box
  - copy() = fill in custom properties in the dropbox to initialize 
    an operator
- The dropbox handler then calls its standard Operator with its 
  dropbox properties.

** Currently implemented

Drag items:
- ID icons in browse buttons
- ID icons in context menu of properties region
- ID icons in outliner and rna viewer
- FileBrowser icons
- FileBrowser preview images

Drag-able icons are subtly visualized by making them brighter a bit 
on mouse-over. In case the icon is a button or UI element too (most 
cases), the drag-able feature will make the item react to 
mouse-release instead of mouse-press. 

Drop options:

- UI buttons: ID and text buttons (paste name)
- View3d: Object ID drop copies object
- View3d: Material ID drop assigns to object under cursor
- View3d: Image ID drop assigns to object UV texture under cursor
- Sequencer: Path drop will add either Image or Movie strip
- Image window: Path drop will open image


** Drag and drop Notes:

- Dropping into another Blender window (from same application) works 
too. I've added code that passes on mousemoves and clicks to other 
windows, without activating them though. This does make using multi-window
Blender a bit friendler.

- Dropping a file path to an image, is not the same as dropping an 
Image ID... keep this in mind. Sequencer for example wants paths to 
be dropped,  textures in 3d window wants an Image ID.

- Although drop boxes could be defined via Python, I suggest they're 
part of the UI and editor design (= how we want an editor to work), and 
not default offered configurable like keymaps. 

- At the moment only one item can be dragged at a time. This is for 
several reasons.... For one, Blender doesn't have a well defined 
uniform way to define "what is selected" (files, outliner items, etc). 
Secondly there's potential conflicts on what todo when you drop mixed 
drag sets on spots. All undefined stuff... nice for later.

- Example to bypass the above: a collection of images that form a strip, 
should be represented in filewindow as a single sequence anyway. 
This then will fit well and gets handled neatly by design.

- Another option to check is to allow multiple options per drop... it 
could show the operator as a sort of menu, allowing arrow or scrollwheel 
to choose. For time being I'd prefer to try to design a singular drop 
though, just offer only one drop action per data type on given spots.

- What does work already, but a tad slow, is to use a function that 
detects an object (type) under cursor, so a drag item's option can be 
further refined (like drop object on object = parent). (disabled)


** More notes

- Added saving for Region layouts (like split points for toolbar)

- Label buttons now handle mouse over

- File list: added full path entry for drop feature.

- Filesel bugfix: wm_operator_exec() got called there and fully handled, 
while WM event code tried same. Added new OPERATOR_HANDLED flag for this. 
Maybe python needs it too?

- Cocoa: added window move event, so multi-win setups work OK (didnt save).

- Interface_handlers.c: removed win->active

- Severe area copy bug: area handlers were not set to NULL

- Filesel bugfix: next/prev folder list was not copied on area copies

** Leftover todos

- Cocoa windows seem to hang on cases still... needs check
- Cocoa 'draw overlap' swap doesn't work
- Cocoa window loses focus permanently on using Spotlight
  (for these reasons, makefile building has Carbon as default atm)

- ListView templates in UI cannot become dragged yet, needs review... 
it consists of two overlapping UI elements, preventing handling icon clicks.

- There's already Ghost library code to handle dropping from OS 
into Blender window. I've noticed this code is unfinished for Macs, but 
seems to be complete for Windows. Needs test... currently, an external 
drop event will print in console when succesfully delivered to Blender's WM.
2010-01-26 18:18:21 +00:00
722f57ca75 Fix Blend From Shape having no effect after exiting edit mode.
Also added a UI string for mesh selection mode property to show
up in undo stack.
2010-01-26 17:39:45 +00:00
bffad18da8 [#20046] 2.5 "bridge faces" tool doesn't delete original selection
remove this script, its not good enough, remove grease pencil retopo also.
2010-01-26 14:39:01 +00:00
4efed23517 Use #include "BLI_math.h" instead of _USE_MATH_DEFINES to get M_PI defined. 2010-01-26 11:25:39 +00:00
50e324c5d0 Rename Beauty Fill to Beautify Fill like in 2.4x, more accurate
description of what it does since it doesn't actually fill, only
change an existing one.
2010-01-26 11:14:44 +00:00
38aacb92f3 Cleaned up some printfs in editors/ - converted some to reports, hid others behind G_DEBUG. 2010-01-22 06:48:29 +00:00
1ad61f32aa Fix [#20750] adding Lattice object in Local space doesn't appears
Now add object operators take a layer parameter (hidden in UI) to determine their layer when created.
2010-01-21 04:54:52 +00:00
05ce322aad set teh active face on entering editmode to the last selected, visible face (if unset) 2010-01-19 12:24:28 +00:00
Dalai Felinto
a33e12c184 Fix: MESH_OT_DELETE wasn't working since rev. 26027, MESH_OT_select_by_number_vertices neither
for the MESH_OT_select_...  ENUM text fix (s/Triangles/Quads) and invoke added (WM_menu_invoke).
2010-01-16 04:18:21 +00:00
61acdb61cb Fix [#20418] ring select in face mode selects edges not faces 2010-01-16 00:59:59 +00:00
5272991e8b generic operator menu was searching for "type" and using the first enum property if it wasnt found.
this is too arbitrary and could break if roperty order is changed.
store the property in the operator type that is to be used for menu and enum search func's.

python function for searching operator enums on invoke. (just need dynamic python enums now)
 wm.invoke_search_popup(self)
2010-01-15 22:40:33 +00:00
ace8d45c1c - particle drawing was using invalid memory with weights.
- particle set weight operator (Shift + K) and from the menu.
- mirror vertex groups operator can also flip weight group names.

a number of utility functions for weight groups added
 int *get_defgroup_flip_map(struct Object *ob);
 void flip_vertexgroup_name (char *name_r, const char *name, int strip_number); // moved from modifier.c 
 void copy_defvert (struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
 void flip_defvert (struct MDeformVert *dvert, int *flip_map);
2010-01-15 17:28:00 +00:00
87c5ed37a5 Tweaked/added poll functions to prevent operators that require
a 3D View from being used outside the 3D View (i.e. the info header 
search button)
2010-01-15 06:10:05 +00:00
b0f87935a8 spelling errors, no real changes to code. 2010-01-14 10:59:42 +00:00
ac3f7db076 Fix [#20556] Shear hotkey not matching keymap
Select Sharp Edges was conflicting with it, fixed by removing it's shortcut, 
- if people use it frequently, they can easy add it back with a RMB click.
2010-01-12 08:30:01 +00:00
e6c61acb68 Fix [#20644] new curve sets itself to the origin, but the pivot to the cursor
+ Cleaned up the nurbs spin operator and gave it properties rather than 
relying on context
2010-01-12 01:50:34 +00:00
1f12e8c59f * Restored vertex parent
The operator was already there and written, just didn't have a hotkey 
assigned. Gave it an icky popup menu like object mode parent until we 
get a nice non-blocking report viewer.
2010-01-11 05:55:34 +00:00
0bd98195a1 Bug [#20539] Pink Opengl line should disapear
Reset edge loop data when there are no edge near (it doesn't cut when there's no edge near anyway, so the display was missleading)

Also don't do any display setup when there's nothing to display.
2010-01-10 19:56:22 +00:00
8f7c106e64 Fix #20604: Make Normals Consistent (Ctrl N) doesn't respect selection. 2010-01-08 14:41:32 +00:00
8f3db6bb24 Rename extrude macro "Extrude and Move" (less confusion with the Extrude operator that just creates geometry and doesn't move it) 2010-01-05 03:26:11 +00:00
d077ea6c6c use a smaller threshold for mesh mirror, workaround for sintels face.
Better solutions could be...
- use a tool to set mirror locations (did a script for this in 2.4x), then run this if locations get messed up..
- find the closest mirror vertex, would be slower
- have a configurable threshold.
2010-01-04 14:59:53 +00:00
57cd505d3f bake is now modal like render and updates the image view while baking.
it also has an exec function which doesnt update (like render too)
2009-12-30 14:37:25 +00:00
010e3fccb2 bake operator and UI, no feedback while baking yet 2009-12-29 18:55:38 +00:00
8177f343a0 - object.add_shape_key(name="Key", from_mix=True)
- ensure new shape key names are unique
- Transfer ShapeKey now can have its settings changes (redo operator)
2009-12-28 18:03:04 +00:00
32656ad4ba moved shape key insert function into BKE_object.h 2009-12-28 15:26:36 +00:00
dbf295b904 Added location and rotation operator properties for adding objects. The Align to View boolean
is now just used to set the rotation property value during invoke.

This removes some reliance on 3d view info for non-interactive use, and also lets you specify
new object's locations/rotations explicitly when calling from Python.
2009-12-28 04:09:46 +00:00