blender.git
15 years ago - removed makeDispList, set_displist_onlyzero
Daniel Dunbar [Fri, 15 Jul 2005 20:56:55 +0000 (20:56 +0000)]
 - removed makeDispList, set_displist_onlyzero
 - appropriate callers of makeDispList replaced with depgraph calls
 - unappropriate places just killed... small chance this gives some
   errors in corner cases if dep graph isn't notified (example, font
   family displists) but these can be tracked down as they show up.
 - still a large number of callers of makeDispListCurveTypes, but
   makeDispListMesh has just a few.

15 years ago - remove calls to showkeypos from exit editmode functions, should be
Daniel Dunbar [Fri, 15 Jul 2005 18:15:56 +0000 (18:15 +0000)]
 - remove calls to showkeypos from exit editmode functions, should be
   handled by DAG update now. (ton: please confirm)

15 years agoPart #2 to vert color fix in new subdivide, Please check UV and Vertcolor with new...
Johnny Matthews [Fri, 15 Jul 2005 18:13:21 +0000 (18:13 +0000)]
Part #2 to vert color fix in new subdivide, Please check UV and Vertcolor with new subdivide.

Was checking for a condition < 0 should have been > 1

15 years ago - missed a space in header title text
Daniel Dunbar [Fri, 15 Jul 2005 17:57:40 +0000 (17:57 +0000)]
 - missed a space in header title text

15 years ago - decided it made more sense to make a key_get_active function, switched
Daniel Dunbar [Fri, 15 Jul 2005 17:55:19 +0000 (17:55 +0000)]
 - decided it made more sense to make a key_get_active function, switched
   to that in editmesh as well as for edit{curve,lattice}
 - added a G.editModeTitleExtra string that gets displayed in header info
   string in editmode. currently used to display "(Key)" when editing a
   key (before there was not UI level display of this info).

15 years ago - removed unused actkey field from struct Key
Daniel Dunbar [Fri, 15 Jul 2005 17:35:10 +0000 (17:35 +0000)]
 - removed unused actkey field from struct Key

15 years ago - more signedness warning fixes in editsima
Daniel Dunbar [Fri, 15 Jul 2005 17:31:58 +0000 (17:31 +0000)]
 - more signedness warning fixes in editsima
 - added mesh_get_active_key and replaced code in editmesh to use this
 - removed obsolete code in object_deform

15 years agoPart #1 of the fix for UV colors in new subdivide code
Johnny Matthews [Fri, 15 Jul 2005 16:12:34 +0000 (16:12 +0000)]
Part #1 of the fix for UV colors in new subdivide code

UV colors on Tri's should go right now when subdivivded,
for Quads, 3 of the for points should be right. Still working on the 4th.

15 years ago - remove some redundant drawing code
Daniel Dunbar [Fri, 15 Jul 2005 15:00:08 +0000 (15:00 +0000)]
 - remove some redundant drawing code
 - mousewheel zooming in drawipo used uninitialized var (MSVC run time
   error).

15 years ago - static'd several functions in key.c, just for readability
Daniel Dunbar [Fri, 15 Jul 2005 14:50:48 +0000 (14:50 +0000)]
 - static'd several functions in key.c, just for readability

15 years agoBPY Support for Deform Parenting and Vertex Parenting
Martin Poirier [Fri, 15 Jul 2005 05:30:58 +0000 (05:30 +0000)]
BPY Support for Deform Parenting and Vertex Parenting

This adds two new method to the BPY Object type:
 - makeParentDeform
 - makeParentVertex

Both are based on makeParent. In fact, I splitted off the parenting
part of makeParent into an internal function so that all can reuse it. I
also added DEP_graph refresh flag that where missing.

makeParentDeform sets the parent type accordingly for correct
deformation (armature and curve) and checks if the parent and childs are of the
correct type for deformation.

makeParentVertex takes as additional mandatory argument a tuple of
indices to tell the parent which vertex to use. It does some object type
checking too.

Also included documentation. :)

Test file is in the patch there: http://projects.blender.org/tracker/?func=detail&atid=127&aid=2833&group_id=9

Note to Ton: When doing vertex parenting, the dashed parent line is only updated correctly if the objects are on screen when calling the function. If they aren't, the line is wrong and is only corrected when another recalc is called on the parent or child.

15 years ago - more warning killing: unused vars, double -> float constants, signedness
Daniel Dunbar [Thu, 14 Jul 2005 22:21:12 +0000 (22:21 +0000)]
 - more warning killing: unused vars, double -> float constants, signedness

15 years ago - switch em_{vert,solid,wire}offs to be unsigned
Daniel Dunbar [Thu, 14 Jul 2005 22:16:38 +0000 (22:16 +0000)]
 - switch em_{vert,solid,wire}offs to be unsigned
 - some other twiddles to fix mixed signedness compiler warnings

And from the "Dear lazy programmers" file: After you have extern declared
a variable 5 or more times at the top a function, you would have actually
saved a lot of effort by just putting it in the header where it belonged.
Or perhaps you thought by hiding it no one else would notice you were
using global variables to pass information around. Tsk tsk.

15 years agoAppending armature crashed... nasty stuff, but works again :)
Ton Roosendaal [Thu, 14 Jul 2005 22:04:57 +0000 (22:04 +0000)]
Appending armature crashed... nasty stuff, but works again :)

15 years ago - added mesh_get_texspace (should be used instead of direct access)
Daniel Dunbar [Thu, 14 Jul 2005 21:57:18 +0000 (21:57 +0000)]
 - added mesh_get_texspace (should be used instead of direct access)
   which calculates texspace on demand if need be.
 - removed almost all calls to tex_space_mesh

There may be a few corner cases where this goes wrong (meshes with vertex
keys) but these should get ironed out by coming modifier system.

15 years ago - incremental subsurf calc in mesh_changed didn't actually make sure
Daniel Dunbar [Thu, 14 Jul 2005 20:42:43 +0000 (20:42 +0000)]
 - incremental subsurf calc in mesh_changed didn't actually make sure
   mesh used subsurf before calc (led to crash when subdiv==0). Woops!

15 years agoAdding CTRL stepping for Edgeslide. Mouse control is still not finished here, this...
Johnny Matthews [Thu, 14 Jul 2005 19:44:10 +0000 (19:44 +0000)]
Adding CTRL stepping for Edgeslide. Mouse control is still not finished here, this is just a temporary fix until it can be done right.

15 years ago - switch several instances of makeDispList to use more specific version
Daniel Dunbar [Thu, 14 Jul 2005 18:14:19 +0000 (18:14 +0000)]
 - switch several instances of makeDispList to use more specific version

15 years ago - make mesh_changed invalidate the mesh boundbox as well
Daniel Dunbar [Thu, 14 Jul 2005 18:06:53 +0000 (18:06 +0000)]
 - make mesh_changed invalidate the mesh boundbox as well

15 years ago - add mesh_get_bb function to return mesh boundbox and calc if needed
Daniel Dunbar [Thu, 14 Jul 2005 18:04:27 +0000 (18:04 +0000)]
 - add mesh_get_bb function to return mesh boundbox and calc if needed
 - switch all mesh boundbox access to go through mesh_get_bb
 - switch object_handle_update to call mesh_changed instead of making
   the displist data immediately (delayed calculation)

15 years ago - change subsurf_make_derived_from_editmesh to check that subdivision
Daniel Dunbar [Thu, 14 Jul 2005 17:59:36 +0000 (17:59 +0000)]
 - change subsurf_make_derived_from_editmesh to check that subdivision
   levels match before proceeding with incremental (need to build new
   subdivision object if levels have changed)

15 years ago - fix extremely dismal approximation of vertex & face counts for
Daniel Dunbar [Thu, 14 Jul 2005 17:57:27 +0000 (17:57 +0000)]
 - fix extremely dismal approximation of vertex & face counts for
   count_object. It is pretty obvious whoever changed this didn't
   think about it much or test it well... *cough* *cough*.

15 years agoArmatures now draw bone names over solid.
Ton Roosendaal [Thu, 14 Jul 2005 17:23:26 +0000 (17:23 +0000)]
Armatures now draw bone names over solid.

(commit of initrender.c is just an added comment)

15 years ago - switch to using DAG_object_flush_update instead of mesh_changed
Daniel Dunbar [Thu, 14 Jul 2005 17:10:44 +0000 (17:10 +0000)]
 - switch to using DAG_object_flush_update instead of mesh_changed
 - mesh drawing calculated derived surface before clipping to view matrix,
   waste for offscreen objects

15 years ago - use cos not cosf
Daniel Dunbar [Thu, 14 Jul 2005 15:59:42 +0000 (15:59 +0000)]
 - use cos not cosf

15 years ago - declare Mesh.mface and Mesh.tface to be of proper type instead of void*
Daniel Dunbar [Thu, 14 Jul 2005 15:58:32 +0000 (15:58 +0000)]
 - declare Mesh.mface and Mesh.tface to be of proper type instead of void*

15 years ago - switch to new mesh_set_smooth_flag call (takes mesh object argument
Daniel Dunbar [Thu, 14 Jul 2005 15:57:14 +0000 (15:57 +0000)]
 - switch to new mesh_set_smooth_flag call (takes mesh object argument
   instead of raw mesh)

15 years ago - removed line that slipped in by accident
Daniel Dunbar [Thu, 14 Jul 2005 15:50:43 +0000 (15:50 +0000)]
 - removed line that slipped in by accident

15 years agoBug reported by Guillaume LeCocq
Ton Roosendaal [Thu, 14 Jul 2005 15:49:31 +0000 (15:49 +0000)]
Bug reported by Guillaume LeCocq

Setting both 'xray' and 'transp' did not work proper. Had to add one
extra check, and switch drawing order. Now a transparent object gets
drawn OK as Xray too. :)

15 years ago - split makeDispList into makeDispList{Mesh,MBall,CurveTypes}, there is
Daniel Dunbar [Thu, 14 Jul 2005 15:48:01 +0000 (15:48 +0000)]
 - split makeDispList into makeDispList{Mesh,MBall,CurveTypes}, there is
   still a makeDispList that dispatches to the appropriate one.
   makeDispList is on the way out and this makes it easier to track down
   exactly which places use makedispList and for what types of objects.
 - switch calls to makeDispList to appropriate more specific function (if
   the object type is known by caller).
 - added mesh_changed function that invalidates cached mesh data (but does
   not rebuild, mesh data gets rebuilt on access). Most old calls to
   makeDispListMesh use this instead now.

15 years ago - part of DerivedMesh interface change from yesterday that got left out
Daniel Dunbar [Thu, 14 Jul 2005 15:30:30 +0000 (15:30 +0000)]
 - part of DerivedMesh interface change from yesterday that got left out

15 years agoBug fix #2799
Ton Roosendaal [Thu, 14 Jul 2005 13:50:48 +0000 (13:50 +0000)]
Bug fix #2799

Sequence effect "gamma cross" didn't work since 2.36. Caused by not
initialized gamma tables...

15 years agoBugfix for #2826
Ton Roosendaal [Thu, 14 Jul 2005 13:44:59 +0000 (13:44 +0000)]
Bugfix for #2826

Initialize shadow buffer lamp accidentally altered the ob->obmat for the
lamp. Never showed up before until now (depgraph).

15 years agoFix for a *very* nasty bug... somewhere in the ancient past - I tracked it
Ton Roosendaal [Thu, 14 Jul 2005 13:12:29 +0000 (13:12 +0000)]
Fix for a *very* nasty bug... somewhere in the ancient past - I tracked it
back to 1.4 - comparing pointers apparently gave warnings or errors... I
don't really have a memory of that. Could be the Irix compiler.

What it was used for is sorting edges in arrays or hash lists, like:

  if( ((long)v1) > ((long)v2) )

long is defined to be pointer size, so that should work 32/64 bits, where
it not that the long cast makes the value SIGNED! :)

Ken Hughes discovered this... noting that when his system uses a calloc, the
returned pointer had an uncommon address making the long negative.
It was a very hard bug to track, since (apparently) most OS's have an address
space being still in the lower part of an long...

Anyhoo; I have removed a couple of (long) casts from pointer comparing now,
need to get compile feedback if that's compliant for all our OS's.
If so, quite a lot of such hacks have to be removed from our code, or make
them casting to an unsigned long...

This has been confirmed to fix bugs #2709 and #2710. Thanks Ken!

15 years agoNew:
Ton Roosendaal [Thu, 14 Jul 2005 12:44:33 +0000 (12:44 +0000)]
New:

- XRAY draw for armatures now is generic "Draw Extra" option for any
  Object type. This feature just moves drawing to the end, after clearing
  the zbuffer again.
- Solid draw mode now displays materials with Alpha, with the new
  "Draw extra" option "Transp" set. This also moves drawing transparent to
  the end, but it doesn't sort the transparent faces. Still looks OK.
  Note: this is not enabled in mesh editmode. Here all the fancy extra
  drawing just makes it nearly impossible to do OK.
- Re-ordered Object Buttons -> "Draw" panel

Fixes:

- do_versions had check for the UserDef in it (new ogl texture cache).
  that can't be there, should be in usiblender.c (stupid exception).
- same error caused reading older files to not always fix version
  changes on armatures (commit yesterday).
- Outline select drawing happened also on picking-select draw, needless
  slowdown.

15 years agoDatabrowse needed new code to handle the hide dot file correctly.
Martin Poirier [Thu, 14 Jul 2005 06:25:02 +0000 (06:25 +0000)]
Databrowse needed new code to handle the hide dot file correctly.
Added a comment explaining what and why.

Also added a couple of explicit cast to make compiler whine less (double to float mostly).

15 years agoMathutils update
Joseph Gilbert [Thu, 14 Jul 2005 03:34:56 +0000 (03:34 +0000)]
Mathutils update
- also included is some fixes for preprocessor inclues and some clean up of the previous commit

-rewrite and bugfixes
  ----------------------------------
  Here's my changelog:
  -fixed Rand() so that it doesn't seed everytime and should generate better random numbers
  - changed a few error return types to something more appropriate
  - clean up of uninitialized variables & removal of unneccessary objects
  - NMesh returns wrapped vectors now
  - World returns wrapped matrices now
  - Object.getEuler() and Object.getBoundingBox() return Wrapped data when data is present
  - Object.getMatrix() returns wrapped data if it's worldspace, 'localspace' returns a new matrix
  - Vector, Euler, Mat, Quat, call all now internally wrap object without destroying internal datablocks
  - Removed memory allocation (unneeded) from all methods
  - Vector's resize methods are only applicable to new vectors not wrapped data.
  - Matrix(), Quat(), Euler(), Vector() now accepts ANY sequence list, including tuples, list, or a self object to copy - matrices accept multiple sequences
  - Fixed Slerp() so that it now works correctly values are clamped between 0 and 1
  - Euler.rotate does internal rotation now
  - Slice assignment now works better for all types
  - Vector * Vector and Quat * Quat are defined and return the DOT product
  - Mat * Vec and Vec * Mat are defined now
  - Moved #includes to .c file from headers. Also fixed prototypes in mathutils
  - Added new helper functions for incref'ing to genutils
  - Major cleanup of header files includes - include Mathutils.h for access to math types
  - matrix.toQuat() and .toEuler() now fixed take appropriate matrix sizes
  - Matrix() with no parameters now returns an identity matrix by default not a zero matrix
  - printf() now prints with 6 digits instead of 4
  - printf() now prints output with object descriptor
  - Matrices now support [x][y] assignment (e.g. matrix[x][y] = 5.4)
  - Matrix[index] = value now expectes a sequence not an integer. This will now set a ROW of the matrix through a sequence.  index cannot go above the row size of the matrix.
  - slice operations on matrices work with sequences now (rows of the matrix) example:  mymatrix[0:2] returns a list of 2 wrapped vectors with access to the matrix data.
  - slice assignment will no longer modify the data if the assignment operation fails
  - fixed error in matrix * scalar multiplication
  - euler.toMatrix(), toQuat() no longer causes "creep" from repeated use
  - Wrapped data will generate wrapped objects when toEuler(), toQuat(), toMatrix() is used
  - Quats can be created with angle/axis, axis/angle
  - 4x4 matrices can be multiplied by 3D vectors (by popular demand :))
  - vec *quat / quat * vec is now defined
  - vec.magnitude alias for vec.length
  - all self, internal methods return a pointer to self now so you can do print vector.internalmethod() or vector.internalmethod().nextmethod() (no more print matrix.inverse() returning 'none')
  - these methods have been deprecated (still functioning but suggested to use the corrected functionality):
    * CopyVec() - replaced by Vector() functionality
    * CopyMat() - replaced by Matrix() functionality
    * CopyQuat() - replace by Quaternion() functionality
    * CopyEuler() - replaced by Euler() functionality
    * RotateEuler() - replaced by Euler.rotate() funtionality
    * MatMultVec() - replaced by matrix * vector
    * VecMultMat() - replaced by vector * matrix
  -  New struct containers references to python object data or internally allocated blender data for wrapping
  * Explaination here:  math structs now function as a 'simple wrapper' or a 'py_object' - data that is created on the fly will now be a 'py_object' with its memory managed by python
  *    otherwise if the data is returned by blender's G.main then the math object is a 'simple wrapper' and data can be accessed directly from the struct just like other python objects.

15 years agoA few additions/changes suggested by Chris Burt
Johnny Matthews [Thu, 14 Jul 2005 02:52:51 +0000 (02:52 +0000)]
A few additions/changes suggested by Chris Burt

1. Return and PADENTER confirm loopcut and edgeslide
2. When choosing loop to cut in loopcut, can use numeric entry for number of cuts (less than 130)
3. Number of Cuts in loopcut printed in header

15 years agoAdded drawarmature to src project
Joseph Gilbert [Thu, 14 Jul 2005 01:58:14 +0000 (01:58 +0000)]
Added drawarmature to src project

15 years agoThree fixes;
Ton Roosendaal [Wed, 13 Jul 2005 21:28:43 +0000 (21:28 +0000)]
Three fixes;

- Armature editmode, while armature was deforming children, was very slow
  because it kept making subsurfs... this goes still hackish :)
- CTRL+A on armatures used loadsa old code, removed all of it! Still works.
- Using "Set smooth" or "Set solid" on file loaded without 3d window
  crashed

15 years agoPrevious commit for Xray bones disabled selection of bones. Overlooked one
Ton Roosendaal [Wed, 13 Jul 2005 20:21:54 +0000 (20:21 +0000)]
Previous commit for Xray bones disabled selection of bones. Overlooked one
if()...

15 years ago - Change DerivedMesh.drawSolidFaces setMaterial argument to return
Daniel Dunbar [Wed, 13 Jul 2005 20:16:35 +0000 (20:16 +0000)]
 - Change DerivedMesh.drawSolidFaces setMaterial argument to return
   boolean value indicating whether faces with that material should
   be drawn or not.

15 years agoArmature "XRay mode" now draws nicely with solid too. For it to work, I
Ton Roosendaal [Wed, 13 Jul 2005 19:42:08 +0000 (19:42 +0000)]
Armature "XRay mode" now draws nicely with solid too. For it to work, I
had to add a new feature to the 3d window, to collect "after draw" objects,
which get drawn as last, after a clear of the zbuffer.

Same method can be used for nice OpenGL transparent draw, the system is
ready for it, do that later.

The huge commit is caused by cleaning up globals from struct Global. Many
variables were unused or just not needed anymore. Did that to move the ugly
G.zbuf to where it belongs, in the View3D space struct. :)

15 years agoIf loopcut was cancelled, the screen was not refreshed to get rid of the last preview...
Johnny Matthews [Wed, 13 Jul 2005 19:39:01 +0000 (19:39 +0000)]
If loopcut was cancelled, the screen was not refreshed to get rid of the last preview line.

Thanks to Desoto for reporting.

15 years agoA warning cleanup from the last commit. Added some explicit casts. Should just be...
Johnny Matthews [Wed, 13 Jul 2005 16:33:30 +0000 (16:33 +0000)]
A warning cleanup from the last commit. Added some explicit casts. Should just be double to float warnings left here now. Will do more later

Also made edgeslide move a little faster for the time being.

15 years agoWell here it is. Subdivision/Loop Tools Recode Commit #1
Johnny Matthews [Wed, 13 Jul 2005 15:20:40 +0000 (15:20 +0000)]
Well here it is. Subdivision/Loop Tools Recode Commit #1

Ton has been pushing me to get this in and finish it up with help, so here is a run down of the commit

Revised Features
Subdivide now is Edge based, allows for multicut
Loopcut was recoded, now has multi option
Knife tool now has multi option

New Features
Edgeslide
Edgering select

Removed Features
Alt-B Edgeloop selection (use alt-RMB in edgemode)
Shift-R Faceloop selection (use alt-RMB in facemode)
Old Subdivide (Except for smooth which is left in until new one works)

Todo
Subdivide Smooth Math is broken - could use some help here (look for alter_co in editmesh_tools.c)
Tweak mouse control of Edgeslide is hackish ATM
Add Non-proportional movement  to edgeslide
Add smooth option to new loopcut

I probably left something out.

See here for more info
http://wiki.blender.org/bin/view.pl/Blenderdev/EdgeSubdivision

15 years agoAnother old bug bites the dust! Actually the error was simple... but
Ton Roosendaal [Wed, 13 Jul 2005 13:56:15 +0000 (13:56 +0000)]
Another old bug bites the dust! Actually the error was simple... but
thanks to depgraph it executes nicely now. :)

#bug 2397: frame-duplicator using Constraint not evaluated.

15 years agoCouple of small fixes;
Ton Roosendaal [Wed, 13 Jul 2005 13:30:51 +0000 (13:30 +0000)]
Couple of small fixes;

- cleaned up 'version correction' a bit. There was code slowing down
  current files even (armatures were evaluated all, even when not in
  current layer, was added to make sure they get converted OK).
  Send me old files that crash now! :)
- on reading older files with path-constraints, a fix had to be added.
- error "badd call to addqueue' found when using header-less window for
  filewindow

15 years agoRemoved initializer str = "";
Ton Roosendaal [Wed, 13 Jul 2005 08:56:07 +0000 (08:56 +0000)]
Removed initializer  str = "";
Seems to give issues in MSVC, and wasn't needed after all.

Further fixed dependencies in constraints between armatures and armatures.
It didn't update the other armature when the armature-object itself moved.

15 years agoTwo little bugskis;
Ton Roosendaal [Tue, 12 Jul 2005 17:46:39 +0000 (17:46 +0000)]
Two little bugskis;

- Solid armature drawing didn't do well for negative scaled armatures
- Layer Ipos were not evaluated for invisible objects (there goes another
  exception bypassing dependency...!)

15 years ago - add missing include
Daniel Dunbar [Tue, 12 Jul 2005 17:26:19 +0000 (17:26 +0000)]
 - add missing include

15 years agoFix "Replace Meshes" in radiosity to actually only replace Meshes, and not
Alexander Ewering [Tue, 12 Jul 2005 16:24:27 +0000 (16:24 +0000)]
Fix "Replace Meshes" in radiosity to actually only replace Meshes, and not
also delete lamps, cameras and anything else that was selected in the
"Collect Meshes" phase.

15 years agoACK! Forgot to add the new drawarmature.c file. :)
Ton Roosendaal [Tue, 12 Jul 2005 16:02:50 +0000 (16:02 +0000)]
ACK! Forgot to add the new drawarmature.c file. :)

15 years agoConstraint "influence" slider didn't work once there was an ipo assigned
Ton Roosendaal [Tue, 12 Jul 2005 16:00:47 +0000 (16:00 +0000)]
Constraint "influence" slider didn't work once there was an ipo assigned
once. Variable got initialized too often. :)

Oh! Here's a nice webpage about the previous commit:

http://www.blender3d.org/cms/Armature_draw_modes.629.0.html

15 years agoCleanup of Armature 3d drawing.
Ton Roosendaal [Tue, 12 Jul 2005 15:47:53 +0000 (15:47 +0000)]
Cleanup of Armature 3d drawing.

- In Solid drawmode, bones get drawn solid too now. Including Outline-
  selection color, if that's set.
  Disable it by setting Object-buttons "drawtype" for the Armature.
  Color used for solid bones is in Theme editor.
- EditMode armature now follows (Mesh edit) theme colors (Vertex, Edge)
- PoseMode armature has ThemeColor for selection, and draws three extra
  colors now;
   - blue shade for bones with action Ipos
   - yellow for bones with IK
   - green for bones with a constraint
- "X ray" now only works for PoseMode... needs review, can be done better
- "Draw Names" option uses theme color too, also indicates selection.

Fixes;

- In Armature EditMode, the deformed Mesh goes to rest-position
- Border select didn't clear 'active' flag in Bones in PoseMode
- Mouse-click select didn't work when a dashed line was close to Bone

15 years ago - added missing include
Daniel Dunbar [Tue, 12 Jul 2005 13:50:42 +0000 (13:50 +0000)]
 - added missing include

15 years agoThe hide .data code didn't work correctly when databrowse is used to return something...
Martin Poirier [Tue, 12 Jul 2005 03:37:16 +0000 (03:37 +0000)]
The hide .data code didn't work correctly when databrowse is used to return something (when selecting a datablock, not just browsing).
It only counted visible blocks, but to get a valid index, it has to count invisible ones too.

Fixed

15 years agoHide .file blocks in databrowse/pop menu.
Martin Poirier [Mon, 11 Jul 2005 23:49:06 +0000 (23:49 +0000)]
Hide .file blocks in databrowse/pop menu.
This is mainly useful for scripts that generate/load datablocks for their own use and don't want to burry the user under an avalanche of datablocks he/she doesn't care about.

This adds a user pref "Hide .data" which now acts as a default value when opening a new fileselector.
It is also used when creating data select pop menus.

The "ghost" button in a fileselect window is independant from the userpref. It can be turned on/off individually without affecting

Note: When turning the option on/off, it sometimes take a couple of times before the pop menu registers it. Probably some caching thing. Will have to look at it.

Default value is Off.

15 years agoMy Radiosity commit had some code from my base list ordering experiement. (It wasn...
Martin Poirier [Mon, 11 Jul 2005 23:23:06 +0000 (23:23 +0000)]
My Radiosity commit had some code from my base list ordering experiement. (It wasn't removed because it didn't use the macros)
Caused radio to often say "no vertices" when that was obviously untrue.

15 years ago- Object buttons, Hooks panel, clear offset didn't redraw correct
Ton Roosendaal [Mon, 11 Jul 2005 19:31:15 +0000 (19:31 +0000)]
- Object buttons, Hooks panel, clear offset didn't redraw correct
- Particle panel was drawing in wrong size

15 years agoNew: Armature editmode/posemode now react correctly to HOME or Numpad-DOT
Ton Roosendaal [Mon, 11 Jul 2005 17:12:33 +0000 (17:12 +0000)]
New: Armature editmode/posemode now react correctly to HOME or Numpad-DOT
for viewing all or only selection nicely centered.

Fix: Poses without NLA or Action were reset to restposition on file read
or exit editmode.

15 years ago - added bglVertex3f call (to match bglVertex3fv)
Daniel Dunbar [Mon, 11 Jul 2005 17:06:03 +0000 (17:06 +0000)]
 - added bglVertex3f call (to match bglVertex3fv)

15 years agoFix: Prevented depgraph to execute do_all_actions when you paste a poste.
Ton Roosendaal [Mon, 11 Jul 2005 15:38:51 +0000 (15:38 +0000)]
Fix: Prevented depgraph to execute do_all_actions when you paste a poste.

15 years agoCorrected the Armature option "Delay deform", which doesn't update its
Ton Roosendaal [Mon, 11 Jul 2005 13:59:02 +0000 (13:59 +0000)]
Corrected the Armature option "Delay deform", which doesn't update its
children during transform... to make it work, had to trick the nice
depgraph code... <sob> :)

15 years agoSLightly altered rule for the new IpoCurve option "Keep horizontal on
Ton Roosendaal [Mon, 11 Jul 2005 12:31:15 +0000 (12:31 +0000)]
SLightly altered rule for the new IpoCurve option "Keep horizontal on
extrema". It now also keeps auto-handles horizontal when the Y coordinate
is exactly identical.

And; made this option default on inserting new curve/keys.

15 years ago Fix for bug #2747
Ton Roosendaal [Mon, 11 Jul 2005 11:58:29 +0000 (11:58 +0000)]
 Fix for bug #2747

Knife cut in edge selection mode can cause crashes, since it uses subdivide
which isn't edge-select aware yet.
Quickly patched it by making knife checking on vertex selection.

Johnny: undo this change when you add the new subdiv code, good test for if
it works as well! :)

15 years agoBoundbox select object mode optimisation.
Martin Poirier [Mon, 11 Jul 2005 11:09:26 +0000 (11:09 +0000)]
Boundbox select object mode optimisation.

Changed selectprojektie (and renamed to view3d_opengl_select as suggested by Ton) to accept a buffer size, so boundbox can adapt it's buffer size to the number of object in scene.
Also, the loop is done more smartly, since glSelect fills the buffer in the same order as the drawing order, so we save lops of looping on unselected object (which used to go through all the buffer before finding that they weren't selected).

This scheme could probably be applied to all the other loops using glSelect. (good project for newbie coders)

15 years agoBug fix #2762
Ton Roosendaal [Mon, 11 Jul 2005 11:01:06 +0000 (11:01 +0000)]
Bug fix #2762

Quite harmless, but was lazy code...
When you choosed "Vertex Color Paint" material, the init_render_material()
also set the "Vertex color Light" option, because that flag was checked on
during render to detect vertex colors.
Now it has proper checks in render code.

15 years agoThis commit fixes radiosity to correctly preserve and subdivide UV
Martin Poirier [Mon, 11 Jul 2005 10:48:14 +0000 (10:48 +0000)]
This commit fixes radiosity to correctly preserve and subdivide UV
coordinates.

  Known problem: Pin status bleeds a bit, so new subdivided UVs around
points that were original pinned can end up pinned in the end. Could be
fixed, or could just drop pinned status entirely.

Also, when gathering meshes, it doesn't add materials twice, so it's harder to bust the 16 materials limit.

15 years agoBug fix #2763
Ton Roosendaal [Mon, 11 Jul 2005 09:46:05 +0000 (09:46 +0000)]
Bug fix #2763

Depgraph missed proper relation from one armature bone to another armature
bone. Interesting rig setup for facial animation by Malefico! :)
http://projects.blender.org/tracker/index.php?func=detail&aid=2763&group_id=9&atid=125

15 years agoBugfix for #2768
Ton Roosendaal [Mon, 11 Jul 2005 09:27:35 +0000 (09:27 +0000)]
Bugfix for #2768

Starting a Bake for SoftBody didn't initialize the animation system for the
first frame correctly, causing an initial unwanted softbody effect.

15 years agoBug fix #2772
Ton Roosendaal [Mon, 11 Jul 2005 09:17:43 +0000 (09:17 +0000)]
Bug fix #2772

EditMesh undo didn't restore vertex colors! That slipped our attention for
almost a year... :)

15 years agoMore cleanup: removed do_all_actions() from the src/ tree, replaced with
Ton Roosendaal [Mon, 11 Jul 2005 08:33:52 +0000 (08:33 +0000)]
More cleanup: removed do_all_actions() from the src/ tree, replaced with
proper recalc events. Now action-curve editing updates as it should be.

15 years agoCleaned up the old call to do_all_actions(). It only is supposed to do
Ton Roosendaal [Mon, 11 Jul 2005 08:04:34 +0000 (08:04 +0000)]
Cleaned up the old call to do_all_actions(). It only is supposed to do
a single object, but was still called outside of that scope. Caused crashes
for example when editing Ipo curves of action keys.

editaction.c and editnla.c still need to be tackled...

15 years agoMetaBall editmode didn't send the DAG recalc event while transformed. :)
Ton Roosendaal [Mon, 11 Jul 2005 07:31:51 +0000 (07:31 +0000)]
MetaBall editmode didn't send the DAG recalc event while transformed. :)
Meaning, it didn't do polygonizing while moving elements in edit mode.

15 years agoScripts updated:
Willian Padovani Germano [Mon, 11 Jul 2005 02:41:08 +0000 (02:41 +0000)]
Scripts updated:
- Jean-Michel Soler: paths import -- ai and svg modules;
- Jean-Baptiste PERIN: bvh to armatures (note: should not work until we re-wrap armatures in bpython);
- Campbell Barton: obj importer.

Thanks guys, excuse me the delay.

- tiny doc update.

15 years agoRemoved ika files from projectfiles for armature update
Joseph Gilbert [Sun, 10 Jul 2005 20:40:20 +0000 (20:40 +0000)]
Removed ika files from projectfiles for armature update

15 years agoFix for Bug #2793.
Johnny Matthews [Sun, 10 Jul 2005 13:45:12 +0000 (13:45 +0000)]
Fix for Bug #2793.

A really dumb coding error that I made when I coded this. left out brackets around an if block.

15 years agoFor long on the wanna-have list;
Ton Roosendaal [Sun, 10 Jul 2005 12:50:14 +0000 (12:50 +0000)]
For long on the wanna-have list;

Ipocurves with "Auto" handles now have option to remain horizontal on the
extrema (tops & valleys). Use ALT+H to set this per selected curve.
Note this is a per-curve feature, not per-handle.

If it works satisfying I can check on making this the default new added
curve.

15 years agoBug fix #2774
Ton Roosendaal [Sun, 10 Jul 2005 11:00:27 +0000 (11:00 +0000)]
Bug fix #2774

Using linked library files with relative paths, didn't set the correct
relative root... so it only worked with files in the same directory.
ALso fixed the button-lock in material buttons, it didn't allow to see
which materials were linked to the mesh/object.

15 years agoDuplicating armatures didn't give proper re-build pose signal.
Ton Roosendaal [Sun, 10 Jul 2005 10:36:01 +0000 (10:36 +0000)]
Duplicating armatures didn't give proper re-build pose signal.

15 years agoSwitching scenes in the editor now correctly exits all modes, it didn't do
Ton Roosendaal [Sun, 10 Jul 2005 09:55:55 +0000 (09:55 +0000)]
Switching scenes in the editor now correctly exits all modes, it didn't do
vertex/weight/texture paint yet.

15 years agoBug fix #2790
Ton Roosendaal [Sun, 10 Jul 2005 09:42:13 +0000 (09:42 +0000)]
Bug fix #2790

Pressing Wkey with no object active crashed.

15 years agoBugfix #2791
Ton Roosendaal [Sun, 10 Jul 2005 09:38:36 +0000 (09:38 +0000)]
Bugfix #2791

Apply deform without object active crashed (only when using pulldowns)

15 years agoBugfix #2797
Ton Roosendaal [Sun, 10 Jul 2005 09:32:30 +0000 (09:32 +0000)]
Bugfix #2797

Editmesh SHIFT+F "Fill" used an unsigned char to count amount of selected
edges linking to vertices, but also subtracted... causing the char to
become 255. Gave crashes (or infinite loops) when using "Fill" on random
input of solid meshes.

15 years agoBugfix #2803
Ton Roosendaal [Sun, 10 Jul 2005 08:55:14 +0000 (08:55 +0000)]
Bugfix #2803

Transparent shadow could accidentally intersect first with a face being
farther away, due to the fact larger faces can fill up multiple octree
nodes. Had to use the same exception handling as for raytracing mirror or
glass.

15 years agoChanged type for new textimeout and texcollectrate into "int".
Ton Roosendaal [Sun, 10 Jul 2005 08:31:56 +0000 (08:31 +0000)]
Changed type for new textimeout and texcollectrate into "int".

Please note that the "long" should be avoided in dna structs... it is a
reserved type for use in our code for pointer storage. It is 32 or 64 bits,
depending CPU architecture (pointer size).

The "long" type currently is in the makesdna.c code, and interpreted as 32
bits only, which is actually wrong yes... I should remove it or code it
correct.

BTW; this gave a warning in space.c, another case where MSVC forgives you?
:)

15 years agoArmature;
Ton Roosendaal [Sat, 9 Jul 2005 20:40:44 +0000 (20:40 +0000)]
Armature;

- IK constraint now uses Ipo from action again
- Bug in last commit; the object action was ignored... did NLA always

Editmesh:

- when there are edges in mesh, it now only copies selection in edges
  when you have selectmode edge

15 years agoNew! Pose-constraint Ipos now are integrated in NLA. ALso cleaned up the
Ton Roosendaal [Sat, 9 Jul 2005 19:37:38 +0000 (19:37 +0000)]
New! Pose-constraint Ipos now are integrated in NLA. ALso cleaned up the
weird disabled code that was hanging out there for ages.

Also cleaned up NLA blending itself, it was copying far too much data
around. Should be three times faster or so... need good test!

And restored Action Baking.

15 years ago - add missing includes for lazy programmers who don't read error msgs
Daniel Dunbar [Sat, 9 Jul 2005 18:04:53 +0000 (18:04 +0000)]
 - add missing includes for lazy programmers who don't read error msgs

15 years ago - fix what appeared to be obvious bug, "if (fclose) fclose(file)" ->
Daniel Dunbar [Sat, 9 Jul 2005 17:54:03 +0000 (17:54 +0000)]
 - fix what appeared to be obvious bug, "if (fclose) fclose(file)" ->
   "if (file) fclose(file)", Text3d.c owner should check.

15 years agoArmatures; the bones menu used for "Make Parent" (CTRL+P) used wrong
Ton Roosendaal [Sat, 9 Jul 2005 16:16:45 +0000 (16:16 +0000)]
Armatures; the bones menu used for "Make Parent" (CTRL+P) used wrong
indices still.
Cleaned the code, moved to editobject.c

15 years agoArmature drawing fixes;
Ton Roosendaal [Sat, 9 Jul 2005 14:08:09 +0000 (14:08 +0000)]
Armature drawing fixes;

- Dashed line to parent bone was drawn to wrong bone in Rest Position
- Dashed line had selection color of parent, not of own bone.

15 years ago- Fix for action constraints; for Bone targets (target is input bone
Ton Roosendaal [Sat, 9 Jul 2005 13:41:01 +0000 (13:41 +0000)]
- Fix for action constraints; for Bone targets (target is input bone
  actually) only the relative rotation is used.

- Added scale=1.0 initializer in saving files, this fixes a little  bit
  better upward compatibility

- Still there are cases where bones flip 180 degrees when you read it with
  older Blenders... not sure what it is caused by

15 years agoCommented out one more line to make debug version of engine compile, needed
Ton Roosendaal [Sat, 9 Jul 2005 13:33:36 +0000 (13:33 +0000)]
Commented out one more line to make debug version of engine compile, needed
because API for armatures changed.

15 years agoTwo little bugs showing up in workshop;
Ton Roosendaal [Fri, 8 Jul 2005 06:55:10 +0000 (06:55 +0000)]
Two little bugs showing up in workshop;

- update_for_new_frame() (on frame advance, alt+a) crashed when no 3d view
  was opened ever (NULL pointer)
- using proportional mode on Curve editing wrote beyond end of a malloced
  block. Just a minus one needed here...

15 years agoTwo small fixes;
Ton Roosendaal [Thu, 7 Jul 2005 07:03:35 +0000 (07:03 +0000)]
Two small fixes;

- ALT+R clear rotation on PoseMode didn't work when an Action was assigned
- 'Delete object' didn't set object pointers to NULL for Armature/Pose
  constraints (old bug)

15 years agoWell, it's better if the spelling is corrected everywhere the variable is used.....
Martin Poirier [Wed, 6 Jul 2005 08:14:13 +0000 (08:14 +0000)]
Well, it's better if the spelling is corrected everywhere the variable is used... (why must I make that kind of error?!)

15 years agoAfter much debate on IRC, it was decided to spell "cancelled" properly...
Martin Poirier [Wed, 6 Jul 2005 08:09:51 +0000 (08:09 +0000)]
After much debate on IRC, it was decided to spell "cancelled" properly...

15 years agoPressing ESC on armature posemode now restores position correctly again.
Ton Roosendaal [Wed, 6 Jul 2005 07:31:43 +0000 (07:31 +0000)]
Pressing ESC on armature posemode now restores position correctly again.