MathData const & InsetMathXYArrow::targetCell() const { #if 0 InsetMathXYMatrix const * p = targetMatrix(); int x = 0; int y = 0; MathData const & t = cell(0); for (MathData::const_iterator it = t.begin(); it != t.end(); ++it) { switch ((*it)->getChar()) { case 'l': --x; break; case 'r': ++x; break; case 'u': --y; break; case 'd': ++y; break; } } //lyxerr << "target: x: " << x << " y: " << y << endl; InsetMath::idx_type n = mi_.idx + p->ncols() * y + x; if (n >= p->nargs()) { lyxerr << "source: n: " << mi_.idx << "\n" << "target: n: " << n << " out of range" << endl; n = 0; } return p->cell(n); #else static MathData dummy; return dummy; #endif }
MathData const & InsetMathXYArrow::sourceCell() const { #if 0 return targetMatrix()->cell(mi_.idx); #else static MathData dummy; return dummy; #endif }
void DemoCameraListener::PreUpdate (const NewtonWorld* const world, dFloat timestep) { // update the camera; DemoEntityManager* const scene = (DemoEntityManager*) NewtonWorldGetUserData(world); dMatrix targetMatrix (m_camera->GetNextMatrix()); int mouseX; int mouseY; scene->GetMousePosition (mouseX, mouseY); // slow down the Camera if we have a Body dFloat slowDownFactor = scene->IsShiftKeyDown() ? 0.5f/10.0f : 0.5f; // do camera translation if (scene->GetKeyState ('W')) { targetMatrix.m_posit += targetMatrix.m_front.Scale(m_frontSpeed * timestep * slowDownFactor); } if (scene->GetKeyState ('S')) { targetMatrix.m_posit -= targetMatrix.m_front.Scale(m_frontSpeed * timestep * slowDownFactor); } if (scene->GetKeyState ('A')) { targetMatrix.m_posit -= targetMatrix.m_right.Scale(m_sidewaysSpeed * timestep * slowDownFactor); } if (scene->GetKeyState ('D')) { targetMatrix.m_posit += targetMatrix.m_right.Scale(m_sidewaysSpeed * timestep * slowDownFactor); } if (scene->GetKeyState ('Q')) { targetMatrix.m_posit -= targetMatrix.m_up.Scale(m_sidewaysSpeed * timestep * slowDownFactor); } if (scene->GetKeyState ('E')) { targetMatrix.m_posit += targetMatrix.m_up.Scale(m_sidewaysSpeed * timestep * slowDownFactor); } // do camera rotation, only if we do not have anything picked bool buttonState = m_mouseLockState || scene->GetMouseKeyState(0); if (!m_targetPicked && buttonState) { int mouseSpeedX = mouseX - m_mousePosX; int mouseSpeedY = mouseY - m_mousePosY; if (mouseSpeedX > 0) { m_yaw = dMod(m_yaw + m_yawRate, 2.0f * 3.1416f); } else if (mouseSpeedX < 0){ m_yaw = dMod(m_yaw - m_yawRate, 2.0f * 3.1416f); } if (mouseSpeedY > 0) { m_pitch += m_pitchRate; } else if (mouseSpeedY < 0){ m_pitch -= m_pitchRate; } m_pitch = dClamp(m_pitch, dFloat (-80.0f * 3.1416f / 180.0f), dFloat (80.0f * 3.1416f / 180.0f)); } m_mousePosX = mouseX; m_mousePosY = mouseY; dMatrix matrix (dRollMatrix(m_pitch) * dYawMatrix(m_yaw)); dQuaternion rot (matrix); m_camera->SetMatrix (*scene, rot, targetMatrix.m_posit); UpdatePickBody(scene, timestep); }