rendered paste bodyvoid CameraNode::RotateCameraInterface(){ float verTurn; float horTurn; float turnSpeed; D3DXVECTOR3 targetDirection, vRotAxis; D3DXMATRIX matRotAxis, matRotZ; D3DXVec3Normalize(&targetDirection, &(_lookAt - _camPosition)); //create direction vector D3DXVec3Cross(&vRotAxis, &targetDirection, &_upVec); //strafe vector D3DXVec3Normalize(&vRotAxis, &vRotAxis); //create rotation matrices //D3DXMatrixRotationAxis(&matRotAxis, &vRotAxis, g_pInput->GetRelativeY() / -360); //D3DXMatrixRotationZ(&matRotZ,g_pInput->GetRelativeX() / -360); turnSpeed = cameraControllerInterface->getCameraSpeed(); horTurn = cameraControllerInterface->getTurnHorizontal() * turnSpeed; verTurn = cameraControllerInterface->getTurnVertical()* turnSpeed; D3DXMatrixRotationAxis(&matRotAxis, &vRotAxis, verTurn); D3DXMatrixRotationY(&matRotZ, horTurn); //rotate direction D3DXVec3TransformCoord(&targetDirection,&targetDirection,&(matRotAxis * matRotZ)); //rotate up vector D3DXVec3TransformCoord(&_upVec,&_upVec,&(matRotAxis * matRotZ)); //translate up vector _lookAt = targetDirection + _camPosition;}void CameraNode::MoveCameraInterface() { float VELOCITY = 1.0f; float verVelocity; float horVelocity; D3DXVECTOR3 targetDirectionVer, targetDirectionHor, strafeAxis; //forwardBack D3DXVec3Normalize(&targetDirectionVer, &(_lookAt - _camPosition)); //LR D3DXVec3Cross(&strafeAxis, &targetDirectionVer, &D3DXVECTOR3( 0.0f, -1.0f, 0.0f )); //get inputs from our controller(s) interface verVelocity = cameraControllerInterface->getStrafeVertical(); horVelocity = cameraControllerInterface->getStrafeHorizontal(); _camPosition += targetDirectionVer * verVelocity; _lookAt += targetDirectionVer * verVelocity; _camPosition -= strafeAxis * horVelocity; _lookAt -= strafeAxis * horVelocity;}