MCPcopy Create free account
hub / github.com/OpenWebCAD/node-occ / polygonize

Method polygonize

src/Edge.cc:406–432  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

404}
405
406v8::Local<v8::Object> Edge::polygonize(double factor)
407{
408
409 const TopoDS_Edge& edge = TopoDS::Edge(this->shape());
410
411 if (factor == 0.0) {
412 extractEdgePolygon(edge, m_positions);
413 int length = (int)m_positions.size();
414 return makeFloat32Array(m_positions.data(), length);
415 }
416
417 BRepAdaptor_Curve curve_adaptor(edge);
418 GCPnts_UniformDeflection discretizer;
419 discretizer.Initialize(curve_adaptor, 0.05);
420
421 m_positions.clear();
422 m_positions.reserve(discretizer.NbPoints() * 3);
423 for (int i = 0; i < discretizer.NbPoints(); i++) {
424 gp_Pnt pt = curve_adaptor.Value(discretizer.Parameter(i + 1));
425 m_positions.push_back(static_cast<float>(pt.X()));
426 m_positions.push_back(static_cast<float>(pt.Y()));
427 m_positions.push_back(static_cast<float>(pt.Z()));
428 }
429 int length = (int)m_positions.size();
430 return makeFloat32Array(m_positions.data(), length);
431
432}
433
434NAN_METHOD(Edge::getVertices)
435{

Callers 4

makeEdgesIndexesFunction · 0.80
shape.jsFile · 0.80
test_edge.jsFile · 0.80
NAN_METHODFunction · 0.80

Calls 3

extractEdgePolygonFunction · 0.85
makeFloat32ArrayFunction · 0.85
EdgeClass · 0.70

Tested by

no test coverage detected