00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __SGL_UNPROJECT_HPP
00027 #define __SGL_UNPROJECT_HPP
00028
00029 #include <sgl.h>
00030 #include <sglGroup.hpp>
00031
00075 class SGL_DLL_API sglUnProject : public sglGroup
00076 {
00077 public:
00082 sglUnProject(bool fixedPixelScale = false);
00083
00085 virtual ~sglUnProject();
00086
00090 void setFixedPixelScale(bool on) { m_pixel_scale = on; }
00091
00095 bool getFixedPixelScale() const { return m_pixel_scale; }
00096
00097
00098 virtual sglBound::IntersectResultEnum intersect(
00099 sglIntersectf &isector) const;
00100
00101
00102 virtual sglBound::IntersectResultEnum intersect(
00103 sglIntersectd &isector) const;
00104
00105
00106 virtual void pick(sglPickf &pick_state, unsigned int cull_flags) const;
00107
00108
00109 virtual void pick(sglPickd &pick_state, unsigned int cull_flags) const;
00110
00111
00112 virtual sglNode *clone(unsigned int mode) const;
00113
00114
00115 virtual void printInfo(ostream &ostrm, const char *indent_string) const;
00116
00117 protected:
00118
00119 virtual void cull(sglCull<float> &trav_state,
00120 unsigned int cull_flags) const;
00121
00122
00123 virtual void cull(sglCull<double> &trav_state,
00124 unsigned int cull_flags) const;
00125
00126 void copyTo(sglUnProject *dst, unsigned int mode) const;
00127
00128 private:
00129 sglUnProject(const sglUnProject &);
00130 sglUnProject &operator=(const sglUnProject &);
00131
00132 private:
00133 bool m_pixel_scale;
00134 };
00135
00136 #endif