All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WaterRenderable.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "PackedRenderable.h"
6 #include "LayerIds.h"
7 #include "Rendering.h"
8 #include "Culling.h"
9 #include "VectorMath.h"
10 #include <vector>
11 
12 namespace Eegeo
13 {
14  namespace Rendering
15  {
16  namespace Renderables
17  {
19  {
20  public:
22  LayerIds::Values layerId,
23  Materials::IMaterial* material,
24  Rendering::Mesh* pMesh,
25  Culling::CullingVolumeTree* pCullingVolumeTree,
26  const VertexLayouts::VertexBinding& vertexBinding,
27  Eegeo::dv3 ecefPosition,
28  Eegeo::v4 positionBoundsMin,
29  Eegeo::v4 positionBoundsMax,
30  Eegeo::v2 uvBoundsMin,
31  Eegeo::v2 uvBoundsMax);
32 
33  const Eegeo::m44& GetModelView() const { return m_modelView; }
34  const Eegeo::m44& GetModelViewForReflection() const { return m_modelViewForReflection; }
35 
36  virtual void Update(const Rendering::RenderContext& renderContext, float environmentFlatteningScale);
37  protected:
38 
39  void UpdateCachedFlatteningTransform(float environmentFlatteningScale);
40  Eegeo::m44 m_modelView;
41  Eegeo::m44 m_modelViewForReflection;
42  };
43  }
44  }
45 }