Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members |
00001 // Copyright 2006-2011 by Kat'Oun 00002 00003 #ifndef _SHADER_PARAM_DATA_H_ 00004 #define _SHADER_PARAM_DATA_H_ 00005 00006 #include <EngineConfig.h> 00007 #include <core/Types.h> 00008 #include <render/Color.h> 00009 #include <core/Vector2d.h> 00010 #include <core/Vector3d.h> 00011 #include <core/Vector4d.h> 00012 #include <core/Matrix4.h> 00013 00014 namespace render 00015 { 00016 00017 class Light; 00018 class Camera; 00019 class Renderable; 00020 class Viewport; 00021 00022 class ENGINE_PUBLIC_EXPORT ShaderParamData 00023 { 00024 public: 00025 00026 ShaderParamData(); 00027 00028 void setWorldMatrices(const core::matrix4& m); 00029 void setCurrentRenderable(Renderable* rend); 00030 void setCurrentCamera(Camera* cam); 00031 void setCurrentViewport(Viewport* viewport); 00032 void setCurrentLight(Light* light); 00033 00034 const core::vector3d& getCameraPosition(); 00035 const core::vector3d& getCameraPositionObjectSpace(); 00036 00037 const core::vector3d& getCurrentLightPosition(); 00038 const core::vector3d& getCurrentLightPositionObjectSpace(); 00039 const core::vector3d& getCurrentLightPositionViewSpace(); 00040 const core::vector3d& getCurrentLightDirection(); 00041 const core::vector3d& getCurrentLightDirectionObjectSpace(); 00042 const core::vector3d& getCurrentLightDirectionViewSpace(); 00043 00044 void setAmbientLightColor(const Color& ambient); 00045 const Color& getAmbientLightColour() const; 00046 00047 const Color& getCurrentLightDiffuseColour() const; 00048 const Color& getCurrentLightSpecularColour() const; 00049 core::vector4d getCurrentLightAttenuation() const; 00050 00051 const core::matrix4& getWorldMatrix(); 00052 const core::matrix4& getViewMatrix(); 00053 const core::matrix4& getProjectionMatrix(); 00054 00055 const core::matrix4& getWorldViewMatrix(); 00056 const core::matrix4& getViewProjectionMatrix(); 00057 const core::matrix4& getWorldViewProjMatrix(); 00058 00059 const core::matrix4& getInverseWorldMatrix(); 00060 const core::matrix4& getInverseViewMatrix(); 00061 core::matrix4 getInverseProjectionMatrix(); 00062 00063 const core::matrix4& getInverseWorldViewMatrix(); 00064 core::matrix4 getInverseViewProjectionMatrix(); 00065 core::matrix4 getInverseWorldViewProjMatrix(); 00066 00067 core::matrix4 getTransposedWorldMatrix(); 00068 core::matrix4 getTransposedViewMatrix(); 00069 core::matrix4 getTransposedProjectionMatrix(); 00070 00071 core::matrix4 getTransposedWorldViewMatrix(); 00072 core::matrix4 getTransposedViewProjectionMatrix(); 00073 core::matrix4 getTransposedWorldViewProjMatrix(); 00074 00075 const core::matrix4& getInverseTransposedWorldMatrix(); 00076 core::matrix4 getInverseTransposedViewMatrix(); 00077 core::matrix4 getInverseTransposedProjectionMatrix(); 00078 00079 const core::matrix4& getInverseTransposedWorldViewMatrix(); 00080 core::matrix4 getInverseTransposedViewProjectionMatrix(); 00081 core::matrix4 getInverseTransposedWorldViewProjMatrix(); 00082 00083 protected: 00084 00085 core::matrix4 mWorldMatrix; 00086 core::matrix4 mViewMatrix; 00087 core::matrix4 mProjectionMatrix; 00088 00089 core::matrix4 mWorldViewMatrix; 00090 core::matrix4 mViewProjMatrix; 00091 core::matrix4 mWorldViewProjMatrix; 00092 00093 core::matrix4 mInverseWorldMatrix; 00094 core::matrix4 mInverseViewMatrix; 00095 00096 core::matrix4 mInverseWorldViewMatrix; 00097 00098 core::matrix4 mInverseTransposeWorldMatrix; 00099 00100 core::matrix4 mInverseTransposeWorldViewMatrix; 00101 00102 core::vector3d mCameraPosition; 00103 core::vector3d mCameraPositionObjectSpace; 00104 00105 core::vector3d mLightPosition; 00106 core::vector3d mLightPositionObjectSpace; 00107 core::vector3d mLightPositionViewSpace; 00108 00109 core::vector3d mLightDirection; 00110 core::vector3d mLightDirectionObjectSpace; 00111 core::vector3d mLightDirectionViewSpace; 00112 00113 Color mAmbientLightColor; 00114 Color mFogColor; 00115 00116 bool mWorldMatrixDirty; 00117 bool mViewMatrixDirty; 00118 bool mProjMatrixDirty; 00119 00120 bool mWorldViewMatrixDirty; 00121 bool mViewProjMatrixDirty; 00122 bool mWorldViewProjMatrixDirty; 00123 00124 bool mInverseWorldMatrixDirty; 00125 bool mInverseViewMatrixDirty; 00126 00127 bool mInverseWorldViewMatrixDirty; 00128 00129 bool mInverseTransposeWorldMatrixDirty; 00130 bool mInverseTransposeWorldViewMatrixDirty; 00131 00132 bool mCameraPositionDirty; 00133 bool mCameraPositionObjectSpaceDirty; 00134 00135 Renderable* mCurrentRenderable; 00136 Camera* mCurrentCamera; 00137 Light* mCurrentLight; 00138 Viewport* mCurrentViewport; 00139 00140 std::list<Light*> mLights; 00141 }; 00142 00143 } // end namespace render 00144 00145 #endif
The KG Game Engine
Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:05 by
Doxygen
(1.7.4)
|