mirror of
https://github.com/minetest/irrlicht.git
synced 2025-06-29 23:00:34 +02:00
Can often copy instead of multiply matrix in CTriangleSelector
If we already know we start with an identity matrix (which is usually the case) then copy will do. Also unifying code to create matrix of different CTriangleSelector::getTriangles functions git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6578 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
@ -272,11 +272,17 @@ void CTriangleSelector::getTriangles(core::triangle3df* triangles,
|
||||
if (cnt > (u32)arraySize)
|
||||
cnt = (u32)arraySize;
|
||||
|
||||
core::matrix4 mat;
|
||||
core::matrix4 mat(core::matrix4::EM4CONST_NOTHING);
|
||||
if (transform)
|
||||
{
|
||||
mat = *transform;
|
||||
if (SceneNode&&useNodeTransform)
|
||||
mat *= SceneNode->getAbsoluteTransformation();
|
||||
if (SceneNode && useNodeTransform)
|
||||
mat *= SceneNode->getAbsoluteTransformation();
|
||||
}
|
||||
else if (SceneNode && useNodeTransform)
|
||||
mat = SceneNode->getAbsoluteTransformation();
|
||||
else
|
||||
mat.makeIdentity();
|
||||
|
||||
for (u32 i=0; i<cnt; ++i)
|
||||
{
|
||||
@ -338,11 +344,15 @@ void CTriangleSelector::getTriangles(core::triangle3df* triangles,
|
||||
|
||||
core::matrix4 mat(core::matrix4::EM4CONST_NOTHING);
|
||||
if (transform)
|
||||
{
|
||||
mat = *transform;
|
||||
if (SceneNode && useNodeTransform)
|
||||
mat *= SceneNode->getAbsoluteTransformation();
|
||||
}
|
||||
else if (SceneNode && useNodeTransform)
|
||||
mat = SceneNode->getAbsoluteTransformation();
|
||||
else
|
||||
mat.makeIdentity();
|
||||
if (SceneNode && useNodeTransform)
|
||||
mat *= SceneNode->getAbsoluteTransformation();
|
||||
|
||||
core::aabbox3df tBox(box);
|
||||
core::matrix4 invMat(core::matrix4::EM4CONST_NOTHING);
|
||||
|
Reference in New Issue
Block a user