17 years ago Added K Menu for Loop Select, Loop Cut, and Knife tools.
Robert Wenzlaff [Sun, 26 Oct 2003 21:22:32 +0000 (21:22 +0000)]
Added K Menu for Loop Select, Loop Cut, and Knife tools.

17 years agoUpdate of the documentation files for the new IPO functions
Jacques Guignot [Sun, 26 Oct 2003 21:22:24 +0000 (21:22 +0000)]
Update of the documentation files for the new IPO functions

17 years ago- fixed printing in headers (during modes) for when there is no header...
Ton Roosendaal [Sun, 26 Oct 2003 21:09:33 +0000 (21:09 +0000)]
- fixed printing in headers (during modes) for when there is no header...
  (uhh.. i mean, then it doesnt print!)
- put back axis icon of 3d win to left/bottom corner.
  it was only moved for tests with an extended header to the left...

17 years ago- restored default one 'solid' light
Ton Roosendaal [Sun, 26 Oct 2003 20:45:52 +0000 (20:45 +0000)]
- restored default one 'solid' light
- subsurd level '0' is possible again.
  however; it was changed to '1' because convert-to-mesh crashes. the
  subsurf code doesnt give a result when level is '0', causing the convert
  routines to either crash, or deliver empty mesh...
  I added a warning in the convert routine now, and dont do anything then.
- changed all glFlush() in glFinish() in editobject.c, which seems to be
  the right magical call to show frontbuffer drawing.

17 years agoadded a new function : getCurve(string) allowing access to an ipo curve from its...
Jacques Guignot [Sun, 26 Oct 2003 16:54:33 +0000 (16:54 +0000)]
added a new function : getCurve(string) allowing access to an ipo curve from its name.

17 years agoiaccess to the IPOs of a Camera, a World, or of a Material
Jacques Guignot [Sun, 26 Oct 2003 16:51:53 +0000 (16:51 +0000)]
iaccess to the IPOs of a Camera, a World, or of a Material

17 years ago- removed a debug printf().
Simon Clitherow [Sun, 26 Oct 2003 08:58:48 +0000 (08:58 +0000)]
- removed a debug printf().

17 years agoExppython:
Willian Padovani Germano [Sun, 26 Oct 2003 06:03:18 +0000 (06:03 +0000)]
- Added "Radio" to Material modes
- Fixed bug in bone.getParent (bug report on py forum)
- Added more types to object.shareFrom (method to share obdata)
- Added nmesh.get/setMaxSmoothAngle and nmesh.get/setSubDivLevels
- Updated NMesh doc

17 years agoMirror now works with all types of data
Martin Poirier [Sun, 26 Oct 2003 04:18:03 +0000 (04:18 +0000)]
Mirror now works with all types of data
Fixes the different type of center for Mirror
Rename mirrormesh to mirrormenu

I'm looking for a hotkey for that. Will talk about it tomorrow during the meeting

17 years ago- new menu type; with icon support!
Ton Roosendaal [Sat, 25 Oct 2003 23:57:58 +0000 (23:57 +0000)]
- new menu type; with icon support!
  (the one you make with uIDefBut(..., MENU, ...)
  add a %i<nr> to the string, and the item gets <nr> as icon.
- added this to the 'mode' selectors in 3dwin and ipowin
- cleaned up code for modeselector pup... that was a bad ass one! :)

17 years agoBackground image offset buttons
Martin Poirier [Sat, 25 Oct 2003 22:59:15 +0000 (22:59 +0000)]
Background image offset buttons

17 years ago- fixed bug: strcat used instead of strcpy.
Ton Roosendaal [Sat, 25 Oct 2003 22:43:08 +0000 (22:43 +0000)]
- fixed bug: strcat used instead of strcpy.
  is dangerous on unitialized stack string...

17 years ago- added more items to the menu. Object is getting complete, now Mesh...
Ton Roosendaal [Sat, 25 Oct 2003 22:30:27 +0000 (22:30 +0000)]
- added more items to the menu. Object is getting complete, now Mesh...

17 years ago- fixed colors of ipokeys in 3d window
Ton Roosendaal [Sat, 25 Oct 2003 22:29:24 +0000 (22:29 +0000)]
- fixed colors of ipokeys in 3d window
- fixed constraint popup menu (used icons)
- moved 'full' and 'View3d props' and 'background' items in menu to bottom
  Hope Matt wont kill me for it, but these were about the only useful
  ones there... :)
- little fix in interface.c for menus...

17 years agoFixed grab on local axis in object mode
Martin Poirier [Sat, 25 Oct 2003 22:24:00 +0000 (22:24 +0000)]
Fixed grab on local axis in object mode

17 years agoSplit the 'background and settings' panel in 3d window in 2 parts.
Ton Roosendaal [Sat, 25 Oct 2003 22:03:19 +0000 (22:03 +0000)]
Split the 'background and settings' panel in 3d window in 2 parts.
Instructions for how to add panels there:

- add a handler define code in BIF_space.h
- create a menu item that invokes a add_blockhandler()
- add to view3d_blockhandlers() the correct handler for it

- plus create a panel itself, just copy one... it needs some stuff
  to get working, docs for that are for later

17 years agofixed a few warnings in my code
Roel Spruit [Sat, 25 Oct 2003 20:56:05 +0000 (20:56 +0000)]
fixed a few warnings in my code

17 years agocorrected a bug with Align view and rotated objects
Martin Poirier [Sat, 25 Oct 2003 20:30:37 +0000 (20:30 +0000)]
corrected a bug with Align view and rotated objects

17 years ago- fixed crash with ALT+C conversion of subsurf to mesh with subdiv level 0
Ton Roosendaal [Sat, 25 Oct 2003 19:17:24 +0000 (19:17 +0000)]
- fixed crash with ALT+C conversion of subsurf to mesh with subdiv level 0
- also changed the limits in the subdiv levels buttons; ranging now 1-6
  (note: '6' gives 16k new faces per old face... and max was 12!)

17 years ago- fixed smooth drawing of subsurf & mesh in 'shaded' draw mode.
Ton Roosendaal [Sat, 25 Oct 2003 17:33:47 +0000 (17:33 +0000)]
- fixed smooth drawing of subsurf & mesh in 'shaded' draw mode.
  looks indeed a lot better!

17 years agoNew feature!
Ton Roosendaal [Sat, 25 Oct 2003 16:53:50 +0000 (16:53 +0000)]
New feature!

You now can adjust the way the default 'solid opengl' drawing happens.
It provides three lights now, all still located around your viewpoint.
In the UserSettings menu you can set them on/off, give location and
color / specularity.

Very nice to enhance modeling in solid drawmode :)

By default blender starts with 2 lights on now, but this is something we
can define in the default .b.blend later on.

17 years ago- item "Export" renamed: "Convert to 3d text"
Jiri Hnidek [Sat, 25 Oct 2003 14:33:53 +0000 (14:33 +0000)]
- item "Export" renamed: "Convert to 3d text"

17 years ago- fixed a bug when saving user defaults (Win32 only)
Simon Clitherow [Sat, 25 Oct 2003 14:09:18 +0000 (14:09 +0000)]
- fixed a bug when saving user defaults (Win32 only)
  (the first save didn't store paths or font settings!)

This is something I broke back at 2.28a :)
I'm suprised there were no bug reports on this, but it's fixed now! ;)

17 years agoadded IPO header pull-down menus.
Simon Clitherow [Sat, 25 Oct 2003 13:29:38 +0000 (13:29 +0000)]
added IPO header pull-down menus.

17 years ago- commented out the #ifdef APPLE for closing renderwindow.
Ton Roosendaal [Sat, 25 Oct 2003 13:27:12 +0000 (13:27 +0000)]
- commented out the #ifdef APPLE for closing renderwindow.
  this only works with compiling GHOST again!

17 years ago- found the bad line in Ghost that preventing closing windows.
Ton Roosendaal [Sat, 25 Oct 2003 13:25:59 +0000 (13:25 +0000)]
- found the bad line in Ghost that preventing closing windows.
  I've mailed Maarten to verify it, this commit is for test at other
  OSX platforms.

- this was the baddie:
  it was called in the window destructor, for each window closed.
  I've hacked in a temporal global var to store the mainwindow. When this
  line is only called for mainwindow, it all works smoothly.

- next commit is needed too!

17 years ago- removed tooltips from pull-down menus
Jiri Hnidek [Sat, 25 Oct 2003 13:08:15 +0000 (13:08 +0000)]
- removed tooltips from pull-down menus

17 years ago- removes warnings
Jiri Hnidek [Sat, 25 Oct 2003 12:27:16 +0000 (12:27 +0000)]
- removes warnings

17 years agofixed three bugs:
Ton Roosendaal [Sat, 25 Oct 2003 11:38:04 +0000 (11:38 +0000)]
fixed three bugs:

- subsurf also smoothed loose vertices, in a strange way that never showed
  up until 'draw subsurf handles' was implemented.
  fixed subsurf code not to include loose vertices anymore
- saving a file in editmode caused a new displaylist to made... fixed an
  old bad hack from NaN period.
  (displists are still lousy code...)
- fixed drawing vertices in frontbuffer on select.
  the delay you see is because blender waits for 'rightmouse transform'.

17 years ago- added menus to header of text editor
Jiri Hnidek [Sat, 25 Oct 2003 10:33:03 +0000 (10:33 +0000)]
- added menus to header of text editor
- added Alt-N shortcut (New text)
- look at

17 years agoFixed bug in Loop Subdivide preview line (cause a crash)
Roel Spruit [Sat, 25 Oct 2003 09:41:22 +0000 (09:41 +0000)]
Fixed bug in Loop Subdivide preview line (cause a crash)

17 years agoFinal (hopefully) commit for faceloop select and loop subdivide
Roel Spruit [Sat, 25 Oct 2003 00:37:14 +0000 (00:37 +0000)]
Final (hopefully) commit for faceloop select and loop subdivide

Loop Select:

Selects a row (or loop) of faces in a mesh, keeps searching till it
finds a loop (End face == Start Face) or till it finds a dead end.

Loop Subdivide:

Searches for the same row/loop as loop select but inmediately
splits it in half.

- Loop select:
  Shift-R (or select->faceloop)
  move mouse over mesh to see preview of selection
  LMB to confirm selection, RMB or ESC to cancel

- Loop Subdivide:
  Ctrl-R (or Mesh->Edges-> Loop Subdivide)
  move mouse over mesh to see preview of the newly cut loop
  LMB to confirm selection, RMB or ESC to cancel

Please test! (besides, it's fun to play with :)


17 years agoI did one commit, but two logs!
Ton Roosendaal [Sat, 25 Oct 2003 00:11:32 +0000 (00:11 +0000)]
I did one commit, but two logs!

- another click at pulldown menu doesnt close it anymore (annoying!)
- the order of Menus (from buttons) now is correctly flipped if needed
- had a LOAD of work on getting matrix code in interface.c cleaned up...
  there was still a bug with automatic flipping of menus to prevent them
  going outside the screen. should be solved now
- fixed crash: add new screen didnt work...

17 years agoFirst commit of a new toolbox system.
Ton Roosendaal [Sat, 25 Oct 2003 00:08:12 +0000 (00:08 +0000)]
First commit of a new toolbox system.

Aim was to find a simple & easy system, script alike, to add and configure
a toolbox system, so that others can experiment, but also of course Python.

- spacebar calls it up. SHIFT+A still does old toolbox
- hold left or rightmouse for 0.4 second, and it pops up as well
  this is experimental! Can be tweaked with Userdef var "ThresA"
- it is a little bit complete for Object mode only. Needs still work
  at information desing/structure level
- the code works like an engine, interpreting structs like this:

static TBitem addmenu_curve[]= {
{ 0, "Bezier Curve",  0, NULL},
{ 0, "Bezier Circle", 1, NULL},
{ 0, "NURBS Curve",  2, NULL},
{ 0, "NURBS Circle",  3, NULL},
{ 0, "Path",  4, NULL},
{  -1, "",  0, do_info_add_curvemenu}};

- first value is ICON code,
- then name
- return value
- pointer to optional child

last row has -1 to indicate its the last...
plus a callback to event function.

I also built an old toolbox style callback for this:

static TBitem tb_object_select[]= {
{ 0, "Border Select|B",  'b', NULL},
{ 0, "(De)select All|A",  'a', NULL},
{ 0, "Linked...|Shift L",  'L', NULL},
{ 0, "Grouped...|Shift G",  'G', NULL},
{  -1, "",  0, tb_do_hotkey}};

here the return values are put back as hotkeys in mainqueue.

A mainloop can do all context switching, and build menus on the fly.
Meaning, it also allows other designs such as radials...

17 years agoExppython: fixed crash caused by linking to a scene objects with NULL obdata, caused...
Willian Padovani Germano [Fri, 24 Oct 2003 17:08:59 +0000 (17:08 +0000)]
Exppython: fixed crash caused by linking to a scene objects with NULL obdata, caused by recent (2.28c) internal changes to avoid unneded creation of obdata.

17 years agoAnnotation of the BGL module - small clarifications about Buffer class
Joseph Gilbert [Thu, 23 Oct 2003 23:44:18 +0000 (23:44 +0000)]
Annotation of the BGL module - small clarifications about Buffer class

17 years agoAnnotation of the BGL module
Joseph Gilbert [Thu, 23 Oct 2003 23:17:48 +0000 (23:17 +0000)]
Annotation of the BGL module

17 years ago- added ifdef INTERNATIONAL for changes in interface.c
Ton Roosendaal [Thu, 23 Oct 2003 22:28:49 +0000 (22:28 +0000)]
- added ifdef INTERNATIONAL for changes in interface.c
- changed switching to smaller/larger fonts, it now does only 1 pnt size.
  with standard font (11), medium is 10, small 9

17 years agothere was a function prototype missing from interface.c that caused an error with...
Martin Poirier [Thu, 23 Oct 2003 22:20:19 +0000 (22:20 +0000)]
there was a function prototype missing from interface.c that caused an error with MSVC.

17 years ago- AntiAlias fonts (FTF) now are used in three sizes, like the normal
Ton Roosendaal [Thu, 23 Oct 2003 18:25:08 +0000 (18:25 +0000)]
- AntiAlias fonts (FTF) now are used in three sizes, like the normal
  fonts, and switched based at the window zoom.

  Might be something to tweak when to switch exactly, but it works

17 years ago- added Panel for 'anim playback settings'
Ton Roosendaal [Thu, 23 Oct 2003 16:52:54 +0000 (16:52 +0000)]
- added Panel for 'anim playback settings'
- removed draw rect from avi coded settings (should become label but)
- changing texture settings, now also updates lamp/material/world
  preview when thats open

17 years agoCleaned up new constraint line drawing while grab/rot/scale
Ton Roosendaal [Thu, 23 Oct 2003 16:15:05 +0000 (16:15 +0000)]
Cleaned up new constraint line drawing while grab/rot/scale

- uses callback mechanism to tell main drawing routine what to do
- for that reason it doesn't use frontbuffer drawing anymore
  and it shows up in all 3d windows as well
- it uses the same colors as for the grid axes (I tweaked it a bit,
  this is based at themecolors, and also should work in different
  background and grid color)
- I disabled drawing lines through every object or every vertex.
  The current display method is clear and not distracting
- when in 'local' transform (double press X/Y/Z), it displays a nice
  axis in the center of transform for vertices.
  In object-mode, local transform differs per object, so constraint lines
  and axes are drawn for each individually...


- fixed an old bug in rotate transform(). Using a constraint for
  rotation (X, Y, Z) didn't work for multiple objects at all!

17 years ago- fixed drawing of headers... they align now exactly with the 1 pixel
Ton Roosendaal [Thu, 23 Oct 2003 11:00:51 +0000 (11:00 +0000)]
- fixed drawing of headers... they align now exactly with the 1 pixel
  black edge between 'area windows'.
  the new ortho matrix seems to work for me... :)

17 years ago- changed ortho2 calls by default... according the 'opengl correctness'
Ton Roosendaal [Thu, 23 Oct 2003 10:23:38 +0000 (10:23 +0000)]
- changed ortho2 calls by default... according the 'opengl correctness'
  chapter in 'opengl programming guide' you have to offset the matrix
  with 0.375 for exact & predictable cross platform pixel drawing.
  Blender used 0.5....

Committed for test among platforms... if you see weird drawing results
(like polygons not aligning good with lines) just notify me.

17 years ago- <blush> forgot to delete an old line:
Ton Roosendaal [Thu, 23 Oct 2003 09:38:10 +0000 (09:38 +0000)]
- <blush> forgot to delete an old line:
  if(R.mat->septex) break;
  this caused the new per-channel switching only to work with 2 textures!

17 years ago Adjusted Layout in texture, texture_plugin, and texture_mapto panels.
Robert Wenzlaff [Thu, 23 Oct 2003 06:34:50 +0000 (06:34 +0000)]
Adjusted Layout in texture, texture_plugin, and texture_mapto panels.

17 years agoBugFix: do_global_buttons() was split into do_global_buttons() and do_global_buttons2(),
Robert Wenzlaff [Thu, 23 Oct 2003 02:42:09 +0000 (02:42 +0000)]
BugFix: do_global_buttons() was split into  do_global_buttons() and do_global_buttons2(),
but do_butspace() still routed events for do_global_buttons2() to
do_global_buttons().  This kept a lot of "Single User" buttond from working.

17 years ago- themed all window types... phew!
Ton Roosendaal [Wed, 22 Oct 2003 23:20:44 +0000 (23:20 +0000)]
- themed all window types... phew!
  BTW: text colors don't work everywhere yet... but this state should
  be save to store themes in your .B.blend (CTRL+X)

and some fixes:

- leftmouse click now works in NLA and Action window to select a
  strip in the left part
- faceselect+vpaint mode didnt show both panels

17 years agoSmall constraint loop detection and calculation fix that now allows two objects to...
Martin Poirier [Wed, 22 Oct 2003 23:17:48 +0000 (23:17 +0000)]
Small constraint loop detection and calculation fix that now allows two objects to track each other (normal track or LockTrack).
This is done by disabling the object position refresh call when calculating these constraints. From the tests I did, this doesn't cause any problem at all.

The main point of this is to create pistons and the like.

For coders:

the detect_constraint_loop function now takes an additional parameter that determines the constraint type of the object it's looping from.

17 years agofixed a warning that slipped by :|
Martin Poirier [Wed, 22 Oct 2003 22:13:23 +0000 (22:13 +0000)]
fixed a warning that slipped by :|

17 years ago- material editor: each texture channel can be individually switched,
Ton Roosendaal [Wed, 22 Oct 2003 18:58:46 +0000 (18:58 +0000)]
- material editor: each texture channel can be individually switched,
  instead of the old 'septex' which only showed the active one

- rendering: the 'stencil' option now works to stencil out normals as well

(special requests from our manual master, s68)

17 years ago- fixed bug: 'header select' themecolor had no alpha, causing antialiased
Ton Roosendaal [Wed, 22 Oct 2003 17:34:51 +0000 (17:34 +0000)]
- fixed bug: 'header select' themecolor had no alpha, causing antialiased
  lines not drawn (triangles in buttons for example)
- correct colors for channels in texture buttons
- fixed bug: using proportional editing, the extra wire draw had incorrect
- fixed bug: drawing in imagewindow didnt work anymore... was a very old
  one! the wrong pointer was read, and it accidentally went OK, until now
- selecting vertices with multiple 3d wins open works again

17 years agoMore fixes in object drawing:
Ton Roosendaal [Wed, 22 Oct 2003 09:06:30 +0000 (09:06 +0000)]
More fixes in object drawing:

- transparent faces in editmode don't write in zbuffer anymore (prevents
  drawing errors) but still read (so behind the subsurf faces for example)
- improved drawing 'handles' for subsurf editing
- going in editmode to Solid view, will draw extra wire always, including
  transparent faces when set
- works in all combos...

- fixed error; padplus/padminus didnt work in buttonswindow anymore
- improved buttonswin: when dragging window edge, the buttons dont
  rescale, but stay same size

17 years agoAdded mirror function to the code and to the Wkey menu (at the end)
Martin Poirier [Wed, 22 Oct 2003 02:05:51 +0000 (02:05 +0000)]
Added mirror function to the code and to the Wkey menu (at the end)

17 years agoAdded PADENTER confirmation to transform.
Martin Poirier [Wed, 22 Oct 2003 01:25:11 +0000 (01:25 +0000)]
Added PADENTER confirmation to transform.

17 years ago - Added PADENTER to knife confirm, to make it more consistant
Robert Wenzlaff [Wed, 22 Oct 2003 01:21:37 +0000 (01:21 +0000)]
- Added PADENTER to knife confirm, to make it more consistant
with okee() et. al.

17 years ago - Preserved selections in undo.
Robert Wenzlaff [Wed, 22 Oct 2003 00:52:26 +0000 (00:52 +0000)]
- Preserved selections in undo.

- Fixed spurious "recalc norm" enties in Undo.

17 years agoNumerical input in transformation modes (Grab, Rotate, Scale,
Martin Poirier [Tue, 21 Oct 2003 23:39:47 +0000 (23:39 +0000)]
Numerical input in transformation modes (Grab, Rotate, Scale,
Warp, Shear, Shrink/Fatten). It works with the transformations mode,
it doesn't replace them, so just enter grab, scale or rotate mode
as usual and start typing. Both numpad and non-numpad works for the

Tab switches between axis (the axis that is being modified has
Backspace clears the current axis. Twice clears all axis.
Minus (-) switches between positive and negative value.

The mouse is now disabled when you type (as soon as you use one of
the numerical keys). You can use Nkey to switch between numerical
and mouse driven mode.

The minus key on the numpad still affects the PET in mouse-driven
mode, but affects the sign of the number in numerical input.

17 years ago Fixes Makefile for intern/SoundSystem/intern.
Robert Wenzlaff [Tue, 21 Oct 2003 23:27:08 +0000 (23:27 +0000)]
Fixes Makefile for intern/SoundSystem/intern.

17 years ago- fixed error; the vertices didnt draw anymore in editmode with sold draw.
Ton Roosendaal [Tue, 21 Oct 2003 21:59:00 +0000 (21:59 +0000)]
- fixed error; the vertices didnt draw anymore in editmode with sold draw.
  was caused because i only tested the new cool 'draw wire extra'. :)

- by default, in solid draw mode & editmode, it does a 'draw wire extra'
  now, giving nice clean editmesh drawing.

- there's still a few quirks, i do a test now... this commit is to have
  a good working blender in cvs. the whole drawing system is such chaos...

17 years agoA few bugfixes to the vgrouping methods
Joseph Gilbert [Tue, 21 Oct 2003 17:25:27 +0000 (17:25 +0000)]
A few bugfixes to the vgrouping methods

17 years agoAxis constraint in transform for grab mode
Martin Poirier [Tue, 21 Oct 2003 17:01:10 +0000 (17:01 +0000)]
Axis constraint in transform for grab mode
Axis constraint in size mode

note: the original behavior when constraining with middle mouse in object mode is weird. I've leave it that way, but I think it would be a good time to fix it. Another thing: in object mode, you can only constrain size to local axis. Global axis would involve either screwing the matrix (which stinks) or modifying the vert coords directly (which is a no no)

Please also note that this breaks the mirroring combo.
I'll be commiting my edit mode mirror function soon to fix that.

Coder note:

You can now call the transform function with an additional parameter to constraint to an axis.


Capital axis letter for global axis, lower case for local axis

17 years agofixed warnings and errors in buttons_object.c
Martin Poirier [Tue, 21 Oct 2003 16:56:25 +0000 (16:56 +0000)]
fixed warnings and errors in buttons_object.c

17 years agoMesh drawing stuff!
Ton Roosendaal [Tue, 21 Oct 2003 16:41:28 +0000 (16:41 +0000)]
Mesh drawing stuff!

- in zbuffer mode, vertices will be blended 50% in... and when you increase
  vertex size larger than 2 pixels, it will draw them smaller
- removed all 'wire extra' calls (there were dozens!) and replaced it with
  simple call where it belongs.
  This drawing mode is becoming nice & stable... maybe something to make
  default on for new objects? Makes selecting quite easier...

- Subsurf: in editmode, with new 'Optimal' option set, the mesh itself
  will not draw, but instead it draws 'handles' to the vertices. Looks
  extremely clean!

- matched drawing of default grid-floor (persp) to ortho grid

- killed drawing vertices outside of main drawing loop, apart from the
  routine that uses mouse-selecting. (tekenvertices_ext()). It was an old
  optimize routine which became quite useless.

17 years agoHelpline drawing in transform (semi broken in this commit)
Martin Poirier [Tue, 21 Oct 2003 16:25:00 +0000 (16:25 +0000)]
Helpline drawing in transform (semi broken in this commit)
This is only usefull for rotate now, but the axis constraining code has a part that depended on this, so I commit this part first.

For coders:

void constline(float *center, float *dir, int col)
Draw an infinite line on the screen. col is the color argument. It must be cpack compatible

void project_short_infiniteline(float *vec, float *dir, short *adr1, short *adr2);
clips infinite line to screen border

17 years agoFor coders:
Martin Poirier [Tue, 21 Oct 2003 15:57:16 +0000 (15:57 +0000)]
For coders:

Axis CONST and variable rename in transform in preparation of further commits
Parsing code to supply axis constraint with the mode (Broken knows what I'm talking about)

17 years agoConstraint stuff from tuhopuu including (but probably not limited too):
Martin Poirier [Tue, 21 Oct 2003 13:22:07 +0000 (13:22 +0000)]
Constraint stuff from tuhopuu including (but probably not limited too):

Axis options for TrackTo

Auto creation of TrackTo constraint from Ctrl-T (old track still an option)

Auto creation of FollowPath when parenting to path (Normal parent still an option)

Backward compatibility stuff to convert the per object axis settings to per constraint when a Track constraint is present.

Function to convert old track to constraint (commented out)

Revamped the constraints interface with Matt's work from tuhopuu and the stuff we were discussing earlier.

For coders:

unique_constraint_name and *new_constraint_data  moved to the kernel (constraint.c)

new Projf function in arithb gives the projection of a vector on another vector

add_new_constraint now takes a constraint type (int) parameter

add_constraint_to_object(bConstraint *con, Object *ob) to link a constraint to an object

add_constraint_to_client(bConstraint *con) to link constraint to current client (object or bone)

add_influence_key_to_constraint (bConstraint *con) to (eventually) add a keyframe to the influence IPO of a constraint

17 years agofixed bugs:
Ton Roosendaal [Tue, 21 Oct 2003 12:23:38 +0000 (12:23 +0000)]
fixed bugs:

- faceselect mode works again
- selecting vertices for lattices, surfaces and curves works again
- in previewrender sometimes a square was drawn, which was texture-crop

17 years ago- forgot to set 'minimal theme' callback for sliders, causing a crash when
Ton Roosendaal [Tue, 21 Oct 2003 11:46:12 +0000 (11:46 +0000)]
- forgot to set 'minimal theme' callback for sliders, causing a crash when
  displaying Constraint Panel in F7 menu.

17 years ago- another formula for 'draw wire extra'. this time it doen't scale, but
Ton Roosendaal [Tue, 21 Oct 2003 08:43:29 +0000 (08:43 +0000)]
- another formula for 'draw wire extra'. this time it doen't scale, but
  only moves z-values in drawing in zbuffer. still matrix art I don't
  fully grasp... but it seems to work!

17 years agoMade pupmenu() separators consistent with pulldowns
Matt Ebb [Tue, 21 Oct 2003 07:28:44 +0000 (07:28 +0000)]
Made pupmenu() separators consistent with pulldowns
TODO: same for popup menu buttons

17 years agoAdded a function to shade alpha as well as colour
Matt Ebb [Tue, 21 Oct 2003 07:02:38 +0000 (07:02 +0000)]
Added a function to shade alpha as well as colour

17 years ago- Lots of tweaks to interface colours, shading, etc.
Matt Ebb [Tue, 21 Oct 2003 07:02:04 +0000 (07:02 +0000)]
- Lots of tweaks to interface colours, shading, etc.
- Fixed alignment/width of menus

Still needs more work.

17 years ago- fixed drawmode 'wire extra'.
Ton Roosendaal [Mon, 20 Oct 2003 23:20:37 +0000 (23:20 +0000)]
- fixed drawmode 'wire extra'.
  it was using some unsupported linewidth trick... I've been trying to
  get the official glPolygonOffset to working, but my silly Mac doesnt
  support it, it seems.
  So! I thought of another trick, and that's just moving the window
  matrix a little to the front. :)

- for those interested; the code for glPolygonOffset is still there,
  commented out. (drawobject.c)

- btw: the drawobject.c routines are a TOTAL mess!

17 years ago- added new drawing type for subsurf editing. Is called 'Optimal' and
Ton Roosendaal [Mon, 20 Oct 2003 21:58:15 +0000 (21:58 +0000)]
- added new drawing type for subsurf editing. Is called 'Optimal' and
  can be found under the 'SubSurf' button.
  Optimal drawing only shows the subdivided original edges. Quite nice!
  And; it's a load faster!

- to evaluate: do we want this in editmode too?

17 years agoadded sequence editor pull-down menus.
Simon Clitherow [Mon, 20 Oct 2003 20:12:01 +0000 (20:12 +0000)]
added sequence editor pull-down menus.

TODO: fix "Enter/Exit Meta Strip" to work correctly for nested
meta strips.

17 years agoExppython: small changes in NMesh internals and docs
Willian Padovani Germano [Mon, 20 Oct 2003 18:57:31 +0000 (18:57 +0000)]
Exppython: small changes in NMesh internals and docs

17 years ago- fixed correct themecolor for popup menus
Ton Roosendaal [Mon, 20 Oct 2003 18:15:06 +0000 (18:15 +0000)]
- fixed correct themecolor for popup menus

17 years ago- made a template function for editmesh enthusiasts.
Ton Roosendaal [Mon, 20 Oct 2003 17:46:33 +0000 (17:46 +0000)]
- made a template function for editmesh enthusiasts.
  - goes in a loop,
  - draws current window
  - sets view transform to correct matrix
  - you can draw stuff
  - swapbuffers
  - event queue test to escape

Test: CTRL+R in editmode.
Right now it hilites the closest edge to to mouse cursor, just for fun!
Goofster will use it for the loop-cutter tool later. But the template
will remain there, commented out, for others to play with.

17 years agoadded interface_draw.c to msvc 6.0 projectfile
Roel Spruit [Mon, 20 Oct 2003 15:57:43 +0000 (15:57 +0000)]
added interface_draw.c to msvc 6.0 projectfile

17 years agoAnother mega commit... loadsof restructure, and a pretty good one! :)
Ton Roosendaal [Mon, 20 Oct 2003 15:40:20 +0000 (15:40 +0000)]
Another mega commit... loadsof restructure, and a pretty good one! :)

- changed the BIF_DrawString() function. it used to work different for
  AA fonts  as for default fonts. Now it's identical. Setting color for fonts
  can just be done with OpenGL, for both font types.
  Removed: BIF_DrawStringRGB()
- added theme color options for Buttons
- recoded DefButton, so it automatically chooses the right color.
- had to remove a 1000 uiBlockSetCol() calls for that reason...
- uiBlockSetCol() still works, to override automatic color

- removed entirely the silly old color system (BIFColorID). All color
  calls can now be done with a BIF_ThemeColor() call, including fonts and
  buttons and opengl stuff

- all buttons in button header have headercolor by default

- recoded drawing icons, it was a really bad & old loop doing manually
  colorshading and blending... which was per pixel a load of code!
  Now it uses a single OpenGL call to blend or colorize. Quite faster!
- (as test, for review) icons don't colorize anymore with button color,
  but have a different alpha to blend in (when not active)

- recoded the entire interface_draw.c file...:
- drawing buttons is separated in three parts:
  1. main drawing function for text and icons
  2. free definable callback for button itself
  3. free definable callback for slider
- removed a load of redundant code for this!
- coded a minimal theme, and adjusted Matt's buttons to match new
  callback system

- adding new drawing themes is piece of cake now
- for coders, default 'themes' to be aware of:
  UI_EMBOSS : the themable drawing style
  UI_EMBOSSP: the pulldown menu system (apart from color not themable)
  UI_EMBOSSN: draw nothing, only text and/or icon
  UI_EMBOSSM: minimal theme, still in use for Logic and Constraintsa
  this can be set with uiBlockSetEmboss(block) or in the uiNewBlock() call.

TODO: make UI API call for button alignment

(plus removed another series of warnings from code...)

Plus: fixed bug in Matts commit: he used a 'short' button for an 'int'

17 years ago- Added nicer, smoother tooltip drawing
Matt Ebb [Mon, 20 Oct 2003 04:05:31 +0000 (04:05 +0000)]
- Added nicer, smoother tooltip drawing

17 years ago- Cleaned, compacted the 3D View header
Matt Ebb [Mon, 20 Oct 2003 03:33:29 +0000 (03:33 +0000)]
- Cleaned, compacted the 3D View header

- Cleaned, compacted and slightly re-arranged 3D View edit menus
- Added Undo and Knife Subdivide to 3D View menus
- Added undo_push_mesh to a couple of menu entries to make them work
  properly with undo

17 years agoAdded
Matt Ebb [Mon, 20 Oct 2003 02:19:48 +0000 (02:19 +0000)]
void selectall_type(short obtype);
void selectall_layer(int layernum);

17 years agoObject selection from tuhopuu2:
Matt Ebb [Mon, 20 Oct 2003 02:19:17 +0000 (02:19 +0000)]
Object selection from tuhopuu2:
Select All by Type / Select All by Layer

User info:
Found in (object mode) 3D View header menu > Select >
Select All by Type selects all objects on visible layers of a certain type
Select All by Layer selects all objects on a certain layer (visible / invisible)

These used together are useful for managing a complex scene, for example
quickly selecting all the lamps and moving them to a separate layer, or
selecting the contents of a layer without having to disrupt the view
configuration of visible/invisible layers.

Coder Info:
Added two functions in editview.c
void selectall_type(short obtype);
void selectall_layer(int layernum);

I committed both of these together since the code/changes are both
very similar.

17 years agoKnifetool bugfix:
Robert Wenzlaff [Mon, 20 Oct 2003 00:46:03 +0000 (00:46 +0000)]
Knifetool bugfix:
The call to headerprint left GL environment in wrong state to draw knife
line in all but top view. Moved persp() call to after headerprint().

17 years agoDynamic Face/Vert/Halo/Lamp tables:
Robert Wenzlaff [Sun, 19 Oct 2003 21:47:03 +0000 (21:47 +0000)]
Dynamic Face/Vert/Halo/Lamp tables:

User Info:
Hard coded limits on the total number of face, verts, halos, and lamps
is gone.  Blender now allocates the tables for these on an as needed
basis.  As long as your system can come up with the memory, you won't
run out.  As a bonus, it also uses slightly less memory on smaller scenes.

Coder info:
This has been in tuhopuu for a while, but I don't know how hard it
has been tested.  Since it now allocates only an initial 1024 tables
(of 256 verts/faces/halos each), it seems like it has been put through
it's paces. Lamps are allocated one at a time, and I start with 256.
  I rendered 2.5M Faces/Verts/Halos. 4444 lamps. None the less, I left
a few printf's in the realocation to hunt bugs.  I'll take them out
just before the release freeze.

Also, be on the lookout for other "sanity checks" that assume
a limited number of the above items.  I think I got them all, but
you never know.

17 years agoUnified renderer OSA sample clipping:
Robert Wenzlaff [Sun, 19 Oct 2003 21:08:44 +0000 (21:08 +0000)]
Unified renderer OSA sample clipping:

User info:
This change limits the contribution of any OSA sample to 1.0 per color
in the Unified renderer.  Because color=1.0 gives fully saturated color,
samples contributing more than 1.0 were overweighted in the OSA average
causing aliasing (sometimes quite severe).

Samples can contribute more than 1.0 because a material's spec and refl
values are not normalized (In real world spec+refl <= 1.0).  This solves
a large class of aliasing problems in the unified renderer.

Coder Info:

17 years agoEditmesh Undo:
Robert Wenzlaff [Sun, 19 Oct 2003 20:52:34 +0000 (20:52 +0000)]
Editmesh Undo:

User Info:
Pressing UKey in mesh edit mode now undoes only last step.  Undo can save
upto 64 steps of undo info.  This is configurable under User Prefs->
Edit Methods.  The default is 32.  High numbers of undo steps use a
lot of memory, since each step stores a copy of the mesh.

Shift-U redoes the last undone step (Undoes the undo.)

Alt-U brings up a menu of possible steps that can be undone.  Selecting
an item on the list undoes that item plus all items before it on the list.
The top selection "Undo All" is identical to the old Ukey.  It undoes
all editing since entering Editmode, even if all regular undo steps are
used up.

Undo info is only saved for one object at a time.  You can leave and re-
enter editmode for the same object, and all undo steps for that object are
preserved.  Undo info for an object is lost once a different object is

Coder Info:
In order for undo to work, a checkpoint save has to be made.  This is
done with a call to undo_push_mesh("name of step").  This should be done
after the last quick abort for a function (typ. the
"if (G.obedit==0) return;", or similar).  the undo_push_mesh() does alter some
flags, so don't try to be too tricky and call undo_push_mesh() too late.
The step name is what shows up in the undo_menu.  The name "U" is reserved.

17 years agoAdding Knife tool as to be released in 2.3
Robert Wenzlaff [Sun, 19 Oct 2003 19:50:17 +0000 (19:50 +0000)]
Adding Knife tool as to be released in 2.3

User Info:
To use this tool, select a group of verts, it can be larger than the
desired cut as explained below.  Then hit Shift-K.
The tool will  prompt for cut type (Exact line or Edge centers),
Select, then use LMB to draw a "cut-line".  Holding down LMB causes
a freehand draw, clicking LMB causes a polyline draw.  MMB locks the axis.
When done press enter to divide mesh on cut line. Subdivide routines have
been modified to produce fewer triangles as part of this tool.
Edge Centers preserves UV info, Exact Line does not (it will be there, just
slightly distorted).

Since the cut line exists in 2D space, and does not make a persistant
selection that can be modified in another 3D view, the knife selection
is the AND of the vertex selection and the knife line, ie; the edge will
be subdivided only if both verts are selected, and the knife line crosses
the edge.  Select your verts first, but you don't have to be overly
precise. If you want to cut a few faces on the front of a sphere, you
can select the whole front of the sphere, then knife the faces you want.

Coder Info:
KnifeSubdivide is called with 1 of 3 modes. KNIFE_PROMPT, KNIFE_EXACT,
KNIFE_MIDPOINTS.  The hotkey calls KNIFE_PROMPT.  When adding to a menu
or button, explicitly call out the mode.

Part of the tool provides get_mouse_trail() that returns a CutCurve struct
that defines a knife line.  There are modes defined, but currently they are not

Another part of this tool defines new behaviour for subdivideflag().
Setting beauty param to B_KNIFE tells subdivideflag() that the edges
are preselected ans to skip the vert check.  Also setting B_PERCENTSUB tells
subdivideflag() to divide the edge at a percentage of the distance from
eed->v1 to eed->v2.  This percentage is passed in the eed->f1 flag as a
short (ie, setting eed->f1 to 16384 cuts the edge half-way).

17 years agoincluded "BLI_arithb.h" for normal calculations...
Joseph Gilbert [Sun, 19 Oct 2003 16:03:18 +0000 (16:03 +0000)]
included "BLI_arithb.h" for normal calculations...

17 years ago- fix to prevent the following-mouse frame number display
Matt Ebb [Sun, 19 Oct 2003 12:53:46 +0000 (12:53 +0000)]
- fix to prevent the following-mouse frame number display
from disappearing when mouse pointer is moved above
the window space edge

17 years ago- simplified Theme API. No need to include 'current active area' anymore.
Ton Roosendaal [Sun, 19 Oct 2003 09:19:58 +0000 (09:19 +0000)]
- simplified Theme API. No need to include 'current active area' anymore.
  like: BIF_ThemeColor(TH_GRID); will be sufficient. Blender does the rest.
- fixed bug in CTRL-X (reload home file) with themes
- fixed bug in horizontal alignment of different height panels. Seems also
  to solve the drawing error with constraints...

17 years agoFix unchecked pointer reference when adding sitedirs to sys.path.
Stephen Swaney [Sun, 19 Oct 2003 06:26:32 +0000 (06:26 +0000)]
Fix unchecked pointer reference when adding sitedirs to sys.path.
This is a bugfix against the 2.28c release.

17 years agoAdded support for returning the normal of a NMFace
Joseph Gilbert [Sun, 19 Oct 2003 03:15:43 +0000 (03:15 +0000)]
Added support for returning the normal of a NMFace

17 years ago- added Theme for File Window
Ton Roosendaal [Sat, 18 Oct 2003 12:21:41 +0000 (12:21 +0000)]
- added Theme for File Window
- made grid drawing using the main theme color
- was annoyed with the primitive grid... so coded something that allows
  zooming in and out a 100fold without losing gridlines
- brought back 'NKEY' for mesh editmode
- added to this a 'median' option; when more vertices selected you see
  the average coordinate. works nice when inputting values as well
  (todo: make this for other editmodes)
- renamed the 'NKEY' panel to 'Transform Properties', also fixed in
  pulldown menu.

I am off for the rest of the day. More committing fun tomorrow!


17 years agoA few small tweaks to the panel drawing
Matt Ebb [Sat, 18 Oct 2003 12:02:03 +0000 (12:02 +0000)]
A few small tweaks to the panel drawing

17 years ago- Added ICON_PANEL_CLOSE
Matt Ebb [Sat, 18 Oct 2003 07:37:37 +0000 (07:37 +0000)]

17 years ago- Updated panel style based on funboard feedback
Matt Ebb [Sat, 18 Oct 2003 07:36:46 +0000 (07:36 +0000)]
- Updated panel style based on funboard feedback
- Added white 'close panel' icon ICON_PANEL_CLOSE to blenderbuttons

17 years ago- A few small wording edits
Matt Ebb [Sat, 18 Oct 2003 03:41:22 +0000 (03:41 +0000)]
- A few small wording edits
- Added Copy/Pase/Paste Flipped pose to the Armature menu