Some documentation updates.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1020 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2007-10-02 22:41:05 +00:00
parent ce4453fb36
commit 7ce4f2517f
3 changed files with 66 additions and 43 deletions

View File

@ -19,10 +19,10 @@ namespace scene
//! Interface to return triangles with specific properties.
/** Every ISceneNode may have a triangle selector, available with
ISceneNode::getTriangleScelector() or ISceneManager::createTriangleSelector.
This is used for doing collision detection: For example if you know, that a collision may happened in the
area between (1,1,1) and (10,10,10), you can get all triangles of the
scene node in this area with the ITriangleSelector easily and check every triangle
if it collided. */
This is used for doing collision detection: For example if you know, that a
collision may have happened in the area between (1,1,1) and (10,10,10), you
can get all triangles of the scene node in this area with the
ITriangleSelector easily and check every triangle if it collided. */
class ITriangleSelector : public virtual IReferenceCounted
{
public:
@ -34,44 +34,50 @@ public:
virtual s32 getTriangleCount() const = 0;
//! Gets all triangles.
//! \param triangles: Array where the resulting triangles will be written to.
//! \param triangles: Array where the resulting triangles will be
//! written to.
//! \param arraySize: Size of the target array.
//! \param outTriangleCount: Amount of triangles which have been written into the
//! array.
//! \param transform: Pointer to matrix for transforming the triangles before.
//! they are returned. Useful for example to scale all triangles down into an
//! ellipsoid space. If this pointer is null, no transformation will be done.
//! \param outTriangleCount: Amount of triangles which have been
//! written into the array.
//! \param transform: Pointer to matrix for transforming the triangles
//! before they are returned. Useful for example to scale all triangles
//! down into an ellipsoid space. If this pointer is null, no
//! transformation will be done.
virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
s32& outTriangleCount, const core::matrix4* transform=0) const = 0;
//! Gets all triangles which lie within a specific bounding box.
//! Please note that unoptimized triangle selectors also may return triangles,
//! which are not in the specific box at all.
//! \param triangles: Array where the resulting triangles will be written to.
//! Please note that unoptimized triangle selectors also may return
//! triangles which are not in the specific box at all.
//! \param triangles: Array where the resulting triangles will be
//! written to.
//! \param arraySize: Size of the target array.
//! \param outTriangleCount: Amount of triangles which have been written into the
//! array.
//! \param box: Only triangles which are in this axis aligned bounding box
//! will be written into the array.
//! \param transform: Pointer to matrix for transforming the triangles before.
//! they are returned. Useful for example to scale all triangles down into an
//! ellipsoid space. If this pointer is null, no transformation will be done.
//! \param outTriangleCount: Amount of triangles which have been
//! written into the array.
//! \param box: Only triangles which are in this axis aligned bounding
//! box will be written into the array.
//! \param transform: Pointer to matrix for transforming the triangles
//! before they are returned. Useful for example to scale all triangles
//! down into an ellipsoid space. If this pointer is null, no
//! transformation will be done.
virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
s32& outTriangleCount, const core::aabbox3d<f32>& box,
const core::matrix4* transform=0) const = 0;
//! Gets all triangles which have or may have contact with a 3d line.
//! Please note that unoptimized triangle selectors also may return triangles,
//! which are not in contact at all with the 3d line.
//! \param triangles: Array where the resulting triangles will be written to.
//! Please note that unoptimized triangle selectors also may return
//! triangles which are not in contact at all with the 3d line.
//! \param triangles: Array where the resulting triangles will be
//! written to.
//! \param arraySize: Size of the target array.
//! \param outTriangleCount: Amount of triangles which have been written into the
//! array.
//! \param line: Only triangles which may be in contact with this 3d line will
//! be written into the array.
//! \param transform: Pointer to matrix for transforming the triangles before.
//! they are returned. Useful for example to scale all triangles down into an
//! ellipsoid space. If this pointer is null, no transformation will be done.
//! \param outTriangleCount: Amount of triangles which have been
//! written into the array.
//! \param line: Only triangles which may be in contact with this 3d
//! line will be written into the array.
//! \param transform: Pointer to matrix for transforming the triangles
//! before they are returned. Useful for example to scale all triangles
//! down into an ellipsoid space. If this pointer is null, no
//! transformation will be done.
virtual void getTriangles(core::triangle3df* triangles, s32 arraySize,
s32& outTriangleCount, const core::line3d<f32>& line,
const core::matrix4* transform=0) const = 0;

View File

@ -351,14 +351,16 @@ namespace video
u32 vertexCount, const u16* indexList, u32 triangleCount) = 0;
//! Draws a 3d line.
/** For some implementations, this method simply calls drawIndexedTriangles for some
triangles. Note that the line is drawn using the current transformation
matrix and material. So if you need to draw the 3D line independently of the
current transformation, use
/** For some implementations, this method simply calls
drawIndexedTriangles for some triangles.
Note that the line is drawn using the current transformation
matrix and material. So if you need to draw the 3D line
independently of the current transformation, use
\code
driver->setMaterial(unlitMaterial);
driver->setTransform(video::ETS_WORLD, core::matrix4());
\endcode
before drawing the line.
for some properly set up material before drawing the line.
\param start: Start of the 3d line.
\param end: End of the 3d line.
\param color: Color of the line. */
@ -367,19 +369,34 @@ namespace video
//! Draws a 3d triangle.
/** This method calls drawIndexedTriangles for some triangles.
Note that the line is drawn using the current transformation matrix and material.
This method works with all drivers because it simply calls drawIndexedTriangleList but
is hence not very fast.
This method works with all drivers because it simply calls
drawIndexedTriangleList but is hence not very fast.
Note that the triangle is drawn using the current
transformation matrix and material. So if you need to draw it
independently of the current transformation, use
\code
driver->setMaterial(unlitMaterial);
driver->setTransform(video::ETS_WORLD, core::matrix4());
\endcode
for some properly set up material before drawing the triangle.
\param triangle: The triangle to draw.
\param color: Color of the line. */
virtual void draw3DTriangle(const core::triangle3df& triangle,
SColor color = SColor(255,255,255,255)) = 0;
//! Draws a 3d axis aligned box.
/** This method simply calls drawIndexedTriangles for some triangles.
Note that the line is drawn using the current transformation matrix and material.
This method works with all drivers because it simply calls drawIndexedTriangleList but
is hence not very fast.
/** This method simply calls drawIndexedTriangles for some
triangles. This method works with all drivers because it
simply calls drawIndexedTriangleList but is hence not very
fast.
Note that the box is drawn using the current transformation
matrix and material. So if you need to draw it independently of
the current transformation, use
\code
driver->setMaterial(unlitMaterial);
driver->setTransform(video::ETS_WORLD, core::matrix4());
\endcode
for some properly set up material before drawing the box.
\param box: The axis aligned box to draw
\param color: Color to use while drawing the box. */
virtual void draw3DBox(const core::aabbox3d<f32>& box,

View File

@ -24,7 +24,7 @@ so you can assign unicode to string<c8> and ascii to string<wchar_t>
Note that the conversation between both is not done using an encoding.
Known bugs:
Special characters like 'Ä', 'Ü' and 'Ö' are ignored in the
Special characters like umlauts are ignored in the
methods make_upper, make_lower and equals_ignore_case.
*/
template <typename T, typename TAlloc = irrAllocator<T> >