@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
48 lines (47 loc) • 1.21 kB
JavaScript
;
export function traverseFaces(oc, shape, callback) {
let index = 0;
const explorer = new oc.TopExp_Explorer_2(
shape,
oc.TopAbs_ShapeEnum.TopAbs_FACE,
oc.TopAbs_ShapeEnum.TopAbs_SHAPE
);
while (explorer.More()) {
const explorerCurrent = explorer.Current();
const face = oc.TopoDS.Face_1(explorerCurrent);
callback(face, index);
index += 1;
explorer.Next();
}
explorer.delete();
}
export function traverseEdges(oc, shape, callback) {
let index = 0;
const explorer = new oc.TopExp_Explorer_2(
shape,
oc.TopAbs_ShapeEnum.TopAbs_EDGE,
oc.TopAbs_ShapeEnum.TopAbs_SHAPE
);
while (explorer.More()) {
const edge = oc.TopoDS.Edge_1(explorer.Current());
callback(edge, index);
index += 1;
explorer.Next();
}
explorer.delete();
}
export function traverseVertices(oc, shape, callback) {
let index = 0;
const explorer = new oc.TopExp_Explorer_2(
shape,
oc.TopAbs_ShapeEnum.TopAbs_VERTEX,
oc.TopAbs_ShapeEnum.TopAbs_SHAPE
);
while (explorer.More()) {
const vertex = oc.TopoDS.Vertex_1(explorer.Current());
callback(vertex, index);
index += 1;
explorer.Next();
}
explorer.delete();
}