OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
characterpreview.hpp
Go to the documentation of this file.
1 #ifndef MWRENDER_CHARACTERPREVIEW_H
2 #define MWRENDER_CHARACTERPREVIEW_H
3 
4 #include <osg/ref_ptr>
5 #include <memory>
6 
7 #include <osg/PositionAttitudeTransform>
8 
10 
12 
13 #include "../mwworld/ptr.hpp"
14 
15 namespace osg
16 {
17  class Texture2D;
18  class Camera;
19  class Group;
20  class Viewport;
21 }
22 
23 namespace MWRender
24 {
25 
26  class NpcAnimation;
27  class DrawOnceCallback;
28 
30  {
31  public:
32  CharacterPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, const MWWorld::Ptr& character, int sizeX, int sizeY,
33  const osg::Vec3f& position, const osg::Vec3f& lookAt);
34  virtual ~CharacterPreview();
35 
36  int getTextureWidth() const;
37  int getTextureHeight() const;
38 
39  void redraw();
40 
41  void rebuild();
42 
43  osg::ref_ptr<osg::Texture2D> getTexture();
44 
45  private:
48 
49  protected:
50  virtual bool renderHeadOnly() { return false; }
51  void setBlendMode();
52  virtual void onSetup();
53 
54  osg::ref_ptr<osg::Group> mParent;
56  osg::ref_ptr<osg::Texture2D> mTexture;
57  osg::ref_ptr<osg::Camera> mCamera;
58  osg::ref_ptr<DrawOnceCallback> mDrawOnceCallback;
59 
60  osg::Vec3f mPosition;
61  osg::Vec3f mLookAt;
62 
64 
65  osg::ref_ptr<MWRender::NpcAnimation> mAnimation;
66  osg::ref_ptr<osg::PositionAttitudeTransform> mNode;
67  std::string mCurrentAnimGroup;
68 
69  int mSizeX;
70  int mSizeY;
71  };
72 
74  {
75  public:
76 
77  InventoryPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, const MWWorld::Ptr& character);
78 
79  void updatePtr(const MWWorld::Ptr& ptr);
80 
81  void update(); // Render preview again, e.g. after changed equipment
82  void setViewport(int sizeX, int sizeY);
83 
84  int getSlotSelected(int posX, int posY);
85 
86  protected:
87  osg::ref_ptr<osg::Viewport> mViewport;
88 
89  virtual void onSetup();
90  };
91 
93 
95  {
98 
99  protected:
100 
101  virtual bool renderHeadOnly() { return true; }
102  virtual void onSetup();
103 
104  public:
105  RaceSelectionPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem);
106  virtual ~RaceSelectionPreview();
107 
108  void setAngle(float angleRadians);
109 
110  const ESM::NPC &getPrototype() const {
111  return mBase;
112  }
113 
114  void setPrototype(const ESM::NPC &proto);
115 
116  private:
117 
118  osg::ref_ptr<UpdateCameraCallback> mUpdateCameraCallback;
119 
121  };
122 
123 }
124 
125 #endif
void setAngle(float angleRadians)
Definition: characterpreview.cpp:413
virtual void onSetup()
Definition: characterpreview.cpp:386
Wrapper class that constructs and provides access to the most commonly used resource subsystems...
Definition: resourcesystem.hpp:30
osg::Vec3f mPosition
Definition: characterpreview.hpp:60
void rebuild()
Definition: characterpreview.cpp:240
Definition: characterpreview.hpp:29
float mPitchRadians
Definition: characterpreview.hpp:120
MWWorld::LiveCellRef< ESM::NPC > mRef
Definition: characterpreview.hpp:97
InventoryPreview(osg::Group *parent, Resource::ResourceSystem *resourceSystem, const MWWorld::Ptr &character)
Definition: characterpreview.cpp:261
void redraw()
Definition: characterpreview.cpp:252
CharacterPreview(osg::Group *parent, Resource::ResourceSystem *resourceSystem, const MWWorld::Ptr &character, int sizeX, int sizeY, const osg::Vec3f &position, const osg::Vec3f &lookAt)
Definition: characterpreview.cpp:109
virtual ~RaceSelectionPreview()
Definition: characterpreview.cpp:409
void setBlendMode()
Definition: characterpreview.cpp:224
osg::ref_ptr< osg::PositionAttitudeTransform > mNode
Definition: characterpreview.hpp:66
Definition: characterpreview.hpp:73
void setPrototype(const ESM::NPC &proto)
Definition: characterpreview.cpp:420
osg::ref_ptr< MWRender::NpcAnimation > mAnimation
Definition: characterpreview.hpp:65
ESM::NPC mBase
Definition: characterpreview.hpp:96
virtual bool renderHeadOnly()
Definition: characterpreview.hpp:50
osg::ref_ptr< osg::Texture2D > getTexture()
Definition: characterpreview.cpp:235
Definition: characterpreview.hpp:94
int mSizeY
Definition: characterpreview.hpp:70
osg::ref_ptr< UpdateCameraCallback > mUpdateCameraCallback
Definition: characterpreview.hpp:118
osg::ref_ptr< osg::Viewport > mViewport
Definition: characterpreview.hpp:87
Definition: loadnpc.hpp:23
virtual bool renderHeadOnly()
Definition: characterpreview.hpp:101
osg::Vec3f mLookAt
Definition: characterpreview.hpp:61
CharacterPreview & operator=(const CharacterPreview &)
Definition: characterpreview.cpp:427
std::string mCurrentAnimGroup
Definition: characterpreview.hpp:67
int mSizeX
Definition: characterpreview.hpp:69
osg::ref_ptr< osg::Group > mParent
Definition: characterpreview.hpp:54
osg::ref_ptr< DrawOnceCallback > mDrawOnceCallback
Definition: characterpreview.hpp:58
osg::ref_ptr< osg::Texture2D > mTexture
Definition: characterpreview.hpp:56
void setViewport(int sizeX, int sizeY)
Definition: characterpreview.cpp:266
Resource::ResourceSystem * mResourceSystem
Definition: characterpreview.hpp:55
virtual void onSetup()
Definition: characterpreview.cpp:460
int getTextureHeight() const
Definition: characterpreview.cpp:219
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
virtual ~CharacterPreview()
Definition: characterpreview.cpp:208
const ESM::NPC & getPrototype() const
Definition: characterpreview.hpp:110
osg::ref_ptr< osg::Camera > mCamera
Definition: characterpreview.hpp:57
void updatePtr(const MWWorld::Ptr &ptr)
Definition: characterpreview.cpp:381
MWWorld::Ptr mCharacter
Definition: characterpreview.hpp:63
RaceSelectionPreview(osg::Group *parent, Resource::ResourceSystem *resourceSystem)
Definition: characterpreview.cpp:399
virtual void onSetup()
Definition: characterpreview.cpp:230
void update()
Definition: characterpreview.cpp:280
int getSlotSelected(int posX, int posY)
Definition: characterpreview.cpp:350
int getTextureWidth() const
Definition: characterpreview.cpp:214