OgreAutoParamDataSource.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of OGRE
4  (Object-oriented Graphics Rendering Engine)
5 For the latest info, see http://www.ogre3d.org
6 
7 Copyright (c) 2000-2013 Torus Knot Software Ltd
8 
9 Permission is hereby granted, free of charge, to any person obtaining a copy
10 of this software and associated documentation files (the "Software"), to deal
11 in the Software without restriction, including without limitation the rights
12 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 copies of the Software, and to permit persons to whom the Software is
14 furnished to do so, subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be included in
17 all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 THE SOFTWARE.
26 -----------------------------------------------------------------------------
27 */
28 #ifndef __AutoParamDataSource_H_
29 #define __AutoParamDataSource_H_
30 
31 #include "OgrePrerequisites.h"
32 #include "OgreCommon.h"
33 #include "OgreMatrix4.h"
34 #include "OgreVector4.h"
35 #include "OgreLight.h"
36 #include "OgreColourValue.h"
37 
38 namespace Ogre {
39 
40  // forward decls
41  struct VisibleObjectsBoundsInfo;
61  {
62  protected:
63  const Light& getLight(size_t index) const;
64  mutable Matrix4 mWorldMatrix[256];
65  mutable size_t mWorldMatrixCount;
66  mutable const Matrix4* mWorldMatrixArray;
77  mutable Matrix4 mTextureViewProjMatrix[OGRE_MAX_SIMULTANEOUS_LIGHTS];
78  mutable Matrix4 mTextureWorldViewProjMatrix[OGRE_MAX_SIMULTANEOUS_LIGHTS];
79  mutable Matrix4 mSpotlightViewProjMatrix[OGRE_MAX_SIMULTANEOUS_LIGHTS];
80  mutable Matrix4 mSpotlightWorldViewProjMatrix[OGRE_MAX_SIMULTANEOUS_LIGHTS];
81  mutable Vector4 mShadowCamDepthRanges[OGRE_MAX_SIMULTANEOUS_LIGHTS];
87 
88  mutable bool mWorldMatrixDirty;
89  mutable bool mViewMatrixDirty;
90  mutable bool mProjMatrixDirty;
91  mutable bool mWorldViewMatrixDirty;
92  mutable bool mViewProjMatrixDirty;
99  mutable bool mCameraPositionDirty;
101  mutable bool mTextureViewProjMatrixDirty[OGRE_MAX_SIMULTANEOUS_LIGHTS];
102  mutable bool mTextureWorldViewProjMatrixDirty[OGRE_MAX_SIMULTANEOUS_LIGHTS];
103  mutable bool mSpotlightViewProjMatrixDirty[OGRE_MAX_SIMULTANEOUS_LIGHTS];
104  mutable bool mSpotlightWorldViewProjMatrixDirty[OGRE_MAX_SIMULTANEOUS_LIGHTS];
105  mutable bool mShadowCamDepthRangesDirty[OGRE_MAX_SIMULTANEOUS_LIGHTS];
109  mutable int mPassNumber;
111  mutable bool mSceneDepthRangeDirty;
114 
120  const Frustum* mCurrentTextureProjector[OGRE_MAX_SIMULTANEOUS_LIGHTS];
126 
128  public:
132  virtual void setCurrentRenderable(const Renderable* rend);
134  virtual void setWorldMatrices(const Matrix4* m, size_t count);
136  virtual void setCurrentCamera(const Camera* cam, bool useCameraRelative);
138  virtual void setCurrentLightList(const LightList* ll);
140  virtual void setTextureProjector(const Frustum* frust, size_t index);
142  virtual void setCurrentRenderTarget(const RenderTarget* target);
144  virtual void setCurrentViewport(const Viewport* viewport);
150  virtual void setCurrentSceneManager(const SceneManager* sm);
152  virtual void setCurrentPass(const Pass* pass);
153 
154 
155 
156  virtual const Matrix4& getWorldMatrix(void) const;
157  virtual const Matrix4* getWorldMatrixArray(void) const;
158  virtual size_t getWorldMatrixCount(void) const;
159  virtual const Matrix4& getViewMatrix(void) const;
160  virtual const Matrix4& getViewProjectionMatrix(void) const;
161  virtual const Matrix4& getProjectionMatrix(void) const;
162  virtual const Matrix4& getWorldViewProjMatrix(void) const;
163  virtual const Matrix4& getWorldViewMatrix(void) const;
164  virtual const Matrix4& getInverseWorldMatrix(void) const;
165  virtual const Matrix4& getInverseWorldViewMatrix(void) const;
166  virtual const Matrix4& getInverseViewMatrix(void) const;
167  virtual const Matrix4& getInverseTransposeWorldMatrix(void) const;
168  virtual const Matrix4& getInverseTransposeWorldViewMatrix(void) const;
169  virtual const Vector4& getCameraPosition(void) const;
170  virtual const Vector4& getCameraPositionObjectSpace(void) const;
171  virtual const Vector4& getLodCameraPosition(void) const;
172  virtual const Vector4& getLodCameraPositionObjectSpace(void) const;
173  virtual bool hasLightList() const { return mCurrentLightList != 0; }
175  virtual float getLightNumber(size_t index) const;
176  virtual float getLightCount() const;
177  virtual float getLightCastsShadows(size_t index) const;
178  virtual const ColourValue& getLightDiffuseColour(size_t index) const;
179  virtual const ColourValue& getLightSpecularColour(size_t index) const;
180  virtual const ColourValue getLightDiffuseColourWithPower(size_t index) const;
181  virtual const ColourValue getLightSpecularColourWithPower(size_t index) const;
182  virtual const Vector3& getLightPosition(size_t index) const;
183  virtual Vector4 getLightAs4DVector(size_t index) const;
184  virtual const Vector3& getLightDirection(size_t index) const;
185  virtual Real getLightPowerScale(size_t index) const;
186  virtual Vector4 getLightAttenuation(size_t index) const;
187  virtual Vector4 getSpotlightParams(size_t index) const;
188  virtual void setAmbientLightColour(const ColourValue& ambient);
189  virtual const ColourValue& getAmbientLightColour(void) const;
190  virtual const ColourValue& getSurfaceAmbientColour(void) const;
191  virtual const ColourValue& getSurfaceDiffuseColour(void) const;
192  virtual const ColourValue& getSurfaceSpecularColour(void) const;
193  virtual const ColourValue& getSurfaceEmissiveColour(void) const;
194  virtual Real getSurfaceShininess(void) const;
195  virtual Real getSurfaceAlphaRejectionValue(void) const;
197  virtual ColourValue getDerivedSceneColour(void) const;
198  virtual void setFog(FogMode mode, const ColourValue& colour, Real expDensity, Real linearStart, Real linearEnd);
199  virtual const ColourValue& getFogColour(void) const;
200  virtual const Vector4& getFogParams(void) const;
201  virtual const Matrix4& getTextureViewProjMatrix(size_t index) const;
202  virtual const Matrix4& getTextureWorldViewProjMatrix(size_t index) const;
203  virtual const Matrix4& getSpotlightViewProjMatrix(size_t index) const;
204  virtual const Matrix4& getSpotlightWorldViewProjMatrix(size_t index) const;
205  virtual const Matrix4& getTextureTransformMatrix(size_t index) const;
206  virtual const RenderTarget* getCurrentRenderTarget(void) const;
207  virtual const Renderable* getCurrentRenderable(void) const;
208  virtual const Pass* getCurrentPass(void) const;
209  virtual Vector4 getTextureSize(size_t index) const;
210  virtual Vector4 getInverseTextureSize(size_t index) const;
211  virtual Vector4 getPackedTextureSize(size_t index) const;
212  virtual Real getShadowExtrusionDistance(void) const;
213  virtual const Vector4& getSceneDepthRange() const;
214  virtual const Vector4& getShadowSceneDepthRange(size_t index) const;
215  virtual const ColourValue& getShadowColour() const;
216  virtual Matrix4 getInverseViewProjMatrix(void) const;
229  virtual Real getTime(void) const;
230  virtual Real getTime_0_X(Real x) const;
231  virtual Real getCosTime_0_X(Real x) const;
232  virtual Real getSinTime_0_X(Real x) const;
233  virtual Real getTanTime_0_X(Real x) const;
234  virtual Vector4 getTime_0_X_packed(Real x) const;
235  virtual Real getTime_0_1(Real x) const;
236  virtual Real getCosTime_0_1(Real x) const;
237  virtual Real getSinTime_0_1(Real x) const;
238  virtual Real getTanTime_0_1(Real x) const;
239  virtual Vector4 getTime_0_1_packed(Real x) const;
240  virtual Real getTime_0_2Pi(Real x) const;
241  virtual Real getCosTime_0_2Pi(Real x) const;
242  virtual Real getSinTime_0_2Pi(Real x) const;
243  virtual Real getTanTime_0_2Pi(Real x) const;
245  virtual Real getFrameTime(void) const;
246  virtual Real getFPS() const;
247  virtual Real getViewportWidth() const;
248  virtual Real getViewportHeight() const;
249  virtual Real getInverseViewportWidth() const;
251  virtual Vector3 getViewDirection() const;
252  virtual Vector3 getViewSideVector() const;
253  virtual Vector3 getViewUpVector() const;
254  virtual Real getFOV() const;
255  virtual Real getNearClipDistance() const;
256  virtual Real getFarClipDistance() const;
257  virtual int getPassNumber(void) const;
258  virtual void setPassNumber(const int passNumber);
259  virtual void incPassNumber(void);
261  };
264 }
265 
266 #endif
#define OGRE_MAX_SIMULTANEOUS_LIGHTS
Define max number of lights allowed per pass.
Definition: OgreConfig.h:76
#define _OgreExport
Definition: OgrePlatform.h:257
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
This utility class is used to hold the information used to generate the matrices and other informatio...
virtual const Matrix4 & getWorldViewProjMatrix(void) const
virtual void setCurrentCamera(const Camera *cam, bool useCameraRelative)
Updates the current camera.
virtual Vector4 getTime_0_2Pi_packed(Real x) const
virtual Vector4 getSpotlightParams(size_t index) const
virtual const Matrix4 & getTextureTransformMatrix(size_t index) const
virtual const ColourValue & getSurfaceEmissiveColour(void) const
virtual Real getFarClipDistance() const
virtual const ColourValue & getFogColour(void) const
virtual const Matrix4 & getWorldMatrix(void) const
virtual Matrix4 getTransposeViewProjMatrix() const
virtual Real getTime_0_X(Real x) const
virtual const Matrix4 & getWorldViewMatrix(void) const
virtual Real getTanTime_0_X(Real x) const
virtual const ColourValue & getSurfaceAmbientColour(void) const
virtual const Vector4 & getFogParams(void) const
const RenderTarget * mCurrentRenderTarget
virtual Real getTime_0_1(Real x) const
virtual void setCurrentRenderTarget(const RenderTarget *target)
Sets the current render target.
virtual ColourValue getDerivedSceneColour(void) const
virtual const ColourValue & getSurfaceSpecularColour(void) const
virtual const Matrix4 & getTextureWorldViewProjMatrix(size_t index) const
virtual Real getFPS() const
virtual const Matrix4 & getViewMatrix(void) const
virtual void setCurrentRenderable(const Renderable *rend)
Updates the current renderable.
virtual int getPassNumber(void) const
virtual const Matrix4 & getSpotlightViewProjMatrix(size_t index) const
virtual Real getInverseViewportHeight() const
virtual Real getTanTime_0_2Pi(Real x) const
virtual Matrix4 getTransposeWorldViewProjMatrix() const
virtual const Vector3 & getLightDirection(size_t index) const
virtual ColourValue getDerivedAmbientLightColour(void) const
virtual const Matrix4 & getViewProjectionMatrix(void) const
virtual Matrix4 getInverseTransposeViewMatrix() const
virtual Vector3 getViewDirection() const
virtual const Matrix4 & getInverseWorldViewMatrix(void) const
const Light & getLight(size_t index) const
virtual Real getFOV() const
virtual void setWorldMatrices(const Matrix4 *m, size_t count)
Sets the world matrices, avoid query from renderable again.
virtual Real getSurfaceAlphaRejectionValue(void) const
virtual void setPassNumber(const int passNumber)
virtual void setCurrentLightList(const LightList *ll)
Sets the light list that should be used, and it's base index from the global list.
virtual const Vector4 & getLodCameraPosition(void) const
virtual Real getTanTime_0_1(Real x) const
virtual Real getNearClipDistance() const
virtual Matrix4 getInverseTransposeViewProjMatrix() const
const SceneManager * mCurrentSceneManager
virtual Matrix4 getInverseTransposeProjectionMatrix() const
virtual Vector4 getTime_0_1_packed(Real x) const
virtual Vector3 getViewSideVector() const
virtual Matrix4 getTransposeProjectionMatrix() const
virtual const ColourValue getLightSpecularColourWithPower(size_t index) const
virtual Matrix4 getInverseTransposeWorldViewProjMatrix() const
virtual Real getSinTime_0_X(Real x) const
virtual const Vector4 & getSceneDepthRange() const
virtual float getLightCount() const
virtual Vector4 getLightAs4DVector(size_t index) const
virtual Matrix4 getInverseViewProjMatrix(void) const
virtual void updateLightCustomGpuParameter(const GpuProgramParameters::AutoConstantEntry &constantEntry, GpuProgramParameters *params) const
virtual void setCurrentViewport(const Viewport *viewport)
Sets the current viewport.
virtual Matrix4 getTransposeViewMatrix() const
virtual Real getLightPowerScale(size_t index) const
virtual Vector4 getLightAttenuation(size_t index) const
virtual void setAmbientLightColour(const ColourValue &ambient)
virtual const ColourValue & getShadowColour() const
virtual const Pass * getCurrentPass(void) const
virtual Real getTime_0_2Pi(Real x) const
virtual void setShadowDirLightExtrusionDistance(Real dist)
Sets the shadow extrusion distance to be used for point lights.
virtual Real getCosTime_0_1(Real x) const
virtual const Vector4 & getLodCameraPositionObjectSpace(void) const
virtual Real getCosTime_0_2Pi(Real x) const
virtual Matrix4 getTransposeWorldMatrix() const
virtual const ColourValue & getAmbientLightColour(void) const
virtual const Matrix4 & getProjectionMatrix(void) const
virtual Vector3 getViewUpVector() const
virtual Real getCosTime_0_X(Real x) const
virtual float getLightCastsShadows(size_t index) const
virtual const RenderTarget * getCurrentRenderTarget(void) const
virtual float getLightNumber(size_t index) const
Get the light which is 'index'th closest to the current object.
virtual void setCurrentPass(const Pass *pass)
Sets the current pass.
virtual const Matrix4 & getInverseTransposeWorldViewMatrix(void) const
virtual Real getInverseViewportWidth() const
virtual Real getTime(void) const
virtual void setMainCamBoundsInfo(VisibleObjectsBoundsInfo *info)
Sets the main camera's scene bounding information.
virtual Real getShadowExtrusionDistance(void) const
virtual const Matrix4 & getTextureViewProjMatrix(size_t index) const
virtual const ColourValue & getSurfaceDiffuseColour(void) const
virtual Real getViewportWidth() const
virtual Vector4 getTime_0_X_packed(Real x) const
virtual const Vector4 & getCameraPosition(void) const
virtual const Vector4 & getCameraPositionObjectSpace(void) const
virtual const Matrix4 & getInverseViewMatrix(void) const
virtual Real getViewportHeight() const
virtual const Matrix4 & getSpotlightWorldViewProjMatrix(size_t index) const
const VisibleObjectsBoundsInfo * mMainCamBoundsInfo
virtual const Matrix4 * getWorldMatrixArray(void) const
virtual void incPassNumber(void)
virtual const Renderable * getCurrentRenderable(void) const
virtual const ColourValue getLightDiffuseColourWithPower(size_t index) const
virtual size_t getWorldMatrixCount(void) const
virtual Real getSinTime_0_2Pi(Real x) const
virtual Vector4 getTextureSize(size_t index) const
virtual Real getSinTime_0_1(Real x) const
virtual void setTextureProjector(const Frustum *frust, size_t index)
Sets the current texture projector for a index.
virtual Vector4 getInverseTextureSize(size_t index) const
virtual Matrix4 getTransposeWorldViewMatrix() const
virtual void setFog(FogMode mode, const ColourValue &colour, Real expDensity, Real linearStart, Real linearEnd)
virtual Matrix4 getInverseProjectionMatrix() const
virtual const Vector3 & getLightPosition(size_t index) const
virtual Matrix4 getInverseWorldViewProjMatrix() const
virtual const Matrix4 & getInverseTransposeWorldMatrix(void) const
virtual Vector4 getPackedTextureSize(size_t index) const
virtual const Matrix4 & getInverseWorldMatrix(void) const
virtual void setCurrentSceneManager(const SceneManager *sm)
Set the current scene manager for enquiring on demand.
virtual const ColourValue & getLightSpecularColour(size_t index) const
virtual Real getSurfaceShininess(void) const
virtual Real getFrameTime(void) const
virtual const Vector4 & getShadowSceneDepthRange(size_t index) const
virtual const ColourValue & getLightDiffuseColour(size_t index) const
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:87
Class representing colour.
A frustum represents a pyramid, capped at the near and far end which is used to represent either a vi...
Definition: OgreFrustum.h:86
Structure recording the use of an automatic parameter.
Collects together the program parameters used for a GpuProgram.
Representation of a dynamic light source in the scene.
Definition: OgreLight.h:74
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: OgreMatrix4.h:79
Class defining a single pass of a Technique (of a Material), i.e.
Definition: OgrePass.h:81
A 'canvas' which can receive the results of a rendering operation.
Abstract class defining the interface all renderable objects must implement.
Manages the organisation and rendering of a 'scene' i.e.
Standard 3-dimensional vector.
Definition: OgreVector3.h:52
4-dimensional homogeneous vector.
Definition: OgreVector4.h:46
An abstraction of a viewport, i.e.
Definition: OgreViewport.h:58
FogMode
Fog modes.
Definition: OgreCommon.h:122
float Real
Software floating point type.
Structure collecting together information about the visible objects that have been discovered in a sc...

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.