1 // Copyright (C) 2002-2012 Nikolaus Gebhardt 2 // This file is part of the "Irrlicht Engine". 3 // For conditions of distribution and use, see copyright notice in irrlicht.h 4 5 #ifndef __C_TRIANGLE_BB_SELECTOR_H_INCLUDED__ 6 #define __C_TRIANGLE_BB_SELECTOR_H_INCLUDED__ 7 8 #include "CTriangleSelector.h" 9 10 namespace irr 11 { 12 namespace scene 13 { 14 15 //! Stupid triangle selector without optimization 16 class CTriangleBBSelector : public CTriangleSelector 17 { 18 public: 19 20 //! Constructs a selector based on a mesh 21 CTriangleBBSelector(ISceneNode* node); 22 23 //! Gets all triangles. 24 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize, s32& outTriangleCount, 25 const core::matrix4* transform=0) const; 26 27 //! Gets all triangles which lie within a specific bounding box. 28 void getTriangles(core::triangle3df* triangles, s32 arraySize, s32& outTriangleCount, 29 const core::aabbox3d<f32>& box, const core::matrix4* transform=0) const; 30 31 //! Gets all triangles which have or may have contact with a 3d line. 32 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize, 33 s32& outTriangleCount, const core::line3d<f32>& line, 34 const core::matrix4* transform=0) const; 35 36 }; 37 38 } // end namespace scene 39 } // end namespace irr 40 41 42 #endif 43 44