|Vector definition behaviour (using vector rotate as an example)|
|Vectors (updated for 0.98.17)|
|Basic vector rotate
For this first example only I'll describe some of the vector definition behaviour during feature selection..
Using verts to define vectors
1). Select the geometry to be rotated - here it's 4 adjacent polys - but it can be verts, faces, edges or even whole (groups of) objects. The selected geometry does not have to be all in one place. In the example used here, there could be other faces selected on the opposite side of the sphere, as well as those faces shown in the pics. (With a vector rotate they will rotate around one (specified) axis - however, if a 'standard' rotate is used, each separate area will rotate around its own local origin)
2). RMB for Face menu -> select Face | Rotate (Use RMB option as want to define axis). The first option (here) shows the vector obtained from clicking (LMB) on a single vert, a vector axis along the vert's normal.
3). Adding a second vert (LMB) to the first makes the vector align to the edge now defined by the two end verts of that edge. Note that the end of the vector (its origin) starts halfway along the edge terminated by the two chosen verts. (Compare this arrangement with 5)
4). Adding a third vert changes the vector direction again. This time the vector is aligned to the normal of the plane defined by the 3 chosen verts. The origin lies on this plane and passes through the geometric centre of the (imaginary) triangle defined by the 3 verts.
Using edges to define vectors
5). Initially selecting an edge immediately aligns the vector to that edge - the vector effectively become an extention of the edge, with all of the 3D properties of that edge. Again note that the vector's origin is halfway along the edge. (This origin has significance for certain operations.)
6). Adding a second edge aligns the vector axis to the mid-points of the edges selected. This vector is identical to one that would be created by selecting verts at these mid-point locations (if they existed) The edges in this mode need not be adjacent to each other - the vector will bisect both of them, wherever they are on the model.
|Basic vector rotate...continued
7). No vector definition will take place as you add more edges - until you have described a complete (closed) loop of some sort. The vector will then return and act along the edgeloop's averaged normal
8). Another example of a vector defined by an edgeloop (complete ring of edges) Since defining a vector in this way effectively gives the user access to a virtual (mid?) point - which often lies inside geometry - it can be quite useful.(Imagine a loop round an arm / leg that needs to be moved along an axis similar to this?)
Using faces to define vectors
9). Selecting a single face defines a vector acting along the normal of that face and passing thro' the selection centre of the face - origin lies on the face plane.
10). Adding a second face modifies the vector axis to act through the selection centres of the two chosen faces. (The same as if you'd used imaginary verts placed at these 2 locations.
11). Adding further faces will produce a vector aligned to the averaged normal for the total area, provided all faces share at least one edge with their neighbour and that there are no unselected faces in the 'middle' of the selected area.
12). Shows the result of a vector rotate op around an axis described by selecting the mid-point vert of the selected geometry as in (2) and the small inset pic.(Note that none of the surrounding geometry (except immediate connecting edges) is affected. Compare this with the results obtained when doing a magnet rotate - see magnet page)
Selection mode may be changed during the vector definition procedure - if you start with verts (say) but decide that you cannot define the required axis using them, deselect them all (or change mode and remove unwanted items) and use faces / edges.
On some (rare) occasions, it's been necessary to modify the model's geometry specifically for the purpose of defining a vector (to ensure that the 'origin' is in the correct position). An example of this is if you are doing a scale op. from a particular point and the geometry cannot provide the correct point unless you (temporarily) add a feature.
It might be an idea to make this vector a 'default vector' and then undo the extra geometry. The 'default vector' stays defined during this 'undo' phase.
This is also true with the 'last vector' situation, but if you define another vector after the (complex) one, the 'last vector' option will no longer be viable, as the previous 'last vector' has been overwritten by the more recent one.
It is highly recommended that you experiment with the above to get a 'feel' for what's happening - so's when you need to use same in earnest, you'll be completely familiar with their behaviour.
Geometry features, useful in the vector definition procedure can also be selected and stored, using Select | Store Selection. Using Select | Recall Selection at the appropriate time will then allow their incorporation.
This workflow works best (imo) when assigned to a hotkey, since breaking off during the vector definition procedure to invoke Selection | Recall via the menu is a more 'clunky' procedure - imo.
Using selection groups allows many selections to be stored for various reasons - but recall of selections stored will only work if the specific selections are assigned to individual hotkeys.
|NB Vector operations can only be used if Advanced Menus are activated (Edit | Advanced prefs)
General comments about vectors.
Before discussing how vectors work in Wings, maybe a few general comments about vectors themselves - what they are, how are they defined and why are they useful here?
For people with an engineering type background, the term vector has a particular and specific meaning - a quantity that has both magnitude (strength) and direction.
I rationalise the use (to myself) of the term 'vector' within wings by thinking that the user defined axis provides the 'direction' aspect, and the extent of the transformation along or associated with that axis is the 'magnitude' aspect - but others will, no doubt have their own views on the matter.
Defining a vector in Wings is (generally) fairly straightforward, once the basics have been grasped - main one being, I suppose, that they are accessed by using either MMB or RMB when choosing the appropriate command. (Please read information line for options)
The RMB option is for situations when the user is happy to accept the default (vector) origin that's associated with the geometry used to define that vector - therefore, there is no facility to translate a defined vector to act thro' another point / origin - essentially a 'single step' operation.
The MMB option provides the 'full works' - ie, the facility to define the required vector - then to continue and define a (new) point through which the vector will pass. The vector angle / directin details will not be changed, of course - the transposed vector will be parallel to the original one, but just acting thro' a different point - this is therefore a 'two step' operation.
(Choosing the command's LMB option - std.axes - will also allow you to transfer the origin point - check info line for details)
Wings now supports using highlights as temporary selections (see Edit | Advanced menus). With this option enabled, user doesn't actually have to select (with a LMB 'click') a single element of geom. - just hover / highlight element (Still have to LMB 'click' on multi element selections). This can save time (and fingers) if doing lots of ops (whether vector or not) on single elements of geom. Works for v/e/f. (Commands assigned to hotkeys can be used with temporary selections - so workflow becomes - highlight (single) element, press hotkey, drag / complete op.)
Once within a vector setup sequence, using RMB will select/confirm/continue (or execute) the stage in question - all in one go.
This is extremely useful (imo) in general, but especially so in situations when a vector can be defined by clicking on single elements of geometry. (It might take some getting used to - but it's worth it)
If a vector cannot be defined by a single element, then use LMB for selecting all (elements) except for the last one - and then use RMB on the last one. This action will conclude that part of the vector definition sequence - and move on to the next - or execute the command if it was the final part of the sequence.
Using LMB (to choose elements) all the way though (and confirming with RMB at end) has one big advantage - it displays the vector arrow in its final configuration - essential for screen grabs (get brief flash otherwise) and also very useful if you're taking a 'suck it and see' approach to defining a vector. Ie - messing around until you get something you like the look of.
NB If, after getting the vector you want, you press RMB (to continue etc) - and inadvertantly select another element when doing so, you'll add that element to the selection - and end up with an incorrect and unwanted vector.
To avoid this - either RMB on the background (if visible) or on an already selected element - whether you can see the background or not.
The 'line of action' of a vector tends to fit into one of the following categories:
The line joining 2 verts.
The line defined by clicking on a single edge.
Along the normal of a single face - or the averaged normal for a group of faces.
Perpendicular to any plane described by 3 verts.
Perpendicular to the plane described by a complete edgeloop
Perpendicular to a defined edge - press 2 (see info top left of screen)
Certain configurations of selected elements - eg Incomplete (unjoined) edgeloops and multiple separate face selections will not produce a vector. (Top left info display will show details)
When defining a vector, a default origin (or anchor point) for it is automatically created by Wings, based on the geometry itself. This 'origin' lies at the base of the displayed arrow and has specific significance for many of Wings' functions, because they will be referenced to this point. It is well worth noting the relationship between this vector base (origin) and the selected geometry.
Fortunately, Wings also provides facilities (MMB option) for re-locating this origin (without changing other vector attributes) so that the final vector arrangement will be satisfactory on all counts.
Why are they useful? - how long's a piece of string?
Using vector ops allows the user to precisely define a manipulation / transformation axis that isn't aligned to the main XYZ axes within Wings. When building 'organic' type models then many axes won't be aligned to XYZ.
Even models that are aligned to the XYZ axes often require the basic commands to be modified before satisfactory results will be obtained. Eg It is useless selecting a door (in a house model) and invoking Rotate | Y (to open the door) without specifying the 'hinge' axis for that operation.
Rather than try to list a range of possible uses (and bore everyone) a better course of action (imo) is to checkout the examples and then experiment. The use (and power) of these ops should then become apparent
|Default Axis (with example of use)
A very useful facility that might get overlooked.
This provides the user with a (simple) way of defining and storing an axis (vector) for future use. (Scale, Move, Extrude, Rotate, Extract and Flatten all support default axis operations)
Once defined, not only does that vector stay as a 'default' one (until another is defined) but is also saved out with the Wings file, to be available for future use.
To define a default axis, invoke Tools | Default Axis and then select whatever geometry is needed. All vector selection methods as outlined earlier here are valid for this task.
When to define a vector as a default?
Upto you, of course, but whenever you find yourself repeating the same vector-based command and want a quicker workflow than that afforded by the usual definition procedure - is one logical scenario?
The above (aircraft) example is a 'real' example of a situation where defining (and using) a default axis was extremely useful.
As the model was to have a pivoting (fuselage) rear section, it was obvious that this vector rotate operation was going to be (very) frequently used during the build process.
After defining the appropriate pivot axis as a default axis, Object | Rotate -> Default Axis was also assigned to a hotkey. This action allowed me to rotate the tailplane at one keystroke and is an unavailable option for a 'standard' vector rotate.
Ideally with this model, several 'Default axes' would have been good, as various other elements were being altered (on a regular basis) - so Store | Selection also saw much use.
(Since originally writing this, 2 default commands have been added to the toolset - which would allow greater flexibility of choice :) ) A default axis can be used to define a default command - when a new default axis is defined and assigned to the second default command - the originally defined default command is not corrupted.
(I've found it useful, btw, to have 1 or 2 'spare' keys available for (temporary) assignment to project-specific tasks. Here, one of them happened to be the above rotate command, another time it'd be something quite different.
|Default Axis - definition and use.|