Commit Graph

265 Commits

Author SHA1 Message Date
Ton Roosendaal
b334be110d New transform:
- added texture space grab/scale (TKEY objectmode)
- made new transform work with menus (meaning, dropping dreaded while-hold)

To Martin & other while-hold lovers: this needs to be carefully thought over
and designed. I prefer to look on this within context of making transform
fully tablet/pen friendly, as option. Aim now for me is still: get transform
back to work! :)
2005-02-25 17:40:03 +00:00
Ton Roosendaal
91fbe72115 Transform project.
Brought back functionality to work with "Ipo Keys" (Kkey in 3d window). New
transform code is looking more messy now... its design was not purposed to
clean on this level. Acceptable for this stage however.

Also renamed old variables *tob into *td.
2005-02-25 11:35:24 +00:00
Johnny Matthews
5519157c86 This is an initial commit for inserting a text file as one 3d text object per line. The function for making the objects aligned to the screen needs to be added, since right now it is aligning rotation to the screen but translation is not right since I am adding an offset to the non-viewport location of the objects. That offset just needs to be translated to screen first. 2005-02-24 19:22:31 +00:00
Ton Roosendaal
118e4bcf7b Transform project. Daily update:
- Pose Mode restored
- Dependencies work again as usual (mainly copied old code)
  so grabbing a Hook deforms, etc
- Made main transform loop idling nicely (save CPU)
- removed proportional mode for Objects (Martin OK'ed)
- code style: renamed "tv" into "td" variable names (trans-data now)

TODO:
- Ipo Key-mode editing
- texture space grab/scale
- correct inverse for scaling children offset
- actually, loadsa testing needed. :)
2005-02-22 16:50:04 +00:00
Jiri Hnidek
c2e6ced9b8 - added "hide" flag for MetaElem. Hidden MetaElem doesn't influence polygonisation.
It is useful for large scenes, when you work with lot of MetaElems. Example:

  http://e-learning.vslib.cz/~hnidek/pics/deer.jpg

  (PildaNovak's model)

- shortcuts for hiding of MetaElems:
   H ......... hide all selected MetaElems
   Shift-H ... hide all unselected MetaElems
   Alt-H ..... unhide all hidden MetaElems

- items in header menu of 3dview
2005-02-21 10:40:30 +00:00
Ton Roosendaal
7ad68dd4a6 Daily commit for transform() project, to prevent conflicts with Martin's
work. :)

- added static and (void) and some style stuff  in transform.c
- first additions in code for posemode (do not even try now!)
- fixed warnings in previous commit martin (gcc only)

Note; posemode old transform had complex dependencies on redraw (Hos' home
grown dep graph), which is first being restored. Including old style
set_base_flags_for_editing. Tomorrow!
2005-02-20 19:00:00 +00:00
Martin Poirier
4e39c4361f Making transform's code more Blenderish with a proper extern include file (BIF_transform.h) and extern function calls (BIF_*).
On a side note, Shear was fixed in last commit, just forgot to mention it. It wasn't acting correctly in Edit Mode (and Desoto was poking me about it every sunday).
2005-02-20 01:25:10 +00:00
Johnny Matthews
0324fc10b1 This commit adds rotate edges Clockwise and CounterClockwise to the Edge Specials Menu (and of course the code to back them up) 2005-02-16 15:02:58 +00:00
Ton Roosendaal
78f133b8a7 Bug found by Bassam; in certain occasions reading a file calls setscreen()
without the (ugly) global curarea being set.
Fixed the crash in his sample by nicely passing on 'current area' as
argument.
2005-01-31 18:37:54 +00:00
Rob Haarsma
136ecd4644 Modified interface texture font support, which should work nicely with the freshly added bFTGL library.
Also removed some redundant #include's on some files.
2005-01-21 14:48:03 +00:00
Rob Haarsma
9fddd2bdec Added experimental option to use GL textured interface fonts.
Set preferred method in userprefs->language & font.
Kinda requested by Kaito, i'm sure he regrets after seeing
my code changes.

This commit includes a patch provided by Jacques Baurain,
which seemed nescessary to handle font sizing properly.
Thank you !
2005-01-19 13:53:43 +00:00
Brecht Van Lommel
5161998bbe Softbody commit broke compilation of blenderplayer. There was a dependancy
from blenkernel/ to src/. Moved the offending functions to blenkernel...
2005-01-12 23:57:33 +00:00
Jens Ole Wund
912ef80bdc big softbody commit
some vertex group , weight painting stuff too
/me crosses fingers it does not break anything
2005-01-12 22:28:13 +00:00
Ton Roosendaal
341bb20dbd Should have done ages ago!
This commit replaces the glDrawPixels and rectwrite_part with the very
nice (thanks zr!) glaDrawPixelsSafe() call. Result is:
- 3d window background image displays correctly onto the edges when
  zoomed in extreme
- same for UV image window and sequence preview
- preview render now doesnt disappear when left part is outside window
(zr also deserves kick in butt for not doing this himself in NaN days!)

Especially from preview drawing quite some old hacks were deleted. It is
even quite some faster.
Please notify me when it doesnt work on your card... this now is just 100%
according opengl guidelines though :)

Also fixes bug #2100
2005-01-07 21:48:25 +00:00
Ton Roosendaal
610cec55c7 Biiig commit! Thanks to 2-3 weeks of cvs freeze...
Render:
- New; support for dual CPU render (SDL thread)
  Currently only works with alternating scanlines, but gives excellent
  performance. For both normal render as unified implemented.
  Note the "mutex" locks on z-transp buffer render and imbuf loads.
- This has been made possible by major cleanups in render code, especially
  getting rid of globals (example Tin Tr Tg Tb Ta for textures) or struct
  OSA or using Materials or Texture data to write to.
- Made normal render fully 4x32 floats too, and removed all old optimizes
  with chars or shorts.
- Made normal render and unified render use same code for sky and halo
  render, giving equal (and better) results for halo render. Old render
  now also uses PostProcess options (brightness, mul, gamma)
- Added option ("FBuf") in F10 Output Panel, this keeps a 4x32 bits buffer
  after render. Using PostProcess menu you will note an immediate re-
  display of image too (32 bits RGBA)
- Added "Hue" and "Saturation" sliders to PostProcess options

- Render module is still not having a "nice" API, but amount of dependencies
  went down a lot. Next todo: remove abusive "previewrender" code.
  The last main global in Render (struct Render) now can be re-used for fully
  controlling a render, to allow multiple "instances" of render to open.

- Renderwindow now displays a smal bar on top with the stats, and keeps the
  stats after render too. Including "spare" page support.
  Not only easier visible that way, but also to remove the awkward code that
  was drawing stats in the Info header (extreme slow on some ATIs too)

- Cleaned up blendef.h and BKE_utildefines.h, these two had overlapping
  defines.

- I might have forgotten stuff... and will write a nice doc on the architecture!
2004-12-27 19:28:52 +00:00
Ton Roosendaal
ee810028b7 Increased builtin limit for selection buffer (border select in Object mode)
to allow up to 2500 objects (was 500).
Still an arbitrary limit, could use better code. For now its less
frustrating :)
2004-12-16 14:42:10 +00:00
Kent Mein
e6489f4a55 Added
#define B_UNLINKIMA            1358

Since it was undefined and causing things not to compile.  Whoever added it
might want to move it but hey its working again for now. ;)

Kent
2004-12-03 02:42:21 +00:00
Ton Roosendaal
d7c8ff725a Bug #1909
When choosing "render engine" in Scene Buttons, the newly added or removed
Panels didn't invoke a re-alignment event yet.
Also added code that inserts new panels as good as possible on their
previous locations. This works reliable for 1 new panel, not for more, this
because a Panel only stores its old location, not the locations of all
Panels in a given configuration. Consider that minor issue...
2004-12-01 12:39:14 +00:00
Ton Roosendaal
598e5053cd Bug reported on IRC by Chris Want
Remove doubles, editmode Mesh, returns short. doesnt work nice on large
meshes! Is int now.
2004-11-24 16:29:10 +00:00
Ton Roosendaal
f3c8c47adb Fix for #1839
On large changes of the Lattice resolution button, the undopush crashed.
Reason was that the push happened for buttons before the actual event for
buttons was executed.
Solved by creating new event UNDOPUSH that's being added to the queue by
by buttons now.

- Made button undo texts for number buttons more clear
- Added undo push for missing Add lamp/empty/lattice/camera
2004-11-22 22:41:07 +00:00
Ton Roosendaal
a91f7ff763 Bugreports keep coming in... including real bad one.
- Deformed mesh didnt give correct 'orco' anymore on render
- Mesh editmode, "Separate loose parts", crash on empty mesh (no verts)
- Global undo; buttons sending redraw events gave extra undo push called
  "Make single user or local". That latter was wrong event handling for
  REDRAW event, harmless, until now :)

First one is a real showstopper... bah!
2004-11-19 22:44:06 +00:00
Ton Roosendaal
cfd5d0267e Cosmetic change; nice Icon for Python! :)
Used the one from python.org (favicon).

It displays now as icon for pulldown menus and script space.
2004-11-11 23:58:05 +00:00
Ton Roosendaal
061cde65a6 To end the issues with AA (International) Fonts; the .bfont.tff now is
compiled in (datatoc) and doesn't need installation anymore.

Also reviewed weird path conventions for searching AA fonts;

- U.fontdir is only used as standard search path for fileselecting
- U.fontname stores only full path to AA font if used one
- If a font cannot be found, it always falls back to the compiled in one
- If .B.blend is saved with default font, U.fontname is not set

Also added a button in usermenu "restore default".

When this works as expected, I'll commit changes for installation too.
2004-11-08 15:46:57 +00:00
Ton Roosendaal
fcd0a3f9d2 Undo for lattice editmode added. 2004-11-07 21:14:21 +00:00
Ton Roosendaal
1ba95262f6 More undo goodies;
- Undo for editmode Font object
- Undo for posemode :)
  (btw; it also means posemode remains active on file load)
2004-11-07 20:11:42 +00:00
Ton Roosendaal
ac0bb78a20 Tweaked the force_draw() calls, to allow headerprint() to work while
doing a transform. Solves bug reported by Brecht about this.
2004-11-07 18:20:44 +00:00
Jens Ole Wund
23e8b98228 fix bug #1546
ghost was unaware of extra *<>* key on german keyboards on windows
2004-11-07 16:30:19 +00:00
Ton Roosendaal
5ffb4cb338 Bug report #1732
Function "deselect vertex group" didn't use proper code for new edge/face
flags yet.
2004-11-05 10:19:13 +00:00
Ton Roosendaal
691302f28d Two fixes;
- The function "convex()" in editmesh_lib() actually did not deliver
a proper test for convex at all. It was checking only if a quad could
be subdivided into 2 trias. Code for adding face (FKEY) used this
call in total confusing manner. That code was there in 1.40 already,
cannot find any clue what it was supposed todo... :)
Recoded convex() to deliver a proper test. FKEY will give warning on
attempt to make convex faces now.

- Added undo-free for editmode undo on file load
2004-11-03 11:25:27 +00:00
Ton Roosendaal
a89a4f531c - Bug #1714; editmode undo error when ESC after extrude (missing undopush)
- Curve Join now moves all curves to 2D (if its 2D)
- FGon extrude keeps FGon flags correctly
- After Append undo-push added
- In almost all Ipo editing commands; undo-push added
- Icons in outliner now all consistant grey
- Zoffs button had to 20 high (hmetal :)
2004-10-31 21:11:03 +00:00
Ton Roosendaal
4c827e73e2 Four new extrude possibilities;
- Individual faces
  Keeps Mesh manifold, so removes old faces always. Also uses a
  transform based on different vectors per vertex.

- Only edges
  Just extrudes the edges (not really 'individual', the edges still
  share the vertices. Uses same transform as normal extrude for that
  reason

- Only Vertices
  Uses normal transform after extrude

Also changed code a bit, to detect whether to call a normal-based
transform after extrude, or whether to call normal grabber. For example
when you just extrude 1 edge, it uses normal grabber.

Note; extruding an entire sphere goes OK with 'individual faces'. for
other extrudes you should press 's key' when in transform. Just cannot
predict (yet) when one method has preference over another.
2004-10-18 22:47:26 +00:00
Ton Roosendaal
121f842fb4 Outliner now visualizes and allows selection and name editing of Armatures
in edit mode.

Small extra fix; selection (mouse) on armature points goes easier now
(larger accepted distance from mouse pointer)
2004-10-16 20:41:18 +00:00
Ton Roosendaal
a463798984 Suggested by bug reporter; pressing Fkey to make a face, whilst the
selection already is 2 triangles, it should create a new face but
remove the old triangles. It actually calls the 'ALT+J' command then
(join triangles)

While testing found out more cases where new selection flags were not
properly used (join trias, beauty fill, flip edges, rotate edges)
2004-10-16 13:53:41 +00:00
Stephen Swaney
4ac4629905 a patch for the Text editor contributed by themeyers.
adds new features for indenting and commenting.

Note: I am not sure if the best menu spot for these features
is under the Select menu, but we can argue about that later.
They do work on a selection, though.

from the mailing list post:

1&2. Added Indent/Unindent under Edit->Select
just select the text you want to indent and go to the menu (
note if nothing is selected Indent will just indent ( tab )
the line the line )

3&4. Added Comment/Uncomment to the same menu
same applies as above

5. Added Tab setting on the menu bar in text editor
Sets the number of spaces a tab ==
changing the setting will change the hole script

6. Added Auto indent
when you hit enter it goes to the next line at the same
tab number and the line above it ( needs more testing and input)
2004-10-14 23:37:04 +00:00
Ton Roosendaal
6fbd4e3e1f Color picker fixes... (bug #1490)
Since color is stored RGB only in Blender, the conversion from and to HSV
causes values to be clipped all the time.
Solution found is adding a persistant hsv storage to the uiBut struct, and
have it working on that only while hsv button is open. Still, after usage
(leaving picker) the conversion will change values to rgb.

Also added; redraw event for editing buttons, to show correct changed
color while using nkey picker
2004-10-14 14:20:24 +00:00
Kent Mein
0d68cafdec Added to the top of the file: struct SpaceOops;
to stop a warning about SpaceOops defined inside of parameter list...

Kent
2004-10-14 13:52:12 +00:00
Ton Roosendaal
2521a8b577 Bug fix 1432;
When you PAD-enter on a popup-number button (like for add circle) it
accidentally de/increased the value before assigning an "OK". Fixed.

Also: restored functionality that allows to use Enter keys as a mouse
button click. This de/increases values now, opens menus, etc. Not in
pupup or pulldown menus though!
2004-10-12 09:06:28 +00:00
Martin Poirier
dbf5076b98 Moved headerprint to editscreen (for logical placement and reusability).
Made extrude along normals more sane. Now behave like a move along an arbitrary axis (including Ctrl/Shift applications and typemode). Also prints "Along faces normal" in the header, to tell the user what's happening.
2004-10-11 18:42:18 +00:00
Ton Roosendaal
b024faabe5 Outliner features:
- Rename!
CTRL+leftmouse click on name, makes it a text button. Works for all items as
currently being displayed.
Most work was doing the Bones, which is a nightmare :) But it uses same
code as buttons in Armature-Editmode now, without even needing EditMode :)
When renaming a bone, the Outliner makes the Object active though.

- PageUp / PageDown keys
Do what you expect.
2004-10-11 11:54:14 +00:00
Ton Roosendaal
851c5781be - Added Outliner selection
As a means to indicate items in the Outliner to do operations on, you can
select with RMB items. Works like FileSelect here. Since selection in
Outliner is only on outliner level, no further UI updates happen. That is
reserved for LMB actions.

Implemented right now are only few operations... they can be called up with
the WKEY (the famous spare key :)
- if objects selected, a menu appears with choices
- if materials or textures selected, a meny appears to unlink them

If you make mixed or confusing selections you get a warning message.

TODO: add selection color in theme, and of course more operations.
2004-10-10 11:33:19 +00:00
Jens Ole Wund
76eab0cf16 fixed subdividing bug with addfacelist(..) rule for edges
still needs revision on bevel and rotate edge
2004-10-09 20:49:55 +00:00
Ton Roosendaal
d0ca4c9efa More outliner stuff;
- added Images in overview
- added Scripts in overview, if clicked it makes it active in open Text
  Window
- Padplus/Padminus keys now open one level deeper or less

- fix: Akey didn't really open all...
- fix: click on item of non-active scene, activates new scene
2004-10-08 16:03:43 +00:00
Ton Roosendaal
c659758a38 Outliner options;
- Added in pulldown the current view commands, including the 'show
  hierachy' option, which shows only the full object tree
- You now can activate data by clicking on the hidden icons (displayed in
  a row of a collapsed item)
- Added selection and display of active NLA strips
- Cleanup; white text in outliner only for active object
- Made hierachy helplines 1 pixel wide and black, looks nicer
2004-10-08 09:27:08 +00:00
Ton Roosendaal
1b46679eff More outliner features;
- Made visualization of object hierarchy more clear with lines; this
  solves the sometimes confusing mix of 'children objects' and
  'linked data'.
- Enter editmode on click, also shows editing context buttons
- SHIFT+click on a item closes/opens all below that item
- Added constraints and Hooks (watch fun icon!)

Note; global undo doesnt restore former view for outliner... it does not
save the GUI, remember? :)
2004-10-07 21:45:04 +00:00
Ton Roosendaal
14ae3362c5 Aie... changed a define and now the silly ENUM doesnt work. :)
Fixed!
2004-10-07 16:16:03 +00:00
Ton Roosendaal
45f1a534b6 - Outliner now sorts Objects alphabetically
(i tried sort 'by type', but thats very unclear... need think over)
- Vertex Groups are visualized in Outliner (and selectable)
- Armature Bones are visualized & editable too

In general; Outliner now also supports indirect data (Structs with no ID)

- changed weirdo NLA icon into something that makes sense. (Thnx sten!)
2004-10-07 15:20:08 +00:00
Ton Roosendaal
b94b922d23 - Fix: enter/exit posemode used wrong pointer, could crash
- enter/exit posemode now updates outliner view too

- New: outliner option "Show same type". Shows only object types as
  current active one. Nice to browse all lamps, mballs, armatures, etc
2004-10-06 21:48:29 +00:00
Ton Roosendaal
d5e0c065bc Version 1.0 of the new Outliner
The outliner is a hierarchical diagram displaying a list of data in Blender
and its dependencies. The 'databrowse' doesn't really show it, and Oops is
too chaotic still. And most of all, the former two don't offer much tools.

After discussions on irc, Matt came with this design proposal;
http://mke3.net/blender/interface/layout/outliner/
Which is closely followed for the implementation.

The current version only shows all 'library data' in Blender (objects,
meshes, ipos, etc) and not the 'direct data' such as vertex groups or NLA.

I decided to make it inside the Oopw window, as an option. You can find the
option in the "View" pulldown, or directly invoke it with ALT+SHIFT+F9
Here's a quick overview of the Outliner GUI:

- Header pulldown has options what it can show (Visible = in current layers)
- click on triangle arrow to open/close
- press AKEY to open/close all
- Leftmouse click on an item activates; and does based on type a couple of
  extra things:
  - activates a scene
  - selects/activates the Object
  - enters editmode (if clicked on Mesh, Curve, etc)
  - shows the appropriate Shading buttons (Lamp, Material, Texture)
  - sets the IpoWindow to the current IPO
  - activates the Ipo-channel in an Action
- Selected and Active objects are drawn in its Theme selection color
- SHIFT+click on Object does extend-select
- Press DOTkey to get the current active data in center of view


TODO;
- rightmouse selection; for indicating operations like delete or duplicate
- showing more data types
- icon (re)design...
- lotsof options as described in Matts paper still...
2004-10-06 18:55:00 +00:00
Ton Roosendaal
010200f9b5 Fix for new UI system and vertexpaint/faceselect/weightpaint/texturepaint
If backbuffer is in use for selection codes, the system switches back to
frontbuffer drawing temporally. Is easier solution now.

Next commit; fix for new 'zbuffer clipped selection', which also doesnt
work after using a pulldown or popup menu.
2004-10-03 20:02:22 +00:00
Ton Roosendaal
3a840670a5 Lots of small changes, all for UI in Blender;
----- Killed UI frontbuffer draw
The interface toolkit was drawing all live updates (while using menus/buttons)
in the frontbuffer. This isn't well supported cross-platform, so time to be
killed once. Now it uses *only* glReadPixels and glCopyPixels for frontbuffer
access.

Live updates or menus now are drawn in backbuffer always, and copied to
front when needed.

NOTE: it was tested, but needs thorough review! On PC systems I suspects
backbuffer selection to screw up (check!). On SGI/SUN workstations it
should work smooth; but I need evidence

----- Smaller fixes;

- AA fonts were garbled on ATI systems. Now the AA fonts are drawn exact
  on pixel positions. Needs the new FTGL libb too, patch is on maillist
- Rounded theme uses antialiased outlines
- Pulldown and popup menus have nice softshadow now
- New button type 'PULLDOWN', thats the one that callsup a pulldown menu.
  Should be added to themes, as is the full menu/pulldown drawing
- Screendump for 1 window does the full window now, including header
- Empty pulldowns (for example running blender without scripts) give no
  drawing error anymore

For review & fun;
- added curved lines as connectors, for Oops window
2004-10-03 13:49:54 +00:00