Archived

This topic is now archived and is closed to further replies.

duke

PushMatrix class

Recommended Posts

Simple class I thought I'd share with the world, it is not a new concept but maybe some newbie never thought of it.
	class PushMatrix
	{
	public:
		PushMatrix() : m_bPopped(false)
		{
			glPushMatrix();
		}

		~PushMatrix()
		{
			PopMatrix();
		}

		void PopMatrix()
		{
			if(!m_bPopped)
			{
				glPopMatrix();
				m_bPopped = true;
			}
		}
	private:
		bool m_bPopped;  // if true matrix has already been popped

	};
[edited by - duke on August 7, 2003 8:47:35 AM] [edited by - duke on August 7, 2003 8:48:14 AM]

Share this post


Link to post
Share on other sites
Oh and the usage for those it isn''t clear to.

void draw()
{
PushMatrix pm;

// issue gl commands
}

matrix is automatically popped whenever the function returns at any point. You can do the same for pushattrib too

Share this post


Link to post
Share on other sites