mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-01 13:20:29 +00:00
Lua Bindings: Add view distance bindings to camera
This commit is contained in:
parent
8bf5de69ad
commit
882245b935
@ -92,6 +92,13 @@ namespace MWLua
|
|||||||
api["getFieldOfView"] = [renderingManager]() { return osg::DegreesToRadians(renderingManager->getFieldOfView()); };
|
api["getFieldOfView"] = [renderingManager]() { return osg::DegreesToRadians(renderingManager->getFieldOfView()); };
|
||||||
api["setFieldOfView"] = [renderingManager](float v) { renderingManager->setFieldOfView(osg::RadiansToDegrees(v)); };
|
api["setFieldOfView"] = [renderingManager](float v) { renderingManager->setFieldOfView(osg::RadiansToDegrees(v)); };
|
||||||
|
|
||||||
|
api["getBaseViewDistance"] = []()
|
||||||
|
{
|
||||||
|
return std::max(0.f, Settings::Manager::getFloat("viewing distance", "Camera"));
|
||||||
|
};
|
||||||
|
api["getViewDistance"] = [renderingManager]() { return renderingManager->getViewDistance(); };
|
||||||
|
api["setViewDistance"] = [renderingManager](float d) { renderingManager->setViewDistance(d, true); };
|
||||||
|
|
||||||
api["getViewTransform"] = [camera]() { return LuaUtil::TransformM{camera->getViewMatrix()}; };
|
api["getViewTransform"] = [camera]() { return LuaUtil::TransformM{camera->getViewMatrix()}; };
|
||||||
|
|
||||||
api["viewportToWorldVector"] = [camera, renderingManager](osg::Vec2f pos) -> osg::Vec3f
|
api["viewportToWorldVector"] = [camera, renderingManager](osg::Vec2f pos) -> osg::Vec3f
|
||||||
|
@ -1293,10 +1293,7 @@ namespace MWRender
|
|||||||
}
|
}
|
||||||
else if (it->first == "Camera" && it->second == "viewing distance")
|
else if (it->first == "Camera" && it->second == "viewing distance")
|
||||||
{
|
{
|
||||||
mViewDistance = Settings::Manager::getFloat("viewing distance", "Camera");
|
setViewDistance(Settings::Manager::getFloat("viewing distance", "Camera"));
|
||||||
if(!Settings::Manager::getBool("use distant fog", "Fog"))
|
|
||||||
mStateUpdater->setFogEnd(mViewDistance);
|
|
||||||
updateProjection = true;
|
|
||||||
}
|
}
|
||||||
else if (it->first == "General" && (it->second == "texture filter" ||
|
else if (it->first == "General" && (it->second == "texture filter" ||
|
||||||
it->second == "texture mipmap" ||
|
it->second == "texture mipmap" ||
|
||||||
@ -1346,9 +1343,17 @@ namespace MWRender
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float RenderingManager::getNearClipDistance() const
|
void RenderingManager::setViewDistance(float distance, bool delay)
|
||||||
{
|
{
|
||||||
return mNearClip;
|
mViewDistance = distance;
|
||||||
|
|
||||||
|
if (delay)
|
||||||
|
{
|
||||||
|
mUpdateProjectionMatrix = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateProjectionMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
float RenderingManager::getTerrainHeightAt(const osg::Vec3f &pos)
|
float RenderingManager::getTerrainHeightAt(const osg::Vec3f &pos)
|
||||||
|
@ -206,7 +206,10 @@ namespace MWRender
|
|||||||
|
|
||||||
void processChangedSettings(const Settings::CategorySettingVector& settings);
|
void processChangedSettings(const Settings::CategorySettingVector& settings);
|
||||||
|
|
||||||
float getNearClipDistance() const;
|
float getNearClipDistance() const { return mNearClip; }
|
||||||
|
float getViewDistance() const { return mViewDistance; }
|
||||||
|
|
||||||
|
void setViewDistance(float distance, bool delay = false);
|
||||||
|
|
||||||
float getTerrainHeightAt(const osg::Vec3f& pos);
|
float getTerrainHeightAt(const osg::Vec3f& pos);
|
||||||
|
|
||||||
|
@ -186,6 +186,19 @@
|
|||||||
-- @function [parent=#camera] setFieldOfView
|
-- @function [parent=#camera] setFieldOfView
|
||||||
-- @param #number fov Field of view vertical angle in radians
|
-- @param #number fov Field of view vertical angle in radians
|
||||||
|
|
||||||
|
--- Return base view distance.
|
||||||
|
-- @function [parent=#camera] getBaseViewDistance
|
||||||
|
-- @return #number
|
||||||
|
|
||||||
|
--- Return current view distance.
|
||||||
|
-- @function [parent=#camera] getViewDistance
|
||||||
|
-- @return #number
|
||||||
|
|
||||||
|
--- Set view distance.
|
||||||
|
--- Takes effect on the next frame.
|
||||||
|
-- @function [parent=#camera] setViewDistance
|
||||||
|
-- @param #number distance View distance in game units
|
||||||
|
|
||||||
--- Get world to local transform for the camera.
|
--- Get world to local transform for the camera.
|
||||||
-- @function [parent=#camera] getViewTransform
|
-- @function [parent=#camera] getViewTransform
|
||||||
-- @return openmw.util#Transform
|
-- @return openmw.util#Transform
|
||||||
|
Loading…
x
Reference in New Issue
Block a user