16 years agoRemoved a couple of redundant "FTF_api.h" includes,
Rob Haarsma [Wed, 23 Mar 2005 21:10:03 +0000 (21:10 +0000)]
Removed a couple of redundant "FTF_api.h" includes,
removed leftovers from Freeimage/Imagemagick experiments
and removed stuff from a Quicktime for linux implementation.

Also removed the (win32) Fullscreen button from the UI and
disabled the corresponding commandline option. The code is
still present to reenable the option whenever the ATI issues
get solved.

16 years agoMoved init of new gridview variable, for adaptive grid steps, out of
Ton Roosendaal [Wed, 23 Mar 2005 21:08:15 +0000 (21:08 +0000)]
Moved init of new gridview variable, for adaptive grid steps, out of
function that was only called in ortho... grid snapping otherwise can
not work. Thanks i-Alexander for reporting!

16 years agobug fix #2367
Ton Roosendaal [Wed, 23 Mar 2005 19:21:43 +0000 (19:21 +0000)]
bug fix #2367

Activate object in oops, while in posemode (or even editmode) was possible,
potentially causing all kinds of nasty stuff.

16 years agoFix for bug #1444
Daniel Dunbar [Wed, 23 Mar 2005 19:00:57 +0000 (19:00 +0000)]
Fix for bug #1444
 - this changed creasing behavior at vertices with >2 adjacent creased
   edges. Hope no one minds (new behavior should be nicer).

16 years ago- Fix for CTRL (and possible ALT, SHIFT) as hotkey; now also works while
Ton Roosendaal [Wed, 23 Mar 2005 18:50:03 +0000 (18:50 +0000)]
- Fix for CTRL (and possible ALT, SHIFT) as hotkey; now also works while
  moving mouse around :)
- Shift+D duplicate uses new transform

16 years agoa fix for:
Kent Mein [Wed, 23 Mar 2005 18:33:52 +0000 (18:33 +0000)]
a fix for:

blender now does a little more homework to figure out what type of avi file is
being loaded.


16 years agoBug fix #2375
Ton Roosendaal [Wed, 23 Mar 2005 16:55:22 +0000 (16:55 +0000)]
Bug fix #2375

Akey in ipowindow didn't deselect anymore. Or worse... each main refresh
in ipowindow selected all ipos!

Was related to trying to fix mess from jK's commit last year... now its
scientifically ok again! :)

16 years agoBug fix #2349
Ton Roosendaal [Wed, 23 Mar 2005 15:40:50 +0000 (15:40 +0000)]
Bug fix #2349

Outliner click on mesh in screen without 3d window crashed. NULL pointer!

16 years agoNew feature, since long on todo;
Ton Roosendaal [Wed, 23 Mar 2005 14:24:43 +0000 (14:24 +0000)]
New feature, since long on todo;

The grid function (transform translate, snap-to) now uses the grid step as
displayed in the 3d window, so it depends on how much you zoomed in/out.

The threshold for it is a bit tricky... it follows the drawing, but the
blending in/out of grid makes it sometimes not obvious.  might need slight

16 years agoMonkey got accidentally 'recalcnormalled'. Causing eyes to have normals
Ton Roosendaal [Wed, 23 Mar 2005 13:09:22 +0000 (13:09 +0000)]
Monkey got accidentally 'recalcnormalled'. Causing eyes to have normals
pointing inside. Fixed!

16 years agoBug #2444
Ton Roosendaal [Wed, 23 Mar 2005 12:47:23 +0000 (12:47 +0000)]
Bug #2444

Jkey, for showing spare render page, didn't work when using ztransp
material, or buttons F5 open or shaded view.... quite strange eh!
Caused by init-render-material setting R.flag to use Ztransp render.
Globals causing havock yes...

16 years agoTransform stuff for TEST!
Ton Roosendaal [Wed, 23 Mar 2005 11:49:54 +0000 (11:49 +0000)]
Transform stuff for TEST!

- 4th rotation widget styling, activate with Scene buttons, Anim panel, "rt"
  on "4".
- drawing constraint lines replaced with widget compatible styling.
  (functionality unchanged)

- click on center for Rotate widget didn't switch to local/normal in all

16 years agoUpdated channel listing for help with compiling Blender to reflect (once
Chris Burt [Tue, 22 Mar 2005 23:38:34 +0000 (23:38 +0000)]
Updated channel listing for help with compiling Blender to reflect (once
again) the existence of #blendercompilers. Also added link to updated
compiling guide found here:

Thanks to Tom M. and joeedh for pointing out that it should be updated.

16 years agoSmall fix; when pulldown menus are too large to display (they get aligned
Ton Roosendaal [Tue, 22 Mar 2005 15:56:58 +0000 (15:56 +0000)]
Small fix; when pulldown menus are too large to display (they get aligned
with top/bottom to active button) the menu aligns from bottom of blender

This already happened for File->Export menu

16 years ago- Removed temporal hack that switched manipulator type on G, R, S hotkeys.
Ton Roosendaal [Tue, 22 Mar 2005 15:01:36 +0000 (15:01 +0000)]
- Removed temporal hack that switched manipulator type on G, R, S hotkeys.
  That was blocking immediate hotkey access for normal blendering.
- New, experimental, hotkey to switch: CTRLKEY! Added code in such a way
  it detects a CTRL key press and release without using it as modifier.
  Pressing CTRL will cycle through the 3 manipulator types.

- Fix for yesterday's commit; click on centerpoint for switching
  orientation happened too on a click for other widgets. Not nice...

16 years ago - Nothing to see hear, move along, move along.
Daniel Dunbar [Tue, 22 Mar 2005 14:57:14 +0000 (14:57 +0000)]
 - Nothing to see hear, move along, move along.

16 years agoReordered some of the includes to fix STL issues.
Kent Mein [Tue, 22 Mar 2005 13:34:31 +0000 (13:34 +0000)]
Reordered some of the includes to fix STL issues.

For details, see:


16 years agoAdded call in creating transform data Mesh editmode to calculate vertex-
Ton Roosendaal [Tue, 22 Mar 2005 11:10:04 +0000 (11:10 +0000)]
Added call in creating transform data Mesh editmode to calculate vertex-
normals for the ALT+S "shrink/fatten" option.

16 years agoadd files for Daniel Dunbar's new CCGSUBSURFLIB work to SCons build.
Stephen Swaney [Tue, 22 Mar 2005 07:45:20 +0000 (07:45 +0000)]
add files for Daniel Dunbar's new CCGSUBSURFLIB work to SCons build.
This commit *only* adds the new files.

Since this is an experimental feature, it is NOT enabled by default.

At the moment, you can turn it on by editing the toplevel SConstruct
file.  NOTE:  this is a hack.  it will be done properly later!

To enable this experimental feature,
add the following line after the line that starts with 'extra_flags = ['

    extra_flags.append( '-DUSE_CCGSUBSURFLIB' )

16 years ago - Hacked in blender style creasing support to new subsurfs.
Daniel Dunbar [Tue, 22 Mar 2005 06:11:25 +0000 (06:11 +0000)]
 - Hacked in blender style creasing support to new subsurfs.

I would like to have proper creasing (following what appears to be
the informal standard in the subdivision surface literature) but
I do not know when I will get to this or how complicated it will
be. With this patch CCGSubSurfs should now have the same capabilities
as regular subsurfs (barring possible bugs) and so replacing the
old implementation is a reasonable possibility.

16 years agoBPython:
Willian Padovani Germano [Tue, 22 Mar 2005 04:28:36 +0000 (04:28 +0000)]
-- Stephane Soppera (thanks) reported libc stat function fails for paths ending with "\" under win with free VC++ compiler toolkit 2003:
    removed final '/' (BLI_make_file_string changes the '/' to '\\\\' for win) slashes from relevant paths, that should take care of it .  Note: here (linux, glibc, gcc 3.3.3) stat doesn't have this problem.  Also checking if U.pythondir ends with a slash and, if so (as long as its length > 2 to), removing the slash, for the same reason.
-- small cosmetic changes in BPY_menus.c for debug msgs and in header_scripts (added a separator in the Scripts win -> Scripts menu).

16 years agoTransform widget update
Ton Roosendaal [Mon, 21 Mar 2005 22:51:05 +0000 (22:51 +0000)]
Transform widget update

- now support for global/local/normal orientation.
- LMB click on center switches orientation mode
- in object mode, local (now) only displays on single object selected
- in editmode, Normal orientation is derived from faces selected
- if no normal can be found, it shows local orientation

Currently implemented, for test, in Mesh editmode and PoseMode.

Note for PoseMode; the 'translation widget' shows on "IK" bones but
doesn't translate, it rotates instead. Pretty interesting to use the
translate widget for it...least cluttered display I think.

Note for Matt; I tried MMB click for switching orientation... it's just
weird that way... such clicks, repeatedly, with mousewheels isnt nice

16 years agoAdded option to use new subsurf module added by Daniel Dunbar. Simply add:
Chris Burt [Mon, 21 Mar 2005 22:32:02 +0000 (22:32 +0000)]
Added option to use new subsurf module added by Daniel Dunbar. Simply add:

export NAN_NEW_SUBSURF=true

to your file.

16 years agoSize flipping, for kaito. Move pointer to the other side (horizontal) of the pointer...
Martin Poirier [Mon, 21 Mar 2005 20:35:00 +0000 (20:35 +0000)]
Size flipping, for kaito. Move pointer to the other side (horizontal) of the pointer to see. (Does affects size member, so just object position and edit mode)

16 years agoFix for possible divide by zero error in Rotate.
Martin Poirier [Mon, 21 Mar 2005 19:16:39 +0000 (19:16 +0000)]
Fix for possible divide by zero error in Rotate.

Fix for MMB behavior when two axis were exactly on one another or very close. It now defaults like this: X, Y, Z (meaning if as near as X as Y, it chooses X). This could be fixed further.

16 years agoCreated initConstraint. It basicly just checks if the CON_APPLY has been set up ...
Martin Poirier [Mon, 21 Mar 2005 18:25:17 +0000 (18:25 +0000)]
Created initConstraint. It basicly just checks if the CON_APPLY has been set up (by the BIF_setConstraint calls for example) and calls startConstraint. This must be done because startConstraint uses data initialised when starting transform so it needs to be called after that.
Also changed some strcpy into strncpy.

16 years agoAdded string to BIF_setSingleAxisConstraint() function for headerprint.
Ton Roosendaal [Mon, 21 Mar 2005 17:52:45 +0000 (17:52 +0000)]
Added string to BIF_setSingleAxisConstraint() function for headerprint.
Needed for martin to further work on print stuff

16 years agoShrink/Fatten behavior change. This time for good I hope.
Martin Poirier [Mon, 21 Mar 2005 17:36:21 +0000 (17:36 +0000)]
Shrink/Fatten behavior change. This time for good I hope.

Technically, it now works by getting the mouse motion in 3D (just like Translation/Grab), projecting it on the vertical view axis, using the vector length as the shrink/fatten factor. If the motion is downward (on the screen), shrink, if it is upward, fatten.
In layman terms: move up to fatten, down to shrink and it adapts to the viewport zoom, like Translation.

I changed to snapgrid factors to match those of Translation to, so it really acts like grabbing.

16 years agoTransform:
Ton Roosendaal [Mon, 21 Mar 2005 16:36:43 +0000 (16:36 +0000)]

- cleaner code for selection of handles in transform widget. in ortho views
  selecting the center handle defaults, to prevent Inf. overflows for
  perpendicular handles. While holding SHIFT it works the opposite!

- removed redraws on modifier (CTRL, SHIFT) key release. that ensures you
  can apply to grid nicely (functioned that way in all blender releases)

16 years agoMore transform widget goodies;
Ton Roosendaal [Mon, 21 Mar 2005 14:20:04 +0000 (14:20 +0000)]
More transform widget goodies;

- added 'ghosting' for while using translate/scaling widget
- added 'pie chart' ghost to denote angle while using rotate widget
- added settings to tweak widget in User menu (InfoWindow) "View & Control"
  - Size: total widget size as percentage of window size
  - Handle: as percentage of widget radius
  - Hotspot: for clicking handles, in pixels
  - Fized Size: option to make Widget size independent of window size
  Not sure if all of these are useful to keep, but makes for good testing
  in this stage.

Also: made #define to use new transform to be set TRUE by default now. :)

16 years agoScripts (making some changes to the scripts dir):
Willian Padovani Germano [Mon, 21 Mar 2005 05:26:52 +0000 (05:26 +0000)]
Scripts (making some changes to the scripts dir):
- moved bpydata/ to scripts/bpydata/ and added a config/ subdir to it;
- created scripts/bpymodules for py modules (also got rid of those "mod_"'s appended to the files);
- updated scripts accordingly.

This will require you to "reinstall" (just copy the scripts/ dir over your older one) if you have a .blender/scripts/ dir somewhere.  Otherwise some scripts won't work.  You can use the updated "Help->System->System Information" script here to check all is fine.  An installer script yet to be written will help users with these issues, specially to make the user defined dir have the same structure expected from the default scripts dir, so the basic facilities (module search; saved config data; scripts: installer, help browser, config editor) are also available for a user's own collection of written and downloaded scripts.

- slikdigit's crash was because he had no <home or blender exe location>/.blender/:
  proper check added and also now if all else fails the <cvsblender>/release/scripts/ dir is also searched for scripts.  All this registration dirs stuff is a little messy (installation!), so please report any troubles (I only tested on linux).
- slight change in error report in BPY_interface.c's BPY_menu_do_python; remembering to set globaldict pointer to NULL there, too.
- moved bpy_gethome() to EXPP_interface.[ch]
- "//" as user defined python dir is ignored while looking for scripts, considering it's only a default some users use, not really meant for a scripts dir.

16 years ago - update new conversion to DLM routine to use match subsurf
Daniel Dunbar [Mon, 21 Mar 2005 04:22:58 +0000 (04:22 +0000)]
 - update new conversion to DLM routine to use match subsurf
   (means optim, seams, selection should work same now, but I am
   not super familiar with all this stuff so can't test very well).

   These hacks to the DLM structure are disgusting btw Ton. What
   a waste of memory! All the information that is so meticulous to
   kept and managed in the old structure is essentially explicit (or
   easily made so) in the new one.

16 years ago - remove some duplicate prototypes, causes problems for some compilers
Daniel Dunbar [Mon, 21 Mar 2005 02:03:42 +0000 (02:03 +0000)]
 - remove some duplicate prototypes, causes problems for some compilers

16 years ago - Part of CCGSubSurf integration, this is the actual blender side of the
Daniel Dunbar [Mon, 21 Mar 2005 01:37:14 +0000 (01:37 +0000)]
 - Part of CCGSubSurf integration, this is the actual blender side of the

16 years ago - Initial integration of CCGSubSurf library into blender. The lib is
Daniel Dunbar [Mon, 21 Mar 2005 01:34:27 +0000 (01:34 +0000)]
 - Initial integration of CCGSubSurf library into blender. The lib is
   only in one C file and not worth dropping in extern but presumably
   will be synced with public CCGSubSurf release I hope to be making
 - Currently the implementation must be enabled by defining
   USE_CCGSUBSURFLIB somewhere with your build system. The code should
   be considered highly experimental.

16 years ago - switch BLI_memarena to use stdlib malloc/free (alloc errors
Daniel Dunbar [Mon, 21 Mar 2005 00:48:19 +0000 (00:48 +0000)]
 - switch BLI_memarena to use stdlib malloc/free (alloc errors
will be caught by containing structure)
 - fixed off-by-one bug (reallocated one byte before necessary)

16 years ago - another BLI_winstuff.h removal
Daniel Dunbar [Mon, 21 Mar 2005 00:47:21 +0000 (00:47 +0000)]
 - another BLI_winstuff.h removal

16 years agoWarp was acting weird if the cursor wasn't centered in the data space, that is fixed.
Martin Poirier [Mon, 21 Mar 2005 00:39:09 +0000 (00:39 +0000)]
Warp was acting weird if the cursor wasn't centered in the data space, that is fixed.
Helpline for warp was wrong in edit mode if the object wasn't centered on global space.
Boundbox calculation for warp is done in view space now, so it is always maximised since aligned with the view.

Switch the negative/positive switch for Shrink/Fatten from horizontal motion to vertical motion. Pull down to shrink, pull up to fatten. This could still use some work.

BugFix: Constraint center was wrong with MMB (was bypassing the fix I commited the other day).
BugFix: Changing modes while in transform and switching to local constraints in edit mode crashed. This was due to resetting the TransInfo flag in initTransModeFlags. Now done correctly in initTrans.

16 years ago - kill some warnings (open/seek/read/write need io.h on win32)
Daniel Dunbar [Sun, 20 Mar 2005 20:48:40 +0000 (20:48 +0000)]
 - kill some warnings (open/seek/read/write need io.h on win32)

16 years ago - apologies, accidentally commited code w/ game engine disabled
Daniel Dunbar [Sun, 20 Mar 2005 20:36:46 +0000 (20:36 +0000)]
 - apologies, accidentally commited code w/ game engine disabled

16 years agoAdding some docs for material insertIpoKey additions
Johnny Matthews [Sun, 20 Mar 2005 19:52:15 +0000 (19:52 +0000)]
Adding some docs for material insertIpoKey additions

16 years agoNew Material method: insertIpoKey( key_type )
Stephen Swaney [Sun, 20 Mar 2005 18:28:36 +0000 (18:28 +0000)]
New Material method:  insertIpoKey( key_type )
inserts material ipo key at current frame.
contributed by Johnny Matthews.

16 years agoThree rotate manipulators to play with;
Ton Roosendaal [Sun, 20 Mar 2005 17:25:00 +0000 (17:25 +0000)]
Three rotate manipulators to play with;

G.rt = 0: one handle for each rotate axis
G.rt = 2: traditional half-circle rotate handles
G.rt = 3: mixed version

16 years agocorrect bad reference to getDrawMode.
Stephen Swaney [Sun, 20 Mar 2005 12:34:36 +0000 (12:34 +0000)]
correct bad reference to getDrawMode.

16 years ago- Fixed flipped orientation of getViewViewvector(), was opposite in ortho
Ton Roosendaal [Sun, 20 Mar 2005 09:45:54 +0000 (09:45 +0000)]
- Fixed flipped orientation of getViewViewvector(), was opposite in ortho
  versus perspective.
  Note for Martin; still an issue with defining what positive/negative
  rotation is in perspective... needs more math here!
- Added Transform Widgets for PoseMode
- made adding bones in EditMode setting G.moving, so it doesn't draw other
  selected objects nor Widgets

Warning in commit of Martin yesterday: Trackball and initTrackball were
declared static, whilst also in transform.h. Quez; why are these functions
exported in the .h file?

16 years agoAdding some docs for Object insertIpoKey additions
Johnny Matthews [Sun, 20 Mar 2005 03:50:56 +0000 (03:50 +0000)]
Adding some docs for Object insertIpoKey additions

16 years agoAdding some docs for Text3d additions
Johnny Matthews [Sun, 20 Mar 2005 03:42:04 +0000 (03:42 +0000)]
Adding some docs for Text3d additions

16 years agoTon broke a couple of things in his last commit including PET in rotation mode and...
Martin Poirier [Sun, 20 Mar 2005 02:00:16 +0000 (02:00 +0000)]
Ton broke a couple of things in his last commit including PET in rotation mode and local axis constraints on objects.
Bringing that back and enabling PET in trackball rotate.

Changed the rotation manipulator drawing code to really align the Trackball rotate ball with the view (using getViewVector) so that it always looks centered on the selection.
This was particularly ugly in perspective mode with a selection far from the center of the screen:

Moved getViewVector from transform_constraints.c to transform_generics.c since it is not really a constraint related function. Also made it independant on the TransInfo structure so it might be useful elsewhere too.

16 years agoNew Bpy Object method: insertIpoKey()
Stephen Swaney [Sat, 19 Mar 2005 23:47:39 +0000 (23:47 +0000)]
New Bpy Object method:  insertIpoKey()
inserts Object IPO key for LOC, ROT, SIZE, LOCROT, or LOCROTSIZE
Contributed by Johnny Matthews (guitarGeek)

16 years ago- added helper lines in rotation widget
Ton Roosendaal [Sat, 19 Mar 2005 22:03:14 +0000 (22:03 +0000)]
- added helper lines in rotation widget
- switched to Local mode for widgets by default, will be a key/button later

16 years agofix warning: initialization makes integer from pointer without a cast
Stephen Swaney [Sat, 19 Mar 2005 21:28:40 +0000 (21:28 +0000)]
fix warning: initialization makes integer from pointer without a cast

16 years ago - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)
Daniel Dunbar [Sat, 19 Mar 2005 21:08:13 +0000 (21:08 +0000)]
 - remove all obsolete inclusions of BLI_winstuff.h (due to recent changes)

NOTE: BLI_winstuff.h was meant to be a wrapper around windows.h to handle
undefining various crap that windows.h defines. Platform specific headers
should only have to be included in a few places. This reduces the number
of inclusions of BLI_winstuff.h to 16 which is a much more reasonable
number (than the 144 or whatever it used to be)

16 years ago - add some windows specific defines to BIF_gl.h so that OpenGL can
Daniel Dunbar [Sat, 19 Mar 2005 20:48:39 +0000 (20:48 +0000)]
 - add some windows specific defines to BIF_gl.h so that OpenGL can
   be used without including windows.h - this is the main reason windows.h
   is included in so many places and this change allows most of those
   inclusions to die.

16 years agoGlobal G.moving got nice define flags, and additional meaning.
Ton Roosendaal [Sat, 19 Mar 2005 20:27:13 +0000 (20:27 +0000)]
Global G.moving got nice define flags, and additional meaning.

- move object mode
- move editmode/pose mode
- move with widgets

16 years ago - part of BLI_winstuff.h cleanup
Daniel Dunbar [Sat, 19 Mar 2005 20:19:10 +0000 (20:19 +0000)]
 - part of BLI_winstuff.h cleanup

16 years agoSome cleaning up of BLI_winstuff.h usage
Daniel Dunbar [Sat, 19 Mar 2005 20:04:25 +0000 (20:04 +0000)]
Some cleaning up of BLI_winstuff.h usage
 - removed reference in render.h (really bad, shouldn't include a platform
   specific header so widely unless really necessary)
 - added M_PI, M_PI_2, M_SQRT, M_SQRT_2 defines to BLI_arithb.h... this is
   a better place as it is more the "standard" blender math header. left
   in winstuff.h as well for the moment for simplicity
 - other changes are patches to code so everything works ok with this

16 years agoLittle fix; while Transform() in editmode, and other objects were select,
Ton Roosendaal [Sat, 19 Mar 2005 20:00:23 +0000 (20:00 +0000)]
Little fix; while Transform() in editmode, and other objects were select,
these objects were drawn in transform color (white usually)

16 years agoNew version of rotate handlers. I like it! Now the rest of you ;)
Ton Roosendaal [Sat, 19 Mar 2005 18:54:45 +0000 (18:54 +0000)]
New version of rotate handlers. I like it! Now the rest of you ;)

16 years agoBPython:
Willian Padovani Germano [Sat, 19 Mar 2005 18:23:05 +0000 (18:23 +0000)]
- Added Blender.Run(script) + doc update (forgot to mention in my previous commit).

Trying to fix two mistakes from my previous commit:

- nmesh.transform(): forgot yesterday that affine vectors have 4th component = 0, now updated normals transformation accordingly.

- As Ton pointed, recursive parsing of scripts dirs in search of scripts was a mess.  I simply forgot about the "//" trick and much worse, to protect against worst cases ("/", for example). Now the code uses BLI_convertstringcode to take care of "//", doesn't process if dir = "/" and there are limits:

max depth for traversing subdirs = 4
max dirs in the tree = 30.

I'll work more on this, check more, but these changes were tested and should make the code safer, of course, so I'm committing.  Sorry about the mess, I should take lessons on defensive programming ...

16 years agoFix for building on win32
Johnny Matthews [Sat, 19 Mar 2005 17:15:25 +0000 (17:15 +0000)]
Fix for building on win32

16 years agoAdded transform_manipulator.c to the windows MSVC 6.0 projectfile
Roel Spruit [Sat, 19 Mar 2005 14:13:45 +0000 (14:13 +0000)]
Added transform_manipulator.c to the windows MSVC 6.0 projectfile

16 years agoAdded curly braces around an #ifdef NEWTRANSFORM.
Stephen Swaney [Sat, 19 Mar 2005 13:26:03 +0000 (13:26 +0000)]
Added curly braces around an #ifdef NEWTRANSFORM.
Needed when NEWTRANSFORM was not defined.

16 years agoTransform widgets; Scale and Rotate versions
Ton Roosendaal [Sat, 19 Mar 2005 12:17:06 +0000 (12:17 +0000)]
Transform widgets; Scale and Rotate versions

To use; press the (temporal) icon in header. Switching widget types is by
pressing G, R or S once, if current widget type is different it switches,
otherwise it goes to normal Transform().

Widgets need a bit test for picking accuracy, correct drawing etc.
The rotate widget has a center button for 'trackball' rotate. That latter
can also be used for hotkey-based rotate.

In current code, all widgets remain in "Global" space, also in editmode.
Also widget updates while using normal transform has to be done.

2 Bugfixes:
- rotate in PoseMode had error for 2d 'around' center
- transform in postemode could crash, due to typo (& or |)

16 years agoBPython:
Willian Padovani Germano [Sat, 19 Mar 2005 06:24:55 +0000 (06:24 +0000)]

- Scripts:
    fixed error in "Save Current Theme" which prevented it from automatically updating script registration in menus.
    cosmetic changes in a couple of Campbell's script strings + more descriptive name for its new menu place (3d view, face mode -> select menu).
    small updates to script.

 The above changes are related to this:
- Added new script menu entries: Render (for exporters to renderers), Themes, FaceSelect (this already at the proper place).  Updated Scripts win->Scripts menu so it won't show all available entries, only  the ones we mean to see there.
- Updated menu registration so that scripts folders can become trees.  The release/scripts/ dir should be updated soon with subdirs like converters/, modifiers/, generators/ or whatever -- better discuss first (or is it? /me afraid of long irc discussions during meetings :) ).

- Modules:
    Blender: added 'udatadir' option to .Get() function and added var Blender.mode to tell if Blender is in bg or interactive mode.
    NMesh: added Campbell's nmesh.transform(matrix, recalc_normals = False) method (reworked, so my fault if it doesn't work).

- Bugs fixed:
    Reported by Ken Hughes (thanks!), who also found the exact problem later (it was in Text.Load, not with script links -- if only I had checked emails these days ... lost > 1 hour today to find the problem: passed filename to M_Text_Load was later being written over by a function called by add_text).  Also saw that Text.Load wasn't checking existence of passed filename (duh!), now it does.

    Reported by Chris Want (thanks!): command line "blender -P script" not working properly for bg mode ("blender -b blendfile -P script").
    Had to make some small updates to get it working (bg mode for scripts was never explicitely handled, it worked due to collateral effects, let's say), interested readers can check the report after I update it or the doc file.  After more testing we can make further updates.  Updated many places to not call redraws if in bg mode, now it is officially available.  Blender outputs its own info when rendering in bg mode, if that is considered a nuissance we'll have to add a few "if (during_script())" calls outside bpython.

- Removed a few warnings here and there and also updated docs.

16 years ago- patch submitted by guitargeek
Joseph Gilbert [Sat, 19 Mar 2005 03:24:00 +0000 (03:24 +0000)]
- patch submitted by guitargeek
*Text3d accessors - ablity to manipulate FONT objects through python
*update to - calls text_to_curve upon ob_font link for drawing
*update to constant.h - constant type checking define
*update to curve.c - clamp values on getters/setters
*clean up of Text3d module

16 years ago- adds /GR to compiler options for generating run time type info for c++ classes...
Joseph Gilbert [Fri, 18 Mar 2005 16:12:17 +0000 (16:12 +0000)]
- adds /GR to compiler options for generating run time type info for c++ classes in the debug release
- add support for new transform files

16 years agoIndividual Element (object) center for Rotate and Resize. Note that using this in...
Martin Poirier [Fri, 18 Mar 2005 15:08:02 +0000 (15:08 +0000)]
Individual Element (object) center for Rotate and Resize. Note that using this in edit mode is a bit useless right now, but we have some surprises in our bozo bin :P

Transform can switch mode on the fly again (GRS).

Fixed a bug with the BIF constraint call, needed to call startConstraint and normalise the space matrix (this affected the manipulator).

16 years agoForgot to cvs add a file!
Ton Roosendaal [Thu, 17 Mar 2005 21:46:05 +0000 (21:46 +0000)]
Forgot to cvs add a file!
Also did the SConscript file.

MSVC users have to add this!

16 years agoSo! Finally a show-off of the *power* of Martin P's work! :)
Ton Roosendaal [Thu, 17 Mar 2005 21:31:49 +0000 (21:31 +0000)]
So! Finally a show-off of the *power* of Martin P's work! :)

- Made framework for 3d Transform Manipulators (widgets)
- The Manipulators act like '2d buttons', by default with LeftMouse and with
- Implemented now: Translation Widget, which allows:
  - four hotspots for axis grab or view-aligned grab
  - center defined by 'around' setting
  - SHIFT+LMB gives planar constraint on other 2 axes
  - works in Object mode and Edit mode (not posemode yet)

Enable it with (temporal) icon in 3D header. All other 'normal' transforms
then keeps working btw.

On the todo for this widget:
- choice for Global, Local or Normal orientation

The way the widgets are going to work is in review still. Commit is also for
Matt for his proposal/paper on topic.
Some notes regarding this project;

- no life updates (on mouse over) like 3DS, I think that's neurotic
- on click, dominant axis changes to theme defined "Transform" color, other axes disappear, like maya
- manipulater size is fixed preset, independent zoom.
- manipulator follows selection, and is located based on 'around' mode


- in maya, when you select 2 or more objects, the manipulator draws on the 'active' object, also interesting
- what to do with G,R,S hotkeys? It could switch the manipulator "mode"...
- header button/menu for manipulator mode?

16 years agofixed example of use the GetScreenInfo
Joilnen Leite [Thu, 17 Mar 2005 14:41:36 +0000 (14:41 +0000)]
fixed example of use the GetScreenInfo

16 years agoNeeded to normalise the axis orientation matrix.
Martin Poirier [Thu, 17 Mar 2005 13:55:48 +0000 (13:55 +0000)]
Needed to normalise the axis orientation matrix.
This fixed the scaling bug intrr and LetterRip reported.

16 years agoAck, typo in previous commit, bugfix for confusing edge selection. Passed
Ton Roosendaal [Thu, 17 Mar 2005 12:01:07 +0000 (12:01 +0000)]
Ack, typo in previous commit, bugfix for confusing edge selection. Passed
a face pointer to edge function... tsk tsk!

16 years agoTrying a little something with the MMB behavior.
Martin Poirier [Thu, 17 Mar 2005 02:34:25 +0000 (02:34 +0000)]
Trying a little something with the MMB behavior.

Constraint selection is now based on mouse motion (instead of pointer position).

What that means is that if you simply click MMB, it works exactly like it did with old transform (in 90% of the case, the last 10% is when MMB click was unpredictable in old transform because of extreme viewport orientation)

Also, since this means you don't really have a referential on which to base yourself, it draws a dashed line representing the mouse motion, starting at the center of the axis lines.

Please test and discuss, if this is better than before or not.

16 years agoFixed constraint center calculation. Much smarter to do it when calculating transform...
Martin Poirier [Wed, 16 Mar 2005 21:55:57 +0000 (21:55 +0000)]
Fixed constraint center calculation. Much smarter to do it when calculating transformation center...

Fixed Extrude constraint. Needed to premul the normal by the object's matrix to but it in global space.

Also, moved the Locking Axis modifier (for constraints) from Alt to Shift. Alt was conflicting with middle mouse button emulation (reported in the test builds forum).

Tilt Transformation.

16 years agoOptimising transformations in PET mode.
Martin Poirier [Tue, 15 Mar 2005 17:31:46 +0000 (17:31 +0000)]
Optimising transformations in PET mode.

Sorting elements in TransData array according to their distance. That means we can always stop loops when it finds the first element that doesn't apply. That makes PET factor calculation and actual transformations faster since it stops at the first element outside of the area.

The Sorting algo is a no swap version of quicksort using the start of each subset as the pivot (random would be better and easy to implement. Need 3 additional lines of code really).

16 years agoBug fix #2320
Ton Roosendaal [Tue, 15 Mar 2005 12:30:58 +0000 (12:30 +0000)]
Bug fix #2320

Silly 2.36 bug! In FaceSelect mode, other solid objects didn't show. Bad!

Additional; when using Halo material, and setting 'X Alpha', and disabling
Halo option, the 'Only Shadow' option turned on... uses same bit...
No time for real fix here, so for now the bit is always cleared after
disabling Halo.

16 years agoMatrix multiplcations for Multiple Object local constraints for Resize was done backw...
Martin Poirier [Mon, 14 Mar 2005 23:24:37 +0000 (23:24 +0000)]
Matrix multiplcations for Multiple Object local constraints for Resize was done backward. Didn't show in my test case because they were too crude. Fixed now. (in essence, resize with multiple selected objects and local constraint was not good)

16 years agoome more warnings cleaning
Jean-Luc Peurière [Mon, 14 Mar 2005 20:10:22 +0000 (20:10 +0000)]
ome more warnings cleaning

16 years agoBugfix #2324
Ton Roosendaal [Mon, 14 Mar 2005 20:09:57 +0000 (20:09 +0000)]
Bugfix #2324

Somehow, not proven how, edges can be selected in a mesh, and not faces or
vertices. When entering editmode these selection flags are checked too.

16 years agoThis commit reverses the OpenEXR specific stuff in the OpenEXR commit I
Kent Mein [Mon, 14 Mar 2005 14:56:40 +0000 (14:56 +0000)]
This commit reverses the OpenEXR specific stuff in the OpenEXR commit I
did last friday.  A patch will be available in the patches tracker
that will have the current stuff there until everything is working.


16 years agoTransform: brought back axis constraint default after extruding. When
Ton Roosendaal [Mon, 14 Mar 2005 14:16:59 +0000 (14:16 +0000)]
Transform: brought back axis constraint default after extruding. When
choosing 'individual faces' it uses the ShrinkFatten option.

Note for Martin: center of axis is still wrong, but you know!
Note for non-testers: unfortunately axis constrainting for old
transform now doesn't work anymore. New code is much nicer, I dont restore

16 years agoNew AFFECTALL flag for numinput
Martin Poirier [Sun, 13 Mar 2005 21:42:22 +0000 (21:42 +0000)]
New AFFECTALL flag for numinput
When that flag is set, numbers typed when the cursor is on the first position will affect all positions who do not currently have something typed for them.

Enabled Skey, 2, Enter to quickly double the size of something.

All modesty asside, it's coded rather smartly so it shows the cursor in every position that it will affect and lets you tab in undefined position to type in values there.

Thanks to Samadam for reminding me that the old code permitted that.

16 years agoFixed edit mode armature bug reported by Gabio (transdata conversion wasn't setting...
Martin Poirier [Sun, 13 Mar 2005 20:17:39 +0000 (20:17 +0000)]
Fixed edit mode armature bug reported by Gabio (transdata conversion wasn't setting data center correctly).

Brought back Shrink/Fatten. Changed the behavior a bit, move the cursor to the right to move toward the normal, to the left to move backward. Please comment.
Only works with meshes, defaults to resize otherwise.

16 years agoTransform:
Ton Roosendaal [Sun, 13 Mar 2005 19:48:17 +0000 (19:48 +0000)]

Camera grab from camera mode works, but not the middlemouse-toggle, that
has to become a new "Dolly" constraint coded by Martin P! :)

16 years agoA little editing on the doc for the newest member of our Bpy module familily: Text3d.
Stephen Swaney [Sun, 13 Mar 2005 13:17:59 +0000 (13:17 +0000)]
A little editing on the doc for the newest member of our Bpy module familily: Text3d.

16 years agoMade warp use TransData members instead of G.obedit. Made it work with PET and Object...
Martin Poirier [Sun, 13 Mar 2005 02:15:32 +0000 (02:15 +0000)]
Made warp use TransData members instead of G.obedit. Made it work with PET and Objects at the same time.

16 years agoLocal axis with multiple objects wasn't working for Scaling.
Martin Poirier [Sat, 12 Mar 2005 23:15:26 +0000 (23:15 +0000)]
Local axis with multiple objects wasn't working for Scaling.

Also, splitted of Translation's applying loop (for eventually macro interface).

16 years agoNumInput is now applied correctly to constraints and prints correctly in the header.
Martin Poirier [Sat, 12 Mar 2005 20:34:02 +0000 (20:34 +0000)]
NumInput is now applied correctly to constraints and prints correctly in the header.

What that means is that you can grab/resize an object, press Xkey, type 2 (to resize/move by 2 on the x axis) and then press Ykey and the numeric value will be applied to the transformation on the Y axis.

Fixed a small glitch where constraint center wasn't readjusted for edit mode when using MMB (graphical bug only).

16 years ago*sigh* I obviously rushed this. I honestly thought that this commit would
Kent Mein [Sat, 12 Mar 2005 16:32:32 +0000 (16:32 +0000)]
*sigh*  I obviously rushed this.  I honestly thought that this commit would
not affect anyone.

if user_openexr == 'false':
defines += ['WITH_OPENEXR']

To what it was suppose to be:
user_openexr = 'false':
if user_openexr == 'true':
defines += ['WITH_OPENEXR']

This was messed up on most platforms, somewhere when adding them all
I switched to the bad version and continued with that...

I'm on irc if anyone else has any commits to clean this up.  I'm going
through things and trying to make sure its working for everyone.



16 years agoAdded a #ifdef WITH_OPENEXR around this entire file. It doesn't compile for
Ton Roosendaal [Sat, 12 Mar 2005 13:37:05 +0000 (13:37 +0000)]
Added a #ifdef WITH_OPENEXR around this entire file. It doesn't compile for
Makefiles otherwise...

16 years agodoc about set/getDupliVerts method
Joilnen Leite [Sat, 12 Mar 2005 12:31:33 +0000 (12:31 +0000)]
doc about set/getDupliVerts method

16 years agoBug fix as reported by Fish-Face/Chris Le Sueur on IRC
Ton Roosendaal [Sat, 12 Mar 2005 12:10:07 +0000 (12:10 +0000)]
Bug fix as reported by Fish-Face/Chris Le Sueur on IRC

After deleting an object, the call free_and_unlink_base() takes care of
NULLifying object pointers. But, with exception of constraints. Silly!!!

So, in the end of a function additionally the test_scene_constraints()
has to be called to prevent crashes. This was missing in join_mesh and

16 years agoadded getDupliVerts and setDupliVerts methods
Joilnen Leite [Sat, 12 Mar 2005 11:38:51 +0000 (11:38 +0000)]
added getDupliVerts and setDupliVerts methods

16 years ago - made makesdna print how many bytes of padding should be added in
Daniel Dunbar [Fri, 11 Mar 2005 21:20:33 +0000 (21:20 +0000)]
 - made makesdna print how many bytes of padding should be added in
    a struct on alignment errors, simplifies fixing.

16 years ago - dna_error wasn't set on two errors in makesdna, allowed bad compilation
Daniel Dunbar [Fri, 11 Mar 2005 21:15:20 +0000 (21:15 +0000)]
 - dna_error wasn't set on two errors in makesdna, allowed bad compilation

16 years agoGernot Ziegler's patch to add OpenEXR support to blender.
Kent Mein [Fri, 11 Mar 2005 20:16:14 +0000 (20:16 +0000)]
Gernot Ziegler's  patch to add OpenEXR support to blender.

To enable it you will need to download OpenEXR and install it.
For the Makefiles you will need to set WITH_OPENEXR=true
and set NAN_OPENEXR to point to where OpenEXR is installed.

For scons you'll need to remove config.opts to get the new options
so you can enable OpenEXR, I was not able to get blender to link
with scons so the scons stuff may need to be tweaked a little but
I think it should work.

For other platform managers  The OpenEXR stuff is similar to QUICKTIME
you need to define WITH_OPENEXR and setup the library stuff and
as you'll notice in this commit there are two extra files.


16 years agoBug fix 2301
Ton Roosendaal [Fri, 11 Mar 2005 18:55:09 +0000 (18:55 +0000)]
Bug fix 2301

Halo render had too narrow clipping for left/right or top/bottom part of
image. Was caused by fix for 2.36, incorrect clipping for distance...
distance was OK, but the old hack should be still there for X or Y clip!

16 years agoIt's fun to set flags correctly and not have everything crash down on you.
Martin Poirier [Fri, 11 Mar 2005 18:48:14 +0000 (18:48 +0000)]
It's fun to set flags correctly and not have everything crash down on you.

16 years agoBug fix 2309
Ton Roosendaal [Fri, 11 Mar 2005 18:24:15 +0000 (18:24 +0000)]
Bug fix 2309

Move calls to exit editmode and posemode to "set_scene()". Was causing
errors when, in posemode, switching to empty scene.

16 years agoFound some messed up code that assumed abgr instead of rgba
Kent Mein [Fri, 11 Mar 2005 13:00:31 +0000 (13:00 +0000)]
Found some messed up code that assumed abgr instead of rgba
In IMB_gamwarp which is used by the blur sequence plugin.
It should be fixed now.  Also fixes a warning with gcc.