Commit Graph

31 Commits

Author SHA1 Message Date
Benoit Bolsee
949b6ca80f BGE bug #17688 fixed: Near Sensor Reset not working (for Gamekit)
Implementation of the PHY_IPhysicsController::SetMargin(),
GetMargin(), SetRadius() and GetRadius() for Bullet and Sumo
to allow resetting the Near sensor radius. For bullet use 
the new setUnscaledRadius() function to change sphere radius.

In pPreparation of a Fh constraint actuator:
- Add KX_IPhysicsController::GetRadius()
- Fix implementation of KX_BulletPhysicsController::GetVelocity()
  (velocity at a point in geometric coordinate)
- Don't try to set velocity on static object (Bullet will assert)
- Add KX_GameObject::GetVelocity() for C access to local velocity
2008-10-01 07:55:02 +00:00
Ton Roosendaal
6b7b812208 This file did not compile, but is also not part of the build target...
Fixed neverheless, patch #6258 from Early Ehlinger
2008-09-18 16:43:31 +00:00
Benoit Bolsee
becd467be8 BGE patch: KX_GameObject::rayCast() improvements to have X-Ray option, return true face normal and hit polygon information.
rayCast(to,from,dist,prop,face,xray,poly):

The face paremeter determines the orientation of the normal: 
  0 or omitted => hit normal is always oriented towards the ray origin (as if you casted the ray from outside)
  1 => hit normal is the real face normal (only for mesh object, otherwise face has no effect)
The ray has X-Ray capability if xray parameter is 1, otherwise the first object hit (other than self object) stops the ray.
The prop and xray parameters interact as follow:
    prop off, xray off: return closest hit or no hit if there is no object on the full extend of the ray.
    prop off, xray on : idem.
    prop on,  xray off: return closest hit if it matches prop, no hit otherwise.
    prop on,  xray on : return closest hit matching prop or no hit if there is no object matching prop on the full extend of the ray.
if poly is 0 or omitted, returns a 3-tuple with object reference, hit point and hit normal or (None,None,None) if no hit.
if poly is 1, returns a 4-tuple with in addition a KX_PolyProxy as 4th element.

The KX_PolyProxy object holds information on the polygon hit by the ray: the index of the vertex forming the poylgon, material, etc.

Attributes (read-only):
 matname: The name of polygon material, empty if no material.
 material: The material of the polygon
 texture: The texture name of the polygon.
 matid: The material index of the polygon, use this to retrieve vertex proxy from mesh proxy
 v1: vertex index of the first vertex of the polygon, use this to retrieve vertex proxy from mesh proxy
 v2: vertex index of the second vertex of the polygon, use this to retrieve vertex proxy from mesh proxy
 v3: vertex index of the third vertex of the polygon, use this to retrieve vertex proxy from mesh proxy
 v4: vertex index of the fourth vertex of the polygon, 0 if polygon has only 3 vertex
     use this to retrieve vertex proxy from mesh proxy
 visible: visible state of the polygon: 1=visible, 0=invisible
 collide: collide state of the polygon: 1=receives collision, 0=collision free.
Methods:
 getMaterialName(): Returns the polygon material name with MA prefix
 getMaterial(): Returns the polygon material
 getTextureName(): Returns the polygon texture name
 getMaterialIndex(): Returns the material bucket index of the polygon. 
 getNumVertex(): Returns the number of vertex of the polygon.
 isVisible(): Returns whether the polygon is visible or not
 isCollider(): Returns whether the polygon is receives collision or not
 getVertexIndex(vertex): Returns the mesh vertex index of a polygon vertex
 getMesh(): Returns a mesh proxy

New methods of KX_MeshProxy have been implemented to retrieve KX_PolyProxy objects:
 getNumPolygons(): Returns the number of polygon in the mesh.
 getPolygon(index): Gets the specified polygon from the mesh.

More details in PyDoc.
2008-08-27 19:34:19 +00:00
Benoit Bolsee
8a8a12ed84 BGE patch: logic optimization part 2: remove inactive sensors from logic manager.
With this patch, only sensors that are connected to 
active states are actually registered in the logic
manager. Inactive sensors won't take any CPU,
especially the Radar and Near sensors that use a
physical object for the detection: these objects
are removed from the physics engine.

To take advantage of this optimization patch, you
need to define very light idle state when the 
objects are inactive: make them transparent, suspend
the physics, keep few sensors active (e,g a message
sensor to wake up), etc.
2008-07-30 17:41:47 +00:00
Chris Want
5d0a207ecb Patch from GSR that a) fixes a whole bunch of GPL/BL license
blocks that were previously missed; and b) greatly increase my
ohloh stats!
2008-04-16 22:40:48 +00:00
Kent Mein
4e2143f639 This commit fixes up a bunch of svn properties to hopefully make things a little nicer for everyone.
Patch provied by gsrb3d

bug tracker #7061

Kent
2007-08-28 10:07:08 +00:00
Kent Mein
e544723e63 Fix some of Stealth Apprent's warnings/errors and some extra little stuff.
here is a quick summary...

Kent

intern/bsp/intern/BSP_CSGMesh_CFIterator.h
removed tri_index (unused variable)

intern/bsp/intern/CSG_BooleanOps.cpp
removed extra ;

intern/string/intern/STR_String.cpp
added <ctype.h>

source/blender/blenkernel/BKE_writeavi.h
moved things around so not doing forward declarations

source/blender/renderconverter/intern/convertBlenderScene.c
changed render.h to render_types.h

source/blender/src/blenderbuttons.c
source/blender/src/editgroup.c
source/blender/src/meshtools.c
added newline

source/gameengine/Ketsji/KX_KetsjiEngine.cpp
commented out include "PIL_time.h" code that requires it is commented out

reading blender/src/writeavicodec.c
(struct keyword to a couple of lines that needed it)
and added:
extern struct Render R;

blender/renderconverter/intern/convertBlenderScene.c
added extern Render R;
added #include "rendercore.h" to get rid of undeclared shade_material_loop
        (Not sure if this is right but it fixes it.
Did not fix this problem, is it alright to just pass NULL here or should we chan
ge it to something else:
        init_render_materials' : too few

gameengine/Physics/BlOde/OdePhysicsEnvironment.cpp
removed argument to dHashSpaceCreate
commented out dWorldQuickStep since it does not exist
2006-01-29 15:15:34 +00:00
Erwin Coumans
e1c66eb145 applied the 64-bit pointer patch submitted by Ken Hughes 2005-11-28 06:51:54 +00:00
Erwin Coumans
2d73b31aff preparation for bullet physics 2005-07-16 21:47:54 +00:00
Kester Maddock
c844aa265a Big patches:
Erwin Coumans: Abstract the physics engine
Charlie C: Joystick fixes
Me: Moved the ray cast (shadows, mouse sensor & ray sensor)
2005-03-25 10:33:39 +00:00
Kester Maddock
09fdbdc744 Fix compile errors for MSVC 2005-02-15 10:02:19 +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
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
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
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
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
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
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