⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triangleview.cpp

📁 详细介绍c++编程
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
	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 + -