[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15669] branches/apricot/source: svn merge -r15657:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/ blende
Campbell Barton
ideasman42 at gmail.com
Mon Jul 21 15:11:56 CEST 2008
Revision: 15669
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15669
Author: campbellbarton
Date: 2008-07-21 15:11:56 +0200 (Mon, 21 Jul 2008)
Log Message:
-----------
svn merge -r15657:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/blende
Modified Paths:
--------------
branches/apricot/source/blender/blenkernel/intern/collision.c
branches/apricot/source/blender/blenkernel/intern/particle_system.c
branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
branches/apricot/source/gameengine/GamePlayer/common/GPC_Canvas.h
branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.h
branches/apricot/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp
branches/apricot/source/gameengine/Ketsji/KX_IPhysicsController.h
branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.cpp
branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.h
branches/apricot/source/gameengine/Ketsji/KX_RadarSensor.cpp
branches/apricot/source/gameengine/Ketsji/KX_Scene.cpp
branches/apricot/source/gameengine/Ketsji/KX_SumoPhysicsController.cpp
branches/apricot/source/gameengine/Ketsji/KX_SumoPhysicsController.h
branches/apricot/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
branches/apricot/source/gameengine/Physics/Bullet/CcdPhysicsController.h
branches/apricot/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
branches/apricot/source/gameengine/Rasterizer/RAS_2DFilterManager.h
branches/apricot/source/gameengine/Rasterizer/RAS_ICanvas.h
Modified: branches/apricot/source/blender/blenkernel/intern/collision.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/collision.c 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/blender/blenkernel/intern/collision.c 2008-07-21 13:11:56 UTC (rev 15669)
@@ -1437,6 +1437,9 @@
if(coll_ob == self)
continue;
+
+ if( !collmd->bvhtree)
+ continue;
if(numobj >= maxobj)
{
Modified: branches/apricot/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/particle_system.c 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/blender/blenkernel/intern/particle_system.c 2008-07-21 13:11:56 UTC (rev 15669)
@@ -2797,7 +2797,10 @@
epart= epsys->part;
pd= epart->pd;
totepart= epsys->totpart;
-
+
+ if(totepart <= 0)
+ continue;
+
if(pd->forcefield==PFIELD_HARMONIC){
/* every particle is mapped to only one harmonic effector particle */
p= pa_no%epsys->totpart;
Modified: branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
===================================================================
--- branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -101,6 +101,13 @@
return scrarea_get_win_height(m_area);
}
+RAS_Rect &
+KX_BlenderCanvas::
+GetWindowArea(
+){
+ return m_area_rect;
+}
+
void
KX_BlenderCanvas::
SetViewPort(
@@ -112,6 +119,11 @@
int minx = scrarea_get_win_x(m_area);
int miny = scrarea_get_win_y(m_area);
+ m_area_rect.SetLeft(minx + x1);
+ m_area_rect.SetBottom(miny + y1);
+ m_area_rect.SetRight(minx + x2);
+ m_area_rect.SetTop(miny + y2);
+
glViewport(minx + x1, miny + y1, vp_width, vp_height);
glScissor(minx + x1, miny + y1, vp_width, vp_height);
}
Modified: branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
===================================================================
--- branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h 2008-07-21 13:11:56 UTC (rev 15669)
@@ -117,6 +117,10 @@
return m_displayarea;
};
+ RAS_Rect &
+ GetWindowArea(
+ );
+
void
SetViewPort(
int x1, int y1,
@@ -159,6 +163,7 @@
private:
/** Blender area the game engine is running within */
struct ScrArea* m_area;
+ RAS_Rect m_area_rect;
};
#endif // __KX_BLENDERCANVAS
Modified: branches/apricot/source/gameengine/GamePlayer/common/GPC_Canvas.h
===================================================================
--- branches/apricot/source/gameengine/GamePlayer/common/GPC_Canvas.h 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/GamePlayer/common/GPC_Canvas.h 2008-07-21 13:11:56 UTC (rev 15669)
@@ -130,6 +130,12 @@
) {
return m_displayarea;
};
+
+ RAS_Rect &
+ GetWindowArea(
+ ) {
+ return m_displayarea;
+ }
void
BeginFrame(
Modified: branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -133,9 +133,10 @@
CcdPhysicsController::getOrientation(myorn[0],myorn[1],myorn[2],myorn[3]);
orn = MT_Quaternion(myorn[0],myorn[1],myorn[2],myorn[3]);
}
-void KX_BulletPhysicsController::setOrientation(const MT_Quaternion& orn)
+void KX_BulletPhysicsController::setOrientation(const MT_Matrix3x3& orn)
{
- CcdPhysicsController::setOrientation(orn.x(),orn.y(),orn.z(),orn.w());
+ btMatrix3x3 btmat(orn[0][0], orn[0][1], orn[1][2], orn[1][0], orn[1][1], orn[1][2], orn[2][0], orn[2][1], orn[2][2]);
+ CcdPhysicsController::setWorldOrientation(btmat);
}
void KX_BulletPhysicsController::setPosition(const MT_Point3& pos)
{
Modified: branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.h
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.h 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_BulletPhysicsController.h 2008-07-21 13:11:56 UTC (rev 15669)
@@ -35,7 +35,7 @@
virtual void SetAngularVelocity(const MT_Vector3& ang_vel,bool local);
virtual void SetLinearVelocity(const MT_Vector3& lin_vel,bool local);
virtual void getOrientation(MT_Quaternion& orn);
- virtual void setOrientation(const MT_Quaternion& orn);
+ virtual void setOrientation(const MT_Matrix3x3& orn);
virtual void setPosition(const MT_Point3& pos);
virtual void setScaling(const MT_Vector3& scaling);
virtual MT_Scalar GetMass();
Modified: branches/apricot/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_ConstraintActuator.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_ConstraintActuator.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -178,16 +178,18 @@
direction[2] = rotation[2][1];
axis = 1;
break;
- case KX_ACT_CONSTRAINT_ORIZ:
+ default:
direction[0] = rotation[0][2];
direction[1] = rotation[1][2];
direction[2] = rotation[2][2];
axis = 2;
break;
}
- // apply damping on the direction
if (m_posDampTime) {
+ // apply damping on the direction
direction = filter*direction + (1.0-filter)*m_refDirection;
+ } else {
+ direction = m_refDirection;
}
obj->AlignAxisToVect(direction, axis);
result = true;
Modified: branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -744,7 +744,7 @@
if (m_pPhysicsController1 && (!GetSGNode() || !GetSGNode()->GetSGParent()))
{
// see note above
- m_pPhysicsController1->setOrientation(rot.getRotation());
+ m_pPhysicsController1->setOrientation(rot);
}
if (GetSGNode())
GetSGNode()->SetLocalOrientation(rot);
Modified: branches/apricot/source/gameengine/Ketsji/KX_IPhysicsController.h
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_IPhysicsController.h 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_IPhysicsController.h 2008-07-21 13:11:56 UTC (rev 15669)
@@ -71,7 +71,8 @@
virtual void resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ) = 0;
virtual void getOrientation(MT_Quaternion& orn)=0;
- virtual void setOrientation(const MT_Quaternion& orn)=0;
+ virtual void setOrientation(const MT_Matrix3x3& orn)=0;
+ //virtual void setOrientation(const MT_Quaternion& orn)=0;
virtual void setPosition(const MT_Point3& pos)=0;
virtual void setScaling(const MT_Vector3& scaling)=0;
virtual MT_Scalar GetMass()=0;
Modified: branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -133,8 +133,9 @@
ODEPhysicsController::SetLinearVelocity(lin_vel[0],lin_vel[1],lin_vel[2],local);
}
-void KX_OdePhysicsController::setOrientation(const MT_Quaternion& orn)
+void KX_OdePhysicsController::setOrientation(const MT_Matrix3x3& rot)
{
+ MT_Quaternion orn = rot.getRotation();
ODEPhysicsController::setOrientation(orn[0],orn[1],orn[2],orn[3]);
}
Modified: branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.h
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.h 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_OdePhysicsController.h 2008-07-21 13:11:56 UTC (rev 15669)
@@ -67,7 +67,7 @@
virtual void SetLinearVelocity(const MT_Vector3& lin_vel,bool local);
virtual void resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ);
virtual void getOrientation(MT_Quaternion& orn);
- virtual void setOrientation(const MT_Quaternion& orn);
+ virtual void setOrientation(const MT_Matrix3x3& orn);
virtual void setPosition(const MT_Point3& pos);
virtual void setScaling(const MT_Vector3& scaling);
virtual MT_Scalar GetMass();
Modified: branches/apricot/source/gameengine/Ketsji/KX_RadarSensor.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_RadarSensor.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_RadarSensor.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -176,8 +176,10 @@
if (m_physCtrl)
{
- m_physCtrl->setPosition(trans.getOrigin().x(),trans.getOrigin().y(),trans.getOrigin().z());
- m_physCtrl->setOrientation(trans.getRotation().x(),trans.getRotation().y(),trans.getRotation().z(),trans.getRotation().w());
+ MT_Quaternion orn = trans.getRotation();
+ MT_Point3 pos = trans.getOrigin();
+ m_physCtrl->setPosition(pos[0],pos[1],pos[2]);
+ m_physCtrl->setOrientation(orn[0],orn[1],orn[2],orn[3]);
m_physCtrl->calcXform();
}
Modified: branches/apricot/source/gameengine/Ketsji/KX_Scene.cpp
===================================================================
--- branches/apricot/source/gameengine/Ketsji/KX_Scene.cpp 2008-07-21 12:37:27 UTC (rev 15668)
+++ branches/apricot/source/gameengine/Ketsji/KX_Scene.cpp 2008-07-21 13:11:56 UTC (rev 15669)
@@ -713,8 +713,12 @@
if (replica->GetPhysicsController())
{
- replica->GetPhysicsController()->setPosition(newpos);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list