在加载stl文件的时候有些文件的mesh太多导致加载速度太慢需要进行下采样,以便提高加载速度,可以使用vtk提供的vtkDecimatePro进行下采样.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include "logger/Logger.h"

int main(int argc, char *argv[]) {

std::string inputFilename = "large.stl";

vtkSmartPointer reader =

vtkSmartPointer::New();

reader->SetFileName(inputFilename.c_str());

reader->Update();

vtkSmartPointer stlData = reader->GetOutput();

LOG_INFO << stlData->GetNumberOfPoints();

//只保留2000个点

double d = 1-2000.0/stlData->GetNumberOfPoints();

vtkSmartPointer decimate =

vtkSmartPointer::New();

decimate->SetInputData(stlData);

decimate->PreserveTopologyOff();

decimate->SplittingOn();

decimate->BoundaryVertexDeletionOn();

decimate->SetTargetReduction(d);

decimate->Update();

vtkSmartPointer decimated =

vtkSmartPointer::New();

decimated->ShallowCopy(decimate->GetOutput());

LOG_INFO << decimated->GetNumberOfPoints();

std::string filename = "small.stl";

vtkSmartPointer stlWriter =

vtkSmartPointer::New();

stlWriter->SetFileName(filename.c_str());

stlWriter->SetInputData(decimated);

stlWriter->Write();

return 0;

}

decimate->PreserveTopologyOff();

decimate->SplittingOn();

decimate->BoundaryVertexDeletionOn();

这几行设置是确保下采样比例能够到指定比例,否则可能无法到达你设置的采样比.

stl文件怎么用Java读取_vtk对stl文件进行下采样相关推荐

  1. stl文件怎么用Java读取_将STEP文件转换为STL

    我正在寻找有关如何解决以下问题的建议: 将STEP(ISO 10303,AP 203/214)转换为三角形网格,即转换为STL 显然,STEP支持一些平滑曲线的各种精确表示,例如NURBS,因此两者不 ...

  2. java读取大txt文件_使用java读取txt里边的文件内容并获取大小(M).txt

    package com; import java.io.File; import java.io.*; import java.io.FileInputStream; import java.io.F ...

  3. Java读取Level-1行情dbf文件极致优化(2)

    最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...

  4. java读取各类型的文件

    java读取各类型的文件 用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-d ...

  5. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  6. java读取并修改xml文件

    java读取并修改xml文件 java如何读取xml并且修改xml文件呢?代码如下: //复制模板xnl File file = new File(xmlSavePath + "/mb.xm ...

  7. 读取gps观测数据o文件的matlab编程,读取GPS观测数据O文件的matlab编程.doc

    读取GPS观测数据O文件的matlab编程 读取GPS观测数据O文件的matlab编程 function HeadO=ReadObsHead [fname,fpath]=uigetfile('*.*O ...

  8. java 读取hdfs上的文件内容

    用java读取hdfs的文件 直接撸代码: package com.nature.base.util;import com.nature.component.process.vo.DebugDataR ...

  9. 读csv文件java_用Java读取CSV文件的最快方法

    我注意到在读取大文件(在我的例子中是csv文件)时使用java.util.Scanner非常慢. 我想改变当前读取文件的方式,以提高性能.下面是我目前所拥有的.请注意,我正在为Android开发:In ...

最新文章

  1. 20162303 2016-2017-2 《程序设计与数据结构》第六周学习总结
  2. JavaScript Document 对象
  3. 第十二课.sklearn决策树实验
  4. 3d 行为树编辑器_cocos creator主程入门教程——有限状态机和行为树
  5. 18不使用委托实现能自动侦测车距的智能汽车
  6. DJango_生命周期
  7. 几种常用的Java数据源解决方案
  8. Leetcode刷题记录[python]——258 Add Digits
  9. Boost.Signals2 的多槽 hello world 示例
  10. linux 网络协议栈变化,ZZ Linux网络协议栈学习
  11. 微信小程序后端-PageHelper分页时查询结果重复问题
  12. SpringBoot 2.1.5(38)---热部署(devtools)配置操作
  13. oracle 删除行记录,使用实体框架从oracle数据库中删除记录
  14. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals
  15. 谈谈信息化、数字化、智能化和数智化的区别
  16. 【转载】MIXLY二次开发(傻瓜版)
  17. SSM员工工资管理系统(Java毕设项目)
  18. P2P银行卡绑定(银行卡四要素)
  19. 飞桨《百度构架师手把手教深度学习》结营体验
  20. c语言版贪吃蛇《课程设计》

热门文章

  1. Juery的基本的基本操作用法
  2. python中函数的定义_Python函数是什么_如何定义和调用函数?
  3. 项目实践——语音计算器
  4. Android 增量更新
  5. Android 实现微信界面
  6. 关于Microsoft Edge 浏览器无法使用selenium调用问题
  7. Markdown排版微信公众号文章
  8. 互联网/计算机 校园招聘信息大全!
  9. 前端进阶-ES6函数
  10. 2019TFE计算机科学排名,2019TFE美国会计专业研究生排名前50