00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_PlacementShadowDefinitionh_INCLUDE__)
00022 #define __INCLUDE_PlacementShadowDefinitionh_INCLUDE__
00023
00024 #include <XML/XMLNode.h>
00025 #include <common/ImageID.h>
00026
00027 class ScorchedContext;
00028 class PlacementShadowDefinition
00029 {
00030 public:
00031 struct Entry
00032 {
00033 Entry(PlacementShadowDefinition *definition,
00034 FixedVector &position,
00035 FixedVector &size) :
00036 definition_(definition),
00037 position_(position), size_(size) { }
00038
00039 PlacementShadowDefinition *definition_;
00040 FixedVector position_;
00041 FixedVector size_;
00042 };
00043
00044 PlacementShadowDefinition();
00045 virtual ~PlacementShadowDefinition();
00046
00047 virtual bool readXML(XMLNode *node, const char *base);
00048
00049 void updateLandscapeHeight(ScorchedContext &context,
00050 FixedVector &position, FixedVector &size);
00051 void updateLandscapeTexture(bool useShadows,
00052 ScorchedContext &context,
00053 FixedVector &position, FixedVector &size);
00054
00055 void setDrawShadow(bool draw) { drawShadow_ = draw; }
00056
00057 protected:
00058 bool drawShadow_;
00059 fixed flattenArea_;
00060 ImageID groundMap_;
00061 };
00062
00063 #endif // __INCLUDE_PlacementShadowDefinitionh_INCLUDE__