亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? triangleview.cpp

?? 詳細介紹c++編程
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		  pFrame->m_fLeftHandX = fOffsetX;
		  pFrame->m_fLeftHandY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fLeftHandX, &pFrame->m_fLeftHandY);
	  break;

	  case RIGHT_UPPER_ARM:
		  pFrame->m_fRightUpperArmX = fOffsetX;
		  pFrame->m_fRightUpperArmY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightUpperArmX, &pFrame->m_fRightUpperArmY);
	  break;

	  case RIGHT_LOWER_ARM:
		  pFrame->m_fRightLowerArmX = fOffsetX;
		  pFrame->m_fRightLowerArmY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightLowerArmX, &pFrame->m_fRightLowerArmY);
	  break;

	  case RIGHT_HAND:
		  pFrame->m_fRightHandX = fOffsetX;
		  pFrame->m_fRightHandY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightHandX, &pFrame->m_fRightHandY);
	  break;

	  case LEFT_UPPER_LEG:
		  pFrame->m_fLeftUpperLegX = fOffsetX;
		  pFrame->m_fLeftUpperLegY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fLeftUpperLegX, &pFrame->m_fLeftUpperLegY);
	  break;

	  case LEFT_LOWER_LEG:
		  pFrame->m_fLeftLowerLegX = fOffsetX;
		  pFrame->m_fLeftLowerLegY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fLeftLowerLegX, &pFrame->m_fLeftLowerLegY);
	  break;

	  case LEFT_FOOT:
		  pFrame->m_fLeftFootX = fOffsetX;
		  pFrame->m_fLeftFootY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fLeftFootX, &pFrame->m_fLeftFootY);
	  break;

	  case RIGHT_UPPER_LEG:
		  pFrame->m_fRightUpperLegX = fOffsetX;
		  pFrame->m_fRightUpperLegY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightUpperLegX, &pFrame->m_fRightUpperLegY);
	  break;

	  case RIGHT_LOWER_LEG:
		  pFrame->m_fRightLowerLegX = fOffsetX;
		  pFrame->m_fRightLowerLegY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightLowerLegX, &pFrame->m_fRightLowerLegY);
	  break;

	  case RIGHT_FOOT:
		  pFrame->m_fRightFootX = fOffsetX;
		  pFrame->m_fRightFootY = fOffsetY;
		  this->CheckAngle(&pFrame->m_fRightFootX, &pFrame->m_fRightFootY);
	  break;

	  default:
	  break;
	}
}

void CTriangleView::OnMotionfileopen() 
{
    CString strFile;    

    CFileDialog dlg(TRUE,    // Save
                    NULL,    // No default extension
                    NULL,    // No initial file name
                    OFN_OVERWRITEPROMPT
                    | OFN_HIDEREADONLY,
                    "motion files (*.mot)|*.mot|All files (*.*)|*.*||");

    if (dlg.DoModal() == IDOK) 
	{
      strFile = dlg.GetPathName();
	  if(LoadMotion2File((LPSTR)(LPCTSTR)strFile) == FALSE)
	  {
		  ResetSystem();
	  }
	}			
}

BOOL CTriangleView::LoadMotion2File(LPSTR pszFileName)
{
    // Try to open the file for write access.
    CString strFile = pszFileName;    
    CFile file;
     if (! file.Open(strFile,
                    CFile::modeRead | CFile::shareDenyWrite)) 
	 {
        TRACE("Failed to open file");
        return FALSE;
    }

    BOOL bResult = LoadMotion2File(&file);
    file.Close();
    if (!bResult) AfxMessageBox("Failed to load file");
    return bResult;
}

BOOL CTriangleView::LoadMotion2File(CFile* fp)
{
	ResetSystem();

    DWORD dwFileStart = fp->GetPosition();

	int head1;
	int head2;

	CMainFrame *pMainFrame;
	pMainFrame = (CMainFrame*)AfxGetMainWnd();
	CString str;

	fp->Read(&head1, sizeof(int));
	fp->Read(&head2, sizeof(int));

	if(head1 != 3120 || head2 != 2590)
	{
		AfxMessageBox("Error of motion file format");
		return FALSE;
	}

	int iMaxGroup;

	fp->Read(&iMaxGroup, sizeof(int));

	this->m_iTotalGroup = iMaxGroup;

	int i;
	
	fp->Read(&this->Anim, sizeof(ANIMATION));

	Anim.next = Anim.prev = &Anim;

	LoadFrame2File(fp, &this->Anim);

	LPANIMATION pAnim = NULL;
	LPANIMATION pLast = NULL;

//	pAnim = (LPANIMATION)LocalAlloc(LPTR, sizeof(ANIMATION));

	for(i=2; i<=iMaxGroup; i++)
	{
		pAnim = (LPANIMATION)LocalAlloc(LPTR, sizeof(ANIMATION));

		fp->Read(pAnim, sizeof(ANIMATION));

		LoadFrame2File(fp, pAnim);

		if(pAnim == NULL)
		{
			AfxMessageBox("Error of add Group into list\n");
			return FALSE;
		}
//		this->AddGroupFromFile(pAnim);
		pLast = this->Anim.prev;

		LinkGroup(pAnim, pLast);

		str.GetBuffer(20);
		str.Format("%s", pAnim->name);
		pMainFrame->AddGroupString(&str);

		str.Empty();
	}

//	LocalFree(pAnim);

	str.GetBuffer(20);
	str.Format("%s", this->Anim.name);
	pMainFrame->AddGroupString(&str);

	pMainFrame->SetCurrentAnim(&str);

	this->UpdateFrameInfo();

	Invalidate(FALSE);

   return TRUE;
}

BOOL CTriangleView::LoadFrame2File(CFile *fp, LPANIMATION pAnim)
{
	int TotalFrame = pAnim->m_iTotalFrame;
	int iSize;
	int i;

	iSize = sizeof(FRAME);

	fp->Read(&pAnim->FrameList, iSize);

	pAnim->FrameList.next = pAnim->FrameList.prev = &pAnim->FrameList;

	LPFRAME temp;

	temp = (LPFRAME)LocalAlloc(LPTR, iSize);

	if(temp == NULL)
	{
		AfxMessageBox("Error of temp frame 2107");
		return FALSE;
	}

	TRACE("Total Frame is %d\n", TotalFrame);

	for(i=2; i<=TotalFrame; i++)
	{
		fp->Read(temp, sizeof(FRAME));
		this->AddFrameFromFile(temp, pAnim);
	}

	LocalFree(temp);

	return TRUE;
}

void CTriangleView::AddGroupFromFile(LPANIMATION pFileAnim)
{
	LPANIMATION pAnim;

	pAnim = (LPANIMATION)LocalAlloc(LPTR, sizeof(ANIMATION));

	if(pAnim == NULL)
	{
		AfxMessageBox("Error of add Group into list\n");
		return;
	}

	memcpy((void*)pAnim, (void*)pFileAnim, sizeof(ANIMATION));

	LPANIMATION pLast = this->Anim.prev;

	LinkGroup(pAnim, pLast);
}

void CTriangleView::AddFrameFromFile(LPFRAME pFileFrame, LPANIMATION pAnim)
{
	LPFRAME pFrame;

	pFrame = (LPFRAME)LocalAlloc(LPTR, sizeof(FRAME));

	if(pFrame == NULL)
	{
		AfxMessageBox("Error of add frame into list\n");
		return;
	}

	memcpy((void*)pFrame, (void*)pFileFrame, sizeof(FRAME));

	LPFRAME pLast;

	pLast = pAnim->FrameList.prev;

	LinkFrame(pFrame, pLast);
}

void CTriangleView::OnMotionfilesave() 
{
    CString strFile;    

    CFileDialog dlg(FALSE,    // Save
                    NULL,    // No default extension
                    NULL,    // No initial file name
                    OFN_OVERWRITEPROMPT
                    | OFN_HIDEREADONLY,
                    "motion files (*.mot)|*.mot|All files (*.*)|*.*||");
    if (dlg.DoModal() == IDOK) 
	{
      strFile = dlg.GetPathName();
	  SaveMotion2File((LPSTR)(LPCTSTR)strFile);
	}	
}

BOOL CTriangleView::SaveMotion2File(LPSTR pszFileName)
{
    // Try to open the file for write access.
    CString strFile = pszFileName;    
    CFile file;
    if (!file.Open(strFile,
                    CFile::modeReadWrite
                     | CFile::modeCreate
                     | CFile::shareExclusive)) 
	{
        AfxMessageBox("Failed to open file");
        return FALSE;
    }

    BOOL bResult = SaveMotion2File(&file);
    file.Close();
    if (!bResult) AfxMessageBox("Failed to save file");
    return bResult;
}

BOOL CTriangleView::SaveMotion2File(CFile* fp)
{
	CMainFrame *pFrame;
	pFrame = (CMainFrame*)AfxGetMainWnd();

    int iSize = sizeof(int);
	int head = 3120;

    TRY 
	{
        fp->Write(&head, iSize);
    } CATCH(CFileException, e) 
	{
        TRACE("Failed to write file header");
        return FALSE;
    } END_CATCH

	head = 2590;

    TRY 
	{
        fp->Write(&head, iSize);
    } CATCH(CFileException, e) 
	{
        TRACE("Failed to write file header");
        return FALSE;
    } END_CATCH

	int iMaxGroup = this->m_iTotalGroup;
	
    TRY 
	{
        fp->Write(&iMaxGroup, iSize);
    } CATCH(CFileException, e) 
	{
        TRACE("Failed to write file header");
        return FALSE;
    } END_CATCH

	LPANIMATION current;
	LPANIMATION last;
	LPANIMATION save;

	current = &this->Anim;
	last = &this->Anim;

	iSize = sizeof(ANIMATION);

	do
	{
		save = current;
		current = current->next;

		TRY 
		{
			fp->Write(save, iSize);
		} CATCH(CFileException, e) 
		{
	       TRACE("Failed to write file header");
			return FALSE;
		} END_CATCH

		if(FALSE == SaveFrame2File(fp, save))
		{
			AfxMessageBox("Error of Save Frame");
		}

	}//do-while...
	while( current != last);

    return TRUE;
}

BOOL CTriangleView::SaveFrame2File(CFile *fp, LPANIMATION pAnim)
{
	LPFRAME current;
	LPFRAME last;
	LPFRAME save;
	
	current = &pAnim->FrameList;
	last = &pAnim->FrameList;

	int iSize = sizeof(FRAME);

	do
	{
		save = current;
		current = current->next;

		TRY 
		{
			fp->Write(save, iSize);
		} CATCH(CFileException, e) 
		{
	       TRACE("Failed to write file header");
			return FALSE;
		} END_CATCH

	}//do-while...
	while( current != last);

	return TRUE;
}

void CTriangleView::ResetSystem()
{
	LPANIMATION current;
	LPANIMATION last;
	LPANIMATION die;

	current = &Anim;
	last = &Anim;

	do
	{
		if(current->m_iID != 0)
		{
			die = current;
			current = current->next;
			DelGroup(die);
		}else
		{
			current = current->next;
		}
	}//do-while
	while(current != last);
	
	CMainFrame *pMainFrame;
	pMainFrame = (CMainFrame*)AfxGetMainWnd();

	CString str;
	str.GetBuffer(20);
	str.Format("%s", Anim.name);

	pMainFrame->DelGroupString(&str);

	InitAnim();
}

void CTriangleView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);

	VERIFY(wglMakeCurrent(m_hDC,m_hRC));
	GLResize(cx, cy);
	VERIFY(wglMakeCurrent(NULL,NULL));
}

BOOL CTriangleView::OnQueryNewPalette() 
{
	// If the palette was created.
	if((HPALETTE)m_GLPalette)
		{
		int nRet;

		// Selects the palette into the current device context
		SelectPalette(m_hDC, (HPALETTE)m_GLPalette, FALSE);

		// Map entries from the currently selected palette to
		// the system palette.  The return value is the number 
		// of palette entries modified.
		nRet = RealizePalette(m_hDC);

		// Repaint, forces remap of palette in current window
		InvalidateRect(NULL,FALSE);

		return nRet;
		}

	return CView::OnQueryNewPalette();
}

void CTriangleView::OnPaletteChanged(CWnd* pFocusWnd) 
{
	if(((HPALETTE)m_GLPalette != NULL) && (pFocusWnd != this))
		{
		// Select the palette into the device context
		SelectPalette(m_hDC,(HPALETTE)m_GLPalette,FALSE);

		// Map entries to system palette
		RealizePalette(m_hDC);
				
		// Remap the current colors to the newly realized palette
		UpdateColors(m_hDC);
		return;
		}

	CView::OnPaletteChanged(pFocusWnd);
}

int CTriangleView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	int nPixelFormat;					// Pixel format index
	m_hDC = ::GetDC(m_hWnd);			// Get the Device context

	static PIXELFORMATDESCRIPTOR pfd = {
		sizeof(PIXELFORMATDESCRIPTOR),	// Size of this structure
		1,								// Version of this structure	
		PFD_DRAW_TO_WINDOW |			// Draw to Window (not to bitmap)
		PFD_SUPPORT_OPENGL |			// Support OpenGL calls in window
		PFD_DOUBLEBUFFER,				// Double buffered mode
		PFD_TYPE_RGBA,					// RGBA Color mode
		24,								// Want 24bit color 
		0,0,0,0,0,0,					// Not used to select mode
		0,0,							// Not used to select mode
		0,0,0,0,0,						// Not used to select mode
		32,								// Size of depth buffer
		0,								// Not used to select mode
		0,								// Not used to select mode
		PFD_MAIN_PLANE,					// Draw in main plane
		0,								// Not used to select mode
		0,0,0 };						// Not used to select mode

	// Choose a pixel format that best matches that described in pfd
	nPixelFormat = ChoosePixelFormat(m_hDC, &pfd);

	// Set the pixel format for the device context
	VERIFY(SetPixelFormat(m_hDC, nPixelFormat, &pfd));

	// Create the rendering context
	m_hRC = wglCreateContext(m_hDC);

	// Make the rendering context current, perform initialization, then
	// deselect it
	VERIFY(wglMakeCurrent(m_hDC,m_hRC));
	GLSetupRC(m_hDC);
	wglMakeCurrent(NULL,NULL);

	// Create the palette if needed
	InitializePalette();

	return 0;
}

void CTriangleView::OnDestroy() 
{
	CView::OnDestroy();

	// Clean up rendering context stuff
	wglDeleteContext(m_hRC);
	::ReleaseDC(m_hWnd,m_hDC);
}

BOOL CTrian

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区三区不卡| 精品一区二区三区在线观看 | 亚洲最大色网站| 日本不卡高清视频| 91猫先生在线| 精品欧美一区二区久久| 亚洲一区在线观看网站| 99热这里都是精品| 精品国产乱码久久久久久老虎 | 欧美日韩精品一区二区三区四区 | 欧美一区二区三区小说| 亚洲精品视频在线看| 国产成人av福利| 2014亚洲片线观看视频免费| 天天色图综合网| 欧美亚州韩日在线看免费版国语版| 久久久亚洲精品一区二区三区| 亚洲成人精品影院| 欧美午夜电影一区| 亚洲最新视频在线观看| 一本色道久久综合亚洲91 | 轻轻草成人在线| 制服视频三区第一页精品| 亚洲精品高清视频在线观看| 91麻豆精品一区二区三区| 久久女同性恋中文字幕| 免费在线看一区| 欧美丰满高潮xxxx喷水动漫| 香蕉久久一区二区不卡无毒影院| 欧美午夜宅男影院| 亚洲一区二区三区四区五区中文| 91免费看`日韩一区二区| 中文字幕一区二区三| 成人精品亚洲人成在线| 亚洲欧洲国产日本综合| 色婷婷av一区二区三区软件 | 国产一区二区三区美女| 国产亚洲综合在线| 成人av动漫在线| 亚洲天堂精品在线观看| 91天堂素人约啪| 亚洲综合偷拍欧美一区色| 欧美三片在线视频观看| 午夜精品在线看| 精品国产免费久久 | 51午夜精品国产| 久久精品二区亚洲w码| 精品国产亚洲一区二区三区在线观看| 国产乱人伦偷精品视频不卡| 国产精品国产馆在线真实露脸 | 99热在这里有精品免费| 一区二区三区欧美久久| 欧美一区二区在线看| 国产一区欧美二区| 亚洲日本va午夜在线影院| 欧美日韩五月天| 美女国产一区二区三区| 亚洲欧洲三级电影| 91免费精品国自产拍在线不卡| 亚洲卡通动漫在线| 51精品视频一区二区三区| 久久99国产精品麻豆| 国产精品第四页| 制服丝袜成人动漫| 福利一区福利二区| 亚洲v日本v欧美v久久精品| 欧美白人最猛性xxxxx69交| 丰满放荡岳乱妇91ww| 亚洲高清免费观看高清完整版在线观看| 日韩女优制服丝袜电影| 国产成人日日夜夜| 婷婷久久综合九色综合绿巨人 | 成人av综合在线| 日本vs亚洲vs韩国一区三区二区| 2024国产精品| 在线观看亚洲一区| 国产成人av一区二区三区在线 | 26uuu国产在线精品一区二区| www.欧美.com| 国产在线不卡一区| 亚洲电影在线免费观看| 国产精品视频在线看| 日韩亚洲欧美中文三级| 在线观看日韩高清av| 成人午夜在线免费| 韩国毛片一区二区三区| 日韩一区欧美二区| 亚洲你懂的在线视频| 久久午夜国产精品| 欧美α欧美αv大片| 欧美系列日韩一区| 色综合久久综合| kk眼镜猥琐国模调教系列一区二区 | 一本到高清视频免费精品| 久久99国产精品免费| 肉丝袜脚交视频一区二区| 亚洲蜜臀av乱码久久精品| 亚洲国产成人一区二区三区| 久久综合九色综合欧美98| 欧美不卡视频一区| 日韩欧美激情一区| 欧美色电影在线| 欧美综合久久久| 91麻豆自制传媒国产之光| 国产69精品久久久久毛片| 国产成人在线看| 国产成人av电影在线观看| 国产丶欧美丶日本不卡视频| 老司机免费视频一区二区三区| 日本亚洲电影天堂| 日韩 欧美一区二区三区| 视频一区中文字幕| 日韩成人一级片| 蜜桃视频在线一区| 国产呦精品一区二区三区网站| 激情六月婷婷久久| 国内外精品视频| 国产高清久久久| 国产一区二区三区电影在线观看| 蜜桃久久久久久| 激情综合网激情| 国产精品一区一区三区| 国产精品一二二区| 国产高清不卡二三区| 成人动漫视频在线| 色综合天天综合给合国产| 日本电影欧美片| 欧美另类z0zxhd电影| 日韩视频一区在线观看| 国产亚洲午夜高清国产拍精品| 亚洲国产精华液网站w| 综合分类小说区另类春色亚洲小说欧美 | 日韩午夜小视频| 日韩精品一区在线| 国产欧美一区二区三区网站| 亚洲欧美在线aaa| 亚洲一区二区三区爽爽爽爽爽| 亚洲国产精品人人做人人爽| 秋霞午夜鲁丝一区二区老狼| 国产自产视频一区二区三区| www.66久久| 91麻豆精品国产91久久久久| 久久人人爽爽爽人久久久| 国产精品久久久一本精品| 亚洲不卡av一区二区三区| 国产在线视频不卡二| 色综合中文字幕国产 | 国产精品综合久久| 色94色欧美sute亚洲线路二| 欧美日韩国产一级| 国产日韩欧美一区二区三区综合 | 国产精品久久久久影视| 亚洲国产日日夜夜| 国产麻豆视频一区| 欧美日韩视频在线一区二区| 国产午夜一区二区三区| 亚洲狠狠爱一区二区三区| 国产精品一区二区久久不卡| 精品国产髙清在线看国产毛片 | 免费美女久久99| av激情亚洲男人天堂| 日韩视频一区二区在线观看| 亚洲精品欧美在线| 国产一区不卡在线| 69堂国产成人免费视频| 自拍av一区二区三区| 国产在线麻豆精品观看| 欧美精品粉嫩高潮一区二区| 国产精品久久久99| 黄色资源网久久资源365| 欧美日韩国产综合久久| 亚洲欧美在线视频| 国产成人av资源| 精品日韩一区二区三区| 爽好多水快深点欧美视频| 91久久精品一区二区| 国产精品免费看片| 国产剧情一区在线| 欧美成人免费网站| 五月天亚洲精品| 欧美网站一区二区| 亚洲影院免费观看| 激情六月婷婷久久| 日韩免费电影网站| 一区二区三区免费| eeuss鲁一区二区三区| 久久久久久久免费视频了| 日本伊人色综合网| 91精品麻豆日日躁夜夜躁| 亚洲一区二区av电影| 一本大道综合伊人精品热热| 国产精品久久久久久妇女6080 | 国产美女精品在线| 精品久久久久一区| 久久机这里只有精品| 日韩写真欧美这视频| 久久精品理论片| 日韩精品在线看片z| 国模娜娜一区二区三区| 精品sm在线观看|