Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-01-11 19:04:54 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-11 19:04:54 +0400
commita7b0a11811ccdbf83301891c03a50c1d5daf4776 (patch)
tree165521a6533e9069c455dbccda87b944ae7a1c25 /source/gameengine
parentb308e613126f8c89e954705aa512a3ef6a1f551d (diff)
parent6ce92d09f77351b3ad882e8d8f6d6b1511e91844 (diff)
svn merge ^/trunk/blender -r43278:43294
Diffstat (limited to 'source/gameengine')
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp67
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.h6
3 files changed, 51 insertions, 24 deletions
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp
index f4b173763d3..be14400f33a 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.cpp
+++ b/source/gameengine/Converter/KX_ConvertActuators.cpp
@@ -300,7 +300,7 @@ void BL_ConvertActuators(const char* maggiename,
camact->height,
camact->min,
camact->max,
- camact->axis=='x',
+ camact->axis,
camact->damping);
baseact = tmpcamact;
}
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index d4aae68dafb..cd0aff0a87b 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -53,7 +53,7 @@ KX_CameraActuator::KX_CameraActuator(
float hght,
float minhght,
float maxhght,
- bool xytog,
+ short axis,
float damping
):
SCA_IActuator(gameobj, KX_ACT_CAMERA),
@@ -61,7 +61,7 @@ KX_CameraActuator::KX_CameraActuator(
m_height (hght),
m_minHeight (minhght),
m_maxHeight (maxhght),
- m_x (xytog),
+ m_axis(axis),
m_damping (damping)
{
if (m_ob)
@@ -264,23 +264,50 @@ bool KX_CameraActuator::Update(double curtime, bool frame)
/* C4: camera behind actor */
- if (m_x) {
- fp1[0] = actormat[0][0];
- fp1[1] = actormat[1][0];
- fp1[2] = actormat[2][0];
-
- fp2[0] = frommat[0][0];
- fp2[1] = frommat[1][0];
- fp2[2] = frommat[2][0];
- }
- else {
- fp1[0] = actormat[0][1];
- fp1[1] = actormat[1][1];
- fp1[2] = actormat[2][1];
-
- fp2[0] = frommat[0][1];
- fp2[1] = frommat[1][1];
- fp2[2] = frommat[2][1];
+ switch (m_axis) {
+ case OB_POSX:
+ /* X */
+ fp1[0] = actormat[0][0];
+ fp1[1] = actormat[1][0];
+ fp1[2] = actormat[2][0];
+
+ fp2[0] = frommat[0][0];
+ fp2[1] = frommat[1][0];
+ fp2[2] = frommat[2][0];
+ break;
+ case OB_POSY:
+ /* Y */
+ fp1[0] = actormat[0][1];
+ fp1[1] = actormat[1][1];
+ fp1[2] = actormat[2][1];
+
+ fp2[0] = frommat[0][1];
+ fp2[1] = frommat[1][1];
+ fp2[2] = frommat[2][1];
+ break;
+ case OB_NEGX:
+ /* -X */
+ fp1[0] = -actormat[0][0];
+ fp1[1] = -actormat[1][0];
+ fp1[2] = -actormat[2][0];
+
+ fp2[0] = frommat[0][0];
+ fp2[1] = frommat[1][0];
+ fp2[2] = frommat[2][0];
+ break;
+ case OB_NEGY:
+ /* -Y */
+ fp1[0] = -actormat[0][1];
+ fp1[1] = -actormat[1][1];
+ fp1[2] = -actormat[2][1];
+
+ fp2[0] = frommat[0][1];
+ fp2[1] = frommat[1][1];
+ fp2[2] = frommat[2][1];
+ break;
+ default:
+ assert(0);
+ break;
}
inp= fp1[0]*fp2[0] + fp1[1]*fp2[1] + fp1[2]*fp2[2];
@@ -389,7 +416,7 @@ PyAttributeDef KX_CameraActuator::Attributes[] = {
KX_PYATTRIBUTE_FLOAT_RW("min",-FLT_MAX,FLT_MAX,KX_CameraActuator,m_minHeight),
KX_PYATTRIBUTE_FLOAT_RW("max",-FLT_MAX,FLT_MAX,KX_CameraActuator,m_maxHeight),
KX_PYATTRIBUTE_FLOAT_RW("height",-FLT_MAX,FLT_MAX,KX_CameraActuator,m_height),
- KX_PYATTRIBUTE_BOOL_RW("useXY",KX_CameraActuator,m_x),
+ KX_PYATTRIBUTE_SHORT_RW("axis", 0, 3, true, KX_CameraActuator,m_axis),
KX_PYATTRIBUTE_RW_FUNCTION("object", KX_CameraActuator, pyattr_get_object, pyattr_set_object),
KX_PYATTRIBUTE_FLOAT_RW("damping",0.f,10.f,KX_CameraActuator,m_damping),
{NULL}
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h
index a6344ae380a..1cae676fe3f 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.h
+++ b/source/gameengine/Ketsji/KX_CameraActuator.h
@@ -70,8 +70,8 @@ private :
/** max (float), */
float m_maxHeight;
- /** xy toggle (pick one): true == x, false == y */
- bool m_x;
+ /** axis the camera tries to get behind: +x/+y/-x/-y */
+ short m_axis;
/** damping (float), */
float m_damping;
@@ -97,7 +97,7 @@ private :
float hght,
float minhght,
float maxhght,
- bool xytog,
+ short axis,
float damping
);