Part: add functions to return the number of nodes and triangles of a tessellation
This commit is contained in:
@@ -347,6 +347,11 @@ Part.show(s)
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="countNodes" Const="true">
|
||||
<Documentation>
|
||||
<UserDocu>Returns the number of nodes of the 3D polygon of the edge.</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="split" Const="true">
|
||||
<Documentation>
|
||||
<UserDocu>Splits the edge at the given parameter values and builds a wire out of it
|
||||
|
||||
@@ -630,6 +630,23 @@ PyObject* TopoShapeEdgePy::discretize(PyObject *args, PyObject *kwds)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
PyObject* TopoShapeEdgePy::countNodes(PyObject *args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, ""))
|
||||
return nullptr;
|
||||
|
||||
const TopoDS_Shape& shape = this->getTopoShapePtr()->getShape();
|
||||
TopoDS_Edge aEdge = TopoDS::Edge(shape);
|
||||
TopLoc_Location aLoc;
|
||||
const Handle(Poly_Polygon3D)& aPoly = BRep_Tool::Polygon3D(aEdge, aLoc);
|
||||
int count = 0;
|
||||
if (!aPoly.IsNull()) {
|
||||
count = aPoly->NbNodes();
|
||||
}
|
||||
|
||||
return Py::new_reference_to(Py::Long(count));
|
||||
}
|
||||
|
||||
PyObject* TopoShapeEdgePy::split(PyObject *args)
|
||||
{
|
||||
PyObject* float_or_list;
|
||||
|
||||
@@ -107,6 +107,16 @@ validate()
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="countNodes" Const="true">
|
||||
<Documentation>
|
||||
<UserDocu>Returns the number of nodes of the triangulation.</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="countTriangles" Const="true">
|
||||
<Documentation>
|
||||
<UserDocu>Returns the number of triangles of the triangulation.</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="curveOnSurface" Const="true">
|
||||
<Documentation>
|
||||
<UserDocu>Returns the curve associated to the edge in the parametric space of the face.
|
||||
|
||||
@@ -757,6 +757,40 @@ PyObject* TopoShapeFacePy::validate(PyObject *args)
|
||||
}
|
||||
}
|
||||
|
||||
PyObject* TopoShapeFacePy::countNodes(PyObject *args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, ""))
|
||||
return nullptr;
|
||||
|
||||
const TopoDS_Shape& shape = this->getTopoShapePtr()->getShape();
|
||||
TopoDS_Face aFace = TopoDS::Face(shape);
|
||||
TopLoc_Location aLoc;
|
||||
const Handle(Poly_Triangulation)& aTriangulation = BRep_Tool::Triangulation(aFace, aLoc);
|
||||
int count = 0;
|
||||
if (!aTriangulation.IsNull()) {
|
||||
count = aTriangulation->NbNodes();
|
||||
}
|
||||
|
||||
return Py::new_reference_to(Py::Long(count));
|
||||
}
|
||||
|
||||
PyObject* TopoShapeFacePy::countTriangles(PyObject *args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, ""))
|
||||
return nullptr;
|
||||
|
||||
const TopoDS_Shape& shape = this->getTopoShapePtr()->getShape();
|
||||
TopoDS_Face aFace = TopoDS::Face(shape);
|
||||
TopLoc_Location aLoc;
|
||||
const Handle(Poly_Triangulation)& aTriangulation = BRep_Tool::Triangulation(aFace, aLoc);
|
||||
int count = 0;
|
||||
if (!aTriangulation.IsNull()) {
|
||||
count = aTriangulation->NbTriangles();
|
||||
}
|
||||
|
||||
return Py::new_reference_to(Py::Long(count));
|
||||
}
|
||||
|
||||
PyObject* TopoShapeFacePy::curveOnSurface(PyObject *args)
|
||||
{
|
||||
PyObject* e;
|
||||
|
||||
Reference in New Issue
Block a user