当前位置: 首页 > news >正文

五、vtkFeatureEdges边过滤器

一、概述

1、vtkFeatureEdges是VTK中的一个过滤器类,用于从输入的多边形数据(vtkPolyData)中提取特征边(Feature Edge)。特征边通常是指几何模型中的边界边、非流行边、锐边或轮廓边等。

2、vtkFeatureEdges是一个非常有用的工具,特别适合用于几何处理、模型分析和可视化任务中。通过提取特征边,可以更好地理解和处理复制地几何模型。

二、主要功能

1、提取特征边

(1)边界边(Boundary Edges):只被一个多半形使用地边,或者直线单元

(2)非流行边(Non-Manifold Edges):被三个以上地多变形共用地边

(3)特征边(Feature Edges):被两个三角形使用且二面角大于特征角地边

(4)流行边(Mainifold Edges):只被两个多边形使用地边

2、可定制性

(1)可以通过设置角度阈值来控制特征边地提取

(2)可以选择提取特定类型地边

三、常用方法

1、BoundaryEdgesOn、BoundaryEdgesOff

开启或禁用边界边的提取

2、FeatureEdgesOn、FeatureEdgesOff 

开启或禁用特征边的提取 

3、ManifoldEdgesOn、ManifoldEdgesOff

 开启或禁用流行边的提取

4、NonManifoldEdgesOn、NonManifoldEdgesOff

开启或禁用非流行边的提取 

5、ColoringOn、ColoringOff 

启用或禁用边的颜色区分  

6、SetFeatureAngle(double angle) 

设置特征边的角度阈值 

7、update()

执行过滤器并生成输出 

四、示例 

#include <vtkActor.h>
#include <vtkDiskSource.h>
#include <vtkFeatureEdges.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkInteractorStyleTrackballCamera.h>

#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);

int main(int argc, char *argv[])
{
    vtkNew<vtkNamedColors> colors;

    //环
    vtkNew<vtkDiskSource> diskSource;
    diskSource->Update();

    // 创建特征边过滤器
    vtkNew<vtkFeatureEdges> featureEdges;
    featureEdges->SetInputConnection(diskSource->GetOutputPort());
    featureEdges->BoundaryEdgesOn();      //启用边界边的提取
    featureEdges->FeatureEdgesOff();      //启用特征边的提取
    featureEdges->ManifoldEdgesOff();     //禁用流形边的提取
    featureEdges->NonManifoldEdgesOff();  //禁用非流形边的提取
    featureEdges->ColoringOn();           //启用边的颜色区分
     featureEdges->Update();              //执行过滤器并生成输出

    vtkNew<vtkPolyDataMapper> edgeMapper;
    edgeMapper->SetInputConnection(featureEdges->GetOutputPort());
    edgeMapper->SetScalarModeToUseCellData();
    vtkNew<vtkPolyDataMapper> diskMapper;
    diskMapper->SetInputConnection(diskSource->GetOutputPort());

    vtkNew<vtkActor> edgeActor;
    edgeActor->SetMapper(edgeMapper.Get());
    vtkNew<vtkActor> diskActor;
    diskActor->SetMapper(diskMapper.Get());


    vtkNew<vtkRenderer> renderer;
    vtkNew<vtkRenderWindow> renderWindow;
    renderWindow->AddRenderer(renderer.Get());
    renderWindow->SetWindowName("BoundaryEdges");

    vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
    renderWindowInteractor->SetRenderWindow(renderWindow.Get());

    vtkNew<vtkInteractorStyleTrackballCamera> camera;
    renderWindowInteractor->SetInteractorStyle(camera);

    renderer->AddActor(edgeActor.Get());
    renderer->AddActor(diskActor.Get());
    renderer->SetBackground(0,0,0);

    renderWindow->Render();
    renderWindowInteractor->Start();

    return EXIT_SUCCESS;
}

相关文章:

  • C# Enumerable类 之 数据连接
  • js,html,css,vuejs手搓级联单选
  • 网络空间安全(34)安全防御体系
  • 【蓝桥杯】每天一题,理解逻辑(4/90)【Leetcode 二进制求和】
  • system()执行和shell脚本的优劣
  • Spark SQL 编程初级实践
  • Spring相关面试题
  • 若依前后端分离项目部署(使用docker)
  • ArcGIS Pro 制作风台路径图:从数据到可视化
  • 中电金信25/3/18面前笔试(需求分析岗+数据开发岗)
  • Direct2D 极速教程(3) —— 画动态淳平
  • STM32F030通过DMA方式读取ADC及芯片内部温度程序
  • 基于srpingboot高校智慧校园教学管理服务平台的设计与实现(源码+文档+部署讲解)
  • 折叠树展示树状层级数据
  • WEB安全--SQL注入--DNSlog外带
  • c# 正则表达式基础知识
  • Hard Disk Sentinel:您的硬盘健康“全科医生”,守护数据安全的智能管家
  • STT-MRAM CIM 赋能边缘 AI:高性能噪声鲁棒贝叶斯神经网络宏架构详解
  • 进行交通流预测,使用KAN+Transformer模型
  • 好的服务设计怎么做?15个原则.服务的归一化设计原则是什么?
  • 成就彼此,照亮世界:“中欧建交50周年论坛”在沪成功举行
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 上海交大:关注到对教师邵某的网络举报,已成立专班开展调查
  • 昆明阳宗海风景名胜区19口井违规抽取地热水,整改后用自来水代替温泉
  • 少年中国之少年的形塑
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿助力人文学科与社会科学创新