** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: graph3dview.h,v 1.1 2001/01/30 07:32:13 kevin Exp $
+** $Id: graph3dview.h,v 1.11 2002/06/03 16:57:22 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
#include <GL/glu.h>
-typedef GLfloat glTripleFloat[3];
-
class Graph3dFileCanvas;
class Graph3dFileView : public wxView
{
- friend Graph3dFileCanvas;
+ friend class Graph3dFileCanvas;
private:
DECLARE_DYNAMIC_CLASS(Graph3dFileView)
DECLARE_EVENT_TABLE()
wxMenu* m_pFileMenu;
+ wxMenu *m_pViewMenu;
+ wxStatusBar* m_pStatusBar;
+
+ Graph3dFileCanvas* m_pCanvas;
GLfloat m_dXRotate;
GLfloat m_dYRotate;
- std::vector<glTripleFloat> m_vecVerts;
- std::vector<glTripleFloat> m_vecNorms;
- GLint m_nVerts;
- GLboolean m_bUseVertexArrays;
- GLboolean m_bDoubleBuffer;
- GLboolean m_bSmooth;
- GLboolean m_bLighting;
+ GLfloat m_dZRotate;
+ bool m_bDoubleBuffer;
+ bool m_bSmooth;
+ bool m_bWireframe;
+ bool m_bLighting;
+ bool m_bColor;
+ bool m_bUseVertexArrays;
+ bool m_bColorScaleMinSet;
+ bool m_bColorScaleMaxSet;
+ enum {
+ DISPLAYLIST_COLOR = 1,
+ DISPLAYLIST_NO_COLOR = 2,
+ };
+
+ double m_dGraphMin;
+ double m_dGraphMax;
+ double m_dColorScaleMin;
+ double m_dColorScaleMax;
void Draw();
void DrawSurface();
+ void CreateDisplayList();
void InitMaterials();
void InitGL();
- Graph3dFileCanvas* m_pCanvas;
Graph3dFileCanvas *CreateCanvas (wxFrame* parent);
#if CTSIM_MDI
{ return m_pFrame; }
#endif
+ void intensityToColor (double dIntensity, GLfloat* vecColor);
+
public:
Graph3dFileView();
virtual ~Graph3dFileView();
void OnUpdate(wxView *sender, wxObject *hint = NULL);
bool OnClose (bool deleteWindow = true);
void OnProperties (wxCommandEvent& event);
-
+ void OnLighting (wxCommandEvent& event);
+ void OnWireframe (wxCommandEvent& event);
+ void OnColor (wxCommandEvent& event);
+ void OnSmooth (wxCommandEvent& event);
+ void OnScaleSet (wxCommandEvent& event);
+ void OnScaleAuto (wxCommandEvent& event);
+ void OnScaleFull (wxCommandEvent& event);
+
#if CTSIM_MDI
wxDocMDIChildFrame* getFrame() { return m_pFrame; }
#else
wxDocChildFrame* getFrame() { return m_pFrame; }
#endif
-
+ Graph3dFileCanvas* getCanvas() { return m_pCanvas; }
Graph3dFileDocument* GetDocument()
{ return dynamic_cast<Graph3dFileDocument*>(wxView::GetDocument()); }
};
public:
Graph3dFileCanvas (Graph3dFileView* view, wxWindow *parent, const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = 0, int* gl_attrib = NULL);
+ const wxSize& size = wxDefaultSize, long style = 0);
virtual ~Graph3dFileCanvas();
virtual void OnDraw(wxDC& dc);
+ virtual wxSize GetBestSize() const;
void OnSize(wxSizeEvent& event);
void OnEraseBackground(wxEraseEvent& event);
void OnChar(wxKeyEvent& event);