From 88d5b474f3ab1c021612b0730f1b8d327a7a32db Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 16 Feb 2023 23:56:10 +0000 Subject: Add support for smooth faces --- assetFactory/faceController.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'assetFactory/faceController.cpp') diff --git a/assetFactory/faceController.cpp b/assetFactory/faceController.cpp index c04a656..7ec7820 100644 --- a/assetFactory/faceController.cpp +++ b/assetFactory/faceController.cpp @@ -23,6 +23,9 @@ FaceController::apply(ModelFactoryMesh & mesh, const std::string & name, Shape:: const auto vertexCount = points.size(); const auto centre = std::accumulate(points.begin(), points.end(), glm::vec3 {}) / static_cast(vertexCount); + if (smooth) { + mesh.property(mesh.smoothFaceProperty, cf.second) = true; + } if (type == "extrude") { Shape::CreatedFaces newFaces; // mutate points @@ -43,6 +46,11 @@ FaceController::apply(ModelFactoryMesh & mesh, const std::string & name, Shape:: mesh.add_face({baseVertices[idx], baseVertices[next], vertices[next], vertices[idx]})); } newFaces.emplace(name, mesh.add_face(vertices)); + if (smooth) { + for (const auto & [name, face] : newFaces) { + mesh.property(mesh.smoothFaceProperty, face) = true; + } + } for (const auto & [name, faceController] : faceControllers) { faceController.apply(mesh, name, newFaces); } -- cgit v1.2.3