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

📄 check.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       *//*********************** self documentation **********************//******************************************************************************CHECK - CHECK triangulated models*******************************************************************************badModel		bad Model flagcheckVertexUse		check Vertex UsecheckEdgeUse		check Edge UsecheckFace		check FacecheckModel		check Model*******************************************************************************Function Prototypes:void badModel(void);void checkVertexUse (VertexUse *vu);void checkEdgeUse (EdgeUse *eu);void checkFace (Face *f);void checkModel (Model *m);*******************************************************************************checkVertexUse:Input:vu	Pointer to VertexUsecheckEdgeUse:Input:eu	pointer to EdgeUsecheckFace:Input:f	pointer to FacecheckModel:Input:m	pointer to Model*******************************************************************************Notes: Routines for checking triangulated models.*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************//**************** end self doc ********************************/#include "Triangles/triP.h"void badModel(void)/******************************************************************************badModel - bad Model flag*******************************************************************************Note:  to be used with checkVertexUse, checkEdgeUse, and checkFace*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************/{	exit(-1);}void checkVertexUse (VertexUse *vu)/******************************************************************************checkVertexUse - check Vertex Use*******************************************************************************Input:vu	Pointer to VertexUse*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************/{	VertexUse *vut;	/* printf("vertexuse %d\n",vu); */	if (vu->v!=vu->vuPrev->v) badModel();	if (vu->v!=vu->vuNext->v) badModel();	if (vu->vuNext->vuPrev!=vu) badModel();	if (vu->vuPrev->vuNext!=vu) badModel();	if (vu->eu->vu!=vu) badModel();	vut = vu;	do {		if (vut->v!=vu->v) badModel();		vut = vut->vuNext;	} while(vut!=vu);}void checkEdgeUse (EdgeUse *eu)/******************************************************************************checkEdgeUse - check Edge Use*******************************************************************************Input:eu	pointer to EdgeUse*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************/{	/* printf("edgeuse %d\n",eu); */	if (eu->vu->eu!=eu) badModel();	if (eu->euMate->euMate!=eu) badModel();	if (eu->euCW->euCCW!=eu) badModel();	if (eu->euCCW->euCW!=eu) badModel();	if (eu->euCW==eu->euCCW) badModel();	if (eu->e->eu!=eu && eu->e->eu!=eu->euMate) badModel();	if (eu->euCW->euCW->euCW!=eu && eu->f!=NULL) badModel();	if (eu->euCCW->euCCW->euCCW!=eu && eu->f!=NULL) badModel();	checkVertexUse(eu->vu);	checkVertexUse(eu->euMate->vu);}	void checkFace (Face *f)/******************************************************************************checkFace - check Face*******************************************************************************Input:f	pointer to Face*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************/{	EdgeUse *eu;	/* printf("face %d\n",f); */	if (f->fPrev->fNext!=f) badModel();	if (f->fNext->fPrev!=f) badModel();	if (f->eu->f!=f) badModel();	eu = f->eu;	do {		checkEdgeUse(eu);		checkEdgeUse(eu->euMate);		eu = eu->euCW;	} while(eu!=f->eu);}void checkModel (Model *m)/******************************************************************************checkModel - check Model*******************************************************************************Input:m	pointer to Model*******************************************************************************Author:  Dave Hale, Colorado School of Mines, 07/09/90******************************************************************************/{	Face *f;	/* printf("model %d\n",m); */	if (m->f->m!=m) badModel();	f = m->f;	do {		if (f->m!=m) badModel();		checkFace(f);		f = f->fNext;	} while (f!=m->f);}

⌨️ 快捷键说明

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