Commit Graph

51 Commits

Author SHA1 Message Date
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
5bba5035b0 Fix for MSVC (thanks Simon) 2004-11-08 11:30:41 +00:00
Kester Maddock
38b993f787 Speed up the physics engine: hook the SOLID broad phase, so we can either reject the test or request the penetration depth test as necessary. Previously we were doing the penetration depth test, as well as SOLID's intersection test. 2004-11-06 04:58:10 +00:00
Kester Maddock
e398ad2c0e Do a complete physics timestep each step instead of some per frame 2004-10-24 23:48:04 +00:00
Kester Maddock
7b2567924b Switch fixed time system. Logic updates should now happen at 30Hz, physics at 60Hz. (By default, use Python to set.) Some actuators still run at framerate (IPO, Action) for nice smooth animation, and an excuse to buy high end hardware.
Keyboard sensors can now hook escape key.  Ctrl-Break can be used from within blender if you've forgotten an end game actuator.

Fixed a stupid bug preventing some actuators working (like TrackTo).
2004-10-16 11:41:50 +00:00
Chris Want
95b9534d2b We don't use ODE anymore, so I commented out some lines that make it
required to build.
2004-08-26 22:42:44 +00:00
Nathan Letwory
f1fdc6d608 Under certain circumstances a null-pointer could get dereferenced. Disabling 'dynamic' on an object was one of the situations. Now checking before using.
NULL->m_mass never works, of course :)

Ryan Showalter spotted and located the problem.
2004-08-01 09:00:36 +00:00
Kester Maddock
3dd18c5c34 Added an UpdateTransform callback from SceneGraph -> Physics.
Profiling revealed that the SceneGraph updated every physics object, whether it moved or not, even though the physics object was at the right place.  This would cause SOLID to go and update its bounding boxes, overlap tests etc.
This callback handles the special case (parented objects) where the physics scene needs to be informed of changes to the scenegraph.

Added Python attributes (mass, parent, visible, position, orientation, scaling) to the KX_GameObject module.
Make KX_GameObject use the KX_PyMath Python <-> Moto conversion.
2004-05-26 12:06:41 +00:00
Kester Maddock
5454280f6c Same again - change static const for MSVC++ 2004-05-17 09:06:54 +00:00
Kester Maddock
0f447ac5a8 Fix for MSVC .NET, which can't handle static const declarations in classes.
Make it static, and define in SM_Object.cpp
2004-05-17 08:31:35 +00:00
Kester Maddock
bab6e5ce36 Cleanup unused/commented out code, compiler warnings, coding standards etc. 2004-05-16 13:10:10 +00:00
Kester Maddock
d5fde6c48b Added #!/usr/bin/python standard script identifier to the start of SConscript files.
Makes text editors identify SConscripts as Python, and syntax highlight properly.
2004-05-16 13:07:20 +00:00
Kester Maddock
81679446ba Make game users happier.
Don't apply friction to external velocities.  The means motion actuators that set linV will work, without having to be repeatedly triggered.
2004-05-13 13:07:38 +00:00
Kester Maddock
bd50d2f9cd Delete all SOLID shapes at the end of the game engine. They were all being leaked! 2004-05-08 00:25:20 +00:00
Kester Maddock
5813ae55d4 Fix Bug #1243: http://projects.blender.org/tracker/?func=detail&aid=1243&group_id=9&atid=125
Use external velocity (velocity set by the game engine - not the physics engine) for Motion Actuators.
2004-05-06 02:13:07 +00:00
Kester Maddock
63048b6cf4 Synchronise game engine with Tuhopuu2 tree. 2004-04-24 06:40:15 +00:00
Nathan Letwory
892720ffad [SCONS] Optimisation flags for msvc 2004-04-22 04:50:41 +00:00
Kester Maddock
4e2f7baff2 Improved rigid body handling for non spherical bounds type.
Polyheder dynamic objects are now converted properly.
2004-04-16 06:26:33 +00:00
Kester Maddock
a96869198b Rigid body physics for non spherical bounding objects.
If your simulation becomes unstable, crank up the 'Form' control.

Removed Solid from class SumoPhysicsEnvironment (since it wasn't actually used.)
2004-04-14 05:57:24 +00:00
Kester Maddock
ae9233a5b0 1. Check material names passed to the physics engine (for collision sensors.)
Consider:
gameobj->getClientInfo()->m_auxilary_info = (matname ? (void*)(matname+2) : NULL);
It works if matname is "MAblah", but not if matname is "".

2. Added constructor for struct RAS_CameraData.
3. Added initializers to the struct KX_ClientObjectInfo constructor
4. Collision sensors won't detect near sensors.
5. A stack of minor tweaks, adjusting whitespace, using ++it for stl stuff.
2004-04-11 02:50:02 +00:00
Kester Maddock
5398f1ba77 Added resolveCombinedVelocities()
Fixed drot actuator.  The rotation matrix was being mutilated by passing a float[9] instead of float[12].
2004-04-08 11:34:50 +00:00
Kester Maddock
51830fa0e2 Speed up the physics engine by cutting down on the number of fix pass iterations. 2004-04-02 12:35:48 +00:00
Nathan Letwory
00291b5cf4 [GameEngine] Commit all Kester's changes made to the gameengine to restore 2.25 like physics.
[SCons] Build with Solid as default when enabling the gameengine in the build process
[SCons] Build solid and qhull from the extern directory and link statically against them

That was about it.

There are a few things that needs double checking:

* Makefiles
* Projectfiles
* All the other systems than Linux and Windows on which the build (with scons) has been successfully tested.
2004-03-22 22:02:18 +00:00
Michel Selten
70a4ead0ae SCons updates
* Blender static now links. By default this option is disabled on all
  platforms. Simply set the option in config.opts to 'true'.
* Added the following flags to config.opts:
  - HOST_CC.    This is the C compiler for the host platform. This value is the
                same as TARGET_CC when not cross compiling.
  - HOST_CXX.   This is the C++ compiler for the host platform. This value is
                the same as TARGET_CXX when not cross compiling.
  - TARGET_CC.  This is the C compiler for the target platform.
  - TARGET_CXX. This is the C++ compiler for the target platform.
  - TARGET_AR.  This is the linker command for linking libraries.
  - PATH        This is the standard search path
  All SConscript files have been updated to reflect these changes. Now it's
  possible to change only the root SConstruct file, and all compiler specific
  variables are passed automatically to all SConscript files. Of course, this
  does not apply to makesdna because there the host and target platform is
  different from all other libraries.
  To pass a variable that applies to all platforms, all we now have to do is
  set the correct value in library_env


Note: as usual, to get the latest options in the config.opts file, first
      remove your version.
2004-02-29 21:40:48 +00:00
Michel Selten
e1ab3cf480 SCons updates
* Game engine can now be build on Linux. By default this feature is disabled.
  The reason is that you need to have a precompiled version of the ode library
  for your gcc version.
  To enable ode support you need to do the following:
  - compile ode.
  - set BUILD_GAMEENGINE = 'true' in the config.opts file.
  - set USE_PHYSICS='ode' in the config.opts file.
  - set the ODE_INCLUDE and ODE_LIBPATH to valid locations.

* Linking order has changed for the game engine
  There are cyclic dependencies between libraries. On linux we have to do some
  duplicate linking. I looked at the order of linking in source/Makefile, and
  did some clean up.
2004-02-22 19:01:12 +00:00
Nathan Letwory
e579793652 - [win32] updated SConscripts to use new configuration method (config.opts).
NOTE: ODE support needs still to be reviewed, so disable gameengine for now.
2004-02-21 19:00:31 +00:00
Michel Selten
9330e553e8 SCons updates
* libraries are now generated in [BUILD_DIR]/lib
* passed the user_options to all libraries now.
  This means I could remove a couple of Export/Import lines.
* Changed the order in source/blender/src/SConscript and
  source/gameengine/SConscript.
  All libraries are now sorted alphabetically. This has no impact on the build
  process.
2004-02-15 19:25:32 +00:00
Michel Selten
2883110a54 SCons updates: (All done by jesterKing)
* Windows .exe file now includes the blender icon.
* Builds with game engine on Windows only.
  I tried building the game engine on Linux, but I get weird errors when
  building with ode. There's a dirty #include path in
  Physics/BlOde/OdePhysicsEnvironment.cpp (../ode/src/joint.h). gcc doesn't
  like this somehow.
* Other platforms need to add a couple of flags to the SConstruct:
  use_sumo, use_ode, solid_include and ode_include
2004-01-20 20:28:39 +00:00
Wouter van Heyst
57a7dfe5a5 - Revert to NaN makefiles 2004-01-05 00:06:11 +00:00
Alejandro Conty Estevez
eff07b8329 Basic initial yafray integration by Eeshlo.
Materials are exported the best we can do by now. It will look almost as in
blender except for the missing procedural textures and some minor issues.
You have to tweak normal modulation amount to get the desired result cause
is not the same in yafray.

We added a panel in render space to adjust some yafray settings (GI and so)

Also we export transparency and reflection using new raytracing settings,
but that will be changed and improved soon.

Remember that you have to set YFexport path in user defaults and yafray must
be on path (version 0.0.6)

We added the "yafray" button to activate all this stuff in the render window.
Panel and settings are only shown when checked.

So now when activated the code calls yafray export instead of the internal
renderer and finally the resulting image is loaded back into render window's
buffer. So animation is also possible and results can be saved using blender
usual scheme.
2004-01-04 22:10:36 +00:00
Chris Want
b92e99d0a8 In ODE, a dVector3 is really a 4D array ... the 3D initialization
used in this file caused the MipsPro 7.4 compiler to choke
... please test on all platforms!
2003-08-23 19:09:52 +00:00
Kent Mein
6dcc5b030e Further fixes to the old makefiles.
Kent
2003-07-16 19:53:53 +00:00
Chris Want
1f668df514 Irix will now link to ode 2003-03-31 17:27:20 +00:00
Wouter van Heyst
22305bc08d FreeBSD can use the exact same python includes as everyone else 2003-03-25 23:36:40 +00:00
Hans Lambermont
1a32da86f1 skip BlOde for irix 2003-01-11 22:10:00 +00:00
Hans Lambermont
080dd299d6 - use ODE in lib/ for FreeBSD
- use default python library path
- remove obsolete SSR comments
2003-01-04 20:20:54 +00:00
Hans Lambermont
302399b9d0 and the other FreeBSD python locations. 2003-01-04 01:41:19 +00:00
Kent Mein
f1c4f705a1 Removed the config.h thing from the .h's in the source dir.
So we should be all set now :)

Kent
--
mein@cs.umn.edu
2002-12-27 13:11:01 +00:00
Kent Mein
50ec450e64 Had to make the patch for casting a little more complicated.
m_MotionState->getWorldOrientation((float)worldquat[1],
        (float)worldquat[2],(float)worldquat[3],(float)worldquat[0]);

Is now:

#ifdef dDOUBLE
      m_MotionState->getWorldOrientation((float)worldquat[1],
        (float)worldquat[2],(float)worldquat[3],(float)worldquat[0]);
#else
      m_MotionState->getWorldOrientation(worldquat[1],
        worldquat[2],worldquat[3],worldquat[0]);
#endif


Kent
--
mein@cs.umn.edu
2002-12-03 15:52:47 +00:00
Kent Mein
73aef31b52 I got this patch from sgefant Mostly its just casting floats as floats.
(also adding a couple of include pathes)
changes in Ode*.cpp to get it compile with gcc 2.95.4
to make it compile with ./configure --with-gameengine
                        --enable-gameplayer


Kent
--
mein@cs.umn.edu
2002-12-02 16:30:13 +00:00
Kent Mein
209a2ede2c Last of the config.h mods...
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

added to these files.

Kent
--
mein@cs.umn.edu
2002-11-25 15:29:57 +00:00
Kent Mein
b9a19f1ea7 Did all of the .h's in source
(adding)
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

also the Makefile.in's were from previous patch adding
the system depend stuff to configure.ac

Kent
--
mein@cs.umn.edu
2002-11-25 11:16:17 +00:00
Kent Mein
98e307346c Fixed a typo. Had a [ added.
Kent
--
mein@cs.umn.edu
2002-11-19 00:09:54 +00:00
Maarten Gribnau
2d5514be28 Brought back the sumo physics controllers and undid game engine make file
changes.
Instead modified the top level nan_definitions.mk to point the NAN_SUMO and
NAN_FUZZICS to the right locations.
Maarten
2002-11-05 20:20:50 +00:00
Maarten Gribnau
0698cafb6a removed last traces of sumo for Makefile users
1. Removed KX_SumoPhysicsController.h and KX_SumoPhysicsController.cpp
2. Changed some Makefiles to skip sumo
Maarten (mail@maartengribnau.com)
2002-11-04 20:22:33 +00:00
Kent Mein
01bff70383 fixed spacing in the headers to get rid of some warnings and some other
little minor spacing issues.
2002-10-30 02:07:20 +00:00
Norman Lin
ae459bfc12 added notes on collisions between dynas and "static moving" geometry (kinematically controlled) 2002-10-19 13:49:00 +00:00
Norman Lin
1ca9bded73 added todo item about compatibility with 2.25 2002-10-18 18:53:45 +00:00
Norman Lin
b7dadcfefd first checkin of ode blender engine files 2002-10-18 15:46:57 +00:00
Norman Lin
1b15961786 First checkin of core ODE functionality. See OdePhysicsController.cpp for a todo list. 2002-10-18 14:36:34 +00:00