Commit e3fd0142 authored by bitplane's avatar bitplane

Fixed bug id 2074582, CSceneNodeAnimatorCameraMaya uses uninitialized OldTarget.

Animator now remembers the previously used camera and resets the OldTarget on a change

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1553 dfc29bdd-3216-0410-991c-e03cc46cb475
parent a32d8dc4
......@@ -17,14 +17,18 @@ CSceneNodeAnimatorCameraMaya::CSceneNodeAnimatorCameraMaya(gui::ICursorControl*
: CursorControl(cursor), Zooming(false), Rotating(false), Moving(false), Translating(false),
ZoomSpeed(zoom), RotateSpeed(rotate), TranslateSpeed(translate),
RotateStartX(0.0f), RotateStartY(0.0f), ZoomStartX(0.0f), ZoomStartY(0.0f),
TranslateStartX(0.0f), TranslateStartY(0.0f), CurrentZoom(70.0f), RotX(0.0f), RotY(0.0f)
TranslateStartX(0.0f), TranslateStartY(0.0f), CurrentZoom(70.0f), RotX(0.0f), RotY(0.0f),
Target(0,0,0), OldTarget(0,0,0), MousePos(0.5f, 0.5f), OldCamera(0)
{
#ifdef _DEBUG
setDebugName("CSceneNodeAnimatorCameraMaya");
#endif
if (CursorControl)
{
CursorControl->grab();
MousePos = CursorControl->getRelativePosition();
}
allKeysUp();
}
......@@ -93,6 +97,12 @@ void CSceneNodeAnimatorCameraMaya::animateNode(ISceneNode *node, u32 timeMs)
ICameraSceneNode* camera = static_cast<ICameraSceneNode*>(node);
if (OldCamera != camera)
{
OldTarget = camera->getTarget();
OldCamera = camera;
}
Target = camera->getTarget();
const SViewFrustum* va = camera->getViewFrustum();
......
......@@ -6,6 +6,7 @@
#define __C_SCENE_NODE_ANIMATOR_CAMERA_MAYA_H_INCLUDED__
#include "ISceneNodeAnimatorCameraMaya.h"
#include "ICameraSceneNode.h"
#include "vector2d.h"
namespace irr
......@@ -90,6 +91,7 @@ namespace scene
f32 CurrentZoom;
f32 RotX, RotY;
core::vector3df Target, OldTarget;
scene::ICameraSceneNode* OldCamera;
core::position2d<f32> MousePos;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment