VEX —— Half-edges

news2024/11/26 11:29:09

目录

一,概述

二,等效

三,函数


在一些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);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion新手村-我们一起完成AI绘画

1.工具搭建 感谢bilibili的"秋葉aaaki"大佬出的整合包&#xff0c;让我们方便下载安装一键启动&#xff0c;去它的网盘里下载 我的显卡设备&#xff0c;暂时还够哈&#xff0c;出图速度还可以1-2分钟比较美的质感画面 下载以后需要解压下sd-webui-aki-v4.4.7z&#…

解决室内种植最大弊端的是方法—植物生长灯

对于“城市农夫”来说&#xff0c;植物在自己的精心照料下开花结果是最好的“心灵鸡汤”。而对于室内种植&#xff0c;其实存在着很大的弊端。 由于室内无法提供足够自然阳光&#xff0c;在一些气候条件不佳或长冬季的地方&#xff0c;自然光照不足会严重限制植物的生长&#…

【华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS】

MD[华为云IaaS基础三件套----计算、网络、存储] 华为云IaaS基础三件套之----计算ECS、网络EIP、存储EVS 说明: 这里只是简单从计算/网络/存储&#xff0c;进行介绍&#xff0c;阐明云上对于云下的优势&#xff1b;因ECS是三者综合&#xff0c;故最后说明。 1.网络----弹性公…

项目经理为什么要考PMP?PMP考试条件有哪些?

考得PMP&#xff0c;项目经理可以有以下收获&#xff1a; 1、面试条件上&#xff1a;有PMP证书优先&#xff1b; 2、覆盖行业和职位范围广&#xff0c;医疗&#xff0c;互联网&#xff0c;机械&#xff0c;建筑金融&#xff0c;汽车&#xff0c;零售等各行各业&#xff0c;基…

C 语言数组

C 语言数组 在本教程中&#xff0c;您将学习如何使用数组。您将借助示例学习如何声明&#xff0c;初始化和访问数组的元素。 数组是可以存储多个值的变量。例如&#xff0c;如果要存储100个整数&#xff0c;则可以为其创建一个数组。 示例 cint data[100];如何声明数组&…

【Kotlin精简】第8章 协程

1 简介 Kotlin 中的协程提供了一种全新处理并发的方式&#xff0c;您可以在 Android 平台上使用它来简化异步执行的代码。协程是从 Kotlin 1.3 版本开始引入&#xff0c;但这一概念在编程世界诞生的黎明之际就有了&#xff0c;最早使用协程的编程语言可以追溯到 1967 年的 Sim…

软考系统分析师知识点集锦二:系统规划

一、系统规划的步骤 (1)初步调查:根据企业战略目标&#xff0c;分析企业现状以及系统运行状况。(2)确定系统目标:确定系统的服务范围质量等。(3)分析子系统的组成:做系统划分并指定子系统功能。(4)拟定系统的实施方案:分析子系统优先级,确定开发顺序。(5)进行可行性研究:编写可…

【STM32单片机】比赛计时计分系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器&#xff0c;使用OLED显示模块、矩阵按键模块、蜂鸣器等。 主要功能&#xff1a; 系统运行后&#xff0c;OLED默认显示第1节次比赛时间、AB得分。默认是12分钟倒计时…

轻量级数据中台,大中型企业数字化转型首选

随着互联网的高速发展和信息化的普及&#xff0c;企业面对快速增长的数据量和数据种类&#xff0c;要如何高效地管理、整合和分析这些海量数据成为了一大难题。而轻量级数据中台则是面对这种情况而言很好的一种解决方案。 我们可以从以下几个方面来认识数据中台&#xff1a; …

idea自动生成UML图

设置 选择我们UML图需要的部分&#xff01; 选择显示的部分

壹基金爱泽瑞金 安全家园物料配送忙

11月9日到10日&#xff0c;瑞金赋能公益陆续收到壹基金、阿里巴巴公益爱心网友捐赠的社区志愿者救援队队伍物资&#xff0c;马不停蹄地把物资配送到河背街社区、金都社区和沙洲坝镇等项目点&#xff0c;扎实稳妥推进项目有序执行。 在这次物资配送中&#xff0c;志愿者冒雨前行…

上海国际集团党委副书记、总裁刘信义一行莅临ZStack调研指导

11月10日&#xff0c;上海国际集团有限公司党委副书记、总裁刘信义率上海国际集团、上海国资经营及国鑫创投领导莅临上海云轴信息科技有限公司&#xff08;简称“云轴科技ZStack”&#xff09;调研指导&#xff0c;云轴科技ZStack创始人、董事长张鑫&#xff0c;携公司管理团队…

最新宝塔反代openai官方API开发接口详细搭建教程,解决502 Bad Gateway问题

一、前言 宝塔反代openai官方API接口详细教程&#xff0c;实现国内使用ChatGPT502 Bad Gateway问题解决&#xff0c; 此方法最简单快捷&#xff0c;没有复杂步骤&#xff0c;不容易出错&#xff0c;即最简单&#xff0c;零代码、零部署的方法。 二、实现前提 一台海外服务器…

深度学习之基于YoloV5的目标检测和双目测距系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 双目测距系统利用两个相机的图像来计算目标到相机的距离。通过对左右相机图像进行立体匹配&#xff0c;可以获得目标…

MDM9205开发环境搭建与编译调试

前言 如题,这篇文章说的是高通mdm9205这颗物联网芯片,从官方资源的获取(包括文档、代码、软件工具等等)到如何编译出可运行固件的方法。 对经历了不止一次这颗芯片开发的我来说,在过程中遇到问题,除了寄希望于可能在工作日第二天凌晨得到的case回复,有一篇最新的有指导方…

山东省技能兴鲁网络安全大赛 web方向

文章目录 购买FLAG日志里的FLAG一只小蜜蜂 购买FLAG 随便登录admin进去&#xff0c;发现有充值和购买功能 但是试试充值发现不行 购买页面如下 bp抓包看看&#xff0c;发现value值可控 我们试试将其改为正数&#xff0c;发现成功 购买得到flag 日志里的FLAG <?phphi…

Docker技术教程

利用Docker快速安装MySQL 运行结果如下&#xff1a;

静态黑洞路由是什么作用,如何配置?

环境&#xff1a; 华三交换机 问题描述&#xff1a; 静态黑洞路由是什么作用&#xff0c;如何配置&#xff1f; 解决方案&#xff1a; 静态黑洞路由&#xff08;Static Blackhole Route&#xff09;是一种网络路由配置技术&#xff0c;用于将特定目的地的流量引导到一个黑洞…

2023/11/14JAVA学习

主子线程每次执行顺序可能都不一样

鸿蒙系统扫盲(一):鸿蒙OS和开源鸿蒙什么关系?

我们经常提到鸿蒙&#xff0c;但是大家都分不清鸿蒙OS&#xff08;Harmony OS&#xff09;和 开源鸿蒙&#xff08;Open Harmony&#xff09;的区别&#xff1f; 1.开源鸿蒙&#xff08;Open Harmony&#xff09; 鸿蒙系统愿来的设计初衷&#xff0c;就是让所有设备都可以运行…