Martin Poirier [Tue, 23 Aug 2005 18:13:30 +0000 (18:13 +0000)]
Bretch's patch for 2D transform. Thanks
Using new transform code to handle UV window.
With the ground work done, Transform could more easily be extended to handle IPO window now.
Tracker item: http://projects.blender.org/tracker/?func=detail&atid=127&aid=2946&group_id=9
Erwin Coumans [Tue, 23 Aug 2005 16:50:53 +0000 (16:50 +0000)]
don't need Object.h
Johnny Matthews [Tue, 23 Aug 2005 14:13:00 +0000 (14:13 +0000)]
Quad Adjacent edge subdivide type moved to Mesh Tools panel rather than pupmenu on all subdiv calls. This is a session value like beauty and will revert to path each time you load blender.
Erwin Coumans [Tue, 23 Aug 2005 13:16:02 +0000 (13:16 +0000)]
new game-menu option 'Record Game Physics to Ipo'
including implementation. hope it works, and doesn't break to much.
it bakes physics objects transform into ipo, every frame of the running gameengine.
When you disable and run the game again, it clears the ipo's again. just for physics objects at the moment.
(perhaps some better UI in the future?)
Daniel Dunbar [Tue, 23 Aug 2005 02:29:22 +0000 (02:29 +0000)]
- added iterator to edgehash
- updated decimator to make edges
Chris Want [Tue, 23 Aug 2005 02:28:01 +0000 (02:28 +0000)]
Added (non-default) Makefile option to build blender with tweak mode.
To build with this option, set:
export NAN_TWEAK_MODE=true
Daniel Dunbar [Tue, 23 Aug 2005 02:05:45 +0000 (02:05 +0000)]
- subsurf getVertCos returned verts in wrong order since
shuffling of code... led to fun and crazy results (maybe
less fun for les artiste)
Chris Want [Tue, 23 Aug 2005 01:31:11 +0000 (01:31 +0000)]
On windows/gcc (aka. FREE_WINDOWS), build the blenderplayer whenever
blender is configured to build with the gameengine.
Ton Roosendaal [Mon, 22 Aug 2005 21:58:55 +0000 (21:58 +0000)]
Another painful editing issue solved!
Adding Ipos on a Constraint just was working totally insane. Here's how
it works now in the constraint Panel:
- Button "Show" will make the IpoWindow show the Constraint Ipo
(it didn't before, when IpoWindow was not set to correct mode)
- Button "Key" will insert a key point on current frame (and show it in
IpoWindow)
Note that both options will create an Action too, if not existed yet.
So, without opening an IpoWindow you can already animate Constraints.
(Todo: use the auto key option to always insert on changing slider)
And; selecting a Bone will update the Constraint IpoWindow too. Note
however, that when theres multiple Constraint Ipos on a Bone, it only
shows the first... will solve that later.
Daniel Dunbar [Mon, 22 Aug 2005 20:25:54 +0000 (20:25 +0000)]
- switch modifiers_isDeformedByArmature to also include
virtual modifiers
Daniel Dunbar [Mon, 22 Aug 2005 20:24:59 +0000 (20:24 +0000)]
- added modifiers_isDeformedByArmature function
Erwin Coumans [Mon, 22 Aug 2005 18:31:19 +0000 (18:31 +0000)]
more preparation for physics recording to ipo keyframes
Johnny Matthews [Mon, 22 Aug 2005 18:05:40 +0000 (18:05 +0000)]
This commit introduces 2 new filling methods for subdividing quads which have only 2 adjacent edges selected. Path, Fan and Innerverts. ATM whenever a call is made to any subdivide calling tool, you will be asked for the type by a pupmenu. This will be replaced (perhaps) by a panel setting...
Ton Roosendaal [Mon, 22 Aug 2005 17:52:52 +0000 (17:52 +0000)]
Three little feats;
- Vpaint and Wpaint now use our own custom cursor, this was a very old
plan anyway. It uses the 'knife' now, we need a good brush icon for it!
- On scaling bones in editmode, the deform distance info gets scaled now
too when no "Envelope" draw mode was set.
- Disabled front buffer drawing of objects with CTRL+select in Edit Mode.
Uses a regular redraw now (like for select in Object Mode btw)
Erwin Coumans [Mon, 22 Aug 2005 15:47:56 +0000 (15:47 +0000)]
- prepared for automatic game physics -> animation (ipo) conversion (this allows to use bullet for animation)
- default the m_edgecode to 65535, the wireframe was invisible. when is the edgecode available again ?
- added an extra condition, nearsensor is not yet working for bullet, but it crashed.
Ton Roosendaal [Sun, 21 Aug 2005 22:01:20 +0000 (22:01 +0000)]
Some fixes;
- Armature deform options "Envelope" and "Vertexgroup" didn't combine. One
Vertexgroup added disabled all Envelopes
- "Clear" option in WPaint Panel now sends refresh to deform
- Same for Undo in Wpaint
Brecht Van Lommel [Sun, 21 Aug 2005 21:39:44 +0000 (21:39 +0000)]
Use new BLI_edgehash_* functions in unwrapper.
Ton Roosendaal [Sun, 21 Aug 2005 21:20:53 +0000 (21:20 +0000)]
Much wanted; Constraint "move up" and "move down" buttons, in the Panel!
Daniel Dunbar [Sun, 21 Aug 2005 20:48:45 +0000 (20:48 +0000)]
- sillyness... added drawMappedEdges for mesh
- revert to drawLooseEdges instead of general drawEdgesFlag
- ditched TFace edge flags, done dynamically now which also
means don't need to recalc surface on flag changes
- added BLI_edgehash, guess what it does
Ton Roosendaal [Sun, 21 Aug 2005 20:09:50 +0000 (20:09 +0000)]
Made weight-painting more bearable :)
- Hotkey CTRL+TAB toggles weightpaint on/off
- If Mesh has no vertex groups yet, it still accepts Weight Paint mode.
Then, on a first painting stroke it creates a default group.
- When combining WeightPaint mode with Bone selecting, if you select a
Bone without vertex group it draws Mesh dark blue. On a first painting
stroke it then also creates a new group, with the Bone name.
Daniel Dunbar [Sun, 21 Aug 2005 19:01:30 +0000 (19:01 +0000)]
- bug fix, last edge wasn't flagged correctly on make_edges
Ton Roosendaal [Sun, 21 Aug 2005 18:53:12 +0000 (18:53 +0000)]
Control over Armature deform. Three new options are added for it;
Armature Panel
- "Vertex Groups"
- "Envelope"
Bones Panel
- "Mult"
The logic works as follows;
- Set "Vertex Groups" will enable vertex group based deform (default)
- Set "Envelope" will enable Bone Envelopes to deform
- Set both will apply Envelope deform on vertices without VertexGroups
- Set the per-Bone "Mult" option to have Envelopes work on top of a
VertexGroup
- The per-Bone "Deform" option (was called "Skinnable") will dis/enable
the Bone to deform for all situations.
The old convention was that, without any vertex groups, the Bones deformed
with bone-distances. I can't patch that... so you have to enable it by
hand in older files. Not too bad, since this option was unusable before
anyway. :)
Daniel Dunbar [Sun, 21 Aug 2005 17:57:06 +0000 (17:57 +0000)]
- edge draw experiment didn't turn out to be useful, removed and reverted
to old.
- updated fasterdraw() to work with edges
Stephen Swaney [Sun, 21 Aug 2005 15:16:16 +0000 (15:16 +0000)]
bugfix: #2924 Bugs in api2_2x/Material.c
- BPy_Material_methods[] "setFilter" calls Material_setFresnelMirrFac()
- Material_setSpecSmooth() should be setting param[3], not param[2]
Contributed by Ken Hughes. Thanks!
Stephen Swaney [Sun, 21 Aug 2005 15:00:17 +0000 (15:00 +0000)]
A large collection of fixes from Ken Hughes including:
- corrections to constants
- parameter type checking
- correct use of METH_VARARGS vs METH_NOARGS
- return objects instead of strings in Scene.getChildren() as per doc.
- correct logical operators
Thanks, Ken!
Ton Roosendaal [Sun, 21 Aug 2005 14:39:08 +0000 (14:39 +0000)]
Temporal; make compiling happy. :)
Ton Roosendaal [Sun, 21 Aug 2005 11:26:53 +0000 (11:26 +0000)]
At last! B-bones now deform. :)
This works pretty nice for better control over the curvature of any bone
deform. No need to give Bones (vgroups) large influence, just add a coupleof B-bone segments.
Two notes;
- The Bone property "Segments" defines if a deform happens as a 'B-bone'.
The drawtype B-bone is just for display in 3d window.
- A B-bone also deforms (bends) in Rest-position, if there's a joint that
creates a curved Bone. Therefore, best results you get by creating a
rest-position with straight joints. Or, if you prefer a slightly bended
restposition (for a spine or so), make sure the Mesh model is *not*
curved, the B-bone will do this for you.
Also added: proper events on changing buttons for Bones, like "Segm" or
"Dist" etc.
Ton Roosendaal [Sun, 21 Aug 2005 10:05:50 +0000 (10:05 +0000)]
MEM_alloc allocated in units of 8 for 32 bits systems, and units of 4 for
64 bits systems... weird bug. :)
It now only does a unit-of-4 check, for all systems. This will work fine,
since the malloc code will return aligned anyway, and the guarded alloc
system only stores ints in the headers. Also, the sizeof() call will
correctly do padding, so there's no risk of allocating too small blocks.
Daniel Dunbar [Sun, 21 Aug 2005 07:19:20 +0000 (07:19 +0000)]
- added mesh_strip_loose_faces, works in conjunction with make_edges
to get rid of faces with MFace.v3==0
- change all Mesh's to have ->medge now. This is forced by make_edges
on readfile, and in the various exotic important routines, and on
conversion back in python.
- make python NMesh structure always have medges now (needs testing)
- with above two changes it is guarenteed that mf->v3 is never ==0
in main blender code (i.e., all MFace's are actually triangles
or quads) and so I went through and removed all the historic tests
to deal with MFace.v3==0. Equals lots of deleting, I am in heaven!
- removed MEdge edcode flag, no longer needed
- added experimental replacement for edge flag system
Still are some inconsistencies in FACESELECT mode edge drawing to
be ironed out.
NOTE: This commit adds an experimental edge flag calc system, based
on 10-seconds-of-thought algorithm by yours truly. Would appreciate
feedback on how this system works, esp compared to old one and esp
on complex or interesting models.
To Use: New system is enabled by setting G.rt to a value between
1 and 1000 (Value of 0 uses old system). Value 1000 is reserved for
"auto" edge, which is more or less identical to old system but also
makes sure that at least 10% of edges are drawn (solves errors for
super subdivided meshes). Values between 1 and 999 act as percent
(out of 1000) of edges that should be drawn, starting with "most
interesting" edges first. Please try it and comment!
Johnny Matthews [Sun, 21 Aug 2005 03:37:38 +0000 (03:37 +0000)]
Some whitespace cleanup...
Johnny Matthews [Sat, 20 Aug 2005 21:37:52 +0000 (21:37 +0000)]
Temp edge selection for edgeslide draw length now deselected properly at the end of edgeslide
Ton Roosendaal [Sat, 20 Aug 2005 20:30:13 +0000 (20:30 +0000)]
Fix for setting in perspective view mode the ALT+B clipping planes.
Fun: do exact camera viewborder to see camera volume!
Daniel Dunbar [Sat, 20 Aug 2005 20:04:32 +0000 (20:04 +0000)]
- bug fix, mirror modifier could duplicate edges on boundary in
certain cases
Ton Roosendaal [Sat, 20 Aug 2005 19:45:34 +0000 (19:45 +0000)]
Left in a testing value for clipping... tsk! Did only three planes :)
Ton Roosendaal [Sat, 20 Aug 2005 19:18:35 +0000 (19:18 +0000)]
New feature; User definable Clipping Planes.
Press ALT+B in 3d window, draw a rect, and it becomes a clipping
volume of 4 planes. You then can rotate the view anyway you like.
Works for each 3d window individually.
Disable it with another ALT+B press.
Commit is huge because it had to change all selection code as well.
The user-clipping planes are in 'eye space', the other clipping
happens in projected 'viewport space'.
Nice to notice is that the 'x=3200' convention (to denote a coordinate
is clipped) now is a define. Define value is still a number though... but
we now can get up to screens of 12000 pixels without issues!
Known issue; here it refuses to draw the 'object centers' or Lamp icons
within the clipping region. Can't find any reason for it... however, we
might move to non-pixmaps for it anyway.
Testing might reveil numerous issues, will be standby for it.
Curious? Check this http://www.blender.org/bf/rt4.jpg
Daniel Dunbar [Sat, 20 Aug 2005 18:49:08 +0000 (18:49 +0000)]
- another drawing bugfix, some normals were passed wrong
Daniel Dunbar [Sat, 20 Aug 2005 18:38:33 +0000 (18:38 +0000)]
- possible fix #2 for editmode face's draw black
Daniel Dunbar [Sat, 20 Aug 2005 18:25:11 +0000 (18:25 +0000)]
- bug fix for stooooopid crash in mirror modifier
Daniel Dunbar [Sat, 20 Aug 2005 18:14:04 +0000 (18:14 +0000)]
- possible fix for editmesh solid drawing black, I can't reproduce
so working a bit blind here
Johnny Matthews [Sat, 20 Aug 2005 16:38:05 +0000 (16:38 +0000)]
In edgeslide if Draw Edge Length is on, the rail edges will be temporarily selected so that actual new edge length can be seen.
Daniel Dunbar [Sat, 20 Aug 2005 11:01:17 +0000 (11:01 +0000)]
- tweak virtual modifier display, now label "parent deform" and
don't display with edit buttons
Ton Roosendaal [Sat, 20 Aug 2005 09:55:11 +0000 (09:55 +0000)]
A couple of smaller fixes;
- Modifier Panel, name label for "Virtual" modifiers was too short
- On extrude Bones, "soft distance" now is always set based on length
of the bone (also on CTRL+click, also when Envelope drawmode is not set)
- Added undo-push for "Apply Bone Envelopees to VertexGroup" in WeightPaint.
- Menu-buttons in floating panels sometimes gave drawing error
- InfoWindow buttons were always allocated & drawn, even when window was
zero sized... waste of cpu, tsk!
Daniel Dunbar [Sat, 20 Aug 2005 09:17:20 +0000 (09:17 +0000)]
- agh! missed it again! for real this time, fix for proper updating
in image window
Daniel Dunbar [Sat, 20 Aug 2005 09:16:09 +0000 (09:16 +0000)]
- made make_edge mark edges with LOOSEEDGE appropriately
- added user settable defaultEdgeData (for auto edge creation
in CCGSubSurf)
- bug fix, possible crash on meshes with loose edges but
in mface not in medge
- missed file in last commit, for proper updating in image
window
Daniel Dunbar [Sat, 20 Aug 2005 07:42:25 +0000 (07:42 +0000)]
- bug fix, apply modifier removed modifier even on certain
errors
- change drawimagespace to check and update object data if
it needs a recalc. this fixes errors with a recalc being
flushed but not actually being done before spaceimage
redraws. Updates typically actually happen in draw loop,
which is not a great design...
- make shared vertexcol didn't flush update
Daniel Dunbar [Sat, 20 Aug 2005 03:08:23 +0000 (03:08 +0000)]
- convert all DerivedMesh map functions to use index based
mapping (instead of Edit{Vert,Edge,Face} pointers)
- dropped convertToDispListMeshMapped (whew, glad of it too)
- added DerivedMesh drawMappedFaces function
- dropped EM suffix for DerivedMesh functions, it was neither
particularly correct nor descriptive
- converted test_index_mface to test_index_face that also corrects
MCol and TFace. Good thing we had three versions of this routine,
you never know when one might burn down.
- removed flipnorm_mesh, not used anymore (and was incorrect to
boot)
- Getting face select to work with modifiers turned out to be much
more complicated than expected. Reworked mapping architecture for
modifiers - basically elements in a DispListMesh are now required
to be stored in an order that corresponds exactly to original
ordering. MVert/MEdge/MFace all have a new flag ME_XXX_STEPINDEX
that is set on each element that is set on the first derived element
of each original element. I can't say the code to follow these
requirements for subsurf is particularly transparent, but on the
upside it is a reasonably consistent and simple system that is memory
efficient and allows keeping the DispListMesh structure.
- rewrote mirror modifier to be simpler/conform to new requirements
for mapped DispListMesh structure. This also means that mirror interacts
much better with incremental subsurf calculation (it used to recalc
one entire side on any topology change, now it generally avoids that).
- added EM_{init,free}_index_arrays and EM_get_{vert,edge,face}_for_index
functions to handle mapping indices back into appropriate EditMesh
structures.
- bug fix, make edges didn't recalc object data
- bug fix, initial image assignment to TFace's didn't recalc object data
- new feature, added circle select support for FACESELECT
- bug fix, creating new faces in editmode duplicated the TFACE active
flag - but there should only be one active tface
- bug fix, possible crash when deleting all faces in faceselect mode
on mesh with tfaces...
Still todo: TFace edge drawing is still not always correct in face
mode, in particular with a mirror modifier when mesh has edges (and
no preceeding subsurf). Have not yet decided how to deal with this.
Best solution is probably to do switch to meshes all having MEdge's,
in which case I can get rid of TFace edge flags (and need to recalc
modifiers on tface selection change).
Jens Ole Wund [Fri, 19 Aug 2005 22:55:05 +0000 (22:55 +0000)]
Moving functions and calls to have a cleaner situation for futre work (implicit solver .. n stuff)
Ton Roosendaal [Fri, 19 Aug 2005 21:37:29 +0000 (21:37 +0000)]
More armature stuff;
- The "Skinnable" option for Bones now is taken into account for the
Envelope drawmode. If not Skinnable, it also doesn't draw the soft
deform area. Maybe bone should be hidden... dunno yet.
- Use CTRL+LMB in weightpaint mode to sample the weight in a mesh.
Note; it returns the weight of the closest visible vertex, not of a
Blended result.
- NKey Panel for Mesh edit now shows a menu with the VertexGroup name(s)
of a selected Vertex, plus the Weight.
Fix:
- while scaling Bone points in editmode (Envelope drawtype), the Bone
root scale was not copied from (or to) the parent tip. This was not
visible (is not drawn) but deform did use it... causing weird errors.
For those who saw this error today: just go into editmode, select all
Bones, press Skey, enter. That fixes it :)
Ton Roosendaal [Fri, 19 Aug 2005 16:15:51 +0000 (16:15 +0000)]
CTRL+click now also allows Root-point extrude of Bones.
Ton Roosendaal [Fri, 19 Aug 2005 12:39:43 +0000 (12:39 +0000)]
Forgot hidden flag update in this file...
Ton Roosendaal [Fri, 19 Aug 2005 12:35:15 +0000 (12:35 +0000)]
Armature "Envelope" editing.
For defining the deformation distances of Bones, three values are being
used now. The bone tip and root radius define the bone-shape itself and the
"dist" defines the soft area around it. A full (user) doc is in CMS here;
http://www.blender3d.org/cms/Armature_Envelopes.647.0.html
Note: todo still is allowing both Vertex Deform Groups and these Envelopes
together (and or per Bone).
Also part of this commit is:
- New: Hiding bones in EditMode. This is a separate 'hide flag', so you can
keep the PoseMode hidden Bones separate from EditMode.
(In the future we should do some kind of bone-grouping or so)
- While transform(), the hotkeys G,R,S only switch mode when the previous
mode was compatible. Caused conflicts with Crease/BoneDist/etc.
- Deleting the last VertexGroup now also deletes the entire Mesh 'dvert'
data. Sounds logical, but remember that VertexGroups are partial on a
Mesh, partial on Object. Weird design decision though...
Anyhoo, at this moment the only way to have Bone Envelopes deform, is
by deleting all VertexGroups!
- In PoseMode, the hotkey ALT+S now does both B-Bone size or Envelope,
depending draw type.
- In EditMode, Extrude now also works when only Root points were selected.
- Weight editing is also symmetrical btw, with the "X-axis Mirror" option
set.
Erwin Coumans [Thu, 18 Aug 2005 17:32:25 +0000 (17:32 +0000)]
support for __MINGW32__ compiler, it doesn't have __forceinline
Chris Want [Thu, 18 Aug 2005 16:48:10 +0000 (16:48 +0000)]
spack() is no longer used in the blender core, so I moved it to
this gameengine source file that depends on it.
Daniel Dunbar [Thu, 18 Aug 2005 11:49:33 +0000 (11:49 +0000)]
- added code to draw loose edges in textured and fastshade views
Daniel Dunbar [Thu, 18 Aug 2005 11:31:20 +0000 (11:31 +0000)]
- added DerivedMesh.drawUVEdges function & implementations
- removed DerivedMesh.drawLooseEdges and replaced with much more
general drawEdgesFlag function that draws based edge flags.
- switch DerivedMesh.drawFacesTex to give user control over which
faces are drawn
- added object_uvs_changed and object_tface_flags_changed functions
to do object recalc flag flush/redraw queueing and added calls
in appropriate places
- added various edge flags to mark TFace information. This is used
by the drawEdgesFlag routine and was the best way I could come
up with to deal with drawing TFace information from modifier stack.
Unfortunate side effects are (1) uses a lot of MEdge flags (although
not needed in file so thats fine) and (2) requires recalculation
of modifier stack on UV selection changes. #2 is disappointing
but I could not find a better solution.
- update UV mesh shadow drawing to use modifier result. At the moment
just uses the final result but probably should be integrated with
the editmode cage option.
- convert draw_tfaces3D to use drawEdgesFlag routine which cleaned
up the code quite a bit.
- convert draw_tface_mesh to draw using result of modifier stack.
Same comment about which result actually gets draw in FACESELECT
mode as for UV editor shadow drawing applies.
There is a still a bug in that selection is using the wrong
mesh to draw.
Daniel Dunbar [Thu, 18 Aug 2005 11:14:28 +0000 (11:14 +0000)]
- bug fix, convert modifiers function used a shared displistmesh which
could lead to crash
- bug fix, exit_editmode was warning too often about free'ng baked
softbody data.
Daniel Dunbar [Thu, 18 Aug 2005 11:04:22 +0000 (11:04 +0000)]
- remove redundant calculation of spring length
Chris Want [Thu, 18 Aug 2005 06:07:02 +0000 (06:07 +0000)]
Support for 'Bullet' in the Makefiles. Enable with:
export NAN_USE_BULLET=true
in environment, or in user-def.mk
Chris Want [Thu, 18 Aug 2005 06:04:50 +0000 (06:04 +0000)]
The name of an included header had the capitalization wrong, causing
problems on unix.
Erwin Coumans [Wed, 17 Aug 2005 19:52:56 +0000 (19:52 +0000)]
some more fixes in the raycast/mouse over
Kent Mein [Wed, 17 Aug 2005 17:56:54 +0000 (17:56 +0000)]
Got rid of a couple other warnings, of the form:
struct blah was declared in param list this is probably not what you want...
Kent
Erwin Coumans [Wed, 17 Aug 2005 14:29:58 +0000 (14:29 +0000)]
added the "mouse over any", makes the sensor more useful
Joseph Gilbert [Wed, 17 Aug 2005 14:26:00 +0000 (14:26 +0000)]
- update to constant.c
- give it the key/items interface
- creates some factory functions for const generation
- genutils methods
- method for getting module constants
- method for throwing errors with a print string
- updates to function names
- clean up interpreter launch a bit
Ton Roosendaal [Wed, 17 Aug 2005 13:26:42 +0000 (13:26 +0000)]
- New feature: shift+ctrl+t in Mesh editmode splits quads in exact opposite
way. Requested for low-poly modeling.
- fix: on exit editmode, the code always created a mesh->dvert block...
silly, this made other code confused which decided whether to use
dverts (vertex groups) or not.
- removed obsolete call from armature.c. Also fixed name of function there,
preparation work for nicer support in Blender for "deform envelopes"
Daniel Dunbar [Tue, 16 Aug 2005 22:58:31 +0000 (22:58 +0000)]
- bug fix, free bake didn't work
- bug fix, force free of bake data on exit editmode, can't
give user a choice
Chris Want [Tue, 16 Aug 2005 22:11:40 +0000 (22:11 +0000)]
For lukep:
In face select mode, select faces by triangle/quad/other.
Available through header menu, toolbox, or hot keys.
Hot keys are:
ctrl-shift-alt-3: Select all triangles
ctrl-shift-alt-4: Select all quads
ctrl-shift-alt-5: Select all non-triangles/quads
(maybe a bit sore for the wrist)
And also available through the menu/toolbox.
I've never used f-gons so I don't know if the 'select other'
function works there (or works at all, for that matter).
Martin Poirier [Tue, 16 Aug 2005 21:58:26 +0000 (21:58 +0000)]
Turning off tweak mode until there's a better UI.
Daniel Dunbar [Tue, 16 Aug 2005 20:42:52 +0000 (20:42 +0000)]
- bug fix, draw wire extra should use cage with vpaint/wpaint/tpaint
Kent Mein [Tue, 16 Aug 2005 20:21:43 +0000 (20:21 +0000)]
Added prototypes for some stubs to shut gcc up ;)
(In doing so found a stub that had wrong # of args)
Kent
Ton Roosendaal [Tue, 16 Aug 2005 19:37:36 +0000 (19:37 +0000)]
Weight Paint & Vertex Paint goodies;
- New: "Spray" is an option now. This used to be the only available vertex
painting method, while holding the mousebutton and move mouse, it keeps
applying (adding, blending) the color.
Disabling "Spray" will give more a 'paint' effect, only applying the
maximum what you indicated to be painting.
- Weight Paint now offers all options Vertex Paint has. This includes "Add",
"Mult", "Sub", and "Filter". And of course the "Spray", which is default
off btw.
Since Weight Paint might need totally different settings, they are stored
separate from Vertex Paint options.
- Renamed the weird "Area" and "Soft" options into something that tells what
it actually does (Even tooltips were wrong).
Area -> "All Faces", option to have all Faces inside the brush being
painted on. Disabling this only paints on the face under the cursor.
Soft -> "Vertex Dist", option that uses distances from cursor to vertex
to calculate the effect. Disable it to only paint per-face.
If someone knows better names... go ahead! :)
- New WeightPaint option in the Panel: "Clear", which removes reference
to this deform group from all vertices.
- Removed code that deleted 'deform vertices' from Mesh on exit editmode,
when vertexgroups were empty. This just worked against you... you could
not paint on empty groups.
- Made Weight Paint painting much nicer. The way it applied values was very
harsh without good transitions. Mainly because it didn't use the
"Vertex Dist" option, but also because it applied colors 3 or 4 times per
vertex (tria/quad).
- Weight Paint undo now restores on a 2nd Undo.
- Vertex Paint Panel button "Clear" didn't work even.
Martin Poirier [Tue, 16 Aug 2005 18:23:28 +0000 (18:23 +0000)]
Tweak mode
RMB click drag to select and transform (grab). Release to confirm. (Cancel with esc)
The difference with before is that it is a single motion, you don't have to click at the end of transform, you can just release the mouse button.
(Some float constant warning too)
Jens Ole Wund [Tue, 16 Aug 2005 17:54:59 +0000 (17:54 +0000)]
Ooops, one slipped on porting
Jens Ole Wund [Tue, 16 Aug 2005 17:48:47 +0000 (17:48 +0000)]
softbody <--> softbody collision
make softbodies collide with objects patented to armatures (bones), lattices .. )
Softbody deflectors always use the new modifier stack. (thanks ZR)
Softbody deflector code checks for identity of colliding objects so,
there is no need to prohibit softbodies to be a deflector.
So now you can put some soft balls in a box and see them bounce.
see : http://wund.privat.t-online.de/bt/sb_sb_coll.blend
A deflector cube parented to SB lattice:
http://wund.privat.t-online.de/bt/sb_lattice.blend
BM
Martin Poirier [Tue, 16 Aug 2005 17:37:42 +0000 (17:37 +0000)]
ToSphere changes.
- Scale goes from 0 (original) to 1 (full sphere) instead of the contrary
- Mouse control is done by moving pointer left / right on screen. Full right is 1, left is 0. There's a 10% width padding on each border.
- Works correctly with Shift modifier now.
Ton Roosendaal [Tue, 16 Aug 2005 10:17:02 +0000 (10:17 +0000)]
New! When weight-painting a Mesh, and select a Bone, you can use transform
options on the Bone (G, R, S). The manipulator doesn't show btw.
Is usful to get immediate feedback on how painted weights behave with Bones.
Martin; I had to change the T_POSE behaviour in code a bit... it now
stores in TransInfo the actual posed armature being transformed. Maybe,
some day, we'll get mixed posechannel/object transform? Not much required
at the moment though. :)
Ton Roosendaal [Mon, 15 Aug 2005 19:46:09 +0000 (19:46 +0000)]
Added new button type: ROUNDBOX
This replaces drawing with uiRoundBox() or glRect() in button Panels,
which just fails for dynamic constructed button views where Panels are
sometimes invisible. Also eliminates hack with PanelPop().
Error was visible with new Modifier panel, entering/exiting EditMode.
Done Modifier and Constraints.
Syntax:
The last 4 free variables in the uiDefBut() call are:
- float, corner-rounding (0.0-pixels),
- not used,
- short: roundbox type (bits, 1 2 4 8 for clockwise corners starting left/top)
- short: color shade offset (color range 0-255)
Ton Roosendaal [Mon, 15 Aug 2005 16:12:50 +0000 (16:12 +0000)]
A nice character modeling time-saver:
In WeightPaint mode, pose-mode armatures now allow selecting Bones, but
without making the Armature object active.
Selecting a Bone then results in selecting the associated vertexgroup. :)
Little quirk; all armatures with posemode then draw selectable...
Ton Roosendaal [Mon, 15 Aug 2005 14:44:51 +0000 (14:44 +0000)]
Using NKey panel in 3d window on editmode armature now applies the
new 'mirror edit' as well. Including the 'roll'.
PLease note that roll values can differ a lot when you have modeled
without 'mirror' mode. You can enforce the roll to match by first
moving the Bone a little bit, so the other one aligns perfectly.
Ton Roosendaal [Mon, 15 Aug 2005 14:02:03 +0000 (14:02 +0000)]
EditMode armature: mirrored editing feature.
- Option is in EditButtons, Armature panel.
- Currently only local X-axis mirror (seems to be default anyway)
- Transform then applies changes to the mirrored-name bone as well.
- Extrude: also does the counterpart Bone
- New: SHIFT+E extrude: extrudes 2 mirrored Bones out of a normal Bone.
(creating names by appening _L and _R)
Or in short: you can now model a full rig without any manual naming!
Of course the names are not too nice... a couple of ideas to explore;
- rename a mirrored bone renames counterpart too
- allow in weightpaint mode to select Bones
- and of course mirrored edit in PoseMode (if that's useful...)
Important note: I tweaked the naming convention a bit; names like
Bone_L.005 and Bone_R.005 are considered counterparts. However, if
you use the "Flip names" option, the number extension is still
truncated.
BTW: Commits in Zr's code are fixes for gcc warnings. :)
Daniel Dunbar [Mon, 15 Aug 2005 10:30:53 +0000 (10:30 +0000)]
- readded DL_VERTS type to store lattice deformed verts
- new feature, twiddled with lattice resizing to try to maintain
existing vertex changes... much nicer than just resetting the
lattice if you decide you need more detail in the lattice.
- modifiers work with lattices now. yes, that does mean you
can make a chain of lattices effecting each other 8 miles
long.
- some cleanup of softbody code, was rather splintered and call
path was twisted and confusing. reworked main object step
routine to do things in a more obvious and consistent manner
and without duplicate code
- added ob->softflag OB_SB_RESET instead of sbObjectReset
call
- modifier changes reset softbody now
- moved curve_getVertexCos/curve_applyVertexCos into curve.c
- update curve modifier eval to work with virtual modifiers
- update modifier apply to work with curves/surfs
- update make parent to also recalc object data
NOTE: Although you can turn SB on for curve/font objects at the
moment it doesn't really work because they call deform in
multiple steps and this confuses SB. Not sure how to deal with
atm.
Ton Roosendaal [Mon, 15 Aug 2005 09:45:48 +0000 (09:45 +0000)]
Crash bug! Reading older files with follow-path constraints failed...
Daniel Dunbar [Mon, 15 Aug 2005 04:10:02 +0000 (04:10 +0000)]
- added view3d_get_object_project_mat function, returns mat to project
object cos into screenspace without mucking with gl matrices.
- added view3d_project_ functions, take arguments instead of using
globals
- removed View3D.{mx,my,mxo,myo}
- switch drawobject foreachScreenVert functions to use new projection
functions
- switch edge slide to use new projection functions, fixes erratic
behavior (project was using wrong mat I believe)
- bug fix in edgeslide, nearest edge to start was one-off
Daniel Dunbar [Mon, 15 Aug 2005 00:53:51 +0000 (00:53 +0000)]
- get rid of unused object_deform_curve
- some tweaks to modifier UI thanks to Bart (aligning buttons)
Ton Roosendaal [Sun, 14 Aug 2005 20:50:02 +0000 (20:50 +0000)]
Lamp-halo & Ortho didn't render correct. Thanks Desoto! :)
Daniel Dunbar [Sun, 14 Aug 2005 19:44:43 +0000 (19:44 +0000)]
- bug fix #2935, DAG update was not called on new boolean object
Ton Roosendaal [Sun, 14 Aug 2005 19:26:58 +0000 (19:26 +0000)]
Bugfix #2943
Render bug.
Alpha low or zero, Ztransp, didnt render with lamp halos over...
Note it still doesnt work for ray-transp!
Ton Roosendaal [Sun, 14 Aug 2005 16:03:22 +0000 (16:03 +0000)]
do_versions() for 2.37 was reading a library data pointer that wasn't set
yet. Crashed in windows...
Thanks Desoto for finding it!
Daniel Dunbar [Sun, 14 Aug 2005 12:54:57 +0000 (12:54 +0000)]
- forgot to remove a function prototype from header on static'ng
Daniel Dunbar [Sun, 14 Aug 2005 12:17:34 +0000 (12:17 +0000)]
- 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.
Ton Roosendaal [Sun, 14 Aug 2005 11:15:36 +0000 (11:15 +0000)]
Patch provided by Adam (ajk48n). It reverses the turntable rotation when
you have the view 'upside down', resulting in correct feedback.
Ton Roosendaal [Sun, 14 Aug 2005 10:58:17 +0000 (10:58 +0000)]
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...
Daniel Dunbar [Sun, 14 Aug 2005 10:35:58 +0000 (10:35 +0000)]
- 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
Ton Roosendaal [Sun, 14 Aug 2005 10:31:14 +0000 (10:31 +0000)]
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!
Daniel Dunbar [Sun, 14 Aug 2005 07:02:51 +0000 (07:02 +0000)]
- 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
Daniel Dunbar [Sun, 14 Aug 2005 06:08:41 +0000 (06:08 +0000)]
- 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
Alexander Ewering [Sat, 13 Aug 2005 20:44:57 +0000 (20:44 +0000)]
Add CTRL-Backspace to delete all text in textediting.
Ton Roosendaal [Sat, 13 Aug 2005 19:41:45 +0000 (19:41 +0000)]
New; Wkey in Armature Editmode. Has option for flipping names too.
(And moved flip_name to armature kernel)
Ton Roosendaal [Sat, 13 Aug 2005 18:55:24 +0000 (18:55 +0000)]
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.
Ton Roosendaal [Sat, 13 Aug 2005 17:53:37 +0000 (17:53 +0000)]
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...
Stephen Swaney [Sat, 13 Aug 2005 17:20:46 +0000 (17:20 +0000)]
bugfix #2931 crash if $HOME not set
unchecked pointer returned from BLI_gethome().