// EMERGENT GAME TECHNOLOGIES PROPRIETARY INFORMATION // // This software is supplied under the terms of a license agreement or // nondisclosure agreement with Emergent Game Technologies and may not // be copied or disclosed except in accordance with the terms of that // agreement. // // Copyright (c) 1996-2007 Emergent Game Technologies. // All Rights Reserved. // // Emergent Game Technologies, Chapel Hill, North Carolina 27517 // http://www.emergent.net #ifndef NIOCCLUSIONCULLER_H #define NIOCCLUSIONCULLER_H #include #include #include #include #include #include "Occluder.h" class NiGeometry; class NiScene; class NiEntityInterface; class NiOcclusionCuller : public NiCullingProcess { public: NiOcclusionCuller(); virtual ~NiOcclusionCuller(); virtual void Process(const NiCamera* pkCamera, NiAVObject* pkScene, NiVisibleArray* pkVisibleSet); void FindOcclusionGeometry(NiScene* pkEntityScene); void FindOcclusionGeometry(NiAVObject* pkAVObject, bool bMarkedParent); void RemoveAllOcclusionGeometry(); protected: void RecursiveFindOcclusionGeometry(NiEntityInterface* pkEntity); virtual void Process(NiAVObject* pkObject); NiTPrimitiveArray m_kOccluders; NiFixedString m_kSceneRootPointerName; }; NiSmartPointer(NiOcclusionGeometry); #endif