MCPcopy Create free account
hub / github.com/BIMCoderLiang/LNLib / cstrNurbsSurface

Function cstrNurbsSurface

python/src/Construct/NurbsSurface.cpp:16–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14
15namespace py = pybind11;
16void cstrNurbsSurface(py::module_&m)
17{
18 py::class_<LNLib::NurbsSurface>(m, "NurbsSurface")
19 .def_static("Check", &LNLib::NurbsSurface::Check)
20 .def_static("GetIsoCurve", &LNLib::NurbsSurface::GetIsoCurve)
21 .def_static("GetPointOnSurface", &LNLib::NurbsSurface::GetPointOnSurface)
22 .def_static("ComputeRationalSurfaceDerivatives", &LNLib::NurbsSurface::ComputeRationalSurfaceDerivatives)
23 .def_static("ComputeRationalSurfaceFirstOrderDerivative", [](const LNLib::LN_NurbsSurface& surface, LNLib::UV uv) {
24 LNLib::XYZ S, Su, Sv;
25 LNLib::NurbsSurface::ComputeRationalSurfaceFirstOrderDerivative(surface, uv, S, Su, Sv);
26 return py::make_tuple(S, Su, Sv);
27 })
28 .def_static("Curvature", &LNLib::NurbsSurface::Curvature)
29 .def_static("GetBoundingBox", &LNLib::NurbsSurface::GetBoundingBox)
30 .def_static("GetOrientedBoundingBox", &LNLib::NurbsSurface::GetOrientedBoundingBox)
31 .def_static("Normal", &LNLib::NurbsSurface::Normal)
32 .def_static("Swap", [](const LNLib::LN_NurbsSurface& surface) {
33 LNLib::LN_NurbsSurface result;
34 LNLib::NurbsSurface::Swap(surface, result);
35 return result;
36 })
37 .def_static("Reverse", [](const LNLib::LN_NurbsSurface& surface, LNLib::SurfaceDirection direction) {
38 LNLib::LN_NurbsSurface result;
39 LNLib::NurbsSurface::Reverse(surface, direction, result);
40 return result;
41 })
42 .def_static("InsertKnot", [](const LNLib::LN_NurbsSurface& surface, double insertKnot, int times, bool isUDirection) {
43 LNLib::LN_NurbsSurface result;
44 LNLib::NurbsSurface::InsertKnot(surface, insertKnot, times, isUDirection, result);
45 return result;
46 })
47 .def_static("RefineKnotVector", [](const LNLib::LN_NurbsSurface& surface, const std::vector<double>& insertKnotElements, bool isUDirection) {
48 LNLib::LN_NurbsSurface result;
49 LNLib::NurbsSurface::RefineKnotVector(surface, insertKnotElements, isUDirection, result);
50 return result;
51 })
52 .def_static("DecomposeToBeziers", &LNLib::NurbsSurface::DecomposeToBeziers)
53 .def_static("RemoveKnot", [](const LNLib::LN_NurbsSurface& surface, double removeKnot, int times, bool isUDirection) {
54 LNLib::LN_NurbsSurface result;
55 LNLib::NurbsSurface::RemoveKnot(surface, removeKnot, times, isUDirection, result);
56 return result;
57 })
58 .def_static("ElevateDegree", [](const LNLib::LN_NurbsSurface& surface, int times, bool isUDirection) {
59 LNLib::LN_NurbsSurface result;
60 LNLib::NurbsSurface::ElevateDegree(surface, times, isUDirection, result);
61 return result;
62 })
63 .def_static("ReduceDegree", [](const LNLib::LN_NurbsSurface& surface, bool isUDirection) {
64 LNLib::LN_NurbsSurface result;
65 bool ret = LNLib::NurbsSurface::ReduceDegree(surface, isUDirection, result);
66 return py::make_tuple(ret, result);
67 })
68 .def_static("EquallyTessellate", [](const LNLib::LN_NurbsSurface& surface) {
69 std::vector<LNLib::XYZ> tessellatedPoints;
70 std::vector<LNLib::UV> correspondingKnots;
71 LNLib::NurbsSurface::EquallyTessellate(surface, tessellatedPoints, correspondingKnots);
72 return py::make_tuple(tessellatedPoints, correspondingKnots);
73 })

Callers 1

constructFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected