wrap inertia of occ-shape to Python

This commit is contained in:
Joachim Schoeberl 2024-03-07 12:39:56 +01:00
parent 486c7d9bcb
commit 43b707bcfb
3 changed files with 11 additions and 1 deletions

View File

@ -317,6 +317,6 @@ namespace netgen
{ {
return Properties(shape).Mass(); return Properties(shape).Mass();
} }
} }
#endif // FILE_OCC_UTILS_INCLUDED #endif // FILE_OCC_UTILS_INCLUDED

View File

@ -132,6 +132,12 @@ DLL_HEADER void ExportNgOCCBasic(py::module &m)
return str.str(); return str.str();
}) })
; ;
py::class_<gp_Mat>(m, "gp_Mat", "3d OCC matrix")
.def("__getitem__", [](const gp_Mat& mat, tuple<int,int> index)
{ return mat.Row(get<0>(index)+1).Coord(get<1>(index)+1); })
;
py::class_<gp_Ax1>(m, "Axis", "an OCC axis in 3d") py::class_<gp_Ax1>(m, "Axis", "an OCC axis in 3d")
.def(py::init([](gp_Pnt p, gp_Dir d) { .def(py::init([](gp_Pnt p, gp_Dir d) {

View File

@ -740,6 +740,10 @@ DLL_HEADER void ExportNgOCCShapes(py::module &m)
return Mass(shape); return Mass(shape);
}, "returns mass of shape, what is length, face, or volume") }, "returns mass of shape, what is length, face, or volume")
.def_property_readonly("inertia", [](const TopoDS_Shape & shape) {
return Properties(shape).MatrixOfInertia();
}, "returns matrix of inertia of shape")
.def("Move", [](const TopoDS_Shape & shape, const gp_Vec v) .def("Move", [](const TopoDS_Shape & shape, const gp_Vec v)
{ {
// which one to choose ? // which one to choose ?