My Project
Public Member Functions | Protected Member Functions | Friends | List of all members
ParaEngine::CMirrorSurface Class Reference

a reflective plane in the scene currently it only supports horizontal surface.Vertical surface and arbitrary surface may be supported in the future More...

#include <MirrorSurface.h>

Inheritance diagram for ParaEngine::CMirrorSurface:
ParaEngine::IAttributeFields ParaEngine::IObject ParaEngine::CRefCounted

Public Member Functions

 ATTRIBUTE_DEFINE_CLASS (CMirrorSurface)
 
void SetPosition (Vector3 vPos, bool bUseCloset=true)
 set the world position of the mirror. More...
 
void SetPlane (const Plane &plane)
 a plane object usually defines the normal of the plane. More...
 
bool IsEnabled ()
 
void SetEnabled (bool bEnabled)
 set enabled. More...
 
LPDIRECT3DTEXTURE9 GetReflectionTexture ()
 Get the reflection texture. More...
 
- Public Member Functions inherited from ParaEngine::IAttributeFields
virtual int GetAttributeClassID ()
 attribute class ID should be identical, unless one knows how overriding rules work. More...
 
virtual const char * GetAttributeClassName ()
 a static string, describing the attribute class object's name
 
virtual const char * GetAttributeClassDescription ()
 a static string, describing the attribute class object
 
virtual int InstallFields (CAttributeClass *pClass, bool bOverride)
 this class should be implemented if one wants to add new attribute. More...
 
virtual int GetChildAttributeColumnCount ()
 we support multi-dimensional child object. More...
 
virtual int GetChildAttributeObjectCount (int nColumnIndex=0)
 get the number of child objects (row count) in the given column. More...
 
virtual IAttributeFieldsGetChildAttributeObject (int nRowIndex, int nColumnIndex=0)
 
virtual IAttributeFieldsGetChildAttributeObject (const std::string &sName)
 get attribute by child object. More...
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *)
 
 ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s)
 
 ATTRIBUTE_METHOD (IAttributeFields, AddRef_s)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *)
 
 ATTRIBUTE_METHOD (IAttributeFields, Release_s)
 
virtual const std::string & GetIdentifier ()
 
virtual void SetIdentifier (const std::string &sID)
 
virtual bool IsModified ()
 whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More...
 
virtual void SetModified (bool bModified)
 set whether any field has been modified. More...
 
virtual bool ValidateFields ()
 validate all fields and return true if validation passed. More...
 
virtual string GetValidationMessage ()
 get the recent validation message due to the most recent call to ValidateFields()
 
virtual bool ResetField (int nFieldID)
 Reset the field to its initial or default value. More...
 
virtual bool InvokeEditor (int nFieldID, const std::string &sParameters)
 Invoke an (external) editor for a given field. More...
 
virtual bool AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0)
 add child object. More...
 
virtual void * QueryObjectByName (const std::string &sObjectType)
 convert to object of a given type. More...
 
virtual void * QueryObject (int nObjectType)
 convert to object of a given type. More...
 
virtual int GetTime ()
 get the current local time in case it is animated in milli seconds frames. More...
 
virtual void SetTime (int nTime)
 
virtual CDynamicAttributeFieldGetDynamicField (const std::string &sName)
 Get a dynamic field with a given name. More...
 
virtual CDynamicAttributeFieldGetDynamicField (int nIndex)
 Get a dynamic field with a given index. More...
 
virtual const char * GetDynamicFieldNameByIndex (int nIndex)
 get field name by index
 
virtual int GetDynamicFieldCount ()
 how many dynamic field this object currently have. More...
 
virtual int SetDynamicField (const std::string &sName, const CVariable &value)
 set a dynamic field with a given name. More...
 
virtual int AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType)
 add dynamic field and return field index
 
virtual void RemoveAllDynamicFields ()
 remove all dynamic fields
 
virtual int SaveDynamicFieldsToString (std::string &output)
 save only text dynamic fields to fieldname = value text strings. More...
 
virtual int LoadDynamicFieldsFromString (const std::string &input)
 load only text dynamic fields from string More...
 
CAttributeClassGetAttributeClass ()
 get the main attribute class object. More...
 
void PrintObject ()
 print the content of this object to a text file at temp/doc/[ClassName].txt. More...
 
- Public Member Functions inherited from ParaEngine::IObject
virtual void Clone (IObject *obj) const
 Clone the object's contains to a pointer. More...
 
virtual IObjectClone () const
 Clone the object's contains and return a pointer to the newly created object. More...
 
virtual bool Equals (const IObject *obj) const
 Compare the object with another object. More...
 
virtual const ITypeGetType () const
 
virtual std::string ToString () const
 
WeakPtr_typeGetWeakReference ()
 get weak reference object. More...
 
virtual int ProcessObjectEvent (const ObjectEvent &event)
 this function is only used to backward compatibility of ParaObject:AddEvent() function. More...
 
- Public Member Functions inherited from ParaEngine::CRefCounted
void addref () const
 add reference count of the object. More...
 
bool delref () const
 decrease reference count of the object. More...
 
int GetRefCount () const
 get the reference count
 
virtual int Release ()
 
CRefCountedAddToAutoReleasePool ()
 addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More...
 

Protected Member Functions

void SetMatrices (bool bPostPushMatrices=false, bool bPrePopMatrices=false)
 set up the rendering matrices for ocean rendering. More...
 
void InitDeviceObjects ()
 init device objects. More...
 
void RestoreDeviceObjects ()
 restore device object
 
void InvalidateDeviceObjects ()
 Invalid device object.
 
void DeleteDeviceObjects ()
 delete device objects
 
void Cleanup ()
 clean up all resource objects
 
void RenderReflectionTexture ()
 render the scene to the reflection surface if it is enabled. More...
 
- Protected Member Functions inherited from ParaEngine::IAttributeFields
virtual CAttributeClassCreateAttributeClass ()
 initialize fields
 
virtual CDynamicAttributesSetGetDynamicAttributes (bool bCreateIfNotExist=false)
 

Friends

class CSceneObject
 
class COceanManager
 

Additional Inherited Members

- Public Types inherited from ParaEngine::IAttributeFields
typedef ParaEngine::weak_ptr< IObject, IAttributeFieldsWeakPtr_type
 
- Public Types inherited from ParaEngine::IObject
typedef ParaEngine::weak_ptr< IObjectWeakPtr_type
 
- Static Public Member Functions inherited from ParaEngine::IAttributeFields
static HRESULT GetAttributeClassID_s (IAttributeFields *cls, int *p1)
 
static HRESULT GetAttributeClassName_s (IAttributeFields *cls, const char **p1)
 
static bool OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false)
 Open a given file with the default registered editor in the game engine. More...
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 

Detailed Description

a reflective plane in the scene currently it only supports horizontal surface.Vertical surface and arbitrary surface may be supported in the future

Member Function Documentation

§ GetReflectionTexture()

LPDIRECT3DTEXTURE9 CMirrorSurface::GetReflectionTexture ( )

Get the reflection texture.

This function will enable this object. see SetEnabled(); when the reflection map is built this object will be disabled.

Returns
NULL if reflection texture is not ready.

§ InitDeviceObjects()

void CMirrorSurface::InitDeviceObjects ( )
protected

init device objects.

the create() function must be called, before this function is called.

§ IsEnabled()

bool ParaEngine::CMirrorSurface::IsEnabled ( )
inline
Returns
whether it is enabled.

§ RenderReflectionTexture()

void CMirrorSurface::RenderReflectionTexture ( void  )
protected

render the scene to the reflection surface if it is enabled.

after calling this function, this mirror object is always disabled. at least one scene object must call GetReflectionTexture() in order to update reflection map in the subsequent frames. This function is called by the scene manager object.

§ SetEnabled()

void ParaEngine::CMirrorSurface::SetEnabled ( bool  bEnabled)
inline

set enabled.

Parameters
bEnabled

§ SetMatrices()

void CMirrorSurface::SetMatrices ( bool  bPostPushMatrices = false,
bool  bPrePopMatrices = false 
)
protected

set up the rendering matrices for ocean rendering.

Parameters
bPostPushMatrices:Whenmatrices are set, push them to the global matrix stack.
bPrePopMatricesBefore setting matrices, first pop matrix on the global matrix stack.

§ SetPlane()

void CMirrorSurface::SetPlane ( const Plane plane)

a plane object usually defines the normal of the plane.

The world position of the mirror surface is determined by the plane offset by the position.

Parameters
planedefault value is (0,1,0,0).

§ SetPosition()

void CMirrorSurface::SetPosition ( Vector3  vPos,
bool  bUseCloset = true 
)

set the world position of the mirror.

It will automatically enable or disable the surface based on the relative position of the object and the current camera eye position in the scene state object.

Parameters
vPoscurrently only y component is used.
bUseClosetif true, multiple calls of this functions to an enabled surface will have the same result as the closest position to the current camera eye position.

The documentation for this class was generated from the following files: