diff --git a/src/render/software/FluidMediumInterface.cpp b/src/render/software/FluidMediumInterface.cpp new file mode 100644 index 0000000..aa68a53 --- /dev/null +++ b/src/render/software/FluidMediumInterface.cpp @@ -0,0 +1 @@ +#include "FluidMediumInterface.h" diff --git a/src/render/software/FluidMediumInterface.h b/src/render/software/FluidMediumInterface.h new file mode 100644 index 0000000..7dc297e --- /dev/null +++ b/src/render/software/FluidMediumInterface.h @@ -0,0 +1,27 @@ +#ifndef FLUIDMEDIUMINTERFACE_H +#define FLUIDMEDIUMINTERFACE_H + +#include "software_global.h" + +namespace paysages { +namespace basics { + class SpaceCoordinate; +} +namespace software { + +/*! + * \brief Interface to a fluid medium compatible class. + */ +class SOFTWARESHARED_EXPORT FluidMediumInterface +{ +public: + /*! + * Return true if the object may interfere with the fluid medium on the given segment. + */ + virtual bool mayInfluence(const SpaceCoordinate& start, const SpaceCoordinate& end) const = 0; +}; + +} +} + +#endif // FLUIDMEDIUMINTERFACE_H diff --git a/src/render/software/global/FluidMediumTraversal.cpp b/src/render/software/FluidMediumTraversal.cpp similarity index 100% rename from src/render/software/global/FluidMediumTraversal.cpp rename to src/render/software/FluidMediumTraversal.cpp diff --git a/src/render/software/global/FluidMediumTraversal.h b/src/render/software/FluidMediumTraversal.h similarity index 90% rename from src/render/software/global/FluidMediumTraversal.h rename to src/render/software/FluidMediumTraversal.h index 6ef2ca9..7341f57 100644 --- a/src/render/software/global/FluidMediumTraversal.h +++ b/src/render/software/FluidMediumTraversal.h @@ -24,10 +24,11 @@ class SOFTWARESHARED_EXPORT FluidMediumTraversal { public: FluidMediumTraversal(SoftwareRenderer *renderer); + virtual ~FluidMediumTraversal(); void setCollector(FluidMediumCollector *collector); - virtual void getTraversedMedia(std::vector &media); + virtual void getTraversedMedia(std::vector &media, const SpaceCoordinates &start, const SpaceCoordinates &end); void collectHalfLine(const SpaceCoordinates &start, const Vector3 &direction); void collectSegment(const SpaceCoordinates &start, const SpaceCoordinates &end); diff --git a/src/render/software/SoftwareRenderer.cpp b/src/render/software/SoftwareRenderer.cpp index b246a4c..991240a 100644 --- a/src/render/software/SoftwareRenderer.cpp +++ b/src/render/software/SoftwareRenderer.cpp @@ -1,6 +1,6 @@ #include "SoftwareRenderer.h" -#include "global/FluidMediumTraversal.h" +#include "FluidMediumTraversal.h" SoftwareRenderer::SoftwareRenderer(Scenery* scenery): scenery(scenery) diff --git a/src/render/software/software.pro b/src/render/software/software.pro index 9305e18..1356e79 100644 --- a/src/render/software/software.pro +++ b/src/render/software/software.pro @@ -14,11 +14,13 @@ DEFINES += SOFTWARE_LIBRARY include(../../common.pri) SOURCES += SoftwareRenderer.cpp \ - global/FluidMediumTraversal.cpp + FluidMediumTraversal.cpp \ + FluidMediumInterface.cpp HEADERS += SoftwareRenderer.h\ software_global.h \ - global/FluidMediumTraversal.h + FluidMediumTraversal.h \ + FluidMediumInterface.h unix:!symbian { maemo5 {