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.


16 years agoIMPORTANT NOTE: Locking axis (planar constraints) now works with ALT instead of CTRL...
Martin Poirier [Fri, 11 Mar 2005 01:33:43 +0000 (01:33 +0000)]
IMPORTANT NOTE: Locking axis (planar constraints) now works with ALT instead of CTRL. Ctrl might have caused problems in the long run, with people holding down ctrl for precision and then having to release it so to press an axis key if they don't want to lock it.

Finish adding local constraints for multiple objects: One of the objects will have its axis highlighted lighter than the others. You control this one with your mouse and the others copy the motion on their respective axis.

Code changes: the TD_OBJECT flag is now a flag in TransInfo with the new T_POSE, T_EDIT and T_TEXTURE

16 years agoBugfix 2062
Ton Roosendaal [Thu, 10 Mar 2005 20:29:28 +0000 (20:29 +0000)]
Bugfix 2062

Stringcopy to a buf[32] without checking stringsize caused errors.

All credits for Martin P who found it. I'm assistant-committer. :)

16 years agoText3d submodule document
Joilnen Leite [Thu, 10 Mar 2005 02:49:27 +0000 (02:49 +0000)]
Text3d submodule document

16 years agoMSVC 6.0 Projectfile addition (include path) to compile after the big warning hunt...
Martin Poirier [Wed, 9 Mar 2005 23:29:19 +0000 (23:29 +0000)]
MSVC 6.0 Projectfile addition (include path) to compile after the big warning hunt commit.

16 years ago- Added more space in icons image (blenderbuttons.png)
Ton Roosendaal [Wed, 9 Mar 2005 21:10:30 +0000 (21:10 +0000)]
- Added more space in icons image (blenderbuttons.png)
  It now only uses 1 extra row of 21 buttons. More can simply be added
- Added new icons for the new proportional edit options Root, Linear and
- Made sure pulldown and pop-up menu work for new prop options

- Transform fix; proportional edit circle was drawing in Object mode

16 years agoUpgraded buttons image
Ton Roosendaal [Wed, 9 Mar 2005 21:04:09 +0000 (21:04 +0000)]
Upgraded buttons image

16 years agobig warning hunt commit
Jean-Luc Peurière [Wed, 9 Mar 2005 19:45:59 +0000 (19:45 +0000)]
big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors

16 years agoTransform project; restored "auto key" after transform. It now inserts
Ton Roosendaal [Wed, 9 Mar 2005 19:32:23 +0000 (19:32 +0000)]
Transform project; restored "auto key" after transform. It now inserts
always loc/rot/size ipos. The old method had a quite questionable
heuristic for detecting what changed, not sure if we want it back.

Added note in code, good candidate for later recode with dep graphs.

16 years ago- Restored 'align mode', which allows rotate/scale with only object centers
Ton Roosendaal [Wed, 9 Mar 2005 16:58:42 +0000 (16:58 +0000)]
- Restored 'align mode', which allows rotate/scale with only object centers
- commented out debug prints from theeth :)

16 years agodoc about Text3d module
Joilnen Leite [Wed, 9 Mar 2005 02:06:35 +0000 (02:06 +0000)]
doc about Text3d module

16 years ago - replaced min() by MIN2() and max() by MAX2()... my bad.
Daniel Dunbar [Tue, 8 Mar 2005 19:31:16 +0000 (19:31 +0000)]
 - replaced min() by MIN2() and max() by MAX2()... my bad.

16 years agoBug fix #2296
Daniel Dunbar [Tue, 8 Mar 2005 19:27:58 +0000 (19:27 +0000)]
Bug fix #2296
 - Background image would jitter around on ATI card when zoomed in too
   far. It appears that the driver is was multiplying the image width
   by the zoom factor at some point and clamping this number, before
   clipping the visible image. Somehow this then fed back in to clipping
   the zoom factor.

   Fix is to only tell GL to draw the smallest number of pixels (width
   and height) that would be visible on the screen. Since this is not
   a generally bad thing to do applied fix for all users of

16 years ago - switch draW_bgpic to calculate window coordinates as floats, smoother
Daniel Dunbar [Tue, 8 Mar 2005 19:18:40 +0000 (19:18 +0000)]
 - switch draW_bgpic to calculate window coordinates as floats, smoother
     zooming of background pic now.