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 #ifndef _CIvfRasterization_h_
00026 #define _CIvfRasterization_h_
00027
00028 #include <ivf/IvfBase.h>
00029
00030 #include <ivfdef/IvfSingletonDestroyer.h>
00031
00032 IvfStdPointer(CIvfRasterization);
00033
00045 class IVF_API CIvfRasterization : public CIvfBase {
00046 public:
00047 enum TCullFace {
00048 CF_FRONT,
00049 CF_BACK,
00050 CF_FRONT_AND_BACK
00051 };
00052 enum TTargetFace {
00053 TF_FRONT,
00054 TF_BACK,
00055 TF_FRONT_AND_BACK
00056 };
00057 enum TPolygonMode {
00058 PM_POINT,
00059 PM_LINE,
00060 PM_FILL
00061 };
00062 private:
00063 static CIvfRasterization* m_instance;
00064 static CIvfSingletonDestroyer<CIvfRasterization> m_destroyer;
00065 public:
00067 static CIvfRasterization* getInstance();
00068
00069 IvfClassInfo("CIvfRasterization",CIvfBase);
00070
00072 void setPolygonMode(TTargetFace face, TPolygonMode mode);
00073
00075 void defineSmoothShadeMode();
00076
00078 void defineWireFrameMode();
00079
00081 void enableCullFace();
00082
00084 void disableCullFace();
00085
00087 bool isCullFaceEnabled();
00088
00090 void enablePolygonSmooth();
00091
00093 void disablePolygonSmooth();
00094
00096 void enableLineSmooth();
00097
00099 void disableLineSmooth();
00100
00102 void setLineWidth(float width);
00103
00105 TCullFace getCullFace();
00106
00108 void setCullFace(TCullFace face);
00109 protected:
00110 CIvfRasterization();
00111 friend class CIvfSingletonDestroyer<CIvfRasterization>;
00112
00113 };
00114
00115 #endif