首页 > 编程语言 >Opencascad开发(C++)-数据类型转换-Shape、Verterx和gp_pnt的转化

Opencascad开发(C++)-数据类型转换-Shape、Verterx和gp_pnt的转化

时间:2023-10-31 10:38:37浏览次数:44  
标签:类型转换 Opencascad 转换 gp Vertex Pnt Shape TopoDS


提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 1、前言
  • 2、TopoDS_Shape与TopoDS_Vertex的转换
  • 2.1 TopoDS_Shape到TopoDS_Vertex
  • 2.2 TopoDS_Vertex到TopoDS_Shape
  • 3、TopoDS_Vertex与gp_Pnt
  • 3.1 TopoDS_Vertex到gp_Pnt
  • 3.2 gp_Pnt到TopoDS_Vertex



1、前言

在Opencascader开发学习中,经常会遇到数据类型的转换,为了方便自己记忆,将这些类型转换逐个记录下来,本文记录TopoDS_Shape、TopoDS_Vertex和gp_Pnt的转换。


2、TopoDS_Shape与TopoDS_Vertex的转换

2.1 TopoDS_Shape到TopoDS_Vertex

为了防止转换时出现的错误,避免其他类型的干扰,还是要加上判断TopoDS_Shape是否是Vertex的语句,如:

TopoDS_Shape shape1;
             if(shape1.ShapeType()== TopAbs_ShapeEnum::TopAbs_VERTEX)
             {
             
             }

如果是Vertex,才进行转换,转换采用TopoDS_Vertex,转换代码如下:

TopoDS_Shape shape;
            if(shape.ShapeType()== TopAbs_ShapeEnum::TopAbs_VERTEX)
           {
                TopoDS_Vertex vertex1 = TopoDS::Vertex(shape);
           }

2.2 TopoDS_Vertex到TopoDS_Shape

因为Vertex本身是TopoDS_Shape扩展出来的,所以其可以直接转换:

TopoDS_Vertex vertex1;
                TopoDS_Shape shape1 = vertex1;

3、TopoDS_Vertex与gp_Pnt

3.1 TopoDS_Vertex到gp_Pnt

转换是利用BRep_Tool实现的,示例如下:

TopoDS_Vertex vertex1;       
gp_Pnt pnt1 = BRep_Tool::Pnt(vertex1);

3.2 gp_Pnt到TopoDS_Vertex

gp_Pnt到TopoDS_Vertex的转换是通过BRepPrim_Builder来实现的,示例代码如下:

gp_Pnt p1(0,0,0);
           TopoDS_Vertex vertex;
           BRepPrim_Builder builder;
           builder.MakeVertex(vertex,p1);


标签:类型转换,Opencascad,转换,gp,Vertex,Pnt,Shape,TopoDS
From: https://blog.51cto.com/GimiGimmy/8102108

相关文章

  • Opencascad(C++)-建模-创建有界直线段
    文章目录1、前言2、用gp_Lin创建一条直线2.1gp_Lin类成员函数2.2创建一条直线2.3运行结果3、创建一条有界的直线段3.1功能说明3.2函数说明3.2创建直线段的代码3.3测试效果1、前言在Opencascad开发时,经常会遇到创建直线的情况,采用gp_Line创建的直线段是无界的,如果想创建......
  • 文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题
    五、用go语言,给定一个n结点的二叉树,写出一个O(n)时间的非递归过程,将该树每个结点的关键字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改也不允许。文心一言:您可以使用一个栈来存储节点,以便在遍历二叉树时进行回溯。由于您......
  • 文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题
    五、用go语言,给定一个n结点的二叉树,写出一个O(n)时间的非递归过程,将该树每个结点的关键字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改也不允许。文心一言:您可以使用一个栈来存储节点,以便在遍历二叉树时进行回溯。由......
  • 文心一言 VS 讯飞星火 VS chatgpt (122)-- 算法导论10.4 3题
    三、用go语言,给定一个n结点的二叉树,写出一个O(n)时间的非递归过程,将该树每个结点的关键字输出。可以使用一个栈作为辅助数据结构。文心一言:以下是一个使用Go语言编写的函数,该函数使用一个栈作为辅助数据结构,以非递归方式遍历二叉树,输出每个结点的关键字。这个算法的时间复杂度为......
  • GPU信息文档汇总
      1、卸载现有的显卡命令:sudo/usr/bin/nvidia-uninstallsudoapt-get--purgeremovenvidia-*sudoapt-getpurgenvidia*sudoapt-getpurgelibnvidia*最后再查看一下是否还有显示信息sudodpkg--list|grepnvidia-*如果还有一条信息显示,则需重启下服务器reboot2......
  • 运用chatGPT生成E-R图的prompt
     根据以上内容,让我们定义用例让我们为用例定义一个数据模型   更详细地描述数据模型或使用Markdown的表格格式这种模型可以根据具体的用例进行扩展和修改,以满足需求分析和设计过程中的实际需要。 为所有的数据模型定义关系,实体关系图输出为PlantUML 将带......
  • 机器狗装上 ChatGPT 大脑当导游;AI 正在学习「超人的说服力」丨 RTE 开发者日报 Vol.73
     开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE (RealTimeEngagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • 大幅提升大模型的通用智能体能力!清华最新研究,让Llama2直逼GPT-4?
     作者|智商掉了一地、ZenMoore智能体(agent)是一种能够感知环境、做出决策并采取行动的实体。传统的智能体在专业领域表现出色,但在适应性和泛化方面通常表现欠缺。最近,随着ChatGPT的爆火出圈,最初设计用于语言任务的大型语言模型(LLMs)微调后在指令遵循、推理、规划甚至工具利......
  • 推特爆火!超越ChatGPT和Llama2,新一代检索增强方法Self-RAG来了原创
    作者|ZenMoore前言大型语言模型(LLMs)具有出色的能力,但由于完全依赖其内部的参数化知识,它们经常产生包含事实错误的回答,尤其在长尾知识中。为了解决这一问题,之前的研究人员提出了检索增强生成(RAG),它通过检索相关知识来增强LMs的效果,尤其在需要大量知识的任务,如问答中,表现出色。但RAG......
  • 聊聊昨日ChatGPT全球宕机事件,带给我们的警示
    作者|卖萌酱,王二狗昨日,ChatGPT崩了!许多人发现无论是ChatGPT或是ChatGPTPLUS都不能正常工作了。还连带了全球数以万计的依赖ChatGPTAPI的热门AI应用也纷纷崩溃。有Twitter网友调侃到,昨日受ChatGPT宕机的影响,全球的生产力下降了50%,打工人一片哀嚎。更有网友上传了一段视频,真......