Commit Graph

3971 Commits

Author SHA1 Message Date
Ton Roosendaal
6bb1232b06 Bug fix #2533
Made face-looping code idling correctly (hotkey K in editmode)
2005-05-12 14:37:47 +00:00
Ton Roosendaal
34d8522431 bugfix #2532
Grab Time marker didn't idle correctly... was not checking for correct
previous mousecoordinate.
2005-05-12 14:30:17 +00:00
Ton Roosendaal
aca394e341 On "Add duplicate object" the softbody baking info wasn't freed.
Note: currently the 'baking' stores the entire animation system, which
makes further animation refining (or duplicating) useless for a Baked
SoftBody. You can even delete the entire anim system.
This can be presented as a feature too (saves slow armature stuff).
However, I might check on a 'relative' bake too.
2005-05-12 14:00:12 +00:00
Matt Ebb
71a2d40b00 * Timeline should display frames by default, not seconds 2005-05-12 12:33:43 +00:00
Stephen Swaney
55cf304e99 bugfix: #2254 Curve.appendPoint() gives segfault in PySequence_Check().
Argument tuple not built correctly for CurNurb_appendPointToNurb().
2005-05-12 05:45:13 +00:00
Jiri Hnidek
516e21459c - it was imposible to select one of two markers laying at the same frame ... this
problem is solved now. Drawing of markers is little bit hackish, because it is
   neccessary to draw unselected markers at the first time (unselected marker can't
   hide selected marker ... visual information about selection would be lost)
2005-05-11 21:50:19 +00:00
Ton Roosendaal
884c94500b Another update on FTGL texture fonts drawing. Added the same floor() trick
to precisely align the glyphs to pixel coordinates as used in the Pixmap
version. It now looks fully identical here.
2005-05-11 21:09:13 +00:00
Ton Roosendaal
6bc1dd4665 Removed frontbuffer updating in FileWindow. Not only fixes annoyances on
graphics cards (ATIs mostly) but solves drawing errors of hilites while
scrolling. Especially apparant in 'animated UI mode'.
2005-05-11 20:51:11 +00:00
Ton Roosendaal
d0cb554650 Icon image with pause. 2005-05-11 20:11:09 +00:00
Ton Roosendaal
1c5c8c006b Correct "Pause" icon for timeline header. 2005-05-11 20:10:51 +00:00
Ton Roosendaal
0574768f88 Animated UI for TimeLine "Play"
Using the Play button in timeline, now uses an event-driven system to
update the animation system and signal windows to redraw. Meaning the
full UI remains responsive!

Check the new Pulldown "Playback" to set which windows you like to see
updated. Same settings is used for LMB 'dragging' frames in Timeline.

Implementation notes;

- the Icon for 'Pause' (or stop) has to be made yet, I commit this from
  my laptop... all was coded during a 2 x 5 hour train ride to germany
- the anim playback system (ALT+A too) now uses correct "frames per
  second" as maximum speed. Buttons can be found in 3 places in the UI,
  also added it as pulldown item
- The system works with 'screen handlers', which has been coded with
  using Python (networked) events or verse in mind too. A doc on that
  will follow.
- the buttons code has been made 'resistant' to animated UIs too,
  preventing flashing of hilites.
- All subloops (like transform) stop playback, with exception of MMB
  view manipulations.

As extra; found tweak to make Textured AA fonts draw without distortion.
Looks perfect here on laptop now (like Pixmap fonts) and is 20x faster.
2005-05-11 20:01:42 +00:00
Ton Roosendaal
57f9553b3a Testing commit... i keep getting errors. sorry! 2005-05-11 19:56:42 +00:00
Martin Poirier
d07dccc386 Found some time do sanitize the big Transform call:
- Splited off the event treatment into a fonction of its own
- Splited off the initialisation phase into a function of its own (will have to do it for the manipulator function too)
	Calling transform now works like this:
		initTransform(mode, context)
		- possible post init calls, constraints mostly
		Transform()
		- eventually, the postTransform function, so that Transform is just a simple big loop which could in the end just be tied in the blender event system instead.
- Added a state variable in TransInfo to replace the ret_val local variable. Possible values are: TRANS_RUNNING, TRANS_CANCEL, TRANS_CONFIRM
- Tied MMB and the hotkey select for constraint together, so selecting an axis with MMB and pressing the axis key after that goes to local mode on that axis. Much less confusing.
2005-05-10 04:21:11 +00:00
Alfredo de Greef
0c3f055677 Forgot part of the vertexcolor endian fix in xml export code.
Fixed an as of yet unreported bug, linked data objects which have materials
linked to object instead of data have to be exported as normal, they cannot
be instanciated, otherwise they will all share the same material.
2005-05-10 02:00:13 +00:00
Martin Poirier
3676fb1b3f Fixed rotating, didn't take parent into account properly (hmmm, I'm sure this worked before).
That was bug #2516: http://projects.blender.org/tracker/?func=detail&atid=125&aid=2516&group_id=9

Also turned back some changes Ton did to drawing object constraint lines. Explained the why in a longish comment.
2005-05-09 23:37:35 +00:00
Stephen Swaney
f7ba839698 epy_docgen.sh: change directory name for generated doc to BPY_API_237
for upcoming release.
Font.py:  fix a couple of warnings about mismatched header underlines.
2005-05-09 14:11:00 +00:00
Joilnen Leite
34cd733c2b fixed a syntax error line 45
.
2005-05-09 13:40:00 +00:00
Ton Roosendaal
dec1c38332 New buttons image, with fix for slightly offset icons in top row. 2005-05-09 12:59:05 +00:00
Joilnen Leite
6eb57f8c0a doc about Text3d.Font object
.
2005-05-09 11:43:14 +00:00
Martin Poirier
dcae3d2058 MSVC 6.0 Projectfile changes for the timeline in BL_src.dsp (adding new files mostly).
BPY_python.dsp need some changes too (adding Font.c and Font.h) but I've got other changes in there that I can't commit, so someone else will have to update.
2005-05-09 09:53:55 +00:00
Alfredo de Greef
e9545cb9cd bugfix #2494:
parented linked data lamps made the export crash.

fix for two bugs reported by Diego Pino, an endian issue with vertex colors,
and the plugin code didn't export multiple colorbands correctly.

Updated the ortho camera export code for the new Blender ortho camera model.
2005-05-09 03:46:21 +00:00
Willian Padovani Germano
09fb5d6b8d BPython:
- Made Blender.event var (previously only used by script links) hold ascii value -- where it applies -- of current event during events callback registered with Draw.Register(gui, events, button_events).  Useful for gui scripts like Campbell's Python console. No problem using this var to hold the value, since in gui scripts it was not used (always None).

- Updated Window and Window.Theme with new theme vars and the Time space.

- Script links:

-- Added "Render" event for script links (runs twice, second time as "PostEvent", for clean-up actions). Now FrameChanged links don't run when a single pic is rendered.

-- Added "Enable Script Links" button in the script buttons tab.  Now this bit gets saved in .blends along with the rest of G.f, so users can define per .blend if they are on or off by default.  "blender -y" also disables all slinks as happened before with OnLoad ones only.

-- Other small changes in the script buttons tab:
  When a link is added (button "new"), it becomes the active one for the window, no need to press a button to reach it.
  Also, a pupmenu showing all available texts is shown when "new" is pressed, so users can choose a text w/o having to type.  Cancel the popup to leave the string button empty (link exists, but has no script assigned).  A pulldown would be better UI-wise, but it's kinda weird to show both scripts and normal texts (Blender doesn't differentiate them) in a script links pulldown.  With a popup we can show only texts ending in ".py" (not done in this commit, need opinions) and if the script has no or another extension, case of many in old and current .blend's, there's still the string box for writing its name.

-- Implemented Ton's space handler script links:

Right now only for the 3d View,  but it's trivial to add for others.  There are two types: EVENT, to receive 3d View events from a chosen window and DRAW, to draw on the window.  Ton's idea was to give scripts a controlled way to integrate better within Blender.

Here's how it works:

- scripts must have a proper header, like:
# SPACEHANDLER.VIEW3D.EVENT

and then they are shown in 3d View's View menu, "Space Handler Scripts" submenu.  Check (mark, click on it) a script to make it active.

EVENT handlers should consult the Blender.event var to get the current event, which can be compared with values from the Draw module:

import Blender
from Blender import Draw

evt = Blender.event
if evt == Draw.AKEY:
  print "a"
elif evt == Draw.LEFTMOUSE:
  print "left mouse button"
else:
  return # ignore, pass event back to Blender

Blender.event = None # tell Blender not to process itself the event

DRAW handlers are free to draw to their owner 3D View. OpenGL attributes and modelview and projection matrices are pushed before running the handler and poped when it finishes.

To communicate between EVENT and DRAW handler scripts we have the Blender.Registry module, as always.

Still need to code some nice example, which should also serve to test properly space handlers.  Simple tests went fine.

- doc updates about the additions.

=======

Note: the UI part of the space handlers and script links is of course open for changes, I just tried to make it understandable.  Probably we won't use the scriptlinks icon for "None Available" (check 3d View -> View -> Space Handler Scripts), though it hints at what space handlers are.  The tooltips may not be accepted either, since other menus don't use them.  Opinions welcomed.
2005-05-08 21:20:34 +00:00
Ton Roosendaal
8077caa96e Bug fix #2528
Transform on "ipo keys" gave crash on ESC, due to non initialized pointer.
(Martin; that idea to not calloc new data... grumble!)
Note; that's another Margarita for Randall, at the Figueroa pool. :)
2005-05-08 20:44:59 +00:00
Ton Roosendaal
ef2855bcab Timline goodies;
- Mkey while ALT+A inserts markers.
  Note for Matt; You forgot to check for 'val'. The delay in tuho I brought
  back to max 1 frame. Delays are common in realtime gfx apps, the picture
  you see is old, and its possible you press a key while next frame is
  already drawing, and then it has to increase the frame value still... :)

- RMB escapes from anim playback

- on activate object, Timeline redraws too

- Added keyline drawing for Material Ipos. The CTRL+Page keys work with it.

Softbody:

- Renamed buttons to call "Spring constant" now "Stiff(ness)" and the
  "Friction" became "Damping".
2005-05-08 20:10:59 +00:00
Ton Roosendaal
eec4e32714 Another Transform todo: correct Undo names for using Transform.
Martin; I've added calls like:
	BIF_TransformSetUndo("Add Duplicate");
In advance of calling transform itself, to indicate that this is the
string name to be used for Undo, and also has to be done on ESC.
To make that possible I had to add a memset() to zero the global struct
TransInfo. Nicely done with if(Trans.mode==TRANS_INIT)

Not sure how this relates to setting constraints in advance... I always
found it tricky to work a non-initalized global struct. :)
2005-05-08 12:00:28 +00:00
Ton Roosendaal
744bb6f19a UI goodies & cleanup
- TimeLine: Marker grabbing works now. Use GKEY or select+drag, as usual
  Holding CTRL will step with 1 second (corrected for ntsc dudes yes!)
  Also added this in header pulldown

- Time values and Time grid draw fixed for Seconds display. It used to
  draw steps of 2/5/10/20/50/100 etc. frames. Now does steps in seconds.
  Again corrected for "Frames/Sec" value.

- "Frames/Sec" button redraws TimeLine, Secquencer, etc

- Bug fixed in editing Theme for TimeLine (was editing Image Select...)

- Added Grid color to Theme choices for Ipo, TimeLine, Sequencer, NLA,
  Action, Sound. Was missing!
2005-05-08 11:24:46 +00:00
Ton Roosendaal
74ec3d4f51 Added: new Pivot option, "Around active object".
Works nice quick to rotate a group of Objects around a defined center,
without hassle with the 3d cursor. Especially for the 3D Manipulator.

In EditMode/PoseMode this option falls back to "Centroid", as does the
"Individual centers" option already.
2005-05-08 08:16:43 +00:00
Ton Roosendaal
d10862a9da Fix for negative scaling & Mirror menu in Object mode (CTRL+M)
Hope Martin likes this simple hack. :)

Also; added flag in constraint to denote whether its local or not. That
way its possible to:

- prevent local scale and rotate on multiple objects to change own position
- draw constraint lines cleaner
2005-05-07 21:04:55 +00:00
Ton Roosendaal
4a123c082f Dang, flipped a zero and one!
Error in commit of 5 hours ago... normal alignment didnt work OK for the
case a face is selected.
2005-05-07 20:15:54 +00:00
Ton Roosendaal
9a41ac4f70 Patch from Tom Musgrove to bypass extrude popup on singular selections...
Implementation had some issues though, since:

a) Blender has no stats available that tells amount of selected edges
b) Bypassing the popup should be 100% accurate
b) Once you do that, the popup should actually only show possible
   choices as well.

So! I've added a G.totedge and G.totedgesel, also being printed in the
info header. Using this variable the extrude popups could be limited too.

Also: made 'normal alignment' for edge-only selections work when the
normal wasn't pointing OK. Now it aligns the Z axis with the edge itself
Exact algorithm for choosing a 'normal' and 'plane' still is weak.
2005-05-07 15:50:09 +00:00
Ton Roosendaal
71c2d1e9d6 Added two UI level warnings on using Softbody;
- On leaving editmode, it deleted the Baked result automatically. Since
  that's an invisible and destructive ction, I've inserted an "OK?" menu
  here for it.
- Particle Deflectors themselves cannot be a Softbody (or viceversa).
  Added a LABEL button to denote this when a user tries to set that.
2005-05-07 12:31:43 +00:00
Ton Roosendaal
54094fed0b Commit of 2 weeks ago to correctly find normals for extrusion had a typo...
started loop with "->last" instead of "->first".
This caused old faces that should be deleted on extrude to remain there.

Thanks Jean-Luc for finding it!
2005-05-07 11:13:37 +00:00
Nathan Letwory
bcd5d1c9ed * integrate bFTGL with Scons
* add some ENV = os.environ's here and there (help those who have msvc toolkit installed)

Note for OSX users: check from your config.opts the correct info for the precompiled ftgl lib is used.
2005-05-06 13:37:18 +00:00
Ton Roosendaal
c68c3c253f Fix for crash in Mesh EditMode "Join triangles" (JKEY). Found & code
provided by Campbell Barton, thanks mate! :)

Note; this tool gives quickly bad results... also errors printed in the
give_quad_verts call. Who likes to attack this!
2005-05-06 12:12:26 +00:00
Ton Roosendaal
799d7e3f98 Bug fix #2512
When joining Meshes, with the active on having TFaces, and other Meshes
not, the new TFaces were created but not initialized.
2005-05-05 20:56:05 +00:00
Ton Roosendaal
2887e68705 Bug fix #2515
Bumped up ipo limit for material "normal" mapping to 25.0 max.
2005-05-05 20:39:50 +00:00
Ton Roosendaal
8717577950 Bug fix #2414
Quat XYZW was mixed up in NKey panel for Armature... now OK.
2005-05-05 20:36:14 +00:00
Ton Roosendaal
ec9ed88d28 Replaced the round() call with floor(0.5 + ).
Apparently MSVC doesnt have it...
2005-05-05 20:07:22 +00:00
Ton Roosendaal
1ef0359bc4 Finetuning Timeline;
- Added Ckey for 'center view around current frame'.
- Completed View pulldown menu with remainder of options.
- prevented negative scaled views when start > end frame
2005-05-05 19:37:22 +00:00
Ton Roosendaal
b33536cdaa Two little issues for Timeline window;
- Using Arrowkeys to change frames didn't give proper redraw
- Option "Record" now tied to the User-preset "Auto key insert". It is
  no user preset anymore even, I thought to leave a button in the User-
  presets for the time being though...
2005-05-05 18:31:39 +00:00
Ton Roosendaal
2b0f00d4bd Button image changed for new space type. Had to move some icons away... 2005-05-05 17:20:13 +00:00
Ton Roosendaal
f0a4ce98f9 Added the new Timeline Window, copied from Tuhopuu, coded by Matt Ebb.
Main change is that it's an own Space type now, not part of the Audio
window... the audio window should restrict to own options. This way
functionality is nicely separated.

Since it's the first time I added a new space (since long!) I've made an
extensive tutorial as well. You can find that here:
http://www.blender3d.org/cms/Adding_new_Space_Window.557.0.html

Notes for using timewindow;

- Add time markers with MKey
- CTRL+M gives option to name Marker
- Markers cannot be moved yet...
- Pageup-Pagedown keys moves current frame to next-prev Marker
- Xkey removes Markers

- If an object has Ipos or an Action, it draws key lines
- CTRL+Pageup-Pagedown moves current frame to next-prev Key

- Press S or E to set start/end frame for playback

Notes about the implementation in Tuhopuu:

- Add new Marker now selects new, deselects others
- Selecting Marker didn't work like elsewhere in Blender, on click it
  should deselect all, except the indicated Marker. Not when holding SHIFT
  of course
- Not exported functions are static now
- Removed unused defines (MARKER_NONE NEXT_AVAIL)
- Drawing order was confusing, doing too many matrix calls
- Removed not needed scrollbar, added new function to draw time values.
  (Has advantage the MMB scroll works not confusing on a scrollbar)
- Added proper support for 'frame mapping'
- The string button (name Marker) had a bug (checked str[64] while str
  was only 64 long)
- String button itself didn't allow "OK on enter"
- Made frame buttons in header larger, the arrows overlapped
- Removed support for negative frame values, that won't work so simple!
2005-05-05 17:19:21 +00:00
Joilnen Leite
22f65bce76 erased headers dirent.h and unistd.h
.
2005-05-05 05:55:29 +00:00
Stephen Swaney
2f0cf8cf73 print a msg about which Python version we are using
before the evil "'import site' failed" msg appears.
2005-05-05 04:46:06 +00:00
Joilnen Leite
3469a99f75 added Font.c
.
2005-05-04 23:18:10 +00:00
Joilnen Leite
fac824df40 export function to Text3d use 2005-05-04 22:52:14 +00:00
Joilnen Leite
273ec4fb26 added load font support to Text3d submodule
.
2005-05-04 21:31:51 +00:00
Joilnen Leite
028aae8417 define BPy_Font
.
2005-05-04 21:28:16 +00:00
Joilnen Leite
cc008dbc30 it wrapping font stuff like font file info
.
2005-05-04 21:26:29 +00:00
Ton Roosendaal
6db7d23b5f On click-release for Manipulator handles, without moving mouse, it will
stick to transform() until another mouse press (or ESC etc)
2005-05-04 15:13:25 +00:00