45 lines
987 B
C
45 lines
987 B
C
|
#ifndef __COLORDISPLAY_H__
|
||
|
#define __COLORDISPLAY_H__
|
||
|
#include "show/colormanager.h"
|
||
|
#include "limits.h"
|
||
|
#include <set>
|
||
|
using std::set;
|
||
|
|
||
|
class colordisplay {
|
||
|
public:
|
||
|
virtual ~colordisplay() {}
|
||
|
inline void setColorManager(ColorManager *_cm) { cm = _cm; }
|
||
|
|
||
|
void displayLOD(float lod) {
|
||
|
if (cm) cm->load();
|
||
|
drawLOD(lod);
|
||
|
if (cm) cm->unload();
|
||
|
};
|
||
|
|
||
|
void display() {
|
||
|
if (cm) cm->load();
|
||
|
draw();
|
||
|
if (cm) cm->unload();
|
||
|
}
|
||
|
|
||
|
virtual void selectRay(float * &point) {};
|
||
|
virtual void selectRay(double * &point) {};
|
||
|
virtual void selectRay(set<float*> &points, int depth=INT_MAX) {};
|
||
|
virtual void selectRay(set<double*> &points, int depth=INT_MAX) {};
|
||
|
virtual void selectRayBrushSize(set<float*> &points, int brushsize) {};
|
||
|
virtual void selectRayBrushSize(set<double*> &points, int brushsize) {};
|
||
|
|
||
|
virtual void cycleLOD() {};
|
||
|
|
||
|
protected:
|
||
|
|
||
|
virtual void drawLOD(float lod) = 0;
|
||
|
virtual void draw() = 0;
|
||
|
|
||
|
ColorManager *cm;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|