/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2006.12.07 * ³» ¿ë : ¿ÀºêÁ§Æ® ¹èÄ¡ ´ÙÀ̾ó·Î±× * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "UI/Dialog.h" #include "UI/CheckButton.h" #include "UI/CheckButtonGroup.h" #include "UI/NumericEdit.h" class cObjectGroup; /// ¿ÀºêÁ§Æ® ¹èÄ¡ ´ÙÀ̾ó·Î±× class cObjectTransformDialog : public cDialog { DECLARE_DYNAMIC(cObjectTransformDialog) public: cObjectTransformDialog(); ~cObjectTransformDialog(); void SetCheckedButton( int id ); unsigned int GetCheckedButton() const; /// °»½Å void UpdateObject( cObjectGroup* obj ); /// Ȱ¼ºÈ­ ¿©ºÎ void SetEnabled( bool enabled ); /// À§Ä¡ NiPoint3 GetTranslate() const; /// ȸÀü void GetRotate( float* xangle, float* yangle, float* zangle ) const; /// ¹èÀ² float GetScale() const; protected: virtual void DoDataExchange( CDataExchange* dx ); BOOL OnInitDialog(); virtual void OnOK() {} virtual void OnCancel() {} protected: DECLARE_MESSAGE_MAP() afx_msg void OnClickedButton(); afx_msg LRESULT OnChangedTransform( WPARAM id, LPARAM ); private: /// ¹öư cCheckButton mPickButton; cCheckButton mAttachToTerrainButton; cCheckButton mAttachToObjectButton; cCheckButtonGroup mButtonGroup; /// ¼ýÀÚ ¿¡µðÆ® cNumericEdit mTxEdit; cNumericEdit mTyEdit; cNumericEdit mTzEdit; cNumericEdit mRxEdit; cNumericEdit mRyEdit; cNumericEdit mRzEdit; cNumericEdit mSxEdit; }; inline void cObjectTransformDialog::SetEnabled( bool enabled ) { if( enabled ) { mTxEdit.SetEnabled( true ); mTyEdit.SetEnabled( true ); mTzEdit.SetEnabled( true ); mRxEdit.SetEnabled( true ); mRyEdit.SetEnabled( true ); mRzEdit.SetEnabled( true ); mSxEdit.SetEnabled( true ); } else { mTxEdit.SetValue( 0.0f ); mTyEdit.SetValue( 0.0f ); mTzEdit.SetValue( 0.0f ); mRxEdit.SetValue( 0.0f ); mRyEdit.SetValue( 0.0f ); mRzEdit.SetValue( 0.0f ); mSxEdit.SetValue( 0.0f ); mTxEdit.SetEnabled( false ); mTyEdit.SetEnabled( false ); mTzEdit.SetEnabled( false ); mRxEdit.SetEnabled( false ); mRyEdit.SetEnabled( false ); mRzEdit.SetEnabled( false ); mSxEdit.SetEnabled( false ); } } inline NiPoint3 cObjectTransformDialog::GetTranslate() const { float x = mTxEdit.GetValue() * 100; float y = mTyEdit.GetValue() * 100; float z = mTzEdit.GetValue() * 100; return NiPoint3( x, y, z ); } inline void cObjectTransformDialog::GetRotate( float* xangle, float* yangle, float* zangle ) const { *xangle = D3DXToRadian( mRxEdit.GetValue() ); *yangle = D3DXToRadian( mRyEdit.GetValue() ); *zangle = D3DXToRadian( mRzEdit.GetValue() ); } inline float cObjectTransformDialog::GetScale() const { return mSxEdit.GetValue(); }