11 #include <osgViewer/Viewer>
12 #include <osgViewer/Renderer>
15 #include "../core/Engine.h"
17 #include "VisualImpactCalculatorOSG.h"
40 RGBf GetBgColor() {
return m_BgColor; }
42 void SetSize(
int w,
int h);
43 IPoint2 GetSize() {
return m_Size; }
76 bool Init(
int argc,
char** argv,
bool bStereo =
false,
int iStereoMode = 0);
77 void SetGraphicsContext(osg::GraphicsContext* pGraphicsContext);
78 osg::GraphicsContext* GetGraphicsContext();
83 void TimerRunning(
bool bRun);
87 void PostDrawEngines();
95 return 1.0 / m_fLastFrameTime;
101 return _timer.delta_s(_initialTick,_frameTick);
106 return m_fLastFrameTime;
140 void OnKey(
int key,
int flags,
vtWindow *pWindow = NULL);
141 void SetKeyStates(
bool *piKeyState) { m_piKeyState = piKeyState; }
142 bool GetKeyState(
int key);
144 void SetWindowSize(
int w,
int h,
vtWindow *pWindow = NULL);
147 bool GetWindowSizeFromOSG();
151 osg::StateSet *GetRootState() {
return m_StateRoot->getOrCreateStateSet(); }
155 m_Windows.
Append(pWindow);
158 if (m_Windows.GetSize() > i)
167 void SetShadowedNode(
vtTransform *pLight, osg::Node *pShadowerNode,
168 osg::Node *pShadowed,
int iRez,
float fDarkness,
int iTextureUnit,
171 void UpdateShadowLightDirection(
vtTransform *pLight);
172 void SetShadowDarkness(
float fDarkness);
173 void SetShadowSphere(
const FSphere &ShadowSphere,
bool bForceRedraw);
174 void ShadowVisibleNode(osg::Node *node,
bool bVis);
175 bool IsShadowVisibleNode(osg::Node *node);
176 void ComputeShadows();
179 void SetHUD(
vtHUD *hud) { m_pHUD = hud; }
180 vtHUD *GetHUD() {
return m_pHUD; }
183 void SetBgColor(
const RGBf &color) {
188 bool IsStereo()
const;;
189 void SetStereoSeparation(
float fSep);
190 float GetStereoSeparation()
const;
191 void SetStereoFusionDistance(
float fDist);
192 float GetStereoFusionDistance();
197 osgViewer::Viewer *getViewer() {
return m_pOsgViewer.get(); }
199 #if VISUAL_IMPACT_CALCULATOR
210 vtEnginePtr m_pRootEngine;
215 vtCameraPtr m_pDefaultCamera;
218 osg::ref_ptr<osgViewer::Viewer> m_pOsgViewer;
219 osg::ref_ptr<osg::GraphicsContext> m_pGraphicsContext;
221 osg::ref_ptr<osg::Group> m_StateRoot;
224 osg::Timer_t _initialTick;
225 osg::Timer_t _lastFrameTick;
226 osg::Timer_t _lastRunningTick;
227 osg::Timer_t _frameTick;
228 double m_fAccumulatedFrameTime, m_fLastFrameTime;
234 osg::ref_ptr<CStructureShadowsOSG> m_pStructureShadowsOSG;
236 #if VISUAL_IMPACT_CALCULATOR
244 float vtGetFrameTime();
245 int vtGetMaxTextureSize();
249 #endif // VTOSG_SCENEH