Hello,
Im making a road pathfinding tool, and i need to group all edges with a low slope.
1. Keep by normal doesn't do the job, it act like a “mask by slope”, it should have flat edge on the mountain selected
2. Include by edge doesn't work either, i have to select "use angle between edge to have some result, which don't really work
How to select edge by only horizontal angle
3008 1 0-
- samuelbrunner
- Member
- 38 posts
- Joined: June 2019
- Offline
-
- vandoornjerry
- Member
- 21 posts
- Joined: Sept. 2018
- Offline
int getNeighs[] = neighbours(0, @ptnum); float angle = chf('Angle'); for ( int i = 0; i<len(getNeighs); i++ ) { vector pone = point(0, "P", getNeighs[i]); vector N = normalize(pone-@P); vector up = {0,1,0}; float getDot = abs(dot(N, up)); if ( getDot < angle) { setedgegroup(0, "vertical_edges", @ptnum, getNeighs[i], 1); } }
Dump that in a point wrangle and create the slider for angle. Compares angle of edge between every set of points to straight up (y=1) via dot product, groups edge if below slider's threshold.
If there's a better solution I would love to hear it.
-
- Quick Links

