Commit Graph

259 Commits

Author SHA1 Message Date
Nathan Letwory
bc2ad537ed * remove very confusing comments. We will *not* 'fase into' MTC_*. 2007-05-22 10:58:30 +00:00
Kent Mein
d6d1334562 Another small cleanup of dead code thanks to coverity.
Kent
2007-05-09 14:57:26 +00:00
Ton Roosendaal
243d1a28c0 Casting fixes for 64 bits. Incomplete commit, discussion on proper casting
has to be finished.
2007-04-29 10:49:02 +00:00
Ton Roosendaal
42057481fb Part 2 of 64 bits fixing; the files.
The good news; previously written 64 bits are still valid! All fixes
appeared to be possible in code, no versioning patches needed. :)
That also removes the I AM STUPID 64 bits ban from the code.

The bad news:
I couldn't get a 64 bits Blender running here (ghost-mac issues... it
has to be recoded using Quartz to be able to run 64 bits). So what I
have tested was:

32 bits binary:
  - Appending/linking data from 64 bits file.
  - Reading 64 bits chained library-linked files (file -> file -> etc)
  - Linking 32 bits files with 64 bits files

This has to be tested for 64 bits too. Will drop in IRC now to help.

Note: part 3 is fixing memory issues for addressing > 4 GB data. A first
start has been made for a blenlib API function.
2007-04-28 16:15:00 +00:00
Campbell Barton
94ad8c810c Changed TESTBASE and TESTBASE_LIB to check the hidden flag
Checked every instance of testbase to see this dosnt break anything, also changed TESTBASE and TESTBASELIB, both were used incorrectly in places.

added error_libdata() for library error messages that are everywhere.
added object_data_is_libdata to test if the object and its data's are from a library.
fixed 2 crashs in adding Curve points to a library object (remember to check, verify_ipocurve returns NULL!)
made duplicating and making dupli's real for lib objects possible, disabled joining into lib armatures and meshes.
2007-04-22 22:08:19 +00:00
Campbell Barton
afdd54fa37 moved source and text to american spelling
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
2007-04-04 13:18:41 +00:00
Campbell Barton
f8b13d57cb added stdlib.h header, comments and all lines < 80 chars. 2007-03-22 03:28:34 +00:00
Campbell Barton
903a8ed1fd missing x/y setting for the first box 2007-03-21 17:11:25 +00:00
Campbell Barton
ca94d97049 moved the boxpacker from PyAPI's Geometry to BLI_boxpack2d
made LSCM UV Unwrapper use boxpack2d
2007-03-21 17:06:02 +00:00
Andrea Weikert
7f2d1f651c ==== blenlib ====
- added replacement BLI_snprintf for snprintf to avoid MSVC specific #defines for snprintf.
- BLI_snprintf also ensures trailing zero, so helps preventing buffer overflows
2007-03-19 19:34:04 +00:00
Ton Roosendaal
6f3fb5525e Patch #3126
Option to draw object name in 3d window corner, now also displays for
meshes the (pinned) shape key name.

Threads: warning fix, added (void) for function declaration.
2007-03-19 15:48:24 +00:00
Ken Hughes
83e72cc813 Fix various gcc warning, unused variables and incorrect type passed to
*printf functions.
2007-03-17 14:46:04 +00:00
Ken Hughes
4e5ad50079 Tools
-----
Bugfix #6174: files larger than (2^31)-1 bytes were reported with negative
sizes in file manager windows.  Added a cast to unsigned int before doing
conversions for the UI.
2007-03-07 06:19:15 +00:00
Andrea Weikert
c7ad7cd1b0 === bugfix ===
[ #6077 ] Scripts in sub-sub-folders of Blender's scripts folder won't run.
[ #5572 ] Scripts in sub-folders of Blender's scripts folder won't run
- I've added a function in blenlib to join two strings with a path separator in between.
- Willian, Campbell, please check if commit in BPY_menus is ok and test - thanks!
2007-02-28 21:37:14 +00:00
Andrea Weikert
e53c5058b4 === bugfix ===
filename and path issues:
[ #6107 ] Animation crashes when ouput folder does not exist
- using the Windows drive as default and only then degrading to the
  Blender installation drive and then the first valid drive.
- in case of degrading added error message print to console to make it
  transparent
[ #6106 ] fluids - no default path
- setting the default path to U.tempdir where Blender stores temporary files
2007-02-28 20:11:10 +00:00
Stephen Swaney
5cb958f305 broken build!
FILE_MAX undefied in util.c
implicit method def Armature_CreatePyObject() in Armature.
2007-02-22 10:20:27 +00:00
Andrea Weikert
f12d312275 === bugfix ===
- path without volume name still caused error when used as name for relative base
- could happen with name in .Blog file saved by older blender version
- fix for [ #6065 ] Blender refuses to save any renders
2007-02-21 20:00:03 +00:00
Brecht Van Lommel
298ee9d3dc Fix for bug #5891:
Knife cut didn't always subdivide UVs properly with degenerate triangles.
2007-02-09 21:46:08 +00:00
Nicholas Bishop
5d4b81b688 == Retopo ==
Fixed bug #5829, Exiting editmode with TAB key toggles RETOPO

* Moved the retopo_mode setting to ToolSettings.
* Renamed the other retopo_mode to the (more accurate) retopo_paint_tool
2007-01-27 18:11:07 +00:00
Joshua Leung
fcd3ea7875 == Snap Bones To Location in PoseMode ==
Now the Snap To Location (Shift S) tools for bones in pose-mode
work correctly. Previously, only one of these tools was implemented,
but it only worked in some cases.


This fixes item #4874 in Todo Tracker. Was patch #5012.
2006-12-22 09:05:37 +00:00
Ton Roosendaal
af60771eca Fix for threads usage. This solves the hanging 'render baking', cauused
by yesterdays commit.

Now a designater LOCK_IMAGE is used for all image write/read.
2006-12-21 15:44:46 +00:00
Ton Roosendaal
253432bfc7 The Big Image refactor!
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html

Or in short:

- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images

Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
2006-12-20 17:57:56 +00:00
Joshua Leung
4935f0b231 Constraints on bones working in 'local' mode, now obey the Enforce
value for constraints. Only Copy Rotation used to do so.

Note: only enforce values of 0.0 or 1.0 are useful/totally predictable
2006-12-14 22:58:22 +00:00
Kent Mein
593d9ae738 added missing -DWITH_FREETYPE2 stuff, provided by Eugene Reilly.
Kent
2006-12-06 00:04:53 +00:00
Ben Batt
4f8079d49c Modifier Stack: Limit calculation to required data.
This commit upgrades the modifier stack to only calculate the data which is
needed, either by modifiers further down the stack or by other functions at
the end of the stack (e.g. drawing functions).

This speeds up modifier stack recalculation, especially where vertex
groups and UV coordinates are concerned. For example, a mesh with an Armature
modifier followed by a Subsurf modifier would previously have required the
Subsurf modifier to interpolate all the vertex groups in the mesh, slowing
down modifier calculations considerably. With this update, vertex group data
is not propagated beyond the Armature modifier, so calculations are faster.

Note that this depends on the order of modifiers in the stack. If the Armature
and Subsurf modifiers were swapped in the above example, the Subsurf modifier
would have to interpolate vertex groups, as they are needed by the Armature
modifier.
2006-12-05 17:42:03 +00:00
Ton Roosendaal
20ac94e8f0 Two hours of fixing details based on Klocwork source review. Useful report,
although it has a lot of noise. Not to mention our bad string code gives
a load of warnings.

I've reviewed specifically:
- file reading/write
- dna and library code
- node system
- entire render module

Done a couple of files in src/ too, seemed to be nice errors.
2006-12-01 19:52:04 +00:00
Ton Roosendaal
6543d3e220 Render Monster support: (part 1)
Removed all limitations from render code for maximum threads. The only
define for this now is in BLI_threads.h, and currently set to 8.
Note that each thread renders an entire tile, and also allocates the
buffers for the tiles, so; more threads might work better with smaller
tiles.

IMPORTANT: node system won't work yet with more than 2 threads! So, don't
try material nodes or compositing with over 2 threads. That I'll commit
later today.

What does work (should work :) is AO and soft shadow now.
2006-11-29 17:01:09 +00:00
Ton Roosendaal
c1258980a4 Render Baking upgrade:
- Now baking itself is threaded too (like for render, max 2 cpus. Moving
  this to 4 cpus is on todo. Goes twice as fast!

- fix: ESC from bake was broken...

- other fix: toolbox menus didn't treat sublevel string lengths OK,
  truncating items like for Group library names.
2006-11-28 10:16:24 +00:00
Ben Batt
bb7ad80269 Upgrades to the UVProject modifier:
- New perspective projection capability. If a camera is used as the
   projection object, the modifier detects whether to do perspective or
   orthographic projection based on the camera type. If any other object
   type is used as the projection object, orthographic projection is used.
 - Orthographic projection actually works properly now.
 - The projected UVs are scaled and offset so that the image is centred in
   the projecting camera's view.
 - AspX and AspY inputs have been added to control the aspect ratio of the
   projected UVs.

Also:
 - I have added the Mat4MulVec3Project() function to BLI_arithb.h; this
   function converts a 3-dimensional vector to homogeneous coordinates
   (4-dimensional, with the 4th dimension set to 1), multiplies it with the
   given matrix, then projects it back to 3 dimensions by dividing through
   with the 4th dimension. This is useful when using projection matrices.
2006-11-22 15:09:41 +00:00
Ton Roosendaal
20e6dc7f57 Bugfix, own collection:
Random seeding is still not perfect in render, especially lack of good
thread support still.

- VectorBlur node was calling seed for each exec, causing other nodes to
  get fixed random too.
- added seed in non-OSA main loop for render
- use BLI_srandom, is better than BLI_srand
2006-11-21 15:52:45 +00:00
Ton Roosendaal
efde6ecbc4 Fix for commit from Brecht:
2006/11/19 00:07:32 CET
Fix for bug #5250: inaccurate conversion between edit and pose mode bones.

Two very bad bugs:
- replacing atan() with atan2() should also remove the M_PI correction!
  This is the equivalent:
    angle=atan(x/y); if(y<0) angle+=M_PI;
    angle= atan2(x, y);

- the new NormalizedVecAngle2() call was negating an input vector, causing
  calling code to screw up. All arithb.c calls should not alter input.
2006-11-21 10:52:11 +00:00
Brecht Van Lommel
2bb9d5471e Fix for bug #5250: inaccurate conversion between edit and pose mode bones.
Using acos(dot(u, v)) to find the angle between two vectors is quite
inaccurate, and there's a better way to do it, as explained here:
http://www.plunk.org/~hatch/rightway.php

Also changed the use of atan for computing roll to atan2 in some places,
the latter avoids accuracy and division by zero issues.
2006-11-18 23:07:32 +00:00
Jacques Beuarain
24f4440d05 CMake lists initial submission. Documentationand further verification for different platforms will follow soon. This was just tested against current CVS on MSVC 2005 with Verse, QuickTime, OpenEXR, Player all on. 2006-11-17 02:27:12 +00:00
Ton Roosendaal
5d8efc9756 Patch #2307, by Bob Holcomb
Loadsa new compo nodes, most added in new menu "Mattes".

- Seperate into YCC
- Combine YCC
- Seperate into YUV
- Combine YUV

- (Chroma) Difference Matte
- Chroma Key
- Luminance Key

- Color Spill correction

Main problem is missing docs still... Bob is working on it, he'll also
make tooltips for all buttons.
Some UI things might change too, like more clear names.
2006-11-15 14:41:04 +00:00
Joshua Leung
001fb2c722 Just a few fixes to the indention of some functions (purely cosmetic code changes) 2006-11-13 04:37:42 +00:00
Brecht Van Lommel
e4a1eb4e09 Added custom vertex data support to editmode. Only used for vertex groups
now, others can be added later (sticky, shape keys). Beside one small fix
for knife exact vertex group interpolation, is intended to work the same
as before.

Also fixes bug #5200, related to editmode undo and vertex groups. And
corrects the editmode to faceselect mode selection conversion, that was
broken in a previous commit.
2006-11-11 23:23:15 +00:00
Brecht Van Lommel
97f892b86b Added custom face data support in edit mode. The code used to do this is
the CustomData module from the modifier stack rewrite, but with additions
to make it also usable in edit mode. Some of the datatypes from that
module were move to a DNA header file, they are not saved to file now, but
will be soon.

The only code that wasn't abstracted is the uv collapse / merging code. It
is rather complicated, will look into that in the future.

There should be no user level changes.
2006-11-11 16:38:37 +00:00
Brecht Van Lommel
011f531359 Modified the way booleans preserve face data, and cleaned up some
duplicate code. Also removed redundant files from the bsp module,
that where replaced by boolop last year, no sense in updating them
for these changes. On the user level things should still work the
same, this is only preparation work.

Not counting the removed files, -1501 lines of code, not too bad :)
2006-11-08 20:14:04 +00:00
Ton Roosendaal
7de24b7ea8 MSVC compiler is non-posix for some string operations...
Created a BLI_strcasestr and used existing BLI_strcasecmp in code now.
2006-11-07 16:27:31 +00:00
Nicholas Bishop
8e97a2955b Merged Google Summer of Code sculptmode/multires/retopo tools.
From the tracker:
https://projects.blender.org/tracker/index.php?func=detail&aid=5018&group_id=9&atid=127
2006-11-06 01:08:26 +00:00
Martin Poirier
a3cff50ef6 LocEulSizeToMat4 arith function.
Creates a 4x4 matrix from location, size and euler angles components.

Coded by Joshua Leung (aligorith) for one of his patches. Integrating right now because it's useful in and of itself.
2006-10-25 23:15:09 +00:00
Ton Roosendaal
9d67a597bc Irregular shadow fix: the MemArena module didn't give callocs, only malloc.
Made nice crashes that way... but not in !@%@$ OSX because it seems to
clear memory unwanted. Solve dit with adding API call in MemArena to default
to callocs.

Also removed malloc() from MemArena, replaced with MEM_mallocN().
2006-10-24 15:17:14 +00:00
Tom Musgrove
05ee7d9053 =translate hoek to angle=
renamed the dutch variable hoek to angle globally arithb.c changes done by Matt Plough
2006-10-14 23:27:18 +00:00
Jens Ole Wund
b6b5cdefa9 some tiny changes to the softbody system
- UI for self collision ball size definition
- edge collision mode added (almost a bug fix)
volatile test file -->
http://www.wund.homepage.t-online.de/hidden/sb_col_must_1_2.blend
2006-10-10 21:49:02 +00:00
Andrea Weikert
ecfdda30cd - fix for relative path: BLI_strncpy needs to be passed len+1 !
(introduced by my last patch - ouch)
2006-10-02 16:11:57 +00:00
Tom Musgrove
a88807b6dd ==Mat4ToEul==
a utility function to convert 4x4 matrices to a euler rotation, contributed by Joshua Lueng (aligorith)
2006-10-01 16:49:41 +00:00
Alfredo de Greef
db7c3d3271 A possible problem was noted by Cyril Brulebois regarding copyright issues
with regards to the noise functions in yafray based on Ken Musgrave's
original code.
I had left the 'Copyright' notice in the comments, and according to
Cyril Brulebois this is a problem. In fact, from what I understand this
makes it even impossible to use or modify the code in other software.
But since it is not a verbatim copy of the code but rather based on Musgrave's
work, he suggested I change it to explicitely state that it is in fact
based on the code from the 'Texturing & Modeling' book.
And since the yafray code is in turn based on the blender code, I better
adapt the blender code too.

This reminded me that I also have forgotten to include the copyright notice
in the mersenne twister rng code I used for the Python Noise module.
This does clearly state to include the original notice with any resdistributed
code, in modified form or not. So I added that too.

I hope that solves the problems.
2006-09-25 04:54:45 +00:00
Andrea Weikert
5277232d42 FIX: [ #4944 ] Shift F4 menu folders are freezed
- code for adding 'c:\' on Windows missed fact that BLI_convertstringcode is also used for databrowse.
- now only replacing when path starts with '/', which isn't the case with databrowse
2006-09-16 11:42:37 +00:00
Brecht Van Lommel
e7d6537f1c Added support for threadsafe MEM_mallocN/MEM_freeN in the guardedalloc
module itself, replacing the special MEM_mallocT/MEM_freeT functions.
Mutex locking is only enabled when threads are running.

There was no good reason to have these separate, it just led to ugly
hacks when calling functions with non-threadsafe malloc from threads.
2006-09-06 19:13:23 +00:00
Ben Batt
d4616b56ec Redesigned the EdgeSplit modifier's splitting algorithm to be better
structured and more maintainable. The old algorithm could leave the mesh in an
inconsistent state during recursive calls, making it quite fragile. The new
algorithm keeps the mesh in a consistent state, and should be more robust.

This commit fixes the issues EdgeSplit was having with non-manifold meshes
(bug #4946, also reported by several other people). EdgeSplit now works
correctly with all the test files I have.

This commit also fixes the BLI_ghash_remove function to correctly decrement
gh->nentries (the number of entries in the hashtable) on a successful removal.
2006-09-05 13:15:55 +00:00