mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 00:25:19 +02:00
Halo: Highlight selected face
This is a slightly modified and cleaned up version of #3774 by RealBadAngel. By sofar: Remove color change (just make it lighter) and some minor cleanups.
This commit is contained in:
20
src/mesh.cpp
20
src/mesh.cpp
@@ -226,7 +226,27 @@ void setMeshColorByNormalXYZ(scene::IMesh *mesh,
|
||||
vertex->Color = colorY;
|
||||
else
|
||||
vertex->Color = colorZ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setMeshColorByNormal(scene::IMesh *mesh, const v3f &normal,
|
||||
const video::SColor &color)
|
||||
{
|
||||
if (!mesh)
|
||||
return;
|
||||
|
||||
u16 mc = mesh->getMeshBufferCount();
|
||||
for (u16 j = 0; j < mc; j++) {
|
||||
scene::IMeshBuffer *buf = mesh->getMeshBuffer(j);
|
||||
const u32 stride = getVertexPitchFromType(buf->getVertexType());
|
||||
u32 vertex_count = buf->getVertexCount();
|
||||
u8 *vertices = (u8 *)buf->getVertices();
|
||||
for (u32 i = 0; i < vertex_count; i++) {
|
||||
video::S3DVertex *vertex = (video::S3DVertex *)(vertices + i * stride);
|
||||
if (normal == vertex->Normal) {
|
||||
vertex->Color = color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user