Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef __I_TRIANGLE_SELECTOR_H_INCLUDED__
00006 #define __I_TRIANGLE_SELECTOR_H_INCLUDED__
00007
00008 #include "IReferenceCounted.h"
00009 #include "triangle3d.h"
00010 #include "aabbox3d.h"
00011 #include "matrix4.h"
00012 #include "line3d.h"
00013
00014 namespace irr
00015 {
00016 namespace scene
00017 {
00018
00019 class ISceneNode;
00020
00022
00028 class ITriangleSelector : public virtual IReferenceCounted
00029 {
00030 public:
00031
00033 virtual s32 getTriangleCount() const = 0;
00034
00036
00050 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
00051 s32& outTriangleCount, const core::matrix4* transform=0) const = 0;
00052
00054
00073 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
00074 s32& outTriangleCount, const core::aabbox3d<f32>& box,
00075 const core::matrix4* transform=0) const = 0;
00076
00078
00097 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
00098 s32& outTriangleCount, const core::line3d<f32>& line,
00099 const core::matrix4* transform=0) const = 0;
00100
00102
00110 virtual ISceneNode* getSceneNodeForTriangle(u32 triangleIndex) const = 0;
00111
00113
00115 virtual u32 getSelectorCount() const = 0;
00116
00118
00120 virtual ITriangleSelector* getSelector(u32 index) = 0;
00121
00123
00125 virtual const ITriangleSelector* getSelector(u32 index) const = 0;
00126 };
00127
00128 }
00129 }
00130
00131 #endif