#ifndef GLCOMPILEVISITOR_H
#define GLCOMPILEVISITOR_H

#include "SceneGraphVisitor.h"


namespace nsSceneGraph {

class GlCompileVisitor : public SceneGraphVisitor
{
	private:
		Vector3F calculateNormalizedNormalVector(Vertex3F *a, Vertex3F *b, Vertex3F *c);

	protected:
		void calculateOneNormalForEachFace(VertexArray *array, std::vector<Vector3F> *normals);

	public:
		virtual ~GlCompileVisitor(void);

		virtual void visit(Group *group);
		virtual void visit(Material *material);
		virtual void visit(Transform *transform);
		virtual void visit(VertexArray *vertexArray) = 0;
};


}

#endif

