| Irrlicht 3D Engine |

ITriangleSelector.h
Go to the documentation of this file.

    00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
    00002 // This file is part of the "Irrlicht Engine".
    00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
    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 } // end namespace scene
    00129 } // end namespace irr
    00130
    00131 #endif