Fixed doors and windows geometry

This commit is contained in:
2026-04-07 01:18:48 +03:00
parent 3798f227a7
commit 82c0e8c6ce

View File

@@ -2698,10 +2698,10 @@ void CellGridSystem::createWindowFrameMeshes(const CellGridComponent &grid,
}
// Window dimensions (scaled by cellSize/cellHeight)
float windowWidth = 1.6f * (grid.cellSize / 4.0f);
float windowWidth = 3.2f * (grid.cellSize / 4.0f);
float windowHeight = 2.0f * (grid.cellHeight / 4.0f);
float frameDepth = 0.34f * (grid.cellSize / 4.0f);
float frameThickness = 0.1f * (grid.cellSize / 4.0f);
float frameDepth = 0.34f /* * (grid.cellSize / 4.0f) */;
float frameThickness = 0.1f /* * (grid.cellSize / 4.0f) */;
// Create external window frame mesh
Procedural::TriangleBuffer extFrameTb;
@@ -2846,7 +2846,7 @@ void CellGridSystem::createDoorFrameMeshes(const CellGridComponent &grid,
// Create external door frame mesh
Procedural::TriangleBuffer extFrameTb;
float stepDepth = frameDepth * 2.0f;
float stepDepth = frameDepth * 1.3f;
// Left frame with step
Procedural::BoxGenerator()
@@ -2974,12 +2974,12 @@ void CellGridSystem::placeWindowFrames(
return;
float halfCell = grid.cellSize / 2.0f;
float frameOffset = 0.2f * (grid.cellSize / 4.0f);
float frameOffset = 0.0f /* * (grid.cellSize / 4.0f) */;
// Window frame should match window geometry positioning
// Window center Y = windowBottomOffset + windowHeight/2
float windowHeight = 2.0f * (grid.cellHeight / 4.0f);
float windowBottomOffset = 0.8f * (grid.cellHeight / 4.0f);
float windowY = windowBottomOffset + windowHeight / 2.0f;
float windowY = windowBottomOffset /* + windowHeight / 2.0f */;
for (const auto &cell : grid.cells) {
Ogre::Vector3 origin = grid.cellToWorld(cell.x, cell.y, cell.z);
@@ -3012,6 +3012,7 @@ void CellGridSystem::placeWindowFrames(
};
if (extMesh) {
frameOffset = 0.1f;
if (cell.hasFlag(CellFlags::WindowXNeg)) {
Ogre::Vector3 pos =
origin +
@@ -3051,6 +3052,7 @@ void CellGridSystem::placeWindowFrames(
}
if (intMesh) {
frameOffset = 0.1f;
if (cell.hasFlag(CellFlags::IntWindowXNeg)) {
Ogre::Vector3 pos =
origin +