Commit: 33bf1e0e184a52ecd9d9989bb474f7d5534e789b
Author: Jorge Bernal
Date: Sat Mar 21 17:53:18 2015 +0100
Branches: blender-v2.74-release
https://developer.blender.org/rB33bf1e0e184a52ecd9d9989bb474f7d5534e789b
Revert part of D1074 related to acceleration taked into account.
It has been reverted because it was affecting obstacle avoidance
(T44041).
This fix should be backported to 2.74
===================================================================
M source/blender/blenloader/intern/versioning_270.c
M source/gameengine/Ketsji/KX_SteeringActuator.cpp
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_270.c
b/source/blender/blenloader/intern/versioning_270.c
index ab5c8ac..735ed19 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -616,18 +616,6 @@ void blo_do_versions_270(FileData *fd, Library
*UNUSED(lib), Main *main)
}
}
}
-
- if (!DNA_struct_elem_find(fd->filesdna, "bSteeringActuator",
"float", "acceleration")) {
- for (ob = main->object.first; ob; ob = ob->id.next) {
- bActuator *act;
- for (act = ob->actuators.first; act; act =
act->next) {
- if (act->type == ACT_STEERING) {
- bSteeringActuator *sact =
act->data;
- sact->acceleration = 1000.f;
- }
- }
- }
- }
}
if (!MAIN_VERSION_ATLEAST(main, 273, 9)) {
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
index f859b1c..83597f9 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
@@ -263,12 +263,12 @@ bool KX_SteeringActuator::Update(double curtime, bool
frame)
if (apply_steerforce)
{
- MT_Vector3 newvel;
bool isdyna = obj->IsDynamic();
if (isdyna)
m_steerVec.z() = 0;
if (!m_steerVec.fuzzyZero())
m_steerVec.normalize();
+ MT_Vector3 newvel = m_velocity * m_steerVec;
//adjust velocity to avoid obstacles
if (m_simulation && m_obstacle /*&&
!newvel.fuzzyZero()*/)
@@ -281,16 +281,13 @@ bool KX_SteeringActuator::Update(double curtime, bool
frame)
KX_RasterizerDrawDebugLine(mypos, mypos
+ newvel, MT_Vector3(0.0, 1.0, 0.0));
}
- HandleActorFace(m_steerVec);
+ HandleActorFace(newvel);
if (isdyna)
{
- //TODO: Take into account angular velocity on
turns
+ //temporary solution: set 2D steering velocity
directly to obj
+ //correct way is to apply physical force
MT_Vector3 curvel = obj->GetLinearVelocity();
- newvel = (curvel.length() * m_steerVec) +
(m_acceleration * delta) * m_steerVec;
- if (newvel.length2() >= (m_velocity *
m_velocity))
- newvel = m_velocity * m_steerVec;
-
if (m_lockzvel)
newvel.z() = 0.0f;
else
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs