branches/blender-2.47
Merge from trunk: Revision: 15620 Revision: 15623
This commit is contained in:
parent
8dc1d7809e
commit
812666f02b
|
@ -5401,7 +5401,9 @@ uiBlock *uiNewBlock(ListBase *lb, char *name, short dt, short font, short win)
|
|||
int getsizex, getsizey;
|
||||
|
||||
bwin_getsize(win, &getsizex, &getsizey);
|
||||
block->aspect= 2.0/( (getsizex)*block->winmat[0][0]);
|
||||
/* TODO - investigate why block->winmat[0][0] is negative
|
||||
* in the image view when viewRedrawForce is called */
|
||||
block->aspect= 2.0/fabs( (getsizex)*block->winmat[0][0]);
|
||||
}
|
||||
|
||||
uiSetCurFont(block, font);
|
||||
|
|
|
@ -300,7 +300,7 @@ const MT_Point3& SCA_IObject::ConvertPythonPylist(PyObject* pylist)
|
|||
}
|
||||
#endif
|
||||
|
||||
void SCA_IObject::Suspend(void)
|
||||
void SCA_IObject::Suspend()
|
||||
{
|
||||
if ((!m_ignore_activity_culling)
|
||||
&& (!m_suspended)) {
|
||||
|
|
|
@ -17,7 +17,8 @@
|
|||
|
||||
KX_BulletPhysicsController::KX_BulletPhysicsController (const CcdConstructionInfo& ci, bool dyna)
|
||||
: KX_IPhysicsController(dyna,(PHY_IPhysicsController*)this),
|
||||
CcdPhysicsController(ci)
|
||||
CcdPhysicsController(ci),
|
||||
m_savedCollisionFlags(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -154,14 +155,26 @@ void KX_BulletPhysicsController::setRigidBody(bool rigid)
|
|||
{
|
||||
}
|
||||
|
||||
void KX_BulletPhysicsController::SuspendDynamics()
|
||||
void KX_BulletPhysicsController::SuspendDynamics(bool ghost)
|
||||
{
|
||||
GetRigidBody()->setActivationState(DISABLE_SIMULATION);
|
||||
|
||||
btRigidBody *body = GetRigidBody();
|
||||
if (body->getActivationState() != DISABLE_SIMULATION)
|
||||
{
|
||||
m_savedCollisionFlags = body->getCollisionFlags();
|
||||
body->setActivationState(DISABLE_SIMULATION);
|
||||
body->setCollisionFlags((btCollisionObject::CF_STATIC_OBJECT)|
|
||||
((ghost)?btCollisionObject::CF_NO_CONTACT_RESPONSE:0));
|
||||
}
|
||||
}
|
||||
|
||||
void KX_BulletPhysicsController::RestoreDynamics()
|
||||
{
|
||||
GetRigidBody()->forceActivationState(ACTIVE_TAG);
|
||||
btRigidBody *body = GetRigidBody();
|
||||
if (body->getActivationState() == DISABLE_SIMULATION)
|
||||
{
|
||||
GetRigidBody()->forceActivationState(ACTIVE_TAG);
|
||||
body->setCollisionFlags(m_savedCollisionFlags);
|
||||
}
|
||||
}
|
||||
|
||||
SG_Controller* KX_BulletPhysicsController::GetReplica(class SG_Node* destnode)
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
class KX_BulletPhysicsController : public KX_IPhysicsController ,public CcdPhysicsController
|
||||
{
|
||||
|
||||
private:
|
||||
int m_savedCollisionFlags;
|
||||
public:
|
||||
|
||||
KX_BulletPhysicsController (const CcdConstructionInfo& ci, bool dyna);
|
||||
|
@ -38,7 +39,7 @@ public:
|
|||
|
||||
virtual void resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ);
|
||||
|
||||
virtual void SuspendDynamics();
|
||||
virtual void SuspendDynamics(bool ghost);
|
||||
virtual void RestoreDynamics();
|
||||
|
||||
virtual SG_Controller* GetReplica(class SG_Node* destnode);
|
||||
|
|
|
@ -236,6 +236,10 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj)
|
|||
if (rootlist->RemoveValue(this))
|
||||
// the object was in parent list, decrement ref count as it's now removed
|
||||
Release();
|
||||
if (m_pPhysicsController1)
|
||||
{
|
||||
m_pPhysicsController1->SuspendDynamics(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -256,6 +260,10 @@ void KX_GameObject::RemoveParent(KX_Scene *scene)
|
|||
if (!rootlist->SearchValue(this))
|
||||
// object was not in root list, add it now and increment ref count
|
||||
rootlist->Add(AddRef());
|
||||
if (m_pPhysicsController1)
|
||||
{
|
||||
m_pPhysicsController1->RestoreDynamics();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -702,7 +710,7 @@ void KX_GameObject::Resume(void)
|
|||
}
|
||||
}
|
||||
|
||||
void KX_GameObject::Suspend(void)
|
||||
void KX_GameObject::Suspend()
|
||||
{
|
||||
if ((!m_ignore_activity_culling)
|
||||
&& (!m_suspended)) {
|
||||
|
|
|
@ -77,7 +77,7 @@ public:
|
|||
virtual MT_Vector3 getReactionForce()=0;
|
||||
virtual void setRigidBody(bool rigid)=0;
|
||||
|
||||
virtual void SuspendDynamics()=0;
|
||||
virtual void SuspendDynamics(bool ghost=false)=0;
|
||||
virtual void RestoreDynamics()=0;
|
||||
|
||||
virtual SG_Controller* GetReplica(class SG_Node* destnode)=0;
|
||||
|
|
|
@ -177,7 +177,7 @@ void KX_OdePhysicsController::setRigidBody(bool rigid)
|
|||
|
||||
}
|
||||
|
||||
void KX_OdePhysicsController::SuspendDynamics()
|
||||
void KX_OdePhysicsController::SuspendDynamics(bool)
|
||||
{
|
||||
ODEPhysicsController::SuspendDynamics();
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ public:
|
|||
virtual MT_Vector3 getReactionForce();
|
||||
virtual void setRigidBody(bool rigid);
|
||||
|
||||
virtual void SuspendDynamics();
|
||||
virtual void SuspendDynamics(bool);
|
||||
virtual void RestoreDynamics();
|
||||
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ void KX_SumoPhysicsController::SetSumoTransform(bool nondynaonly)
|
|||
|
||||
}
|
||||
|
||||
void KX_SumoPhysicsController::SuspendDynamics()
|
||||
void KX_SumoPhysicsController::SuspendDynamics(bool)
|
||||
{
|
||||
SumoPhysicsController::SuspendDynamics();
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ public:
|
|||
void resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ);
|
||||
|
||||
|
||||
void SuspendDynamics();
|
||||
void SuspendDynamics(bool);
|
||||
void RestoreDynamics();
|
||||
virtual void getOrientation(MT_Quaternion& orn);
|
||||
virtual void setOrientation(const MT_Quaternion& orn);
|
||||
|
|
Loading…
Reference in New Issue