private bool FrameStarted(FrameEvent evt) { // Check camera height RaySceneQuery raySceneQuery = sceneMgr.CreateRayQuery(new Ray(camera.Position + new Vector3(0, 1000000, 0), Vector3.NEGATIVE_UNIT_Y)); RaySceneQueryResult qryResult = raySceneQuery.Execute(); RaySceneQueryResult.Iterator it = qryResult.Begin(); if (it != qryResult.End() && it.Value.worldFragment != null) { if (camera.DerivedPosition.y < it.Value.worldFragment.singleIntersection.y + 30) { camera.SetPosition(camera.Position.x, it.Value.worldFragment.singleIntersection.y + 30, camera.Position.z); } it.MoveNext(); } //SkyX::AtmosphereManager::Options SkyXOptions = mSkyX->getAtmosphereManager()->getOptions(); // Time if (!showInformation) { manager.TimeMultiplier = 0.1f; } else { manager.TimeMultiplier = 0.0f; } textArea.Caption = GetConfigString(); manager.Update(evt.timeSinceLastFrame); return(true); }
private bool Root_FrameStarted(FrameEvent evt) { //SceneManager sm = OgreWindow.Instance.mSceneMgr; //Root root = OgreWindow.Instance.mRoot; //Camera cam = OgreWindow.Instance.mCamera; //// Check camera height //RaySceneQuery raySceneQuery = sm.CreateRayQuery(new Ray(cam.Position + new Mogre.Vector3(0, 1000000, 0), Mogre.Vector3.NEGATIVE_UNIT_Y)); //RaySceneQueryResult qryResult = raySceneQuery.Execute(); //RaySceneQueryResult.Iterator it = qryResult.Begin(); //if (it != qryResult.End() && it.Value.worldFragment != null) //{ // if (cam.DerivedPosition.y < it.Value.worldFragment.singleIntersection.y + 30) // { // cam.SetPosition(cam.Position.x, // it.Value.worldFragment.singleIntersection.y + 30, // cam.Position.z); // } // it.MoveNext(); //} skyManager.TimeMultiplier = 1f; skyManager.Update(evt.timeSinceLastFrame); try { ClientPluginManager.FrameStartedHooks(interpolation); } catch { log("[ main() ] FrameStarted exception while doing plugins' hooks"); } return(true); }