Usually when i iterate the vertices to apply a tweak i do something like geometry.vertices.forEach(v => {});
However i’d like to just iterate the segments of the geometry, like so:
for segment in geometry:
for vertex in segment:
does this seem possible at all?
The main reason i want to do this is to get the center point at a segment of given height in a geometry.
Thanks for any tips
Hi!
Do you mean to iterate through faces?
1 Like
Hey! I’m not sure it would be faces, i am trying to get entire slices of the cylinder, trying to convert this openGL code into three.js https://pastebin.com/uK0VUmqX into https://codepen.io/funianrun/pen/OrYYwV
In their C++ code they iterate up the ‘slices’ of the cylinder, they declare their geometry like this:
const int ca= 20; // points per slice
const int cb=100; // slices
const float r0= 0.3; // minor screw radius
const float r1= 0.35; // major screw radius
const float l1= 4.0; // tube length
const float nz= 10.0; // screws
// straight mesh
vec3 pnt0[ca][cb]; // vertex
vec3 nor0[ca][cb]; // normal
vec2 txr0[ca][cb]; // texcoord
vec3 mid0[cb]; // slice center
vec3 dir0[cb]; // slice central axis (normalized)
float len0[cb]; // slice arclength position
so i’m trying to get that slice center, slice central axis, slice arclength position with the three.js geometry
A data structure like this does not exist. You should also notice that your are using with Geometry
a legacy geometry format. It’s much future-proof to use BufferGeometry
instead.