读取二进制格式的STL模型文件

std::ifstream fin;
fin.open(stlFilePath, std::ios::in | std::ios::binary);
bool isBinary=true;//判断stl是否是二进制流文件
fin.seekg(0, std::ios::end);
std::streamoff stlFileSize=fin.tellg();//文件大小
char buf[4];
fin.seekg(80, std::ios::beg);
fin.read(buf, 4);
int triNum=*(int*)(buf);//三角面个数
if ((80+4+triNum*50)!=stlFileSize)
{
 isBinary=false;
}
//一个STL里面的facet占50个字节
float normal[3];//三角面法向量3*sizeof(float)=12字节
float v1[3]; //第一个顶点3*sizeof(float)=12字节
float v2[3]; //第二个顶点3*sizeof(float)=12字节
float v3[3]; //第三个顶点3*sizeof(float)=12字节
short attribute;//2字节,属性信息(暂未使用)
for (int meshId=0; meshId<triNum; meshId++)
{
fin.read((char*)normal, 12);
fin.read((char*)v1, 12);
fin.read((char*)v2, 12);
fin.read((char*)v3, 12);
fin.read((char*)&attribute, sizeof(short));
}

读取STL模型的更多相关文章

  1. VTK中获取STL模型点的坐标以及对其进行变换

    VTK是一个基于面向对象的开源三维绘图软件包,和其它的的三维绘图引擎如OSG.OGRE不同之处在于,VTK可视化对象主要是各种数据,更加注重对数据分析处理后的可视化,可视化的内容是人们无法直接感受到的 ...

  2. c# winform用sharpGL(OpenGl)解析读取3D模型obj

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11783026.html 自己写了个简单的类读取解析obj模型,使用导入类,然后new个对象,在 ...

  3. VS+OpenGl 显示三维STL模型 代码

    今天调出了用VS环境结合OpenGL glut工具包进行显示STL模型的模块,进行了渲染.效果: 如下,后期会进行进一步优化,先贴上: #ifndef DATA_H #define DATA_H st ...

  4. Three.js基础:导入STL模型文件

    stlloadertest.html: <!DOCTYPE html> <html lang="en"> <head> <title> ...

  5. 保存及读取keras模型参数

    转自:http://blog.csdn.net/u010159842/article/details/54407745,感谢分享~ 你可以使用model.save(filepath)将Keras模型和 ...

  6. Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能

    /**-------------------------------------------------代码区--------------------------------------------- ...

  7. 第九章 用多线程来读取epoll模型下的client数据

    #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include &l ...

  8. R 读取回归模型的信息

    参考博客: http://blog.sina.com.cn/s/blog_8f5b2a2e0101fmiq.html https://blog.csdn.net/huangyouyu523/artic ...

  9. c++ opencv3.4 保存和读取PCA模型

    cv::PCA pca(samples, cv::Mat(), cv::PCA::DATA_AS_ROW,); FileStorage fs("pca.xml",FileStora ...

随机推荐

  1. BZOJ1086 [SCOI2005]王室联邦

    Description “余”人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两个 ...

  2. Linux下不同机器之间的文件拷贝

    通过 scp 命令实现不同机器之间的文件拷贝. (1)本机考到目标机器:scp 本机文件 目的地: 如:scp /home/odp-web.war   root@192.168.6.137:/usr/ ...

  3. Swift翻译之-关于Swift

    IMPORTANT 重要的 This is a preliminary document for an API or technology in development. Apple is suppl ...

  4. [转]优化wp_head()

    经过对head的优化,我的博客访问速度也快了好多,在此过程中也了解到wp_head()模板函数的作用,可以再次优化,特此记录. 步骤:加入到function.phpremove_action(‘wp_ ...

  5. [整理]Code::Blocks使用遇到的问题

    在使用其编写C小程序的过程总会遇到些问题,特整理如下: 1.无法调试 注意的是项目所在的文件路径不能包含中文. 2.头文件接口函数申明引用无效 查看头文件是否处于可编译状态,左侧项目文件列表里是文件名 ...

  6. Array和ArrayList互相转换

    class Order{ public string orderId; public string orderName; public decimal orderPrice; } public cla ...

  7. 【一个iOS官方文档错误】关于keyWindow是否可以接受触摸事件?

    [一个iOS文档错误]关于keyWindow是否可以接受触摸事件?   关于keyWindow,官方文档有一个解释: 同一时间只有一个window可以成为keyWindow,keyWindow可以接受 ...

  8. cocos基础教程(1)Mac环境下搭建

    下面主要介绍cocos2d-x环境的设置以及android的环境搭建 1.下载cocos2d-x 3.0正式版      http://www.cocos2d-x.org/download 2.下载a ...

  9. [Effective JavaScript 笔记]第43条:使用Object的直接实例构造轻量级的字典

    js对象的核心是一个字符串属性名与属性值的映射表.使用对象实现字典易如反掌,字典是可变长的字符串与值的映射集合. for...in js提供了枚举一个对象属性名的利器--for...in循环. var ...

  10. UITextField竖直居中对齐

    http://blog.sina.com.cn/s/blog_87533a0801012nv0.html 用xib生成的UITextField文字默认是水平左对齐,垂直居中对齐的,但是用代码生成的UI ...