Format all C++ and Java code via clang-format

Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
Konstantin Pastbin
2025-08-17 14:32:37 +07:00
parent 9f0290c0ec
commit bfffa1fff4
2169 changed files with 56441 additions and 64188 deletions

View File

@@ -52,8 +52,8 @@ std::string const kDefaultArrowShadowMesh = "arrow_shadow.obj";
std::string_view const kMainFileId = "main_obj_file_id";
using TLoadingCompletion = std::function<void(
std::vector<float> positions, std::vector<float> normals, std::vector<float> texCoords)>;
using TLoadingCompletion =
std::function<void(std::vector<float> positions, std::vector<float> normals, std::vector<float> texCoords)>;
using TLoadingFailure = std::function<void(std::string const &)>;
namespace fast_obj_adapter
@@ -102,10 +102,7 @@ unsigned long FileSize(void * file, void * userData)
class FastObjMeshGuard
{
public:
explicit FastObjMeshGuard(fastObjMesh * mesh)
: m_mesh(mesh)
{
}
explicit FastObjMeshGuard(fastObjMesh * mesh) : m_mesh(mesh) {}
~FastObjMeshGuard()
{
@@ -117,8 +114,8 @@ private:
fastObjMesh * const m_mesh;
};
bool LoadMesh(std::string const & pathToMesh, bool isDefaultResource,
TLoadingCompletion const & completionHandler, TLoadingFailure const & failureHandler)
bool LoadMesh(std::string const & pathToMesh, bool isDefaultResource, TLoadingCompletion const & completionHandler,
TLoadingFailure const & failureHandler)
{
CHECK(completionHandler != nullptr, ());
CHECK(failureHandler != nullptr, ());
@@ -126,9 +123,8 @@ bool LoadMesh(std::string const & pathToMesh, bool isDefaultResource,
fastObjMesh * meshData = nullptr;
try
{
ReaderPtr<Reader> reader = isDefaultResource
? GetStyleReader().GetDefaultResourceReader(pathToMesh)
: GetPlatform().GetReader(pathToMesh);
ReaderPtr<Reader> reader =
isDefaultResource ? GetStyleReader().GetDefaultResourceReader(pathToMesh) : GetPlatform().GetReader(pathToMesh);
ReaderSource source(reader);
// Read OBJ file.
@@ -158,15 +154,13 @@ bool LoadMesh(std::string const & pathToMesh, bool isDefaultResource,
{
if (meshData->position_count > 1)
{
memcpy(&positions[i * kComponentsInVertex],
&meshData->positions[meshData->indices[i].p * kComponentsInVertex],
memcpy(&positions[i * kComponentsInVertex], &meshData->positions[meshData->indices[i].p * kComponentsInVertex],
sizeof(float) * kComponentsInVertex);
}
if (meshData->normal_count > 1)
{
memcpy(&normals[i * kComponentsInNormal],
&meshData->normals[meshData->indices[i].n * kComponentsInNormal],
memcpy(&normals[i * kComponentsInNormal], &meshData->normals[meshData->indices[i].n * kComponentsInNormal],
sizeof(float) * kComponentsInNormal);
}
@@ -201,44 +195,40 @@ Arrow3d::PreloadedData Arrow3d::PreloadMesh(std::optional<Arrow3dCustomDecl> con
// Load arrow mesh.
auto const & meshPath = customDecl ? customDecl->m_arrowMeshPath : kDefaultArrowMesh;
data.m_meshData = PreloadedMeshData{};
if (!LoadMesh(
meshPath, useDefaultResource,
[&](std::vector<float> positions, std::vector<float> normals,
std::vector<float> texCoords)
{
if (!positions.empty())
{
if (normals.empty())
normals =
dp::MeshObject::GenerateNormalsForTriangles(positions, kComponentsInNormal);
if (!LoadMesh(meshPath, useDefaultResource,
[&](std::vector<float> positions, std::vector<float> normals, std::vector<float> texCoords)
{
if (!positions.empty())
{
if (normals.empty())
normals = dp::MeshObject::GenerateNormalsForTriangles(positions, kComponentsInNormal);
data.m_meshData->m_positions = std::move(positions);
data.m_meshData->m_normals = std::move(normals);
data.m_meshData->m_positions = std::move(positions);
data.m_meshData->m_normals = std::move(normals);
// Texture coordinates.
ref_ptr<dp::StaticTexture> arrowTexture = texMng->GetArrowTexture();
CHECK(arrowTexture != nullptr, ("Arrow texture must be initialized before the mesh"));
// NOTE: texture must be loaded before the mesh.
if (arrowTexture->IsLoadingCorrect() && !texCoords.empty())
{
data.m_arrowMeshTexturingEnabled = true;
data.m_meshData->m_texCoords = std::move(texCoords);
}
else
{
data.m_arrowMeshTexturingEnabled = false;
}
}
else
{
data.m_meshData.reset();
}
},
[&](std::string const & reason)
{
data.m_meshData.reset();
LOG(LERROR, ("Arrow3D mesh was not loaded:", reason));
}))
// Texture coordinates.
ref_ptr<dp::StaticTexture> arrowTexture = texMng->GetArrowTexture();
CHECK(arrowTexture != nullptr, ("Arrow texture must be initialized before the mesh"));
// NOTE: texture must be loaded before the mesh.
if (arrowTexture->IsLoadingCorrect() && !texCoords.empty())
{
data.m_arrowMeshTexturingEnabled = true;
data.m_meshData->m_texCoords = std::move(texCoords);
}
else
{
data.m_arrowMeshTexturingEnabled = false;
}
}
else
{
data.m_meshData.reset();
}
}, [&](std::string const & reason)
{
data.m_meshData.reset();
LOG(LERROR, ("Arrow3D mesh was not loaded:", reason));
}))
{
return {};
}
@@ -248,39 +238,34 @@ Arrow3d::PreloadedData Arrow3d::PreloadMesh(std::optional<Arrow3dCustomDecl> con
if (!shadowMeshPath.empty())
{
data.m_shadowMeshData = PreloadedMeshData{};
LoadMesh(
shadowMeshPath, useDefaultResource,
[&](std::vector<float> positions, std::vector<float> /* normals */,
std::vector<float> texCoords)
{
// NOTE: Shadow mesh must contain texture coordinates. They're used to create soft shadow.
if (!positions.empty() && !texCoords.empty())
{
data.m_shadowMeshData->m_positions = std::move(positions);
data.m_shadowMeshData->m_texCoords = std::move(texCoords);
}
else
{
data.m_shadowMeshData.reset();
}
},
[&](std::string const & reason)
{
data.m_shadowMeshData.reset();
LOG(LWARNING, ("Arrow3D shadow mesh was not loaded:", reason));
});
LoadMesh(shadowMeshPath, useDefaultResource,
[&](std::vector<float> positions, std::vector<float> /* normals */, std::vector<float> texCoords)
{
// NOTE: Shadow mesh must contain texture coordinates. They're used to create soft shadow.
if (!positions.empty() && !texCoords.empty())
{
data.m_shadowMeshData->m_positions = std::move(positions);
data.m_shadowMeshData->m_texCoords = std::move(texCoords);
}
else
{
data.m_shadowMeshData.reset();
}
}, [&](std::string const & reason)
{
data.m_shadowMeshData.reset();
LOG(LWARNING, ("Arrow3D shadow mesh was not loaded:", reason));
});
}
if (customDecl.has_value())
{
data.m_texCoordFlipping = glsl::vec2{customDecl->m_flipTexCoordU ? 1.0f : 0.0f,
customDecl->m_flipTexCoordV ? 1.0f : 0.0f};
data.m_meshOffset =
glsl::vec3{customDecl->m_offset.x, customDecl->m_offset.y, customDecl->m_offset.z};
data.m_meshEulerAngles = glsl::vec3{customDecl->m_eulerAngles.x, customDecl->m_eulerAngles.y,
customDecl->m_eulerAngles.z};
data.m_meshScale =
glsl::vec3{customDecl->m_scale.x, customDecl->m_scale.y, customDecl->m_scale.z};
data.m_texCoordFlipping =
glsl::vec2{customDecl->m_flipTexCoordU ? 1.0f : 0.0f, customDecl->m_flipTexCoordV ? 1.0f : 0.0f};
data.m_meshOffset = glsl::vec3{customDecl->m_offset.x, customDecl->m_offset.y, customDecl->m_offset.z};
data.m_meshEulerAngles =
glsl::vec3{customDecl->m_eulerAngles.x, customDecl->m_eulerAngles.y, customDecl->m_eulerAngles.z};
data.m_meshScale = glsl::vec3{customDecl->m_scale.x, customDecl->m_scale.y, customDecl->m_scale.z};
data.m_enableShadow = customDecl->m_enableShadow;
data.m_enableOutline = customDecl->m_enableOutline;
}
@@ -334,8 +319,7 @@ Arrow3d::Arrow3d(ref_ptr<dp::GraphicsContext> context, ref_ptr<dp::TextureManage
m_arrowMesh.SetBuffer(kTexCoordBufferInd, std::move(preloadedData.m_meshData->m_texCoords),
sizeof(float) * kComponentsInTexCoord);
m_arrowMesh.SetAttribute("a_texCoords", kTexCoordBufferInd, 0 /* offset */,
kComponentsInTexCoord);
m_arrowMesh.SetAttribute("a_texCoords", kTexCoordBufferInd, 0 /* offset */, kComponentsInTexCoord);
}
}
@@ -347,22 +331,22 @@ Arrow3d::Arrow3d(ref_ptr<dp::GraphicsContext> context, ref_ptr<dp::TextureManage
// Positions.
CHECK(!preloadedData.m_shadowMeshData->m_positions.empty(), ());
m_shadowMesh->SetBuffer(kVerticesBufferInd,
std::move(preloadedData.m_shadowMeshData->m_positions),
m_shadowMesh->SetBuffer(kVerticesBufferInd, std::move(preloadedData.m_shadowMeshData->m_positions),
sizeof(float) * kComponentsInVertex);
m_shadowMesh->SetAttribute("a_pos", kVerticesBufferInd, 0 /* offset */, kComponentsInVertex);
// Texture coordinates.
CHECK(!preloadedData.m_shadowMeshData->m_texCoords.empty(), ());
m_shadowMesh->SetBuffer(kTexCoordShadowBufferInd,
std::move(preloadedData.m_shadowMeshData->m_texCoords),
m_shadowMesh->SetBuffer(kTexCoordShadowBufferInd, std::move(preloadedData.m_shadowMeshData->m_texCoords),
sizeof(float) * kComponentsInTexCoord);
m_shadowMesh->SetAttribute("a_texCoords", kTexCoordShadowBufferInd, 0 /* offset */,
kComponentsInTexCoord);
m_shadowMesh->SetAttribute("a_texCoords", kTexCoordShadowBufferInd, 0 /* offset */, kComponentsInTexCoord);
}
}
bool Arrow3d::IsValid() const { return m_isValid; }
bool Arrow3d::IsValid() const
{
return m_isValid;
}
// static
double Arrow3d::GetMaxBottomSize()
@@ -371,27 +355,48 @@ double Arrow3d::GetMaxBottomSize()
return kBottomSize * arrow3d::kArrowSize * arrow3d::kArrow3dScaleMax * kOutlineScale;
}
void Arrow3d::SetPosition(m2::PointD const & position) { m_position = position; }
void Arrow3d::SetPosition(m2::PointD const & position)
{
m_position = position;
}
void Arrow3d::SetAzimuth(double azimuth)
{
m_azimuth = azimuth;
}
void Arrow3d::SetPositionObsolete(bool obsolete) { m_obsoletePosition = obsolete; }
void Arrow3d::SetPositionObsolete(bool obsolete)
{
m_obsoletePosition = obsolete;
}
void Arrow3d::SetMeshOffset(glsl::vec3 const & offset) { m_meshOffset = offset; }
void Arrow3d::SetMeshOffset(glsl::vec3 const & offset)
{
m_meshOffset = offset;
}
void Arrow3d::SetMeshRotation(glsl::vec3 const & eulerAngles) { m_meshEulerAngles = eulerAngles; }
void Arrow3d::SetMeshRotation(glsl::vec3 const & eulerAngles)
{
m_meshEulerAngles = eulerAngles;
}
void Arrow3d::SetMeshScale(glsl::vec3 const & scale) { m_meshScale = scale; }
void Arrow3d::SetMeshScale(glsl::vec3 const & scale)
{
m_meshScale = scale;
}
void Arrow3d::SetShadowEnabled(bool enabled) { m_enableShadow = enabled; }
void Arrow3d::SetShadowEnabled(bool enabled)
{
m_enableShadow = enabled;
}
void Arrow3d::SetOutlineEnabled(bool enabled) { m_enableOutline = enabled; }
void Arrow3d::SetOutlineEnabled(bool enabled)
{
m_enableOutline = enabled;
}
void Arrow3d::Render(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng,
ScreenBase const & screen, bool routingMode)
void Arrow3d::Render(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, ScreenBase const & screen,
bool routingMode)
{
// Render shadow.
if (m_shadowMesh && m_enableShadow && screen.isPerspective())
@@ -405,38 +410,34 @@ void Arrow3d::Render(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramM
if (m_shadowMesh && m_enableOutline && routingMode)
{
dp::Color const outlineColor = df::GetColorConstant(df::kArrow3DOutlineColor);
RenderArrow(context, mng, *m_shadowMesh, screen, gpu::Program::Arrow3dOutline, outlineColor,
0.0f /* dz */, kOutlineScale /* scaleFactor */);
RenderArrow(context, mng, *m_shadowMesh, screen, gpu::Program::Arrow3dOutline, outlineColor, 0.0f /* dz */,
kOutlineScale /* scaleFactor */);
}
// Render arrow.
if (m_arrowMeshTexturingEnabled)
{
// Use only alpha channel from arrow color for textured meshes.
auto const color =
dp::Color(255, 255, 255,
m_obsoletePosition ? df::GetColorConstant(df::kArrow3DObsoleteColor).GetAlpha()
: df::GetColorConstant(df::kArrow3DColor).GetAlpha());
auto const color = dp::Color(255, 255, 255,
m_obsoletePosition ? df::GetColorConstant(df::kArrow3DObsoleteColor).GetAlpha()
: df::GetColorConstant(df::kArrow3DColor).GetAlpha());
RenderArrow(context, mng, m_arrowMesh, screen, gpu::Program::Arrow3dTextured, color,
0.0f /* dz */, 1.0f /* scaleFactor */);
RenderArrow(context, mng, m_arrowMesh, screen, gpu::Program::Arrow3dTextured, color, 0.0f /* dz */,
1.0f /* scaleFactor */);
}
else
{
dp::Color const color =
df::GetColorConstant(m_obsoletePosition ? df::kArrow3DObsoleteColor : df::kArrow3DColor);
RenderArrow(context, mng, m_arrowMesh, screen, gpu::Program::Arrow3d, color, 0.0f /* dz */,
1.0f /* scaleFactor */);
dp::Color const color = df::GetColorConstant(m_obsoletePosition ? df::kArrow3DObsoleteColor : df::kArrow3DColor);
RenderArrow(context, mng, m_arrowMesh, screen, gpu::Program::Arrow3d, color, 0.0f /* dz */, 1.0f /* scaleFactor */);
}
}
void Arrow3d::RenderArrow(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng,
dp::MeshObject & mesh, ScreenBase const & screen, gpu::Program program,
dp::Color const & color, float dz, float scaleFactor)
void Arrow3d::RenderArrow(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::ProgramManager> mng, dp::MeshObject & mesh,
ScreenBase const & screen, gpu::Program program, dp::Color const & color, float dz,
float scaleFactor)
{
gpu::Arrow3dProgramParams params;
auto [transform, normalTransform] =
CalculateTransform(screen, dz, scaleFactor, context->GetApiVersion());
auto [transform, normalTransform] = CalculateTransform(screen, dz, scaleFactor, context->GetApiVersion());
params.m_transform = std::move(transform);
params.m_normalTransform = std::move(normalTransform);
params.m_color = glsl::ToVec4(color);
@@ -446,8 +447,7 @@ void Arrow3d::RenderArrow(ref_ptr<dp::GraphicsContext> context, ref_ptr<gpu::Pro
mesh.Render(context, gpuProgram, m_state, mng->GetParamsSetter(), params);
}
std::pair<glsl::mat4, glsl::mat4> Arrow3d::CalculateTransform(ScreenBase const & screen, float dz,
float scaleFactor,
std::pair<glsl::mat4, glsl::mat4> Arrow3d::CalculateTransform(ScreenBase const & screen, float dz, float scaleFactor,
dp::ApiVersion apiVersion) const
{
double arrowScale = VisualParams::Instance().GetVisualScale() * arrow3d::kArrowSize * scaleFactor;
@@ -459,36 +459,30 @@ std::pair<glsl::mat4, glsl::mat4> Arrow3d::CalculateTransform(ScreenBase const &
glm::quat const qx = glm::angleAxis(m_meshEulerAngles.x, glm::vec3{1.0f, 0.0f, 0.0f});
glm::quat const qy = glm::angleAxis(m_meshEulerAngles.y, glm::vec3{0.0f, 1.0f, 0.0f});
glm::quat qz =
glm::angleAxis(static_cast<float>(m_azimuth + screen.GetAngle() + m_meshEulerAngles.z),
glm::vec3{0.0f, 0.0f, -1.0f});
glm::quat qz = glm::angleAxis(static_cast<float>(m_azimuth + screen.GetAngle() + m_meshEulerAngles.z),
glm::vec3{0.0f, 0.0f, -1.0f});
auto const rotationMatrix = glm::mat4_cast(qz * qy * qx);
qz = glm::angleAxis(static_cast<float>(m_meshEulerAngles.z), glm::vec3{0.0f, 0.0f, -1.0f});
auto const normalMatrix = glm::mat4_cast(qz * qy * qx);
auto const scaleMatrix = glm::scale(
glm::mat4(1.0f),
glm::vec3{arrowScale, arrowScale, screen.isPerspective() ? arrowScale : 1.0} * m_meshScale);
glm::mat4(1.0f), glm::vec3{arrowScale, arrowScale, screen.isPerspective() ? arrowScale : 1.0} * m_meshScale);
auto const translationMatrix = glm::translate(glm::mat4(1.0f), m_meshOffset);
auto postProjectionScale =
glm::vec3{2.0f / screen.PixelRect().SizeX(), 2.0f / screen.PixelRect().SizeY(), 1.0f};
auto postProjectionScale = glm::vec3{2.0f / screen.PixelRect().SizeX(), 2.0f / screen.PixelRect().SizeY(), 1.0f};
postProjectionScale.z =
screen.isPerspective()
? std::min(postProjectionScale.x, postProjectionScale.y) * screen.GetScale3d()
: 0.1f;
screen.isPerspective() ? std::min(postProjectionScale.x, postProjectionScale.y) * screen.GetScale3d() : 0.1f;
auto const postProjectionScaleMatrix = glm::scale(glm::mat4(1.0f), postProjectionScale);
m2::PointD const pos = screen.GtoP(m_position);
auto const dX = static_cast<float>(2.0 * pos.x / screen.PixelRect().SizeX() - 1.0);
auto const dY = static_cast<float>(2.0 * pos.y / screen.PixelRect().SizeY() - 1.0);
auto const postProjectionTranslationMatrix =
glm::translate(glm::mat4(1.0f), glm::vec3{dX, -dY, dz});
auto const postProjectionTranslationMatrix = glm::translate(glm::mat4(1.0f), glm::vec3{dX, -dY, dz});
auto modelTransform = postProjectionTranslationMatrix * postProjectionScaleMatrix * scaleMatrix *
translationMatrix * rotationMatrix;
auto modelTransform =
postProjectionTranslationMatrix * postProjectionScaleMatrix * scaleMatrix * translationMatrix * rotationMatrix;
if (screen.isPerspective())
{