00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SO_DEPTH_OFFSET_ELEMENT_H
00025 #define SO_DEPTH_OFFSET_ELEMENT_H
00026
00027 #include <Inventor/elements/SoFloatElement.h>
00028
00042 SoEXTENDER_Documented class SoDepthOffsetElement : public SoFloatElement
00043 {
00044
00045 SO_ELEMENT_HEADER(SoDepthOffsetElement);
00046
00047 public:
00048
00050 static void set(SoState *state, float offset);
00051
00052 #ifndef IV_STRICT
00053
00054 static void set(SoState *state, SoNode *, float offset);
00055 #endif
00056
00058 static void set(SoState *state, float, float, float);
00059
00061 static float get(SoState *state);
00062
00064 static void setMaxOffset(SoState *state, float offset);
00065
00067 static float getMaxOffset(SoState *state);
00068
00070 virtual void push( SoState* );
00071
00073 virtual void pop(SoState*, const SoElement*);
00074
00075 private:
00076
00078 virtual void init(SoState *state);
00079
00080 private:
00081
00082 static void initClass();
00083 static void exitClass();
00084
00087 static void setNormalizationFactor(SoState *state, float value);
00088
00090 static float getNormalizationFactor(SoState *state);
00091
00094 static void setNDCadjustment(SoState *state, float value);
00095
00097 static float getNDCadjustment(SoState *state);
00098
00100 static void evalGlobalFactors(float offset, float& NDCadjustment, float &normFactor);
00101
00102
00103
00104
00105
00106
00107 enum DepthOffsetVersion
00108 {
00109 NONE = -1,
00110 V1 = 1,
00111 V2
00112 };
00113
00118 static DepthOffsetVersion getDepthOffsetVersion();
00119
00123 static void copyDepthOffset( SoState* dstState, SoState* srcState );
00124
00125 private:
00126 virtual ~SoDepthOffsetElement();
00127
00128 float maxOffset;
00129 float localdata;
00130 float normalizationFactor;
00131 float NDCadjustment;
00132
00133 private :
00134
00135 static DepthOffsetVersion s_depthOffsetVersion;
00136 };
00137
00138 #endif // SO_DEPTH_OFFSET_ELEMENT_H
00139
00140
00141