From 2c1b64b3dfb40f61cce6bfb4e9d2f43876283964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 9 Apr 2023 17:29:21 +0200 Subject: [PATCH] doc: port away from std::pair in a screenshot generator helper. --- doc/generated/primitives.cpp | 219 ++++++++++++++++------------------- 1 file changed, 101 insertions(+), 118 deletions(-) diff --git a/doc/generated/primitives.cpp b/doc/generated/primitives.cpp index e2d4973b3..758fb2a7d 100644 --- a/doc/generated/primitives.cpp +++ b/doc/generated/primitives.cpp @@ -24,8 +24,7 @@ */ #include -#include -#include +#include #include #include #include @@ -93,47 +92,47 @@ struct PrimitiveVisualizer: Platform::WindowlessApplication { int exec() override; - std::pair axis2D(); - std::pair axis3D(); - - std::pair capsule2DWireframe(); - std::pair circle2DWireframe(); - std::pair crosshair2D(); - std::pair line2D(); - std::pair squareWireframe(); - - std::pair capsule3DWireframe(); - std::pair circle3DWireframe(); - std::pair crosshair3D(); - std::pair coneWireframe(); - std::pair cubeWireframe(); - std::pair cylinderWireframe(); - std::pair grid3DWireframe(); - std::pair icosphereWireframe(); - std::pair line3D(); - std::pair planeWireframe(); - std::pair uvSphereWireframe(); - - std::pair circle2DSolid(); - std::pair squareSolid(); - - std::pair capsule3DSolid(); - std::pair circle3DSolid(); - std::pair coneSolid(); - std::pair cubeSolid(); - std::pair cylinderSolid(); - std::pair grid3DSolid(); - std::pair icosphereSolid(); - std::pair planeSolid(); - std::pair uvSphereSolid(); - - std::pair gradient2D(); - std::pair gradient2DHorizontal(); - std::pair gradient2DVertical(); - - std::pair gradient3D(); - std::pair gradient3DHorizontal(); - std::pair gradient3DVertical(); + Containers::Pair axis2D(); + Containers::Pair axis3D(); + + Containers::Pair capsule2DWireframe(); + Containers::Pair circle2DWireframe(); + Containers::Pair crosshair2D(); + Containers::Pair line2D(); + Containers::Pair squareWireframe(); + + Containers::Pair capsule3DWireframe(); + Containers::Pair circle3DWireframe(); + Containers::Pair crosshair3D(); + Containers::Pair coneWireframe(); + Containers::Pair cubeWireframe(); + Containers::Pair cylinderWireframe(); + Containers::Pair grid3DWireframe(); + Containers::Pair icosphereWireframe(); + Containers::Pair line3D(); + Containers::Pair planeWireframe(); + Containers::Pair uvSphereWireframe(); + + Containers::Pair circle2DSolid(); + Containers::Pair squareSolid(); + + Containers::Pair capsule3DSolid(); + Containers::Pair circle3DSolid(); + Containers::Pair coneSolid(); + Containers::Pair cubeSolid(); + Containers::Pair cylinderSolid(); + Containers::Pair grid3DSolid(); + Containers::Pair icosphereSolid(); + Containers::Pair planeSolid(); + Containers::Pair uvSphereSolid(); + + Containers::Pair gradient2D(); + Containers::Pair gradient2DHorizontal(); + Containers::Pair gradient2DVertical(); + + Containers::Pair gradient3D(); + Containers::Pair gradient3DHorizontal(); + Containers::Pair gradient3DVertical(); }; namespace { @@ -191,15 +190,13 @@ int PrimitiveVisualizer::exec() { for(auto fun: {&PrimitiveVisualizer::axis2D}) { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - shader.draw(MeshTools::compile(*data)); + shader.draw(MeshTools::compile(dataFilename.first())); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -210,15 +207,13 @@ int PrimitiveVisualizer::exec() { for(auto fun: {&PrimitiveVisualizer::axis3D}) { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - shader.draw(MeshTools::compile(*data)); + shader.draw(MeshTools::compile(dataFilename.first())); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -235,15 +230,13 @@ int PrimitiveVisualizer::exec() { { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - shader.draw(MeshTools::compile(*data)); + shader.draw(MeshTools::compile(dataFilename.first())); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -266,15 +259,13 @@ int PrimitiveVisualizer::exec() { { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - shader.draw(MeshTools::compile(*data)); + shader.draw(MeshTools::compile(dataFilename.first())); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -296,17 +287,15 @@ int PrimitiveVisualizer::exec() { { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - GL::Mesh mesh = MeshTools::compile(*data); + GL::Mesh mesh = MeshTools::compile(dataFilename.first()); flat.draw(mesh); wireframe2D.draw(mesh); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -341,17 +330,15 @@ int PrimitiveVisualizer::exec() { { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - GL::Mesh mesh = MeshTools::compile(*data); + GL::Mesh mesh = MeshTools::compile(dataFilename.first()); phong.draw(mesh); wireframe3D.draw(mesh); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -364,17 +351,15 @@ int PrimitiveVisualizer::exec() { &PrimitiveVisualizer::gradient2DVertical}) { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - GL::Mesh mesh = MeshTools::compile(*data); + GL::Mesh mesh = MeshTools::compile(dataFilename.first()); shader.draw(mesh); wireframe2D.draw(mesh); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } @@ -387,28 +372,26 @@ int PrimitiveVisualizer::exec() { &PrimitiveVisualizer::gradient3DVertical}) { multisampleFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); - Containers::StringView filename; - Containers::Optional data; - std::tie(data, filename) = (this->*fun)(); + Containers::Pair dataFilename = (this->*fun)(); - GL::Mesh mesh = MeshTools::compile(*data); + GL::Mesh mesh = MeshTools::compile(dataFilename.first()); shader.draw(mesh); wireframe3D.draw(mesh); GL::AbstractFramebuffer::blit(multisampleFramebuffer, framebuffer, framebuffer.viewport(), GL::FramebufferBlit::Color); Image2D result = framebuffer.read(framebuffer.viewport(), {PixelFormat::RGBA8Unorm}); - converter->convertToFile(result, Utility::Path::join("../", "primitives-" + filename)); + converter->convertToFile(result, Utility::Path::join("../", "primitives-" + dataFilename.second())); } } return 0; } -std::pair PrimitiveVisualizer::axis2D() { +Containers::Pair PrimitiveVisualizer::axis2D() { return {Primitives::axis2D(), "axis2d.png"}; } -std::pair PrimitiveVisualizer::gradient2D() { +Containers::Pair PrimitiveVisualizer::gradient2D() { return {Primitives::gradient2D({1.0f, -2.0f}, 0x2f83cc_srgbf, {-1.0f, 2.0f}, 0x3bd267_srgbf), "gradient2d.png"}; } @@ -419,151 +402,151 @@ namespace { const Color3 Gradient80Percent = Math::lerp(0x2f83cc_srgbf, 0x3bd267_srgbf, 0.8f); } -std::pair PrimitiveVisualizer::gradient2DHorizontal() { +Containers::Pair PrimitiveVisualizer::gradient2DHorizontal() { return {Primitives::gradient2DHorizontal(Gradient20Percent, Gradient80Percent), "gradient2dhorizontal.png"}; } -std::pair PrimitiveVisualizer::gradient2DVertical() { +Containers::Pair PrimitiveVisualizer::gradient2DVertical() { /* End colors are 20%/80% blends of the above to match the range */ return {Primitives::gradient2DVertical(Gradient20Percent, Gradient80Percent), "gradient2dvertical.png"}; } -std::pair PrimitiveVisualizer::axis3D() { +Containers::Pair PrimitiveVisualizer::axis3D() { return {Primitives::axis3D(), "axis3d.png"}; } -std::pair PrimitiveVisualizer::gradient3D() { +Containers::Pair PrimitiveVisualizer::gradient3D() { return {Primitives::gradient3D({1.0f, -2.0f, -1.5f}, 0x2f83cc_srgbf, {-1.0f, 2.0f, -1.5f}, 0x3bd267_srgbf), "gradient3d.png"}; } -std::pair PrimitiveVisualizer::gradient3DHorizontal() { +Containers::Pair PrimitiveVisualizer::gradient3DHorizontal() { return {Primitives::gradient3DHorizontal(Gradient20Percent, Gradient80Percent), "gradient3dhorizontal.png"}; } -std::pair PrimitiveVisualizer::gradient3DVertical() { +Containers::Pair PrimitiveVisualizer::gradient3DVertical() { return {Primitives::gradient3DVertical(Gradient20Percent, Gradient80Percent), "gradient3dvertical.png"}; } -std::pair PrimitiveVisualizer::capsule2DWireframe() { +Containers::Pair PrimitiveVisualizer::capsule2DWireframe() { Trade::MeshData capsule = Primitives::capsule2DWireframe(8, 1, 0.75f); MeshTools::transformPointsInPlace(Matrix3::scaling(Vector2{0.75f}), capsule.mutableAttribute(Trade::MeshAttribute::Position)); return {std::move(capsule), "capsule2dwireframe.png"}; } -std::pair PrimitiveVisualizer::circle2DWireframe() { +Containers::Pair PrimitiveVisualizer::circle2DWireframe() { return {Primitives::circle2DWireframe(32), "circle2dwireframe.png"}; } -std::pair PrimitiveVisualizer::crosshair2D() { +Containers::Pair PrimitiveVisualizer::crosshair2D() { return {Primitives::crosshair2D(), "crosshair2d.png"}; } -std::pair PrimitiveVisualizer::line2D() { +Containers::Pair PrimitiveVisualizer::line2D() { Trade::MeshData line = Primitives::line2D(); MeshTools::transformPointsInPlace(Matrix3::translation(Vector2::xAxis(-1.0f))*Matrix3::scaling(Vector2::xScale(2.0f)), line.mutableAttribute(Trade::MeshAttribute::Position)); return {std::move(line), "line2d.png"}; } -std::pair PrimitiveVisualizer::squareWireframe() { +Containers::Pair PrimitiveVisualizer::squareWireframe() { return {Primitives::squareWireframe(), "squarewireframe.png"}; } -std::pair PrimitiveVisualizer::capsule3DWireframe() { +Containers::Pair PrimitiveVisualizer::capsule3DWireframe() { Trade::MeshData capsule = Primitives::capsule3DWireframe(8, 1, 16, 1.0f); MeshTools::transformPointsInPlace(Matrix4::scaling(Vector3{0.75f}), capsule.mutableAttribute(Trade::MeshAttribute::Position)); return {std::move(capsule), "capsule3dwireframe.png"}; } -std::pair PrimitiveVisualizer::circle3DWireframe() { +Containers::Pair PrimitiveVisualizer::circle3DWireframe() { return {Primitives::circle3DWireframe(32), "circle3dwireframe.png"}; } -std::pair PrimitiveVisualizer::crosshair3D() { +Containers::Pair PrimitiveVisualizer::crosshair3D() { return {Primitives::crosshair3D(), "crosshair3d.png"}; } -std::pair PrimitiveVisualizer::coneWireframe() { +Containers::Pair PrimitiveVisualizer::coneWireframe() { return {Primitives::coneWireframe(32, 1.25f), "conewireframe.png"}; } -std::pair PrimitiveVisualizer::cubeWireframe() { +Containers::Pair PrimitiveVisualizer::cubeWireframe() { return {Primitives::cubeWireframe(), "cubewireframe.png"}; } -std::pair PrimitiveVisualizer::cylinderWireframe() { +Containers::Pair PrimitiveVisualizer::cylinderWireframe() { return {Primitives::cylinderWireframe(1, 32, 1.0f), "cylinderwireframe.png"}; } -std::pair PrimitiveVisualizer::grid3DWireframe() { +Containers::Pair PrimitiveVisualizer::grid3DWireframe() { return {Primitives::grid3DWireframe({5, 3}), "grid3dwireframe.png"}; } -std::pair PrimitiveVisualizer::icosphereWireframe() { +Containers::Pair PrimitiveVisualizer::icosphereWireframe() { return {Primitives::icosphereWireframe(), "icospherewireframe.png"}; } -std::pair PrimitiveVisualizer::line3D() { +Containers::Pair PrimitiveVisualizer::line3D() { Trade::MeshData line = Primitives::line3D(); MeshTools::transformPointsInPlace(Matrix4::translation(Vector3::xAxis(-1.0f))*Matrix4::scaling(Vector3::xScale(2.0f)), line.mutableAttribute(Trade::MeshAttribute::Position)); return {std::move(line), "line3d.png"}; } -std::pair PrimitiveVisualizer::planeWireframe() { +Containers::Pair PrimitiveVisualizer::planeWireframe() { return {Primitives::planeWireframe(), "planewireframe.png"}; } -std::pair PrimitiveVisualizer::uvSphereWireframe() { +Containers::Pair PrimitiveVisualizer::uvSphereWireframe() { return {Primitives::uvSphereWireframe(16, 32), "uvspherewireframe.png"}; } -std::pair PrimitiveVisualizer::circle2DSolid() { +Containers::Pair PrimitiveVisualizer::circle2DSolid() { return {Primitives::circle2DSolid(16), "circle2dsolid.png"}; } -std::pair PrimitiveVisualizer::squareSolid() { +Containers::Pair PrimitiveVisualizer::squareSolid() { return {Primitives::squareSolid(), "squaresolid.png"}; } -std::pair PrimitiveVisualizer::capsule3DSolid() { +Containers::Pair PrimitiveVisualizer::capsule3DSolid() { Trade::MeshData capsule = Primitives::capsule3DSolid(4, 1, 12, 0.75f); MeshTools::transformPointsInPlace(Matrix4::scaling(Vector3{0.75f}), capsule.mutableAttribute(Trade::MeshAttribute::Position)); return {std::move(capsule), "capsule3dsolid.png"}; } -std::pair PrimitiveVisualizer::circle3DSolid() { +Containers::Pair PrimitiveVisualizer::circle3DSolid() { return {Primitives::circle3DSolid(16), "circle3dsolid.png"}; } -std::pair PrimitiveVisualizer::coneSolid() { +Containers::Pair PrimitiveVisualizer::coneSolid() { return {Primitives::coneSolid(1, 12, 1.25f, Primitives::ConeFlag::CapEnd), "conesolid.png"}; } -std::pair PrimitiveVisualizer::cubeSolid() { +Containers::Pair PrimitiveVisualizer::cubeSolid() { return {Primitives::cubeSolid(), "cubesolid.png"}; } -std::pair PrimitiveVisualizer::cylinderSolid() { +Containers::Pair PrimitiveVisualizer::cylinderSolid() { return {Primitives::cylinderSolid(1, 12, 1.0f, Primitives::CylinderFlag::CapEnds), "cylindersolid.png"}; } -std::pair PrimitiveVisualizer::grid3DSolid() { +Containers::Pair PrimitiveVisualizer::grid3DSolid() { return {Primitives::grid3DSolid({5, 3}), "grid3dsolid.png"}; } -std::pair PrimitiveVisualizer::icosphereSolid() { +Containers::Pair PrimitiveVisualizer::icosphereSolid() { return {Primitives::icosphereSolid(1), "icospheresolid.png"}; } -std::pair PrimitiveVisualizer::planeSolid() { +Containers::Pair PrimitiveVisualizer::planeSolid() { return {Primitives::planeSolid(), "planesolid.png"}; } -std::pair PrimitiveVisualizer::uvSphereSolid() { +Containers::Pair PrimitiveVisualizer::uvSphereSolid() { return {Primitives::uvSphereSolid(8, 16), "uvspheresolid.png"}; }