707fd29b97
L'struct Rotation3D, la funció apply3dRotation i el paràmetre opcional rotation_3d de renderShape mai s'activaven en cap caller: - Ship, Enemy i Bullet passaven explícitament nullptr. - Title scene, logo scene, starfield, vector_text i ship_animator usaven el default nullptr (set els 7 callers). CLAUDE.md descriu un sistema 3D del title screen que ja no està viu — el comentari en ship_animator.cpp aclareix que la perspectiva s'ha bakeat dins de la shape, així que la rotació dinàmica era residu històric. Esborrats: struct Rotation3D + ctors + hasRotation(), apply3dRotation(), la branca rotation_3d a transformPoint() i el seu paràmetre, el paràmetre rotation_3d de renderShape, i els arguments nullptr als 3 callers d'entitats. Hallazgo #16 de CODE_REVIEW.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
// shape_renderer.hpp - Renderizado de formes vectorials
|
|
// © 2026 JailDesigner
|
|
|
|
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include <memory>
|
|
|
|
#include "core/graphics/shape.hpp"
|
|
#include "core/rendering/render_context.hpp"
|
|
#include "core/types.hpp"
|
|
|
|
namespace Rendering {
|
|
|
|
// Renderizar shape con transformacions
|
|
// - renderer: SDL renderer
|
|
// - shape: shape vectorial a draw
|
|
// - position: posición del centro en coordenades mundials
|
|
// - angle: rotación en radians (0 = amunt, sentit horari)
|
|
// - scale: factor de scale (1.0 = mida original)
|
|
// - progress: progrés de l'animación (0.0-1.0, default 1.0 = tot visible)
|
|
// - brightness: factor de brightness (0.0-1.0, default 1.0 = màxima brightness)
|
|
void renderShape(Rendering::Renderer* renderer,
|
|
const std::shared_ptr<Graphics::Shape>& shape,
|
|
const Vec2& position,
|
|
float angle,
|
|
float scale = 1.0F,
|
|
float progress = 1.0F,
|
|
float brightness = 1.0F,
|
|
SDL_Color color = {0, 0, 0, 0}); // alpha==0 → usa global oscilador
|
|
|
|
} // namespace Rendering
|