Commit Graph

283 Commits

Author SHA1 Message Date
ce973efd4f Fix for [#19780] pivot for rotation/scaling doesn't use "active vert/edge/face"
Martin please doublecheck, but it should be all good.
2009-11-05 04:37:42 +00:00
7fad20eff8 Fix #19533: Autoupdate check box not working for UV/Image Editor. 2009-11-04 09:22:16 +00:00
11c36d0ea5 Patch [#19799] Add trackball loop to rotate manipulator
by Adrian Winchell (slightly modified)

This adds a center circle (like translation and resize) to the rotation manipulator that triggers trackball rotation.
2009-11-03 17:44:12 +00:00
eafd94e1bd Make transform axis constraint projection more robust (less flip).
It will still flip, but it now has a small buffer region before it does that which returns a really large positive or negative value. This still only happens in perspective cases, when moving along an axis that is nearly aligned with the view.
2009-11-02 19:37:18 +00:00
bd88c3e944 moving nodes would crash because it ran object update functions 2009-11-02 16:55:06 +00:00
94209d58aa Simplify gimbal axis code and make gimbal orientation work correctly with parents (objects or pose bones). Works for all euler orders too, obviously. 2009-11-01 21:10:54 +00:00
39021ac4ea after transform update didn't run because of stupid typo 2009-11-01 20:09:03 +00:00
69feedf139 Object PET works with autokey.
Reordering some function calls in transform cleanup to make it simpler (that means other fixes are possible too, sequencer probably don't need it's own freeing function anymore).
2009-11-01 02:52:38 +00:00
ea8c41bf54 Resizing didn't handle PET correctly for size attributes (position was ok, that's why it worked alright in edit mode). 2009-10-31 02:54:27 +00:00
d5921a274f Proportional edit for object mode.
Limitations:

1) Parents and children of selected objects are excluded from the pool (siblings are ok) Making it work with that would required unparenting and reparenting after transform, that would turn nasty really quick.

2) Does not support Connected (this could be done through parent links, but see 3 first).

3) Parent relationships in affected objects aren't taken into account. When parent and children in the area of effect, remember that the children will also take the motion of the parents (with additive results). This could perhaps be fixed, but it could be nasty.


Other stuff:
New BASE_EDITABLE macro that checks if base is editable (like TESTBASELIB except it doesn't check for selection)
Add scene parameter to TESTBASELIB_BGMODE macro (using it from current scope is nasty)
2009-10-30 17:48:50 +00:00
312c487201 - Simplified EulToGimbalAxis, its still only works on XYZ and ZXY but at least its more clear whats going on.
- Made RotOrderInfo use a vector rather then i/j/k
- Added gimbal_axis to transform.h (was extern)
2009-10-30 12:11:04 +00:00
1a8b9e63d9 When transform orientation is not orthogonal (which is often the case with Gimbal), orthogonalize the orientation separately when drawing each rotation circles (this makes sure they really appear perpendicular and not just be that way in the skewed space of the orientation). 2009-10-29 21:34:09 +00:00
9a13a84f15 No need to force ortho on a unit matrix 2009-10-29 18:59:48 +00:00
98527a7106 various small fixes
- undo stops all running jobs (operator redo was crashing with threaded render)
- adding new armatures was crashing if there was no valid view3d
- transform with an active hidden object would crash
2009-10-29 18:49:36 +00:00
3187e365d9 Gimbal Transform orientations
Will use rotation gimbal axis when an object or bone set to Euler rotation mode is selected (global axis otherwise)

Use case: being able to do rotations that only affect one animation curve in the 3d view instead of just in the curve editor.

I'm committing this right now despite what follows because it's already useful as is.

Known bug: manipulator arrows can look slightly skewed (not really a big problem), but more importantly, rotation circles for the rotation manipulator are skewed and will not perfectly reflect the rotation axis (it will still use the correct one though). That will be fixed shortly.

To do: This orientation should act like Local, where each object/bone uses its own orientation and not just the one of the active object/bone.

Note: Saved files with custom orientations might end up with other orientations selected when being opened up. I don't think it's that useful to make a do_version for that, but I can if warranted.
2009-10-28 20:30:33 +00:00
49d7a2c51a Fixes for AutoKeying + File Loading Prints:
* AutoKeying was broken after the fix to get automerge working again in 3D view. The 3D-View check was swallowing the processing before autokeying could be done. Separated these out again.

* The error print when some external data couldn't be found for objects was missing a newline.
2009-10-27 23:21:26 +00:00
3266e10456 Proper cast to silence warning and comment to explain WTH is happening here. 2009-10-27 18:50:26 +00:00
e76ce369bb Compiler warning fixes for mingw:
* There's an unresolved error in transform_conversions.c which I've flagged in this commit. I'm not quite sure what the exact intentions of that code were (i.e. was the "void_pointer = 1" really intended)
2009-10-27 09:38:15 +00:00
1c1659eb28 - Right click menu can open links directly to API reference docs (rna and operators)
- Generated and uploaded api docs - http://www.blender.org/documentation/250PythonDoc
- Added Edit docs menu item & operators as discussed with Mindrones, Brecht, Stani & Letterip @ bconf, needs some web backend. python operator can aparently use xml/rpc to upload docstrings.
- Added operator invoke function - context.manager.invoke_props_popup(self.__operator__, event)
  this calls a popup for invoke by default (which intern calls execute())

- Own recent commit to game framing applied to non-camera views too.
- v3d->persp is deprecated but still used in some places.

- Transforming strips could overlap 1 frame if moving them below frame 0
- Transforming overlapping strips could go into an eternal loop (though overlapping strips should not exist)
2009-10-27 02:54:25 +00:00
6565193523 Revert multiplication order change from revision 23692
The previous order is correct, the new order forced all global scale on local axis (in object mode).

The "problem" with scaling (or mirroring) in object mode along an axis that is not aligned along one of the local axis is that the result has to be decomposed (as best it can by TransMat3ToSize) into scaling factors along local axis. The more axis aligned the object is, the more "correct" it will look, with the worse being a scale along two local axis when the scaling axis is right between them.

One "solution" could be to make all Mirror transform in object mode work on local axis only (but I don't think that would be correct, since it still works correctly on aligned axis).
2009-10-26 19:50:07 +00:00
3ffb695b10 Shape Keys
Blended shape keys can now be displayed & edited in edit mode. This
is much like showing an armature modifier in edit mode, and shape keys
now are a applied as a virtual modifier (for mesh & lattice only, curve
doesn't fit in the stack well due to tilt).

The main thing missing still is being able to switch between the active
shape key in edit mode, that's more complicated.. but the weights of
other shapes can be edited while in edit mode.

One thing to be careful about is that this does automatic crazyspace
correction, which means that if you edit a shape key with a low value,
the actual vertices will be moved to correct for that and actually move
a (potentially much) longer distance.

Also includes some UI tweaks, mainly placing some buttons horizontally
since the vertical list was getting too long.
2009-10-22 16:35:51 +00:00
d037061b68 after transform if strips overlap, move the frame rather then the channel to fix.
useful while snap isnt working. metastrips still need to be supported.
2009-10-22 14:40:32 +00:00
359a3d1811 Two fixes:
* RNA Path fixing when renaming data now checks if a path in question cannot be resolved before trying to fix it. This should reduce the number of misindentified cases I hope.

* Silenced compiler warnings for EdgeSlide stuff that mingw was making about unused variables.
2009-10-22 03:12:44 +00:00
c825a9aeaa Bugfix #19703: Axis Angle wont work
* Transform code was not properly fixed to work with the new way that axis-angle data was stored
* The order of the args for the conversion function when switching rotation representations was wrong, causing problems when switching from quaternion to axis angle (i.e. these occurred for newly created bones).
2009-10-22 02:14:11 +00:00
5fb73d8b81 Make compiler happy, remove doubtful non init usage. 2009-10-21 17:56:26 +00:00
7685def9af Graph Editor: Pivot Modes for Transform
It is now possible to choose from 'Bounding Box' (default), '2D-Cursor', and 'Individual Centers' as the pivot point(s) that rotation/scaling is performed around.
2009-10-21 10:36:46 +00:00
cac0e48dfb Region post redraw is now split up in a view space and pixel space
part. This fixes a bug where transform help line drawing would not
work with view clipping and mess up the z-buffer. This avoids the
transform code having to figure out what kind of opengl state is
enabled and disable it temporarily.
2009-10-20 21:05:22 +00:00
a864b7037b Bugfix for node editor refreshing too often when moving nodes,
split up notifier in redraw/refresh.
2009-10-20 20:00:12 +00:00
45a21e4736 Some cleanup for particle edit snap.
Update comment to point at the root of the problem.
2009-10-19 18:49:04 +00:00
1f4d07fd19 run flushTransParticles after snapping applyProject so you can project/snap particles in editmode 2009-10-19 17:50:26 +00:00
031da438e4 - enable snap to work for particle editmode so you can snap onto the emitter.
theeth: maybe there needs to be a new SnapMode for this? - SNAP_SELF?, like editmode but without setting t->editob

- dont run special_aftertrans_update on scene objects when after sequencer transform
2009-10-19 17:20:09 +00:00
55249e255a fix for bug where moving strips that are next to eachother would detect invalid overlaps
first update strips, then check overlap in a second loop
2009-10-19 10:37:50 +00:00
2c985dee97 - listener for sequencer space panels added for frame changes, now redraws during transform
- invalid pointer was used for getting the sequencer length crashing blender or setting the length to negative values.
- printf_strip(seq) for debugging sequence strip locations
- Spelling: Cheet Sheet -> Cheat Sheet
2009-10-19 10:07:19 +00:00
0445ff1ae9 Give sequencer its own transform freeing function.
Updating the sequencer after transform could not use special_aftertrans_update because it relies on data that is freed

theeth: moved the customFree function to run before freeing t->data, t->data2d in postTrans(), checked that customData is not needed.
2009-10-19 08:01:30 +00:00
adba1c302d Reverting revision 23913.
Actions on press is used everywhere in Blender, lets not make an exception here because there's something missing in the event system.

Bug report and potential solution is here, if anyone wants to have a go at it: http://projects.blender.org/tracker/index.php?func=detail&aid=19510
2009-10-18 02:45:05 +00:00
babf9b2d88 Another attempt to fix the problems with confirming transforms while snapping (LMB confirm, CTRL-key still held for snapping) and "ctrl-click" extrusion.
Made the confirm keymap for transforms use KM_RELEASE instead of KM_ANY (I didn't see any case where this failed yet?), and restored the "ctrl-click" as it was before r23903
2009-10-18 02:15:55 +00:00
bdafc20cff enable wrap cursor for transform. might want this disabled when the manipulator is used? 2009-10-17 15:25:19 +00:00
53624a53d9 Assorted tweaks for animation editors:
* Changing to the ShapeKey editor now automatically enables the value sliders
* Filtering code for ShapeKey editor can now do AnimData block filtering too (internal details...)
* Silenced console warnings when inserting keyframes on F-Curves with no keyframes already (for Animation Editor sliders)
* Made the update code for keyframe transforms send more general depsgraph updates. Unfortuately, this still doesn't resolve the update problems with shapekeys
2009-10-17 04:22:52 +00:00
680888419d A few Graph Editor tweaks:
* Tiny tweak of GL commands used when drawing F-Curves (single GL_LINES instead of multiple GL_LINE_STRIPS) to hopefully improve the performance with heaps of handles drawn a bit

* Spelling fix for initTransDataCurveHandes -> initTransDataCurveHandles
2009-10-16 10:01:15 +00:00
004199efd4 Graph Editor - Transform Crash Fix
The code for transforming a mixture of keyframes with bezier and non-bezier interpolation was crashing. 

The old code only took all the handles when a keyframe was bezier, and one when it was not; but sometimes this underestimated the situation (the first handle is only really used if the previous keyframe was bezier, as per the standard evaluation rules for these, but it didn't really check for this). Now, it just adds them whenever, since there is the possibility that keyframes may be moved before other unselected ones, in which case the handles may become invalid.

Thanks to Lee (from Durian, who found the crash), and Jess Balint (who had submitted a patch with some steps towards fixing this)
2009-10-16 06:24:39 +00:00
6ffb79107c X Mirror editmesh with PET
Lock vertice near the middle (|x| < 0.0001) on the mirror's plane.
Don't propagate transformation across mirror plane (this could probably be smarter)
2009-10-15 21:54:22 +00:00
a28b9512fe made texflag a short everywhere (only stores one flag)
fix for crash with separate (missing NULL check)
2009-10-15 09:00:40 +00:00
4ef0ef1927 added mesh mirror flag, now store this per mesh
button in mesh interface
also dont register operators that change context
2009-10-14 14:28:05 +00:00
daebfaaa49 Bugfix: uv editor transform operators were not working anymore
after the recent retopo/snap commit.
2009-10-14 09:08:48 +00:00
828e3f3059 Left in debug prints 2009-10-14 03:00:35 +00:00
e87839b673 Bugfix: Automerge keyframes was broken - the function call to perform the merging was commented out 2009-10-14 02:18:59 +00:00
db763fc445 - Identify and use retopo icon from icons image.
- Reuse proportional edit enums between rna scene and transform operator
2009-10-13 16:08:02 +00:00
4636438394 Enable snapping for curve edit mode.
It's still not possible to snap TO a curve, but at least curves control points can be snapped (or projected) to mesh geometry.
2009-10-13 16:05:57 +00:00
edfe78aec9 Context operators for adjusting context values directly to avoid adding operators for adjusting single values which also need duplicate notifiers.
wm.context_set(path="scene.tool_settings.someattr", somevalue)
wm.context_toggle(path="scene.tool_settings.somebool")
wm.context_toggle_values(path="scene.tool_settings.some_enum", value_1="somevalue", value_2="othervalue") # switch between 2 values
wm.context_cycle_enum(path="scene.tool_settings.some_enum", reverse=False)

the path value is taken from the context so the full path is 
context.scene.tool_settings...

This means in keymaps you can cycle draw modes, change PET- anything with rna access.
If its not so nice to map keys to operators like wm.context_set we could use macro's to wrap it and have its own name

Use this for PET and setting pivot options

- Made userpref key shortcut Ctrl+Alt+U since its not used in 2.4x
- added pivot_point_align (Alt+Comma)
- added PET wasnt rna wrapped correctly.
2009-10-13 15:30:19 +00:00
4063c230af fix for warnings, wkey menu wasnt registered 2009-10-13 07:39:08 +00:00