Connecting points by corresponding IDs

calendar_today

11.09.2022

label

Modeling

mouse

Houdini 18.5

1 Introduction

Three ways to connect points by common IDs. Use the enumerate SOP to give each point an individual ID before creating duplicates.

2 SOPs

Add SOP: Polygons > By group > By attribute: id

3 H-Script + VEX

Grid set to rows:

// HScript expressions for grid resolution
nuniquevals('../copy1', D_POINT, 'id')
nuniquevals('../copy1', D_PRIMITIVE, 'copynum')
// point wrangle for connecting
int index = vertexprimindex(0, i@vtxnum);
int pt_crv = findattribval(1, 'point', 'id', i@primnum, index);
v@P = point(1, 'P', pt_crv);

4 VEX

// detail wrangle
int num = nuniqueval(0, 'point', 'id');
for(int i = 0; i < num; i++){
    int pts[] = {};
    int count = findattribvalcount(0, 'point', 'id', i);
    for(int k = 0; k < count; k++){
        int pt = findattribval(0, 'point', 'id', i, k);
        append(pts, pt);
    }
    int prim_crv = addprim(0, 'polyline', pts);
    setprimgroup(0, 'connect', prim_crv, 1, 'set');
}

nuniqueval() returns how many IDs exist in total.
findattribvalcount() returns the number of points that share the same ID.
findattribval() returns the point number of each member with the same ID.

download

downloads

comments

comments

Leave a comment

Available formatting commands

Use Markdown commands or their HTML equivalents to add simple formatting to your comment:

Text markup
*italic*, **bold**, ~~strikethrough~~, `code` and <mark>marked text</mark>.
Lists
- Unordered item 1
- Unordered list item 2
1. Ordered list item 1
2. Ordered list item 2
Quotations
> Quoted text
Code blocks
```
// A simple code block
```
```php
// Some PHP code
phpinfo();
```
Links
[Link text](https://example.com)
Full URLs are automatically converted into links.