Added getInitialInverseViewMatrix() to osg::State.

This commit is contained in:
Robert Osfield
2003-08-25 13:06:15 +00:00
parent ed465a9f53
commit bd798a6c4e
2 changed files with 12 additions and 8 deletions

View File

@@ -87,13 +87,10 @@ class SG_EXPORT State : public Referenced
}
inline void setInitialViewMatrix(const osg::RefMatrix* matrix)
{
if (matrix) _initialViewMatrix = matrix;
else _initialViewMatrix = _identity;
}
inline void setInitialViewMatrix(const osg::RefMatrix* matrix);
inline const osg::Matrix& getInitialViewMatrix() const { return *_initialViewMatrix; }
inline const osg::Matrix& getInitialInverseViewMatrix() const { return _initialInverseViewMatrix; }
inline void applyProjectionMatrix(const osg::RefMatrix* matrix)
{
@@ -620,7 +617,6 @@ class SG_EXPORT State : public Referenced
* if true steps should be taken to complete rendering early.*/
bool getAbortRendering() const { return _abortRenderingPtr!=0?(*_abortRenderingPtr):false; }
void setReportGLErrors(bool flag) { _reportGLErrors = flag; }
bool getReportGLErrors() const { return _reportGLErrors; }
@@ -628,8 +624,6 @@ class SG_EXPORT State : public Referenced
bool checkGLErrors(StateAttribute::GLMode mode) const;
bool checkGLErrors(const StateAttribute* attribute) const;
protected:
virtual ~State();
@@ -642,6 +636,8 @@ class SG_EXPORT State : public Referenced
ref_ptr<const RefMatrix> _projection;
ref_ptr<const RefMatrix> _modelView;
Matrix _initialInverseViewMatrix;
ref_ptr<DisplaySettings> _displaySettings;
bool* _abortRenderingPtr;

View File

@@ -112,6 +112,14 @@ void State::reset()
setActiveTextureUnit(0);
}
void State::setInitialViewMatrix(const osg::RefMatrix* matrix)
{
if (matrix) _initialViewMatrix = matrix;
else _initialViewMatrix = _identity;
_initialInverseViewMatrix.invert(*_initialViewMatrix);
}
void State::pushStateSet(const StateSet* dstate)
{
_drawStateStack.push_back(dstate);