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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? entity.cpp

?? 用vc編的stlview著重版
?? CPP
字號:
// Entity.cpp: implementation of the CEntity class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "..\inc\GeomKernel\Entity.h"
#include "..\inc\glContext\openGLDC.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEntity::CEntity()
{
	m_bModified = FALSE;
	m_id = -1;
	m_pBox = NULL;
	m_color = RGB(128,128,128);
	m_name = _T("Unknow");
	m_bVisible = TRUE;
	m_bHighlight = FALSE;
}

CEntity::~CEntity()
{
}

void CEntity::Serialize(CArchive& ar)
{
	if(ar.IsStoring()){
		ar << m_id;
		ar << m_name;
		ar << m_color;
		ar << m_bVisible;
	}
	else{ //loading
		ar >> m_id;
		ar >> m_name;
		ar >> m_color;
		ar >> m_bVisible;
	}
}	

BOOL	CEntity::GetBox(CBox3D& box)
{
	if(m_bModified)
		UpdateBox();

	if( m_pBox){
		box = *m_pBox;
		return TRUE;
	}
	else
		return FALSE;
}

void	CEntity::SetID(UINT nID)
{
	m_id = nID;
}

UINT	CEntity::GetID()
{
	return m_id;
}

void	CEntity::SetName(LPCTSTR name)
{
	m_name = name;
}

CString	CEntity::GetName()
{
	return m_name;
}

void	CEntity::SetColor(COLORREF color)
{
	m_color = color;
}

COLORREF CEntity::GetColor()
{
	return m_color;
}

void CEntity::SetVisible(BOOL bVisible)
{
	m_bVisible = bVisible;
}

BOOL CEntity::IsVisible()
{
	return m_bVisible;
}

void CEntity::SetHighlight(BOOL bHighlight)
{
	m_bHighlight = bHighlight;
}

BOOL CEntity::IsHighlight()
{
	return m_bHighlight;
}

///////////////////////////
//class tri chip 
IMPLEMENT_SERIAL(CTriChip,CObject,0)
CTriChip::CTriChip()
{
}

CTriChip::CTriChip(const CPoint3D& v0,const CPoint3D& v1,const CPoint3D& v2,const CVector3D& nor)
{
	vex[0] = v0;
	vex[1] = v1;
	vex[2] = v2;
	normal = nor;
}

CTriChip::~CTriChip()
{
}

const CTriChip& CTriChip::operator=(const CTriChip& tri)
{
	normal = tri.normal;
	for(int i=0;i<3;i++)
		vex[i] = tri.vex[i];
	return *this;
}

void CTriChip::Draw(COpenGLDC* pDC)
{
	pDC->DrawTriChip(normal.dx,normal.dy,normal.dz,
		vex[0].x,vex[0].y,vex[0].z,
		vex[1].x,vex[1].y,vex[1].z,
		vex[2].x,vex[2].y,vex[2].z);
}

void CTriChip::Serialize(CArchive& ar)
{
	if(ar.IsStoring()){
		ar << normal.dx << normal.dy << normal.dz;
		for(int i=0;i<3;i++)
			ar << vex[i].x << vex[i].y << vex[i].z;
	}
	else{
		ar >> normal.dx >> normal.dy >> normal.dz;
		for(int i=0;i<3;i++)
			ar >> vex[i].x >> vex[i].y >> vex[i].z;
	}
}

//////////////////////////////////////////
//class  CSTLModel

IMPLEMENT_SERIAL(CSTLModel,CObject,0)

CSTLModel::CSTLModel()
{
}

CSTLModel::~CSTLModel()
{
	Clear();
}

void CSTLModel::Add(CTriChip* tri)
{
	m_TriList.Add(tri);
}

void CSTLModel::UpdateBox()
{
	if(m_pBox){
		delete m_pBox;
		m_pBox = NULL;
	}

	if(m_TriList.GetSize()==0) 
		return;
	
	double x0,y0,z0,x1,y1,z1;
	x0=y0=z0=10000;
	x1=y1=z1=-10000;
	
	CTriChip* tri;
	for(int i=0;i<m_TriList.GetSize();i++){
		tri = m_TriList[i];
		for(int n=0;n<3;n++){
			if(tri->vex[n].x<x0)  x0 = tri->vex[n].x;
			if(tri->vex[n].x>x1)  x1 = tri->vex[n].x;
			if(tri->vex[n].y<y0)  y0 = tri->vex[n].y;
			if(tri->vex[n].y>y1)  y1 = tri->vex[n].y;
			if(tri->vex[n].z<z0)  z0 = tri->vex[n].z;
			if(tri->vex[n].z>z1)  z1 = tri->vex[n].z;
		}
	}

	m_pBox = new CBox3D(x0,y0,z0,x1,y1,z1);
	m_bModified = FALSE;
}

//load with STL File
BOOL CSTLModel::LoadSTLFile(LPCTSTR stlfile)
{
	FILE* file;
	int type=0;
	if((file = fopen(stlfile, "r")) == NULL)
		return FALSE;

	char str[80];
	CTriChip* tri = NULL;
	while(fscanf(file,"%s",str)==1){
		if(strncmp(str,"normal",6)==0){
			tri = new CTriChip();
			fscanf(file,"%lf %lf %lf",&(tri->normal.dx),&(tri->normal.dy),&(tri->normal.dz));
			fscanf(file,"%*s %*s");
			fscanf(file,"%*s %lf %lf %lf",&(tri->vex[0].x),&(tri->vex[0].y),&(tri->vex[0].z));
			fscanf(file,"%*s %lf %lf %lf",&(tri->vex[1].x),&(tri->vex[1].y),&(tri->vex[1].z));
			fscanf(file,"%*s %lf %lf %lf",&(tri->vex[2].x),&(tri->vex[2].y),&(tri->vex[2].z));
			Add(tri);
		}
	}

	char title[80];
	if(GetFileTitle(stlfile,title,80)==0){
		SetName(title);
	}

	m_bModified = TRUE;
	return TRUE;
}

//Serialize
void	CSTLModel::Serialize(CArchive& ar)
{
	CEntity::Serialize(ar);
	
	if(ar.IsStoring()){
		m_TriList.Serialize(ar);
	}
	else{ //IsLoading()
		m_TriList.Serialize(ar);
		m_bModified = TRUE;
	}
}

void	CSTLModel::Draw(COpenGLDC* pDC)
{
	if(!m_bVisible)	return;
	
	if(m_bHighlight)
		pDC->Highlight(TRUE);
	else
		pDC->SetMaterialColor(m_color);

	if(pDC->IsSelectionMode()){
		pDC->LoadName((UINT)this);
	}

	for(int i=0;i<m_TriList.GetSize();i++){
		m_TriList[i]->Draw(pDC);
	}
}

void	CSTLModel::Clear()
{
	for(int i=0;i<m_TriList.GetSize();i++)
		delete m_TriList[i];
	m_TriList.RemoveAll();

	m_bModified = TRUE;
}

BOOL	CSTLModel::IsEmpty()
{
	return m_TriList.GetSize() == 0;
}

//////////////////////////////////////////
CPart::CPart()
{
}

CPart::~CPart()
{
	RemoveAllEntity();
}

//draw
void CPart::Draw(COpenGLDC* pDC)
{
	for(int i=0;i<m_EntList.GetSize();i++)
		m_EntList[i]->Draw(pDC);
}

//serialize
void CPart::Serialize(CArchive& ar)
{
	CEntity::Serialize(ar);
	if(ar.IsStoring()){
		m_EntList.Serialize(ar);
	}
	else{
		m_EntList.Serialize(ar);
		m_bModified = TRUE;
	}
}

//operation
void CPart::AddEntity(CEntity* ent)
{
	m_EntList.Add(ent);
	m_bModified = TRUE;
}

void CPart::RemoveEntity(CEntity* ent)
{
	for(int i=0;i<m_EntList.GetSize();i++){
		if(ent == m_EntList[i]){
			m_EntList.RemoveAt(i);
			m_bModified = TRUE;
			break;
		}
	}
}

void CPart::RemoveAllEntity()
{
	for(int i=0;i<m_EntList.GetSize();i++)
		delete m_EntList[i];
	m_EntList.RemoveAll();
	m_bModified = TRUE;
}

//attrib accessing
BOOL CPart::IsEmpty()
{
	return m_EntList.GetSize() == 0 ;
}

UINT	CPart::GetEntitySize()
{
	return m_EntList.GetSize();
}

CEntity* CPart::GetEntity(UINT i)
{
	ASSERT(i<m_EntList.GetSize());
	return m_EntList[i];
}

void CPart::UpdateBox()
{
	if(m_pBox){
		delete m_pBox;
		m_pBox = NULL;
	}

	CBox3D box;
	for(int i=0;i<m_EntList.GetSize();i++){
		if(m_EntList[i]->GetBox(box)){
			if(m_pBox)
				*m_pBox += box;
			else{
				m_pBox = new CBox3D();
				*m_pBox = box;
			}
		}
	}
	m_bModified = FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一区二区三区va| 国产网站一区二区| 欧美大胆人体bbbb| 亚洲免费观看高清完整| 蓝色福利精品导航| 欧美日韩午夜在线视频| 国产精品久久久久一区| 日韩二区三区四区| 91激情五月电影| 国产欧美日本一区二区三区| 午夜电影网一区| 色婷婷亚洲精品| 国产精品萝li| 国产成人免费xxxxxxxx| 日韩视频在线你懂得| 亚洲福中文字幕伊人影院| 成人小视频免费观看| 精品国产一区二区三区久久久蜜月| 亚洲一区二区中文在线| 国产成人av电影在线观看| 日韩一区二区精品| 日韩成人精品在线观看| 色婷婷综合久久久中文字幕| 国产精品美女久久久久aⅴ| 久久99精品久久久久久 | 亚洲综合在线五月| 成人avav在线| 国产精品日产欧美久久久久| 精品一区二区三区不卡| 日韩精品一区二区三区swag| 亚洲成人先锋电影| 欧美日韩在线一区二区| 亚洲午夜一区二区三区| 色av一区二区| 亚洲一区二区视频在线观看| 色婷婷av久久久久久久| 亚洲人成精品久久久久久| av不卡免费电影| 亚洲私人影院在线观看| 91免费版pro下载短视频| 国产精品国产精品国产专区不蜜| 成人精品国产免费网站| 日韩理论片网站| 色哟哟一区二区在线观看| 依依成人综合视频| 精品视频在线视频| 美女视频一区二区三区| 欧美一激情一区二区三区| 男人的天堂久久精品| 日韩精品一区二区三区蜜臀| 黄色日韩网站视频| 中文字幕电影一区| 色综合视频在线观看| 亚洲一区视频在线观看视频| 欧美性生交片4| 秋霞影院一区二区| 久久综合九色欧美综合狠狠| 国产精品一区二区久久精品爱涩| 国产亚洲人成网站| 99久久精品国产观看| 香蕉加勒比综合久久| 日韩欧美国产小视频| 成人av高清在线| 一级女性全黄久久生活片免费| 欧美一区二区三区在线看| 国产一区二区精品久久99| 国产精品理伦片| 9191成人精品久久| 成人免费视频免费观看| 亚洲成人久久影院| 欧美国产综合色视频| 欧美亚洲综合久久| 国产一区二区三区日韩| 一区二区三区在线观看国产| 日韩一区二区高清| 91污片在线观看| 秋霞影院一区二区| 亚洲精品高清在线| 精品福利视频一区二区三区| eeuss鲁片一区二区三区在线看| 亚洲mv在线观看| 国产欧美视频一区二区| 欧美精品一二三| 成人精品视频.| 久久精品国产亚洲一区二区三区| 亚洲少妇30p| 精品久久人人做人人爰| 欧美性猛交xxxx黑人交| 不卡高清视频专区| 激情综合色综合久久综合| 亚洲综合在线五月| 亚洲欧洲国产专区| 久久色成人在线| 欧美一区二区三区系列电影| 91麻豆免费看| 丰满少妇在线播放bd日韩电影| 调教+趴+乳夹+国产+精品| 最好看的中文字幕久久| 国产日韩欧美电影| 欧美精品一区二区蜜臀亚洲| 欧美精品日韩精品| 色综合天天综合狠狠| 粉嫩aⅴ一区二区三区四区五区| 九九九精品视频| 蜜臀久久99精品久久久画质超高清| 亚洲一区在线观看网站| 亚洲色图在线播放| 亚洲欧洲性图库| 欧美国产亚洲另类动漫| 国产亚洲精品中文字幕| 2020国产精品自拍| 亚洲精品一区二区三区在线观看| 制服丝袜av成人在线看| 欧美少妇性性性| 欧美午夜精品电影| 欧美在线观看视频一区二区| 99精品一区二区| 色哟哟一区二区| 欧美在线看片a免费观看| 欧美色倩网站大全免费| 91福利精品第一导航| 在线观看国产日韩| 欧美日韩大陆在线| 日韩欧美一二三四区| 久久网站最新地址| 中文字幕va一区二区三区| 国产人久久人人人人爽| 国产精品网站在线播放| 一区二区中文视频| 亚洲一级二级在线| 日韩国产欧美视频| 精品无人码麻豆乱码1区2区| 精品午夜一区二区三区在线观看| 国产一区二区三区电影在线观看| 久久99精品久久只有精品| 韩国精品久久久| www.激情成人| 91国模大尺度私拍在线视频| 欧美精品少妇一区二区三区| 日韩精品一区二区三区视频在线观看 | 欧美一级高清大全免费观看| 这里是久久伊人| 国产亚洲成aⅴ人片在线观看| 国产精品国产三级国产普通话蜜臀 | 中文字幕中文字幕一区| 尤物av一区二区| 免费高清在线一区| 不卡的av网站| 欧美日韩国产精品自在自线| 精品国产第一区二区三区观看体验| 久久精品一区二区三区av| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产欧美日韩另类综合| 老司机精品视频导航| 一本久久a久久精品亚洲| 3atv一区二区三区| 国产精品久久久久久久久搜平片 | 精品国产免费视频| 亚洲欧美国产高清| 久久精品国产久精国产| 成人在线综合网| 欧美精品免费视频| 中文字幕亚洲精品在线观看| 日韩成人精品在线观看| 91免费精品国自产拍在线不卡| 日韩欧美卡一卡二| 亚洲综合在线第一页| 国产精品中文字幕欧美| 欧美精品色综合| 亚洲婷婷综合色高清在线| 激情图片小说一区| 欧美高清一级片在线| 亚洲视频一二三| 国产精品99久久久久久久女警| 欧美精品色一区二区三区| 国产精品白丝在线| 国产成人8x视频一区二区| 日韩一级精品视频在线观看| 一区二区久久久久| 波多野结衣精品在线| 久久这里只有精品视频网| 日韩有码一区二区三区| 色综合久久中文综合久久牛| 国产亚洲综合av| 另类小说欧美激情| 欧美精品三级日韩久久| 亚洲精品视频在线看| 99精品视频一区| 日本一区免费视频| 国产精品主播直播| ww亚洲ww在线观看国产| 免费在线观看日韩欧美| 欧美电影一区二区| 午夜av区久久| 欧美系列一区二区| 夜夜嗨av一区二区三区中文字幕| 97精品电影院| 亚洲美女视频在线| 色综合久久综合网| 亚洲人成网站色在线观看|