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 _CIvfCuller_h_
00026 #define _CIvfCuller_h_
00027
00028 #include <ivf/IvfBase.h>
00029 #include <ivf/IvfComposite.h>
00030 #include <ivf/IvfView.h>
00031
00032 #include <ivfmath/IvfMatrixStack.h>
00033 #include <ivfmath/IvfViewFrustum.h>
00034
00035 IvfSmartPointer(CIvfCulling);
00036
00068 class IVF_API CIvfCulling : public CIvfBase {
00069 private:
00070 CIvfCompositePtr m_composite;
00071 CIvfMatrixStackPtr m_matrixStack;
00072 CIvfViewFrustumPtr m_frustum;
00073 CIvfViewPtr m_cullView;
00074 int m_cullCount;
00075 bool intersectFrustum(CIvfBoundingSphere* bSphere);
00076 void cullChildren(CIvfShape* shape);
00077 public:
00079 CIvfCulling();
00080
00082 virtual ~CIvfCulling();
00083
00084 IvfClassInfo("CIvfCulling",CIvfBase);
00085
00096 void cull();
00097
00099 void setComposite(CIvfComposite* composite);
00100
00102 void setCullView(CIvfView* view);
00103
00105 int getCullCount();
00106 };
00112 #endif