123
This commit is contained in:
49
CryAnimation/BoneLightDynamicBind.h
Normal file
49
CryAnimation/BoneLightDynamicBind.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#ifndef _BONE_LIGHT_DYNAMIC_BIND_HDR_
|
||||
#define _BONE_LIGHT_DYNAMIC_BIND_HDR_
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// this is used to bind the light sources dynamically.
|
||||
// it can update the light source's position and rotation
|
||||
// based on the relative position and rotation and the bone matrix
|
||||
class CBoneLightDynamicBind
|
||||
{
|
||||
public:
|
||||
|
||||
// returns the index of the bone to which the light source is bound
|
||||
unsigned getBone() const {return m_nBone;}
|
||||
|
||||
// initializes this object out of the given DLight structure and bone index
|
||||
// this is one-time call that is only required for construction out of the DLight
|
||||
// to initialize the constant parameters
|
||||
void init (ICryCharInstance* pParent, CDLight* pDLight, unsigned nBone, const Matrix44& matBone, bool bCopyLight);
|
||||
// deletes the light object, if needed
|
||||
void done();
|
||||
|
||||
// per-frame update of the DLight structure. Updates the light position and radius
|
||||
void updateDLight (const Matrix44& matBone, const Matrix44& matModel, float fRadiusMultiplier);
|
||||
|
||||
void debugDraw (const Matrix44& matBone, const Matrix44& matModel);
|
||||
|
||||
// returns true if this light source is local (affects only the character)
|
||||
bool isLocal()const;
|
||||
|
||||
bool isHeatSource()const;
|
||||
bool isLightSource()const;
|
||||
|
||||
CDLight* getDLight() {return m_pDLight;}
|
||||
|
||||
protected:
|
||||
CDLight* m_pDLight;
|
||||
// the bone to which this light is attached
|
||||
unsigned m_nBone;
|
||||
// the original DLight radius
|
||||
float m_fRadius;
|
||||
unsigned m_nDLightFlags;
|
||||
// the matrix in bone's coordinates
|
||||
Matrix44 m_matLight; // transform matrix of the light in the bone CS
|
||||
// should we delete the light upon final destruction of this object?
|
||||
bool m_bDeleteLight;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user