• 大小: 199KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: opengl  catia  v5  stl  

资源简介

想在三维模型网格上做点研究,没想到catiaproductpart文件转换成stl格式后就是一个个三角片,估计可以增加个忽悠点哈哈~~

资源截图

代码片段和文件信息

//#include
#include
#include
#include
#include
#include
#include
#include
#define PI 3.1415926
int winWidthwinHeight;
float lastPos[3]={0.0F0.0F0.0F};
float angle=0axis[3]trans[3];
bool trackballMove=false;
bool perspectiveXform = false;
GLfloat objectXform[4][4] = { {1.0 0.0 0.0 0.0} {0.0 1.0 0.0 0.0} {0.0 0.0 1.0 0.0} {0.0 0.0 0.0 1.0} };
GLfloat *trackballXform = (GLfloat*)objectXform;
float distance=0;
bool lineAAEnabled = true;
bool line=1;


struct vertex{
vertex(void):x(0)y(0)z(0){};
vertex(float xfloat yfloat z)
{
this->x=x;
this->y=y;
this->z=z;
}
float xyz;
    inline vertex operator =(const vertex &v)
{
this->x=v.x;
this->y=v.y;
this->z=v.z;
return *this;
}
inline vertex operator +(vertex &v)
{
vertex result;
result.x=this->x+v.x;
result.y=this->y+v.y;
result.z=this->z+v.z;
return result;
}
inline vertex operator -(vertex &v)
{
vertex result;
result.x=this->x-v.x;
result.y=this->y-v.y;
result.z=this->z-v.z;
return result;
}
inline vertex operator /(float f)
{
vertex result;
result.x=this->x/f;
result.y=this->y/f;
result.z=this->z/f;
return result;
}
inline vertex operator -()
{
this->x=-this->x;
this->y=-this->y;
this->z=-this->z;
return *this;
}

};
vertex normalize(vertex v)
{
vertex result;
float norm=sqrt(v.x*v.x+v.y*v.y+v.z*v.z);
result.x=v.x/norm;
result.y=v.y/norm;
result.z=v.z/norm;
return result;
}
struct face{
vertex verts[3];
vertex normal;
inline face operator=(const face &f)
{
this->verts[0]=f.verts[0];
this->verts[1]=f.verts[1];
this->verts[2]=f.verts[2];
this->normal=f.normal;
return *this;
}
};
struct mesh{
std::vector faces;
};
mesh Mesh;
vertex center;
float radius;
void fileread(char *filename)
{
FILE *file;
float xyz;
char str[100];
char buf[999];
if(!(file=fopen(filename“r“)))exit(1);
while (fscanf(file“%s“buf)!=EOF)
{
switch (buf[0])
{
case ‘s‘://solid CATIA STL
case ‘o‘://outer loop
case ‘e‘://endloop or endfacet or endsolid C...
fgets(bufsizeof(buf)file);
break;
case ‘f‘://facet normal ...!
{
fscanf(file“%s“str);
fscanf(file“%f %f %f“&x&y&z);
face temp;
temp.normal.x=x;
temp.normal.y=y;
temp.normal.z=z;
fgets(bufsizeof(buf)file);//...might be ‘\0‘
fgets(bufsizeof(buf)file);//skip “outer loop“
for(int k=0;k<3;k++)
{
float xxyyzz;
fscanf(file“%s“str);//skip “vertex“
fscanf(file“%f %f %f“&xx&yy&zz);
temp.verts[k].x=xx;
temp.verts[k].y=yy;
temp.verts[k].z=zz;
}
Mesh.faces.push_back(temp);
break;
}

default:
fgets(buf sizeof(buf) file);
break;

}

}
fclose(file);
}

void unitize(vertex ¢erfloat &radius)
{
vertex maxmi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      96627  2011-03-15 09:15  stlreader\stlreader\4-10.stl

     文件       7853  2011-03-15 09:17  stlreader\stlreader\4-24d.stl

     文件      11028  2011-03-15 09:26  stlreader\stlreader\Debug\BuildLog.htm

     文件     178670  2011-03-15 09:26  stlreader\stlreader\Debug\main.obj

     文件         65  2011-03-15 09:26  stlreader\stlreader\Debug\mt.dep

     文件        385  2011-03-15 09:26  stlreader\stlreader\Debug\stlreader.exe.intermediate.manifest

     文件     191488  2011-03-15 09:26  stlreader\stlreader\Debug\vc80.idb

     文件     208896  2011-03-15 09:26  stlreader\stlreader\Debug\vc80.pdb

     文件     288121  2011-03-14 16:21  stlreader\stlreader\Exercise02.stl

     文件       8403  2011-03-15 09:26  stlreader\stlreader\main.cpp

     文件     940300  2011-03-12 11:11  stlreader\stlreader\sd_500__sweep_line_tan_sur_exercise10b.stl

     文件       3696  2011-03-13 00:04  stlreader\stlreader\stlreader.vcproj

     文件       1417  2011-03-15 09:27  stlreader\stlreader\stlreader.vcproj.Oscarhx-PC.Oscarhx.user

     文件       1417  2011-03-14 00:23  stlreader\stlreader\stlreader.vcproj.TOSHIBA-PC.TOSHIBA.user

     文件        892  2011-03-12 15:03  stlreader\stlreader.sln

    ..A..H.     24576  2011-03-15 09:27  stlreader\stlreader.suo

     目录          0  2011-03-15 09:26  stlreader\stlreader\Debug

     目录          0  2011-03-15 09:26  stlreader\stlreader

     目录          0  2011-03-15 10:41  stlreader

----------- ---------  ---------- -----  ----

              1963834                    19


评论

共有 条评论