/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2006.12.20 * ³» ¿ë : Á¤Àû Àå¸é ³ëµå * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "SceneNode.h" #include "MaterialData.h" class cNifAnimationInfo; class cNifTimeManager; /// Á¤Àû Àå¸é ³ëµå ÀÎÀÚ class cStaticSceneNodeParam : public cSceneNodeParam { public: cStaticSceneNodeParam(); public: /// ¾È°³ Àû¿ë ¿©ºÎ bool mFogApplied; /// ÀçÁú bool mMaterialApplied; cMaterialData mMaterial; /// °¡½Ã ·¹º§ unsigned int mVisibleLevel; /// Â÷Æó ·¹º§ unsigned int mOccludeLevel; bool mNoAttachLight; bool mDisableAnimation; }; inline cStaticSceneNodeParam::cStaticSceneNodeParam() : mFogApplied( true ) , mMaterialApplied( false ) , mVisibleLevel( 0 ) , mOccludeLevel( 1 ) , mDisableAnimation( false ) { mPickFrontOnly = false; mNoAttachLight = false; } /// Á¤Àû Àå¸é ³ëµå /// óÀ½¿¡ ÁÂÇ¥¸¦ ¼³Á¤Çϰí Àý´ë À̵¿ÇÏÁö ¾Ê´Â´Ù. /// Á¦ÀÚ¸®¿¡¼­ ¹Ýº¹ ¾Ö´Ï¸ÞÀ̼ÇÀ» ÇÒ ¼ö´Â ÀÖ´Ù. /// ÀçÁú, °¡½Ã ·¹º§, Â÷Æó ·¹º§ µîÀÇ Á¤º¸¸¦ °¡Áø´Ù. class cStaticSceneNode : public cSceneNode { friend class cSceneManager; public: /// ó¸® virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); virtual void ProcessVisibleLevel( unsigned long delatime ); /// Â÷Æó ·¹º§ unsigned int GetOccludeLevel() const; protected: cStaticSceneNode( eType type = eSTATIC ); virtual ~cStaticSceneNode(); /// ÃʱâÈ­ virtual bool Init( const cStaticSceneNodeParam& param ); bool Init( NiNode* node ); /// ÀçÁú void SetMaterial( const cMaterialData& material ); protected: /// ¾Ö´Ï ÄÁÆ®·Ñ·¯ÀÇ Á¤º¸ cNifAnimationInfo* mNifAniInfo; /// ÀçÁú cMaterialData mMaterial; /// °¡½Ã ·¹º§ unsigned int mVisibleLevel; /// Â÷Æó ·¹º§ unsigned int mOccludeLevel; /// Ä«¸Þ¶ó¿¡ °É¸² ¿©ºÎ bool mPickedByCamera; }; inline unsigned int cStaticSceneNode::GetOccludeLevel() const { return mOccludeLevel; } ////////////////////////////////////////////////////////////////////////// class cManagedStaticSceneNode : public cStaticSceneNode { friend class cSceneManager; public: void SetMouseOver( bool set ) { mIsMouseOver = set; } protected: cManagedStaticSceneNode( eType type = eMANAGEDSTATIC ); virtual ~cManagedStaticSceneNode(); protected: bool mIsMouseOver; };