00001 /*************************************************************************** 00002 glorbitalview.h - description 00003 ------------------- 00004 begin : Thu Nov 4 2004 00005 copyright : (C) 2004-2006 by Ben Swerts 00006 email : bswerts@users.sourceforge.net 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00020 00021 #ifndef GLORBITALVIEW_H 00022 #define GLORBITALVIEW_H 00023 00025 00026 // C++ forward class declarations 00027 #include <vector> 00028 00029 // Qt forward class declarations 00030 class QColor; 00031 #include <qmutex.h> 00032 00033 // Xbrabo header files 00034 #include "point3d.h" 00035 00036 // Base class header file 00037 #include <glview.h> 00038 00040 class GLOrbitalView : public GLView 00041 { 00042 Q_OBJECT 00043 00044 public: 00045 // constructor/destructor 00046 GLOrbitalView(QWidget* parent = 0, const char* name = 0); // constructor 00047 ~GLOrbitalView(); // destructor 00048 00049 // public member functions 00050 void updateColors(QColor pos, QColor neg); 00051 std::vector<Point3D<float> >* getCoordinates(); // returns a pointer to the coords vector 00052 QMutex* getMutex(); // returns a pointer to the mutex used for accessing the coords vector 00053 void setMaximumRadius(const double radius); // updates the maximum radius of the coordinates 00054 00055 protected: 00056 void drawScene(); // does the local drawing of the scene 00057 float boundingSphereRadius(); // calculates the radius of the bounding sphere 00058 00059 private: 00060 // private enums 00061 //enum Precision{PRECISION_UNKNOWN, PRECISION_FLOAT, PRECISION_DOUBLE, PRECISION_LONG_DOUBLE}; 00062 00063 // private member variables 00064 QColor colorPositive; 00065 QColor colorNegative; 00066 std::vector<Point3D<float> > coords; 00067 QMutex mutex; 00068 float maximumRadius; 00069 float scaleFactor; 00070 }; 00071 00072 #endif 00073