VEX —— Half-edges

目录

一,概述

二,等效

三,函数


在一些VEX函数,可将看成为每个面非共享的半边

一,概述

        在houdini,边通常被视为面之间无方向共享的,然而,对于一些任务(如简化或清理几何体),将面视为有自己的边是非常有用的;

        可理解为,将无方向且共享的边,沿着其长度切成两条半边(half-edge),对于边界的边当然只有一条半边;

        每个半边是有方向的,起始于一个顶点终止于一个顶点;

        半边函数可快速查找半边的源顶点和目标顶点,下一个半边,从相同边获取其他半边,查找共享点的所有半边等;

二,等效

        如两半边是从同一共享边切开的,则这两半边是等效的;如下图,三个面共享一条边,则此三条半边e/f/g也是等效的;方向性并不重要,即使方向相反,e/f/g也是等效的;

        半边的源顶点(目标顶点)可唯一标识它,意味着,一给定源顶点最多只能有一条半边;这是因为一个顶点只能属于一个面;然而,由于多个顶点可以被连接到一个点,半边可共享源和目标点(point);换一句话说等效,如顶点被两个相同点共享,则两半边等效;

        一组等效半边中的其中一条被认为是主半边;vex函数,可检测一条给定的半边是否是主,或给定一非主半边查找其等效的主半边;在一条未共享的边,则仅有一条主半边;

三,函数

hedge_isvalid检测半边是否有效
hedge-isprimary检测半边是否是主
hedge-primary查找主等效半边,如是非共享的边,则返回相同的半边;
hedge-isequiv测试两半边是否等效
hedge-nextequiv返回下一个等效半边
hedge-equivcount获取等效半边的个数
hedge-srcvertex获取半边的源顶点
hedge-dstvertex获取半边的目标顶点
hedge-presrcvertex获取半边源顶点的前顶点
hedge-postdstvertex获取半边目标顶点的后顶点
hedge-prim获取半边的面
hedge-srcpoint获取半边的源点
hedge-dstpoint获取半边的目标点
hedge-presrcpoint获取半边的前源点
hedge-postdstpoint获取半边的后目标点
hedge-next获取面内的下一个半边
hedge-prev获取面内的前一个半边
pointedge查找两点间的半边,顺序不同,结果不同;
pointhedge

查找给定源和目标点的半边,

查找给定源点的半边,多个半边返回较小的;

pointhedgenext返回共享给定源点半边的下一个半边
vertexhedge获取给定源顶点的半边
primhedge获取给定面上的一条半边

四,案例

//点层级,Dual mesh,类似divide节点的Dual功能
int hedge = pointhedge(0, @ptnum);
int ncount = neighbourcount(0, @ptnum);
int pts[];

for(int i=0; i<ncount; i++){
    int prim = hedge_prim(0, hedge);
    vector pos = prim(0, 'P', prim);
    int pt = addpoint(0, pos);
    append(pts, pt);
    
    hedge = hedge_prev(0, hedge);
    hedge = hedge_nextequiv(0, hedge);
}

addprim(0, 'poly', pts);

int prims[] = pointprims(0, @ptnum);
foreach(int prim; prims){
    removeprim(0, prim, 1);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/144733.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云计算网络安全】DDoS 攻击类型:什么是 ACK 洪水 DDoS 攻击

文章目录 一、什么是 ACK 洪水 DDoS 攻击&#xff1f;二、什么是数据包&#xff1f;三、什么是 ACK 数据包&#xff1f;四、ACK 洪水攻击如何工作&#xff1f;五、SYN ACK 洪水攻击如何工作&#xff1f;六、文末送书《AWD特训营》内容简介读者对象 一、什么是 ACK 洪水 DDoS 攻…

玩转ChatGPT:ARIMA模型定制GPT-1.0

一、写在前面 好久不更新咯&#xff01; OpenAI又推出了GPT的一系列重大更新&#xff0c;其中GPTs深得我心啊。 GPTs允许用户创建自定义的ChatGPT版本&#xff0c;以满足自己各种特定需求。其核心理念在于&#xff0c;用户可以为不同的场景和任务创建定制化的ChatGPT。这意味…

超详细!必看!!STM32--系统滴答SysTick

一、SysTick是什么&#xff1f; Systick定时器是一个24bit的倒计时&#xff08;向下计数&#xff09;定时器&#xff0c;功能就是实现简单的延时。 SysTick 是一种系统定时器&#xff0c;通常在嵌入式系统中使用。它是 ARM Cortex-M 处理器的一个特殊定时器&#xff0c;用于提…

制作这种在线宣传画册,可轻松收获客户!

制作企业宣传画册&#xff0c;首先要了解企业制作宣传画册的需求以及展示方向&#xff0c;如今互联网时代&#xff0c;宣传画册的制作也应该要创新&#xff0c;而制作一本在线电子宣传画册用于线上宣传是非常有必要的。如何制作呢&#xff1f; 我们 可以使用FLBOOK平台在线制作…

CVE-2023-2766:泛微E-Office信息泄露漏洞复现 [附POC]

文章目录 泛微E-Office信息泄露漏洞(CVE-2023-2766)复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 泛微E-Office信息泄露漏洞(CVE-2023-2766)复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用…

WGCLOUD的特点整理

做运维工作很多年了&#xff0c;项目中用过不少的运维软件工具&#xff0c;今天整理下WGCLOUD的特点&#xff08;优点&#xff09; 首先WGCLOUD是完全免费的 部署使用&#xff1a;部署简单方便&#xff0c;上手容易&#xff0c;几乎没有学习成本&#xff0c;对新手友好 文档…

OSG项目:模仿Ventsim制作三维矿井智能通风系统

1、效果 2、计划内容 1) 三维场景的加载显示;已实现 2)矿井巷道建模及纹理;已实现 3)矿井基础数据采集及修正;已实现 4)通风网络解算算法;已实现 5)通风设备及设施模型制作;未实现 6)风流模拟效果 ;已实现 7)火灾模拟效果;未实现

python读取txt格式的点云文件,可视化显示,保存ply格式

在计算机视觉和三维几何处理中&#xff0c;点云是一种重要的数据表示形式。点云由许多离散的点组成&#xff0c;每个点都有三维坐标&#xff0c;通常还包括其他信息。 空格形式的点云文件 import open3d as o3ddef read_txt_space(txt_file):# 读取点云数据pcd o3d.io.read_p…

应用disruptor队列-ringBuffer环形缓冲器

一disruptor介绍 Disruptor是一个高性能的消息框架&#xff0c;其核心是基于环形缓冲区实现的。Disruptor的设计目标是尽可能地减少线程之间的竞争和同步&#xff0c;从而提高系统的吞吐量和响应速度。下面让我来介绍一下在使用Disruptor中如何优雅地使用环形队列。 首先&…

react Antd3以下实现年份选择器 YearPicker

项目antd版本低&#xff0c;没有直接可使用的年份选择器&#xff0c;参考此篇&#xff08;使用antd实现年份选择器控件 - 掘金&#xff09; 一开始在state里设置了time&#xff1a; this.state {isopen: false,time: null } 在类似onChange事件里this.setState({time: valu…

如何进行iOS技术博客的备案?

如何进行iOS技术博客的备案&#xff1f; 标题&#xff1a;iOS技术博客备案流程及要求解析 摘要&#xff1a; 在本篇问答中&#xff0c;我们将为iOS技术博主介绍如何进行备案。如果你的iOS应用只包含简单的页面&#xff0c;并通过蓝牙进行数据采集和传输&#xff0c;那么你可能…

苹果手机照片如何导入电脑?无损快速的传输办法分享!

前些天小编的朋友联系到我&#xff0c;说是自己苹果手机里面的照片太多&#xff0c;有好几千张&#xff0c;不知道该怎么快而无损地传到电脑。我想遇到这种情况的不止是小编的朋友&#xff0c;生活中遇到手机照片导入电脑的同学不在少数。不管是苹果手机还是安卓手机&#xff0…

ef core code first pgsql

在使用efcode来操作pgsql的时候&#xff0c;总有些基础配置流程项目建立完之后后面就很少用&#xff0c;总是忘掉&#xff0c;写个文档记忆一下吧。基于net 6.0。 1.创建一个mvc项目和一个EF类库 2.在类库里面安装依赖dll Microsoft.EntityFrameworkCore.Design 需要添加的…

ARM64 linux并发与同步之经典自旋锁

1.3 经典自旋锁 在实际项目中临界区数据有可能会修改一个数据结构或者链表中的数据&#xff0c;在整个过程中要保证原子性&#xff0c;才不会影响数据的有效性&#xff0c;这个过程使用原子变量不合适&#xff0c;需要使用锁机制来完成&#xff0c;自旋锁&#xff08;spinlock&…

【Mycat2实战】一、Mycat简介

1. 什么是Mycat 什么是Mycat Mycat是数据库中间件&#xff0c;所谓中间件数据库中间件是连接Java应用程序和数据库中间的软件。 为什么要用Mycat 遇到问题&#xff1a; Java与数据库的紧耦合高访问量高并发对数据库的压力读写请求数据不一致 2. Mycat与其他中间件区别 目前的…

IC行业秋招真实情况记录,快来看看吧~

2023年&#xff0c;IC行业人才竞争尤为激烈。为了更好的获取到面试的经验&#xff0c;不妨先来了解一下IC面试常见的问题&#xff0c;以及面试该准备的相关事项吧~ &#xff08;文末可领全部面试题目&#xff09; 什么是同步逻辑和异步逻辑&#xff1f; 同步逻辑是时钟之间…

固定式液压破碎工作臂系统柱塞液压泵站系统比例阀控制器

固定式液压破碎工作臂系统柱塞液压泵站系统比例阀控制器主要用于&#xff1a;矿山、矿井、采石场&#xff0c;砂石骨料场、冶金冶炼厂、铸造厂、水泥厂、钢包炉渣厂、电厂、港口和码头、辅助翻车机翻卸铁路敞车散料、建材、公路、铁路、水利和化学工业等众多液压控制部门。通过…

有私域和无私域有什么区别?

公域流量和私域流量的区别主要体现在以下几个方面&#xff1a; 1. 渠道区别&#xff1a;私域流量是个体独有的流量池&#xff0c;而公域流量的流量池是公共的。换句话说&#xff0c;私域流量是通过个人平台直接获取用户的渠道&#xff0c;而公域流量是依靠一个公共平台的流量来…

ctfshow sql入门174 175脚本

因为觉得脚本写的太烂了&#xff0c;二分法也迷迷糊糊的 主要是python怎么学的那么烂&#xff01;&#xff01; 再研究一下 174 布尔盲注 这是不使用二分法的 import requestsurl http://e9a1012f-6cb2-451d-9084-0d011dfcff89.challenge.ctf.show/api/v4.php flag for …