DAG_object_flush_update() always used scene layers, causing updates to go
wrong with 3d windows with "Lock" off (allowing local layer and camera).
This fixes a larger amount of potential issues.
Also: fixed menu title for adding IK constraint to Bone (CTRL+I).
modeling!
It detects the rotation based on the average of all half-selected edges and
the extrude vector. The first rotation might go wrong on extruding parts
of very irregular shapes, but in general it does it fine. Of course, single
vertex clicking or entire shape clicking doesn't rotate.
So for the 2.4 release, both bullet AND sumo will be enabled. You can choose in the world buttons which physics engine is active for a scene.
sorry if this breaks your builds!
as well as for Objects. Hotkey: CTRL+ALT+C (bit clumsy I know, but I like
to use the Ckey).
Constraints are added to the active Object or Bone.
Based on selection context, the menu has three versions:
Pose Mode:
- if another bone is selected, bone becomes target
- else if another Object is selected, Object becomes target
- else it adds a new Empty as target
Object Mode
- if another Object is selected: Object becomes target
- else it adds a new Empty as target
Same works this way now for CTRL+I, "Add IK".
To be solved: ALT+C in PoseMode is "Clear Constraints", but in Object Mode
it does "Convert" still...
In PoseMode, press Wkey or use the Pose pulldown menu. It calculates the
positions of all selected Bone end points, over the time as indicated with
the Scene start/end frame. This then is drawn as a path, with little black
dots on every frame, and a white dot on every 10 frames.
Paths are not saved in files, and not calculated automatic yet on changes.
To make this relative fast, but also reliable, I had to add a new method
in the Dependency graph system, to find exactly (and only) these parents
of an Object that influence its position. This is needed because the path
should show the actual global coordinates of the entire animation system.
by 'eating' contol messages
still there is an issue on how transparent/opaque floating panels should be for messages
... and i am wondering if that should move to 'regular' buttons
- CTRL+click in EditMesh now extrudes selection. If no selection, it adds
a new vertex. Try it on a full selected monkey. Fun! :)
- CTRL+click now also adds the new stuff aligned with the view, as if you
had translated it to the mouse cursor. Only new vertices are added with
respect to 3D cursor location.
- Added (BKE_utildefines.h) POINTER_TO_INT(poin) and INT_TO_POINTER(int)
defines, to help fixing issues with switch to 64 bits systems. This
assumes that a) not more than 16GB mem is used and b) that address
space is below the 1<<35 value. The latter has to be confirmed, but it
seems to conform the current 64 bits generation of OSs (for mallocs).
Needless to say; use long if you want to store pointers! This is for
temporal fixing.
- Added editmesh version for mesh-octree lookups, not used yet.
- Fix: ESC on armature posemode restored the actions, should not happen
- Fix: If in NLA an action was 0 frame long, it caused draw error
- Fix: Click on name in Action Window now activates Bones
- Fix: "Snap to" options in Armature editmode now use X-axis mirror edit.
- Set the button in Paint Panel, Edit buttons context
- It assumes the mesh to be near-perfectly mirrored. Current threshold is
set to 0.0001 (maximum difference allowed).
In order to evaluate proper mirroring, a new option will be added in
Mesh editmode later.
- When the flipped group doesn't exist yet, it creates the group
- Of course this doesn't work for mirror modifier!
New: Select/activate flipped bone or vertex group
- Press SHIFT+F in PoseMode or WeightPaint mode to get the flipped bone.
Is especially to see while painting if the mirror copying works OK.
New: "Apply Envelope to VertexGroup" uses X-mirror option too.
Todo; check on mirror vertex painting, and mirror Mesh editmode....
The implementation is based on a 8x8x8 Octree, where vertex locations are
stored. Vertices on the threshold boundary of an Octree node are filled in
the neighbour nodes as well, ensuring that the lookup works with threshold.
The current size of the Octree gives good speedup, even for 128k vertices
it only needs 256 lookup cycles per checked vertex.
Same code could be used for the bevel tool for example.
src/meshtools.c:
int mesh_octree_table(Object *ob, float *co, char mode)
- mode 's' or 'e' is "start octree" or "end octree"
- mode 'u' is "use", it then returns an index nr of the found vertex.
(return -1 if not found)
-symtom: looks like rigged SB mesh follows weird goal settings
-cause: arbitary initialisation of 'edge spring rest length' ... must have happend by introducing 'modifyer stacK'
The rotation of the parent of the root in an IK chain was included
in the segment's basis, leading to the DoF / rotation limits to be
computed on the wrong basis.
to finetune deform further as well.
Note that curve deform requires object buttons 'track' and 'up' axes set
properly. Curve deform can twist/flip a lot, making Vertex Group based
deform hard to set up.
The "Use VGroup" or "Use Envelope" options now are in Modifier Panel
for Armature deform.
If Modifiers are in use, they override the Armature settings for it.
(Cannot get rid of the Armature panel options yet, since Blender still
allows parenting to be deforming too, which is displayed as a Virtual
modifier now)
This now allows to - for example - make a Envelope deform on a Lattice,
and have same Armature use vertexgroups on Mesh.
Next; vertexgroup option for Lattice & Curve deform
is a modifier only (Armature not parented to Mesh).
Note; if multiple Modifier/Armatures work, it uses only the first still.
- Armature option 'draw axes' now scales axes to 0.25 of bone length.
windows. If set (in View pulldown), it synchronizes the horizontal scale of
the current window with the other Windows with this option set. That way
you always have these windows showing an identical part of the time you
work on.
Also added because Action Window now displays its content relative to
NLA strips.
functionality for the UV editor:
* A "Select->Pinned UVs" command (Shift P) that
selects all the visible pinned UVs
* A "Select->Border Select Pinned" tool (Shift B) that
works just like the normal border select tool, but only acts on pinned UVs
This is really useful when using LSCM, I only want to
touch the pinned UVs and then recalculate.
http://www.blender3d.org/cms/Mesh_Ripping.712.0.html
This tool allows to insert gaps/seams in a Mesh, based on the selection
(1 vertex or a row of edges) and the position of the mouse (to indicate
the part that gets grabbed). Shortcut: Vkey.
Special Orange request!
- new methods from NMesh (transform, getFromObject, findEdges)
- new methods for deleting groups of verts, edges and faces
- new methods for accessing mesh editing tools: fill, flipNormals,
recalcNormals, remDoubles, smooth, subdivide, toSphere
- Added PVertType to Types module (not my favorite name; any suggestions?)
- added redraw of Oops/Outliner on selecting in Databrowse
- Ipo Record in ipo window had copy paste error, causing in potential mem
errors
- Ipo Record now creates a new Ipo again