Dev:Ref/Release Notes/3D interaction/Manipulation/Transform Orientations

From BlenderWiki

Jump to: navigation, search

Contents

[edit] 2.40 Release

[edit] Transform

[edit] Manipulator

This commit merges manipulator orientation selection back in "traditional" transform. This is how it works:

  • The dropdown in the 3D view header is always visible
Orientation menu
  • The orientation chosen will be used when choosing an axis with  MMB Image:Template-MMB.png and for the *second* key press of X,Y,Z (note an exception being if Global is selected then the second keypress uses local)
  • However, Local orientation doesn't use the one calculated by the manipulator. This is to ensure that multiple object local and armatures in pose still works as before.
  • Alt SPACE (to change the orientation) works during transform
Alt-space popup orientation menu
  • New Transform orientation: View, using the view axis.
  •  MMB Image:Template-MMB.png uses global axis, Ctrl MMB Image:Template-MMB.png uses user defined. (Alt MMB Image:Template-MMB.png cause conflict with the window manager on linux)
  • Normal orientation align to metaball/ metaelement's rotation in edit mode

[edit] To Sphere

  • Scale goes from 0 (original) to 1 (full sphere) instead of the contrary
  • Mouse control is done by moving pointer left / right on screen. Full right is 1, left is 0.
  • There's a 10% width padding on each border.
  • Works correctly with Shift modifier now.

[edit] Transform for UV window

Using new transform code to handle UV window. With the ground work done, Transform could more easily be extended to handle IPO window now.

[edit] Orbit Around Active

This fixes the active object in place when orbiting the view. Accessed via the pivot menu. (Note: When you shift select multiple objects the last selection is the active object)

Around active view orbiting

Choppy 15fps demo can be seen there: http://www.elysiun.com/~theeth/bf/around_active.html

[edit] Mirror Clipping

Mirror Modifier now has option "Do Clipping", which prevents vertices during Transform to go through the mirror. Note that it is *only* during transform, and ESC restores the non-clipped positions of vertices.

It works with multiple mirror modifiers and takes into accound elements already on the seam properly. Use mirror tolerance as limit for the clipping.

Using smooth on a mesh with a mirror modifier and the clipping option now preserves verts on the plane(s) of symmetry (i.e., those verts are smoothed, then projected back to the plane(s) of symmetry).

[edit] Write Protection for transform values

You now can set, in N Transform Properties Panel, per XYZ rot/loc/size, a protection for Transform tools to not change these values anymore. This now works for Objects or for Bones in PoseMode.

Usage is especially for character animation, to give Bones in a Pose defaults for rotation axes, so you don't have to worry about the correct limitations (or setup complex IK limits). Of course, this feature doesn't influence the animation system.

As an extra also the Transform Widgets then draw less handles. Note this is based on the actual locked value, and depends still on Manipulator orientation whether it can be used really.

Implementation warning: I had to remove the 'return' in the middle of the editobject.c compatible_eul() call. It now makes nice compatible eulers when they're simple (single axis rotations). Unfortunately there was no note in the code why it was ever removed...

[edit] Misc

GetBlenderCursor was prototyped but never defined. I filled it in, might be useful at one point (and for some uncommited evil Py code of mine).

Tweak mode can be enabled if compiling from source - if enabled,  RMB Image:Template-RMB.png click drag to select and transform (grab). Release to confirm. (Cancel with esc). The difference with before is that it is a single motion, you don't have to click at the end of transform, you can just release the mouse button.


[edit] 2.46 Release

theeth

skeletor

Still nothing to see here <shifty eyes>

This fixes up angle based subdivisions, adds embedding post processing methods (before, only average was there, added smooth and sharpen).

More parameters are controllable through the UI.

theeth

Reset GL lights are reloading defaults with Ctrl-X.

GL Lights defaults are read back from the file, they just weren't applied until the next recalc call.


[edit] Skeletor

Merge from Harmonic Skeleton branch

This code adds a basic and simple skeleton generator.

Examples and links are in the wiki, docs will come eventually: http://wiki.blender.org/index.php/User:Theeth/skeletor

In a nutshell, select a vertex at the top of the head and press "Generate Skeleton". UI Panel is in the Editing buttons in Edit Mode, tooltips and semi-useful.

[edit] Transform: Warp

Adding special hotkey (MMB) to reverse the direction of the warp.

Normal input is 0..360 mapped to the horizontal position of the mouse on the 3D view (the 3D view becomes a sort of giant horizontal slider), pressing MMB reverses the value to 0..-360 and back if you press it again.

I've used MMB mostly because it's unused in Warp, easily accessible and already used to switches mode for Shear (shear x/y).

Indirectly suggested by a user question on ba.

[edit] Transform Snap

Snapping for object mode

Changes: - Transform snap now working in object mode and not just mesh edit mode - Shift-Tab can be used to toggle snap on/off inside transform too (no more Esc,toggle,restart) - Object mode snap: Closest uses the bounding box corners of all selected objects, Median uses object center and Center uses transform center (same as edit mode). - Object mode snap: all visible meshes can be used to get the snapping point (unlike edit mode snap which is limited to selected mesh: this might be adjusted to make edit mode snap use all visible too).

To Do: - Add "Active" snap target method: use active object (or mesh element) as snap target - Add snapping capabilities to Scale - (Maybe) Add "Near pointer" snap target method: use selected element that is closest to mouse pointer as snap target. Active could probably accomplish that already in a less confusing manner, so I might skip this.

[edit] Transform Snap

Snapping Mode: Active

With this mode, the active element (at this time, object or vertice) is used as snapping target. If there is no active element in the selection, it reverts back to median mode.


Edit Mode snapping, other meshes no longer have to be selected to act as snapping point.

[edit] Mirror Tool

Making the mirror tool axis selection interactive instead of using a popmenu.

Mirror is now just a constant -1 scaling transform, which enables you to choose the mirror axis through hotkeys (x,y,z) and with MMB. It also means it's easier to select the correct axis if you're not sure which is which and gives access to all the orientation supported in transform (including custom user orientations).

Mesh and Object header menus still have the individual axis as options but have an added "Interactive Mirror" which just enters transform and lets user pick the axis there. Ctrl-M enters "Interactive Mirror" too.

In a nutshell, this changes adds more possible mirroring axis and unifies the mirror axis selection process with transform constraint axis selection.

[edit] Snap Menu

New Cursor-> Active option

Useful on Edit Mesh too!

[edit] Custom Transform Orientation

Adding the possibility to use 2 or 3 vertice to define an edge or face-like orientation. Adding the possibility to use 2 connected edges to define a face-like orientation.

[edit] Transform Snap

Snapping for Resize First draft, there might be some things to iron out.

[edit] Manipulator

Numinput working with the manipulator.

Someone suggested that on ba and it doesn't really hurt anyone/anything.


[edit] Custom Transform Orientation

Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -> Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.

If you plan on using only a single custom orientation and don't really need a list, I suggest you use the hotkey as it adds and selects at the same time.

Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).

Adding from an object, the orientation is a normalized version of the object's orientation. Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest. (More logical orientations can be suggested).

I plan to add: 2 vertice (connected or not) => edge orientation , 3 vertice = face orientation

Differences from the patch: - orientations no longer link back to the object they came from, everything is copy on creation. - orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)