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