Commit Graph

327 Commits

Author SHA1 Message Date
Campbell Barton
96247ce19c * Made BLI_join_dirfile() check before adding a slash between dir and file so as not to get /foo///bar.blend
* Pointcache now uses the process id to construct the path for unsaved files. (so 2 or more blender's open wont try to read/write the same pointcache)
* Temp pointcache is cleared when existing blender, added BIF_clear_tempfiles() for this. Should also be usedto clear EXR's in the temp dir (TODO), BIF_clear_tempfiles also needs to be added in more places. (On file load for instace)
2008-02-29 15:50:28 +00:00
Brecht Van Lommel
cbf278246f Fix for bug: cross platform strand render differences with kink/branch.
This time is was due to different accuracy of floating point computation,
now it uses does a comparison a bit different to avoid this.

Also changed the vectoquat function to be threadsafe.
2008-02-27 14:17:32 +00:00
Campbell Barton
086e8b9b8f Bugfix [#8328] Python scripts from user defined location doesn't load
http://projects.blender.org/tracker/index.php?func=detail&aid=8328&group_id=9&atid=125

last commit had mistakes but tested this to fix the bug.
- Cam
2008-02-27 10:02:40 +00:00
Campbell Barton
b226eb925b should fix bug on win32 with user python menu's not loading because stat() didnt like the trailing slash and returned the dir as missing. 2008-02-27 09:48:43 +00:00
Geoffrey Bantle
e03ab146ae -> Bevel tools and Bmesh kernel
The following is a commit of Levi Schooley's bevel code and 
the bmesh library it depends on. The current editmode bevel has 
been replaced with a new per edge bevel function. Vertex beveling is 
also availible.

To set weights for the modifier to use, use the ctrl-shift-e shortcut on either edges 
or vertices.

Recursive beveling is turned of for the time being.
2008-02-23 22:11:16 +00:00
Campbell Barton
7c7a931fed made auto threads default (noob's get faster renders in their dual core CPU's)
changed env variable check order $TMP, $TMPDIR - aparently $TMP is more common.
2008-02-21 08:43:13 +00:00
Campbell Barton
2e299df561 Only use $TEMP for win32, for other os's use $TMP or $TMPDIR 2008-02-20 20:07:37 +00:00
Jean-Luc Peurière
1892df0e68 making auto detection of threads working on Os X
sysconf exist but dont provide the needed flag
using sysctl instead
2008-02-20 16:07:42 +00:00
Matt Ebb
53590faba1 * Added include for auto-threads to compile on Windows 2008-02-20 01:12:21 +00:00
Campbell Barton
0c4d1036d6 added win32 check for number of processors, but cant test.
could somebody running win32 see if headers need to be added to threads.c?
2008-02-19 22:59:52 +00:00
Campbell Barton
82d769c79f automatic threads, next to the Threads button, so you can set threads to use whatever the system has, useful in the studio with 2,4,8 core systems when sharing files. 2008-02-19 22:23:21 +00:00
Campbell Barton
0a703124e2 moved LARGEFILE defines to BLI_storage.h 2008-02-18 17:20:04 +00:00
Jens Ole Wund
5163811290 double strike
-help MSVC compilers with finite /* hope that won't break cygwin builds */
-a unfinished soft body feature sneaked in (freezer)  .. disabled for now
2008-02-17 20:13:58 +00:00
Campbell Barton
b16eefadf8 Patch from Giuseppe Ghibò, modified not to use scons defines.
Files above 4gig did not display on linux in the file selector.
Need to make sure this is ok in other os's too.
2008-02-17 18:09:53 +00:00
Campbell Barton
bc9848f7e6 Added a global string to be used for the tempdir. since the user preference is not loaded in background mode and the user preference is not validated and has no fallback.
'btempdir' is set with BLI_where_is_temp() - This tries to use U.tempdir but falls back to $TEMP or /tmp/
2008-02-13 13:55:22 +00:00
Ken Hughes
ab662ae85c More fixes for gcc warnings. 2008-02-03 18:50:03 +00:00
Campbell Barton
bda73e2f35 solaris was crashing on file open because of statfs, aparently linux-standards-base and solaris have depricated statfs so probably all unix os's should use statvfs. for now only solaris does. 2008-01-26 20:36:14 +00:00
Chris Want
659316e4f4 Fixes for CMake. 2008-01-22 05:34:53 +00:00
Campbell Barton
643e29c736 added function BLI_filepathsize - so you dont have to open the file to get its size.
made render Touch function remove the touched file if the animation is canceled.
2008-01-21 22:10:20 +00:00
Joshua Leung
aa03132bc3 [Coder API's]: Added a "generic unique name-finding function".
Basically, this is based on the behaviour of the unique_constraint_name (or equivilant) functions, which have traditionally been duplicated everytime a new datatype needed this.

Currently, this is in use for the following things:
* Constraints
* Action/Bone Groups
* Local Action Markers / PoseLib poses

Usage Notes:
* The file in which this is to be used should include the standard header file <stddef.h>. This defines the offsetof() macro, which should be used to find the relative location of the "name" member of the structs
* This function is only designed for names of up to 128 chars in length (Most names are at most 32. TimeMarkers are 64). If a longer string needs to be handled, the function will need to be modified accordingly. 
* defname is the default name that should be used in case one hasn't been specified already
2008-01-20 23:53:13 +00:00
Campbell Barton
88561ed669 touch function that should also work on non unix os's, though I cant test here. 2008-01-20 21:27:16 +00:00
Campbell Barton
09c2fd6f11 Linux only addition to know for sure the path of blender because sometimes the Play button doesn't work depending on how blender is started.
This uses binreloc - http://autopackage.org/docs/binreloc/
it should also solve the problem of python scripts not being found.
2008-01-18 15:10:17 +00:00
Campbell Barton
67de673496 Bugfix, un-initialized variables for tubemap and spheremap mapping, affected textures 2008-01-13 18:13:39 +00:00
Brecht Van Lommel
56faf73e3c - Bugfix for flickering shadow with strand simplification.
- On non-edited hair, don't generate child particles for
  each step, only at the end.
- Small optimization in the kd-tree.
2008-01-03 22:43:51 +00:00
Ton Roosendaal
65f1999435 Bugfix #8032
The warning i've coded 1.5 year ago, to warn when a .blend was written
by newer executable, failed on the .B.blend load case... UI not property
initialized then.

This at least fixes the crash, a menu won't pop up correctly though...
luckily the warning works for regular load or ctrl-x
2008-01-01 14:13:37 +00:00
Campbell Barton
5e4d32a9ff Improvements to File->External Data->Make Paths Relative & Make Paths Absolute,
made when testing peach blend files wont have path issues when sent to the renderfarm.
* log failed path conversions
* clean the path so //foo/../foo/ is removed (not sure why but some peach files had this problem)
Also added a function to util.c 
BLI_cleanup_file, same as BLI_cleanup_dir but dosnt add a slash at the end.
2007-12-31 12:03:26 +00:00
Campbell Barton
052a0551e4 Added 'File->External Data->Make all files Absolute'
OpenGL stamp also wasnt checking correctly (own error)
2007-12-24 17:07:52 +00:00
Campbell Barton
846e4027ce hopefully fix compiling on win32 2007-12-20 12:37:15 +00:00
Campbell Barton
a637aca44a make relative paths wasnt working, also disallowed it when the blend file isnt saved 2007-12-20 10:52:56 +00:00
Campbell Barton
5925fe36e0 Render-farm and file utils for dealing with external data.
Useful to use before sending blend files to the renderfarm.

* Make all Paths Relative - makes any absolute paths relative.
* Report Missing Files - creates a textblock listing all missing files.
* Find Missing Files - searches a directory recursively for filenames that dont exist at their current path.

Added a path looper type and functions that currently loop on image, sound, font and external library paths.
2007-12-20 10:27:13 +00:00
Campbell Barton
f15956356c misc warning fixes and one fix for a big in curve allocation 2007-12-13 15:06:02 +00:00
Joshua Leung
dbb13c07cc Fixing compiler warnings:
* BLI_arithb.h - isnan definition is only needed for MSVC, but gcc/mingw complains about it

* file-selectors - moved BLI_storage_types.h or sys/stat.h includes before BLI_winstuff.h includes,  to silence warnings about S_ISDIR.
2007-12-10 23:25:21 +00:00
Martin Poirier
be354c3d09 Merge from Harmonic Skeleton branch
This code adds a basic and simple skeleton generator.

Examples and links are in the wiki, docs will come eventually: http://wiki.blender.org/index.php/User:Theeth/skeletor

In a nutshell, select a vertex at the top of the head and press "Generate Skeleton". UI Panel is in the Editing buttons in Edit Mode, tooltips and semi-useful.
2007-12-10 21:14:19 +00:00
Martin Poirier
23a525c52d == Code sweeping ==
BLI_sortlist simplifications
2007-12-10 21:04:48 +00:00
Brecht Van Lommel
7f1e03296c Bugfix: rotation difference ipo drivers could give sudden jump. This
was actually due to a numerical issue in the matrix to quaternion
conversion code (which was from siggraph '85), now uses an improved
version. I hope nothing depends on the previous behavior.. though
it should only affect corner cases.
2007-12-06 12:46:10 +00:00
Brecht Van Lommel
32a8b4f8e6 Particles
=========

- Fix crash in particle transform with the particle system not editable.
- Particle child distribution and caching is now multithreaded.
- Child particles now have a separate Render Amount next to the existing
  Amount. The render amount particles are now only distributed and cached
  at render time, which should make editing with child particles faster.

- Two new options for diffuse strand shading:
	- Surface Diffuse: computes the strand normal taking the normal at
	  the surface into account.
	- Blending Distance: the distance in Blender units over which to
	  blend in the normal at the surface.
- Special strand rendering for more memory efficient and faster hair and
  grass. This is a work in progress, and has a number of known issues,
  don't report bugs to me for this feature yet.

More info:
http://www.blender.org/development/current-projects/changes-since-244/particles/
2007-12-04 13:57:28 +00:00
Campbell Barton
a4c17c7c88 anim.c, buttons_object.c, readfile.c, BKE_blender.h - dupliFace scale option, needed for leaves.
modifier.c, BKE_modifier.h - flag for modifiers to say they use pointcache, also new func modifiers_usesPointCache
renamed //pointcache to //blendcache_blendfilename so blendfiles in the same dir dont conflict, and other to show this dir isnt limited to pointcache only (nodes way want to use this)
wizard_curve2tree.py - better defaults for pretty tree's
2007-11-30 10:38:59 +00:00
Brecht Van Lommel
7da56f4a9b Particles
=========

Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:

- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.

.. and lots of other things, some more info is here:

http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc

The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.

Point Cache
===========

The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.

See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint

Documentation
=============

These new features still need good docs for the release logs, help
for this is appreciated.
2007-11-26 22:09:57 +00:00
Peter Schlaile
4018dfd28f == Sequencer ==
Added malloc mutex handling. (Sorry, had to patch threads.c a bit,
since otherwise scene tracks will completely screw things up...)
2007-11-25 16:35:33 +00:00
Ton Roosendaal
a8aaec6f21 Bugfix #7573
NLA Window, Strip blending mode "Add" didn't work at all.
It was using very bad quaternion addition. Replaced with proper code.

For devs; new is the function QuatMulFac(quat, factor) which allows to
multiply a rotation with a value (make it rotate more or less)
2007-11-22 20:25:59 +00:00
Andrea Weikert
7ade814141 Bugfix #7510: Doesn't save .blend file name with [
* Added Windows specific implementation for fnmatch taken from GNU/MINGW/MSYS C library
* behaviour should now be the same as under Linux and other OSs
* changed filename for fnmatch.h to ensure we include the correct one if we link with the included implementation
* tested compile with MSVC 7.1 and gcc(MinGW-5.1.3) on Windows.
2007-11-19 20:13:14 +00:00
Andrea Weikert
38d12b3c8d Bugfix #6797: Relative paths load problem on new file (fix included)
- brought back the check for a valid relative base when selecting.
- kept the check for when file is saved too and warning message is printed to console instead of popping up.
Also fixed BLI_split_filedir overwriting parameter passed as const char*
2007-11-10 11:45:25 +00:00
Brecht Van Lommel
7294d19d66 Bugfix:
Issue with dual quaternion scaling + vertex group influence.
2007-11-08 18:02:15 +00:00
Martin Poirier
e7c4bad8e9 Update from school work. 2007-11-07 21:45:35 +00:00
Martin Poirier
ec13425eab Initial commit for Harmonic Skeleton generation.
This is very much a work in progress commit to allow me to work outside of home.

While it does somewhat work, I wouldn't recommend anyone to use it.
2007-11-07 00:28:45 +00:00
Martin Poirier
0de103c1cd Filling in branch from trunk 2007-11-06 22:29:20 +00:00
Campbell Barton
2ad21e2286 ==Python API==
Blender.Geometry.ClosestPointOnLine(pt, vec1, vec2) -> (pt, lambda)
This wraps lambda_cp_line_ex

Needed for experemental tree generator
2007-11-06 18:53:46 +00:00
Brecht Van Lommel
1b9d661eca Mesh Deform Modifier
====================

The MeshDeform modifier can deform a mesh with another 'cage' mesh.
It is similar to a lattice modifier, but instead of being restricted
to the regular grid layout of a lattice, the cage mesh can be modeled
to fit the mesh better.

http://www.blender.org/development/current-projects/changes-since-244/modifiers/

Implementation Notes:
- OpenNL has been refactored a bit to allow least squares matrices to
  be built without passing the matrix row by row, but instead with
  random access. MDef doesn't need this actually, but it's using this
  version of OpenNL so I'm just committing it now.
- Mean value weights for polygons have been added to arithb.c, a type
  of barycentric coordinates for polygons with >= 3 vertices. This
  might be useful for other parts of blender too.
2007-11-04 22:00:24 +00:00
Martin Poirier
c3cc13e71b == utils ==
New listbase functions:
	void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink);
		- corrolary to insertlinkbefore
		
	BLI_sortlist(struct ListBase *listbase, int (*cmp)(void *, void *));
		- simple in place sorting method. NOT optimized, so use for small lists only. Uses a variant of insertion sort (I was lazy, people should feel free to rewrite).
2007-11-01 21:44:41 +00:00
Campbell Barton
bacfc9eb91 fix for crash's in file selector.
- on unix BLI_diskfree was only using 100 chars for the dir name, and 
not checking if the name given was longer, increased to FILE_MAXDIR 
(160) and added a check, return -1 if its too long.

The file selector only allowed 80 chars to be typed into the directory 
entry.

Made the file selector check that the path is less then FILE_MIXDIR, if 
you try and enter a path thats longer it will tell you that the path is 
too long, before it was writing into other memory and crashing.
2007-10-21 09:32:18 +00:00