Commit Graph

3934 Commits

Author SHA1 Message Date
Daniel Dunbar
74623f33aa - get rid of unused object_deform_curve
- some tweaks to modifier UI thanks to Bart (aligning buttons)
2005-08-15 00:53:51 +00:00
Ton Roosendaal
bb377c72cd Lamp-halo & Ortho didn't render correct. Thanks Desoto! :) 2005-08-14 20:50:02 +00:00
Daniel Dunbar
15da1d13c7 - bug fix #2935, DAG update was not called on new boolean object 2005-08-14 19:44:43 +00:00
Ton Roosendaal
6784198d23 Bugfix #2943
Render bug.
Alpha low or zero, Ztransp, didnt render with lamp halos over...
Note it still doesnt work for ray-transp!
2005-08-14 19:26:58 +00:00
Ton Roosendaal
e0e6e2fe4a do_versions() for 2.37 was reading a library data pointer that wasn't set
yet. Crashed in windows...
Thanks Desoto for finding it!
2005-08-14 16:03:22 +00:00
Daniel Dunbar
8e70766a82 - forgot to remove a function prototype from header on static'ng 2005-08-14 12:54:57 +00:00
Daniel Dunbar
6880801aad - enable modifiers for curve/font/surf types... a little hacked in
but should work ok. Means new features! Wave effect for curve/font/surf
   and armature deform as well.
 - added undo_push calls for some modifier ops.
2005-08-14 12:17:34 +00:00
Ton Roosendaal
65576fe663 Patch provided by Adam (ajk48n). It reverses the turntable rotation when
you have the view 'upside down', resulting in correct feedback.
2005-08-14 11:15:36 +00:00
Ton Roosendaal
f47f8d9418 Patch provided by Campbell Barton; this makes the editmode Mesh CTRL+T
"convert to triangles" check for shortest diagonal to decide how the
triangles will be made.

Fun todo for another occasion; check on facenormals too...
2005-08-14 10:58:17 +00:00
Daniel Dunbar
524d3493f7 - cleaned up edge drawing a tad, there were issues with mesh's
with "loose" edges (edges without a face) and drawing in
   solid mode. they would either not draw, or draw with a nasty
   selection outline. Added a ME_LOOSEEDGE flag to mark such
   edges in displists/mesh and editmode sets it.
 - changed DerivedMesh drawEdges to take an argument whether
   it should draw loose edges or not
2005-08-14 10:35:58 +00:00
Ton Roosendaal
e173de2462 Patch provided by Matt Ebb, cut sequence strips (patch tracker).
There were a couple of issues with the implementation:

- there was no proper test if selected strips would be cut or not
- cutting meta strips could go very wrong... for example when the cut
  of meta was in an internal gap. With meta's being recursive, and too
  complex, I've disabled Meta-cutting
- added an OK menu for hotkey K
- added warnings when no cut was done

This is the first time in 6 years I do work in sequencer... man, this has
grown into a messy bizz! Like sequence variables... using names like:
start, startdisp, startstill, startoffs... totally confusing here. Could
use giant cleanup! Implementation was weak from scratch though, Mea Culpa!
2005-08-14 10:31:14 +00:00
Daniel Dunbar
0721727887 - added hook "cursor center" feature (sets hook center to cursor position),
gives better control over falloff
 - added modifier UI access to hook "select" and "reassign" features
 - bug fix, unbroke path-tilt drawing
2005-08-14 07:02:51 +00:00
Daniel Dunbar
93aeb6b318 - added make_orco_curf, even does keys!
- removed {lattice,curve}_modifier functions
 - changed render code to use displist for curve rendering
   instead of making its own. required adding a bevelSplitFlag
   field to DispList. I also fixed the bevel face splitting
   which did not work correctly in many situations.
 - changed so all curve data creation happens in makeDispListCurveTypes,
   includes making bevel list and filling polys
 - changed render code to use displist for surface rendering
 - removed Curve.orco variable, built as needed now
 - removed stupid BLI_setScanFill* functions... why use a function
   argument when you can use a global and two functions! Why indeed.
   (this fixed crash when reloading a file with filled curves and
   toggling editmode)
 - bug fix, setting curve width!=1 disabled simple bevel for no
   apparent reason
 - cleaned up lots and lots of curve/displist code (fun example:
   "if(dl->type==DL_INDEX3 || dl->type==DL_INDEX3)"). Hmmm!
 - switched almost all lattice calls to go through lattice_deform_verts,
   only exception left is particles
 - added DBG_show_shared_render_faces function in render, just
   helps to visualize which verts are shared while testing (no
   user interface).
 - renamed some curve bevel buttons and rewrote tooltips to be
   more obvious
 - made CU_FAST work without dupfontbase hack

Also by the way I wrote down some notes on how curve code
works, nothing spiffy but it is at:

http://wiki.blender.org/bin/view.pl/Blenderdev/CurveNotes
2005-08-14 06:08:41 +00:00
Alexander Ewering
5f61dc89ba Add CTRL-Backspace to delete all text in textediting. 2005-08-13 20:44:57 +00:00
Ton Roosendaal
109950ada4 New; Wkey in Armature Editmode. Has option for flipping names too.
(And moved flip_name to armature kernel)
2005-08-13 19:41:45 +00:00
Ton Roosendaal
184e4fdaae Two armature fixes;
- PoseMode selection accidentally always selected first bone as well (on
  multiple clicks)
- Hinge Bone didn't have correct inverse matrix in transform, for local
  rotations.
2005-08-13 18:55:24 +00:00
Ton Roosendaal
e1584df90b Removed strcasestr() with version as found on web, opensolaris. It had a
bug though! :)
For people interested: both lines with tolower() had to be added...
2005-08-13 17:53:37 +00:00
Stephen Swaney
9e6ad3dffc bugfix #2931 crash if $HOME not set
unchecked pointer returned from BLI_gethome().
2005-08-13 17:20:46 +00:00
Daniel Dunbar
2fe1f9df2a - texcomesh used wrong texture space (should use the texcomesh object
space)
2005-08-13 16:39:22 +00:00
Ton Roosendaal
a473e6620d Bone naming fix.
- On duplicating bones in editmode, names with a dot in it (bone.L) lost
  the .L extension. Now it keeps it
- Recoded the 'flip name' routine from scratch, was a horrid construct!
  It works now as follows;

1) First it removes the number extension, if its there (like .001)
2) Then it checks for a separator (space, dot, minus, underscore) on either
the 2nd position (L_calfbone) or last-but-one (calfbone.R). If there's an
l, r, L or R it switches the letter.
3) If no switch done yet, it tries if a name starts or ends with "left" or
"right", case insensitive. It replaces this, disregarding separator.

Examples:

Lefthand    -> Righthand
L Hand.005  -> R Hand
hand.r      -> hand.l
right-l     -> right-r
pelvis LEFT -> pelvis RIGHT
2005-08-13 15:15:44 +00:00
Erwin Coumans
9537bfa121 now for the cigar... 2005-08-13 10:04:01 +00:00
Erwin Coumans
4d7089d19b these files missed the cvs commt yesterday, this should fix compilation problems 2005-08-13 08:05:48 +00:00
Daniel Dunbar
74dc0e191d - more nurbs fixes... as it turns out, rendering of cyclic UV didn't
really work at all. Fortunately no one actually *USES* nurbs so
   no one noticed. This is bug from NaN days (strubi, I am looking at
   you here) which I guess says a lot (or a little) about NURBS usage.
   And as usual, the correct code is shorter.
 - added do_version copy of ME_OPT_EDGES flag
2005-08-13 05:05:18 +00:00
Daniel Dunbar
7b1dcf4c42 - readded Subsurf "optimal" edge drawing/rendering
- added ME_EDGERENDER flag, barely changes things atm except makes
   sure plain meshes with FasterDraw/etc set still render all edges.
   The edge drawing system needs a bit of a revamping - it is a cool
   feature but could use several improvements:
     (1) The algorithm could be better in choosing the best edges to
         draw.
     (2) The drawflags should interact well with modifiers. It is wierd
         to have a large grid with a deformer that draws no edges because
         flags are only calculated based on base mesh.
     (3) Drawflags should not be destroyed by editmode. Better design
         would be a "Draw % of edges" button.

   Of course, could also be the feature is not worth it and we
   should just drop. Feel free to comment if you have an opinion.
2005-08-12 21:55:50 +00:00
Ton Roosendaal
0d35e38938 Very small size of arealights (0.001) could cause weird overflows/bands.
There was still one float component hanging around... saacos(). Made a
double version of it.

Reported by Shul. thnx!
2005-08-12 20:27:18 +00:00
Brecht Van Lommel
65aa88af11 Added the 4 new proportional editing modes also to the uv editor transform.
Eventually the uv editor should use the new transform code and get these
automatically, but until that's done this might fix bug #2920.
2005-08-12 15:33:06 +00:00
Daniel Dunbar
5afdfc6ac1 - remove some silly array copying code for nurb displist generation
- converted dl->flag to use consistent defines for cyclic U/V
2005-08-11 22:27:53 +00:00
Kent Mein
841ddb4680 A couple of small fixes...
I removed config.h code from the files that had them.
effect.c had nested /* so cleaned that up...

added a newline to vector.c to shut gcc up ;)
buttons_editing.c had a possible unintalized var (height) so I gave
it a default value.

removed an unused var i in interface_draw.c
removed an unused var mti in outliner.c

in BL_SkinDeformer.cpp
commented out a call to bDeformGroup->data which no longer exists so it
compiles again.

Kent
2005-08-11 16:39:51 +00:00
Brecht Van Lommel
2cb9c4db0c Bugfix, the lock button in the uv editor didn't work, the 3d view would
always redraw even if it was disabled (only on non-apple).
2005-08-11 13:08:08 +00:00
Daniel Dunbar
65c5eb6e09 - bug fix, add hook didn't respect modifier ordering constraints 2005-08-11 07:52:41 +00:00
Daniel Dunbar
0fba0e6b4b - update displistmesh_to_mesh to free existing mesh data (including
sticky, dvert, and keys if number of verts don't match)
 - changed modifier panel to not allow manual addition of hook or
   softbody modifiers
 - changed apply modifier to apply to existing mesh (fixes bug with
   materials) and to warn about loss of tface/mcol/keys/dvert/sticky
   for all modifier types
 - changed modifier UI to not display disclosure triangle for virtual
   modifiers
 - changed softbody ui to allow enable/disable
2005-08-11 07:11:57 +00:00
Daniel Dunbar
76d2f0da9e - couldn't help myself, got distracted working on something else and
wondered what these silly data pointers in MDeformVert were for.
   Turns out they aren't even need! Just taking up extra memory and
   space and confusing the armature deform algorithm. Naturally I
   had to clean things up. Sorry Ton.

   Deform weights are still stored in a pretty expensive and unnecessary
   way, probably use about twice as much memory as needed, and do
   way too many memory allocs.
 - moved armature_deform_verts into armature.c
 - some python code accessed the MDeformWeight data pointers, but
   did so in a completely wrong way, I am positive this code could
   never have worked (or maybe things changed during tons refactor),
   regardless it wouldn't work now... will test later.
2005-08-11 06:44:32 +00:00
Daniel Dunbar
8eca413964 - added recalc ob, recalc data options to ctrl-alt-shift-t timer 2005-08-11 05:56:48 +00:00
Daniel Dunbar
5c74f25c8a Two quick bugfixes, thanks slikdigit!
- armature modifier was not flagged to require original data (but it
   does)
 - add hook messed up the ModifierData initialization, stupid bug!
2005-08-11 05:45:47 +00:00
Daniel Dunbar
1fd6ce391b - bug fix, cage buttons weren't displayed correct with virtual modifiers 2005-08-11 03:37:50 +00:00
Daniel Dunbar
75bcb4cd98 - added modifiers_getVirtualModifierList, returns pointer to first modifier
but including "virtual" modifiers (for example, an object skel-parented
   to a lattice has a virtual first lattice modifier)
 - removed mesh_modifier(), all functionality has been incorporated into
   modifier stack (well, keys still don't exist as a modifier, but I am
   not sure if they should).
 - added interface option to convert a virtual modifier into a real modifier
 - added option to parent to lattice object or lattice with deform
 - bug fix, patch of hook indices patched all hooks (oops) not just ones
   for edited mesh

NOTE: Files saved with 2.38 that include an object parented to a lattice
will not load correctly, because it will look like the object is parented
only to the object (i.e. without deform). Can be simply fixed by reparenting
or adding a lattice modifier. Older files are handled automatically.
2005-08-11 03:31:33 +00:00
Daniel Dunbar
ac3ed0f92a - switch to using softbody modifier, controls enabling but does not have
variables, these are still in same place. enable button automatically
   makes/enables modifier.
 - changed hook to hook modifier conversion to happen on direct link,
   required to make sure we don't forget to free any memory for files
   saved with 2.38 that have hooks.
 - update modifier interface to enforce modifiers with the require-original-
   data flag to not move beyond deforming modifiers.
 - enforce only one softbody modifier allowed

NOTE: Once again, no modifier stack for lattice yet means softbody for
lattice does not work atm.
2005-08-11 02:23:52 +00:00
Brecht Van Lommel
2f32c8451c New "Mirror UVs" function in faceselect mode, to complement Rotate UVs.
It mirrors the UVs or Vertex Colors of individual faces (on the red edge
of the UV face).

Patch provided by Martin Poirier, thanks!
2005-08-11 00:00:24 +00:00
Daniel Dunbar
2b40f19c5b - bug fix, hook deform could crash because old files can have hook
indices that are out of range
 - bug fix, hook indicies were not corrected on exit editmode (there
   probably should be a general interface for this kind of patch)
2005-08-10 22:25:32 +00:00
Daniel Dunbar
9030e5f686 - added eModifierTypeFlag_RequiresOriginalData for modifiers that
can only follow deform (for example, they store mesh vertex
   indices)
 - added ModifierType.foreachObjectLink for iterating over Object
   links inside modifier data (used for file load, relinking, etc)
 - switched various modifiers_ functions to take object argument
   instead of ListBase
 - added user editable name field to modifiers
 - bug fix, duplicate and make single user didn't relink object
   pointers in modifier data
 - added modifiers to outliner, needs icon
 - added armature, hook, and softbody modifiers (softbody doesn't
   do anything atm). added conversion of old hooks to modifiers.

NOTE-THE-FIRST: User name field is not initialized on loading 2.38 files
so if you have saved stuff with a cvs blender you will see blank names.

NOTE-THE-SECOND: Since modifiers aren't evaluated yet for non-Mesh
objects, hooks for lattices and curves are broken. Don't updated if
you actually, say, *use* Blender.

NOTE-THE-THIRD: Old hooks used a quirky weighting system during
deformation which can't be extended to modifiers. On the upside,
I doubt anyone relied on the old quirky system and the new system
makes much more sense. (Although the way falloff works is still
quite stupid I think).
2005-08-10 22:05:52 +00:00
Stephen Swaney
eb64e304b4 Patch #2758 Update of image module.
New Image methods from Austin Benesh:
- getPixelI(x, y)
- getMinXY()
- setPixelF(x, y, [r, g, b, a])
- setPixelI(x, y, [r, g, b, a])
- save()

sorry for the delay.
Thanks.
2005-08-10 17:50:18 +00:00
Joilnen Leite
1d08915f45 ideasman fix that epydoc compile for it
.
2005-08-10 13:36:40 +00:00
Daniel Dunbar
02f3c930f5 - bug fix, face center drawing was wrong for editmesh
- added several useful utility functions to editmesh,
   these can simplify/clarify a lot of mesh code, check them
   out
 - cleaned up EdgeSlide a bit to be clearer/shorter
     o bug fix, EdgeSlide did not always cancel correctly
     o bug fix, EdgeSlide did not choose initial "control" edge
       correctly after calc_meshverts_ext change
2005-08-10 03:51:34 +00:00
Johnny Matthews
9823e7d548 Removed need for vert-xs and ys in edgeslide 2005-08-09 20:02:53 +00:00
Daniel Dunbar
c5a223056a - bug fix, convert modifiers should free modifiers from new object 2005-08-09 16:02:23 +00:00
Johnny Matthews
98741ec436 fix for bug #2906
Was allocating array for all hidden edges, not needed, just hidden with a selected vert needed
2005-08-09 14:44:46 +00:00
Johnny Matthews
6aead5176b Possible fix for bug #2906
Added some parens to change eval order
2005-08-09 13:49:05 +00:00
Daniel Dunbar
c192b80b17 Big commit, had to rework lots of selection stuff so that things
worked properly with modifiers. Needs more testing I am sure.
No, honestly, I wasn't just cleaning for the hell of it, it
was *necessary* (I would never do such a thing). Selection should
work completely with cage options of modifiers now.

 - added DerivedMesh foreach functions to iterate over mapped
   verts/edges/face centers. These replaced some of the drawing
   functions and are more general anyway. Special edge drawing
   functions remain for performance reasons.
 - removed EditFace xs, ys fields
 - added general functions to iterate over screen coordinates of
   mesh/curve/lattice objects
 - removed all calc_*verts* functions that were used for storing
   screen coordinates in objects. they were recalc'd on the fly
   for most situations anyway, so now we just always do that.
   calc_*verts_ext was one of those calls that did dirty things
   deep down in the callstack (changing curarea and poking at
   matrices)
 - rewrote all vertex level selection routines (circle, lasso, bbox)
   and closest vertex routines (rightmouse select) to use the new
   system. This cleaned up the selection code a lot and the structure
   of selection is much easier to see now. This is good for future
   work on allowing modifiers to completely override the selection
   system. It also points out some discrepancies in the way selection
   is handled that might be nice to resolve (mesh vertex selection has
   fancy stuff to try to help with selecting overlapping, but it only
   works w/o bbuf select, and curves/lattices don't have at all).
 - had to remove ton's code to move Manipulator to cage location, this
   is not reliable (can come up with a different method if requested)
 - as it happens BezTriple.s and BPoint.s are basically available to
   be removed, just need to rewrite editipo code that still does
   background calc of screen coordinates
 - MVert.{xs,ys} are still around because they are abused in some places
   for other info (not sure if this is safe actually, since they are
   short's and the mvert limit went up).

And did I mention this commit is comes out to -305 lines? Well it does.
2005-08-09 08:12:36 +00:00
Jens Ole Wund
932e958816 made weight paint panel full width ( still try to understand that X,Y system panels use )
replaced senseless 0 opacity  with 1/8 opacity
2005-08-08 21:56:52 +00:00
Daniel Dunbar
9c8c51cbe3 - added VecLerpf to blenlib
- switch to using DerivedMesh.drawMappedFaceCentersEM to draw
   face dots, still need to do some work so this works in all
   selection modes (atm it does not work in no-zbuf mode)
2005-08-08 18:50:47 +00:00