Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
ITriangleSelector.h
Go to the documentation of this file.
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 __I_TRIANGLE_SELECTOR_H_INCLUDED__
6#define __I_TRIANGLE_SELECTOR_H_INCLUDED__
7
8#include "IReferenceCounted.h"
9#include "triangle3d.h"
10#include "aabbox3d.h"
11#include "matrix4.h"
12#include "line3d.h"
13
14namespace irr
15{
16namespace scene
17{
18
19class ISceneNode;
20
22
29{
30public:
31
33 virtual s32 getTriangleCount() const = 0;
34
36
50 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
51 s32& outTriangleCount, const core::matrix4* transform=0) const = 0;
52
54
73 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
74 s32& outTriangleCount, const core::aabbox3d<f32>& box,
75 const core::matrix4* transform=0) const = 0;
76
78
97 virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
98 s32& outTriangleCount, const core::line3d<f32>& line,
99 const core::matrix4* transform=0) const = 0;
100
102
110 virtual ISceneNode* getSceneNodeForTriangle(u32 triangleIndex) const = 0;
111
113
115 virtual u32 getSelectorCount() const = 0;
116
118
120 virtual ITriangleSelector* getSelector(u32 index) = 0;
121
123
125 virtual const ITriangleSelector* getSelector(u32 index) const = 0;
126};
127
128} // end namespace scene
129} // end namespace irr
130
131#endif
Base class of most objects of the Irrlicht Engine.
4x4 matrix. Mostly used as transformation matrix for 3d calculations.
Definition matrix4.h:46
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
Scene node interface.
Definition ISceneNode.h:41
Interface to return triangles with specific properties.
virtual s32 getTriangleCount() const =0
Get amount of all available triangles in this selector.
virtual void getTriangles(core::triangle3df *triangles, s32 arraySize, s32 &outTriangleCount, const core::line3d< f32 > &line, const core::matrix4 *transform=0) const =0
Gets the triangles for one associated node which have or may have contact with a 3d line.
virtual void getTriangles(core::triangle3df *triangles, s32 arraySize, s32 &outTriangleCount, const core::matrix4 *transform=0) const =0
Gets the triangles for one associated node.
virtual const ITriangleSelector * getSelector(u32 index) const =0
Get TriangleSelector based on index based on getSelectorCount.
virtual void getTriangles(core::triangle3df *triangles, s32 arraySize, s32 &outTriangleCount, const core::aabbox3d< f32 > &box, const core::matrix4 *transform=0) const =0
Gets the triangles for one associated node which may lie within a specific bounding box.
virtual ISceneNode * getSceneNodeForTriangle(u32 triangleIndex) const =0
Get scene node associated with a given triangle.
virtual u32 getSelectorCount() const =0
Get number of TriangleSelectors that are part of this one.
virtual ITriangleSelector * getSelector(u32 index)=0
Get TriangleSelector based on index based on getSelectorCount.
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
signed int s32
32 bit signed variable.
Definition irrTypes.h:66