X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fgraph3dview.h;h=90b6d44191f1df25788af53b65c1e2f666a8997e;hp=2d2bc792159fbc1ba4cc825733fe16b3b6e50701;hb=c0f892798de8f89715266150f7d8e413f2cf29fe;hpb=ba8635d790ee847d9746c6da24b60bd4cb6d9116 diff --git a/src/graph3dview.h b/src/graph3dview.h index 2d2bc79..90b6d44 100644 --- a/src/graph3dview.h +++ b/src/graph3dview.h @@ -9,7 +9,7 @@ ** 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.9 2002/05/28 18:43:16 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 @@ -36,30 +36,43 @@ #include -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; + GLfloat m_dXRotate; GLfloat m_dYRotate; - std::vector m_vecVerts; - std::vector m_vecNorms; - GLint m_nVerts; - GLboolean m_bUseVertexArrays; - GLboolean m_bDoubleBuffer; - GLboolean m_bSmooth; - GLboolean m_bLighting; + GLfloat m_dZRotate; + bool m_bUseVertexArrays; + bool m_bDoubleBuffer; + bool m_bSmooth; + bool m_bLighting; + bool m_bWireframe; + bool m_bColor; + enum { + DISPLAYLIST_COLOR = 1, + DISPLAYLIST_NO_COLOR = 2, + }; + + double m_dGraphMin; + double m_dGraphMax; + double m_dColorScaleMin; + double m_dColorScaleMax; + bool m_bColorScaleMinSet; + bool m_bColorScaleMaxSet; void Draw(); void DrawSurface(); + void CreateDisplayList(); void InitMaterials(); void InitGL(); @@ -81,6 +94,8 @@ private: { return m_pFrame; } #endif + void intensityToColor (double dIntensity, GLfloat* vecColor); + public: Graph3dFileView(); virtual ~Graph3dFileView(); @@ -92,13 +107,20 @@ public: 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(wxView::GetDocument()); } }; @@ -114,7 +136,7 @@ private: 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);