Commit Graph

5069 Commits

Author SHA1 Message Date
Chris Want
e78e8976ff Made it so that number of editmode unsteps can successfully be set to zero. 2005-10-24 20:11:16 +00:00
Ton Roosendaal
0482f325b5 Bugfix #3238
ALT+C on mesh without modifier crashed.
2005-10-24 20:03:53 +00:00
Ton Roosendaal
066b0b1c7d Bugfix #3210
Included a patch by Pablo Marrol! selecting with ALT+CTRL combos
didnt check if there was actually a Mesh in editmode.
2005-10-24 19:22:04 +00:00
Ton Roosendaal
050dcad59c Bugix #3200
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).
2005-10-24 19:13:15 +00:00
Johnny Matthews
a021181b5b Fix for Bug #3217
Just needed to mark a few more edges.
2005-10-24 18:17:35 +00:00
Matt Ebb
df84b87fd0 The handy Shift Space for maximise a window space
wasn't being too handy in the text editor, so I've disabled
it here now.
2005-10-24 12:53:24 +00:00
Ton Roosendaal
6181a5ad41 Bugfix (based on user mailing me): In editmode, "remove doubles" crashes
when it uses subsurf display. Was missing a DAG update.
2005-10-24 09:00:33 +00:00
Ton Roosendaal
ec58f413b1 Autohandles in Ipo Window still could overshoot. Added a new clamping to
ensure the handles never result in a curve that goes beyond the neighbour
control points.

http://www.blender.org/cms/Animation_Curve_Handle.717.0.html
2005-10-23 21:36:24 +00:00
Martin Poirier
e02336653d Fixed backwardstransform.blend bug from orange dudes.
It was literally two lines of code.

This probably fixes a lot of the "constraining transform goes backward" problems.
Was a dumb oversight on my part.
2005-10-23 21:34:20 +00:00
Ton Roosendaal
847a584744 Bugfix: select Vertex Group in Outliner now updates 3d view properly. 2005-10-23 19:27:45 +00:00
Ton Roosendaal
20b23e3b5e The ctrl+click extrude now calculates a rotation, so you can do wild quick
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.
2005-10-23 19:16:37 +00:00
Erwin Coumans
745fc2f9d0 updated SConstruct and Makefile so that if you compile the gameengine, is always enables bullet, independent of sumo/ode.
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!
2005-10-23 17:55:19 +00:00
Ton Roosendaal
6ce7d18371 Removed DAG update for armature after inserting keys in pose mode.
That caused un-keyed positions to flip back.
2005-10-23 16:18:42 +00:00
Ton Roosendaal
d004754d6b One Constraint function missed the new MINMAX (floor) type, caused the
last commit (add constraint menu) to fail on adding floor constraints.
2005-10-23 16:13:04 +00:00
Ton Roosendaal
d4f47002b8 New: Hotkey/menu access in 3D window to add constraints. Works in PoseMode
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...
2005-10-23 12:18:32 +00:00
Ton Roosendaal
84f6642437 Another useful tool for efficient usage of WeightPaint:
Press SHIFT+LMB, and it shows a menu with all Vertex Groups the vertices of
the indicated face has, also allowing selection of Groups.
2005-10-23 11:03:51 +00:00
Ton Roosendaal
de655553ab New: Option to show the paths of Bones over time.
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.
2005-10-23 10:08:19 +00:00
Nathan Letwory
12ab0f64f4 fixing zero-size array
(source\blender\src\editmesh_add.c(122) : error C2466: cannot allocate an array of constant size 0
warning:: ISO C forbids zero-size array `mval')
2005-10-23 09:11:48 +00:00
Jens Ole Wund
2bd1b4b773 fixing most of #3096
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
2005-10-22 22:50:09 +00:00
Ton Roosendaal
ac3e3eceba Long on the wishlist!
- 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.
2005-10-22 19:34:31 +00:00
Ton Roosendaal
9e19739944 Various stuff in one commit;
- 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.
2005-10-22 18:47:38 +00:00
Ton Roosendaal
fc169264cd Autokey option crashed on Transform... was still using defines from before
the object-action-ipo-nla recode 2 weeks ago.
2005-10-22 15:03:29 +00:00
Ton Roosendaal
5e8131309e New: X-axis mirror weightpainting.
- 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)
2005-10-22 14:05:25 +00:00
Jens Ole Wund
ed7fb486a1 -bug fixed
-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'
2005-10-21 22:58:12 +00:00
Chris Want
3aa95760bc A tweak for text follow curve -- the old comment in the code says
"why not 0.5?", so I am setting it to 0.5 since it looks way
better that way (I think somebody should really revisit this code
at some point).
2005-10-21 20:30:09 +00:00
Ken Hughes
233ee5adb7 - documentation updates:
-- add Key module to index page
  -- include cross references for Object.colbits in material descriptions
     within Object, NMesh and Mesh modules
2005-10-21 17:20:54 +00:00
Johnny Matthews
a5c32e1353 1. Moved Edgeloop Delete to Delete Menu out of Edge Specials
2. Edgeloop Delete will pop the undo stack if it fails
3. Small Tweak on CTRL-Subdivide selection
2005-10-21 14:51:17 +00:00
Ken Hughes
9035f0cd25 - Bugfix #3227: throw exception in NMesh if face data doesn't contain 3 or
4 vertices
2005-10-21 13:52:44 +00:00
Brecht Van Lommel
b3053c7426 Bugfix: #3189, #3208, UV Mirror (MKEY) didn't work. 2005-10-20 23:36:24 +00:00
Brecht Van Lommel
70024f7f62 Bugfix: #3149, Parent rotation influences DoF / rotation limits
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.
2005-10-20 23:07:43 +00:00
Ton Roosendaal
446a007a43 Crash fix (now discovered myself!). On sampling wpaint color (ctrl+lmb),
when no vertex groups exist, it was referencing illegal memory.
2005-10-20 21:37:57 +00:00
Ton Roosendaal
00496cd366 Another memory error found, when deleting bones in editmode, it didn't
correctly free constraints.

To ensure the UI not to show any deleted data, after leaving editmode it
now also redraws nla, action and ipo.
2005-10-20 21:02:04 +00:00
Ton Roosendaal
968b3e7101 Memory error 'end corrupt' reports for deform groups... can't find it yet,
but this code ensures the strcpy() is using BLI_strncpy now, and it uses
more clear names for the mallocs.
2005-10-20 20:38:08 +00:00
Ton Roosendaal
c677ffdebb Bugfix; using weightpaint changed the default lighting setup (specular). 2005-10-20 19:27:47 +00:00
Ton Roosendaal
197fdd2e36 Curve and Lattice deform Modifiers now accept optional Vertex Group name
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.
2005-10-20 18:52:29 +00:00
Jean-Luc Peurière
acf2fda50e fix for Game engine bug #1961 furnished by Josh Nimoy.
Thanks.

Although the fix is not perfect (lacks screen requisition safeguards),
it does indeed allow to run game engine fullscreen
2005-10-20 18:05:06 +00:00
Ton Roosendaal
9409eaf92e Another option for more Armature deform control;
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
2005-10-20 16:31:46 +00:00
Ken Hughes
1f1eb8393d - fix bug calculating number of edges to create in mesh.edges.extend()
(thanks to guitargeek for catching)
2005-10-20 15:10:43 +00:00
Ton Roosendaal
cfab1a9e6a - Fix for Wkey menu in WeightPaint modus; it didn't work when the armature
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.
2005-10-20 14:58:46 +00:00
Ton Roosendaal
7a7dadc107 New option; "Lock Time to Other Windows" for Ipo, Action, NLA and Time
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.
2005-10-20 14:41:10 +00:00
Matt Ebb
89597ed362 Adding some simple but very convenient selection
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.
2005-10-20 10:31:02 +00:00
Ton Roosendaal
dcbba92f28 UV window, without an image, now draws a nice zoom-resistant grid.
It uses the themecolor for backdrop.

The units are in powers of 4, with a minimum grid cell size of 16 pixels.
(Another Orange request!)
2005-10-20 10:03:27 +00:00
Ton Roosendaal
931a3bf8bf Uninitialized variable, caused OSX to work, but not the other OS's!
(for Mesh rip)
2005-10-20 08:15:02 +00:00
Ton Roosendaal
dc611a7575 New Mesh tool: "Rip".
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!
2005-10-20 07:47:10 +00:00
Ken Hughes
7d325f1ed4 - New additions to Mesh module
- 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?)
2005-10-19 21:24:18 +00:00
Ton Roosendaal
b83f3183c0 Overflow was possible for vertex index numbers in deformgroups, causing
the table with bones in deform code not to work. Added a check for amount
of Bones. (Orange bug!)
2005-10-19 11:15:36 +00:00
Ton Roosendaal
4d2c0d3ef1 Three fixes in 1 commit; (reports 3183 3201 3203)
- 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
2005-10-17 19:03:16 +00:00
Ton Roosendaal
5991b078c9 This fixes ALT+A playback in 3d windows, with one or more windows having
unlocked (not scene) layers. Depgraph pickyness.
2005-10-17 16:57:12 +00:00
Ken Hughes
5166a1ee92 - Bugfix #3202: ipo.addCurve() created curve but didn't add to the Ipo
(thanks, lguillaume).  I think we need much more testing of the Ipo
  module following Ton's refactoring.
2005-10-17 03:48:02 +00:00
Ken Hughes
0ea46ec202 - Bugfix #3194: calling curve.appendNurb() with any number of float param
other than 4 or 5 caused segfault (thanks for catching, Cam)
2005-10-16 16:39:11 +00:00