📄 triangleview.cpp
字号:
{
LPANIMATION pAnim = this->GetCurrentAnimation();
this->AddFrame(pAnim);
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::FrameDelFrame(void)
{
LPANIMATION pAnim = this->GetCurrentAnimation();
LPFRAME pLast = pAnim->FrameList.prev;
pAnim->m_iTotalFrame --;
if(pAnim->m_iTotalFrame <= 0)
{
pAnim->m_iTotalFrame = 1;
pAnim->m_iCurrentFrame = pAnim->m_iTotalFrame;
AfxMessageBox("At least one frame");
}else
{
pAnim->m_iCurrentFrame = pAnim->m_iTotalFrame;
this->DelFrame(pLast);
}
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::FrameNext(void)
{
LPANIMATION pAnim = this->GetCurrentAnimation();
pAnim->m_iCurrentFrame ++;
if(pAnim->m_iCurrentFrame >= pAnim->m_iTotalFrame)
{
pAnim->m_iCurrentFrame = pAnim->m_iTotalFrame;
}
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::FramePrev(void)
{
LPANIMATION pAnim = this->GetCurrentAnimation();
pAnim->m_iCurrentFrame --;
if(pAnim->m_iCurrentFrame <= 1)
{
pAnim->m_iCurrentFrame = 1;
}
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::FrameFirst(void)
{
LPANIMATION pAnim = this->GetCurrentAnimation();
pAnim->m_iCurrentFrame = 1;
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::FrameLast(void)
{
LPANIMATION pAnim = this->GetCurrentAnimation();
pAnim->m_iCurrentFrame = pAnim->m_iTotalFrame;
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::OnResetsystem()
{
this->ResetSystem();
CMainFrame *pMainFrame;
pMainFrame = (CMainFrame*)AfxGetMainWnd();
CString str;
str.GetBuffer(20);
str.Format("%s", this->Anim.name);
pMainFrame->AddGroupString(&str);
this->UpdateFrameInfo();
Invalidate(FALSE);
}
void CTriangleView::OnResetcurrentframe()
{
LPANIMATION pAnim = this->GetCurrentAnimation();
LPFRAME pFrame = this->GetCurrentFrame(pAnim);
LPFRAME pPrevFrame;
if(pFrame->m_iFrame == 1)
{
pFrame->m_fHeadX = 0.0f;
pFrame->m_fHeadY = 0.0f;
pFrame->m_fShoulderX = 0.0f;
pFrame->m_fShoulderY = 0.0f;
pFrame->m_fLeftUpperArmX = 0.0f;
pFrame->m_fLeftUpperArmY = 0.0f;
pFrame->m_fLeftLowerArmX = 0.0f;
pFrame->m_fLeftLowerArmY = 0.0f;
pFrame->m_fLeftHandX = 0.0f;
pFrame->m_fLeftHandY = 0.0f;
pFrame->m_fRightUpperArmX = 0.0f;
pFrame->m_fRightUpperArmY = 0.0f;
pFrame->m_fRightLowerArmX = 0.0f;
pFrame->m_fRightLowerArmY = 0.0f;
pFrame->m_fRightHandX = 0.0f;
pFrame->m_fRightHandY = 0.0f;
pFrame->m_fUpperBodyX = 0.0f;
pFrame->m_fUpperBodyY = 0.0f;
pFrame->m_fLowerBodyX = 0.0f;
pFrame->m_fLowerBodyY = 0.0f;
pFrame->m_fLeftUpperLegX = 0.0f;
pFrame->m_fLeftUpperLegY = 0.0f;
pFrame->m_fLeftLowerLegX = 0.0f;
pFrame->m_fLeftLowerLegY = 0.0f;
pFrame->m_fLeftFootX = 0.0f;
pFrame->m_fLeftFootY = 0.0f;
pFrame->m_fRightUpperLegX = 0.0f;
pFrame->m_fRightUpperLegY = 0.0f;
pFrame->m_fRightLowerLegX = 0.0f;
pFrame->m_fRightLowerLegY = 0.0f;
pFrame->m_fRightFootX = 0.0f;
pFrame->m_fRightFootY = 0.0f;
}else
{
pPrevFrame = pFrame->prev;
pFrame->m_fHeadX = pPrevFrame->m_fHeadX;
pFrame->m_fHeadY = pPrevFrame->m_fHeadY;
pFrame->m_fShoulderX = pPrevFrame->m_fShoulderX;
pFrame->m_fShoulderY = pPrevFrame->m_fShoulderY;
pFrame->m_fLeftUpperArmX = pPrevFrame->m_fLeftUpperArmX;
pFrame->m_fLeftUpperArmY = pPrevFrame->m_fLeftUpperArmY;
pFrame->m_fLeftLowerArmX = pPrevFrame->m_fLeftLowerArmX;
pFrame->m_fLeftLowerArmY = pPrevFrame->m_fLeftLowerArmY;
pFrame->m_fLeftHandX = pPrevFrame->m_fLeftHandX;
pFrame->m_fLeftHandY = pPrevFrame->m_fLeftHandY;
pFrame->m_fRightUpperArmX = pPrevFrame->m_fRightUpperArmX;
pFrame->m_fRightUpperArmY = pPrevFrame->m_fRightUpperArmY;
pFrame->m_fRightLowerArmX = pPrevFrame->m_fRightLowerArmX;
pFrame->m_fRightLowerArmY = pPrevFrame->m_fRightLowerArmY;
pFrame->m_fRightHandX = pPrevFrame->m_fRightHandX;
pFrame->m_fRightHandY = pPrevFrame->m_fRightHandY;
pFrame->m_fUpperBodyX = pPrevFrame->m_fUpperBodyX;
pFrame->m_fUpperBodyY = pPrevFrame->m_fUpperBodyY;
pFrame->m_fLowerBodyX = pPrevFrame->m_fLowerBodyX;
pFrame->m_fLowerBodyY = pPrevFrame->m_fLowerBodyY;
pFrame->m_fLeftUpperLegX = pPrevFrame->m_fLeftUpperLegX;
pFrame->m_fLeftUpperLegY = pPrevFrame->m_fLeftUpperLegY;
pFrame->m_fLeftLowerLegX = pPrevFrame->m_fLeftLowerLegX;
pFrame->m_fLeftLowerLegY = pPrevFrame->m_fLeftLowerLegY;
pFrame->m_fLeftFootX = pPrevFrame->m_fLeftFootX;
pFrame->m_fLeftFootY = pPrevFrame->m_fLeftFootY;
pFrame->m_fRightUpperLegX = pPrevFrame->m_fRightUpperLegX;
pFrame->m_fRightUpperLegY = pPrevFrame->m_fRightUpperLegY;
pFrame->m_fRightLowerLegX = pPrevFrame->m_fRightLowerLegX;
pFrame->m_fRightLowerLegY = pPrevFrame->m_fRightLowerLegY;
pFrame->m_fRightFootX = pPrevFrame->m_fRightFootX;
pFrame->m_fRightFootY = pPrevFrame->m_fRightFootY;
}
Invalidate(FALSE);
}
void CTriangleView::OnResetcurrentselectbody()
{
LPANIMATION pAnim = this->GetCurrentAnimation();
LPFRAME pFrame = this->GetCurrentFrame(pAnim);
LPFRAME pPrevFrame;
if(pFrame->m_iFrame == 1)
{
SetMotionBody(pFrame, body_id, 0.0f, 0.0f);
}else
{
pPrevFrame = pFrame->prev;
switch(body_id)
{
case HEAD:
pFrame->m_fHeadX = pPrevFrame->m_fHeadX;
pFrame->m_fHeadY = pPrevFrame->m_fHeadY;
break;
case SHOULDER:
pFrame->m_fShoulderX = pPrevFrame->m_fShoulderX;
pFrame->m_fShoulderY = pPrevFrame->m_fShoulderY;
break;
case UPPER_BODY:
pFrame->m_fUpperBodyX = pPrevFrame->m_fUpperBodyX;
pFrame->m_fUpperBodyY = pPrevFrame->m_fUpperBodyY;
break;
case LOWER_BODY:
pFrame->m_fLowerBodyX = pPrevFrame->m_fLowerBodyX;
pFrame->m_fLowerBodyY = pPrevFrame->m_fLowerBodyY;
break;
case LEFT_UPPER_ARM:
pFrame->m_fLeftUpperArmX = pPrevFrame->m_fLeftUpperArmX;
pFrame->m_fLeftUpperArmY = pPrevFrame->m_fLeftUpperArmY;
break;
case LEFT_LOWER_ARM:
pFrame->m_fLeftLowerArmX = pPrevFrame->m_fLeftLowerArmX;
pFrame->m_fLeftLowerArmY = pPrevFrame->m_fLeftLowerArmY;
break;
case LEFT_HAND:
pFrame->m_fLeftHandX = pPrevFrame->m_fLeftHandX;
pFrame->m_fLeftHandY = pPrevFrame->m_fLeftHandY;
break;
case RIGHT_UPPER_ARM:
pFrame->m_fRightUpperArmX = pPrevFrame->m_fRightUpperArmX;
pFrame->m_fRightUpperArmY = pPrevFrame->m_fRightUpperArmY;
break;
case RIGHT_LOWER_ARM:
pFrame->m_fRightLowerArmX = pPrevFrame->m_fRightLowerArmX;
pFrame->m_fRightLowerArmY = pPrevFrame->m_fRightLowerArmY;
break;
case RIGHT_HAND:
pFrame->m_fRightHandX = pPrevFrame->m_fRightHandX;
pFrame->m_fRightHandY = pPrevFrame->m_fRightHandY;
break;
case LEFT_UPPER_LEG:
pFrame->m_fLeftUpperLegX = pPrevFrame->m_fLeftUpperLegX;
pFrame->m_fLeftUpperLegY = pPrevFrame->m_fLeftUpperLegY;
break;
case LEFT_LOWER_LEG:
pFrame->m_fLeftLowerLegX = pPrevFrame->m_fLeftLowerLegX;
pFrame->m_fLeftLowerLegY = pPrevFrame->m_fLeftLowerLegY;
break;
case LEFT_FOOT:
pFrame->m_fLeftFootX = pPrevFrame->m_fLeftFootX;
pFrame->m_fLeftFootY = pPrevFrame->m_fLeftFootY;
break;
case RIGHT_UPPER_LEG:
pFrame->m_fRightUpperLegX = pPrevFrame->m_fRightUpperLegX;
pFrame->m_fRightUpperLegY = pPrevFrame->m_fRightUpperLegY;
break;
case RIGHT_LOWER_LEG:
pFrame->m_fRightLowerLegX = pPrevFrame->m_fRightLowerLegX;
pFrame->m_fRightLowerLegY = pPrevFrame->m_fRightLowerLegY;
break;
case RIGHT_FOOT:
pFrame->m_fRightFootX = pPrevFrame->m_fRightFootX;
pFrame->m_fRightFootY = pPrevFrame->m_fRightFootY;
break;
default:
break;
}
}
Invalidate(FALSE);
}
void CTriangleView::OnResetcamera()
{
vecSetValue(m_vTrackBallOffset, 0.0f, 0.0f, 0.0f);
vecSetValue(m_vTranslateOffset, 0.0f, 0.0f, 0.0f);
Invalidate(FALSE);
}
void CTriangleView::OnCopyframe()
{
LPANIMATION pAnim = this->GetCurrentAnimation();
LPFRAME pFrame = this->GetCurrentFrame(pAnim);
TempFrame.m_fHeadX = pFrame->m_fHeadX;
TempFrame.m_fHeadY = pFrame->m_fHeadY;
TempFrame.m_fShoulderX = pFrame->m_fShoulderX;
TempFrame.m_fShoulderY = pFrame->m_fShoulderY;
TempFrame.m_fUpperBodyX = pFrame->m_fUpperBodyX;
TempFrame.m_fUpperBodyY = pFrame->m_fUpperBodyY;
TempFrame.m_fLowerBodyX = pFrame->m_fLowerBodyX;
TempFrame.m_fLowerBodyY = pFrame->m_fLowerBodyY;
TempFrame.m_fLeftUpperArmX = pFrame->m_fLeftUpperArmX;
TempFrame.m_fLeftUpperArmY = pFrame->m_fLeftUpperArmY;
TempFrame.m_fLeftLowerArmX = pFrame->m_fLeftLowerArmX;
TempFrame.m_fLeftLowerArmY = pFrame->m_fLeftLowerArmY;
TempFrame.m_fLeftHandX = pFrame->m_fLeftHandX;
TempFrame.m_fLeftHandY = pFrame->m_fLeftHandY;
TempFrame.m_fRightUpperArmX = pFrame->m_fRightUpperArmX;
TempFrame.m_fRightUpperArmY = pFrame->m_fRightUpperArmY;
TempFrame.m_fRightLowerArmX = pFrame->m_fRightLowerArmX;
TempFrame.m_fRightLowerArmY = pFrame->m_fRightLowerArmY;
TempFrame.m_fRightHandX = pFrame->m_fRightHandX;
TempFrame.m_fRightHandY = pFrame->m_fRightHandY;
TempFrame.m_fLeftUpperLegX = pFrame->m_fLeftUpperLegX;
TempFrame.m_fLeftUpperLegY = pFrame->m_fLeftUpperLegY;
TempFrame.m_fLeftLowerLegX = pFrame->m_fLeftLowerLegX;
TempFrame.m_fLeftLowerLegY = pFrame->m_fLeftLowerLegY;
TempFrame.m_fLeftFootX = pFrame->m_fLeftFootX;
TempFrame.m_fLeftFootY = pFrame->m_fLeftFootY;
TempFrame.m_fRightUpperLegX = pFrame->m_fRightUpperLegX;
TempFrame.m_fRightUpperLegY = pFrame->m_fRightUpperLegY;
TempFrame.m_fRightLowerLegX = pFrame->m_fRightLowerLegX;
TempFrame.m_fRightLowerLegY = pFrame->m_fRightLowerLegY;
TempFrame.m_fRightFootX = pFrame->m_fRightFootX;
TempFrame.m_fRightFootY = pFrame->m_fRightFootY;
}
void CTriangleView::OnPastedata()
{
LPANIMATION pAnim = this->GetCurrentAnimation();
LPFRAME pFrame = this->GetCurrentFrame(pAnim);
pFrame->m_fHeadX = TempFrame.m_fHeadX;
pFrame->m_fHeadY = TempFrame.m_fHeadY;
pFrame->m_fShoulderX = TempFrame.m_fShoulderX;
pFrame->m_fShoulderY = TempFrame.m_fShoulderY;
pFrame->m_fUpperBodyX = TempFrame.m_fUpperBodyX;
pFrame->m_fUpperBodyY = TempFrame.m_fUpperBodyY;
pFrame->m_fLowerBodyX = TempFrame.m_fLowerBodyX;
pFrame->m_fLowerBodyY = TempFrame.m_fLowerBodyY;
pFrame->m_fLeftUpperArmX = TempFrame.m_fLeftUpperArmX;
pFrame->m_fLeftUpperArmY = TempFrame.m_fLeftUpperArmY;
pFrame->m_fLeftLowerArmX = TempFrame.m_fLeftLowerArmX;
pFrame->m_fLeftLowerArmY = TempFrame.m_fLeftLowerArmY;
pFrame->m_fLeftHandX = TempFrame.m_fLeftHandX;
pFrame->m_fLeftHandY = TempFrame.m_fLeftHandY;
pFrame->m_fRightUpperArmX = TempFrame.m_fRightUpperArmX;
pFrame->m_fRightUpperArmY = TempFrame.m_fRightUpperArmY;
pFrame->m_fRightLowerArmX = TempFrame.m_fRightLowerArmX;
pFrame->m_fRightLowerArmY = TempFrame.m_fRightLowerArmY;
pFrame->m_fRightHandX = TempFrame.m_fRightHandX;
pFrame->m_fRightHandY = TempFrame.m_fRightHandY;
pFrame->m_fLeftUpperLegX = TempFrame.m_fLeftUpperLegX;
pFrame->m_fLeftUpperLegY = TempFrame.m_fLeftUpperLegY;
pFrame->m_fLeftLowerLegX = TempFrame.m_fLeftLowerLegX;
pFrame->m_fLeftLowerLegY = TempFrame.m_fLeftLowerLegY;
pFrame->m_fLeftFootX = TempFrame.m_fLeftFootX;
pFrame->m_fLeftFootY = TempFrame.m_fLeftFootY;
pFrame->m_fRightUpperLegX = TempFrame.m_fRightUpperLegX;
pFrame->m_fRightUpperLegY = TempFrame.m_fRightUpperLegY;
pFrame->m_fRightLowerLegX = TempFrame.m_fRightLowerLegX;
pFrame->m_fRightLowerLegY = TempFrame.m_fRightLowerLegY;
pFrame->m_fRightFootX = TempFrame.m_fRightFootX;
pFrame->m_fRightFootY = TempFrame.m_fRightFootY;
Invalidate(FALSE);
}
void CTriangleView::OnViewmode1()
{
m_iViewMode = VIEWMODE_1;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateViewmode1(CCmdUI* pCmdUI)
{
if(m_iViewMode == VIEWMODE_1)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnViewmode2()
{
m_iViewMode = VIEWMODE_2;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateViewmode2(CCmdUI* pCmdUI)
{
if(m_iViewMode == VIEWMODE_2)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnViewmode3()
{
m_iViewMode = VIEWMODE_3;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateViewmode3(CCmdUI* pCmdUI)
{
if(m_iViewMode == VIEWMODE_3)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnGhostmode()
{
if(TRUE == m_bGhostMode)
{
m_bGhostMode = FALSE;
}else
{
m_bGhostMode = TRUE;
}
Invalidate(FALSE);
}
void CTriangleView::OnUpdateGhostmode(CCmdUI* pCmdUI)
{
if(m_bGhostMode == TRUE)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnBoundingboxmode()
{
m_iBoundingBoxMode = BOUNDINGBOX;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateBoundingboxmode(CCmdUI* pCmdUI)
{
if(m_iBoundingBoxMode == BOUNDINGBOX)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnSolidmode()
{
m_iBoundingBoxMode = SOLID;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateSolidmode(CCmdUI* pCmdUI)
{
if(m_iBoundingBoxMode == SOLID)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
}
void CTriangleView::OnBoundingboxandsolidmode()
{
m_iBoundingBoxMode = BOUNDINGBOXANDSOLID;
Invalidate(FALSE);
}
void CTriangleView::OnUpdateBoundingboxandsolidmode(CCmdUI* pCmdUI)
{
if(m_iBoundingBoxMode == BOUNDINGBOXANDSOLID)
{
pCmdUI->SetCheck(TRUE);
}else
{
pCmdUI->SetCheck(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -