1 #ifndef OPENMW_MWRENDER_RENDERINGMANAGER_H
2 #define OPENMW_MWRENDER_RENDERINGMANAGER_H
18 class PositionAttitudeTransform;
23 class IntersectionVisitor;
76 const Fallback::Map* fallback,
const std::string& resourcePath);
106 void setSunColour(
const osg::Vec4f& diffuse,
const osg::Vec4f& specular);
110 void configureFog(
float fogDepth,
float underwaterFog,
float dlFactor,
float dlOffset,
const osg::Vec4f& colour);
129 void screenshot(osg::Image* image,
int w,
int h, osg::Matrixd cameraTransform=osg::Matrixd());
130 bool screenshot360(osg::Image* image, std::string settingStr);
141 RayResult castRay(
const osg::Vec3f& origin,
const osg::Vec3f& dest,
bool ignorePlayer,
bool ignoreActors=
false);
156 void spawnEffect(
const std::string &model,
const std::string &texture,
const osg::Vec3f &worldPosition,
float scale = 1.f,
bool isMagicVFX =
true);
164 void update(
float dt,
bool paused);
224 osg::ref_ptr<osgUtil::IntersectionVisitor>
getIntersectionVisitor(osgUtil::Intersector* intersector,
bool ignorePlayer,
bool ignoreActors);
243 std::unique_ptr<SkyManager>
mSky;
bool toggleRenderMode(RenderMode mode)
Definition: renderingmanager.cpp:493
const osg::Vec3f & getCameraPosition() const
Definition: renderingmanager.cpp:1279
std::unique_ptr< SkyManager > mSky
Definition: renderingmanager.hpp:243
Wrapper class that constructs and provides access to the most commonly used resource subsystems...
Definition: resourcesystem.hpp:30
RenderingManager(osgViewer::Viewer *viewer, osg::ref_ptr< osg::Group > rootNode, Resource::ResourceSystem *resourceSystem, SceneUtil::WorkQueue *workQueue, const Fallback::Map *fallback, const std::string &resourcePath)
Definition: renderingmanager.cpp:192
void removePlayer(const MWWorld::Ptr &player)
Definition: renderingmanager.cpp:614
float mViewDistance
Definition: renderingmanager.hpp:265
RayResult castCameraToViewportRay(const float nX, const float nY, float maxDistance, bool ignorePlayer, bool ignoreActors=false)
Definition: renderingmanager.cpp:1029
osg::ref_ptr< osgUtil::IntersectionVisitor > mIntersectionVisitor
Definition: renderingmanager.hpp:226
osg::ref_ptr< SceneUtil::UnrefQueue > mUnrefQueue
Definition: renderingmanager.hpp:234
RayResult castRay(const osg::Vec3f &origin, const osg::Vec3f &dest, bool ignorePlayer, bool ignoreActors=false)
Definition: renderingmanager.cpp:1018
osg::Vec4f mUnderwaterColor
Definition: renderingmanager.hpp:256
bool toggleVanityMode(bool enable)
Definition: renderingmanager.cpp:1294
void renderPlayer(const MWWorld::Ptr &player)
Definition: renderingmanager.cpp:1105
Definition: animation.hpp:85
The basic interface for a terrain world. How the terrain chunks are paged and displayed is up to the ...
Definition: world.hpp:52
Definition: renderingmanager.hpp:72
A work queue that users can push work items onto, to be completed by one or more background threads...
Definition: workqueue.hpp:48
void emitWaterRipple(const osg::Vec3f &pos)
Definition: renderingmanager.cpp:1142
osg::Vec3f mHitNormalWorld
Definition: renderingmanager.hpp:135
osg::Uniform * mUniformNear
Definition: renderingmanager.hpp:87
float mNearClip
Definition: renderingmanager.hpp:264
void scaleObject(const MWWorld::Ptr &ptr, const osg::Vec3f &scale)
Definition: renderingmanager.cpp:635
float getNearClipDistance() const
Definition: renderingmanager.cpp:1229
float mFieldOfView
Definition: renderingmanager.hpp:270
void togglePlayerLooking(bool enable)
Definition: renderingmanager.cpp:1304
contains settings imported from the Morrowind INI file.
Definition: fallback.hpp:12
float getCameraDistance() const
Definition: renderingmanager.cpp:1269
osg::ref_ptr< osgUtil::IntersectionVisitor > getIntersectionVisitor(osgUtil::Intersector *intersector, bool ignorePlayer, bool ignoreActors)
Definition: renderingmanager.cpp:999
Animation * getAnimation(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:1070
void reportStats() const
Definition: renderingmanager.cpp:1192
osg::ref_ptr< osg::Light > mSunLight
Definition: renderingmanager.hpp:236
Definition: renderinginterface.hpp:9
osg::Vec3f mCurrentCameraPos
Definition: renderingmanager.hpp:248
osg::ref_ptr< osg::Group > mSceneRoot
Definition: renderingmanager.hpp:230
TerrainStorage * mTerrainStorage
Definition: renderingmanager.hpp:242
int skyGetSecundaPhase() const
Definition: renderingmanager.cpp:420
float getTerrainHeightAt(const osg::Vec3f &pos)
Definition: renderingmanager.cpp:1234
~RenderingManager()
Definition: renderingmanager.cpp:336
The SkyManager handles rendering of the sky domes, celestial bodies as well as other objects that nee...
Definition: sky.hpp:117
void skySetMoonColour(bool red)
Definition: renderingmanager.cpp:425
void resetCamera()
Definition: renderingmanager.cpp:1264
void moveObject(const MWWorld::Ptr &ptr, const osg::Vec3f &pos)
Definition: renderingmanager.cpp:630
void enableTerrain(bool enable)
Definition: renderingmanager.cpp:476
Definition: landmanager.hpp:17
float mLandFogStart
Definition: renderingmanager.hpp:252
bool screenshot360(osg::Image *image, std::string settingStr)
Definition: renderingmanager.cpp:691
void updatePtr(const MWWorld::Ptr &old, const MWWorld::Ptr &updated)
Definition: renderingmanager.cpp:1048
void configureFog(const ESM::Cell *cell)
Definition: renderingmanager.cpp:522
void clear()
Clear all savegame-specific data.
Definition: renderingmanager.cpp:1063
void setFogColor(const osg::Vec4f &color)
Definition: renderingmanager.cpp:1185
LandManager * getLandManager() const
Definition: renderingmanager.cpp:1366
Definition: renderingmanager.hpp:132
std::set< std::pair< std::string, std::string > > CategorySettingVector
Definition: settings.hpp:11
Connects the ESM Store used in OpenMW with the ESMTerrain storage.
Definition: terrainstorage.hpp:16
bool mBorders
Definition: renderingmanager.hpp:272
void changeVanityModeScale(float factor)
Definition: renderingmanager.cpp:1309
float mFirstPersonFieldOfView
Definition: renderingmanager.hpp:271
void removeWaterRippleEmitter(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:1137
void updateProjectionMatrix()
Definition: renderingmanager.cpp:1147
osg::Vec4f mFogColor
Definition: renderingmanager.hpp:259
osg::ref_ptr< SceneUtil::PositionAttitudeTransform > mPlayerNode
Definition: renderingmanager.hpp:246
void setSunColour(const osg::Vec4f &diffuse, const osg::Vec4f &specular)
Definition: renderingmanager.cpp:440
void addWaterRippleEmitter(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:1132
void rebuildPtr(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:1114
float mUnderwaterWeight
Definition: renderingmanager.hpp:257
void preloadCommonAssets()
Definition: renderingmanager.cpp:367
bool mHit
Definition: renderingmanager.hpp:134
float mUnderwaterFogEnd
Definition: renderingmanager.hpp:255
float mFieldOfViewOverride
Definition: renderingmanager.hpp:269
void operator=(const RenderingManager &)
void screenshot(osg::Image *image, int w, int h, osg::Matrixd cameraTransform=osg::Matrixd())
Take a screenshot of w*h onto the given image, not including the GUI.
Definition: renderingmanager.cpp:887
void removeObject(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:643
osg::Group * getLightRoot()
Definition: renderingmanager.cpp:390
void skySetDate(int day, int month)
Definition: renderingmanager.cpp:410
osg::ref_ptr< NpcAnimation > mPlayerAnimation
Definition: renderingmanager.hpp:245
void exportSceneGraph(const MWWorld::Ptr &ptr, const std::string &filename, const std::string &format)
Definition: renderingmanager.cpp:1357
float mRatio
Definition: renderingmanager.hpp:138
void togglePOV()
Definition: renderingmanager.cpp:1284
osg::ref_ptr< SceneUtil::WorkQueue > mWorkQueue
Definition: renderingmanager.hpp:233
void removeCell(const MWWorld::CellStore *store)
Definition: renderingmanager.cpp:465
Mutable state of a cell.
Definition: cellstore.hpp:51
void resetFieldOfView()
reset a previous overrideFieldOfView() call, i.e. revert to field of view specified in the settings f...
Definition: renderingmanager.cpp:1348
void setWaterHeight(float level)
Definition: renderingmanager.cpp:655
void setSunDirection(const osg::Vec3f &direction)
Definition: renderingmanager.cpp:447
void addCell(const MWWorld::CellStore *store)
Definition: renderingmanager.cpp:456
float mUnderwaterIndoorFog
Definition: renderingmanager.hpp:258
MWRender::Objects & getObjects()
Definition: renderingmanager.cpp:342
void configureAmbient(const ESM::Cell *cell)
Definition: renderingmanager.cpp:430
std::unique_ptr< EffectManager > mEffectManager
Definition: renderingmanager.hpp:244
Pointer to a const LiveCellRef.
Definition: ptr.hpp:90
SkyManager * getSkyManager()
Definition: renderingmanager.cpp:566
osg::Vec3f mHitPointWorld
Definition: renderingmanager.hpp:136
std::unique_ptr< Pathgrid > mPathgrid
Definition: renderingmanager.hpp:238
Definition: loadcell.hpp:64
SceneUtil::WorkQueue * getWorkQueue()
Definition: renderingmanager.cpp:352
void setupPlayer(const MWWorld::Ptr &player)
Definition: renderingmanager.cpp:1086
osg::ref_ptr< StateUpdater > mStateUpdater
Definition: renderingmanager.hpp:250
osg::ref_ptr< osg::Group > mRootNode
Definition: renderingmanager.hpp:229
void processChangedSettings(const Settings::CategorySettingVector &settings)
Definition: renderingmanager.cpp:1204
void setNightEyeFactor(float factor)
Definition: renderingmanager.cpp:395
void spawnEffect(const std::string &model, const std::string &texture, const osg::Vec3f &worldPosition, float scale=1.f, bool isMagicVFX=true)
Definition: renderingmanager.cpp:1053
double getReferenceTime() const
Definition: renderingmanager.cpp:385
Camera control.
Definition: camera.hpp:24
Resource::ResourceSystem * getResourceSystem()
Definition: renderingmanager.cpp:347
osg::Vec3f getHalfExtents(const MWWorld::ConstPtr &object) const
Definition: renderingmanager.cpp:1325
std::unique_ptr< Water > mWater
Definition: renderingmanager.hpp:240
void notifyWorldSpaceChanged()
Clear all worldspace-specific data.
Definition: renderingmanager.cpp:1058
osg::ref_ptr< osgViewer::Viewer > mViewer
Definition: renderingmanager.hpp:228
void rotateObject(const MWWorld::Ptr &ptr, const osg::Quat &rot)
Definition: renderingmanager.cpp:619
bool mFieldOfViewOverridden
Definition: renderingmanager.hpp:268
bool toggleBorders()
Definition: renderingmanager.cpp:486
MWWorld::Ptr mHitObject
Definition: renderingmanager.hpp:137
bool vanityRotateCamera(const float *rot)
Definition: renderingmanager.cpp:1239
Camera * getCamera()
Definition: renderingmanager.cpp:1274
void allowVanityMode(bool allow)
Definition: renderingmanager.cpp:1299
void updateTextureFiltering()
Definition: renderingmanager.cpp:1159
osg::Vec4f mAmbientColor
Definition: renderingmanager.hpp:261
float mLandFogEnd
Definition: renderingmanager.hpp:253
Handles unreferencing of objects through the WorkQueue. Typical use scenario would be the main thread...
Definition: unrefqueue.hpp:24
osg::Vec4f getScreenBounds(const MWWorld::Ptr &ptr)
Get the bounding box of the given object in screen coordinates as (minX, minY, maxX, maxY), with (0,0) being the top left corner.
Definition: renderingmanager.cpp:929
float mNightEyeFactor
Definition: renderingmanager.hpp:262
void setSkyEnabled(bool enabled)
Definition: renderingmanager.cpp:481
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
std::unique_ptr< Terrain::World > mTerrain
Definition: renderingmanager.hpp:241
void update(float dt, bool paused)
Definition: renderingmanager.cpp:571
float mUnderwaterFogStart
Definition: renderingmanager.hpp:254
void enable(CodeContainer &code, Literals &literals, const std::string &id)
Definition: generator.cpp:870
Terrain::World * getTerrain()
Definition: renderingmanager.cpp:362
void setAmbientColour(const osg::Vec4f &colour)
Definition: renderingmanager.cpp:404
bool mDistantFog
Definition: renderingmanager.hpp:266
Resource::ResourceSystem * mResourceSystem
Definition: renderingmanager.hpp:231
void setCameraDistance(float dist, bool adjust, bool override)
Definition: renderingmanager.cpp:1248
void updateAmbient()
Definition: renderingmanager.cpp:1175
void renderCameraToImage(osg::Camera *camera, osg::Image *image, int w, int h)
Definition: renderingmanager.cpp:849
osg::Uniform * mUniformFar
Definition: renderingmanager.hpp:88
RenderMode
Definition: rendermode.hpp:7
void updatePlayerPtr(const MWWorld::Ptr &ptr)
Definition: renderingmanager.cpp:604
SceneUtil::UnrefQueue * getUnrefQueue()
Definition: renderingmanager.cpp:357
bool mDistantTerrain
Definition: renderingmanager.hpp:267
void overrideFieldOfView(float val)
temporarily override the field of view with given value.
Definition: renderingmanager.cpp:1315
void togglePreviewMode(bool enable)
Definition: renderingmanager.cpp:1289
std::unique_ptr< Objects > mObjects
Definition: renderingmanager.hpp:239
Definition: objects.hpp:59
int skyGetMasserPhase() const
Definition: renderingmanager.cpp:415
void setWaterEnabled(bool enabled)
Definition: renderingmanager.cpp:649
std::unique_ptr< Camera > mCamera
Definition: renderingmanager.hpp:247