Commit Graph

4322 Commits

Author SHA1 Message Date
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
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
Ken Hughes
6418c07905 - Bugfix #3127: gives Python ability to do "reload()" on Blender Text scripts
(not really a bug, just adding a missing capability)
2005-10-14 17:26:57 +00:00
Ken Hughes
0bafc02ecc - perform typechecking before calling EXPP_check_sequence_consistency
- change experimental methods for Mesh Tools "Subdivide" and "Smooth" to
  object methods.  if compiled, you can use mesh.subdivide() and mesh.smooth()
2005-10-13 20:47:15 +00:00
Ton Roosendaal
88f6295dc6 Two very easy crash fixes, one more proper pointer check, and a check
for a division by zero. Sorry... but i can't stand such known issues to be
in an official build. :)
2005-10-12 20:36:11 +00:00
Ken Hughes
3c568fd3bb - swapped MFace.flag and MFace.mode code; they were reversed (thanks, Cam)
- fixed bug in MFace_getFlags(): was accessing wrong field
2005-10-11 23:18:53 +00:00
Ton Roosendaal
d85bbbdf20 Whoa! I get what the derivedmesh is about! :P
Fixed bugreport on crashing vertex duplicators in editmode. Apparently it
was not coded with new mesh/modifier support. And now it does, quite fun!

One day picture for quick people:
http://www.blender.org/bf/rt.jpg

Daniel; could you check the commit diff below?
2005-10-11 22:10:17 +00:00
Ton Roosendaal
7e09c71c8b Orange bugreport; Only Shadow lamp crashed on rendering preview.
Bug caused due to fix a couple of weeks ago for this kind of lamp type...
2005-10-11 21:10:49 +00:00
Ton Roosendaal
4bb748d972 Bugfix #3163
Materials; using "Stencil" option, didn't work properly for multiply, and
other related filters. This is a very old issue, but now I found the good
way to fix it! :)
2005-10-11 20:47:45 +00:00
Ton Roosendaal
7a45609dc2 Almost-sure-fix for crashes after joining meshes or curves. Was caused by
not updating depsgraph, and still evaluating it.
2005-10-11 19:54:15 +00:00
Ton Roosendaal
63e02e0436 Found a crasher in editing text; load file with text, enter editmode for
it and reload. I could fix the crash quickly, but it still gives not freed
memory errors.

More important; this code is VERY BAD! Not sure who added all this *goto*
stuff, but it's not acceptable code that way... (kernel, font.c)

The hacks in editfont.c are very bad too. I really hope Alexander and/or
Mika will clean up before we officially release!
2005-10-11 19:09:27 +00:00
Willian Padovani Germano
5c31e9f2b5 Scripts updated:
- Discombobulator by Evan R and DirectX8 Exporter by Ben Omari.

BPython:
- Crashed Blender while testing discombobulator: obj.setMaterials() was not checking if the passed obj had valid obj->data. If the object had been created and not linked yet to a mesh, a crash would happen when trying to sync ob and me material lists. Now an error is returned. Also made obj.setMaterials accept an empty list, since obj.getMaterials can return that.

Thanks to the script authors for the updated versions and special thanks to Tom (LetterRip) for collecting info about updated and new scripts, sending me updates I had missed, etc.
2005-10-11 19:05:56 +00:00
Ton Roosendaal
1f0b9b3167 Bugfix #3170
Drawing axes in Armature editmode, draw type 'envelope' didnt work.
2005-10-11 16:57:55 +00:00
Ton Roosendaal
68924061ce Another fix for the heuristic code to prevent adding overlapping faces...
(report #3167). Now hope I covered all! :)
2005-10-11 16:49:57 +00:00
Ken Hughes
3035625992 - force setResolu() to update all NURBS belonging to a curve 2005-10-11 15:51:27 +00:00
Ton Roosendaal
432f51647d Bugfix #3164
Very rare; a bugreport with a fix patch! Coolness, thanks Bill Currie!
(Segfault due to using un-initialized displaylist in Boolean code)
2005-10-11 15:27:28 +00:00
Stephen Swaney
cf620b95d5 Updates and corrections to the BPy doc. Patch #2975
A large chunk of documentation goodness from Campbell Barton (ideasman).
Thanks!

Note that any mispellings, errors, or inconsistencies are due to
my ham-fisted editing.
2005-10-11 15:11:39 +00:00
Ken Hughes
a84a75cfc3 -Bugfix #3174: incorrectly counting number of face vertices 2005-10-11 14:35:43 +00:00
Ton Roosendaal
bcbaffc8c2 Look, in one commit!
- test build alpha splash
- version update to 239 in code
- release names are 2.40-alpha1

Note about release names; this is really an alpha still, not a release
candidate, so cannot call it 2.40-pre either.
Naming conventions is a discussion still... hope this works as a compromise
for now.
2005-10-11 14:04:57 +00:00
Ken Hughes
0ff2691c5d - Fix compiler errors under MSVC free toolkit (thanks lguillaume) 2005-10-11 13:36:07 +00:00
Ken Hughes
5380db502e - added Mesh.MVert(); can now create 'thick' vertices which don't wrap mesh
- implemented slice operations (get/set) for vertex list; allows script
  writers to manipulate lists of vertices (using 'thick' vertices)
- fixed problem in mesh.faces.extend() which allowed the creation of
  "Eeekadoodle" faces
- added mesh.update() method; (possibly) temporary fix to allow updating DAG
2005-10-11 04:09:08 +00:00
Willian Padovani Germano
b970eadedf Scripts:
- updating some bundled scripts, thanks to authors Jean-Michel Soler, Campbell Barton and Anthony D'Agostino.

BPython:
- removing wrong fix from BGL.c's glDrawPixels.

note: applied guitargeek's setName patch to Blender.Key, but saw that he updated it with more functionality and assigned to stivs, so I won't commit this old version.
2005-10-11 02:32:58 +00:00
Ton Roosendaal
93a4f6a876 Depsgraph now adds all NLA strip driver relations. This makes the demo file
on the orange.blender.org blog (controller2.blend) work with the jaw driver
2005-10-10 21:36:37 +00:00