jt格式文件读取,osg显示插件更新
osgdb_jt
最近还是更新了一下 osgdb_jt 插件。解码jt格式核心库jt_toolkit,通过静态链接到Plugin jt产生osgdb_jt插件,使得osg可以可视化jt格式文件。
用法
osg为OpenSceneGraph-3.6.3官方源码编译,只有osgdb_jt为新增编译文件。
当 osgDB::readNodeFile(fileName) 遇到后缀为jt格式的文件时,会自动以osgdb_jt的形式去寻找插件,所以在osg源码部分没有任何修改。
osgdb_jt 仅依赖zlib.dll, liblzma.dll 两个文件。
下载地址:osgviewer_with_jt
用法举例:比如 osgviewer ElectricRazor_assm.jt
相比之前的osgdb_jt插件,改进如下:
- 在接口层面放弃模拟西门子官方JT Open库,重心放在jt格式解析上,拆掉在jt格式节点之上的一层架子
- 接口层面增加 遍历访问器,在Dump()打印信息输出更友好
- 当前仅支持单一文件形式的JT文件,相比之前还支持外部JT文件是一个退步,不过这里不理会这个
- 修订在JT9.5格式上解码的缺失以及遇到的错误,现在大部分JT9.5格式文件均可正常打开
- 实现对JT文件中材质节点的支持,会有颜色显示
- 升级可支持读取VERSION 10的JT文件,但是由于在Int32CDP压缩数据读取上遇到问题,所以没有哪个JT10版本的文件会成功可视化
如果模拟官方JT Open Toolkit,认为可以更好与CAD模型数据比对(Assembly, Part, Instance的方式),体现形式会更友好。但这种表述并不贴近JT格式内容,需要在这之上再架构一层。我这次是重新整理对原有代码的较大幅度升级,重心放在格式的解析上,放弃在这之上的架构叠加,以减少工作量与精力投入;估计这个库用得人也不会多,所以也不投入JT Writer,不过如果再去做,会比原来的底层更健壮友好。
仅实现了三角网格节点的读取,没有对线框,JT BREP, X_T BREP,PMI等节点或段的读取。
关于 Int32 Compressed Data Packet 数据的读取问题,在JT10版本上,基本上遇到算术编码之后,成功读取一二次之后就会遇到难以解释的问题,仔细比对JT文档认为代码没问题呀!搞不清楚,目前也没得参考的地方,没精力耗在这个上面了,存疑吧,以后有机会了再考虑修改。
jt格式文件读取,osg显示插件更新的更多相关文章
- jt格式文件与3D数据压缩
介绍 JT是西门子公司推出的PLM通用三维格式,设计为一个开放.高效率的.紧凑,持久性存储的产品数据格式,用于产品可视化.协作和CAD数据共享.JT文件格式包括多方面的数据,以及对曲面边的精准表示,产 ...
- jt格式文件与网格压缩
jt格式文件与网格压缩 介绍 jt是一种3D数据格式,主要用于工业,产品可视化,数据交换,并且西门子在2012推动jt成为ISO国际标准.在文件尺寸方面,采用了不少专门的压缩方法,比较轻量化. jt文 ...
- go学习之文件读取问题(需更新)
go学习之文件读取问题(需更新) 一,问题: 今天做一个GO广度迷宫问题时,出现了一个奇怪的问题. 就是通过fmt.Fscanf()读取文件时,每行末尾多出一个0. 二,问题代码: 1,输入文件maz ...
- [自制操作系统] BMP格式文件读取&图形界面系统框架/应用接口设计
本文将介绍在本人JOS中实现的简单图形界面应用程序接口,应用程序启动器,以及一些利用了图形界面的示例应用程序. 本文主要涉及以下部分: 内核/用户RW/RW调色板framebuffer共享区域 8bi ...
- 《python核心编程》笔记——文件的创建、读取和显示
创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...
- 使用C#压缩解压rar和zip格式文件
为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C#. ...
- [原][资料整理][osg]osgDB文件读取插件,工作机制,支持格式,自定义插件
参考: osgPlugins相关 osg读取文件的原理(插件工作机制) 当使用osgDB读取文件时,会自动根据文件的扩展名来到插件目录中寻找相应的插件,来实现. 比如: osgviewer cow.o ...
- 使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示 【转】
参考文章:CadLib 3.5 documentationhttps://www.woutware.com/doc/cadlib3.5/Index.aspx 读取:定义DxfModel类型的变量mod ...
- [OSG][转]osg格式文件
转自:http://blog.csdn.net/timothyfly/article/details/7826139 osg格式文件中如何处理多个节点共享一个子节点 下面一段程序中,共有三个Group ...
随机推荐
- vue app项目 第一天 基本架构和路由配置
一.前言 今天开始打算花6天时间 完成一个基于vue的买菜app 在这里记录一下项目的流程和第一次做这个项目遇到的坑 以及解决的办法 二.第一步 脚手架的安装 使用npm 安装好脚手架 安装脚手架教 ...
- Prometheus学习系列(一)之Prometheus简介
前言 本文来自Prometheus官网手册 和 Prometheus简介 什么是prometheus? Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包.自2012 ...
- Ocelot网关在.Net Core 的使用
1. 项目环境 .Net Core 2.2 Ocelot 13.5.2 2. 基本使用 * Nuget 安装 Ocelot , Ocelot.Provider.Polly * 修改 Pro ...
- Iterable与Collection源码学习
接口 - Iterable<T> - 可迭代 描述 实现本接口的类,其对象可以被迭代.同时支持forEach语法 方法 Iterator<T> iterator() 类型 抽象 ...
- 从0系统学Android--3.6 RecyclerView
从0系统学Android--更强大的滚动控件---RecyclerView 本系列文章目录:更多精品文章分类 本系列持续更新中.... 参考<第一行代码> 首先说明一点昨天发了一篇关于 L ...
- svn忽略文件不提交至服务器的方法
在提交界面,右键加入忽略提交列表.可以实现忽略本地文件不提交,且不删除服务器上的文件.
- cobbler无人值守
一.背景介绍 作为运维,在公司经常遇到一些机械性重复工作要做,例如:为新机器装系统,一台两台机器装系统,可以用光盘.U盘等介质安装,1小时也完成了,但是如果有成百台的服务器还要用光盘.U盘去安装, ...
- [PHP] RBAC权限与审批流的简单数据库构想
权限部分:功能权限+数据权限 控制权限是界面按钮菜单的权限控制,数据权限是数据范围的控制 role(角色) ----------------- |id | ----------------- |nam ...
- tcp客户端程序开发
https://www.cnblogs.com/python-No/ 话不多说,直接进入正题 一:客户端一共分为5大块: 1.创建客户端套接字 2.和服务端套接字建立连接 3.发送数据 4.接收发送 ...
- Java连载56-toSting方法和equals方法
一.关于object中的toString方法: 1.SUN公司在Object类中设计toString方法的目的:返回java对象的字符串的表示形式. 2.在现实的开发过程中,Object里面的toS ...