Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "wx/wx.h"
- #include <wx/glcanvas.h>
- #include "openglcanvas.h"
- #include "GL/gl.h"
- //#include <GL/glut.h>
- #include "GL/freeglut.h"
- #include <wx/accel.h>
- #include "mainframe.h"
- BEGIN_EVENT_TABLE(OpenGLCanvas, wxGLCanvas)
- EVT_PAINT(OpenGLCanvas::OnPaint)
- EVT_SIZE(OpenGLCanvas::OnSize)
- EVT_ERASE_BACKGROUND(OpenGLCanvas::OnEraseBackground)
- EVT_MOTION(OpenGLCanvas::OnMouseMove)
- EVT_LEFT_DOWN(OpenGLCanvas::OnLeftDown)
- EVT_LEFT_UP(OpenGLCanvas::OnLeftUp)
- END_EVENT_TABLE ()
- using namespace std;
- OpenGLCanvas::OpenGLCanvas(wxWindow *parent, wxWindowID id,const wxPoint& pos, const wxSize& size,long style, const wxString& name): wxGLCanvas(parent, id, pos, size, style, name)
- {
- m_parent=(CMainFrame*)parent;
- }
- OpenGLCanvas::~OpenGLCanvas(void)
- {
- }
- void OpenGLCanvas::OnPaint(wxPaintEvent& event)
- {
- wxPaintDC dc(this);
- SetCurrent();
- //instructions dans Draw()
- Draw();
- SwapBuffers();
- }
- void OpenGLCanvas::OnSize(wxSizeEvent& event)
- {
- wxGLCanvas::OnSize(event);
- int w, h;
- GetClientSize(&w, &h);
- glViewport(0, 0, (GLint) w, (GLint) h);
- }
- void OpenGLCanvas::OnEraseBackground(wxEraseEvent& event)
- {
- }
- void OpenGLCanvas::Draw()
- {
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- int w, h;
- GetClientSize(&w, &h);
- cout <<w<<" "<<h<<endl;
- glOrtho(-w/2., w/2., -h/2., h/2., -1., 3.);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
- glClearColor( .3f, .4f, .6f, 1 );
- glClear( GL_COLOR_BUFFER_BIT);
- cout<<"drawing triangles"<<endl;
- /*glBegin(GL_TRIANGLES);
- glVertex2f(0.4f,0.4f);
- glVertex2f(0.2f,0.2f);
- glVertex2f(0.3f,0.3f);*/
- for(int i=0;i<m_parent->num_tri;i++)
- {
- glBegin(GL_TRIANGLES);
- cout<<"triangle "<<i<<endl;
- // triangle plein
- glColor3d(m_parent->tab_tri[i].colour->Red(),m_parent->tab_tri[i].colour->Green(),m_parent->tab_tri[i].colour->Blue()); // the color
- glVertex2i(m_parent->tab_tri[i].p1.x,m_parent->tab_tri[i].p1.y);
- glVertex2i(m_parent->tab_tri[i].p2.x,m_parent->tab_tri[i].p2.y);
- glVertex2i(m_parent->tab_tri[i].p3.x,m_parent->tab_tri[i].p3.y);
- glEnd();
- glBegin(GL_LINE_STRIP);
- // triangle vide
- glColor3d(0,0,0); // black
- glLineWidth(m_parent->tab_tri[i].thickness);
- glVertex2i(m_parent->tab_tri[i].p1.x,m_parent->tab_tri[i].p1.y);
- glVertex2i(m_parent->tab_tri[i].p2.x,m_parent->tab_tri[i].p2.y);
- glVertex2i(m_parent->tab_tri[i].p3.x,m_parent->tab_tri[i].p3.y);
- glEnd();
- }
- }
- void OpenGLCanvas::OnMouseMove(wxMouseEvent& event)
- {
- }
- void OpenGLCanvas::OnLeftUp(wxMouseEvent& event)
- {
- }
- void OpenGLCanvas::OnLeftDown(wxMouseEvent& event)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement