VTP转OFF

2024-08-21 10:58
文章标签 vtp

本文主要是介绍VTP转OFF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

.vtp格式的文件转为.off格式:

1. CMakeLists.txt

cmake_minimum_required(VERSION 3.17)PROJECT(VtpToOFF)find_package(VTK REQUIRED)
include(${VTK_USE_FILE})add_executable(VtpToOFF MACOSX_BUNDLE VtpToOFF vtkOFFWriter.cxx)if(VTK_LIBRARIES)target_link_libraries(VtpToOFF ${VTK_LIBRARIES})
else()target_link_libraries(VtpToOFF vtkHybrid)
endif()

2. VTKOffWriter.h

#ifndef __vtkOFFWriter_h
#define __vtkOFFWriter_h#include "vtkPolyDataWriter.h"class vtkOFFWriter : public vtkPolyDataWriter
{
public:static vtkOFFWriter *New();vtkTypeMacro(vtkOFFWriter,vtkPolyDataWriter);void PrintSelf(ostream& os, vtkIndent indent);protected:vtkOFFWriter();~vtkOFFWriter();void WriteData();void WriteAsciiOFF(vtkPolyData *pd);void WriteBinaryOFF(vtkPolyData *pd);private:vtkOFFWriter(const vtkOFFWriter&);  // Not implemented.void operator=(const vtkOFFWriter&);  // Not implemented.
};#endif

3. VTKOffWriter.cxx

#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtksys/SystemTools.hxx>
#include <vtkXMLPolyDataReader.h>#include "vtkOFFWriter.h"#include <string>int main(int argc, char *argv[])
{if (argc != 2){std::cerr << "Usage: " << argv[0] << " Filename(.vtp)" << std::endl;return EXIT_FAILURE;}std::string inputFilename = argv[1];std::string outputFilename= vtksys::SystemTools::GetFilenameWithoutExtension(inputFilename) + ".off";vtkSmartPointer<vtkXMLPolyDataReader> reader =vtkSmartPointer<vtkXMLPolyDataReader>::New();reader->SetFileName(inputFilename.c_str());reader->Update();vtkSmartPointer<vtkOFFWriter> writer =vtkSmartPointer<vtkOFFWriter>::New();writer->SetFileName(outputFilename.c_str());writer->SetInputConnection(reader->GetOutputPort());writer->Write();return EXIT_SUCCESS;
}

4. VtpToOff.cxx

#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtksys/SystemTools.hxx>
#include <vtkXMLPolyDataReader.h>#include "vtkOFFWriter.h"#include <string>int main(int argc, char *argv[])
{if (argc != 2){std::cerr << "Usage: " << argv[0] << " Filename(.vtp)" << std::endl;return EXIT_FAILURE;}std::string inputFilename = argv[1];std::string outputFilename= vtksys::SystemTools::GetFilenameWithoutExtension(inputFilename) + ".off";vtkSmartPointer<vtkXMLPolyDataReader> reader =vtkSmartPointer<vtkXMLPolyDataReader>::New();reader->SetFileName(inputFilename.c_str());reader->Update();vtkSmartPointer<vtkOFFWriter> writer =vtkSmartPointer<vtkOFFWriter>::New();writer->SetFileName(outputFilename.c_str());writer->SetInputConnection(reader->GetOutputPort());writer->Write();return EXIT_SUCCESS;
}

这篇关于VTP转OFF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092968

相关文章

VTP-------详解

VTP一个可以说很方便的协议,学习Cisco时也很常用的协议,他的作用就是可以在有大量交换设备,需要配置类似的vlan划分的时候,简化配置过程,使各个交换机互相学习Vlan Database,配置方法也非常简单。 由于GNS3做VTP实验不是很方便,我这里使用Cisco Packet Tracer。 看拓扑: 中间两个SW通过各自的f0/24互连,左边的是SW1,右边的是SW2,实验目

交换机怎么使用vtp

为何使用要使用vtp?好处就是可以让多个交换机快速的建立和修改vlan,使他们保持同样的vlan数据库,每个交换机不用单独配置一次vlan数据库了。 客户端的vlan数据库会自动跟服务器的vlan数据库保持一致。透明模式的交换机需要自己手动添加,修改,删除。 vtp有三种模式:服务器模式、客户端模式、透明模式。 以下图四台交换机为例学习使用vtp   第一步:将交换机switch9配

【学网攻】 第(5)节 -- Cisco VTP的使用

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资源得以自由流动。随着互联网的发展,我们可以通过网络学习、工作、娱乐,甚至是社交。因此,学习网络知识和技能已

vtp mode {server| client | transparent}三种模式详解

在Cisco 的交换机上,为了减少管理员对于VLAN表的配置,可以开启一个vtp的功能,步骤如下: 服务交换机: - Switch-ser(config)# vtp domain vlan (服务端域名) - Switch-ser(config)# vtp password 123 (服务端密码) - Switch-ser(config)# vtp mode server (服务端模式)

trunk,VTP 以及SVI

Trunk:中继协议 干道协议,使用一条物理链路传递不同VLAN的流量 封装:使用ISL或者802.1Q对不同VLAN流量打入标记,只能够在trunk链路中打入标记,区分不同VLAN流量 类型作用是为了描述上层使用什么协议 PRI就是802.1Q中做流量标记的,二层中使用,三层是TOS标记,二层叫做COS标记,MPLS标记叫做exp, 空标签是用来做令牌环的 最后的vlan ID 才是做流量标

VLAN 中继协议(VTP)

思科 VLAN 中继协议(VTP)是思科第 2 层信息传送协议,主要控制网络内 VLAN 的添加、删除和重命名。VTP 减少了交换网络中的管理工作。用户在 VTP 服务器上配置新的 VLAN,该 VLAN 信息就会分发到所有交换机,这样可以避免到处配置相同的 VLAN 。VTP 是思科专有协议,它支持大多数的 Cisco Catalyst 系列产品。 通过 VTP,其域内的所有交换机都清楚所有的