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

📄 hoopsmfcdoc.cpp

📁 hoops的代码
💻 CPP
字号:
// HoopsMfcDoc.cpp : implementation of the CHoopsMfcDoc class
//

#include "stdafx.h"
#include "HoopsMfc.h"

#include "HoopsMfcDoc.h"
#include "HBaseModel.h"

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

/////////////////////////////////////////////////////////////////////////////
// CHoopsMfcDoc

IMPLEMENT_DYNCREATE(CHoopsMfcDoc, CDocument)

BEGIN_MESSAGE_MAP(CHoopsMfcDoc, CDocument)
	//{{AFX_MSG_MAP(CHoopsMfcDoc)
	ON_COMMAND(ID_TEST_SHELL, OnTestShell)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHoopsMfcDoc construction/destruction

CHoopsMfcDoc::CHoopsMfcDoc()
{
	m_pHBaseModel=NULL;
}

CHoopsMfcDoc::~CHoopsMfcDoc()
{
	if(m_pHBaseModel)
		delete m_pHBaseModel;
}

BOOL CHoopsMfcDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	m_pHBaseModel=new HBaseModel();
	m_pHBaseModel->Init();


	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CHoopsMfcDoc serialization

void CHoopsMfcDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CHoopsMfcDoc diagnostics

#ifdef _DEBUG
void CHoopsMfcDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CHoopsMfcDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHoopsMfcDoc commands

void CHoopsMfcDoc::OnTestShell() 
{
	// TODO: Add your command handler code here
	float shell_points[]=
	{
		-0.5f,-0.5f,-0.5f,
		-0.5f,0.5f,-0.5f,
		0.5f,0.5f,-0.5f,
		0.5f,-0.5f,-0.5f,
		-0.5f,-0.5f,0.5f,
		-0.5f,0.5f,0.5f,
		0.5f,0.5f,0.5f,
		0.5f,-0.5f,0.5f
	};
	int shell_first[]=
	{
		4,0,1,2,3,
		4,4,5,6,2,
		4,5,4,4,6,
		4,4,0,3,4,
		4,3,2,6,7,
		4,0,4,5,1
	};

	HPoint points[5];
	points[0].Set(10,10,0);
	points[1].Set(-10,10,0);
	points[2].Set(-10,-10,0);
	points[3].Set(10,-10,0);
	points[4].Set(10,10,0);
	
	HPoint posArray[6];
	float fRad[6];

	posArray[0].Set(0,0,0);
	posArray[1].Set(0,0,0.5);
	posArray[2]=posArray[1];
	posArray[3]=posArray[1];
	posArray[4]=posArray[1];
	posArray[5].Set(0,0,0.5);

	fRad[0]=0.5;
	fRad[1]=0.5;
	fRad[2]=0.5;
	fRad[3]=0.8;
	fRad[4]=0.8;
	fRad[5]=0;

	HPoint *posMesh=new HPoint[10];
	int i,j,k;
	k=0;
	for(i=0;i<=1;i++)
	{
		for (j=0;j<5;j++)
		{
			posMesh[k].x=(float)i*0.1;
			posMesh[k].y=(float)j*0.1;
			posMesh[k].z=0.0f;
			k++;
		}
	}

	HPoint *position,*target;
	position=new HPoint;
	target=new HPoint;
	position->Set(0.0f,0.0f,0.0f);
	target->Set(1.0f,1.0f,0.0f);
	//设置相机
	HPoint pos,tar,up;
	pos.Set(0.0f,0.0f,0.0f);
	tar.Set(0.0f,0.0f,1.0f);
	up.Set(0.0f,1.0f,0.0f);
	float width=1.0f;
	float height=1.0f;






 	HC_Open_Segment_By_Key(m_pHBaseModel->GetModelKey());
	//HC_Insert_Shell(8,shell_points,30,shell_first);
 	HC_Insert_PolyCylinder(6,posArray,6,fRad,"first");
	//HC_Insert_Mesh(2,5,posMesh);
 	HC_Insert_Text(0,0,0,"test");
// 	HC_Insert_Distant_Light(0,0,-1);//插入平行光源
// 	HC_Insert_Local_Light(1,0,0);//插入全方位的点光源
//	HC_Insert_Spot_Light(position,target,"illumination cone = 30");//插入一个圆锥光源
 	HC_Close_Segment();


	HC_Update_Display();



	outcome res = api_start_modeller(0);
	


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -