📄 faceattributesdialog.cpp
字号:
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditYScale, &m_TextureYScale, 1.0f, "1.0");
SelFaceList_Enum (m_pDoc->pSelFaces, ChangeTextureYScale, &m_TextureYScale);
AssignCurrentToViews ();
}
static geBoolean ChangeLightXScale (Face *pFace, void *lParam)
{
float *pXScale = (float *)lParam;
float xScale, yScale;
Face_GetLightScale (pFace, &xScale, &yScale);
Face_SetLightScale (pFace, *pXScale, yScale);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusEditxlightscale()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_LightXScale;
if (GetDlgItemInt(IDC_EDITXLIGHTSCALE) == NULL)
{
this->SetDlgItemInt(IDC_EDITXLIGHTSCALE, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditLightXScale, &m_LightXScale, 1.0f, "1.0");
SelFaceList_Enum (m_pDoc->pSelFaces, ChangeLightXScale, &m_LightXScale);
AssignCurrentToViews ();
}
static geBoolean ChangeLightYScale (Face *pFace, void *lParam)
{
float *pYScale = (float *)lParam;
float xScale, yScale;
Face_GetLightScale (pFace, &xScale, &yScale);
Face_SetLightScale (pFace, xScale, *pYScale);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusEditylightscale()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_LightYScale;
if (GetDlgItemInt(IDC_EDITYLIGHTSCALE) == NULL)
{
this->SetDlgItemInt(IDC_EDITYLIGHTSCALE, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditLightYScale, &m_LightYScale, 1.0f, "1.0");
SelFaceList_Enum (m_pDoc->pSelFaces, ChangeLightYScale, &m_LightYScale);
AssignCurrentToViews ();
}
static geBoolean ChangeTextureAngle (Face *pFace, void *lParam)
{
float *pAngle = (float *)lParam;
Face_SetTextureRotate (pFace, *pAngle);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusAngle()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_TextureAngle;
if (GetDlgItemInt(IDC_EDITANGLE) == NULL)
{
this->SetDlgItemInt(IDC_EDITANGLE, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditAngle, &m_TextureAngle, 0, "0");
SelFaceList_Enum (m_pDoc->pSelFaces, ::ChangeTextureAngle, &m_TextureAngle);
AssignCurrentToViews ();
}
static geBoolean ChangeLightIntensity (Face *pFace, void *lParam)
{
int *pIntensity = (int *)lParam;
Face_SetLightIntensity (pFace, *pIntensity);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusFacelightintensity()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_LightIntensity;
if (GetDlgItemInt(IDC_FACELIGHTINTENSITY) == NULL)
{
this->SetDlgItemInt(IDC_FACELIGHTINTENSITY, lastValue);
return;
}
UpdateData (TRUE);
OnIntKillFocus (m_EditLightIntensity, &m_LightIntensity, 300, "300");
SelFaceList_Enum (m_pDoc->pSelFaces, ::ChangeLightIntensity, &m_LightIntensity);
AssignCurrentToViews ();
}
static geBoolean ChangeMipMapBias (Face *pFace, void *lParam)
{
float *pMipMapBias = (float *)lParam;
Face_SetMipMapBias (pFace, *pMipMapBias);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusMipmapbias()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_MipMapBias;
if (GetDlgItemInt(IDC_MIPMAPBIAS) == NULL)
{
this->SetDlgItemInt(IDC_MIPMAPBIAS, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditMipMapBias, &m_MipMapBias, 0, "1.0");
SelFaceList_Enum (m_pDoc->pSelFaces, ::ChangeMipMapBias, &m_MipMapBias);
AssignCurrentToViews ();
}
static geBoolean ChangeReflectivity (Face *pFace, void *lParam)
{
float *pReflectivity = (float *)lParam;
Face_SetReflectivity (pFace, *pReflectivity);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusReflectivity()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_Reflectivity;
if (GetDlgItemInt(IDC_REFLECTIVITY) == NULL)
{
this->SetDlgItemInt(IDC_REFLECTIVITY, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditReflectivity, &m_Reflectivity, 0, "1.0");
if(m_Reflectivity < 0.0f)
{
m_Reflectivity =0.0f;
}
else if(m_Reflectivity > 255.0f)
{
m_Reflectivity =10.0f;
}
SelFaceList_Enum (m_pDoc->pSelFaces, ::ChangeReflectivity, &m_Reflectivity);
AssignCurrentToViews ();
}
static geBoolean ChangeTranslucency (Face *pFace, void *lParam)
{
float *pTranslucency = (float *)lParam;
Face_SetTranslucency (pFace, *pTranslucency);
return GE_TRUE;
}
void CFaceAttributesDialog::OnKillfocusFacetranslucency()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
int lastValue = m_Translucency;
if (GetDlgItemInt(IDC_FACETRANSLUCENCY) == NULL)
{
this->SetDlgItemInt(IDC_FACETRANSLUCENCY, lastValue);
return;
}
UpdateData (TRUE);
OnFloatKillFocus (m_EditTranslucency, &m_Translucency, 0, "255.0");
if(m_Translucency < 0.0f)
{
m_Translucency =0.0f;
}
else if(m_Translucency > 255.0f)
{
m_Translucency =255.0f;
}
SelFaceList_Enum (m_pDoc->pSelFaces, ::ChangeTranslucency, &m_Translucency);
AssignCurrentToViews ();
}
static geBoolean FlipVertical (Face *pFace, void *)
{
float xScale, yScale;
Face_GetTextureScale (pFace, &xScale, &yScale);
Face_SetTextureScale (pFace, xScale, -yScale);
return GE_TRUE;
}
// Flip it vertical by inverting the Y scale sign...
void CFaceAttributesDialog::OnFlipvertical()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData(TRUE);
m_TextureYScale = -m_TextureYScale;
UpdateData(FALSE);
SelFaceList_Enum (m_pDoc->pSelFaces, FlipVertical, NULL);
AssignCurrentToViews();
}
static geBoolean FlipHorizontal (Face *pFace, void *)
{
float xScale, yScale;
Face_GetTextureScale (pFace, &xScale, &yScale);
Face_SetTextureScale (pFace, -xScale, yScale);
return GE_TRUE;
}
// Same here except flip it horizontal...
void CFaceAttributesDialog::OnFliphorizontal()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData(TRUE);
m_TextureXScale = -m_TextureXScale;
UpdateData(FALSE);
SelFaceList_Enum (m_pDoc->pSelFaces, FlipHorizontal, NULL);
AssignCurrentToViews();
}
static geBoolean SetLight (Face *pFace, void *lParam)
{
BOOL *pLight = (BOOL *)lParam;
Face_SetLight (pFace, *pLight);
return GE_TRUE;
}
void CFaceAttributesDialog::OnFacelight( void )
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
GetDlgItem( IDC_FACELIGHTINTENSITY )->EnableWindow( m_Light ) ;
SelFaceList_Enum (m_pDoc->pSelFaces, SetLight, &m_Light);
AssignCurrentToViews ();
}
static geBoolean SetMirror (Face *pFace, void *lParam)
{
BOOL *pMirror = (BOOL *)lParam;
Face_SetMirror (pFace, *pMirror);
return GE_TRUE;
}
void CFaceAttributesDialog::OnFacemirror()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, SetMirror, &m_Mirror);
AssignCurrentToViews ();
}
static geBoolean SetSky (Face *pFace, void *lParam)
{
BOOL *pSky = (BOOL *)lParam;
Face_SetSky (pFace, *pSky);
return GE_TRUE;
}
void CFaceAttributesDialog::OnFacesky()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, SetSky, &m_Sky);
AssignCurrentToViews ();
}
static geBoolean SetFullBright (Face *pFace, void *lParam)
{
BOOL *pFullBright = (BOOL *)lParam;
Face_SetFullBright (pFace, *pFullBright);
return GE_TRUE;
}
void CFaceAttributesDialog::SetShadingChecks ()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
Face *pFace = SelFaceList_GetFace (m_pDoc->pSelFaces, 0);
m_FullBright =Face_IsFullBright (pFace);
m_Gouraud =Face_IsGouraud (pFace);
m_Flat =Face_IsFlat (pFace);
UpdateData (FALSE);
}
void CFaceAttributesDialog::OnFacefullbright()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, ::SetFullBright, &m_FullBright);
SetShadingChecks ();
AssignCurrentToViews ();
}
static geBoolean SetGouraud (Face *pFace, void *lParam)
{
BOOL *pGouraud = (BOOL *)lParam;
Face_SetGouraud (pFace, *pGouraud);
return GE_TRUE;
}
void CFaceAttributesDialog::OnFacegouraud()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, ::SetGouraud, &m_Gouraud);
SetShadingChecks ();
AssignCurrentToViews ();
}
static geBoolean SetFlat (Face *pFace, void *lParam)
{
BOOL *pFlat = (BOOL *)lParam;
Face_SetFlat (pFace, *pFlat);
return GE_TRUE;
}
void CFaceAttributesDialog::OnFaceflat()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, ::SetFlat, &m_Flat);
SetShadingChecks ();
AssignCurrentToViews ();
}
static geBoolean SetTextureLock (Face *pFace, void *lParam)
{
BOOL *pTextureLock = (BOOL *)lParam;
Face_SetTextureLock (pFace, *pTextureLock);
return GE_TRUE;
}
void CFaceAttributesDialog::OnTexturelock()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, ::SetTextureLock, &m_TextureLock);
AssignCurrentToViews ();
}
static geBoolean SetTransparent (Face *pFace, void *lParam)
{
BOOL *pTransparent = (BOOL *)lParam;
Face_SetTransparent (pFace, *pTransparent);
return GE_TRUE;
}
void CFaceAttributesDialog::OnTransparent()
{
if (m_pDoc == NULL)
m_pDoc = CGlobals::GetActiveDocument();
UpdateData (TRUE);
SelFaceList_Enum (m_pDoc->pSelFaces, ::SetTransparent, &m_Transparent);
AssignCurrentToViews ();
}
void CFaceAttributesDialog::OnOK ()
{
// do nothing...don't want to close the thing, ya know...
}
void CFaceAttributesDialog::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized )
{
CDialog::OnActivate( nState, pWndOther, bMinimized ) ;
}
BOOL CFaceAttributesDialog::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
switch( nID )
{
case IDC_FACELIGHT:
OnFacelight() ;
break;
}
return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
void CFaceAttributesDialog::OnFaceApplybtn()
{
// m_pDoc->mpMainFrame->UpdateMainControls();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -