(fixed shadowed variables warnings, removed cfgparser.hpp,
added cfgparser.h, removed debugging output)
- added support for env. var BLENDER_ELBEEMDEBUG to enable
debugging output again
- fixed missing triangle display (marching cubes produced v3=0 triangles)
- fixed geometry init bug (nearest intersection check
for intersecting objects was messed up)
- changed position of derived mesh creation in DerivedMesh.c
(for some reason the useDeform code is necessary, without it or
with useDeform=0 nothing is displayed)
- 3dviews now update every 2 seconds to show simulation progress
- note: mesh_strip_loose_faces(me); in ./source/blender/blenkernel/intern/mesh.c:937
not necessary anymore?
IK: needed to change abs() to TNT::abs() (thanks brecht!)
Freetype: FT_ENCODING_UNICODE typecast to FT_CharMap (thanks intrr!)
header_image: missing include for liballoc stuff
Ketsji: needed to declare m_hitObject as public in KX_MouseFocusSensor.h.
This is probably the wrong thing to do, but KX_MouseFocusSensor.cpp
compilation fails on line 279 otherwise.
module -- the previous method could be off pretty far.
- Added drawing of transparent surface for it, instead of just the border.
- Added "stretch IK", allowing bones not only to rotate, but also scale.
The "Stretch" value below the DoF buttons is used to enabled this.
- Some code tweaking: slightly simplified computation of transform for IK,
renamed chain to tree, removed unused pchan->ik_mat, ..
Internal IK module work:
- Do damping per DoF also based on stiffness, hopefully makes it converge
faster with very stiff joints.
- Instead of having two joints types (translational and rotational), now
all 6 DoF's can be enabled for one joint.
- Added limits for translational joints.
- Z-axis rotation limits were not working, was using wrong flag.
- Don't allow min limit to go over max, or vice versa.
- Fix for jacobian getting overwritten with IK clamping.
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.
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.
- 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
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
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.
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
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! :)
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
- 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
-
- 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