gldraw.h

Wed, 10 Apr 2013 01:51:35 +0300

author
Santeri Piippo <crimsondusk64@gmail.com>
date
Wed, 10 Apr 2013 01:51:35 +0300
changeset 87
8dbf0fdf3374
parent 68
c637b172d565
child 104
6e29bb0e83c5
permissions
-rw-r--r--

Split some stuff out of the edit tool bar into move and object tool bars. The object tool bar is now located on the left side of the screen as the top one is running out of space.

/*
 *  LDForge: LDraw parts authoring CAD
 *  Copyright (C) 2013 Santeri `arezey` Piippo
 *  
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef __GLDRAW_H__
#define __GLDRAW_H__

#include <QGLWidget>
#include "common.h"
#include "ldtypes.h"

class renderer : public QGLWidget {
	Q_OBJECT
	
public:
	renderer (QWidget* parent = nullptr);
	void hardRefresh ();
	void compileObjects ();
	void setBackground ();
	
	double fRotX, fRotY, fRotZ;
	QPoint lastPos;
	double fZoom;

protected:
	void initializeGL ();
	void resizeGL (int w, int h);
	void paintGL ();
	
	void mouseMoveEvent (QMouseEvent *event);

private:
	GLuint uObjList, uObjListBack;
	void compileOneObject (LDObject* obj, bool bBackSide);
	template<class T> void compileSubObject (LDObject* obj, const bool bBackSide,
		const GLenum eGLType, const short dVerts);
	void compileVertex (vertex& vrt);
	void clampAngle (double& fAngle);
	void setObjectColor (LDObject* obj, bool bBackSide);
	void setMainColor ();
};

#endif // __GLDRAW_H__

mercurial