Commit Graph

270 Commits

Author SHA1 Message Date
Brecht Van Lommel
ae9dcb3dc2 Update SConscript.
Fix some warnings.
Merge with latest soc code.

What changed in IK lib:

Fully restructured, with components now as follows:
  - IK_Solver: C <=> C++ interface
  - IK_QSegment: base class for bone/segment with 0
    to 3 DOF
  - IK_QTask: base class for a task (currently there's
    a position and a rotation task)
  - IK_QJacobian: the Jacobian matrix, with SVD
    decomposition, damping, etc
  - IK_QJacobianSolver: the iterative solver

The exponential map parametrization is no longer used,
instead we have now:
  - 3DOF and 2DOF XZ segments: directly update matrix
    with Rodrigues' formula
  - Other: Euler angles (no worries about singularities
    here)

Computation of the Jacobian inverse has also changed:
  - The SVD algorithm is now based on LAPACK code,
    instead of NR, to avoid some problems with rounding
    errors.
  - When the problem is underconstrained (as is the case
    most of the time), the SVD is computed for the transpose
    of the Jacobian (faster).
  - A new damping algorithm called the Selectively Damped
    Least Squares is used, result in faster and more
    stable convergence.
  - Stiffness is implemented as if a weighted psuedo-inverse
    was used.

Tree structure support.

Rotation limits:
  - 3DOF and 2DOF XZ segments limits are based on a swing
    (direct axis-angle over XZ) and twist/roll (rotation
    over Y) decomposition. The swing region is an ellipse
    on a sphere.
  - Rotation limits are implemented using an inner clamping
    loop: as long as there is a violation, a violating DOF
    is clamped and removed from the Jacobian, and the solution
    is recomputed.

Convergence checking is based now on the max norm of angle
change, or the maximum number of iterations.
2005-08-27 13:45:19 +00:00
Brecht Van Lommel
fa0bbaf380 Another file missed in IK commit. 2005-08-27 13:27:49 +00:00
Ton Roosendaal
8d36b517f9 Forgot to add new files... 2005-08-27 13:10:41 +00:00
Ton Roosendaal
a7f2ebf06c Second commit for Brecht's IK work.
(Moto needs 'make install' before you can do IK lib btw)
2005-08-27 12:45:29 +00:00
Ton Roosendaal
665a6b2d95 First commit of Brecht's new IK work. This only does the IK module.
Don't start compiling yet!
2005-08-27 12:44:41 +00:00
Ton Roosendaal
4d58808512 MEM_alloc allocated in units of 8 for 32 bits systems, and units of 4 for
64 bits systems... weird bug. :)
It now only does a unit-of-4 check, for all systems. This will work fine,
since the malloc code will return aligned anyway, and the guarded alloc
system only stores ints in the headers. Also, the sizeof() call will
correctly do padding, so there's no risk of allocating too small blocks.
2005-08-21 10:05:50 +00:00
Jean-Luc Peurière
b12f801681 updates to the OS X build system :
- XCode project
- Scons :
    scons stopped working for Os X in the last month (dont know when) :

     * the '.' and '..' keywords in CCPPATH
          are not recognized anymore for sconscripts compiling files at
          a sub level
     * when doing a scons clean, the 3 subdirs in build dir are removed
      and scons then fail to recreate them (exten, intern, source)

this commit solve the first problem as a temp workaround
for the latter simply recreate the dirs manually

I will investigate that further when on vacations,  which i should already
 be.
 ;(

all 3 build systems are now working on Os X
2005-08-04 16:05:28 +00:00
Joseph Gilbert
292c03ab8e _.NET projectfiles update_
* converted files to .NET 2002
* removed unneeded projectfiles from bullet
* PHY_Bullet outputs to correct directories
* Bullet linked to activex and blenderplayer
* misc updates
2005-08-02 13:44:49 +00:00
Martin Poirier
6116b36f4e BMFont didn't define correct character size for "Screen 15" font for TAB and NBSP.
Found out through ideasman's interactive console script.
2005-08-01 06:29:06 +00:00
Erwin Coumans
49499c49be updated vc7 projectfiles so they work with bullet 2005-07-31 14:40:51 +00:00
Erwin Coumans
411123b250 - added debug line drawing in gameengine (handy for debugging physics problems)
- added #ifdef for a visual studio 8 crashing problems
- added scaling and tolerances to triangle meshes
2005-07-27 09:30:53 +00:00
Daniel Dunbar
b6b352e0b7 - got fed up with not being able to put a breakpoint on MEM_
errors, switched MEM_set_error_stream to MEM_set_error_callback
   that calls a function to print result instead of just giving
   a FILE *

Note: requires intern recompile
2005-07-22 16:40:26 +00:00
Daniel Dunbar
ca1873df56 - remove MEM_dupallocN's warning on dup of len==0 sized object 2005-07-20 03:49:36 +00:00
Daniel Dunbar
5bc4eae608 - commit patch from Matthew Plough to request buffer with SWAP_COPY
behavior
2005-07-17 20:40:07 +00:00
Ton Roosendaal
205b6501a0 (Accidentally sent previous commit without message... is same stuff)
gcc4 error fixes for compiling in OSX Tiger

Also; make using python framework default in makefiles
2005-06-08 18:55:49 +00:00
Ton Roosendaal
e5304a967c Disabled assert foolery in Decimator. :)
Code provided by Matthew Plough. Verified to run OK in OSX, Windows.

Solves bug #2598, which crashed blender on using non-manifold meshes with
decimator.
2005-05-24 10:44:14 +00:00
Chris Want
194ded1263 Weird, make on OS X needs an 'export' for CPPFLAGS to make value
persist when building subdirectories. I wonder why other platforms
don't need this?

Fixes the openal unresolved symbol issue with NAN_NO_KETSJI.
2005-04-30 17:28:38 +00:00
Ton Roosendaal
a62b0309bf Uncommitted fix in NAN_NO_KETSJI compile, which seems to work only for
Makefile usage... the linking error might be makefile related then.
2005-04-30 09:17:10 +00:00
Ton Roosendaal
cc44c12b9f Compile with NAN_NO_KETSJI kept giving me errors with OpenAL.
undefined reference to SND_OpenALDevice::SND_OpenALDevice

I hacked c++ code in the dummy function wich worked! Now test it! :)
2005-04-29 17:36:30 +00:00
Kent Mein
7811d7209a Bunch of gcc 4.0 warning fixes.
source/creator/creator.c
	changed ifdef's around fpe_handler to match when its actually used.

intern/SoundSystem/intern/SND_AudioDevice.cpp
	Changed: SND_SoundObject* oldobject = oldobject = pIdObject->GetSoundObject();
	to: SND_SoundObject* oldobject = pIdObject->GetSoundObject();

intern/SoundSystem/openal/SND_OpenALDevice.cpp
	removed unused var.

source/blender/blenkernel/intern/mball.c
	initalized a couple of vars that might have been used uninitalized.

The rest were changing types to match, most of them were something like
was short * should have been unsigned short *.

Kent
2005-04-27 11:52:50 +00:00
Ton Roosendaal
72fd784f92 Sigh! Left in debug print... :) 2005-04-24 19:08:14 +00:00
Ton Roosendaal
d40ba55c8c Adapted Nvidia hack for OSX; it checks for the gl string more narrow, to
also include othe 6800 card types. (reported in tracker)

Still no real clue if this is OK for release... stupid driver bugs!
2005-04-24 18:09:54 +00:00
Kent Mein
04e4b72e06 Moved the start of an ifdef so it includes vars specific to the ifdef
to get rid of warnings about unused vars (on non __APPLE__ system)

Kent
2005-04-04 15:57:50 +00:00
Joseph Gilbert
fc663edf72 *** empty log message *** 2005-04-02 18:42:30 +00:00
Daniel Dunbar
24c9f65056 - got tired of str[n]casecmp not declared warnings
- added BLI_str[n]casecmp, use instead of regular versions
 - rewrote BLI_str[n]casecmp to not be stupid
2005-04-02 15:36:57 +00:00
Stephen Swaney
607083cc9a Removed comma at end of enumerator list to please fussy compiler. 2005-03-29 14:27:20 +00:00
Kent Mein
4d4e776542 Changed:
-       memset(m_keyboard_vector,32,0);
+       memset(m_keyboard_vector,0,32);

Patch submitted by Dave Jones

Kent
2005-03-29 13:06:58 +00:00
Ton Roosendaal
e81041bb98 TEMPORAL HACK!!!
Added the is_a_really_crappy_nvidia_card() call in BMF_DrawString(), this
to solve a bug in NVidia 6800 drivers of MacOSX G5. It is #ifdeffed for
OSX only, and queries for a NVidia 6800 card to activate the patch.

The issue is that these drivers forgot to correctly implement viewport()
offset for drawing bitmap fonts, causing text display in Blender to be
invisible, except for the leftmost/bottom sub window.

This hack will be removed when Apple releases a driver upgrade, which is
unknown when to happen. Has to be decided still if this is worth for a
release, or that we provide the hack as separate download.

Thanks Randall Rickert for all testing, and Daniel for code review! :)
2005-03-26 10:59:49 +00:00
Kent Mein
55af35d795 I'll break this commit into two sections in the moto files
I got rid of a few warnings about blah shadows a previous declaration.

In the gameengine files I fix the following:
	removed some unused vars
	removed dos style line breaks
	added newlines to last line in a couple of files to remove warnings.

Kent
2005-03-25 16:31:05 +00:00
Kent Mein
57f72f4081 Small fix for the following warning:
../include/MT_Quaternion.h:62: warning: declaration of 'angle' shadows a member
of 'this'

Kent
2005-03-25 14:48:29 +00:00
Jean-Luc Peurière
3ca88c4e7f ome more warnings cleaning 2005-03-14 20:10:22 +00:00
Jean-Luc Peurière
c78e44cdc5 big warning hunt commit
lot of casts, added prototypes, missing includes and some true errors
2005-03-09 19:45:59 +00:00
Joseph Gilbert
61767b4f48 MSVC7 update and freetype2 source
- Added correct .libs to be linked to GP_Ghost
- Fixed incorrect library extensions for the linker (*.lib and not unix *.a)
- Projects have been set to be multi-threaded - projects were being linked to different versions of the CRT
- All projects are now linking to python 2.3 (this fixes an error regarding struct sizes in python)
- Removed invalid source paths from inclusion for the compiler
- Fix dependency issues with the GP_Ghost module
- Proper .dll's are now being copied to their respective locations for debug and release version of blender/blenderplayer
- Warnings have been set to level 2
- Import paths have been updated and organized for the compiler
- Duplicate import paths for the compiler have been removed
- Removed silly silly silly silly unix path-separators from window paths
- Post-Build scripts have been updated where neccessary (XCOPY is retatined)
- Fixed the output of various .lib files (PHY_Sumo and Yafray)
- PHY_Sumo now uses a .pch
- Removed #undef _DEBUG from debug builds :p
- FTF_Font is now contains a debug build and is being set to it's correct output path
- Blender/Blenderplayer/3DPlugin all linkto Debug libs where appropriate (instead of static release libs to avoid conflicts with the CRT)
- Python23_d.dll is now loaded into a true debug output of both blenderplayer and blender debug builds
- msvcrtd.dll is now loaded into a true debug output of both blenderplayer and blender debug builds
- Post-builds now clean up their mess
- ActiveX controller now builds
- BlenderPlayer now builds
- Internal libs now using .pch
- Moved the build directory from /blender/obj to ../build/msvc_7/  to follow precedence with scons builds
- Builds are now organized to follow precedence with scons builds with a /libs and a /intern /extern /source obj folders
- Set the proper build path for opennl
- Forcing BLO_loader source files to follow project defaults
- Added an 'extern' project that mimics the /make build of the 'intern' project
- Extern build includes solid and it's associated builds, ftgl, and freetype
- Added .vcproj files to /extern directory
- Added new extern.sln file to /extern directory
- All project now link to the built solid.lib from the extern project instead of lib/windows
- Removed uneeded XCOPYs commands from post-builds
- Added conditional Directory building to post-builds
- Freetype2 source commit (this is need for the building of a correct MFC linked version of the activeX controller as well as a correct release and debug build of the blender project)
- Ftgl is built and linked by the 'extern' project
- Intern/Extern project are now exporting their proper header files
- PHY_Physics is now linking to the correct set of header files (in build path not source)
- Makesdna builds object files into build directory now
- Projects are now ignoring the CORRECT versions of the CRT's  :)
- Renderconverter is now outputting it's obj file to it's own directory instead of /render
- Gen_system is now being built to ../kernel
- BL_src_cre is now being built to /creator
- *.exp and *.ilk are now being cleaned up from linkers
- Libpng.dll and zlib.dll are now being copied to the /bin
- MTDLL build are now available for the correct projects
- ActiveX 3D Plugin now links correctly to solid and freetype2
- Corrected the Preprocessor #define that was labeled incorrectly in FTF_Font and Blender that was causing the FTGL libs to export dll calling conventions.
- Changed the solution configurations to 3D Plugin Release, Debug and Blender Release, Debug for internal and external librarys
- Changed the solution configurations to 3D Plugin Release, Debug and Blender Release, Debug for blender and added 2 new solutions configurations BlenderPlayer Release, Debug
-
2005-02-20 21:33:11 +00:00
Joseph Gilbert
4bd1fe7eab The opennl vcproj was not copying ONL_opennl.h to the lib\windows\opennl\include directory 2005-02-12 16:36:49 +00:00
Joseph Gilbert
5af05c9610 Update to the MSVC7 project files (vcproj) for Blender's internal libraries
- set build_install_all as the default project (if you give me a quarter ill tell you how :)
- set SoundSystem to it's proper dependencies
- updated those silly silly unix path separators
- set project warning levels to something not so noisy
2005-02-12 02:06:52 +00:00
Kester Maddock
b908cfcb07 Use the default windows assert for VisualC
Update Scons
2005-01-17 11:02:44 +00:00
Simon Clitherow
a7c3b86e87 Fixed #define for snprintf on win32 2005-01-16 17:40:59 +00:00
Kester Maddock
cb289b215f Advanced MT_assert macro.
It will attempt to break into the debugger instead of aborting the program.  On Windows you have a nice MessageBox function, so you can choose to break, ignore, or permanently ignore the assert.
2005-01-16 04:28:55 +00:00
Kester Maddock
4f2e57a541 Fix bug #2006:
Floating point imprecision made MT_Quaternion::angle return NaN, since acos(x) is NaN for |x| > 1.

Because of the way NaN's propagate through float math, the view pos would be set to [NaN, NaN, NaN] resulting in a grey screen.
2005-01-09 00:06:45 +00:00
Kester Maddock
c635a0eead Fix loading of non-packed sounds for Linux. 2004-12-30 03:08:34 +00:00
Kent Mein
80b25309b1 This commit makes it so openal finally works on solaris.
Kent
2004-12-08 14:58:40 +00:00
Kester Maddock
5d04d876f7 Fix for bug #1875:
OpenAL (pthreads) was generating a SIGHUP at alcDestroyContext().

Fix by setting SIGHUP to ignore.
2004-12-05 00:50:55 +00:00
Brecht Van Lommel
ab7134839a Bugfix for #1949:
F11 to switch between render window / main window didn't work anymore in some
window managers (e.g. fluxbox), after fixing it to work in kde.
2004-12-04 00:12:53 +00:00
Jean-Luc Peurière
e4562134d2 fix for #1590, possible fix for #1849 (to be confirmed)
OpenAl is subtly different on each platform. Os X need the alutinit/exit stuff
2004-11-29 20:36:03 +00:00
Kester Maddock
46fbe6b01e Fix for bugs: 1788 (forces) and 1799 (python delattr on game objects)
Use Polytope collision for faster mesh intersection tests, so SOLID can actually use that qhull lib now.
2004-11-22 10:19:19 +00:00
Kester Maddock
cf91617d78 Fix stereo window creation 2004-11-22 10:09:08 +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
6ef4d3aec5 Solved annoyance in OSX warp cursor. The former used CGPostMouseEvent call
behaves very unpredictable (ask google) and seems to clear pending events
as well (fly mode, shift event dissappears).

The now used call, CGWarpMouseCursorPosition, creates no event so it has
to be combined with updating mouse cursor location in ghostwinlay.c
2004-11-06 14:52:25 +00:00
Brecht Van Lommel
33906b9117 Bugfix for the render window not popping to the front when it already existed,
under linux / x11 / KDE.

The new behaviour in 2.34, not recreating the render window on re-render,
revealed that raising windows did not work under some window managers.  Now the
"net wm extensions" are used if available, otherwise it will work the same way
as before (e.g. Gtk+ does this as well).

More info:
http://www.freedesktop.org/Standards/wm-spec
2004-09-05 22:51:50 +00:00
Kent Mein
aa317a8281 removed 4 unused vars...
Kent
2004-09-01 13:33:24 +00:00