mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-18 18:29:40 +02:00
A header first pulled in through an imported module's global module fragment leaves no include guard in the importing unit - macros do not cross a module boundary - so a later textual include parses it again and MSVC rejects the redefinition. Redoes the betterRenderer sweep with placement that stays out of #if blocks, which is where the previous one dropped <fstream> and broke nvrenderer_d3d12.cpp.
25 lines
683 B
C++
25 lines
683 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include "nvrenderer/nvrenderer.h"
|
|
|
|
// TSubModel/TModel3d are owned by the simulation core; a forward
|
|
// declaration here would be a second, conflicting declaration.
|
|
|
|
import eu07.simcore;
|
|
import eu07.glm;
|
|
namespace Rt {
|
|
struct IRtModel {
|
|
virtual TSubModel const* Intersect(NvRenderer::Renderable const& renderable,
|
|
glm::dvec3 const& ro,
|
|
glm::dvec3 const& rd) const {
|
|
return nullptr;
|
|
}
|
|
virtual ~IRtModel() = default;
|
|
};
|
|
|
|
std::shared_ptr<IRtModel> CreateRtModel(TModel3d const* src,
|
|
NvRenderer const* owner);
|
|
|
|
} // namespace Rt
|