diff --git a/src/render/opengl/OpenGLRenderer.cpp b/src/render/opengl/OpenGLRenderer.cpp index 291e607..1a397a1 100644 --- a/src/render/opengl/OpenGLRenderer.cpp +++ b/src/render/opengl/OpenGLRenderer.cpp @@ -7,6 +7,7 @@ #include "OpenGLWater.h" #include "OpenGLTerrain.h" #include "CloudsRenderer.h" +#include "Color.h" #include "Scenery.h" #include "LightingManager.h" #include "GodRaysSampler.h" diff --git a/src/render/software/FluidMediumManager.cpp b/src/render/software/FluidMediumManager.cpp index 2466f7f..242e0f7 100644 --- a/src/render/software/FluidMediumManager.cpp +++ b/src/render/software/FluidMediumManager.cpp @@ -2,6 +2,7 @@ #include "SoftwareRenderer.h" #include "FluidMediumInterface.h" +#include "Color.h" FluidMediumManager::FluidMediumManager(SoftwareRenderer* renderer): renderer(renderer) diff --git a/src/render/software/RayCastingManager.h b/src/render/software/RayCastingManager.h index 2840e09..6bedf6b 100644 --- a/src/render/software/RayCastingManager.h +++ b/src/render/software/RayCastingManager.h @@ -3,19 +3,10 @@ #include "software_global.h" -#include "Color.h" -#include "Vector3.h" - namespace paysages { namespace software { -typedef struct -{ - int hit; - Color hit_color; - Vector3 hit_location; -} RayCastingResult; -typedef RayCastingResult (*FuncGeneralCastRay)(SoftwareRenderer* renderer, Vector3 start, Vector3 direction); +typedef RayCastingResult (*FuncGeneralCastRay)(SoftwareRenderer* renderer, const Vector3 &start, const Vector3 &direction); class SOFTWARESHARED_EXPORT RayCastingManager { diff --git a/src/render/software/RayCastingResult.cpp b/src/render/software/RayCastingResult.cpp new file mode 100644 index 0000000..26e680f --- /dev/null +++ b/src/render/software/RayCastingResult.cpp @@ -0,0 +1,6 @@ +#include "RayCastingResult.h" + +RayCastingResult::RayCastingResult() +{ + hit = false; +} diff --git a/src/render/software/RayCastingResult.h b/src/render/software/RayCastingResult.h new file mode 100644 index 0000000..5c81631 --- /dev/null +++ b/src/render/software/RayCastingResult.h @@ -0,0 +1,25 @@ +#ifndef RAYCASTINGRESULT_H +#define RAYCASTINGRESULT_H + +#include "software_global.h" + +#include "Color.h" +#include "Vector3.h" + +namespace paysages { +namespace software { + +class SOFTWARESHARED_EXPORT RayCastingResult +{ +public: + RayCastingResult(); + + bool hit; + Color hit_color; + Vector3 hit_location; +}; + +} +} + +#endif // RAYCASTINGRESULT_H diff --git a/src/render/software/SoftwareRenderer.cpp b/src/render/software/SoftwareRenderer.cpp index efcbc5f..f34ee76 100644 --- a/src/render/software/SoftwareRenderer.cpp +++ b/src/render/software/SoftwareRenderer.cpp @@ -21,6 +21,7 @@ #include "GodRaysResult.h" #include "System.h" #include "Thread.h" +#include "RayCastingResult.h" SoftwareRenderer::SoftwareRenderer(Scenery* scenery): scenery(scenery) diff --git a/src/render/software/SoftwareRenderer.h b/src/render/software/SoftwareRenderer.h index b8fe4ce..244921e 100644 --- a/src/render/software/SoftwareRenderer.h +++ b/src/render/software/SoftwareRenderer.h @@ -3,8 +3,6 @@ #include "software_global.h" -#include "RayCastingManager.h" - namespace paysages { namespace software { diff --git a/src/render/software/TerrainRenderer.cpp b/src/render/software/TerrainRenderer.cpp index 0019283..033a5c0 100644 --- a/src/render/software/TerrainRenderer.cpp +++ b/src/render/software/TerrainRenderer.cpp @@ -6,6 +6,7 @@ #include "TexturesRenderer.h" #include "LightComponent.h" #include "TerrainRayWalker.h" +#include "RayCastingResult.h" TerrainRenderer::TerrainRenderer(SoftwareRenderer* parent): parent(parent) diff --git a/src/render/software/TerrainRenderer.h b/src/render/software/TerrainRenderer.h index 0c9448c..ec462ba 100644 --- a/src/render/software/TerrainRenderer.h +++ b/src/render/software/TerrainRenderer.h @@ -5,7 +5,7 @@ #include "LightFilter.h" -#include "RayCastingManager.h" +#include "Vector3.h" #include "Color.h" namespace paysages { diff --git a/src/render/software/WaterRenderer.cpp b/src/render/software/WaterRenderer.cpp index 5dbe5d5..5a111f0 100644 --- a/src/render/software/WaterRenderer.cpp +++ b/src/render/software/WaterRenderer.cpp @@ -9,6 +9,7 @@ #include "SurfaceMaterial.h" #include "NoiseFunctionSimplex.h" #include "FloatNode.h" +#include "RayCastingResult.h" WaterRenderer::WaterRenderer(SoftwareRenderer* parent): parent(parent) diff --git a/src/render/software/software.pro b/src/render/software/software.pro index dc427d9..ab19edf 100644 --- a/src/render/software/software.pro +++ b/src/render/software/software.pro @@ -53,6 +53,7 @@ SOURCES += SoftwareRenderer.cpp \ clouds/CloudModelCumuloNimbus.cpp \ RenderProgress.cpp \ LightSource.cpp \ + RayCastingResult.cpp \ GodRaysSampler.cpp \ GodRaysResult.cpp @@ -97,6 +98,7 @@ HEADERS += SoftwareRenderer.h\ clouds/CloudModelCumuloNimbus.h \ RenderProgress.h \ LightSource.h \ + RayCastingResult.h \ GodRaysSampler.h \ GodRaysResult.h diff --git a/src/render/software/software_global.h b/src/render/software/software_global.h index f80e348..25e9e68 100644 --- a/src/render/software/software_global.h +++ b/src/render/software/software_global.h @@ -45,6 +45,9 @@ namespace software { class LightComponent; class LightSource; + class RayCastingManager; + class RayCastingResult; + class NightSky; class TerrainRayWalker;