--- /srv/reproducible-results/rbuild-debian/r-b-build.vFjRiwjl/b1/python-opencascade-pywrap_0.0~git20250714210719.b608b60-3_arm64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.vFjRiwjl/b2/python-opencascade-pywrap_0.0~git20250714210719.b608b60-3_arm64.changes ├── Files │ @@ -1,2 +1,2 @@ │ │ - f262608d1c302ad81470bb25feef83ee 1908392 python optional python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb │ + 7eb4016ed510bd1db6f21d1551d059d5 1908488 python optional python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb ├── python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-08-02 01:34:12.000000 debian-binary │ │ --rw-r--r-- 0 0 0 21260 2025-08-02 01:34:12.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 1886940 2025-08-02 01:34:12.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 21292 2025-08-02 01:34:12.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 1887004 2025-08-02 01:34:12.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── ./usr/share/libocp/OCP/AIS_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -193,54 +193,118 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ py::class_(m,"AIS_Manipulator_OptionsForAttach"); │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "AIS_SelectStatus",R"#()#") │ │ │ │ - .value("AIS_SS_Added",AIS_SelectStatus::AIS_SS_Added) │ │ │ │ - .value("AIS_SS_Removed",AIS_SelectStatus::AIS_SS_Removed) │ │ │ │ - .value("AIS_SS_NotDone",AIS_SelectStatus::AIS_SS_NotDone).export_values(); │ │ │ │ py::enum_(m, "AIS_RotationMode",R"#(Camera rotation mode.)#") │ │ │ │ .value("AIS_RotationMode_BndBoxActive",AIS_RotationMode::AIS_RotationMode_BndBoxActive) │ │ │ │ .value("AIS_RotationMode_PickLast",AIS_RotationMode::AIS_RotationMode_PickLast) │ │ │ │ .value("AIS_RotationMode_PickCenter",AIS_RotationMode::AIS_RotationMode_PickCenter) │ │ │ │ .value("AIS_RotationMode_CameraAt",AIS_RotationMode::AIS_RotationMode_CameraAt) │ │ │ │ .value("AIS_RotationMode_BndBoxScene",AIS_RotationMode::AIS_RotationMode_BndBoxScene).export_values(); │ │ │ │ m.attr("AIS_RotationMode_LOWER") = py::cast(int(AIS_RotationMode_LOWER)); │ │ │ │ m.attr("AIS_RotationMode_UPPER") = py::cast(int(AIS_RotationMode_UPPER)); │ │ │ │ + py::enum_(m, "AIS_StatusOfPick",R"#()#") │ │ │ │ + .value("AIS_SOP_Error",AIS_StatusOfPick::AIS_SOP_Error) │ │ │ │ + .value("AIS_SOP_NothingSelected",AIS_StatusOfPick::AIS_SOP_NothingSelected) │ │ │ │ + .value("AIS_SOP_Removed",AIS_StatusOfPick::AIS_SOP_Removed) │ │ │ │ + .value("AIS_SOP_OneSelected",AIS_StatusOfPick::AIS_SOP_OneSelected) │ │ │ │ + .value("AIS_SOP_SeveralSelected",AIS_StatusOfPick::AIS_SOP_SeveralSelected).export_values(); │ │ │ │ + py::enum_(m, "AIS_MouseGesture",R"#(Mouse gesture - only one can be active at one moment.)#") │ │ │ │ + .value("AIS_MouseGesture_NONE",AIS_MouseGesture::AIS_MouseGesture_NONE) │ │ │ │ + .value("AIS_MouseGesture_SelectRectangle",AIS_MouseGesture::AIS_MouseGesture_SelectRectangle) │ │ │ │ + .value("AIS_MouseGesture_SelectLasso",AIS_MouseGesture::AIS_MouseGesture_SelectLasso) │ │ │ │ + .value("AIS_MouseGesture_Zoom",AIS_MouseGesture::AIS_MouseGesture_Zoom) │ │ │ │ + .value("AIS_MouseGesture_ZoomWindow",AIS_MouseGesture::AIS_MouseGesture_ZoomWindow) │ │ │ │ + .value("AIS_MouseGesture_Pan",AIS_MouseGesture::AIS_MouseGesture_Pan) │ │ │ │ + .value("AIS_MouseGesture_RotateOrbit",AIS_MouseGesture::AIS_MouseGesture_RotateOrbit) │ │ │ │ + .value("AIS_MouseGesture_RotateView",AIS_MouseGesture::AIS_MouseGesture_RotateView) │ │ │ │ + .value("AIS_MouseGesture_Drag",AIS_MouseGesture::AIS_MouseGesture_Drag).export_values(); │ │ │ │ + py::enum_(m, "AIS_SelectionModesConcurrency",R"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#") │ │ │ │ + .value("AIS_SelectionModesConcurrency_Single",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single) │ │ │ │ + .value("AIS_SelectionModesConcurrency_GlobalOrLocal",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal) │ │ │ │ + .value("AIS_SelectionModesConcurrency_Multiple",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values(); │ │ │ │ + py::enum_(m, "AIS_TypeOfIso",R"#(Declares the type of isoparameter displayed.)#") │ │ │ │ + .value("AIS_TOI_IsoU",AIS_TypeOfIso::AIS_TOI_IsoU) │ │ │ │ + .value("AIS_TOI_IsoV",AIS_TypeOfIso::AIS_TOI_IsoV) │ │ │ │ + .value("AIS_TOI_Both",AIS_TypeOfIso::AIS_TOI_Both).export_values(); │ │ │ │ py::enum_(m, "AIS_ViewSelectionTool",R"#(Selection mode)#") │ │ │ │ .value("AIS_ViewSelectionTool_Picking",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Picking) │ │ │ │ .value("AIS_ViewSelectionTool_RubberBand",AIS_ViewSelectionTool::AIS_ViewSelectionTool_RubberBand) │ │ │ │ .value("AIS_ViewSelectionTool_Polygon",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Polygon) │ │ │ │ .value("AIS_ViewSelectionTool_ZoomWindow",AIS_ViewSelectionTool::AIS_ViewSelectionTool_ZoomWindow).export_values(); │ │ │ │ py::enum_(m, "AIS_ViewInputBufferType",R"#(Input buffer type.)#") │ │ │ │ .value("AIS_ViewInputBufferType_UI",AIS_ViewInputBufferType::AIS_ViewInputBufferType_UI) │ │ │ │ .value("AIS_ViewInputBufferType_GL",AIS_ViewInputBufferType::AIS_ViewInputBufferType_GL).export_values(); │ │ │ │ - py::enum_(m, "AIS_StatusOfPick",R"#()#") │ │ │ │ - .value("AIS_SOP_Error",AIS_StatusOfPick::AIS_SOP_Error) │ │ │ │ - .value("AIS_SOP_NothingSelected",AIS_StatusOfPick::AIS_SOP_NothingSelected) │ │ │ │ - .value("AIS_SOP_Removed",AIS_StatusOfPick::AIS_SOP_Removed) │ │ │ │ - .value("AIS_SOP_OneSelected",AIS_StatusOfPick::AIS_SOP_OneSelected) │ │ │ │ - .value("AIS_SOP_SeveralSelected",AIS_StatusOfPick::AIS_SOP_SeveralSelected).export_values(); │ │ │ │ + py::enum_(m, "AIS_WalkTranslation",R"#(Walking translation components.)#") │ │ │ │ + .value("AIS_WalkTranslation_Forward",AIS_WalkTranslation::AIS_WalkTranslation_Forward) │ │ │ │ + .value("AIS_WalkTranslation_Side",AIS_WalkTranslation::AIS_WalkTranslation_Side) │ │ │ │ + .value("AIS_WalkTranslation_Up",AIS_WalkTranslation::AIS_WalkTranslation_Up).export_values(); │ │ │ │ + py::enum_(m, "AIS_WalkRotation",R"#(Walking rotation components.)#") │ │ │ │ + .value("AIS_WalkRotation_Yaw",AIS_WalkRotation::AIS_WalkRotation_Yaw) │ │ │ │ + .value("AIS_WalkRotation_Pitch",AIS_WalkRotation::AIS_WalkRotation_Pitch) │ │ │ │ + .value("AIS_WalkRotation_Roll",AIS_WalkRotation::AIS_WalkRotation_Roll).export_values(); │ │ │ │ + py::enum_(m, "AIS_DragAction",R"#(Dragging action.)#") │ │ │ │ + .value("AIS_DragAction_Start",AIS_DragAction::AIS_DragAction_Start) │ │ │ │ + .value("AIS_DragAction_Confirmed",AIS_DragAction::AIS_DragAction_Confirmed) │ │ │ │ + .value("AIS_DragAction_Update",AIS_DragAction::AIS_DragAction_Update) │ │ │ │ + .value("AIS_DragAction_Stop",AIS_DragAction::AIS_DragAction_Stop) │ │ │ │ + .value("AIS_DragAction_Abort",AIS_DragAction::AIS_DragAction_Abort).export_values(); │ │ │ │ + py::enum_(m, "AIS_TrihedronSelectionMode",R"#(Enumeration defining selection modes supported by AIS_Trihedron.)#") │ │ │ │ + .value("AIS_TrihedronSelectionMode_EntireObject",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject) │ │ │ │ + .value("AIS_TrihedronSelectionMode_Origin",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin) │ │ │ │ + .value("AIS_TrihedronSelectionMode_Axes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes) │ │ │ │ + .value("AIS_TrihedronSelectionMode_MainPlanes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values(); │ │ │ │ + py::enum_(m, "AIS_TypeOfAxis",R"#(Declares the type of axis.)#") │ │ │ │ + .value("AIS_TOAX_Unknown",AIS_TypeOfAxis::AIS_TOAX_Unknown) │ │ │ │ + .value("AIS_TOAX_XAxis",AIS_TypeOfAxis::AIS_TOAX_XAxis) │ │ │ │ + .value("AIS_TOAX_YAxis",AIS_TypeOfAxis::AIS_TOAX_YAxis) │ │ │ │ + .value("AIS_TOAX_ZAxis",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values(); │ │ │ │ + py::enum_(m, "AIS_KindOfInteractive",R"#(Declares the type of Interactive Object. This type can be used for fast pre-filtering of objects of specific group.)#") │ │ │ │ + .value("AIS_KindOfInteractive_None",AIS_KindOfInteractive::AIS_KindOfInteractive_None) │ │ │ │ + .value("AIS_KindOfInteractive_Datum",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum) │ │ │ │ + .value("AIS_KindOfInteractive_Shape",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape) │ │ │ │ + .value("AIS_KindOfInteractive_Object",AIS_KindOfInteractive::AIS_KindOfInteractive_Object) │ │ │ │ + .value("AIS_KindOfInteractive_Relation",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation) │ │ │ │ + .value("AIS_KindOfInteractive_Dimension",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension) │ │ │ │ + .value("AIS_KindOfInteractive_LightSource",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource) │ │ │ │ + .value("AIS_KOI_None",AIS_KindOfInteractive::AIS_KOI_None) │ │ │ │ + .value("AIS_KOI_Datum",AIS_KindOfInteractive::AIS_KOI_Datum) │ │ │ │ + .value("AIS_KOI_Shape",AIS_KindOfInteractive::AIS_KOI_Shape) │ │ │ │ + .value("AIS_KOI_Object",AIS_KindOfInteractive::AIS_KOI_Object) │ │ │ │ + .value("AIS_KOI_Relation",AIS_KindOfInteractive::AIS_KOI_Relation) │ │ │ │ + .value("AIS_KOI_Dimension",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values(); │ │ │ │ py::enum_(m, "AIS_StatusOfDetection",R"#()#") │ │ │ │ .value("AIS_SOD_Error",AIS_StatusOfDetection::AIS_SOD_Error) │ │ │ │ .value("AIS_SOD_Nothing",AIS_StatusOfDetection::AIS_SOD_Nothing) │ │ │ │ .value("AIS_SOD_AllBad",AIS_StatusOfDetection::AIS_SOD_AllBad) │ │ │ │ .value("AIS_SOD_Selected",AIS_StatusOfDetection::AIS_SOD_Selected) │ │ │ │ .value("AIS_SOD_OnlyOneDetected",AIS_StatusOfDetection::AIS_SOD_OnlyOneDetected) │ │ │ │ .value("AIS_SOD_OnlyOneGood",AIS_StatusOfDetection::AIS_SOD_OnlyOneGood) │ │ │ │ .value("AIS_SOD_SeveralGood",AIS_StatusOfDetection::AIS_SOD_SeveralGood).export_values(); │ │ │ │ py::enum_(m, "AIS_NavigationMode",R"#(Camera navigation mode.)#") │ │ │ │ .value("AIS_NavigationMode_Orbit",AIS_NavigationMode::AIS_NavigationMode_Orbit) │ │ │ │ .value("AIS_NavigationMode_FirstPersonFlight",AIS_NavigationMode::AIS_NavigationMode_FirstPersonFlight) │ │ │ │ .value("AIS_NavigationMode_FirstPersonWalk",AIS_NavigationMode::AIS_NavigationMode_FirstPersonWalk).export_values(); │ │ │ │ m.attr("AIS_NavigationMode_LOWER") = py::cast(int(AIS_NavigationMode_LOWER)); │ │ │ │ m.attr("AIS_NavigationMode_UPPER") = py::cast(int(AIS_NavigationMode_UPPER)); │ │ │ │ + py::enum_(m, "AIS_TypeOfPlane",R"#(Declares the type of plane.)#") │ │ │ │ + .value("AIS_TOPL_Unknown",AIS_TypeOfPlane::AIS_TOPL_Unknown) │ │ │ │ + .value("AIS_TOPL_XYPlane",AIS_TypeOfPlane::AIS_TOPL_XYPlane) │ │ │ │ + .value("AIS_TOPL_XZPlane",AIS_TypeOfPlane::AIS_TOPL_XZPlane) │ │ │ │ + .value("AIS_TOPL_YZPlane",AIS_TypeOfPlane::AIS_TOPL_YZPlane).export_values(); │ │ │ │ + py::enum_(m, "AIS_DisplayMode",R"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#") │ │ │ │ + .value("AIS_WireFrame",AIS_DisplayMode::AIS_WireFrame) │ │ │ │ + .value("AIS_Shaded",AIS_DisplayMode::AIS_Shaded).export_values(); │ │ │ │ + py::enum_(m, "AIS_SelectStatus",R"#()#") │ │ │ │ + .value("AIS_SS_Added",AIS_SelectStatus::AIS_SS_Added) │ │ │ │ + .value("AIS_SS_Removed",AIS_SelectStatus::AIS_SS_Removed) │ │ │ │ + .value("AIS_SS_NotDone",AIS_SelectStatus::AIS_SS_NotDone).export_values(); │ │ │ │ py::enum_(m, "AIS_TypeOfAttribute",R"#()#") │ │ │ │ .value("AIS_TOA_Line",AIS_TypeOfAttribute::AIS_TOA_Line) │ │ │ │ .value("AIS_TOA_Dimension",AIS_TypeOfAttribute::AIS_TOA_Dimension) │ │ │ │ .value("AIS_TOA_Wire",AIS_TypeOfAttribute::AIS_TOA_Wire) │ │ │ │ .value("AIS_TOA_Plane",AIS_TypeOfAttribute::AIS_TOA_Plane) │ │ │ │ .value("AIS_TOA_Vector",AIS_TypeOfAttribute::AIS_TOA_Vector) │ │ │ │ .value("AIS_TOA_UIso",AIS_TypeOfAttribute::AIS_TOA_UIso) │ │ │ │ @@ -250,92 +314,28 @@ │ │ │ │ .value("AIS_TOA_Section",AIS_TypeOfAttribute::AIS_TOA_Section) │ │ │ │ .value("AIS_TOA_Hidden",AIS_TypeOfAttribute::AIS_TOA_Hidden) │ │ │ │ .value("AIS_TOA_Seen",AIS_TypeOfAttribute::AIS_TOA_Seen) │ │ │ │ .value("AIS_TOA_FaceBoundary",AIS_TypeOfAttribute::AIS_TOA_FaceBoundary) │ │ │ │ .value("AIS_TOA_FirstAxis",AIS_TypeOfAttribute::AIS_TOA_FirstAxis) │ │ │ │ .value("AIS_TOA_SecondAxis",AIS_TypeOfAttribute::AIS_TOA_SecondAxis) │ │ │ │ .value("AIS_TOA_ThirdAxis",AIS_TypeOfAttribute::AIS_TOA_ThirdAxis).export_values(); │ │ │ │ - py::enum_(m, "AIS_SelectionModesConcurrency",R"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#") │ │ │ │ - .value("AIS_SelectionModesConcurrency_Single",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single) │ │ │ │ - .value("AIS_SelectionModesConcurrency_GlobalOrLocal",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal) │ │ │ │ - .value("AIS_SelectionModesConcurrency_Multiple",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values(); │ │ │ │ - py::enum_(m, "AIS_DragAction",R"#(Dragging action.)#") │ │ │ │ - .value("AIS_DragAction_Start",AIS_DragAction::AIS_DragAction_Start) │ │ │ │ - .value("AIS_DragAction_Confirmed",AIS_DragAction::AIS_DragAction_Confirmed) │ │ │ │ - .value("AIS_DragAction_Update",AIS_DragAction::AIS_DragAction_Update) │ │ │ │ - .value("AIS_DragAction_Stop",AIS_DragAction::AIS_DragAction_Stop) │ │ │ │ - .value("AIS_DragAction_Abort",AIS_DragAction::AIS_DragAction_Abort).export_values(); │ │ │ │ - py::enum_(m, "AIS_WalkTranslation",R"#(Walking translation components.)#") │ │ │ │ - .value("AIS_WalkTranslation_Forward",AIS_WalkTranslation::AIS_WalkTranslation_Forward) │ │ │ │ - .value("AIS_WalkTranslation_Side",AIS_WalkTranslation::AIS_WalkTranslation_Side) │ │ │ │ - .value("AIS_WalkTranslation_Up",AIS_WalkTranslation::AIS_WalkTranslation_Up).export_values(); │ │ │ │ - py::enum_(m, "AIS_WalkRotation",R"#(Walking rotation components.)#") │ │ │ │ - .value("AIS_WalkRotation_Yaw",AIS_WalkRotation::AIS_WalkRotation_Yaw) │ │ │ │ - .value("AIS_WalkRotation_Pitch",AIS_WalkRotation::AIS_WalkRotation_Pitch) │ │ │ │ - .value("AIS_WalkRotation_Roll",AIS_WalkRotation::AIS_WalkRotation_Roll).export_values(); │ │ │ │ - py::enum_(m, "AIS_MouseGesture",R"#(Mouse gesture - only one can be active at one moment.)#") │ │ │ │ - .value("AIS_MouseGesture_NONE",AIS_MouseGesture::AIS_MouseGesture_NONE) │ │ │ │ - .value("AIS_MouseGesture_SelectRectangle",AIS_MouseGesture::AIS_MouseGesture_SelectRectangle) │ │ │ │ - .value("AIS_MouseGesture_SelectLasso",AIS_MouseGesture::AIS_MouseGesture_SelectLasso) │ │ │ │ - .value("AIS_MouseGesture_Zoom",AIS_MouseGesture::AIS_MouseGesture_Zoom) │ │ │ │ - .value("AIS_MouseGesture_ZoomWindow",AIS_MouseGesture::AIS_MouseGesture_ZoomWindow) │ │ │ │ - .value("AIS_MouseGesture_Pan",AIS_MouseGesture::AIS_MouseGesture_Pan) │ │ │ │ - .value("AIS_MouseGesture_RotateOrbit",AIS_MouseGesture::AIS_MouseGesture_RotateOrbit) │ │ │ │ - .value("AIS_MouseGesture_RotateView",AIS_MouseGesture::AIS_MouseGesture_RotateView) │ │ │ │ - .value("AIS_MouseGesture_Drag",AIS_MouseGesture::AIS_MouseGesture_Drag).export_values(); │ │ │ │ - py::enum_(m, "AIS_TrihedronSelectionMode",R"#(Enumeration defining selection modes supported by AIS_Trihedron.)#") │ │ │ │ - .value("AIS_TrihedronSelectionMode_EntireObject",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject) │ │ │ │ - .value("AIS_TrihedronSelectionMode_Origin",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin) │ │ │ │ - .value("AIS_TrihedronSelectionMode_Axes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes) │ │ │ │ - .value("AIS_TrihedronSelectionMode_MainPlanes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values(); │ │ │ │ py::enum_(m, "AIS_ManipulatorMode",R"#(Mode to make definite kind of transformations with AIS_Manipulator object.)#") │ │ │ │ .value("AIS_MM_None",AIS_ManipulatorMode::AIS_MM_None) │ │ │ │ .value("AIS_MM_Translation",AIS_ManipulatorMode::AIS_MM_Translation) │ │ │ │ .value("AIS_MM_Rotation",AIS_ManipulatorMode::AIS_MM_Rotation) │ │ │ │ .value("AIS_MM_Scaling",AIS_ManipulatorMode::AIS_MM_Scaling) │ │ │ │ .value("AIS_MM_TranslationPlane",AIS_ManipulatorMode::AIS_MM_TranslationPlane).export_values(); │ │ │ │ - py::enum_(m, "AIS_KindOfInteractive",R"#(Declares the type of Interactive Object. This type can be used for fast pre-filtering of objects of specific group.)#") │ │ │ │ - .value("AIS_KindOfInteractive_None",AIS_KindOfInteractive::AIS_KindOfInteractive_None) │ │ │ │ - .value("AIS_KindOfInteractive_Datum",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum) │ │ │ │ - .value("AIS_KindOfInteractive_Shape",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape) │ │ │ │ - .value("AIS_KindOfInteractive_Object",AIS_KindOfInteractive::AIS_KindOfInteractive_Object) │ │ │ │ - .value("AIS_KindOfInteractive_Relation",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation) │ │ │ │ - .value("AIS_KindOfInteractive_Dimension",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension) │ │ │ │ - .value("AIS_KindOfInteractive_LightSource",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource) │ │ │ │ - .value("AIS_KOI_None",AIS_KindOfInteractive::AIS_KOI_None) │ │ │ │ - .value("AIS_KOI_Datum",AIS_KindOfInteractive::AIS_KOI_Datum) │ │ │ │ - .value("AIS_KOI_Shape",AIS_KindOfInteractive::AIS_KOI_Shape) │ │ │ │ - .value("AIS_KOI_Object",AIS_KindOfInteractive::AIS_KOI_Object) │ │ │ │ - .value("AIS_KOI_Relation",AIS_KindOfInteractive::AIS_KOI_Relation) │ │ │ │ - .value("AIS_KOI_Dimension",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values(); │ │ │ │ - py::enum_(m, "AIS_TypeOfPlane",R"#(Declares the type of plane.)#") │ │ │ │ - .value("AIS_TOPL_Unknown",AIS_TypeOfPlane::AIS_TOPL_Unknown) │ │ │ │ - .value("AIS_TOPL_XYPlane",AIS_TypeOfPlane::AIS_TOPL_XYPlane) │ │ │ │ - .value("AIS_TOPL_XZPlane",AIS_TypeOfPlane::AIS_TOPL_XZPlane) │ │ │ │ - .value("AIS_TOPL_YZPlane",AIS_TypeOfPlane::AIS_TOPL_YZPlane).export_values(); │ │ │ │ py::enum_(m, "AIS_SelectionScheme",R"#(Sets selection schemes for interactive contexts.)#") │ │ │ │ .value("AIS_SelectionScheme_UNKNOWN",AIS_SelectionScheme::AIS_SelectionScheme_UNKNOWN) │ │ │ │ .value("AIS_SelectionScheme_Replace",AIS_SelectionScheme::AIS_SelectionScheme_Replace) │ │ │ │ .value("AIS_SelectionScheme_Add",AIS_SelectionScheme::AIS_SelectionScheme_Add) │ │ │ │ .value("AIS_SelectionScheme_Remove",AIS_SelectionScheme::AIS_SelectionScheme_Remove) │ │ │ │ .value("AIS_SelectionScheme_XOR",AIS_SelectionScheme::AIS_SelectionScheme_XOR) │ │ │ │ .value("AIS_SelectionScheme_Clear",AIS_SelectionScheme::AIS_SelectionScheme_Clear) │ │ │ │ .value("AIS_SelectionScheme_ReplaceExtra",AIS_SelectionScheme::AIS_SelectionScheme_ReplaceExtra).export_values(); │ │ │ │ - py::enum_(m, "AIS_TypeOfIso",R"#(Declares the type of isoparameter displayed.)#") │ │ │ │ - .value("AIS_TOI_IsoU",AIS_TypeOfIso::AIS_TOI_IsoU) │ │ │ │ - .value("AIS_TOI_IsoV",AIS_TypeOfIso::AIS_TOI_IsoV) │ │ │ │ - .value("AIS_TOI_Both",AIS_TypeOfIso::AIS_TOI_Both).export_values(); │ │ │ │ - py::enum_(m, "AIS_DisplayMode",R"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#") │ │ │ │ - .value("AIS_WireFrame",AIS_DisplayMode::AIS_WireFrame) │ │ │ │ - .value("AIS_Shaded",AIS_DisplayMode::AIS_Shaded).export_values(); │ │ │ │ - py::enum_(m, "AIS_TypeOfAxis",R"#(Declares the type of axis.)#") │ │ │ │ - .value("AIS_TOAX_Unknown",AIS_TypeOfAxis::AIS_TOAX_Unknown) │ │ │ │ - .value("AIS_TOAX_XAxis",AIS_TypeOfAxis::AIS_TOAX_XAxis) │ │ │ │ - .value("AIS_TOAX_YAxis",AIS_TypeOfAxis::AIS_TOAX_YAxis) │ │ │ │ - .value("AIS_TOAX_ZAxis",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_AIS_InteractiveObject : public AIS_InteractiveObject{ │ │ │ │ public: │ │ │ │ using AIS_InteractiveObject::AIS_InteractiveObject; │ │ │ ├── ./usr/share/libocp/OCP/AdvApp2Var_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -72,20 +72,20 @@ │ │ │ │ py::module m = main_module.def_submodule("AdvApp2Var", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "AdvApp2Var_CriterionType",R"#(influency of the criterion on cutting process//! cutting when criterion is not satisfied desactivation of the compute of the error max//! cutting when error max is not good or if error max is good and criterion is not satisfied)#") │ │ │ │ - .value("AdvApp2Var_Absolute",AdvApp2Var_CriterionType::AdvApp2Var_Absolute) │ │ │ │ - .value("AdvApp2Var_Relative",AdvApp2Var_CriterionType::AdvApp2Var_Relative).export_values(); │ │ │ │ py::enum_(m, "AdvApp2Var_CriterionRepartition",R"#(way of cutting process//! all new cutting points at each step of cutting process : (a+i(b-a)/N)i at step N, (a+i(b-a)/(N+1))i at step N+1,... where (a,b) is the global interval//! add one new cutting point at each step of cutting process)#") │ │ │ │ .value("AdvApp2Var_Regular",AdvApp2Var_CriterionRepartition::AdvApp2Var_Regular) │ │ │ │ .value("AdvApp2Var_Incremental",AdvApp2Var_CriterionRepartition::AdvApp2Var_Incremental).export_values(); │ │ │ │ + py::enum_(m, "AdvApp2Var_CriterionType",R"#(influency of the criterion on cutting process//! cutting when criterion is not satisfied desactivation of the compute of the error max//! cutting when error max is not good or if error max is good and criterion is not satisfied)#") │ │ │ │ + .value("AdvApp2Var_Absolute",AdvApp2Var_CriterionType::AdvApp2Var_Absolute) │ │ │ │ + .value("AdvApp2Var_Relative",AdvApp2Var_CriterionType::AdvApp2Var_Relative).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_AdvApp2Var_Criterion : public AdvApp2Var_Criterion{ │ │ │ │ public: │ │ │ │ using AdvApp2Var_Criterion::AdvApp2Var_Criterion; │ │ │ ├── ./usr/share/libocp/OCP/Approx_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -61,22 +61,22 @@ │ │ │ │ py::module m = main_module.def_submodule("Approx", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Approx_Status",R"#(It is an auxiliary flag being used in inner computations)#") │ │ │ │ - .value("Approx_PointsAdded",Approx_Status::Approx_PointsAdded) │ │ │ │ - .value("Approx_NoPointsAdded",Approx_Status::Approx_NoPointsAdded) │ │ │ │ - .value("Approx_NoApproximation",Approx_Status::Approx_NoApproximation).export_values(); │ │ │ │ py::enum_(m, "Approx_ParametrizationType",R"#()#") │ │ │ │ .value("Approx_ChordLength",Approx_ParametrizationType::Approx_ChordLength) │ │ │ │ .value("Approx_Centripetal",Approx_ParametrizationType::Approx_Centripetal) │ │ │ │ .value("Approx_IsoParametric",Approx_ParametrizationType::Approx_IsoParametric).export_values(); │ │ │ │ + py::enum_(m, "Approx_Status",R"#(It is an auxiliary flag being used in inner computations)#") │ │ │ │ + .value("Approx_PointsAdded",Approx_Status::Approx_PointsAdded) │ │ │ │ + .value("Approx_NoPointsAdded",Approx_Status::Approx_NoPointsAdded) │ │ │ │ + .value("Approx_NoApproximation",Approx_Status::Approx_NoApproximation).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Approx_SweepFunction : public Approx_SweepFunction{ │ │ │ │ public: │ │ │ │ using Approx_SweepFunction::Approx_SweepFunction; │ │ │ ├── ./usr/share/libocp/OCP/Aspect_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -113,101 +113,41 @@ │ │ │ │ py::module m = main_module.def_submodule("Aspect", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Aspect_GraphicsLibrary",R"#(Graphics API enumeration.)#") │ │ │ │ - .value("Aspect_GraphicsLibrary_OpenGL",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL) │ │ │ │ - .value("Aspect_GraphicsLibrary_OpenGLES",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfResize",R"#(Defines the type of Resize Window method applied by the user.)#") │ │ │ │ - .value("Aspect_TOR_UNKNOWN",Aspect_TypeOfResize::Aspect_TOR_UNKNOWN) │ │ │ │ - .value("Aspect_TOR_NO_BORDER",Aspect_TypeOfResize::Aspect_TOR_NO_BORDER) │ │ │ │ - .value("Aspect_TOR_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_BORDER) │ │ │ │ - .value("Aspect_TOR_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_BORDER) │ │ │ │ - .value("Aspect_TOR_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_BORDER) │ │ │ │ - .value("Aspect_TOR_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_BORDER) │ │ │ │ - .value("Aspect_TOR_TOP_AND_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_AND_RIGHT_BORDER) │ │ │ │ - .value("Aspect_TOR_RIGHT_AND_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_AND_BOTTOM_BORDER) │ │ │ │ - .value("Aspect_TOR_BOTTOM_AND_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_AND_LEFT_BORDER) │ │ │ │ - .value("Aspect_TOR_LEFT_AND_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_AND_TOP_BORDER).export_values(); │ │ │ │ - py::enum_(m, "Aspect_Eye",R"#(Camera eye index within stereoscopic pair.)#") │ │ │ │ - .value("Aspect_Eye_Left",Aspect_Eye::Aspect_Eye_Left) │ │ │ │ - .value("Aspect_Eye_Right",Aspect_Eye::Aspect_Eye_Right).export_values(); │ │ │ │ - py::enum_(m, "Aspect_FillMethod",R"#(Defines the fill methods to write bitmaps in a window.)#") │ │ │ │ - .value("Aspect_FM_NONE",Aspect_FillMethod::Aspect_FM_NONE) │ │ │ │ - .value("Aspect_FM_CENTERED",Aspect_FillMethod::Aspect_FM_CENTERED) │ │ │ │ - .value("Aspect_FM_TILED",Aspect_FillMethod::Aspect_FM_TILED) │ │ │ │ - .value("Aspect_FM_STRETCH",Aspect_FillMethod::Aspect_FM_STRETCH).export_values(); │ │ │ │ py::enum_(m, "Aspect_PolygonOffsetMode",R"#()#") │ │ │ │ .value("Aspect_POM_Off",Aspect_PolygonOffsetMode::Aspect_POM_Off) │ │ │ │ .value("Aspect_POM_Fill",Aspect_PolygonOffsetMode::Aspect_POM_Fill) │ │ │ │ .value("Aspect_POM_Line",Aspect_PolygonOffsetMode::Aspect_POM_Line) │ │ │ │ .value("Aspect_POM_Point",Aspect_PolygonOffsetMode::Aspect_POM_Point) │ │ │ │ .value("Aspect_POM_All",Aspect_PolygonOffsetMode::Aspect_POM_All) │ │ │ │ .value("Aspect_POM_None",Aspect_PolygonOffsetMode::Aspect_POM_None) │ │ │ │ .value("Aspect_POM_Mask",Aspect_PolygonOffsetMode::Aspect_POM_Mask).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfStyleText",R"#(Define the style of the text.)#") │ │ │ │ - .value("Aspect_TOST_NORMAL",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL) │ │ │ │ - .value("Aspect_TOST_ANNOTATION",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values(); │ │ │ │ - py::enum_(m, "Aspect_XRActionType",R"#(XR action type.)#") │ │ │ │ - .value("Aspect_XRActionType_InputDigital",Aspect_XRActionType::Aspect_XRActionType_InputDigital) │ │ │ │ - .value("Aspect_XRActionType_InputAnalog",Aspect_XRActionType::Aspect_XRActionType_InputAnalog) │ │ │ │ - .value("Aspect_XRActionType_InputPose",Aspect_XRActionType::Aspect_XRActionType_InputPose) │ │ │ │ - .value("Aspect_XRActionType_InputSkeletal",Aspect_XRActionType::Aspect_XRActionType_InputSkeletal) │ │ │ │ - .value("Aspect_XRActionType_OutputHaptic",Aspect_XRActionType::Aspect_XRActionType_OutputHaptic).export_values(); │ │ │ │ - py::enum_(m, "Aspect_XRTrackedDeviceRole",R"#(Predefined tracked devices.)#") │ │ │ │ - .value("Aspect_XRTrackedDeviceRole_Head",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Head) │ │ │ │ - .value("Aspect_XRTrackedDeviceRole_LeftHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_LeftHand) │ │ │ │ - .value("Aspect_XRTrackedDeviceRole_RightHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_RightHand) │ │ │ │ - .value("Aspect_XRTrackedDeviceRole_Other",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Other).export_values(); │ │ │ │ - m.attr("Aspect_XRTrackedDeviceRole_NB") = py::cast(int(Aspect_XRTrackedDeviceRole_NB)); │ │ │ │ - py::enum_(m, "Aspect_ColorSpace",R"#(Texture color spaces accepted by XR composer.)#") │ │ │ │ - .value("Aspect_ColorSpace_sRGB",Aspect_ColorSpace::Aspect_ColorSpace_sRGB) │ │ │ │ - .value("Aspect_ColorSpace_Linear",Aspect_ColorSpace::Aspect_ColorSpace_Linear).export_values(); │ │ │ │ - py::enum_(m, "Aspect_GridType",R"#(Defines the grid type : Rectangular or Circular.)#") │ │ │ │ - .value("Aspect_GT_Rectangular",Aspect_GridType::Aspect_GT_Rectangular) │ │ │ │ - .value("Aspect_GT_Circular",Aspect_GridType::Aspect_GT_Circular).export_values(); │ │ │ │ - py::enum_(m, "Aspect_WidthOfLine",R"#(Definition of line types)#") │ │ │ │ - .value("Aspect_WOL_THIN",Aspect_WidthOfLine::Aspect_WOL_THIN) │ │ │ │ - .value("Aspect_WOL_MEDIUM",Aspect_WidthOfLine::Aspect_WOL_MEDIUM) │ │ │ │ - .value("Aspect_WOL_THICK",Aspect_WidthOfLine::Aspect_WOL_THICK) │ │ │ │ - .value("Aspect_WOL_VERYTHICK",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK) │ │ │ │ - .value("Aspect_WOL_USERDEFINED",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfTriedronPosition",R"#(Definition of the Trihedron position in the views. It is defined as a bitmask to simplify handling vertical and horizontal alignment independently.)#") │ │ │ │ - .value("Aspect_TOTP_CENTER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER) │ │ │ │ - .value("Aspect_TOTP_TOP",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP) │ │ │ │ - .value("Aspect_TOTP_BOTTOM",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM) │ │ │ │ - .value("Aspect_TOTP_LEFT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT) │ │ │ │ - .value("Aspect_TOTP_RIGHT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT) │ │ │ │ - .value("Aspect_TOTP_LEFT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER) │ │ │ │ - .value("Aspect_TOTP_LEFT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER) │ │ │ │ - .value("Aspect_TOTP_RIGHT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER) │ │ │ │ - .value("Aspect_TOTP_RIGHT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values(); │ │ │ │ - m.attr("Aspect_VKeyFlags_NONE") = py::cast(int(Aspect_VKeyFlags_NONE)); │ │ │ │ - m.attr("Aspect_VKeyFlags_SHIFT") = py::cast(int(Aspect_VKeyFlags_SHIFT)); │ │ │ │ - m.attr("Aspect_VKeyFlags_CTRL") = py::cast(int(Aspect_VKeyFlags_CTRL)); │ │ │ │ - m.attr("Aspect_VKeyFlags_ALT") = py::cast(int(Aspect_VKeyFlags_ALT)); │ │ │ │ - m.attr("Aspect_VKeyFlags_MENU") = py::cast(int(Aspect_VKeyFlags_MENU)); │ │ │ │ - m.attr("Aspect_VKeyFlags_META") = py::cast(int(Aspect_VKeyFlags_META)); │ │ │ │ - m.attr("Aspect_VKeyFlags_ALL") = py::cast(int(Aspect_VKeyFlags_ALL)); │ │ │ │ - m.attr("Aspect_VKeyMouse_NONE") = py::cast(int(Aspect_VKeyMouse_NONE)); │ │ │ │ - m.attr("Aspect_VKeyMouse_LeftButton") = py::cast(int(Aspect_VKeyMouse_LeftButton)); │ │ │ │ - m.attr("Aspect_VKeyMouse_MiddleButton") = py::cast(int(Aspect_VKeyMouse_MiddleButton)); │ │ │ │ - m.attr("Aspect_VKeyMouse_RightButton") = py::cast(int(Aspect_VKeyMouse_RightButton)); │ │ │ │ - m.attr("Aspect_VKeyMouse_MainButtons") = py::cast(int(Aspect_VKeyMouse_MainButtons)); │ │ │ │ - py::enum_(m, "Aspect_TypeOfColorScalePosition",R"#(Defines the type of position for color scale labels)#") │ │ │ │ - .value("Aspect_TOCSP_NONE",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE) │ │ │ │ - .value("Aspect_TOCSP_LEFT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT) │ │ │ │ - .value("Aspect_TOCSP_RIGHT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT) │ │ │ │ - .value("Aspect_TOCSP_CENTER",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfHighlightMethod",R"#(Definition of a highlight method)#") │ │ │ │ - .value("Aspect_TOHM_COLOR",Aspect_TypeOfHighlightMethod::Aspect_TOHM_COLOR) │ │ │ │ - .value("Aspect_TOHM_BOUNDBOX",Aspect_TypeOfHighlightMethod::Aspect_TOHM_BOUNDBOX).export_values(); │ │ │ │ + py::enum_(m, "Aspect_XRGenericAction",R"#(Generic XR action.)#") │ │ │ │ + .value("Aspect_XRGenericAction_IsHeadsetOn",Aspect_XRGenericAction::Aspect_XRGenericAction_IsHeadsetOn) │ │ │ │ + .value("Aspect_XRGenericAction_InputAppMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputAppMenu) │ │ │ │ + .value("Aspect_XRGenericAction_InputSysMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputSysMenu) │ │ │ │ + .value("Aspect_XRGenericAction_InputTriggerPull",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerPull) │ │ │ │ + .value("Aspect_XRGenericAction_InputTriggerClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerClick) │ │ │ │ + .value("Aspect_XRGenericAction_InputGripClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputGripClick) │ │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadPosition) │ │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadTouch) │ │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadClick) │ │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickPosition) │ │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickTouch) │ │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickClick) │ │ │ │ + .value("Aspect_XRGenericAction_InputPoseBase",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseBase) │ │ │ │ + .value("Aspect_XRGenericAction_InputPoseFront",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFront) │ │ │ │ + .value("Aspect_XRGenericAction_InputPoseHandGrip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseHandGrip) │ │ │ │ + .value("Aspect_XRGenericAction_InputPoseFingerTip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFingerTip) │ │ │ │ + .value("Aspect_XRGenericAction_OutputHaptic",Aspect_XRGenericAction::Aspect_XRGenericAction_OutputHaptic).export_values(); │ │ │ │ + m.attr("Aspect_XRGenericAction_NB") = py::cast(int(Aspect_XRGenericAction_NB)); │ │ │ │ py::enum_(m, "Aspect_TypeOfMarker",R"#(Definition of types of markers)#") │ │ │ │ .value("Aspect_TOM_EMPTY",Aspect_TypeOfMarker::Aspect_TOM_EMPTY) │ │ │ │ .value("Aspect_TOM_POINT",Aspect_TypeOfMarker::Aspect_TOM_POINT) │ │ │ │ .value("Aspect_TOM_PLUS",Aspect_TypeOfMarker::Aspect_TOM_PLUS) │ │ │ │ .value("Aspect_TOM_STAR",Aspect_TypeOfMarker::Aspect_TOM_STAR) │ │ │ │ .value("Aspect_TOM_X",Aspect_TypeOfMarker::Aspect_TOM_X) │ │ │ │ .value("Aspect_TOM_O",Aspect_TypeOfMarker::Aspect_TOM_O) │ │ │ │ @@ -216,41 +156,29 @@ │ │ │ │ .value("Aspect_TOM_O_STAR",Aspect_TypeOfMarker::Aspect_TOM_O_STAR) │ │ │ │ .value("Aspect_TOM_O_X",Aspect_TypeOfMarker::Aspect_TOM_O_X) │ │ │ │ .value("Aspect_TOM_RING1",Aspect_TypeOfMarker::Aspect_TOM_RING1) │ │ │ │ .value("Aspect_TOM_RING2",Aspect_TypeOfMarker::Aspect_TOM_RING2) │ │ │ │ .value("Aspect_TOM_RING3",Aspect_TypeOfMarker::Aspect_TOM_RING3) │ │ │ │ .value("Aspect_TOM_BALL",Aspect_TypeOfMarker::Aspect_TOM_BALL) │ │ │ │ .value("Aspect_TOM_USERDEFINED",Aspect_TypeOfMarker::Aspect_TOM_USERDEFINED).export_values(); │ │ │ │ + py::enum_(m, "Aspect_Eye",R"#(Camera eye index within stereoscopic pair.)#") │ │ │ │ + .value("Aspect_Eye_Left",Aspect_Eye::Aspect_Eye_Left) │ │ │ │ + .value("Aspect_Eye_Right",Aspect_Eye::Aspect_Eye_Right).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfColorScalePosition",R"#(Defines the type of position for color scale labels)#") │ │ │ │ + .value("Aspect_TOCSP_NONE",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE) │ │ │ │ + .value("Aspect_TOCSP_LEFT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT) │ │ │ │ + .value("Aspect_TOCSP_RIGHT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT) │ │ │ │ + .value("Aspect_TOCSP_CENTER",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values(); │ │ │ │ py::enum_(m, "Aspect_GridDrawMode",R"#(Defines the grid draw mode. The grid may be drawn by using lines or points.)#") │ │ │ │ .value("Aspect_GDM_Lines",Aspect_GridDrawMode::Aspect_GDM_Lines) │ │ │ │ .value("Aspect_GDM_Points",Aspect_GridDrawMode::Aspect_GDM_Points) │ │ │ │ .value("Aspect_GDM_None",Aspect_GridDrawMode::Aspect_GDM_None).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfFacingModel",R"#()#") │ │ │ │ - .value("Aspect_TOFM_BOTH_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE) │ │ │ │ - .value("Aspect_TOFM_BACK_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE) │ │ │ │ - .value("Aspect_TOFM_FRONT_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values(); │ │ │ │ - py::enum_(m, "Aspect_XRGenericAction",R"#(Generic XR action.)#") │ │ │ │ - .value("Aspect_XRGenericAction_IsHeadsetOn",Aspect_XRGenericAction::Aspect_XRGenericAction_IsHeadsetOn) │ │ │ │ - .value("Aspect_XRGenericAction_InputAppMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputAppMenu) │ │ │ │ - .value("Aspect_XRGenericAction_InputSysMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputSysMenu) │ │ │ │ - .value("Aspect_XRGenericAction_InputTriggerPull",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerPull) │ │ │ │ - .value("Aspect_XRGenericAction_InputTriggerClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerClick) │ │ │ │ - .value("Aspect_XRGenericAction_InputGripClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputGripClick) │ │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadPosition) │ │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadTouch) │ │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadClick) │ │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickPosition) │ │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickTouch) │ │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickClick) │ │ │ │ - .value("Aspect_XRGenericAction_InputPoseBase",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseBase) │ │ │ │ - .value("Aspect_XRGenericAction_InputPoseFront",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFront) │ │ │ │ - .value("Aspect_XRGenericAction_InputPoseHandGrip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseHandGrip) │ │ │ │ - .value("Aspect_XRGenericAction_InputPoseFingerTip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFingerTip) │ │ │ │ - .value("Aspect_XRGenericAction_OutputHaptic",Aspect_XRGenericAction::Aspect_XRGenericAction_OutputHaptic).export_values(); │ │ │ │ - m.attr("Aspect_XRGenericAction_NB") = py::cast(int(Aspect_XRGenericAction_NB)); │ │ │ │ + py::enum_(m, "Aspect_TypeOfStyleText",R"#(Define the style of the text.)#") │ │ │ │ + .value("Aspect_TOST_NORMAL",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL) │ │ │ │ + .value("Aspect_TOST_ANNOTATION",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values(); │ │ │ │ py::enum_(m, "Aspect_HatchStyle",R"#(Definition of all available hatch styles.)#") │ │ │ │ .value("Aspect_HS_SOLID",Aspect_HatchStyle::Aspect_HS_SOLID) │ │ │ │ .value("Aspect_HS_HORIZONTAL",Aspect_HatchStyle::Aspect_HS_HORIZONTAL) │ │ │ │ .value("Aspect_HS_HORIZONTAL_WIDE",Aspect_HatchStyle::Aspect_HS_HORIZONTAL_WIDE) │ │ │ │ .value("Aspect_HS_VERTICAL",Aspect_HatchStyle::Aspect_HS_VERTICAL) │ │ │ │ .value("Aspect_HS_VERTICAL_WIDE",Aspect_HatchStyle::Aspect_HS_VERTICAL_WIDE) │ │ │ │ .value("Aspect_HS_DIAGONAL_45",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45) │ │ │ │ @@ -258,14 +186,47 @@ │ │ │ │ .value("Aspect_HS_DIAGONAL_135",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135) │ │ │ │ .value("Aspect_HS_DIAGONAL_135_WIDE",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135_WIDE) │ │ │ │ .value("Aspect_HS_GRID",Aspect_HatchStyle::Aspect_HS_GRID) │ │ │ │ .value("Aspect_HS_GRID_WIDE",Aspect_HatchStyle::Aspect_HS_GRID_WIDE) │ │ │ │ .value("Aspect_HS_GRID_DIAGONAL",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL) │ │ │ │ .value("Aspect_HS_GRID_DIAGONAL_WIDE",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL_WIDE) │ │ │ │ .value("Aspect_HS_NB",Aspect_HatchStyle::Aspect_HS_NB).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfTriedronPosition",R"#(Definition of the Trihedron position in the views. It is defined as a bitmask to simplify handling vertical and horizontal alignment independently.)#") │ │ │ │ + .value("Aspect_TOTP_CENTER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER) │ │ │ │ + .value("Aspect_TOTP_TOP",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP) │ │ │ │ + .value("Aspect_TOTP_BOTTOM",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM) │ │ │ │ + .value("Aspect_TOTP_LEFT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT) │ │ │ │ + .value("Aspect_TOTP_RIGHT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT) │ │ │ │ + .value("Aspect_TOTP_LEFT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER) │ │ │ │ + .value("Aspect_TOTP_LEFT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER) │ │ │ │ + .value("Aspect_TOTP_RIGHT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER) │ │ │ │ + .value("Aspect_TOTP_RIGHT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfDeflection",R"#(Defines if the maximal chordial deflection used when drawing an object is absolute or relative to the size of the object.)#") │ │ │ │ + .value("Aspect_TOD_RELATIVE",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE) │ │ │ │ + .value("Aspect_TOD_ABSOLUTE",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values(); │ │ │ │ + m.attr("Aspect_VKeyFlags_NONE") = py::cast(int(Aspect_VKeyFlags_NONE)); │ │ │ │ + m.attr("Aspect_VKeyFlags_SHIFT") = py::cast(int(Aspect_VKeyFlags_SHIFT)); │ │ │ │ + m.attr("Aspect_VKeyFlags_CTRL") = py::cast(int(Aspect_VKeyFlags_CTRL)); │ │ │ │ + m.attr("Aspect_VKeyFlags_ALT") = py::cast(int(Aspect_VKeyFlags_ALT)); │ │ │ │ + m.attr("Aspect_VKeyFlags_MENU") = py::cast(int(Aspect_VKeyFlags_MENU)); │ │ │ │ + m.attr("Aspect_VKeyFlags_META") = py::cast(int(Aspect_VKeyFlags_META)); │ │ │ │ + m.attr("Aspect_VKeyFlags_ALL") = py::cast(int(Aspect_VKeyFlags_ALL)); │ │ │ │ + m.attr("Aspect_VKeyMouse_NONE") = py::cast(int(Aspect_VKeyMouse_NONE)); │ │ │ │ + m.attr("Aspect_VKeyMouse_LeftButton") = py::cast(int(Aspect_VKeyMouse_LeftButton)); │ │ │ │ + m.attr("Aspect_VKeyMouse_MiddleButton") = py::cast(int(Aspect_VKeyMouse_MiddleButton)); │ │ │ │ + m.attr("Aspect_VKeyMouse_RightButton") = py::cast(int(Aspect_VKeyMouse_RightButton)); │ │ │ │ + m.attr("Aspect_VKeyMouse_MainButtons") = py::cast(int(Aspect_VKeyMouse_MainButtons)); │ │ │ │ + py::enum_(m, "Aspect_TypeOfColorScaleOrientation",R"#(Defines the type of color scale orientation)#") │ │ │ │ + .value("Aspect_TOCSO_NONE",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE) │ │ │ │ + .value("Aspect_TOCSO_LEFT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT) │ │ │ │ + .value("Aspect_TOCSO_RIGHT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT) │ │ │ │ + .value("Aspect_TOCSO_CENTER",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfHighlightMethod",R"#(Definition of a highlight method)#") │ │ │ │ + .value("Aspect_TOHM_COLOR",Aspect_TypeOfHighlightMethod::Aspect_TOHM_COLOR) │ │ │ │ + .value("Aspect_TOHM_BOUNDBOX",Aspect_TypeOfHighlightMethod::Aspect_TOHM_BOUNDBOX).export_values(); │ │ │ │ py::enum_(m, "Aspect_GradientFillMethod",R"#(Defines the fill methods to write gradient background in a window.)#") │ │ │ │ .value("Aspect_GradientFillMethod_None",Aspect_GradientFillMethod::Aspect_GradientFillMethod_None) │ │ │ │ .value("Aspect_GradientFillMethod_Horizontal",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Horizontal) │ │ │ │ .value("Aspect_GradientFillMethod_Vertical",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Vertical) │ │ │ │ .value("Aspect_GradientFillMethod_Diagonal1",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal1) │ │ │ │ .value("Aspect_GradientFillMethod_Diagonal2",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal2) │ │ │ │ .value("Aspect_GradientFillMethod_Corner1",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Corner1) │ │ │ │ @@ -278,48 +239,76 @@ │ │ │ │ .value("Aspect_GFM_VER",Aspect_GradientFillMethod::Aspect_GFM_VER) │ │ │ │ .value("Aspect_GFM_DIAG1",Aspect_GradientFillMethod::Aspect_GFM_DIAG1) │ │ │ │ .value("Aspect_GFM_DIAG2",Aspect_GradientFillMethod::Aspect_GFM_DIAG2) │ │ │ │ .value("Aspect_GFM_CORNER1",Aspect_GradientFillMethod::Aspect_GFM_CORNER1) │ │ │ │ .value("Aspect_GFM_CORNER2",Aspect_GradientFillMethod::Aspect_GFM_CORNER2) │ │ │ │ .value("Aspect_GFM_CORNER3",Aspect_GradientFillMethod::Aspect_GFM_CORNER3) │ │ │ │ .value("Aspect_GFM_CORNER4",Aspect_GradientFillMethod::Aspect_GFM_CORNER4).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfDeflection",R"#(Defines if the maximal chordial deflection used when drawing an object is absolute or relative to the size of the object.)#") │ │ │ │ - .value("Aspect_TOD_RELATIVE",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE) │ │ │ │ - .value("Aspect_TOD_ABSOLUTE",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfDisplayText",R"#(Define the display type of the text.)#") │ │ │ │ - .value("Aspect_TODT_NORMAL",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL) │ │ │ │ - .value("Aspect_TODT_SUBTITLE",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE) │ │ │ │ - .value("Aspect_TODT_DEKALE",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE) │ │ │ │ - .value("Aspect_TODT_BLEND",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND) │ │ │ │ - .value("Aspect_TODT_DIMENSION",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION) │ │ │ │ - .value("Aspect_TODT_SHADOW",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values(); │ │ │ │ py::enum_(m, "Aspect_TypeOfLine",R"#(Definition of line types)#") │ │ │ │ .value("Aspect_TOL_EMPTY",Aspect_TypeOfLine::Aspect_TOL_EMPTY) │ │ │ │ .value("Aspect_TOL_SOLID",Aspect_TypeOfLine::Aspect_TOL_SOLID) │ │ │ │ .value("Aspect_TOL_DASH",Aspect_TypeOfLine::Aspect_TOL_DASH) │ │ │ │ .value("Aspect_TOL_DOT",Aspect_TypeOfLine::Aspect_TOL_DOT) │ │ │ │ .value("Aspect_TOL_DOTDASH",Aspect_TypeOfLine::Aspect_TOL_DOTDASH) │ │ │ │ .value("Aspect_TOL_USERDEFINED",Aspect_TypeOfLine::Aspect_TOL_USERDEFINED).export_values(); │ │ │ │ - py::enum_(m, "Aspect_TypeOfColorScaleOrientation",R"#(Defines the type of color scale orientation)#") │ │ │ │ - .value("Aspect_TOCSO_NONE",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE) │ │ │ │ - .value("Aspect_TOCSO_LEFT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT) │ │ │ │ - .value("Aspect_TOCSO_RIGHT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT) │ │ │ │ - .value("Aspect_TOCSO_CENTER",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values(); │ │ │ │ py::enum_(m, "Aspect_InteriorStyle",R"#(Interior types for primitive faces.)#") │ │ │ │ .value("Aspect_IS_EMPTY",Aspect_InteriorStyle::Aspect_IS_EMPTY) │ │ │ │ .value("Aspect_IS_SOLID",Aspect_InteriorStyle::Aspect_IS_SOLID) │ │ │ │ .value("Aspect_IS_HATCH",Aspect_InteriorStyle::Aspect_IS_HATCH) │ │ │ │ .value("Aspect_IS_HIDDENLINE",Aspect_InteriorStyle::Aspect_IS_HIDDENLINE) │ │ │ │ .value("Aspect_IS_POINT",Aspect_InteriorStyle::Aspect_IS_POINT) │ │ │ │ .value("Aspect_IS_HOLLOW",Aspect_InteriorStyle::Aspect_IS_HOLLOW).export_values(); │ │ │ │ - py::enum_(m, "Aspect_XAtom",R"#(Defines custom identifiers(atoms) for X window custom named properties)#") │ │ │ │ - .value("Aspect_XA_DELETE_WINDOW",Aspect_XAtom::Aspect_XA_DELETE_WINDOW).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfResize",R"#(Defines the type of Resize Window method applied by the user.)#") │ │ │ │ + .value("Aspect_TOR_UNKNOWN",Aspect_TypeOfResize::Aspect_TOR_UNKNOWN) │ │ │ │ + .value("Aspect_TOR_NO_BORDER",Aspect_TypeOfResize::Aspect_TOR_NO_BORDER) │ │ │ │ + .value("Aspect_TOR_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_BORDER) │ │ │ │ + .value("Aspect_TOR_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_BORDER) │ │ │ │ + .value("Aspect_TOR_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_BORDER) │ │ │ │ + .value("Aspect_TOR_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_BORDER) │ │ │ │ + .value("Aspect_TOR_TOP_AND_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_AND_RIGHT_BORDER) │ │ │ │ + .value("Aspect_TOR_RIGHT_AND_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_AND_BOTTOM_BORDER) │ │ │ │ + .value("Aspect_TOR_BOTTOM_AND_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_AND_LEFT_BORDER) │ │ │ │ + .value("Aspect_TOR_LEFT_AND_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_AND_TOP_BORDER).export_values(); │ │ │ │ + py::enum_(m, "Aspect_GraphicsLibrary",R"#(Graphics API enumeration.)#") │ │ │ │ + .value("Aspect_GraphicsLibrary_OpenGL",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL) │ │ │ │ + .value("Aspect_GraphicsLibrary_OpenGLES",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values(); │ │ │ │ + py::enum_(m, "Aspect_XRTrackedDeviceRole",R"#(Predefined tracked devices.)#") │ │ │ │ + .value("Aspect_XRTrackedDeviceRole_Head",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Head) │ │ │ │ + .value("Aspect_XRTrackedDeviceRole_LeftHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_LeftHand) │ │ │ │ + .value("Aspect_XRTrackedDeviceRole_RightHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_RightHand) │ │ │ │ + .value("Aspect_XRTrackedDeviceRole_Other",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Other).export_values(); │ │ │ │ + m.attr("Aspect_XRTrackedDeviceRole_NB") = py::cast(int(Aspect_XRTrackedDeviceRole_NB)); │ │ │ │ py::enum_(m, "Aspect_TypeOfColorScaleData",R"#(Defines the using type of colors and labels)#") │ │ │ │ .value("Aspect_TOCSD_AUTO",Aspect_TypeOfColorScaleData::Aspect_TOCSD_AUTO) │ │ │ │ .value("Aspect_TOCSD_USER",Aspect_TypeOfColorScaleData::Aspect_TOCSD_USER).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfDisplayText",R"#(Define the display type of the text.)#") │ │ │ │ + .value("Aspect_TODT_NORMAL",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL) │ │ │ │ + .value("Aspect_TODT_SUBTITLE",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE) │ │ │ │ + .value("Aspect_TODT_DEKALE",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE) │ │ │ │ + .value("Aspect_TODT_BLEND",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND) │ │ │ │ + .value("Aspect_TODT_DIMENSION",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION) │ │ │ │ + .value("Aspect_TODT_SHADOW",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values(); │ │ │ │ + py::enum_(m, "Aspect_XRActionType",R"#(XR action type.)#") │ │ │ │ + .value("Aspect_XRActionType_InputDigital",Aspect_XRActionType::Aspect_XRActionType_InputDigital) │ │ │ │ + .value("Aspect_XRActionType_InputAnalog",Aspect_XRActionType::Aspect_XRActionType_InputAnalog) │ │ │ │ + .value("Aspect_XRActionType_InputPose",Aspect_XRActionType::Aspect_XRActionType_InputPose) │ │ │ │ + .value("Aspect_XRActionType_InputSkeletal",Aspect_XRActionType::Aspect_XRActionType_InputSkeletal) │ │ │ │ + .value("Aspect_XRActionType_OutputHaptic",Aspect_XRActionType::Aspect_XRActionType_OutputHaptic).export_values(); │ │ │ │ + py::enum_(m, "Aspect_TypeOfFacingModel",R"#()#") │ │ │ │ + .value("Aspect_TOFM_BOTH_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE) │ │ │ │ + .value("Aspect_TOFM_BACK_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE) │ │ │ │ + .value("Aspect_TOFM_FRONT_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values(); │ │ │ │ + py::enum_(m, "Aspect_XAtom",R"#(Defines custom identifiers(atoms) for X window custom named properties)#") │ │ │ │ + .value("Aspect_XA_DELETE_WINDOW",Aspect_XAtom::Aspect_XA_DELETE_WINDOW).export_values(); │ │ │ │ + py::enum_(m, "Aspect_WidthOfLine",R"#(Definition of line types)#") │ │ │ │ + .value("Aspect_WOL_THIN",Aspect_WidthOfLine::Aspect_WOL_THIN) │ │ │ │ + .value("Aspect_WOL_MEDIUM",Aspect_WidthOfLine::Aspect_WOL_MEDIUM) │ │ │ │ + .value("Aspect_WOL_THICK",Aspect_WidthOfLine::Aspect_WOL_THICK) │ │ │ │ + .value("Aspect_WOL_VERYTHICK",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK) │ │ │ │ + .value("Aspect_WOL_USERDEFINED",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values(); │ │ │ │ py::enum_(m, "Aspect_VKeyBasic",R"#(Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys management logic.)#") │ │ │ │ .value("Aspect_VKey_UNKNOWN",Aspect_VKeyBasic::Aspect_VKey_UNKNOWN) │ │ │ │ .value("Aspect_VKey_A",Aspect_VKeyBasic::Aspect_VKey_A) │ │ │ │ .value("Aspect_VKey_B",Aspect_VKeyBasic::Aspect_VKey_B) │ │ │ │ .value("Aspect_VKey_C",Aspect_VKeyBasic::Aspect_VKey_C) │ │ │ │ .value("Aspect_VKey_D",Aspect_VKeyBasic::Aspect_VKey_D) │ │ │ │ .value("Aspect_VKey_E",Aspect_VKeyBasic::Aspect_VKey_E) │ │ │ │ @@ -464,14 +453,25 @@ │ │ │ │ m.attr("Aspect_VKey_ModifiersLower") = py::cast(int(Aspect_VKey_ModifiersLower)); │ │ │ │ m.attr("Aspect_VKey_ModifiersUpper") = py::cast(int(Aspect_VKey_ModifiersUpper)); │ │ │ │ m.attr("Aspect_VKey_NavigationKeysLower") = py::cast(int(Aspect_VKey_NavigationKeysLower)); │ │ │ │ m.attr("Aspect_VKey_NavigationKeysUpper") = py::cast(int(Aspect_VKey_NavigationKeysUpper)); │ │ │ │ m.attr("Aspect_VKey_Upper") = py::cast(int(Aspect_VKey_Upper)); │ │ │ │ m.attr("Aspect_VKey_NB") = py::cast(int(Aspect_VKey_NB)); │ │ │ │ m.attr("Aspect_VKey_MAX") = py::cast(int(Aspect_VKey_MAX)); │ │ │ │ + py::enum_(m, "Aspect_FillMethod",R"#(Defines the fill methods to write bitmaps in a window.)#") │ │ │ │ + .value("Aspect_FM_NONE",Aspect_FillMethod::Aspect_FM_NONE) │ │ │ │ + .value("Aspect_FM_CENTERED",Aspect_FillMethod::Aspect_FM_CENTERED) │ │ │ │ + .value("Aspect_FM_TILED",Aspect_FillMethod::Aspect_FM_TILED) │ │ │ │ + .value("Aspect_FM_STRETCH",Aspect_FillMethod::Aspect_FM_STRETCH).export_values(); │ │ │ │ + py::enum_(m, "Aspect_GridType",R"#(Defines the grid type : Rectangular or Circular.)#") │ │ │ │ + .value("Aspect_GT_Rectangular",Aspect_GridType::Aspect_GT_Rectangular) │ │ │ │ + .value("Aspect_GT_Circular",Aspect_GridType::Aspect_GT_Circular).export_values(); │ │ │ │ + py::enum_(m, "Aspect_ColorSpace",R"#(Texture color spaces accepted by XR composer.)#") │ │ │ │ + .value("Aspect_ColorSpace_sRGB",Aspect_ColorSpace::Aspect_ColorSpace_sRGB) │ │ │ │ + .value("Aspect_ColorSpace_Linear",Aspect_ColorSpace::Aspect_ColorSpace_Linear).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Aspect_Grid : public Aspect_Grid{ │ │ │ │ public: │ │ │ │ using Aspect_Grid::Aspect_Grid; │ │ │ ├── ./usr/share/libocp/OCP/BRepBuilderAPI_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -106,53 +106,53 @@ │ │ │ │ py::module m = main_module.def_submodule("BRepBuilderAPI", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "BRepBuilderAPI_ShapeModification",R"#(Lists the possible types of modification to a shape following a topological operation: Preserved, Deleted, Trimmed, Merged or BoundaryModified. This enumeration enables you to assign a "state" to the different shapes that are on the list of operands for each API function. The MakeShape class then uses this to determine what has happened to the shapes which constitute the list of operands.)#") │ │ │ │ + .value("BRepBuilderAPI_Preserved",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Preserved) │ │ │ │ + .value("BRepBuilderAPI_Deleted",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Deleted) │ │ │ │ + .value("BRepBuilderAPI_Trimmed",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Trimmed) │ │ │ │ + .value("BRepBuilderAPI_Merged",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Merged) │ │ │ │ + .value("BRepBuilderAPI_BoundaryModified",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_BoundaryModified).export_values(); │ │ │ │ py::enum_(m, "BRepBuilderAPI_FaceError",R"#(Indicates the outcome of the construction of a face, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_FaceDone No error occurred. The face is correctly built. - BRepBuilderAPI_NoFace No initialization of the algorithm; only an empty constructor was used. - BRepBuilderAPI_NotPlanar No surface was given and the wire was not planar. - BRepBuilderAPI_CurveProjectionFailed Not used so far. - BRepBuilderAPI_ParametersOutOfRange The parameters given to limit the surface are out of its bounds.)#") │ │ │ │ .value("BRepBuilderAPI_FaceDone",BRepBuilderAPI_FaceError::BRepBuilderAPI_FaceDone) │ │ │ │ .value("BRepBuilderAPI_NoFace",BRepBuilderAPI_FaceError::BRepBuilderAPI_NoFace) │ │ │ │ .value("BRepBuilderAPI_NotPlanar",BRepBuilderAPI_FaceError::BRepBuilderAPI_NotPlanar) │ │ │ │ .value("BRepBuilderAPI_CurveProjectionFailed",BRepBuilderAPI_FaceError::BRepBuilderAPI_CurveProjectionFailed) │ │ │ │ .value("BRepBuilderAPI_ParametersOutOfRange",BRepBuilderAPI_FaceError::BRepBuilderAPI_ParametersOutOfRange).export_values(); │ │ │ │ - py::enum_(m, "BRepBuilderAPI_EdgeError",R"#(Indicates the outcome of the construction of an edge, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_EdgeDone No error occurred; The edge is correctly built. - BRepBuilderAPI_PointProjectionFailed No parameters were given but the projection of the 3D points on the curve failed. This happens when the point distance to the curve is greater than the precision value. - BRepBuilderAPI_ParameterOutOfRange The given parameters are not in the parametric range C->FirstParameter(), C->LastParameter() - BRepBuilderAPI_DifferentPointsOnClosedCurve The two vertices or points are the extremities of a closed curve but have different locations. - BRepBuilderAPI_PointWithInfiniteParameter A finite coordinate point was associated with an infinite parameter (see the Precision package for a definition of infinite values). - BRepBuilderAPI_DifferentsPointAndParameter The distance between the 3D point and the point evaluated on the curve with the parameter is greater than the precision. - BRepBuilderAPI_LineThroughIdenticPoints Two identical points were given to define a line (construction of an edge without curve); gp::Resolution is used for the confusion test.)#") │ │ │ │ - .value("BRepBuilderAPI_EdgeDone",BRepBuilderAPI_EdgeError::BRepBuilderAPI_EdgeDone) │ │ │ │ - .value("BRepBuilderAPI_PointProjectionFailed",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointProjectionFailed) │ │ │ │ - .value("BRepBuilderAPI_ParameterOutOfRange",BRepBuilderAPI_EdgeError::BRepBuilderAPI_ParameterOutOfRange) │ │ │ │ - .value("BRepBuilderAPI_DifferentPointsOnClosedCurve",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentPointsOnClosedCurve) │ │ │ │ - .value("BRepBuilderAPI_PointWithInfiniteParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointWithInfiniteParameter) │ │ │ │ - .value("BRepBuilderAPI_DifferentsPointAndParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentsPointAndParameter) │ │ │ │ - .value("BRepBuilderAPI_LineThroughIdenticPoints",BRepBuilderAPI_EdgeError::BRepBuilderAPI_LineThroughIdenticPoints).export_values(); │ │ │ │ + py::enum_(m, "BRepBuilderAPI_PipeError",R"#(Errors that can occur at (shell)pipe construction.)#") │ │ │ │ + .value("BRepBuilderAPI_PipeDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeDone) │ │ │ │ + .value("BRepBuilderAPI_PipeNotDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeNotDone) │ │ │ │ + .value("BRepBuilderAPI_PlaneNotIntersectGuide",BRepBuilderAPI_PipeError::BRepBuilderAPI_PlaneNotIntersectGuide) │ │ │ │ + .value("BRepBuilderAPI_ImpossibleContact",BRepBuilderAPI_PipeError::BRepBuilderAPI_ImpossibleContact).export_values(); │ │ │ │ py::enum_(m, "BRepBuilderAPI_ShellError",R"#(Indicates the outcome of the construction of a face, i.e. whether it is successful or not, as explained below: - BRepBuilderAPI_ShellDone No error occurred. The shell is correctly built. - BRepBuilderAPI_EmptyShell No initialization of the algorithm: only an empty constructor was used. - BRepBuilderAPI_DisconnectedShell not yet used - BRepBuilderAPI_ShellParametersOutOfRange The parameters given to limit the surface are out of its bounds.)#") │ │ │ │ .value("BRepBuilderAPI_ShellDone",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellDone) │ │ │ │ .value("BRepBuilderAPI_EmptyShell",BRepBuilderAPI_ShellError::BRepBuilderAPI_EmptyShell) │ │ │ │ .value("BRepBuilderAPI_DisconnectedShell",BRepBuilderAPI_ShellError::BRepBuilderAPI_DisconnectedShell) │ │ │ │ .value("BRepBuilderAPI_ShellParametersOutOfRange",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellParametersOutOfRange).export_values(); │ │ │ │ - py::enum_(m, "BRepBuilderAPI_ShapeModification",R"#(Lists the possible types of modification to a shape following a topological operation: Preserved, Deleted, Trimmed, Merged or BoundaryModified. This enumeration enables you to assign a "state" to the different shapes that are on the list of operands for each API function. The MakeShape class then uses this to determine what has happened to the shapes which constitute the list of operands.)#") │ │ │ │ - .value("BRepBuilderAPI_Preserved",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Preserved) │ │ │ │ - .value("BRepBuilderAPI_Deleted",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Deleted) │ │ │ │ - .value("BRepBuilderAPI_Trimmed",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Trimmed) │ │ │ │ - .value("BRepBuilderAPI_Merged",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Merged) │ │ │ │ - .value("BRepBuilderAPI_BoundaryModified",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_BoundaryModified).export_values(); │ │ │ │ + py::enum_(m, "BRepBuilderAPI_TransitionMode",R"#(Option to manage discontinuities in Sweep)#") │ │ │ │ + .value("BRepBuilderAPI_Transformed",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed) │ │ │ │ + .value("BRepBuilderAPI_RightCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner) │ │ │ │ + .value("BRepBuilderAPI_RoundCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values(); │ │ │ │ py::enum_(m, "BRepBuilderAPI_WireError",R"#(Indicates the outcome of wire construction, i.e. whether it is successful or not, as explained below: - BRepBuilderAPI_WireDone No error occurred. The wire is correctly built. - BRepBuilderAPI_EmptyWire No initialization of the algorithm. Only an empty constructor was used. - BRepBuilderAPI_DisconnectedWire The last edge which you attempted to add was not connected to the wire. - BRepBuilderAPI_NonManifoldWire The wire with some singularity.)#") │ │ │ │ .value("BRepBuilderAPI_WireDone",BRepBuilderAPI_WireError::BRepBuilderAPI_WireDone) │ │ │ │ .value("BRepBuilderAPI_EmptyWire",BRepBuilderAPI_WireError::BRepBuilderAPI_EmptyWire) │ │ │ │ .value("BRepBuilderAPI_DisconnectedWire",BRepBuilderAPI_WireError::BRepBuilderAPI_DisconnectedWire) │ │ │ │ .value("BRepBuilderAPI_NonManifoldWire",BRepBuilderAPI_WireError::BRepBuilderAPI_NonManifoldWire).export_values(); │ │ │ │ - py::enum_(m, "BRepBuilderAPI_PipeError",R"#(Errors that can occur at (shell)pipe construction.)#") │ │ │ │ - .value("BRepBuilderAPI_PipeDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeDone) │ │ │ │ - .value("BRepBuilderAPI_PipeNotDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeNotDone) │ │ │ │ - .value("BRepBuilderAPI_PlaneNotIntersectGuide",BRepBuilderAPI_PipeError::BRepBuilderAPI_PlaneNotIntersectGuide) │ │ │ │ - .value("BRepBuilderAPI_ImpossibleContact",BRepBuilderAPI_PipeError::BRepBuilderAPI_ImpossibleContact).export_values(); │ │ │ │ - py::enum_(m, "BRepBuilderAPI_TransitionMode",R"#(Option to manage discontinuities in Sweep)#") │ │ │ │ - .value("BRepBuilderAPI_Transformed",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed) │ │ │ │ - .value("BRepBuilderAPI_RightCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner) │ │ │ │ - .value("BRepBuilderAPI_RoundCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values(); │ │ │ │ + py::enum_(m, "BRepBuilderAPI_EdgeError",R"#(Indicates the outcome of the construction of an edge, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_EdgeDone No error occurred; The edge is correctly built. - BRepBuilderAPI_PointProjectionFailed No parameters were given but the projection of the 3D points on the curve failed. This happens when the point distance to the curve is greater than the precision value. - BRepBuilderAPI_ParameterOutOfRange The given parameters are not in the parametric range C->FirstParameter(), C->LastParameter() - BRepBuilderAPI_DifferentPointsOnClosedCurve The two vertices or points are the extremities of a closed curve but have different locations. - BRepBuilderAPI_PointWithInfiniteParameter A finite coordinate point was associated with an infinite parameter (see the Precision package for a definition of infinite values). - BRepBuilderAPI_DifferentsPointAndParameter The distance between the 3D point and the point evaluated on the curve with the parameter is greater than the precision. - BRepBuilderAPI_LineThroughIdenticPoints Two identical points were given to define a line (construction of an edge without curve); gp::Resolution is used for the confusion test.)#") │ │ │ │ + .value("BRepBuilderAPI_EdgeDone",BRepBuilderAPI_EdgeError::BRepBuilderAPI_EdgeDone) │ │ │ │ + .value("BRepBuilderAPI_PointProjectionFailed",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointProjectionFailed) │ │ │ │ + .value("BRepBuilderAPI_ParameterOutOfRange",BRepBuilderAPI_EdgeError::BRepBuilderAPI_ParameterOutOfRange) │ │ │ │ + .value("BRepBuilderAPI_DifferentPointsOnClosedCurve",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentPointsOnClosedCurve) │ │ │ │ + .value("BRepBuilderAPI_PointWithInfiniteParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointWithInfiniteParameter) │ │ │ │ + .value("BRepBuilderAPI_DifferentsPointAndParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentsPointAndParameter) │ │ │ │ + .value("BRepBuilderAPI_LineThroughIdenticPoints",BRepBuilderAPI_EdgeError::BRepBuilderAPI_LineThroughIdenticPoints).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"BRepBuilderAPI",R"#(The BRepBuilderAPI package provides an Application Programming Interface for the BRep topology data structure.)#"); │ │ │ │ py::class_ >(m,"BRepBuilderAPI_Collect",R"#()#"); │ │ │ │ py::class_ >(m,"BRepBuilderAPI_Command",R"#(Root class for all commands in BRepBuilderAPI.)#"); │ │ │ ├── ./usr/share/libocp/OCP/BRepFeat_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -105,24 +105,24 @@ │ │ │ │ .value("BRepFeat_NoParts",BRepFeat_StatusError::BRepFeat_NoParts) │ │ │ │ .value("BRepFeat_NoProjPt",BRepFeat_StatusError::BRepFeat_NoProjPt) │ │ │ │ .value("BRepFeat_NotInitialized",BRepFeat_StatusError::BRepFeat_NotInitialized) │ │ │ │ .value("BRepFeat_NotYetImplemented",BRepFeat_StatusError::BRepFeat_NotYetImplemented) │ │ │ │ .value("BRepFeat_NullRealTool",BRepFeat_StatusError::BRepFeat_NullRealTool) │ │ │ │ .value("BRepFeat_NullToolF",BRepFeat_StatusError::BRepFeat_NullToolF) │ │ │ │ .value("BRepFeat_NullToolU",BRepFeat_StatusError::BRepFeat_NullToolU).export_values(); │ │ │ │ - py::enum_(m, "BRepFeat_Status",R"#()#") │ │ │ │ - .value("BRepFeat_NoError",BRepFeat_Status::BRepFeat_NoError) │ │ │ │ - .value("BRepFeat_InvalidPlacement",BRepFeat_Status::BRepFeat_InvalidPlacement) │ │ │ │ - .value("BRepFeat_HoleTooLong",BRepFeat_Status::BRepFeat_HoleTooLong).export_values(); │ │ │ │ py::enum_(m, "BRepFeat_PerfSelection",R"#(To declare the type of selection semantics for local operation Perform methods - NoSelection - SelectionFU - selection of a face up to which a local operation will be performed - SelectionU - selection of a point up to which a local operation will be performed - SelectionSh - selection of a shape on which a local operation will be performed - SelectionShU - selection of a shape up to which a local operation will be performed.)#") │ │ │ │ .value("BRepFeat_NoSelection",BRepFeat_PerfSelection::BRepFeat_NoSelection) │ │ │ │ .value("BRepFeat_SelectionFU",BRepFeat_PerfSelection::BRepFeat_SelectionFU) │ │ │ │ .value("BRepFeat_SelectionU",BRepFeat_PerfSelection::BRepFeat_SelectionU) │ │ │ │ .value("BRepFeat_SelectionSh",BRepFeat_PerfSelection::BRepFeat_SelectionSh) │ │ │ │ .value("BRepFeat_SelectionShU",BRepFeat_PerfSelection::BRepFeat_SelectionShU).export_values(); │ │ │ │ + py::enum_(m, "BRepFeat_Status",R"#()#") │ │ │ │ + .value("BRepFeat_NoError",BRepFeat_Status::BRepFeat_NoError) │ │ │ │ + .value("BRepFeat_InvalidPlacement",BRepFeat_Status::BRepFeat_InvalidPlacement) │ │ │ │ + .value("BRepFeat_HoleTooLong",BRepFeat_Status::BRepFeat_HoleTooLong).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_BRepFeat_Form : public BRepFeat_Form{ │ │ │ │ public: │ │ │ │ using BRepFeat_Form::BRepFeat_Form; │ │ │ ├── ./usr/share/libocp/OCP/BRepFill_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -160,26 +160,26 @@ │ │ │ │ py::module m = main_module.def_submodule("BRepFill", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "BRepFill_TransitionStyle",R"#()#") │ │ │ │ - .value("BRepFill_Modified",BRepFill_TransitionStyle::BRepFill_Modified) │ │ │ │ - .value("BRepFill_Right",BRepFill_TransitionStyle::BRepFill_Right) │ │ │ │ - .value("BRepFill_Round",BRepFill_TransitionStyle::BRepFill_Round).export_values(); │ │ │ │ py::enum_(m, "BRepFill_ThruSectionErrorStatus",R"#(Errors that can occur at thrusection algorithm.)#") │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_Done",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Done) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_NotDone",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotDone) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_NotSameTopology",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotSameTopology) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_ProfilesInconsistent",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_ProfilesInconsistent) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_WrongUsage",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_WrongUsage) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_Null3DCurve",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Null3DCurve) │ │ │ │ .value("BRepFill_ThruSectionErrorStatus_Failed",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Failed).export_values(); │ │ │ │ + py::enum_(m, "BRepFill_TransitionStyle",R"#()#") │ │ │ │ + .value("BRepFill_Modified",BRepFill_TransitionStyle::BRepFill_Modified) │ │ │ │ + .value("BRepFill_Right",BRepFill_TransitionStyle::BRepFill_Right) │ │ │ │ + .value("BRepFill_Round",BRepFill_TransitionStyle::BRepFill_Round).export_values(); │ │ │ │ py::enum_(m, "BRepFill_TypeOfContact",R"#(A pair of bound shapes with the result.)#") │ │ │ │ .value("BRepFill_NoContact",BRepFill_TypeOfContact::BRepFill_NoContact) │ │ │ │ .value("BRepFill_Contact",BRepFill_TypeOfContact::BRepFill_Contact) │ │ │ │ .value("BRepFill_ContactOnBorder",BRepFill_TypeOfContact::BRepFill_ContactOnBorder).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_BRepFill_SectionLaw : public BRepFill_SectionLaw{ │ │ │ ├── ./usr/share/libocp/OCP/BRepLib_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -100,44 +100,44 @@ │ │ │ │ py::module m = main_module.def_submodule("BRepLib", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "BRepLib_ShapeModification",R"#(Modification type after a topologic operation.)#") │ │ │ │ - .value("BRepLib_Preserved",BRepLib_ShapeModification::BRepLib_Preserved) │ │ │ │ - .value("BRepLib_Deleted",BRepLib_ShapeModification::BRepLib_Deleted) │ │ │ │ - .value("BRepLib_Trimmed",BRepLib_ShapeModification::BRepLib_Trimmed) │ │ │ │ - .value("BRepLib_Merged",BRepLib_ShapeModification::BRepLib_Merged) │ │ │ │ - .value("BRepLib_BoundaryModified",BRepLib_ShapeModification::BRepLib_BoundaryModified).export_values(); │ │ │ │ + py::enum_(m, "BRepLib_ShellError",R"#(Errors that can occur at shell construction.)#") │ │ │ │ + .value("BRepLib_ShellDone",BRepLib_ShellError::BRepLib_ShellDone) │ │ │ │ + .value("BRepLib_EmptyShell",BRepLib_ShellError::BRepLib_EmptyShell) │ │ │ │ + .value("BRepLib_DisconnectedShell",BRepLib_ShellError::BRepLib_DisconnectedShell) │ │ │ │ + .value("BRepLib_ShellParametersOutOfRange",BRepLib_ShellError::BRepLib_ShellParametersOutOfRange).export_values(); │ │ │ │ py::enum_(m, "BRepLib_WireError",R"#(Errors that can occur at wire construction. no error)#") │ │ │ │ .value("BRepLib_WireDone",BRepLib_WireError::BRepLib_WireDone) │ │ │ │ .value("BRepLib_EmptyWire",BRepLib_WireError::BRepLib_EmptyWire) │ │ │ │ .value("BRepLib_DisconnectedWire",BRepLib_WireError::BRepLib_DisconnectedWire) │ │ │ │ .value("BRepLib_NonManifoldWire",BRepLib_WireError::BRepLib_NonManifoldWire).export_values(); │ │ │ │ py::enum_(m, "BRepLib_EdgeError",R"#(Errors that can occur at edge construction. no error)#") │ │ │ │ .value("BRepLib_EdgeDone",BRepLib_EdgeError::BRepLib_EdgeDone) │ │ │ │ .value("BRepLib_PointProjectionFailed",BRepLib_EdgeError::BRepLib_PointProjectionFailed) │ │ │ │ .value("BRepLib_ParameterOutOfRange",BRepLib_EdgeError::BRepLib_ParameterOutOfRange) │ │ │ │ .value("BRepLib_DifferentPointsOnClosedCurve",BRepLib_EdgeError::BRepLib_DifferentPointsOnClosedCurve) │ │ │ │ .value("BRepLib_PointWithInfiniteParameter",BRepLib_EdgeError::BRepLib_PointWithInfiniteParameter) │ │ │ │ .value("BRepLib_DifferentsPointAndParameter",BRepLib_EdgeError::BRepLib_DifferentsPointAndParameter) │ │ │ │ .value("BRepLib_LineThroughIdenticPoints",BRepLib_EdgeError::BRepLib_LineThroughIdenticPoints).export_values(); │ │ │ │ - py::enum_(m, "BRepLib_ShellError",R"#(Errors that can occur at shell construction.)#") │ │ │ │ - .value("BRepLib_ShellDone",BRepLib_ShellError::BRepLib_ShellDone) │ │ │ │ - .value("BRepLib_EmptyShell",BRepLib_ShellError::BRepLib_EmptyShell) │ │ │ │ - .value("BRepLib_DisconnectedShell",BRepLib_ShellError::BRepLib_DisconnectedShell) │ │ │ │ - .value("BRepLib_ShellParametersOutOfRange",BRepLib_ShellError::BRepLib_ShellParametersOutOfRange).export_values(); │ │ │ │ py::enum_(m, "BRepLib_FaceError",R"#(Errors that can occur at face construction. no error not initialised)#") │ │ │ │ .value("BRepLib_FaceDone",BRepLib_FaceError::BRepLib_FaceDone) │ │ │ │ .value("BRepLib_NoFace",BRepLib_FaceError::BRepLib_NoFace) │ │ │ │ .value("BRepLib_NotPlanar",BRepLib_FaceError::BRepLib_NotPlanar) │ │ │ │ .value("BRepLib_CurveProjectionFailed",BRepLib_FaceError::BRepLib_CurveProjectionFailed) │ │ │ │ .value("BRepLib_ParametersOutOfRange",BRepLib_FaceError::BRepLib_ParametersOutOfRange).export_values(); │ │ │ │ + py::enum_(m, "BRepLib_ShapeModification",R"#(Modification type after a topologic operation.)#") │ │ │ │ + .value("BRepLib_Preserved",BRepLib_ShapeModification::BRepLib_Preserved) │ │ │ │ + .value("BRepLib_Deleted",BRepLib_ShapeModification::BRepLib_Deleted) │ │ │ │ + .value("BRepLib_Trimmed",BRepLib_ShapeModification::BRepLib_Trimmed) │ │ │ │ + .value("BRepLib_Merged",BRepLib_ShapeModification::BRepLib_Merged) │ │ │ │ + .value("BRepLib_BoundaryModified",BRepLib_ShapeModification::BRepLib_BoundaryModified).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_BRepLib_PointCloudShape : public BRepLib_PointCloudShape{ │ │ │ │ public: │ │ │ │ using BRepLib_PointCloudShape::BRepLib_PointCloudShape; │ │ │ ├── ./usr/share/libocp/OCP/BRepOffset_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -90,42 +90,42 @@ │ │ │ │ py::module m = main_module.def_submodule("BRepOffset", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "BRepOffset_Status",R"#(status of an offset face Good : Reversed : e.g. Offset > Radius of a cylinder Degenerated : e.g. Offset = Radius of a cylinder Unknown : e.g. for a Beziersurf)#") │ │ │ │ + .value("BRepOffset_Good",BRepOffset_Status::BRepOffset_Good) │ │ │ │ + .value("BRepOffset_Reversed",BRepOffset_Status::BRepOffset_Reversed) │ │ │ │ + .value("BRepOffset_Degenerated",BRepOffset_Status::BRepOffset_Degenerated) │ │ │ │ + .value("BRepOffset_Unknown",BRepOffset_Status::BRepOffset_Unknown).export_values(); │ │ │ │ py::enum_(m, "BRepOffset_Mode",R"#(Lists the offset modes. These are the following: - BRepOffset_Skin which describes the offset along the surface of a solid, used to obtain a manifold topological space, - BRepOffset_Pipe which describes the offset of a curve, used to obtain a pre-surface, - BRepOffset_RectoVerso which describes the offset of a given surface shell along both sides of the surface.)#") │ │ │ │ .value("BRepOffset_Skin",BRepOffset_Mode::BRepOffset_Skin) │ │ │ │ .value("BRepOffset_Pipe",BRepOffset_Mode::BRepOffset_Pipe) │ │ │ │ .value("BRepOffset_RectoVerso",BRepOffset_Mode::BRepOffset_RectoVerso).export_values(); │ │ │ │ - py::enum_(m, "BRepOffsetSimple_Status",R"#()#") │ │ │ │ - .value("BRepOffsetSimple_OK",BRepOffsetSimple_Status::BRepOffsetSimple_OK) │ │ │ │ - .value("BRepOffsetSimple_NullInputShape",BRepOffsetSimple_Status::BRepOffsetSimple_NullInputShape) │ │ │ │ - .value("BRepOffsetSimple_ErrorOffsetComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorOffsetComputation) │ │ │ │ - .value("BRepOffsetSimple_ErrorWallFaceComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorWallFaceComputation) │ │ │ │ - .value("BRepOffsetSimple_ErrorInvalidNbShells",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorInvalidNbShells) │ │ │ │ - .value("BRepOffsetSimple_ErrorNonClosedShell",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorNonClosedShell).export_values(); │ │ │ │ py::enum_(m, "BRepOffset_Error",R"#()#") │ │ │ │ .value("BRepOffset_NoError",BRepOffset_Error::BRepOffset_NoError) │ │ │ │ .value("BRepOffset_UnknownError",BRepOffset_Error::BRepOffset_UnknownError) │ │ │ │ .value("BRepOffset_BadNormalsOnGeometry",BRepOffset_Error::BRepOffset_BadNormalsOnGeometry) │ │ │ │ .value("BRepOffset_C0Geometry",BRepOffset_Error::BRepOffset_C0Geometry) │ │ │ │ .value("BRepOffset_NullOffset",BRepOffset_Error::BRepOffset_NullOffset) │ │ │ │ .value("BRepOffset_NotConnectedShell",BRepOffset_Error::BRepOffset_NotConnectedShell) │ │ │ │ .value("BRepOffset_CannotTrimEdges",BRepOffset_Error::BRepOffset_CannotTrimEdges) │ │ │ │ .value("BRepOffset_CannotFuseVertices",BRepOffset_Error::BRepOffset_CannotFuseVertices) │ │ │ │ .value("BRepOffset_CannotExtentEdge",BRepOffset_Error::BRepOffset_CannotExtentEdge) │ │ │ │ .value("BRepOffset_UserBreak",BRepOffset_Error::BRepOffset_UserBreak) │ │ │ │ .value("BRepOffset_MixedConnectivity",BRepOffset_Error::BRepOffset_MixedConnectivity).export_values(); │ │ │ │ - py::enum_(m, "BRepOffset_Status",R"#(status of an offset face Good : Reversed : e.g. Offset > Radius of a cylinder Degenerated : e.g. Offset = Radius of a cylinder Unknown : e.g. for a Beziersurf)#") │ │ │ │ - .value("BRepOffset_Good",BRepOffset_Status::BRepOffset_Good) │ │ │ │ - .value("BRepOffset_Reversed",BRepOffset_Status::BRepOffset_Reversed) │ │ │ │ - .value("BRepOffset_Degenerated",BRepOffset_Status::BRepOffset_Degenerated) │ │ │ │ - .value("BRepOffset_Unknown",BRepOffset_Status::BRepOffset_Unknown).export_values(); │ │ │ │ + py::enum_(m, "BRepOffsetSimple_Status",R"#()#") │ │ │ │ + .value("BRepOffsetSimple_OK",BRepOffsetSimple_Status::BRepOffsetSimple_OK) │ │ │ │ + .value("BRepOffsetSimple_NullInputShape",BRepOffsetSimple_Status::BRepOffsetSimple_NullInputShape) │ │ │ │ + .value("BRepOffsetSimple_ErrorOffsetComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorOffsetComputation) │ │ │ │ + .value("BRepOffsetSimple_ErrorWallFaceComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorWallFaceComputation) │ │ │ │ + .value("BRepOffsetSimple_ErrorInvalidNbShells",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorInvalidNbShells) │ │ │ │ + .value("BRepOffsetSimple_ErrorNonClosedShell",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorNonClosedShell).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"BRepOffset",R"#(Auxiliary tools for offset algorithms)#"); │ │ │ │ py::class_ >(m,"BRepOffset_Analyse",R"#(Analyses the shape to find the parts of edges connecting the convex, concave or tangent faces.)#"); │ │ │ │ py::class_ >(m,"BRepOffset_Inter2d",R"#(Computes the intersections between edges on a face stores result is SD as AsDes from BRepOffset.)#"); │ │ │ ├── ./usr/share/libocp/OCP/BVH_tmpl.hxx │ │ │ │┄ Ordering differences only │ │ │ │ @@ -47,278 +47,14 @@ │ │ │ │ │ │ │ │ // user-defined pre │ │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Clear", │ │ │ │ - (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear, │ │ │ │ - R"#(Removes all geometric objects.)#" ) │ │ │ │ - .def("Objects", │ │ │ │ - (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects, │ │ │ │ - R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ │ - .def("Objects", │ │ │ │ - ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects, │ │ │ │ - R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size, │ │ │ │ - R"#(Return total number of objects.)#" ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box, │ │ │ │ - R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ │ - .def("Center", │ │ │ │ - (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center, │ │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ - .def("Swap", │ │ │ │ - (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap, │ │ │ │ - R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("__len__",[](const BVH_ObjectSet &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements easy to use interfaces for adding the elements into BVH tree and its following construction. To make it more effective it is better to set the number of elements that are going to be added into BVH tree. For better efficiency on heavy data types it is recommended to use either BHV_IndexedBoxSet which uses indirect indexing for accessing the elements and their boxes or set the element to be an index of the real element in the application's internal data structures.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ - .def("SetSize", │ │ │ │ - (void (BVH_BoxSet::*)( const Standard_Size ) ) &BVH_BoxSet::SetSize, │ │ │ │ - R"#(Sets the expected size of BVH tree)#" ,py::arg("theSize")) │ │ │ │ - .def("Add", │ │ │ │ - (void (BVH_BoxSet::*)( const DataType & , const BVH_Box & ) ) &BVH_BoxSet::Add, │ │ │ │ - R"#(Adds the element into BVH)#" ,py::arg("theElement"), py::arg("theBox")) │ │ │ │ - .def("Build", │ │ │ │ - (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Build, │ │ │ │ - R"#(BVH construction)#" ) │ │ │ │ - .def("Clear", │ │ │ │ - (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Clear, │ │ │ │ - R"#(Clears the vectors of elements and boxes)#" ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Box, │ │ │ │ - R"#(Returns the bounding box with the given index.)#" ,py::arg("theIndex")) │ │ │ │ - .def("Center", │ │ │ │ - (Standard_Real (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_BoxSet::Center, │ │ │ │ - R"#(Returns centroid position along specified axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (BVH_BoxSet::*)() const) &BVH_BoxSet::Size, │ │ │ │ - R"#(Returns the number of boxes.)#" ) │ │ │ │ - .def("Swap", │ │ │ │ - (void (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_BoxSet::Swap, │ │ │ │ - R"#(Swaps indices of two specified boxes.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("Element", │ │ │ │ - (DataType (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Element, │ │ │ │ - R"#(Returns the Element with the index theIndex.)#" ,py::arg("theIndex")) │ │ │ │ - .def("__len__",[](const BVH_BoxSet &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Set(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Set of abstract entities (bounded by BVH boxes). This is the minimal geometry interface needed to construct BVH.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Set(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_Set::*)() const) &BVH_Set::Box, │ │ │ │ - R"#(Returns AABB of the entire set of objects.)#" ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (BVH_Set::*)() const) &BVH_Set::Size, │ │ │ │ - R"#(Returns total number of objects.)#" ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_Set::*)( const Standard_Integer ) const) &BVH_Set::Box, │ │ │ │ - R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ │ - .def("Center", │ │ │ │ - (T (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Set::Center, │ │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ - .def("Swap", │ │ │ │ - (void (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Set::Swap, │ │ │ │ - R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("__len__",[](const BVH_Set &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Object(py::object &m, const char *name){ │ │ │ │ - py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R"#(Abstract geometric object bounded by BVH box.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Object(py::object &m, const char *name){ │ │ │ │ - static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box, │ │ │ │ - R"#(Returns AABB of the geometric object.)#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Bin(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Stores parameters of single bin (slice of AABB).)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Bin(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theDoMainSplits")=static_cast< const Standard_Boolean>(Standard_False), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def_static("MainAxis_s", │ │ │ │ - (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis, │ │ │ │ - R"#()#" ,py::arg("theSize")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Tools(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Defines a set of static methods operating with points and bounding boxes.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Tools(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def_static("BoxBoxSquareDistance_s", │ │ │ │ - (T (*)( const BVH_Box & , const BVH_Box & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ │ - R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theBox1"), py::arg("theBox2")) │ │ │ │ - .def_static("BoxBoxSquareDistance_s", │ │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ │ - R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theCMin1"), py::arg("theCMax1"), py::arg("theCMin2"), py::arg("theCMax2")) │ │ │ │ - .def_static("PointBoxSquareDistance_s", │ │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ │ - R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ │ - .def_static("PointBoxSquareDistance_s", │ │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ │ - R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ │ - .def_static("PointBoxProjection_s", │ │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxProjection, │ │ │ │ - R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ │ - .def_static("PointBoxProjection_s", │ │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxProjection, │ │ │ │ - R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ │ - .def_static("PointTriangleProjection_s", │ │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , typename BVH_Tools::BVH_PrjStateInTriangle * , Standard_Integer * , Standard_Integer * ) ) &BVH_Tools::PointTriangleProjection, │ │ │ │ - R"#(Find nearest point on a triangle for the given point)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2"), py::arg("thePrjState")=static_cast::BVH_PrjStateInTriangle *>(nullptr), py::arg("theNumberOfFirstNode")=static_cast(nullptr), py::arg("theNumberOfLastNode")=static_cast(nullptr)) │ │ │ │ - .def_static("PointTriangleSquareDistance_s", │ │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointTriangleSquareDistance, │ │ │ │ - R"#(Computes square distance between point and triangle)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2")) │ │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ │ - (Standard_Boolean (*)( const BVH_Ray & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ │ - (Standard_Boolean (*)( const BVH_Ray & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ │ - (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ │ - (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ - .def("IsDirty", │ │ │ │ - (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty, │ │ │ │ - R"#(Returns TRUE if geometry state should be updated.)#" ) │ │ │ │ - .def("MarkDirty", │ │ │ │ - (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty, │ │ │ │ - R"#(Marks geometry as outdated.)#" ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box, │ │ │ │ - R"#(Returns AABB of the whole geometry.)#" ) │ │ │ │ - .def("BVH", │ │ │ │ - ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH, │ │ │ │ - R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ │ - .def("Builder", │ │ │ │ - ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder, │ │ │ │ - R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ │ - .def("SetBuilder", │ │ │ │ - (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder, │ │ │ │ - R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Tool object to sort abstract primitive set.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Perform", │ │ │ │ - (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform, │ │ │ │ - R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ │ - .def("Perform", │ │ │ │ - (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform, │ │ │ │ - R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ │ - .def("IsParallel", │ │ │ │ - (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel, │ │ │ │ - R"#(Returns parallel flag.)#" ) │ │ │ │ - .def("SetParallel", │ │ │ │ - (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel, │ │ │ │ - R"#(Set parallel flag contolling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ void preregister_template_BVH_Transform(py::object &m, const char *name){ │ │ │ │ py::class_ , opencascade::handle> , BVH_Properties >(m,name,R"#(Stores transform properties of geometric object.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ void register_template_BVH_Transform(py::object &m, const char *name){ │ │ │ │ static_cast , opencascade::handle> , BVH_Properties >>(m.attr(name)) │ │ │ │ @@ -357,254 +93,121 @@ │ │ │ │ │ │ │ │ template │ │ │ │ void register_template_UnitVector(py::object &m, const char *name){ │ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr_nodelete> >(m,name,R"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Builder(py::object &m, const char *name){ │ │ │ │ + py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr_nodelete> >>(m.attr(name)) │ │ │ │ - .def("IsMetricBetter", │ │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter, │ │ │ │ - R"#(Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise.)#" ,py::arg("arg"), py::arg("arg")) │ │ │ │ - .def("RejectMetric", │ │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric, │ │ │ │ - R"#(Rejects the node by the metric)#" ,py::arg("arg")) │ │ │ │ - .def("Stop", │ │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop, │ │ │ │ - R"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#" ) │ │ │ │ +template │ │ │ │ +void register_template_BVH_Builder(py::object &m, const char *name){ │ │ │ │ + static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name)) │ │ │ │ + .def("Build", │ │ │ │ + (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build, │ │ │ │ + R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the traverse of the single binary tree. Selection of the data from the tree is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract BVH builder based on the concept of work queue. Queue based BVH builders support parallelization with a fixed number of threads (maximum efficiency is achieved by setting the number of threads equal to the number of CPU cores plus one). Note that to support parallel mode, a corresponding BVH primitive set should provide thread safe implementations of interface functions (e.g., Swap, Box, Center). Otherwise, the results will be undefined.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("SetBVHSet", │ │ │ │ - (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet, │ │ │ │ - R"#(Sets the BVH Set containing the BVH tree)#" ,py::arg("theBVHSet")) │ │ │ │ - .def("AcceptMetric", │ │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric, │ │ │ │ - R"#(Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise.)#" ,py::arg("arg")) │ │ │ │ - .def("RejectNode", │ │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode, │ │ │ │ - R"#(Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise.)#" ,py::arg("theCornerMin"), py::arg("theCornerMax"), py::arg("theMetric")) │ │ │ │ - .def("Accept", │ │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept, │ │ │ │ - R"#(Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise.)#" ,py::arg("theIndex"), py::arg("theMetric")) │ │ │ │ - .def("Select", │ │ │ │ - (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select, │ │ │ │ - R"#(Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements.)#" ) │ │ │ │ - .def("Select", │ │ │ │ - (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select, │ │ │ │ - R"#(Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.)#" ,py::arg("theBVH")) │ │ │ │ +template │ │ │ │ +void register_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ + .def("Build", │ │ │ │ + (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build, │ │ │ │ + R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort -- O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 3M triangles per second).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("SetBVHSets", │ │ │ │ - (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets, │ │ │ │ - R"#(Sets the BVH Sets containing the BVH trees)#" ,py::arg("theBVHSet1"), py::arg("theBVHSet2")) │ │ │ │ - .def("RejectNode", │ │ │ │ - (Standard_Boolean (BVH_PairTraverse::*)( const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , MetricType & ) const) &BVH_PairTraverse::RejectNode, │ │ │ │ - R"#(Rejection of the pair of nodes by bounding boxes. Metric is computed to choose the best branch. Returns true if the pair of nodes should be rejected, false otherwise.)#" ,py::arg("theCornerMin1"), py::arg("theCornerMax1"), py::arg("theCornerMin2"), py::arg("theCornerMax2"), py::arg("theMetric")) │ │ │ │ - .def("Accept", │ │ │ │ - (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept, │ │ │ │ - R"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("Select", │ │ │ │ - (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select, │ │ │ │ - R"#(Selection of the pairs of elements of two BVH trees by the rules defined in Accept/Reject methods. The method requires the BVHSets containing BVH trees to be set. Returns the number of accepted pairs of elements.)#" ) │ │ │ │ - .def("Select", │ │ │ │ - (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select, │ │ │ │ - R"#(Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements.)#" ,py::arg("theBVH1"), py::arg("theBVH2")) │ │ │ │ +template │ │ │ │ +void register_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth) ) │ │ │ │ + .def("Build", │ │ │ │ + (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build, │ │ │ │ + R"#(Builds BVH.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the nodes to process)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_BoundData(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const MetricType & >() ,py::arg("theNodeID")=static_cast< const Standard_Integer>(0), py::arg("theMetric")=static_cast< const MetricType &>(MetricType ( )) ) │ │ │ │ +template │ │ │ │ +void register_template_BoundData(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the pair of nodes to process)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Task for parallel bounds updating.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const MetricType & >() ,py::arg("theNodeID1")=static_cast< const Standard_Integer>(0), py::arg("theNodeID2")=static_cast< const Standard_Integer>(0), py::arg("theMetric")=static_cast< const MetricType &>(MetricType ( )) ) │ │ │ │ +template │ │ │ │ +void register_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Boolean >() ,py::arg("isParallel") ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Set of abstract geometric primitives organized with bounding volume hierarchy (BVH). Unlike an object set, this collection is designed for storing structural elements of a single object (such as triangles in the object triangulation). Because there may be a large number of such elements, the implementations of this interface should be sufficiently optimized.)#"); │ │ │ │ +void preregister_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +void register_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ + .def("IsDirty", │ │ │ │ + (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty, │ │ │ │ + R"#(Returns TRUE if geometry state should be updated.)#" ) │ │ │ │ + .def("MarkDirty", │ │ │ │ + (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty, │ │ │ │ + R"#(Marks geometry as outdated.)#" ) │ │ │ │ .def("Box", │ │ │ │ - (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box, │ │ │ │ - R"#(Returns AABB of primitive set.)#" ) │ │ │ │ + (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box, │ │ │ │ + R"#(Returns AABB of the whole geometry.)#" ) │ │ │ │ .def("BVH", │ │ │ │ - ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH, │ │ │ │ + ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH, │ │ │ │ R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ │ .def("Builder", │ │ │ │ - ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder, │ │ │ │ + ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder, │ │ │ │ R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ │ .def("SetBuilder", │ │ │ │ - (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder, │ │ │ │ + (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder, │ │ │ │ R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Triangulation as an example of BVH primitive set.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size, │ │ │ │ - R"#(Returns total number of triangles.)#" ) │ │ │ │ - .def("Box", │ │ │ │ - (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box, │ │ │ │ - R"#(Returns AABB of the given triangle.)#" ,py::arg("theIndex")) │ │ │ │ - .def("Center", │ │ │ │ - (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center, │ │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ - .def("Swap", │ │ │ │ - (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap, │ │ │ │ - R"#(Performs transposing the two given triangles in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("__len__",[](const BVH_Triangulation &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_TreeBase(py::object &m, const char *name){ │ │ │ │ - py::class_ , opencascade::handle> , BVH_TreeBaseTransient >(m,name,R"#(Stores parameters of bounding volume hierarchy (BVH). Bounding volume hierarchy (BVH) organizes geometric objects in the tree based on spatial relationships. Each node in the tree contains an axis-aligned bounding box of all the objects below it. Bounding volume hierarchies are used in many algorithms to support efficient operations on the sets of geometric objects, such as collision detection, ray-tracing, searching of nearest objects, and view frustum culling.)#"); │ │ │ │ +void preregister_template_BVH_Ray(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Describes a ray based on BVH vectors.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_TreeBase(py::object &m, const char *name){ │ │ │ │ - static_cast , opencascade::handle> , BVH_TreeBaseTransient >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Depth", │ │ │ │ - (int (BVH_TreeBase::*)() const) &BVH_TreeBase::Depth, │ │ │ │ - R"#(Returns depth (height) of BVH tree.)#" ) │ │ │ │ - .def("Length", │ │ │ │ - (int (BVH_TreeBase::*)() const) &BVH_TreeBase::Length, │ │ │ │ - R"#(Returns total number of BVH tree nodes.)#" ) │ │ │ │ - .def("MinPoint", │ │ │ │ - (typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::MinPoint, │ │ │ │ - R"#(Returns minimum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("MaxPoint", │ │ │ │ - (typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::MaxPoint, │ │ │ │ - R"#(Returns maximum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("MinPoint", │ │ │ │ - ( const typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::MinPoint, │ │ │ │ - R"#(Returns minimum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("MaxPoint", │ │ │ │ - ( const typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::MaxPoint, │ │ │ │ - R"#(Returns maximum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("BegPrimitive", │ │ │ │ - (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::BegPrimitive, │ │ │ │ - R"#(Returns index of first primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("EndPrimitive", │ │ │ │ - (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::EndPrimitive, │ │ │ │ - R"#(Returns index of last primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("BegPrimitive", │ │ │ │ - (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::BegPrimitive, │ │ │ │ - R"#(Returns index of first primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("EndPrimitive", │ │ │ │ - (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::EndPrimitive, │ │ │ │ - R"#(Returns index of last primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("NbPrimitives", │ │ │ │ - (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::NbPrimitives, │ │ │ │ - R"#(Returns number of primitives in the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("Level", │ │ │ │ - (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::Level, │ │ │ │ - R"#(Returns level (depth) of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("Level", │ │ │ │ - (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::Level, │ │ │ │ - R"#(Returns level (depth) of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("IsOuter", │ │ │ │ - (bool (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::IsOuter, │ │ │ │ - R"#(Checks whether the given node is outer.)#" ,py::arg("theNodeIndex")) │ │ │ │ - .def("NodeInfoBuffer", │ │ │ │ - (BVH_Array4i & (BVH_TreeBase::*)() ) &BVH_TreeBase::NodeInfoBuffer, │ │ │ │ - R"#(Returns array of node data records.)#" ) │ │ │ │ - .def("NodeInfoBuffer", │ │ │ │ - ( const BVH_Array4i & (BVH_TreeBase::*)() const) &BVH_TreeBase::NodeInfoBuffer, │ │ │ │ - R"#(Returns array of node data records.)#" ) │ │ │ │ - .def("MinPointBuffer", │ │ │ │ - (typename BVH::ArrayType::Type & (BVH_TreeBase::*)() ) &BVH_TreeBase::MinPointBuffer, │ │ │ │ - R"#(Returns array of node minimum points.)#" ) │ │ │ │ - .def("MaxPointBuffer", │ │ │ │ - (typename BVH::ArrayType::Type & (BVH_TreeBase::*)() ) &BVH_TreeBase::MaxPointBuffer, │ │ │ │ - R"#(Returns array of node maximum points.)#" ) │ │ │ │ - .def("MinPointBuffer", │ │ │ │ - ( const typename BVH::ArrayType::Type & (BVH_TreeBase::*)() const) &BVH_TreeBase::MinPointBuffer, │ │ │ │ - R"#(Returns array of node minimum points.)#" ) │ │ │ │ - .def("MaxPointBuffer", │ │ │ │ - ( const typename BVH::ArrayType::Type & (BVH_TreeBase::*)() const) &BVH_TreeBase::MaxPointBuffer, │ │ │ │ - R"#(Returns array of node maximum points.)#" ) │ │ │ │ - .def("DumpJson", │ │ │ │ - (void (BVH_TreeBase::*)( Standard_OStream & , Standard_Integer ) const) &BVH_TreeBase::DumpJson, │ │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ - .def("DumpNode", │ │ │ │ - (void (BVH_TreeBase::*)( const int , Standard_OStream & , Standard_Integer ) const) &BVH_TreeBase::DumpNode, │ │ │ │ - R"#(Dumps the content of node into the stream)#" ,py::arg("theNodeIndex"), py::arg("theOStream"), py::arg("theDepth")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Tree(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(BVH tree with given arity (2 or 4).)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Tree(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +void register_template_BVH_Ray(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const int &, const int & >() ,py::arg("theOrigin"), py::arg("theDirect") ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Tool object for parallel construction of distance field (uses Intel TBB).)#"); │ │ │ │ } │ │ │ │ @@ -711,70 +314,66 @@ │ │ │ │ .def(py::init< >() ) │ │ │ │ .def("Accept", │ │ │ │ (Standard_Boolean (PointGeometrySquareDistance::*)( const Standard_Integer , const T & ) ) &PointGeometrySquareDistance::Accept, │ │ │ │ R"#()#" ,py::arg("theIndex"), py::arg("arg")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Distance(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract class for computation of the min distance between some Object and elements of BVH tree. To use this class it is required to define two methods: - *RejectNode* to compute distance from the object to bounding box - *Accept* to compute distance from the object to the element of tree)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements easy to use interfaces for adding the elements into BVH tree and its following construction. To make it more effective it is better to set the number of elements that are going to be added into BVH tree. For better efficiency on heavy data types it is recommended to use either BHV_IndexedBoxSet which uses indirect indexing for accessing the elements and their boxes or set the element to be an index of the real element in the application's internal data structures.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_BVH_Distance(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +template │ │ │ │ +void register_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def("SetObject", │ │ │ │ - (void (BVH_Distance::*)( const ObjectType & ) ) &BVH_Distance::SetObject, │ │ │ │ - R"#(Sets the object to which the distance is required)#" ,py::arg("theObject")) │ │ │ │ - .def("ComputeDistance", │ │ │ │ - (NumType (BVH_Distance::*)() ) &BVH_Distance::ComputeDistance, │ │ │ │ - R"#(Computes the distance between object and BVH tree)#" ) │ │ │ │ - .def("IsDone", │ │ │ │ - (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::IsDone, │ │ │ │ - R"#(Returns IsDone flag)#" ) │ │ │ │ - .def("Distance", │ │ │ │ - (NumType (BVH_Distance::*)() const) &BVH_Distance::Distance, │ │ │ │ - R"#(Returns the computed distance)#" ) │ │ │ │ - .def("IsMetricBetter", │ │ │ │ - (Standard_Boolean (BVH_Distance::*)( const NumType & , const NumType & ) const) &BVH_Distance::IsMetricBetter, │ │ │ │ - R"#(Compares the two metrics and chooses the best one)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ - .def("RejectMetric", │ │ │ │ - (Standard_Boolean (BVH_Distance::*)( const NumType & ) const) &BVH_Distance::RejectMetric, │ │ │ │ - R"#(Rejects the branch by the metric)#" ,py::arg("theMetric")) │ │ │ │ - .def("Stop", │ │ │ │ - (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::Stop, │ │ │ │ - R"#(Returns the flag controlling the tree descend)#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_Builder(py::object &m, const char *name){ │ │ │ │ - py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_Builder(py::object &m, const char *name){ │ │ │ │ - static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name)) │ │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ + .def("SetSize", │ │ │ │ + (void (BVH_BoxSet::*)( const Standard_Size ) ) &BVH_BoxSet::SetSize, │ │ │ │ + R"#(Sets the expected size of BVH tree)#" ,py::arg("theSize")) │ │ │ │ + .def("Add", │ │ │ │ + (void (BVH_BoxSet::*)( const DataType & , const BVH_Box & ) ) &BVH_BoxSet::Add, │ │ │ │ + R"#(Adds the element into BVH)#" ,py::arg("theElement"), py::arg("theBox")) │ │ │ │ .def("Build", │ │ │ │ - (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build, │ │ │ │ - R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ + (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Build, │ │ │ │ + R"#(BVH construction)#" ) │ │ │ │ + .def("Clear", │ │ │ │ + (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Clear, │ │ │ │ + R"#(Clears the vectors of elements and boxes)#" ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Box, │ │ │ │ + R"#(Returns the bounding box with the given index.)#" ,py::arg("theIndex")) │ │ │ │ + .def("Center", │ │ │ │ + (Standard_Real (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_BoxSet::Center, │ │ │ │ + R"#(Returns centroid position along specified axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (BVH_BoxSet::*)() const) &BVH_BoxSet::Size, │ │ │ │ + R"#(Returns the number of boxes.)#" ) │ │ │ │ + .def("Swap", │ │ │ │ + (void (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_BoxSet::Swap, │ │ │ │ + R"#(Swaps indices of two specified boxes.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("Element", │ │ │ │ + (DataType (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Element, │ │ │ │ + R"#(Returns the Element with the index theIndex.)#" ,py::arg("theIndex")) │ │ │ │ + .def("__len__",[](const BVH_BoxSet &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_Ray(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Describes a ray based on BVH vectors.)#"); │ │ │ │ +void preregister_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using spatial median split algorithm.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_Ray(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const int &, const int & >() ,py::arg("theOrigin"), py::arg("theDirect") ) │ │ │ │ +void register_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theToUseMainAxis")=static_cast< const Standard_Boolean>(Standard_False) ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_BVH_BaseBox(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Base class for BVH_Box (CRTP idiom is used).)#"); │ │ │ │ } │ │ │ │ @@ -895,37 +494,35 @@ │ │ │ │ .def_static("CwiseMax_s", │ │ │ │ (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMax, │ │ │ │ R"#()#" ,py::arg("theVec1"), py::arg("theVec2")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract BVH builder based on the concept of work queue. Queue based BVH builders support parallelization with a fixed number of threads (maximum efficiency is achieved by setting the number of threads equal to the number of CPU cores plus one). Note that to support parallel mode, a corresponding BVH primitive set should provide thread safe implementations of interface functions (e.g., Swap, Box, Center). Otherwise, the results will be undefined.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ - .def("Build", │ │ │ │ - (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build, │ │ │ │ - R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using sweep plane SAH algorithm.)#"); │ │ │ │ +void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Set of abstract geometric primitives organized with bounding volume hierarchy (BVH). Unlike an object set, this collection is designed for storing structural elements of a single object (such as triangles in the object triangulation). Because there may be a large number of such elements, the implementations of this interface should be sufficiently optimized.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ +void register_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box, │ │ │ │ + R"#(Returns AABB of primitive set.)#" ) │ │ │ │ + .def("BVH", │ │ │ │ + ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH, │ │ │ │ + R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ │ + .def("Builder", │ │ │ │ + ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder, │ │ │ │ + R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ │ + .def("SetBuilder", │ │ │ │ + (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder, │ │ │ │ + R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_BVH_PairDistance(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Abstract class for computation of the min distance between elements of two BVH trees. To use this class it is required to define only the method *Accept* to compute the distance between elements of the trees.)#"); │ │ │ │ } │ │ │ │ @@ -955,77 +552,480 @@ │ │ │ │ .def("Stop", │ │ │ │ (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::Stop, │ │ │ │ R"#(Returns the flag controlling the tree descend)#" ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs centroid-based sorting of abstract set along the given axis (X - 0, Y - 1, Z - 2) using quick sort.)#"); │ │ │ │ +void preregister_template_BVH_Set(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Set of abstract entities (bounded by BVH boxes). This is the minimal geometry interface needed to construct BVH.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer >() ,py::arg("theAxis")=static_cast< const Standard_Integer>(0) ) │ │ │ │ +void register_template_BVH_Set(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_Set::*)() const) &BVH_Set::Box, │ │ │ │ + R"#(Returns AABB of the entire set of objects.)#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (BVH_Set::*)() const) &BVH_Set::Size, │ │ │ │ + R"#(Returns total number of objects.)#" ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_Set::*)( const Standard_Integer ) const) &BVH_Set::Box, │ │ │ │ + R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ │ + .def("Center", │ │ │ │ + (T (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Set::Center, │ │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ + .def("Swap", │ │ │ │ + (void (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Set::Swap, │ │ │ │ + R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("__len__",[](const BVH_Set &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_TreeBase(py::object &m, const char *name){ │ │ │ │ + py::class_ , opencascade::handle> , BVH_TreeBaseTransient >(m,name,R"#(Stores parameters of bounding volume hierarchy (BVH). Bounding volume hierarchy (BVH) organizes geometric objects in the tree based on spatial relationships. Each node in the tree contains an axis-aligned bounding box of all the objects below it. Bounding volume hierarchies are used in many algorithms to support efficient operations on the sets of geometric objects, such as collision detection, ray-tracing, searching of nearest objects, and view frustum culling.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_TreeBase(py::object &m, const char *name){ │ │ │ │ + static_cast , opencascade::handle> , BVH_TreeBaseTransient >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Depth", │ │ │ │ + (int (BVH_TreeBase::*)() const) &BVH_TreeBase::Depth, │ │ │ │ + R"#(Returns depth (height) of BVH tree.)#" ) │ │ │ │ + .def("Length", │ │ │ │ + (int (BVH_TreeBase::*)() const) &BVH_TreeBase::Length, │ │ │ │ + R"#(Returns total number of BVH tree nodes.)#" ) │ │ │ │ + .def("MinPoint", │ │ │ │ + (typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::MinPoint, │ │ │ │ + R"#(Returns minimum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("MaxPoint", │ │ │ │ + (typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::MaxPoint, │ │ │ │ + R"#(Returns maximum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("MinPoint", │ │ │ │ + ( const typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::MinPoint, │ │ │ │ + R"#(Returns minimum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("MaxPoint", │ │ │ │ + ( const typename BVH_TreeBase::BVH_VecNt & (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::MaxPoint, │ │ │ │ + R"#(Returns maximum point of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("BegPrimitive", │ │ │ │ + (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::BegPrimitive, │ │ │ │ + R"#(Returns index of first primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("EndPrimitive", │ │ │ │ + (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::EndPrimitive, │ │ │ │ + R"#(Returns index of last primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("BegPrimitive", │ │ │ │ + (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::BegPrimitive, │ │ │ │ + R"#(Returns index of first primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("EndPrimitive", │ │ │ │ + (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::EndPrimitive, │ │ │ │ + R"#(Returns index of last primitive of the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("NbPrimitives", │ │ │ │ + (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::NbPrimitives, │ │ │ │ + R"#(Returns number of primitives in the given leaf node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("Level", │ │ │ │ + (int & (BVH_TreeBase::*)( const int ) ) &BVH_TreeBase::Level, │ │ │ │ + R"#(Returns level (depth) of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("Level", │ │ │ │ + (int (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::Level, │ │ │ │ + R"#(Returns level (depth) of the given node.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("IsOuter", │ │ │ │ + (bool (BVH_TreeBase::*)( const int ) const) &BVH_TreeBase::IsOuter, │ │ │ │ + R"#(Checks whether the given node is outer.)#" ,py::arg("theNodeIndex")) │ │ │ │ + .def("NodeInfoBuffer", │ │ │ │ + (BVH_Array4i & (BVH_TreeBase::*)() ) &BVH_TreeBase::NodeInfoBuffer, │ │ │ │ + R"#(Returns array of node data records.)#" ) │ │ │ │ + .def("NodeInfoBuffer", │ │ │ │ + ( const BVH_Array4i & (BVH_TreeBase::*)() const) &BVH_TreeBase::NodeInfoBuffer, │ │ │ │ + R"#(Returns array of node data records.)#" ) │ │ │ │ + .def("MinPointBuffer", │ │ │ │ + (typename BVH::ArrayType::Type & (BVH_TreeBase::*)() ) &BVH_TreeBase::MinPointBuffer, │ │ │ │ + R"#(Returns array of node minimum points.)#" ) │ │ │ │ + .def("MaxPointBuffer", │ │ │ │ + (typename BVH::ArrayType::Type & (BVH_TreeBase::*)() ) &BVH_TreeBase::MaxPointBuffer, │ │ │ │ + R"#(Returns array of node maximum points.)#" ) │ │ │ │ + .def("MinPointBuffer", │ │ │ │ + ( const typename BVH::ArrayType::Type & (BVH_TreeBase::*)() const) &BVH_TreeBase::MinPointBuffer, │ │ │ │ + R"#(Returns array of node minimum points.)#" ) │ │ │ │ + .def("MaxPointBuffer", │ │ │ │ + ( const typename BVH::ArrayType::Type & (BVH_TreeBase::*)() const) &BVH_TreeBase::MaxPointBuffer, │ │ │ │ + R"#(Returns array of node maximum points.)#" ) │ │ │ │ + .def("DumpJson", │ │ │ │ + (void (BVH_TreeBase::*)( Standard_OStream & , Standard_Integer ) const) &BVH_TreeBase::DumpJson, │ │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ + .def("DumpNode", │ │ │ │ + (void (BVH_TreeBase::*)( const int , Standard_OStream & , Standard_Integer ) const) &BVH_TreeBase::DumpNode, │ │ │ │ + R"#(Dumps the content of node into the stream)#" ,py::arg("theNodeIndex"), py::arg("theOStream"), py::arg("theDepth")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Tree(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(BVH tree with given arity (2 or 4).)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Tree(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Distance(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract class for computation of the min distance between some Object and elements of BVH tree. To use this class it is required to define two methods: - *RejectNode* to compute distance from the object to bounding box - *Accept* to compute distance from the object to the element of tree)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Distance(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("SetObject", │ │ │ │ + (void (BVH_Distance::*)( const ObjectType & ) ) &BVH_Distance::SetObject, │ │ │ │ + R"#(Sets the object to which the distance is required)#" ,py::arg("theObject")) │ │ │ │ + .def("ComputeDistance", │ │ │ │ + (NumType (BVH_Distance::*)() ) &BVH_Distance::ComputeDistance, │ │ │ │ + R"#(Computes the distance between object and BVH tree)#" ) │ │ │ │ + .def("IsDone", │ │ │ │ + (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::IsDone, │ │ │ │ + R"#(Returns IsDone flag)#" ) │ │ │ │ + .def("Distance", │ │ │ │ + (NumType (BVH_Distance::*)() const) &BVH_Distance::Distance, │ │ │ │ + R"#(Returns the computed distance)#" ) │ │ │ │ + .def("IsMetricBetter", │ │ │ │ + (Standard_Boolean (BVH_Distance::*)( const NumType & , const NumType & ) const) &BVH_Distance::IsMetricBetter, │ │ │ │ + R"#(Compares the two metrics and chooses the best one)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ + .def("RejectMetric", │ │ │ │ + (Standard_Boolean (BVH_Distance::*)( const NumType & ) const) &BVH_Distance::RejectMetric, │ │ │ │ + R"#(Rejects the branch by the metric)#" ,py::arg("theMetric")) │ │ │ │ + .def("Stop", │ │ │ │ + (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::Stop, │ │ │ │ + R"#(Returns the flag controlling the tree descend)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Tools(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Defines a set of static methods operating with points and bounding boxes.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Tools(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def_static("BoxBoxSquareDistance_s", │ │ │ │ + (T (*)( const BVH_Box & , const BVH_Box & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ │ + R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theBox1"), py::arg("theBox2")) │ │ │ │ + .def_static("BoxBoxSquareDistance_s", │ │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ │ + R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theCMin1"), py::arg("theCMax1"), py::arg("theCMin2"), py::arg("theCMax2")) │ │ │ │ + .def_static("PointBoxSquareDistance_s", │ │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ │ + R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ │ + .def_static("PointBoxSquareDistance_s", │ │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ │ + R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ │ + .def_static("PointBoxProjection_s", │ │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxProjection, │ │ │ │ + R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ │ + .def_static("PointBoxProjection_s", │ │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxProjection, │ │ │ │ + R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ │ + .def_static("PointTriangleProjection_s", │ │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , typename BVH_Tools::BVH_PrjStateInTriangle * , Standard_Integer * , Standard_Integer * ) ) &BVH_Tools::PointTriangleProjection, │ │ │ │ + R"#(Find nearest point on a triangle for the given point)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2"), py::arg("thePrjState")=static_cast::BVH_PrjStateInTriangle *>(nullptr), py::arg("theNumberOfFirstNode")=static_cast(nullptr), py::arg("theNumberOfLastNode")=static_cast(nullptr)) │ │ │ │ + .def_static("PointTriangleSquareDistance_s", │ │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointTriangleSquareDistance, │ │ │ │ + R"#(Computes square distance between point and triangle)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2")) │ │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ │ + (Standard_Boolean (*)( const BVH_Ray & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ │ + (Standard_Boolean (*)( const BVH_Ray & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ │ + (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ │ + (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Tool object to sort abstract primitive set.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ .def("Perform", │ │ │ │ - (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform, │ │ │ │ + (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform, │ │ │ │ R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ │ .def("Perform", │ │ │ │ - (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform, │ │ │ │ + (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform, │ │ │ │ R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ │ + .def("IsParallel", │ │ │ │ + (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel, │ │ │ │ + R"#(Returns parallel flag.)#" ) │ │ │ │ + .def("SetParallel", │ │ │ │ + (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel, │ │ │ │ + R"#(Set parallel flag contolling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort -- O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 3M triangles per second).)#"); │ │ │ │ +void preregister_template_BVH_Bin(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Stores parameters of single bin (slice of AABB).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth) ) │ │ │ │ - .def("Build", │ │ │ │ - (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build, │ │ │ │ - R"#(Builds BVH.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ │ +void register_template_BVH_Bin(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theDoMainSplits")=static_cast< const Standard_Boolean>(Standard_False), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BoundData(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ │ +void preregister_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BoundData(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +void register_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def_static("MainAxis_s", │ │ │ │ + (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis, │ │ │ │ + R"#()#" ,py::arg("theSize")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr_nodelete> >(m,name,R"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr_nodelete> >>(m.attr(name)) │ │ │ │ + .def("IsMetricBetter", │ │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter, │ │ │ │ + R"#(Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise.)#" ,py::arg("arg"), py::arg("arg")) │ │ │ │ + .def("RejectMetric", │ │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric, │ │ │ │ + R"#(Rejects the node by the metric)#" ,py::arg("arg")) │ │ │ │ + .def("Stop", │ │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop, │ │ │ │ + R"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the traverse of the single binary tree. Selection of the data from the tree is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("SetBVHSet", │ │ │ │ + (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet, │ │ │ │ + R"#(Sets the BVH Set containing the BVH tree)#" ,py::arg("theBVHSet")) │ │ │ │ + .def("AcceptMetric", │ │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric, │ │ │ │ + R"#(Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise.)#" ,py::arg("arg")) │ │ │ │ + .def("RejectNode", │ │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode, │ │ │ │ + R"#(Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise.)#" ,py::arg("theCornerMin"), py::arg("theCornerMax"), py::arg("theMetric")) │ │ │ │ + .def("Accept", │ │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept, │ │ │ │ + R"#(Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise.)#" ,py::arg("theIndex"), py::arg("theMetric")) │ │ │ │ + .def("Select", │ │ │ │ + (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select, │ │ │ │ + R"#(Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements.)#" ) │ │ │ │ + .def("Select", │ │ │ │ + (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select, │ │ │ │ + R"#(Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.)#" ,py::arg("theBVH")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("SetBVHSets", │ │ │ │ + (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets, │ │ │ │ + R"#(Sets the BVH Sets containing the BVH trees)#" ,py::arg("theBVHSet1"), py::arg("theBVHSet2")) │ │ │ │ + .def("RejectNode", │ │ │ │ + (Standard_Boolean (BVH_PairTraverse::*)( const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , MetricType & ) const) &BVH_PairTraverse::RejectNode, │ │ │ │ + R"#(Rejection of the pair of nodes by bounding boxes. Metric is computed to choose the best branch. Returns true if the pair of nodes should be rejected, false otherwise.)#" ,py::arg("theCornerMin1"), py::arg("theCornerMax1"), py::arg("theCornerMin2"), py::arg("theCornerMax2"), py::arg("theMetric")) │ │ │ │ + .def("Accept", │ │ │ │ + (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept, │ │ │ │ + R"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("Select", │ │ │ │ + (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select, │ │ │ │ + R"#(Selection of the pairs of elements of two BVH trees by the rules defined in Accept/Reject methods. The method requires the BVHSets containing BVH trees to be set. Returns the number of accepted pairs of elements.)#" ) │ │ │ │ + .def("Select", │ │ │ │ + (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select, │ │ │ │ + R"#(Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements.)#" ,py::arg("theBVH1"), py::arg("theBVH2")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the nodes to process)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const MetricType & >() ,py::arg("theNodeID")=static_cast< const Standard_Integer>(0), py::arg("theMetric")=static_cast< const MetricType &>(MetricType ( )) ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the pair of nodes to process)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const MetricType & >() ,py::arg("theNodeID1")=static_cast< const Standard_Integer>(0), py::arg("theNodeID2")=static_cast< const Standard_Integer>(0), py::arg("theMetric")=static_cast< const MetricType &>(MetricType ( )) ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Task for parallel bounds updating.)#"); │ │ │ │ +void preregister_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Boolean >() ,py::arg("isParallel") ) │ │ │ │ +void register_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Clear", │ │ │ │ + (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear, │ │ │ │ + R"#(Removes all geometric objects.)#" ) │ │ │ │ + .def("Objects", │ │ │ │ + (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects, │ │ │ │ + R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ │ + .def("Objects", │ │ │ │ + ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects, │ │ │ │ + R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size, │ │ │ │ + R"#(Return total number of objects.)#" ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box, │ │ │ │ + R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ │ + .def("Center", │ │ │ │ + (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center, │ │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ + .def("Swap", │ │ │ │ + (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap, │ │ │ │ + R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("__len__",[](const BVH_ObjectSet &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using spatial median split algorithm.)#"); │ │ │ │ +void preregister_template_BVH_Object(py::object &m, const char *name){ │ │ │ │ + py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R"#(Abstract geometric object bounded by BVH box.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theToUseMainAxis")=static_cast< const Standard_Boolean>(Standard_False) ) │ │ │ │ +void register_template_BVH_Object(py::object &m, const char *name){ │ │ │ │ + static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box, │ │ │ │ + R"#(Returns AABB of the geometric object.)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using sweep plane SAH algorithm.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize")=static_cast< const Standard_Integer>(BVH_Constants_LeafNodeSizeDefault), py::arg("theMaxTreeDepth")=static_cast< const Standard_Integer>(BVH_Constants_MaxTreeDepth), py::arg("theNumOfThreads")=static_cast< const Standard_Integer>(1) ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Triangulation as an example of BVH primitive set.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size, │ │ │ │ + R"#(Returns total number of triangles.)#" ) │ │ │ │ + .def("Box", │ │ │ │ + (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box, │ │ │ │ + R"#(Returns AABB of the given triangle.)#" ,py::arg("theIndex")) │ │ │ │ + .def("Center", │ │ │ │ + (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center, │ │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ │ + .def("Swap", │ │ │ │ + (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap, │ │ │ │ + R"#(Performs transposing the two given triangles in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("__len__",[](const BVH_Triangulation &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs centroid-based sorting of abstract set along the given axis (X - 0, Y - 1, Z - 2) using quick sort.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer >() ,py::arg("theAxis")=static_cast< const Standard_Integer>(0) ) │ │ │ │ + .def("Perform", │ │ │ │ + (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform, │ │ │ │ + R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ │ + .def("Perform", │ │ │ │ + (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform, │ │ │ │ + R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ │ │ │ │ // user-defined post │ │ │ ├── ./usr/share/libocp/OCP/CDF_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -62,32 +62,32 @@ │ │ │ │ py::module m = main_module.def_submodule("CDF", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "CDF_TryStoreStatus",R"#()#") │ │ │ │ - .value("CDF_TS_OK",CDF_TryStoreStatus::CDF_TS_OK) │ │ │ │ - .value("CDF_TS_NoCurrentDocument",CDF_TryStoreStatus::CDF_TS_NoCurrentDocument) │ │ │ │ - .value("CDF_TS_NoDriver",CDF_TryStoreStatus::CDF_TS_NoDriver) │ │ │ │ - .value("CDF_TS_NoSubComponentDriver",CDF_TryStoreStatus::CDF_TS_NoSubComponentDriver).export_values(); │ │ │ │ py::enum_(m, "CDF_TypeOfActivation",R"#()#") │ │ │ │ .value("CDF_TOA_New",CDF_TypeOfActivation::CDF_TOA_New) │ │ │ │ .value("CDF_TOA_Modified",CDF_TypeOfActivation::CDF_TOA_Modified) │ │ │ │ .value("CDF_TOA_Unchanged",CDF_TypeOfActivation::CDF_TOA_Unchanged).export_values(); │ │ │ │ - py::enum_(m, "CDF_StoreSetNameStatus",R"#()#") │ │ │ │ - .value("CDF_SSNS_OK",CDF_StoreSetNameStatus::CDF_SSNS_OK) │ │ │ │ - .value("CDF_SSNS_ReplacingAnExistentDocument",CDF_StoreSetNameStatus::CDF_SSNS_ReplacingAnExistentDocument) │ │ │ │ - .value("CDF_SSNS_OpenDocument",CDF_StoreSetNameStatus::CDF_SSNS_OpenDocument).export_values(); │ │ │ │ py::enum_(m, "CDF_SubComponentStatus",R"#()#") │ │ │ │ .value("CDF_SCS_Consistent",CDF_SubComponentStatus::CDF_SCS_Consistent) │ │ │ │ .value("CDF_SCS_Unconsistent",CDF_SubComponentStatus::CDF_SCS_Unconsistent) │ │ │ │ .value("CDF_SCS_Stored",CDF_SubComponentStatus::CDF_SCS_Stored) │ │ │ │ .value("CDF_SCS_Modified",CDF_SubComponentStatus::CDF_SCS_Modified).export_values(); │ │ │ │ + py::enum_(m, "CDF_StoreSetNameStatus",R"#()#") │ │ │ │ + .value("CDF_SSNS_OK",CDF_StoreSetNameStatus::CDF_SSNS_OK) │ │ │ │ + .value("CDF_SSNS_ReplacingAnExistentDocument",CDF_StoreSetNameStatus::CDF_SSNS_ReplacingAnExistentDocument) │ │ │ │ + .value("CDF_SSNS_OpenDocument",CDF_StoreSetNameStatus::CDF_SSNS_OpenDocument).export_values(); │ │ │ │ + py::enum_(m, "CDF_TryStoreStatus",R"#()#") │ │ │ │ + .value("CDF_TS_OK",CDF_TryStoreStatus::CDF_TS_OK) │ │ │ │ + .value("CDF_TS_NoCurrentDocument",CDF_TryStoreStatus::CDF_TS_NoCurrentDocument) │ │ │ │ + .value("CDF_TS_NoDriver",CDF_TryStoreStatus::CDF_TS_NoDriver) │ │ │ │ + .value("CDF_TS_NoSubComponentDriver",CDF_TryStoreStatus::CDF_TS_NoSubComponentDriver).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_CDF_Application : public CDF_Application{ │ │ │ │ public: │ │ │ │ using CDF_Application::CDF_Application; │ │ │ ├── ./usr/share/libocp/OCP/ChFiDS_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -85,43 +85,43 @@ │ │ │ │ py::module m = main_module.def_submodule("ChFiDS", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "ChFiDS_State",R"#(This enum describe the different kinds of extremities of a fillet. OnSame, Ondiff and AllSame are particular cases of BreakPoint for a corner with 3 edges and three faces : - AllSame means that the three concavities are on the same side of the Shape, - OnDiff means that the edge of the fillet has a concave side different than the two other edges, - OnSame means that the edge of the fillet has a concave side different than one of the two other edges and identical to the third edge.)#") │ │ │ │ - .value("ChFiDS_OnSame",ChFiDS_State::ChFiDS_OnSame) │ │ │ │ - .value("ChFiDS_OnDiff",ChFiDS_State::ChFiDS_OnDiff) │ │ │ │ - .value("ChFiDS_AllSame",ChFiDS_State::ChFiDS_AllSame) │ │ │ │ - .value("ChFiDS_BreakPoint",ChFiDS_State::ChFiDS_BreakPoint) │ │ │ │ - .value("ChFiDS_FreeBoundary",ChFiDS_State::ChFiDS_FreeBoundary) │ │ │ │ - .value("ChFiDS_Closed",ChFiDS_State::ChFiDS_Closed) │ │ │ │ - .value("ChFiDS_Tangent",ChFiDS_State::ChFiDS_Tangent).export_values(); │ │ │ │ py::enum_(m, "ChFiDS_ErrorStatus",R"#(--- Purpose statuts concernant la cause de l'erreur)#") │ │ │ │ .value("ChFiDS_Ok",ChFiDS_ErrorStatus::ChFiDS_Ok) │ │ │ │ .value("ChFiDS_Error",ChFiDS_ErrorStatus::ChFiDS_Error) │ │ │ │ .value("ChFiDS_WalkingFailure",ChFiDS_ErrorStatus::ChFiDS_WalkingFailure) │ │ │ │ .value("ChFiDS_StartsolFailure",ChFiDS_ErrorStatus::ChFiDS_StartsolFailure) │ │ │ │ .value("ChFiDS_TwistedSurface",ChFiDS_ErrorStatus::ChFiDS_TwistedSurface).export_values(); │ │ │ │ - py::enum_(m, "ChFiDS_ChamfMethod",R"#()#") │ │ │ │ - .value("ChFiDS_Sym",ChFiDS_ChamfMethod::ChFiDS_Sym) │ │ │ │ - .value("ChFiDS_TwoDist",ChFiDS_ChamfMethod::ChFiDS_TwoDist) │ │ │ │ - .value("ChFiDS_DistAngle",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values(); │ │ │ │ py::enum_(m, "ChFiDS_TypeOfConcavity",R"#()#") │ │ │ │ .value("ChFiDS_Concave",ChFiDS_TypeOfConcavity::ChFiDS_Concave) │ │ │ │ .value("ChFiDS_Convex",ChFiDS_TypeOfConcavity::ChFiDS_Convex) │ │ │ │ .value("ChFiDS_Tangential",ChFiDS_TypeOfConcavity::ChFiDS_Tangential) │ │ │ │ .value("ChFiDS_FreeBound",ChFiDS_TypeOfConcavity::ChFiDS_FreeBound) │ │ │ │ .value("ChFiDS_Other",ChFiDS_TypeOfConcavity::ChFiDS_Other) │ │ │ │ .value("ChFiDS_Mixed",ChFiDS_TypeOfConcavity::ChFiDS_Mixed).export_values(); │ │ │ │ py::enum_(m, "ChFiDS_ChamfMode",R"#(this enumeration defines several modes of chamfer)#") │ │ │ │ .value("ChFiDS_ClassicChamfer",ChFiDS_ChamfMode::ChFiDS_ClassicChamfer) │ │ │ │ .value("ChFiDS_ConstThroatChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatChamfer) │ │ │ │ .value("ChFiDS_ConstThroatWithPenetrationChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatWithPenetrationChamfer).export_values(); │ │ │ │ + py::enum_(m, "ChFiDS_ChamfMethod",R"#()#") │ │ │ │ + .value("ChFiDS_Sym",ChFiDS_ChamfMethod::ChFiDS_Sym) │ │ │ │ + .value("ChFiDS_TwoDist",ChFiDS_ChamfMethod::ChFiDS_TwoDist) │ │ │ │ + .value("ChFiDS_DistAngle",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values(); │ │ │ │ + py::enum_(m, "ChFiDS_State",R"#(This enum describe the different kinds of extremities of a fillet. OnSame, Ondiff and AllSame are particular cases of BreakPoint for a corner with 3 edges and three faces : - AllSame means that the three concavities are on the same side of the Shape, - OnDiff means that the edge of the fillet has a concave side different than the two other edges, - OnSame means that the edge of the fillet has a concave side different than one of the two other edges and identical to the third edge.)#") │ │ │ │ + .value("ChFiDS_OnSame",ChFiDS_State::ChFiDS_OnSame) │ │ │ │ + .value("ChFiDS_OnDiff",ChFiDS_State::ChFiDS_OnDiff) │ │ │ │ + .value("ChFiDS_AllSame",ChFiDS_State::ChFiDS_AllSame) │ │ │ │ + .value("ChFiDS_BreakPoint",ChFiDS_State::ChFiDS_BreakPoint) │ │ │ │ + .value("ChFiDS_FreeBoundary",ChFiDS_State::ChFiDS_FreeBoundary) │ │ │ │ + .value("ChFiDS_Closed",ChFiDS_State::ChFiDS_Closed) │ │ │ │ + .value("ChFiDS_Tangent",ChFiDS_State::ChFiDS_Tangent).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"ChFiDS_CircSection",R"#(A Section of fillet.)#"); │ │ │ │ py::class_ >(m,"ChFiDS_CommonPoint",R"#(point start/end of fillet common to 2 adjacent filets and to an edge on one of 2 faces participating in the construction of the fillet)#"); │ │ │ │ py::class_ >(m,"ChFiDS_FaceInterference",R"#(interference face/fillet)#"); │ │ │ ├── ./usr/share/libocp/OCP/Extrema_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -265,26 +265,26 @@ │ │ │ │ py::module m = main_module.def_submodule("Extrema", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Extrema_ElementType",R"#()#") │ │ │ │ - .value("Extrema_Node",Extrema_ElementType::Extrema_Node) │ │ │ │ - .value("Extrema_UIsoEdge",Extrema_ElementType::Extrema_UIsoEdge) │ │ │ │ - .value("Extrema_VIsoEdge",Extrema_ElementType::Extrema_VIsoEdge) │ │ │ │ - .value("Extrema_Face",Extrema_ElementType::Extrema_Face).export_values(); │ │ │ │ py::enum_(m, "Extrema_ExtAlgo",R"#()#") │ │ │ │ .value("Extrema_ExtAlgo_Grad",Extrema_ExtAlgo::Extrema_ExtAlgo_Grad) │ │ │ │ .value("Extrema_ExtAlgo_Tree",Extrema_ExtAlgo::Extrema_ExtAlgo_Tree).export_values(); │ │ │ │ py::enum_(m, "Extrema_ExtFlag",R"#()#") │ │ │ │ .value("Extrema_ExtFlag_MIN",Extrema_ExtFlag::Extrema_ExtFlag_MIN) │ │ │ │ .value("Extrema_ExtFlag_MAX",Extrema_ExtFlag::Extrema_ExtFlag_MAX) │ │ │ │ .value("Extrema_ExtFlag_MINMAX",Extrema_ExtFlag::Extrema_ExtFlag_MINMAX).export_values(); │ │ │ │ + py::enum_(m, "Extrema_ElementType",R"#()#") │ │ │ │ + .value("Extrema_Node",Extrema_ElementType::Extrema_Node) │ │ │ │ + .value("Extrema_UIsoEdge",Extrema_ElementType::Extrema_UIsoEdge) │ │ │ │ + .value("Extrema_VIsoEdge",Extrema_ElementType::Extrema_VIsoEdge) │ │ │ │ + .value("Extrema_Face",Extrema_ElementType::Extrema_Face).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"Extrema_Curve2dTool",R"#()#"); │ │ │ │ py::class_ >(m,"Extrema_CurveTool",R"#()#"); │ │ │ │ py::class_ >(m,"Extrema_ECC",R"#()#"); │ │ │ ├── ./usr/share/libocp/OCP/FilletSurf_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -39,29 +39,29 @@ │ │ │ │ py::module m = main_module.def_submodule("FilletSurf", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "FilletSurf_StatusType",R"#()#") │ │ │ │ + .value("FilletSurf_TwoExtremityOnEdge",FilletSurf_StatusType::FilletSurf_TwoExtremityOnEdge) │ │ │ │ + .value("FilletSurf_OneExtremityOnEdge",FilletSurf_StatusType::FilletSurf_OneExtremityOnEdge) │ │ │ │ + .value("FilletSurf_NoExtremityOnEdge",FilletSurf_StatusType::FilletSurf_NoExtremityOnEdge).export_values(); │ │ │ │ py::enum_(m, "FilletSurf_ErrorTypeStatus",R"#()#") │ │ │ │ .value("FilletSurf_EmptyList",FilletSurf_ErrorTypeStatus::FilletSurf_EmptyList) │ │ │ │ .value("FilletSurf_EdgeNotG1",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotG1) │ │ │ │ .value("FilletSurf_FacesNotG1",FilletSurf_ErrorTypeStatus::FilletSurf_FacesNotG1) │ │ │ │ .value("FilletSurf_EdgeNotOnShape",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotOnShape) │ │ │ │ .value("FilletSurf_NotSharpEdge",FilletSurf_ErrorTypeStatus::FilletSurf_NotSharpEdge) │ │ │ │ .value("FilletSurf_PbFilletCompute",FilletSurf_ErrorTypeStatus::FilletSurf_PbFilletCompute).export_values(); │ │ │ │ py::enum_(m, "FilletSurf_StatusDone",R"#()#") │ │ │ │ .value("FilletSurf_IsOk",FilletSurf_StatusDone::FilletSurf_IsOk) │ │ │ │ .value("FilletSurf_IsNotOk",FilletSurf_StatusDone::FilletSurf_IsNotOk) │ │ │ │ .value("FilletSurf_IsPartial",FilletSurf_StatusDone::FilletSurf_IsPartial).export_values(); │ │ │ │ - py::enum_(m, "FilletSurf_StatusType",R"#()#") │ │ │ │ - .value("FilletSurf_TwoExtremityOnEdge",FilletSurf_StatusType::FilletSurf_TwoExtremityOnEdge) │ │ │ │ - .value("FilletSurf_OneExtremityOnEdge",FilletSurf_StatusType::FilletSurf_OneExtremityOnEdge) │ │ │ │ - .value("FilletSurf_NoExtremityOnEdge",FilletSurf_StatusType::FilletSurf_NoExtremityOnEdge).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"FilletSurf_Builder",R"#(API giving the following geometric information about fillets list of corresponding NUBS surfaces for each surface: the 2 support faces on each face: the 3d curve and the corresponding 2d curve the 2d curves on the fillet status of start and end section of the fillet first and last parameter on edge of the fillet.)#"); │ │ │ │ py::class_ , ChFi3d_FilBuilder >(m,"FilletSurf_InternalBuilder",R"#(This class is private. It is used by the class Builder from FilletSurf. It computes geometric information about fillets.)#"); │ │ │ ├── ./usr/share/libocp/OCP/Font_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -51,36 +51,36 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "Font_Hinting",R"#(Enumeration defining font hinting options.)#") │ │ │ │ + .value("Font_Hinting_Off",Font_Hinting::Font_Hinting_Off) │ │ │ │ + .value("Font_Hinting_Normal",Font_Hinting::Font_Hinting_Normal) │ │ │ │ + .value("Font_Hinting_Light",Font_Hinting::Font_Hinting_Light) │ │ │ │ + .value("Font_Hinting_ForceAutohint",Font_Hinting::Font_Hinting_ForceAutohint) │ │ │ │ + .value("Font_Hinting_NoAutohint",Font_Hinting::Font_Hinting_NoAutohint).export_values(); │ │ │ │ + py::enum_(m, "Font_StrictLevel",R"#(Enumeration defining font search restrictions.)#") │ │ │ │ + .value("Font_StrictLevel_Strict",Font_StrictLevel::Font_StrictLevel_Strict) │ │ │ │ + .value("Font_StrictLevel_Aliases",Font_StrictLevel::Font_StrictLevel_Aliases) │ │ │ │ + .value("Font_StrictLevel_Any",Font_StrictLevel::Font_StrictLevel_Any).export_values(); │ │ │ │ py::enum_(m, "Font_FontAspect",R"#(Specifies aspect of system font.)#") │ │ │ │ .value("Font_FontAspect_UNDEFINED",Font_FontAspect::Font_FontAspect_UNDEFINED) │ │ │ │ .value("Font_FontAspect_Regular",Font_FontAspect::Font_FontAspect_Regular) │ │ │ │ .value("Font_FontAspect_Bold",Font_FontAspect::Font_FontAspect_Bold) │ │ │ │ .value("Font_FontAspect_Italic",Font_FontAspect::Font_FontAspect_Italic) │ │ │ │ .value("Font_FontAspect_BoldItalic",Font_FontAspect::Font_FontAspect_BoldItalic) │ │ │ │ .value("Font_FA_Undefined",Font_FontAspect::Font_FA_Undefined) │ │ │ │ .value("Font_FA_Regular",Font_FontAspect::Font_FA_Regular) │ │ │ │ .value("Font_FA_Bold",Font_FontAspect::Font_FA_Bold) │ │ │ │ .value("Font_FA_Italic",Font_FontAspect::Font_FA_Italic) │ │ │ │ .value("Font_FA_BoldItalic",Font_FontAspect::Font_FA_BoldItalic).export_values(); │ │ │ │ m.attr("Font_FontAspect_NB") = py::cast(int(Font_FontAspect_NB)); │ │ │ │ - py::enum_(m, "Font_Hinting",R"#(Enumeration defining font hinting options.)#") │ │ │ │ - .value("Font_Hinting_Off",Font_Hinting::Font_Hinting_Off) │ │ │ │ - .value("Font_Hinting_Normal",Font_Hinting::Font_Hinting_Normal) │ │ │ │ - .value("Font_Hinting_Light",Font_Hinting::Font_Hinting_Light) │ │ │ │ - .value("Font_Hinting_ForceAutohint",Font_Hinting::Font_Hinting_ForceAutohint) │ │ │ │ - .value("Font_Hinting_NoAutohint",Font_Hinting::Font_Hinting_NoAutohint).export_values(); │ │ │ │ - py::enum_(m, "Font_StrictLevel",R"#(Enumeration defining font search restrictions.)#") │ │ │ │ - .value("Font_StrictLevel_Strict",Font_StrictLevel::Font_StrictLevel_Strict) │ │ │ │ - .value("Font_StrictLevel_Aliases",Font_StrictLevel::Font_StrictLevel_Aliases) │ │ │ │ - .value("Font_StrictLevel_Any",Font_StrictLevel::Font_StrictLevel_Any).export_values(); │ │ │ │ py::enum_(m, "Font_UnicodeSubset",R"#(Enumeration defining Unicode subsets.)#") │ │ │ │ .value("Font_UnicodeSubset_Western",Font_UnicodeSubset::Font_UnicodeSubset_Western) │ │ │ │ .value("Font_UnicodeSubset_Korean",Font_UnicodeSubset::Font_UnicodeSubset_Korean) │ │ │ │ .value("Font_UnicodeSubset_CJK",Font_UnicodeSubset::Font_UnicodeSubset_CJK) │ │ │ │ .value("Font_UnicodeSubset_Arabic",Font_UnicodeSubset::Font_UnicodeSubset_Arabic).export_values(); │ │ │ │ m.attr("Font_UnicodeSubset_NB") = py::cast(int(Font_UnicodeSubset_NB)); │ │ │ ├── ./usr/share/libocp/OCP/GCPnts_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -51,23 +51,23 @@ │ │ │ │ py::module m = main_module.def_submodule("GCPnts", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "GCPnts_AbscissaType",R"#()#") │ │ │ │ + .value("GCPnts_LengthParametrized",GCPnts_AbscissaType::GCPnts_LengthParametrized) │ │ │ │ + .value("GCPnts_Parametrized",GCPnts_AbscissaType::GCPnts_Parametrized) │ │ │ │ + .value("GCPnts_AbsComposite",GCPnts_AbscissaType::GCPnts_AbsComposite).export_values(); │ │ │ │ py::enum_(m, "GCPnts_DeflectionType",R"#()#") │ │ │ │ .value("GCPnts_Linear",GCPnts_DeflectionType::GCPnts_Linear) │ │ │ │ .value("GCPnts_Circular",GCPnts_DeflectionType::GCPnts_Circular) │ │ │ │ .value("GCPnts_Curved",GCPnts_DeflectionType::GCPnts_Curved) │ │ │ │ .value("GCPnts_DefComposite",GCPnts_DeflectionType::GCPnts_DefComposite).export_values(); │ │ │ │ - py::enum_(m, "GCPnts_AbscissaType",R"#()#") │ │ │ │ - .value("GCPnts_LengthParametrized",GCPnts_AbscissaType::GCPnts_LengthParametrized) │ │ │ │ - .value("GCPnts_Parametrized",GCPnts_AbscissaType::GCPnts_Parametrized) │ │ │ │ - .value("GCPnts_AbsComposite",GCPnts_AbscissaType::GCPnts_AbsComposite).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"GCPnts_AbscissaPoint",R"#(Provides an algorithm to compute a point on a curve situated at a given distance from another point on the curve, the distance being measured along the curve (curvilinear abscissa on the curve). This algorithm is also used to compute the length of a curve. An AbscissaPoint object provides a framework for: - defining the point to compute - implementing the construction algorithm - consulting the result.)#"); │ │ │ │ py::class_ >(m,"GCPnts_QuasiUniformAbscissa",R"#(This class provides an algorithm to compute a uniform abscissa distribution of points on a curve, i.e. a sequence of equidistant points. The distance between two consecutive points is measured along the curve.)#"); │ │ │ │ py::class_ >(m,"GCPnts_QuasiUniformDeflection",R"#(This class computes a distribution of points on a curve. The points may respect the deflection. The algorithm is not based on the classical prediction (with second derivative of curve), but either on the evaluation of the distance between the mid point and the point of mid parameter of the two points, or the distance between the mid point and the point at parameter 0.5 on the cubic interpolation of the two points and their tangents.)#"); │ │ │ ├── ./usr/share/libocp/OCP/GProp_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -57,32 +57,32 @@ │ │ │ │ py::module m = main_module.def_submodule("GProp", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "GProp_EquaType",R"#()#") │ │ │ │ - .value("GProp_Plane",GProp_EquaType::GProp_Plane) │ │ │ │ - .value("GProp_Line",GProp_EquaType::GProp_Line) │ │ │ │ - .value("GProp_Point",GProp_EquaType::GProp_Point) │ │ │ │ - .value("GProp_Space",GProp_EquaType::GProp_Space) │ │ │ │ - .value("GProp_None",GProp_EquaType::GProp_None).export_values(); │ │ │ │ py::enum_(m, "GProp_ValueType",R"#(Algorithmes :)#") │ │ │ │ .value("GProp_Mass",GProp_ValueType::GProp_Mass) │ │ │ │ .value("GProp_CenterMassX",GProp_ValueType::GProp_CenterMassX) │ │ │ │ .value("GProp_CenterMassY",GProp_ValueType::GProp_CenterMassY) │ │ │ │ .value("GProp_CenterMassZ",GProp_ValueType::GProp_CenterMassZ) │ │ │ │ .value("GProp_InertiaXX",GProp_ValueType::GProp_InertiaXX) │ │ │ │ .value("GProp_InertiaYY",GProp_ValueType::GProp_InertiaYY) │ │ │ │ .value("GProp_InertiaZZ",GProp_ValueType::GProp_InertiaZZ) │ │ │ │ .value("GProp_InertiaXY",GProp_ValueType::GProp_InertiaXY) │ │ │ │ .value("GProp_InertiaXZ",GProp_ValueType::GProp_InertiaXZ) │ │ │ │ .value("GProp_InertiaYZ",GProp_ValueType::GProp_InertiaYZ) │ │ │ │ .value("GProp_Unknown",GProp_ValueType::GProp_Unknown).export_values(); │ │ │ │ + py::enum_(m, "GProp_EquaType",R"#()#") │ │ │ │ + .value("GProp_Plane",GProp_EquaType::GProp_Plane) │ │ │ │ + .value("GProp_Line",GProp_EquaType::GProp_Line) │ │ │ │ + .value("GProp_Point",GProp_EquaType::GProp_Point) │ │ │ │ + .value("GProp_Space",GProp_EquaType::GProp_Space) │ │ │ │ + .value("GProp_None",GProp_EquaType::GProp_None).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"GProp",R"#(This package defines algorithms to compute the global properties of a set of points, a curve, a surface, a solid (non infinite region of space delimited with geometric entities), a compound geometric system (heterogeneous composition of the previous entities).)#"); │ │ │ │ py::class_ >(m,"GProp_GProps",R"#(Implements a general mechanism to compute the global properties of a "compound geometric system" in 3d space by composition of the global properties of "elementary geometric entities" such as (curve, surface, solid, set of points). It is possible to compose the properties of several "compound geometric systems" too.)#"); │ │ │ │ py::class_ >(m,"GProp_PEquation",R"#(A framework to analyze a collection - or cloud - of points and to verify if they are coincident, collinear or coplanar within a given precision. If so, it also computes the mean point, the mean line or the mean plane of the points. If not, it computes the minimal box which includes all the points.)#"); │ │ │ ├── ./usr/share/libocp/OCP/GeomAbs_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -36,57 +36,57 @@ │ │ │ │ py::module m = main_module.def_submodule("GeomAbs", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "GeomAbs_JoinType",R"#(Characterizes the type of a join, built by an algorithm for constructing parallel curves, between two consecutive arcs of a contour parallel to a given contour.)#") │ │ │ │ - .value("GeomAbs_Arc",GeomAbs_JoinType::GeomAbs_Arc) │ │ │ │ - .value("GeomAbs_Tangent",GeomAbs_JoinType::GeomAbs_Tangent) │ │ │ │ - .value("GeomAbs_Intersection",GeomAbs_JoinType::GeomAbs_Intersection).export_values(); │ │ │ │ py::enum_(m, "GeomAbs_CurveType",R"#(Identifies the type of a curve.)#") │ │ │ │ .value("GeomAbs_Line",GeomAbs_CurveType::GeomAbs_Line) │ │ │ │ .value("GeomAbs_Circle",GeomAbs_CurveType::GeomAbs_Circle) │ │ │ │ .value("GeomAbs_Ellipse",GeomAbs_CurveType::GeomAbs_Ellipse) │ │ │ │ .value("GeomAbs_Hyperbola",GeomAbs_CurveType::GeomAbs_Hyperbola) │ │ │ │ .value("GeomAbs_Parabola",GeomAbs_CurveType::GeomAbs_Parabola) │ │ │ │ .value("GeomAbs_BezierCurve",GeomAbs_CurveType::GeomAbs_BezierCurve) │ │ │ │ .value("GeomAbs_BSplineCurve",GeomAbs_CurveType::GeomAbs_BSplineCurve) │ │ │ │ .value("GeomAbs_OffsetCurve",GeomAbs_CurveType::GeomAbs_OffsetCurve) │ │ │ │ .value("GeomAbs_OtherCurve",GeomAbs_CurveType::GeomAbs_OtherCurve).export_values(); │ │ │ │ - py::enum_(m, "GeomAbs_Shape",R"#(Provides information about the continuity of a curve: - C0: only geometric continuity. - G1: for each point on the curve, the tangent vectors "on the right" and "on the left" are collinear with the same orientation. - C1: continuity of the first derivative. The "C1" curve is also "G1" but, in addition, the tangent vectors " on the right" and "on the left" are equal. - G2: for each point on the curve, the normalized normal vectors "on the right" and "on the left" are equal. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of the N-th derivative, whatever is the value given for N (infinite order of continuity). Also provides information about the continuity of a surface: - C0: only geometric continuity. - C1: continuity of the first derivatives; any isoparametric (in U or V) of a surface "C1" is also "C1". - G2: for BSpline curves only; "on the right" and "on the left" of a knot the computation of the "main curvature radii" and the "main directions" (when they exist) gives the same result. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of any N-th derivative, whatever is the value given for N (infinite order of continuity). We may also say that a surface is "Ci" in u, and "Cj" in v to indicate the continuity of its derivatives up to the order i in the u parametric direction, and j in the v parametric direction.)#") │ │ │ │ - .value("GeomAbs_C0",GeomAbs_Shape::GeomAbs_C0) │ │ │ │ - .value("GeomAbs_G1",GeomAbs_Shape::GeomAbs_G1) │ │ │ │ - .value("GeomAbs_C1",GeomAbs_Shape::GeomAbs_C1) │ │ │ │ - .value("GeomAbs_G2",GeomAbs_Shape::GeomAbs_G2) │ │ │ │ - .value("GeomAbs_C2",GeomAbs_Shape::GeomAbs_C2) │ │ │ │ - .value("GeomAbs_C3",GeomAbs_Shape::GeomAbs_C3) │ │ │ │ - .value("GeomAbs_CN",GeomAbs_Shape::GeomAbs_CN).export_values(); │ │ │ │ + py::enum_(m, "GeomAbs_IsoType",R"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#") │ │ │ │ + .value("GeomAbs_IsoU",GeomAbs_IsoType::GeomAbs_IsoU) │ │ │ │ + .value("GeomAbs_IsoV",GeomAbs_IsoType::GeomAbs_IsoV) │ │ │ │ + .value("GeomAbs_NoneIso",GeomAbs_IsoType::GeomAbs_NoneIso).export_values(); │ │ │ │ py::enum_(m, "GeomAbs_SurfaceType",R"#()#") │ │ │ │ .value("GeomAbs_Plane",GeomAbs_SurfaceType::GeomAbs_Plane) │ │ │ │ .value("GeomAbs_Cylinder",GeomAbs_SurfaceType::GeomAbs_Cylinder) │ │ │ │ .value("GeomAbs_Cone",GeomAbs_SurfaceType::GeomAbs_Cone) │ │ │ │ .value("GeomAbs_Sphere",GeomAbs_SurfaceType::GeomAbs_Sphere) │ │ │ │ .value("GeomAbs_Torus",GeomAbs_SurfaceType::GeomAbs_Torus) │ │ │ │ .value("GeomAbs_BezierSurface",GeomAbs_SurfaceType::GeomAbs_BezierSurface) │ │ │ │ .value("GeomAbs_BSplineSurface",GeomAbs_SurfaceType::GeomAbs_BSplineSurface) │ │ │ │ .value("GeomAbs_SurfaceOfRevolution",GeomAbs_SurfaceType::GeomAbs_SurfaceOfRevolution) │ │ │ │ .value("GeomAbs_SurfaceOfExtrusion",GeomAbs_SurfaceType::GeomAbs_SurfaceOfExtrusion) │ │ │ │ .value("GeomAbs_OffsetSurface",GeomAbs_SurfaceType::GeomAbs_OffsetSurface) │ │ │ │ .value("GeomAbs_OtherSurface",GeomAbs_SurfaceType::GeomAbs_OtherSurface).export_values(); │ │ │ │ - py::enum_(m, "GeomAbs_IsoType",R"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#") │ │ │ │ - .value("GeomAbs_IsoU",GeomAbs_IsoType::GeomAbs_IsoU) │ │ │ │ - .value("GeomAbs_IsoV",GeomAbs_IsoType::GeomAbs_IsoV) │ │ │ │ - .value("GeomAbs_NoneIso",GeomAbs_IsoType::GeomAbs_NoneIso).export_values(); │ │ │ │ py::enum_(m, "GeomAbs_BSplKnotDistribution",R"#(This enumeration is used in the classes BSplineCurve and BSplineSurface to describe the repartition of set of knots. (comments in classes BSplineCurve and BSplineSurface))#") │ │ │ │ .value("GeomAbs_NonUniform",GeomAbs_BSplKnotDistribution::GeomAbs_NonUniform) │ │ │ │ .value("GeomAbs_Uniform",GeomAbs_BSplKnotDistribution::GeomAbs_Uniform) │ │ │ │ .value("GeomAbs_QuasiUniform",GeomAbs_BSplKnotDistribution::GeomAbs_QuasiUniform) │ │ │ │ .value("GeomAbs_PiecewiseBezier",GeomAbs_BSplKnotDistribution::GeomAbs_PiecewiseBezier).export_values(); │ │ │ │ + py::enum_(m, "GeomAbs_Shape",R"#(Provides information about the continuity of a curve: - C0: only geometric continuity. - G1: for each point on the curve, the tangent vectors "on the right" and "on the left" are collinear with the same orientation. - C1: continuity of the first derivative. The "C1" curve is also "G1" but, in addition, the tangent vectors " on the right" and "on the left" are equal. - G2: for each point on the curve, the normalized normal vectors "on the right" and "on the left" are equal. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of the N-th derivative, whatever is the value given for N (infinite order of continuity). Also provides information about the continuity of a surface: - C0: only geometric continuity. - C1: continuity of the first derivatives; any isoparametric (in U or V) of a surface "C1" is also "C1". - G2: for BSpline curves only; "on the right" and "on the left" of a knot the computation of the "main curvature radii" and the "main directions" (when they exist) gives the same result. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of any N-th derivative, whatever is the value given for N (infinite order of continuity). We may also say that a surface is "Ci" in u, and "Cj" in v to indicate the continuity of its derivatives up to the order i in the u parametric direction, and j in the v parametric direction.)#") │ │ │ │ + .value("GeomAbs_C0",GeomAbs_Shape::GeomAbs_C0) │ │ │ │ + .value("GeomAbs_G1",GeomAbs_Shape::GeomAbs_G1) │ │ │ │ + .value("GeomAbs_C1",GeomAbs_Shape::GeomAbs_C1) │ │ │ │ + .value("GeomAbs_G2",GeomAbs_Shape::GeomAbs_G2) │ │ │ │ + .value("GeomAbs_C2",GeomAbs_Shape::GeomAbs_C2) │ │ │ │ + .value("GeomAbs_C3",GeomAbs_Shape::GeomAbs_C3) │ │ │ │ + .value("GeomAbs_CN",GeomAbs_Shape::GeomAbs_CN).export_values(); │ │ │ │ + py::enum_(m, "GeomAbs_JoinType",R"#(Characterizes the type of a join, built by an algorithm for constructing parallel curves, between two consecutive arcs of a contour parallel to a given contour.)#") │ │ │ │ + .value("GeomAbs_Arc",GeomAbs_JoinType::GeomAbs_Arc) │ │ │ │ + .value("GeomAbs_Tangent",GeomAbs_JoinType::GeomAbs_Tangent) │ │ │ │ + .value("GeomAbs_Intersection",GeomAbs_JoinType::GeomAbs_Intersection).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ │ │ │ │ }; │ │ │ ├── ./usr/share/libocp/OCP/GeomFill_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -173,28 +173,28 @@ │ │ │ │ py::module m = main_module.def_submodule("GeomFill", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "GeomFill_ApproxStyle",R"#()#") │ │ │ │ - .value("GeomFill_Section",GeomFill_ApproxStyle::GeomFill_Section) │ │ │ │ - .value("GeomFill_Location",GeomFill_ApproxStyle::GeomFill_Location).export_values(); │ │ │ │ py::enum_(m, "GeomFill_Trihedron",R"#()#") │ │ │ │ .value("GeomFill_IsCorrectedFrenet",GeomFill_Trihedron::GeomFill_IsCorrectedFrenet) │ │ │ │ .value("GeomFill_IsFixed",GeomFill_Trihedron::GeomFill_IsFixed) │ │ │ │ .value("GeomFill_IsFrenet",GeomFill_Trihedron::GeomFill_IsFrenet) │ │ │ │ .value("GeomFill_IsConstantNormal",GeomFill_Trihedron::GeomFill_IsConstantNormal) │ │ │ │ .value("GeomFill_IsDarboux",GeomFill_Trihedron::GeomFill_IsDarboux) │ │ │ │ .value("GeomFill_IsGuideAC",GeomFill_Trihedron::GeomFill_IsGuideAC) │ │ │ │ .value("GeomFill_IsGuidePlan",GeomFill_Trihedron::GeomFill_IsGuidePlan) │ │ │ │ .value("GeomFill_IsGuideACWithContact",GeomFill_Trihedron::GeomFill_IsGuideACWithContact) │ │ │ │ .value("GeomFill_IsGuidePlanWithContact",GeomFill_Trihedron::GeomFill_IsGuidePlanWithContact) │ │ │ │ .value("GeomFill_IsDiscreteTrihedron",GeomFill_Trihedron::GeomFill_IsDiscreteTrihedron).export_values(); │ │ │ │ + py::enum_(m, "GeomFill_ApproxStyle",R"#()#") │ │ │ │ + .value("GeomFill_Section",GeomFill_ApproxStyle::GeomFill_Section) │ │ │ │ + .value("GeomFill_Location",GeomFill_ApproxStyle::GeomFill_Location).export_values(); │ │ │ │ py::enum_(m, "GeomFill_FillingStyle",R"#(Defines the three filling styles used in this package - GeomFill_Stretch - the style with the flattest patches - GeomFill_Coons - a rounded style of patch with less depth than those of Curved - GeomFill_Curved - the style with the most rounded patches.)#") │ │ │ │ .value("GeomFill_StretchStyle",GeomFill_FillingStyle::GeomFill_StretchStyle) │ │ │ │ .value("GeomFill_CoonsStyle",GeomFill_FillingStyle::GeomFill_CoonsStyle) │ │ │ │ .value("GeomFill_CurvedStyle",GeomFill_FillingStyle::GeomFill_CurvedStyle).export_values(); │ │ │ │ py::enum_(m, "GeomFill_PipeError",R"#()#") │ │ │ │ .value("GeomFill_PipeOk",GeomFill_PipeError::GeomFill_PipeOk) │ │ │ │ .value("GeomFill_PipeNotOk",GeomFill_PipeError::GeomFill_PipeNotOk) │ │ │ ├── ./usr/share/libocp/OCP/Graphic3d_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -284,83 +284,58 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("Graphic3d_TransformUtils"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + m.attr("Graphic3d_ArrayFlags_None") = py::cast(int(Graphic3d_ArrayFlags_None)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexNormal") = py::cast(int(Graphic3d_ArrayFlags_VertexNormal)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexColor") = py::cast(int(Graphic3d_ArrayFlags_VertexColor)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexTexel") = py::cast(int(Graphic3d_ArrayFlags_VertexTexel)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_BoundColor") = py::cast(int(Graphic3d_ArrayFlags_BoundColor)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_AttribsMutable") = py::cast(int(Graphic3d_ArrayFlags_AttribsMutable)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_AttribsDeinterleaved") = py::cast(int(Graphic3d_ArrayFlags_AttribsDeinterleaved)); │ │ │ │ + m.attr("Graphic3d_ArrayFlags_IndexesMutable") = py::cast(int(Graphic3d_ArrayFlags_IndexesMutable)); │ │ │ │ + py::enum_(m, "Graphic3d_FresnelModel",R"#(Type of the Fresnel model.)#") │ │ │ │ + .value("Graphic3d_FM_SCHLICK",Graphic3d_FresnelModel::Graphic3d_FM_SCHLICK) │ │ │ │ + .value("Graphic3d_FM_CONSTANT",Graphic3d_FresnelModel::Graphic3d_FM_CONSTANT) │ │ │ │ + .value("Graphic3d_FM_CONDUCTOR",Graphic3d_FresnelModel::Graphic3d_FM_CONDUCTOR) │ │ │ │ + .value("Graphic3d_FM_DIELECTRIC",Graphic3d_FresnelModel::Graphic3d_FM_DIELECTRIC).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_RenderingMode",R"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#") │ │ │ │ + .value("Graphic3d_RM_RASTERIZATION",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION) │ │ │ │ + .value("Graphic3d_RM_RAYTRACING",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_VerticalTextAlignment",R"#(Defines the vertical position of the text relative to its anchor.)#") │ │ │ │ + .value("Graphic3d_VTA_BOTTOM",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_BOTTOM) │ │ │ │ + .value("Graphic3d_VTA_CENTER",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_CENTER) │ │ │ │ + .value("Graphic3d_VTA_TOP",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOP) │ │ │ │ + .value("Graphic3d_VTA_TOPFIRSTLINE",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOPFIRSTLINE).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_AlphaMode",R"#(Defines how alpha value of base color / texture should be treated.)#") │ │ │ │ .value("Graphic3d_AlphaMode_Opaque",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Opaque) │ │ │ │ .value("Graphic3d_AlphaMode_Mask",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Mask) │ │ │ │ .value("Graphic3d_AlphaMode_Blend",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Blend) │ │ │ │ .value("Graphic3d_AlphaMode_MaskBlend",Graphic3d_AlphaMode::Graphic3d_AlphaMode_MaskBlend) │ │ │ │ .value("Graphic3d_AlphaMode_BlendAuto",Graphic3d_AlphaMode::Graphic3d_AlphaMode_BlendAuto).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_FresnelModel",R"#(Type of the Fresnel model.)#") │ │ │ │ - .value("Graphic3d_FM_SCHLICK",Graphic3d_FresnelModel::Graphic3d_FM_SCHLICK) │ │ │ │ - .value("Graphic3d_FM_CONSTANT",Graphic3d_FresnelModel::Graphic3d_FM_CONSTANT) │ │ │ │ - .value("Graphic3d_FM_CONDUCTOR",Graphic3d_FresnelModel::Graphic3d_FM_CONDUCTOR) │ │ │ │ - .value("Graphic3d_FM_DIELECTRIC",Graphic3d_FresnelModel::Graphic3d_FM_DIELECTRIC).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfReflection",R"#(Nature of the reflection of a material.)#") │ │ │ │ - .value("Graphic3d_TOR_AMBIENT",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT) │ │ │ │ - .value("Graphic3d_TOR_DIFFUSE",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE) │ │ │ │ - .value("Graphic3d_TOR_SPECULAR",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR) │ │ │ │ - .value("Graphic3d_TOR_EMISSION",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values(); │ │ │ │ - m.attr("Graphic3d_TypeOfReflection_NB") = py::cast(int(Graphic3d_TypeOfReflection_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_ClipState",R"#(Clipping state.)#") │ │ │ │ - .value("Graphic3d_ClipState_Out",Graphic3d_ClipState::Graphic3d_ClipState_Out) │ │ │ │ - .value("Graphic3d_ClipState_In",Graphic3d_ClipState::Graphic3d_ClipState_In) │ │ │ │ - .value("Graphic3d_ClipState_On",Graphic3d_ClipState::Graphic3d_ClipState_On).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_HorizontalTextAlignment",R"#(Defines the horizontal position of the text relative to its anchor.)#") │ │ │ │ - .value("Graphic3d_HTA_LEFT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT) │ │ │ │ - .value("Graphic3d_HTA_CENTER",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER) │ │ │ │ - .value("Graphic3d_HTA_RIGHT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_ToneMappingMethod",R"#(Enumerates tone mapping methods.)#") │ │ │ │ + .value("Graphic3d_ToneMappingMethod_Disabled",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled) │ │ │ │ + .value("Graphic3d_ToneMappingMethod_Filmic",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_TypeOfLightSource",R"#(Definition of all the type of light source.)#") │ │ │ │ .value("Graphic3d_TypeOfLightSource_Ambient",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Ambient) │ │ │ │ .value("Graphic3d_TypeOfLightSource_Directional",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Directional) │ │ │ │ .value("Graphic3d_TypeOfLightSource_Positional",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Positional) │ │ │ │ .value("Graphic3d_TypeOfLightSource_Spot",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Spot) │ │ │ │ .value("Graphic3d_TOLS_AMBIENT",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_AMBIENT) │ │ │ │ .value("Graphic3d_TOLS_DIRECTIONAL",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_DIRECTIONAL) │ │ │ │ .value("Graphic3d_TOLS_POSITIONAL",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_POSITIONAL) │ │ │ │ .value("Graphic3d_TOLS_SPOT",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_SPOT) │ │ │ │ .value("V3d_AMBIENT",Graphic3d_TypeOfLightSource::V3d_AMBIENT) │ │ │ │ .value("V3d_DIRECTIONAL",Graphic3d_TypeOfLightSource::V3d_DIRECTIONAL) │ │ │ │ .value("V3d_POSITIONAL",Graphic3d_TypeOfLightSource::V3d_POSITIONAL) │ │ │ │ .value("V3d_SPOT",Graphic3d_TypeOfLightSource::V3d_SPOT).export_values(); │ │ │ │ m.attr("Graphic3d_TypeOfLightSource_NB") = py::cast(int(Graphic3d_TypeOfLightSource_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_NameOfTexturePlane",R"#(Type of the texture projection plane for both S and T texture coordinate.)#") │ │ │ │ - .value("Graphic3d_NOTP_XY",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_XY) │ │ │ │ - .value("Graphic3d_NOTP_YZ",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_YZ) │ │ │ │ - .value("Graphic3d_NOTP_ZX",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_ZX) │ │ │ │ - .value("Graphic3d_NOTP_UNKNOWN",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_UNKNOWN).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfPrimitiveArray",R"#(The type of primitive array in a group in a structure.)#") │ │ │ │ - .value("Graphic3d_TOPA_UNDEFINED",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED) │ │ │ │ - .value("Graphic3d_TOPA_POINTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS) │ │ │ │ - .value("Graphic3d_TOPA_SEGMENTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS) │ │ │ │ - .value("Graphic3d_TOPA_POLYLINES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES) │ │ │ │ - .value("Graphic3d_TOPA_TRIANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES) │ │ │ │ - .value("Graphic3d_TOPA_TRIANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS) │ │ │ │ - .value("Graphic3d_TOPA_TRIANGLEFANS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS) │ │ │ │ - .value("Graphic3d_TOPA_LINES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY) │ │ │ │ - .value("Graphic3d_TOPA_LINE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY) │ │ │ │ - .value("Graphic3d_TOPA_TRIANGLES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY) │ │ │ │ - .value("Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY) │ │ │ │ - .value("Graphic3d_TOPA_QUADRANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES) │ │ │ │ - .value("Graphic3d_TOPA_QUADRANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS) │ │ │ │ - .value("Graphic3d_TOPA_POLYGONS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_DiagnosticInfo",R"#(Diagnostic info categories bit flags.)#") │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Device",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_FrameBuffer",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Limits",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Memory",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_NativePlatform",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Extensions",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Short",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Basic",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic) │ │ │ │ - .value("Graphic3d_DiagnosticInfo_Complete",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_NameOfTexture2D",R"#(Types of standard textures.)#") │ │ │ │ .value("Graphic3d_NOT_2D_MATRA",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MATRA) │ │ │ │ .value("Graphic3d_NOT_2D_ALIENSKIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALIENSKIN) │ │ │ │ .value("Graphic3d_NOT_2D_BLUE_ROCK",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUE_ROCK) │ │ │ │ .value("Graphic3d_NOT_2D_BLUEWHITE_PAPER",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUEWHITE_PAPER) │ │ │ │ .value("Graphic3d_NOT_2D_BRUSHED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BRUSHED) │ │ │ │ .value("Graphic3d_NOT_2D_BUBBLES",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUBBLES) │ │ │ │ @@ -377,34 +352,201 @@ │ │ │ │ .value("Graphic3d_NOT_2D_KNURL",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_KNURL) │ │ │ │ .value("Graphic3d_NOT_2D_MAPLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MAPLE) │ │ │ │ .value("Graphic3d_NOT_2D_MARBLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MARBLE) │ │ │ │ .value("Graphic3d_NOT_2D_MOTTLED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MOTTLED) │ │ │ │ .value("Graphic3d_NOT_2D_RAIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_RAIN) │ │ │ │ .value("Graphic3d_NOT_2D_CHESS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHESS) │ │ │ │ .value("Graphic3d_NOT_2D_UNKNOWN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_UNKNOWN).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TextureSetBits",R"#(Standard texture units combination bits.)#") │ │ │ │ - .value("Graphic3d_TextureSetBits_NONE",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_NONE) │ │ │ │ - .value("Graphic3d_TextureSetBits_BaseColor",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_BaseColor) │ │ │ │ - .value("Graphic3d_TextureSetBits_Emissive",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Emissive) │ │ │ │ - .value("Graphic3d_TextureSetBits_Occlusion",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Occlusion) │ │ │ │ - .value("Graphic3d_TextureSetBits_Normal",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Normal) │ │ │ │ - .value("Graphic3d_TextureSetBits_MetallicRoughness",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_MetallicRoughness).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_ClipState",R"#(Clipping state.)#") │ │ │ │ + .value("Graphic3d_ClipState_Out",Graphic3d_ClipState::Graphic3d_ClipState_Out) │ │ │ │ + .value("Graphic3d_ClipState_In",Graphic3d_ClipState::Graphic3d_ClipState_In) │ │ │ │ + .value("Graphic3d_ClipState_On",Graphic3d_ClipState::Graphic3d_ClipState_On).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TextPath",R"#(Direction in which text is displayed.)#") │ │ │ │ + .value("Graphic3d_TP_UP",Graphic3d_TextPath::Graphic3d_TP_UP) │ │ │ │ + .value("Graphic3d_TP_DOWN",Graphic3d_TextPath::Graphic3d_TP_DOWN) │ │ │ │ + .value("Graphic3d_TP_LEFT",Graphic3d_TextPath::Graphic3d_TP_LEFT) │ │ │ │ + .value("Graphic3d_TP_RIGHT",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TransModeFlags",R"#(Transform Persistence Mode defining whether to lock in object position, rotation and / or zooming relative to camera position.)#") │ │ │ │ + .value("Graphic3d_TMF_None",Graphic3d_TransModeFlags::Graphic3d_TMF_None) │ │ │ │ + .value("Graphic3d_TMF_ZoomPers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomPers) │ │ │ │ + .value("Graphic3d_TMF_RotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_RotatePers) │ │ │ │ + .value("Graphic3d_TMF_TriedronPers",Graphic3d_TransModeFlags::Graphic3d_TMF_TriedronPers) │ │ │ │ + .value("Graphic3d_TMF_2d",Graphic3d_TransModeFlags::Graphic3d_TMF_2d) │ │ │ │ + .value("Graphic3d_TMF_CameraPers",Graphic3d_TransModeFlags::Graphic3d_TMF_CameraPers) │ │ │ │ + .value("Graphic3d_TMF_ZoomRotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomRotatePers).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfConnection",R"#(To manage the connections between the structures.)#") │ │ │ │ + .value("Graphic3d_TOC_ANCESTOR",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR) │ │ │ │ + .value("Graphic3d_TOC_DESCENDANT",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfAttribute",R"#(Type of attribute in Vertex Buffer)#") │ │ │ │ + .value("Graphic3d_TOA_POS",Graphic3d_TypeOfAttribute::Graphic3d_TOA_POS) │ │ │ │ + .value("Graphic3d_TOA_NORM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_NORM) │ │ │ │ + .value("Graphic3d_TOA_UV",Graphic3d_TypeOfAttribute::Graphic3d_TOA_UV) │ │ │ │ + .value("Graphic3d_TOA_COLOR",Graphic3d_TypeOfAttribute::Graphic3d_TOA_COLOR) │ │ │ │ + .value("Graphic3d_TOA_CUSTOM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_CUSTOM).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfData",R"#(Type of the element in Vertex or Index Buffer)#") │ │ │ │ + .value("Graphic3d_TOD_USHORT",Graphic3d_TypeOfData::Graphic3d_TOD_USHORT) │ │ │ │ + .value("Graphic3d_TOD_UINT",Graphic3d_TypeOfData::Graphic3d_TOD_UINT) │ │ │ │ + .value("Graphic3d_TOD_VEC2",Graphic3d_TypeOfData::Graphic3d_TOD_VEC2) │ │ │ │ + .value("Graphic3d_TOD_VEC3",Graphic3d_TypeOfData::Graphic3d_TOD_VEC3) │ │ │ │ + .value("Graphic3d_TOD_VEC4",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4) │ │ │ │ + .value("Graphic3d_TOD_VEC4UB",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4UB) │ │ │ │ + .value("Graphic3d_TOD_FLOAT",Graphic3d_TypeOfData::Graphic3d_TOD_FLOAT).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_GlslExtension",R"#(GLSL syntax extensions.)#") │ │ │ │ + .value("Graphic3d_GlslExtension_GL_OES_standard_derivatives",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives) │ │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_shader_texture_lod",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod) │ │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_frag_depth",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth) │ │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_gpu_shader4",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values(); │ │ │ │ + m.attr("Graphic3d_GlslExtension_NB") = py::cast(int(Graphic3d_GlslExtension_NB)); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfBackground",R"#(Describes type of view background.)#") │ │ │ │ + .value("Graphic3d_TOB_NONE",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE) │ │ │ │ + .value("Graphic3d_TOB_GRADIENT",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT) │ │ │ │ + .value("Graphic3d_TOB_TEXTURE",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE) │ │ │ │ + .value("Graphic3d_TOB_CUBEMAP",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values(); │ │ │ │ + m.attr("Graphic3d_TypeOfBackground_NB") = py::cast(int(Graphic3d_TypeOfBackground_NB)); │ │ │ │ + py::enum_(m, "Graphic3d_LevelOfTextureAnisotropy",R"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#") │ │ │ │ + .value("Graphic3d_LOTA_OFF",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF) │ │ │ │ + .value("Graphic3d_LOTA_FAST",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST) │ │ │ │ + .value("Graphic3d_LOTA_MIDDLE",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE) │ │ │ │ + .value("Graphic3d_LOTA_QUALITY",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_DiagnosticInfo",R"#(Diagnostic info categories bit flags.)#") │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Device",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_FrameBuffer",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Limits",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Memory",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_NativePlatform",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Extensions",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Short",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Basic",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic) │ │ │ │ + .value("Graphic3d_DiagnosticInfo_Complete",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfPrimitiveArray",R"#(The type of primitive array in a group in a structure.)#") │ │ │ │ + .value("Graphic3d_TOPA_UNDEFINED",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED) │ │ │ │ + .value("Graphic3d_TOPA_POINTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS) │ │ │ │ + .value("Graphic3d_TOPA_SEGMENTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS) │ │ │ │ + .value("Graphic3d_TOPA_POLYLINES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES) │ │ │ │ + .value("Graphic3d_TOPA_TRIANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES) │ │ │ │ + .value("Graphic3d_TOPA_TRIANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS) │ │ │ │ + .value("Graphic3d_TOPA_TRIANGLEFANS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS) │ │ │ │ + .value("Graphic3d_TOPA_LINES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY) │ │ │ │ + .value("Graphic3d_TOPA_LINE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY) │ │ │ │ + .value("Graphic3d_TOPA_TRIANGLES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY) │ │ │ │ + .value("Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY) │ │ │ │ + .value("Graphic3d_TOPA_QUADRANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES) │ │ │ │ + .value("Graphic3d_TOPA_QUADRANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS) │ │ │ │ + .value("Graphic3d_TOPA_POLYGONS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_NameOfTexture1D",R"#(Types of standard textures.)#") │ │ │ │ + .value("Graphic3d_NOT_1D_ELEVATION",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION) │ │ │ │ + .value("Graphic3d_NOT_1D_UNKNOWN",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfTextureMode",R"#(Type of the texture projection.)#") │ │ │ │ + .value("Graphic3d_TOTM_OBJECT",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_OBJECT) │ │ │ │ + .value("Graphic3d_TOTM_SPHERE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPHERE) │ │ │ │ + .value("Graphic3d_TOTM_EYE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_EYE) │ │ │ │ + .value("Graphic3d_TOTM_MANUAL",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_MANUAL) │ │ │ │ + .value("Graphic3d_TOTM_SPRITE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPRITE).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_FrameStatsTimer",R"#(Timers for collecting frame performance statistics.)#") │ │ │ │ + .value("Graphic3d_FrameStatsTimer_ElapsedFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_ElapsedFrame) │ │ │ │ + .value("Graphic3d_FrameStatsTimer_CpuFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuFrame) │ │ │ │ + .value("Graphic3d_FrameStatsTimer_CpuCulling",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuCulling) │ │ │ │ + .value("Graphic3d_FrameStatsTimer_CpuPicking",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuPicking) │ │ │ │ + .value("Graphic3d_FrameStatsTimer_CpuDynamics",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuDynamics).export_values(); │ │ │ │ + m.attr("Graphic3d_FrameStatsTimer_NB") = py::cast(int(Graphic3d_FrameStatsTimer_NB)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_UNKNOWN") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_Default") = py::cast(int(Graphic3d_ZLayerId_Default)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_Top") = py::cast(int(Graphic3d_ZLayerId_Top)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_Topmost") = py::cast(int(Graphic3d_ZLayerId_Topmost)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_TopOSD") = py::cast(int(Graphic3d_ZLayerId_TopOSD)); │ │ │ │ + m.attr("Graphic3d_ZLayerId_BotOSD") = py::cast(int(Graphic3d_ZLayerId_BotOSD)); │ │ │ │ + py::enum_(m, "Graphic3d_NameOfTextureEnv",R"#(Types of standard textures.)#") │ │ │ │ + .value("Graphic3d_NOT_ENV_CLOUDS",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CLOUDS) │ │ │ │ + .value("Graphic3d_NOT_ENV_CV",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CV) │ │ │ │ + .value("Graphic3d_NOT_ENV_MEDIT",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_MEDIT) │ │ │ │ + .value("Graphic3d_NOT_ENV_PEARL",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_PEARL) │ │ │ │ + .value("Graphic3d_NOT_ENV_SKY1",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY1) │ │ │ │ + .value("Graphic3d_NOT_ENV_SKY2",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY2) │ │ │ │ + .value("Graphic3d_NOT_ENV_LINES",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_LINES) │ │ │ │ + .value("Graphic3d_NOT_ENV_ROAD",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_ROAD) │ │ │ │ + .value("Graphic3d_NOT_ENV_UNKNOWN",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_UNKNOWN).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_CappingFlags",R"#(Enumeration of capping flags.)#") │ │ │ │ + .value("Graphic3d_CappingFlags_None",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None) │ │ │ │ + .value("Graphic3d_CappingFlags_ObjectMaterial",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial) │ │ │ │ + .value("Graphic3d_CappingFlags_ObjectTexture",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture) │ │ │ │ + .value("Graphic3d_CappingFlags_ObjectShader",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader) │ │ │ │ + .value("Graphic3d_CappingFlags_ObjectAspect",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_FrameStatsCounter",R"#(Stats counter.)#") │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayers",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructs",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesGeom",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesFbos",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesTextures",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayersNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbGroupsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsFillNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsLineNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsPointNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsTextNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbTrianglesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLinesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbPointsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayersImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbGroupsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsFillImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsLineImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsPointImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsTextImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbTrianglesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLinesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate) │ │ │ │ + .value("Graphic3d_FrameStatsCounter_NbPointsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values(); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_NB") = py::cast(int(Graphic3d_FrameStatsCounter_NB)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_SCENE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_SCENE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_RENDERED_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_RENDERED_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER)); │ │ │ │ + m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER)); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfVisualization",R"#(Modes of visualisation of objects in a view)#") │ │ │ │ + .value("Graphic3d_TOV_WIREFRAME",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME) │ │ │ │ + .value("Graphic3d_TOV_SHADING",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_RenderTransparentMethod",R"#(Enumerates transparency rendering methods supported by rasterization mode.)#") │ │ │ │ + .value("Graphic3d_RTM_BLEND_UNORDERED",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_UNORDERED) │ │ │ │ + .value("Graphic3d_RTM_BLEND_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_OIT) │ │ │ │ + .value("Graphic3d_RTM_DEPTH_PEELING_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_DEPTH_PEELING_OIT).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_CubeMapSide",R"#(Sides of cubemap in order of OpenGL rules)#") │ │ │ │ .value("Graphic3d_CMS_POS_X",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_X) │ │ │ │ .value("Graphic3d_CMS_NEG_X",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_X) │ │ │ │ .value("Graphic3d_CMS_POS_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Y) │ │ │ │ .value("Graphic3d_CMS_NEG_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Y) │ │ │ │ .value("Graphic3d_CMS_POS_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Z) │ │ │ │ .value("Graphic3d_CMS_NEG_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Z).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfTextureMode",R"#(Type of the texture projection.)#") │ │ │ │ - .value("Graphic3d_TOTM_OBJECT",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_OBJECT) │ │ │ │ - .value("Graphic3d_TOTM_SPHERE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPHERE) │ │ │ │ - .value("Graphic3d_TOTM_EYE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_EYE) │ │ │ │ - .value("Graphic3d_TOTM_MANUAL",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_MANUAL) │ │ │ │ - .value("Graphic3d_TOTM_SPRITE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPRITE).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_DisplayPriority",R"#(Structure priority - range (do not change this range!). Values are between 0 and 10, with 5 used by default. A structure of priority 10 is displayed the last and appears over the others (considering depth test).)#") │ │ │ │ + .value("Graphic3d_DisplayPriority_INVALID",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID) │ │ │ │ + .value("Graphic3d_DisplayPriority_Bottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom) │ │ │ │ + .value("Graphic3d_DisplayPriority_AlmostBottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom) │ │ │ │ + .value("Graphic3d_DisplayPriority_Below2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2) │ │ │ │ + .value("Graphic3d_DisplayPriority_Below1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1) │ │ │ │ + .value("Graphic3d_DisplayPriority_Below",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below) │ │ │ │ + .value("Graphic3d_DisplayPriority_Normal",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal) │ │ │ │ + .value("Graphic3d_DisplayPriority_Above",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above) │ │ │ │ + .value("Graphic3d_DisplayPriority_Above1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1) │ │ │ │ + .value("Graphic3d_DisplayPriority_Above2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2) │ │ │ │ + .value("Graphic3d_DisplayPriority_Highlight",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight) │ │ │ │ + .value("Graphic3d_DisplayPriority_Topmost",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values(); │ │ │ │ + m.attr("Graphic3d_DisplayPriority_NB") = py::cast(int(Graphic3d_DisplayPriority_NB)); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfTextureFilter",R"#(Type of the texture filter. Notice that for textures without mipmaps linear interpolation will be used instead of TOTF_BILINEAR and TOTF_TRILINEAR.)#") │ │ │ │ + .value("Graphic3d_TOTF_NEAREST",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST) │ │ │ │ + .value("Graphic3d_TOTF_BILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR) │ │ │ │ + .value("Graphic3d_TOTF_TRILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfReflection",R"#(Nature of the reflection of a material.)#") │ │ │ │ + .value("Graphic3d_TOR_AMBIENT",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT) │ │ │ │ + .value("Graphic3d_TOR_DIFFUSE",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE) │ │ │ │ + .value("Graphic3d_TOR_SPECULAR",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR) │ │ │ │ + .value("Graphic3d_TOR_EMISSION",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values(); │ │ │ │ + m.attr("Graphic3d_TypeOfReflection_NB") = py::cast(int(Graphic3d_TypeOfReflection_NB)); │ │ │ │ py::enum_(m, "Graphic3d_NameOfMaterial",R"#(List of named materials (predefined presets). Each preset defines either physical (having natural color) or generic (mutable color) material ()#") │ │ │ │ .value("Graphic3d_NameOfMaterial_Brass",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Brass) │ │ │ │ .value("Graphic3d_NameOfMaterial_Bronze",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Bronze) │ │ │ │ .value("Graphic3d_NameOfMaterial_Copper",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Copper) │ │ │ │ .value("Graphic3d_NameOfMaterial_Gold",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Gold) │ │ │ │ .value("Graphic3d_NameOfMaterial_Pewter",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Pewter) │ │ │ │ .value("Graphic3d_NameOfMaterial_Plastered",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastered) │ │ │ │ @@ -450,38 +592,80 @@ │ │ │ │ .value("Graphic3d_NOM_CHARCOAL",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHARCOAL) │ │ │ │ .value("Graphic3d_NOM_WATER",Graphic3d_NameOfMaterial::Graphic3d_NOM_WATER) │ │ │ │ .value("Graphic3d_NOM_GLASS",Graphic3d_NameOfMaterial::Graphic3d_NOM_GLASS) │ │ │ │ .value("Graphic3d_NOM_DIAMOND",Graphic3d_NameOfMaterial::Graphic3d_NOM_DIAMOND) │ │ │ │ .value("Graphic3d_NOM_TRANSPARENT",Graphic3d_NameOfMaterial::Graphic3d_NOM_TRANSPARENT) │ │ │ │ .value("Graphic3d_NOM_DEFAULT",Graphic3d_NameOfMaterial::Graphic3d_NOM_DEFAULT) │ │ │ │ .value("Graphic3d_NOM_UserDefined",Graphic3d_NameOfMaterial::Graphic3d_NOM_UserDefined).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_RenderingMode",R"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#") │ │ │ │ - .value("Graphic3d_RM_RASTERIZATION",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION) │ │ │ │ - .value("Graphic3d_RM_RAYTRACING",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_StereoMode",R"#(This enumeration defines the list of stereoscopic output modes.)#") │ │ │ │ - .value("Graphic3d_StereoMode_QuadBuffer",Graphic3d_StereoMode::Graphic3d_StereoMode_QuadBuffer) │ │ │ │ - .value("Graphic3d_StereoMode_Anaglyph",Graphic3d_StereoMode::Graphic3d_StereoMode_Anaglyph) │ │ │ │ - .value("Graphic3d_StereoMode_RowInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_RowInterlaced) │ │ │ │ - .value("Graphic3d_StereoMode_ColumnInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_ColumnInterlaced) │ │ │ │ - .value("Graphic3d_StereoMode_ChessBoard",Graphic3d_StereoMode::Graphic3d_StereoMode_ChessBoard) │ │ │ │ - .value("Graphic3d_StereoMode_SideBySide",Graphic3d_StereoMode::Graphic3d_StereoMode_SideBySide) │ │ │ │ - .value("Graphic3d_StereoMode_OverUnder",Graphic3d_StereoMode::Graphic3d_StereoMode_OverUnder) │ │ │ │ - .value("Graphic3d_StereoMode_SoftPageFlip",Graphic3d_StereoMode::Graphic3d_StereoMode_SoftPageFlip) │ │ │ │ - .value("Graphic3d_StereoMode_OpenVR",Graphic3d_StereoMode::Graphic3d_StereoMode_OpenVR).export_values(); │ │ │ │ - m.attr("Graphic3d_StereoMode_NB") = py::cast(int(Graphic3d_StereoMode_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_GroupAspect",R"#(Identifies primitives aspects defined per group. - ASPECT_LINE: aspect for line primitives; - ASPECT_TEXT: aspect for text primitives; - ASPECT_MARKER: aspect for marker primitives; - ASPECT_FILL_AREA: aspect for face primitives.)#") │ │ │ │ - .value("Graphic3d_ASPECT_LINE",Graphic3d_GroupAspect::Graphic3d_ASPECT_LINE) │ │ │ │ - .value("Graphic3d_ASPECT_TEXT",Graphic3d_GroupAspect::Graphic3d_ASPECT_TEXT) │ │ │ │ - .value("Graphic3d_ASPECT_MARKER",Graphic3d_GroupAspect::Graphic3d_ASPECT_MARKER) │ │ │ │ - .value("Graphic3d_ASPECT_FILL_AREA",Graphic3d_GroupAspect::Graphic3d_ASPECT_FILL_AREA).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_LevelOfTextureAnisotropy",R"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#") │ │ │ │ - .value("Graphic3d_LOTA_OFF",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF) │ │ │ │ - .value("Graphic3d_LOTA_FAST",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST) │ │ │ │ - .value("Graphic3d_LOTA_MIDDLE",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE) │ │ │ │ - .value("Graphic3d_LOTA_QUALITY",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_BufferType",R"#(Define buffers available for dump)#") │ │ │ │ + .value("Graphic3d_BT_RGB",Graphic3d_BufferType::Graphic3d_BT_RGB) │ │ │ │ + .value("Graphic3d_BT_RGBA",Graphic3d_BufferType::Graphic3d_BT_RGBA) │ │ │ │ + .value("Graphic3d_BT_Depth",Graphic3d_BufferType::Graphic3d_BT_Depth) │ │ │ │ + .value("Graphic3d_BT_RGB_RayTraceHdrLeft",Graphic3d_BufferType::Graphic3d_BT_RGB_RayTraceHdrLeft) │ │ │ │ + .value("Graphic3d_BT_Red",Graphic3d_BufferType::Graphic3d_BT_Red).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfAnswer",R"#(The answer of the method AcceptDisplay AcceptDisplay means is it possible to display the specified structure in the specified view ? TOA_YES yes TOA_NO no TOA_COMPUTE yes but we have to compute the representation)#") │ │ │ │ + .value("Graphic3d_TOA_YES",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES) │ │ │ │ + .value("Graphic3d_TOA_NO",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO) │ │ │ │ + .value("Graphic3d_TOA_COMPUTE",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_ShaderFlags",R"#(Standard GLSL program combination bits.)#") │ │ │ │ + .value("Graphic3d_ShaderFlags_VertColor",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor) │ │ │ │ + .value("Graphic3d_ShaderFlags_TextureRGB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB) │ │ │ │ + .value("Graphic3d_ShaderFlags_TextureEnv",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv) │ │ │ │ + .value("Graphic3d_ShaderFlags_TextureNormal",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal) │ │ │ │ + .value("Graphic3d_ShaderFlags_PointSimple",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple) │ │ │ │ + .value("Graphic3d_ShaderFlags_PointSprite",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite) │ │ │ │ + .value("Graphic3d_ShaderFlags_PointSpriteA",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA) │ │ │ │ + .value("Graphic3d_ShaderFlags_StippleLine",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine) │ │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanes1",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1) │ │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanes2",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2) │ │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanesN",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN) │ │ │ │ + .value("Graphic3d_ShaderFlags_ClipChains",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains) │ │ │ │ + .value("Graphic3d_ShaderFlags_MeshEdges",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges) │ │ │ │ + .value("Graphic3d_ShaderFlags_AlphaTest",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest) │ │ │ │ + .value("Graphic3d_ShaderFlags_WriteOit",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit) │ │ │ │ + .value("Graphic3d_ShaderFlags_OitDepthPeeling",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling) │ │ │ │ + .value("Graphic3d_ShaderFlags_NB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB) │ │ │ │ + .value("Graphic3d_ShaderFlags_IsPoint",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint) │ │ │ │ + .value("Graphic3d_ShaderFlags_HasTextures",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures) │ │ │ │ + .value("Graphic3d_ShaderFlags_NeedsGeomShader",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfShaderObject",R"#(Type of the shader object.)#") │ │ │ │ + .value("Graphic3d_TOS_VERTEX",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_VERTEX) │ │ │ │ + .value("Graphic3d_TOS_TESS_CONTROL",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_CONTROL) │ │ │ │ + .value("Graphic3d_TOS_TESS_EVALUATION",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_EVALUATION) │ │ │ │ + .value("Graphic3d_TOS_GEOMETRY",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_GEOMETRY) │ │ │ │ + .value("Graphic3d_TOS_FRAGMENT",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_FRAGMENT) │ │ │ │ + .value("Graphic3d_TOS_COMPUTE",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_COMPUTE).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TextureSetBits",R"#(Standard texture units combination bits.)#") │ │ │ │ + .value("Graphic3d_TextureSetBits_NONE",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_NONE) │ │ │ │ + .value("Graphic3d_TextureSetBits_BaseColor",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_BaseColor) │ │ │ │ + .value("Graphic3d_TextureSetBits_Emissive",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Emissive) │ │ │ │ + .value("Graphic3d_TextureSetBits_Occlusion",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Occlusion) │ │ │ │ + .value("Graphic3d_TextureSetBits_Normal",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Normal) │ │ │ │ + .value("Graphic3d_TextureSetBits_MetallicRoughness",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_MetallicRoughness).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfStructure",R"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#") │ │ │ │ + .value("Graphic3d_TOS_WIREFRAME",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME) │ │ │ │ + .value("Graphic3d_TOS_SHADING",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING) │ │ │ │ + .value("Graphic3d_TOS_COMPUTED",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED) │ │ │ │ + .value("Graphic3d_TOS_ALL",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_NameOfTexturePlane",R"#(Type of the texture projection plane for both S and T texture coordinate.)#") │ │ │ │ + .value("Graphic3d_NOTP_XY",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_XY) │ │ │ │ + .value("Graphic3d_NOTP_YZ",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_YZ) │ │ │ │ + .value("Graphic3d_NOTP_ZX",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_ZX) │ │ │ │ + .value("Graphic3d_NOTP_UNKNOWN",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_UNKNOWN).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfBackfacingModel",R"#(Modes of display of back faces in the view.)#") │ │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_Auto",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_Auto) │ │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_DoubleSided",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_DoubleSided) │ │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_BackCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_BackCulled) │ │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_FrontCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_FrontCulled) │ │ │ │ + .value("Graphic3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_AUTOMATIC) │ │ │ │ + .value("Graphic3d_TOBM_FORCE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_FORCE) │ │ │ │ + .value("Graphic3d_TOBM_DISABLE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_DISABLE) │ │ │ │ + .value("V3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_AUTOMATIC) │ │ │ │ + .value("V3d_TOBM_ALWAYS_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_ALWAYS_DISPLAYED) │ │ │ │ + .value("V3d_TOBM_NEVER_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_NEVER_DISPLAYED).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_TypeOfLimit",R"#(Type of graphic resource limit.)#") │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxNbLights",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbLights) │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxNbClipPlanes",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbClipPlanes) │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxNbViews",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbViews) │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxTextureSize",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxTextureSize) │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeX",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeX) │ │ │ │ .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeY",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeY) │ │ │ │ @@ -495,37 +679,67 @@ │ │ │ │ .value("Graphic3d_TypeOfLimit_HasSRGB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasSRGB) │ │ │ │ .value("Graphic3d_TypeOfLimit_HasBlendedOit",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOit) │ │ │ │ .value("Graphic3d_TypeOfLimit_HasBlendedOitMsaa",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOitMsaa) │ │ │ │ .value("Graphic3d_TypeOfLimit_HasFlatShading",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasFlatShading) │ │ │ │ .value("Graphic3d_TypeOfLimit_HasMeshEdges",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasMeshEdges) │ │ │ │ .value("Graphic3d_TypeOfLimit_IsWorkaroundFBO",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_IsWorkaroundFBO) │ │ │ │ .value("Graphic3d_TypeOfLimit_NB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_NB).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_DisplayPriority",R"#(Structure priority - range (do not change this range!). Values are between 0 and 10, with 5 used by default. A structure of priority 10 is displayed the last and appears over the others (considering depth test).)#") │ │ │ │ - .value("Graphic3d_DisplayPriority_INVALID",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID) │ │ │ │ - .value("Graphic3d_DisplayPriority_Bottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom) │ │ │ │ - .value("Graphic3d_DisplayPriority_AlmostBottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom) │ │ │ │ - .value("Graphic3d_DisplayPriority_Below2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2) │ │ │ │ - .value("Graphic3d_DisplayPriority_Below1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1) │ │ │ │ - .value("Graphic3d_DisplayPriority_Below",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below) │ │ │ │ - .value("Graphic3d_DisplayPriority_Normal",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal) │ │ │ │ - .value("Graphic3d_DisplayPriority_Above",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above) │ │ │ │ - .value("Graphic3d_DisplayPriority_Above1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1) │ │ │ │ - .value("Graphic3d_DisplayPriority_Above2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2) │ │ │ │ - .value("Graphic3d_DisplayPriority_Highlight",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight) │ │ │ │ - .value("Graphic3d_DisplayPriority_Topmost",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values(); │ │ │ │ - m.attr("Graphic3d_DisplayPriority_NB") = py::cast(int(Graphic3d_DisplayPriority_NB)); │ │ │ │ + py::enum_(m, "Graphic3d_HorizontalTextAlignment",R"#(Defines the horizontal position of the text relative to its anchor.)#") │ │ │ │ + .value("Graphic3d_HTA_LEFT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT) │ │ │ │ + .value("Graphic3d_HTA_CENTER",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER) │ │ │ │ + .value("Graphic3d_HTA_RIGHT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_StereoMode",R"#(This enumeration defines the list of stereoscopic output modes.)#") │ │ │ │ + .value("Graphic3d_StereoMode_QuadBuffer",Graphic3d_StereoMode::Graphic3d_StereoMode_QuadBuffer) │ │ │ │ + .value("Graphic3d_StereoMode_Anaglyph",Graphic3d_StereoMode::Graphic3d_StereoMode_Anaglyph) │ │ │ │ + .value("Graphic3d_StereoMode_RowInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_RowInterlaced) │ │ │ │ + .value("Graphic3d_StereoMode_ColumnInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_ColumnInterlaced) │ │ │ │ + .value("Graphic3d_StereoMode_ChessBoard",Graphic3d_StereoMode::Graphic3d_StereoMode_ChessBoard) │ │ │ │ + .value("Graphic3d_StereoMode_SideBySide",Graphic3d_StereoMode::Graphic3d_StereoMode_SideBySide) │ │ │ │ + .value("Graphic3d_StereoMode_OverUnder",Graphic3d_StereoMode::Graphic3d_StereoMode_OverUnder) │ │ │ │ + .value("Graphic3d_StereoMode_SoftPageFlip",Graphic3d_StereoMode::Graphic3d_StereoMode_SoftPageFlip) │ │ │ │ + .value("Graphic3d_StereoMode_OpenVR",Graphic3d_StereoMode::Graphic3d_StereoMode_OpenVR).export_values(); │ │ │ │ + m.attr("Graphic3d_StereoMode_NB") = py::cast(int(Graphic3d_StereoMode_NB)); │ │ │ │ + py::enum_(m, "Graphic3d_GroupAspect",R"#(Identifies primitives aspects defined per group. - ASPECT_LINE: aspect for line primitives; - ASPECT_TEXT: aspect for text primitives; - ASPECT_MARKER: aspect for marker primitives; - ASPECT_FILL_AREA: aspect for face primitives.)#") │ │ │ │ + .value("Graphic3d_ASPECT_LINE",Graphic3d_GroupAspect::Graphic3d_ASPECT_LINE) │ │ │ │ + .value("Graphic3d_ASPECT_TEXT",Graphic3d_GroupAspect::Graphic3d_ASPECT_TEXT) │ │ │ │ + .value("Graphic3d_ASPECT_MARKER",Graphic3d_GroupAspect::Graphic3d_ASPECT_MARKER) │ │ │ │ + .value("Graphic3d_ASPECT_FILL_AREA",Graphic3d_GroupAspect::Graphic3d_ASPECT_FILL_AREA).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfMaterial",R"#(Types of materials specifies if a material can change color.)#") │ │ │ │ + .value("Graphic3d_MATERIAL_ASPECT",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT) │ │ │ │ + .value("Graphic3d_MATERIAL_PHYSIC",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values(); │ │ │ │ py::enum_(m, "Graphic3d_TypeOfTexture",R"#(Type of the texture file format.)#") │ │ │ │ .value("Graphic3d_TypeOfTexture_1D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_1D) │ │ │ │ .value("Graphic3d_TypeOfTexture_2D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_2D) │ │ │ │ .value("Graphic3d_TypeOfTexture_3D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_3D) │ │ │ │ .value("Graphic3d_TypeOfTexture_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_CUBEMAP) │ │ │ │ .value("Graphic3d_TOT_2D_MIPMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D_MIPMAP) │ │ │ │ .value("Graphic3d_TOT_1D",Graphic3d_TypeOfTexture::Graphic3d_TOT_1D) │ │ │ │ .value("Graphic3d_TOT_2D",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D) │ │ │ │ .value("Graphic3d_TOT_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_CUBEMAP).export_values(); │ │ │ │ + py::enum_(m, "Graphic3d_TypeOfShadingModel",R"#(Definition of the color shading model.)#") │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_Unlit",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_PhongFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_Gouraud",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_Phong",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_Pbr",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr) │ │ │ │ + .value("Graphic3d_TypeOfShadingModel_PbrFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet) │ │ │ │ + .value("Graphic3d_TOSM_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT) │ │ │ │ + .value("Graphic3d_TOSM_UNLIT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT) │ │ │ │ + .value("Graphic3d_TOSM_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET) │ │ │ │ + .value("Graphic3d_TOSM_VERTEX",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX) │ │ │ │ + .value("Graphic3d_TOSM_FRAGMENT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT) │ │ │ │ + .value("Graphic3d_TOSM_PBR",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR) │ │ │ │ + .value("Graphic3d_TOSM_PBR_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET) │ │ │ │ + .value("Graphic3d_TOSM_NONE",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE) │ │ │ │ + .value("V3d_COLOR",Graphic3d_TypeOfShadingModel::V3d_COLOR) │ │ │ │ + .value("V3d_FLAT",Graphic3d_TypeOfShadingModel::V3d_FLAT) │ │ │ │ + .value("V3d_GOURAUD",Graphic3d_TypeOfShadingModel::V3d_GOURAUD) │ │ │ │ + .value("V3d_PHONG",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values(); │ │ │ │ + m.attr("Graphic3d_TypeOfShadingModel_NB") = py::cast(int(Graphic3d_TypeOfShadingModel_NB)); │ │ │ │ py::enum_(m, "Graphic3d_TextureUnit",R"#(Texture unit.)#") │ │ │ │ .value("Graphic3d_TextureUnit_0",Graphic3d_TextureUnit::Graphic3d_TextureUnit_0) │ │ │ │ .value("Graphic3d_TextureUnit_1",Graphic3d_TextureUnit::Graphic3d_TextureUnit_1) │ │ │ │ .value("Graphic3d_TextureUnit_2",Graphic3d_TextureUnit::Graphic3d_TextureUnit_2) │ │ │ │ .value("Graphic3d_TextureUnit_3",Graphic3d_TextureUnit::Graphic3d_TextureUnit_3) │ │ │ │ .value("Graphic3d_TextureUnit_4",Graphic3d_TextureUnit::Graphic3d_TextureUnit_4) │ │ │ │ .value("Graphic3d_TextureUnit_5",Graphic3d_TextureUnit::Graphic3d_TextureUnit_5) │ │ │ │ @@ -549,228 +763,14 @@ │ │ │ │ .value("Graphic3d_TextureUnit_DepthPeelingDepth",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingDepth) │ │ │ │ .value("Graphic3d_TextureUnit_DepthPeelingFrontColor",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingFrontColor) │ │ │ │ .value("Graphic3d_TextureUnit_ShadowMap",Graphic3d_TextureUnit::Graphic3d_TextureUnit_ShadowMap) │ │ │ │ .value("Graphic3d_TextureUnit_PbrEnvironmentLUT",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrEnvironmentLUT) │ │ │ │ .value("Graphic3d_TextureUnit_PbrIblDiffuseSH",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblDiffuseSH) │ │ │ │ .value("Graphic3d_TextureUnit_PbrIblSpecular",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblSpecular).export_values(); │ │ │ │ m.attr("Graphic3d_TextureUnit_NB") = py::cast(int(Graphic3d_TextureUnit_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfStructure",R"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#") │ │ │ │ - .value("Graphic3d_TOS_WIREFRAME",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME) │ │ │ │ - .value("Graphic3d_TOS_SHADING",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING) │ │ │ │ - .value("Graphic3d_TOS_COMPUTED",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED) │ │ │ │ - .value("Graphic3d_TOS_ALL",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_GlslExtension",R"#(GLSL syntax extensions.)#") │ │ │ │ - .value("Graphic3d_GlslExtension_GL_OES_standard_derivatives",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives) │ │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_shader_texture_lod",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod) │ │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_frag_depth",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth) │ │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_gpu_shader4",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values(); │ │ │ │ - m.attr("Graphic3d_GlslExtension_NB") = py::cast(int(Graphic3d_GlslExtension_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfVisualization",R"#(Modes of visualisation of objects in a view)#") │ │ │ │ - .value("Graphic3d_TOV_WIREFRAME",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME) │ │ │ │ - .value("Graphic3d_TOV_SHADING",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfBackground",R"#(Describes type of view background.)#") │ │ │ │ - .value("Graphic3d_TOB_NONE",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE) │ │ │ │ - .value("Graphic3d_TOB_GRADIENT",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT) │ │ │ │ - .value("Graphic3d_TOB_TEXTURE",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE) │ │ │ │ - .value("Graphic3d_TOB_CUBEMAP",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values(); │ │ │ │ - m.attr("Graphic3d_TypeOfBackground_NB") = py::cast(int(Graphic3d_TypeOfBackground_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_RenderTransparentMethod",R"#(Enumerates transparency rendering methods supported by rasterization mode.)#") │ │ │ │ - .value("Graphic3d_RTM_BLEND_UNORDERED",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_UNORDERED) │ │ │ │ - .value("Graphic3d_RTM_BLEND_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_OIT) │ │ │ │ - .value("Graphic3d_RTM_DEPTH_PEELING_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_DEPTH_PEELING_OIT).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_FrameStatsTimer",R"#(Timers for collecting frame performance statistics.)#") │ │ │ │ - .value("Graphic3d_FrameStatsTimer_ElapsedFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_ElapsedFrame) │ │ │ │ - .value("Graphic3d_FrameStatsTimer_CpuFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuFrame) │ │ │ │ - .value("Graphic3d_FrameStatsTimer_CpuCulling",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuCulling) │ │ │ │ - .value("Graphic3d_FrameStatsTimer_CpuPicking",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuPicking) │ │ │ │ - .value("Graphic3d_FrameStatsTimer_CpuDynamics",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuDynamics).export_values(); │ │ │ │ - m.attr("Graphic3d_FrameStatsTimer_NB") = py::cast(int(Graphic3d_FrameStatsTimer_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_ShaderFlags",R"#(Standard GLSL program combination bits.)#") │ │ │ │ - .value("Graphic3d_ShaderFlags_VertColor",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor) │ │ │ │ - .value("Graphic3d_ShaderFlags_TextureRGB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB) │ │ │ │ - .value("Graphic3d_ShaderFlags_TextureEnv",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv) │ │ │ │ - .value("Graphic3d_ShaderFlags_TextureNormal",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal) │ │ │ │ - .value("Graphic3d_ShaderFlags_PointSimple",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple) │ │ │ │ - .value("Graphic3d_ShaderFlags_PointSprite",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite) │ │ │ │ - .value("Graphic3d_ShaderFlags_PointSpriteA",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA) │ │ │ │ - .value("Graphic3d_ShaderFlags_StippleLine",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine) │ │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanes1",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1) │ │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanes2",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2) │ │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanesN",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN) │ │ │ │ - .value("Graphic3d_ShaderFlags_ClipChains",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains) │ │ │ │ - .value("Graphic3d_ShaderFlags_MeshEdges",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges) │ │ │ │ - .value("Graphic3d_ShaderFlags_AlphaTest",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest) │ │ │ │ - .value("Graphic3d_ShaderFlags_WriteOit",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit) │ │ │ │ - .value("Graphic3d_ShaderFlags_OitDepthPeeling",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling) │ │ │ │ - .value("Graphic3d_ShaderFlags_NB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB) │ │ │ │ - .value("Graphic3d_ShaderFlags_IsPoint",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint) │ │ │ │ - .value("Graphic3d_ShaderFlags_HasTextures",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures) │ │ │ │ - .value("Graphic3d_ShaderFlags_NeedsGeomShader",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_ToneMappingMethod",R"#(Enumerates tone mapping methods.)#") │ │ │ │ - .value("Graphic3d_ToneMappingMethod_Disabled",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled) │ │ │ │ - .value("Graphic3d_ToneMappingMethod_Filmic",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfMaterial",R"#(Types of materials specifies if a material can change color.)#") │ │ │ │ - .value("Graphic3d_MATERIAL_ASPECT",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT) │ │ │ │ - .value("Graphic3d_MATERIAL_PHYSIC",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfConnection",R"#(To manage the connections between the structures.)#") │ │ │ │ - .value("Graphic3d_TOC_ANCESTOR",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR) │ │ │ │ - .value("Graphic3d_TOC_DESCENDANT",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_CappingFlags",R"#(Enumeration of capping flags.)#") │ │ │ │ - .value("Graphic3d_CappingFlags_None",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None) │ │ │ │ - .value("Graphic3d_CappingFlags_ObjectMaterial",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial) │ │ │ │ - .value("Graphic3d_CappingFlags_ObjectTexture",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture) │ │ │ │ - .value("Graphic3d_CappingFlags_ObjectShader",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader) │ │ │ │ - .value("Graphic3d_CappingFlags_ObjectAspect",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_VerticalTextAlignment",R"#(Defines the vertical position of the text relative to its anchor.)#") │ │ │ │ - .value("Graphic3d_VTA_BOTTOM",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_BOTTOM) │ │ │ │ - .value("Graphic3d_VTA_CENTER",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_CENTER) │ │ │ │ - .value("Graphic3d_VTA_TOP",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOP) │ │ │ │ - .value("Graphic3d_VTA_TOPFIRSTLINE",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOPFIRSTLINE).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_NameOfTextureEnv",R"#(Types of standard textures.)#") │ │ │ │ - .value("Graphic3d_NOT_ENV_CLOUDS",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CLOUDS) │ │ │ │ - .value("Graphic3d_NOT_ENV_CV",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CV) │ │ │ │ - .value("Graphic3d_NOT_ENV_MEDIT",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_MEDIT) │ │ │ │ - .value("Graphic3d_NOT_ENV_PEARL",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_PEARL) │ │ │ │ - .value("Graphic3d_NOT_ENV_SKY1",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY1) │ │ │ │ - .value("Graphic3d_NOT_ENV_SKY2",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY2) │ │ │ │ - .value("Graphic3d_NOT_ENV_LINES",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_LINES) │ │ │ │ - .value("Graphic3d_NOT_ENV_ROAD",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_ROAD) │ │ │ │ - .value("Graphic3d_NOT_ENV_UNKNOWN",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_UNKNOWN).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TextPath",R"#(Direction in which text is displayed.)#") │ │ │ │ - .value("Graphic3d_TP_UP",Graphic3d_TextPath::Graphic3d_TP_UP) │ │ │ │ - .value("Graphic3d_TP_DOWN",Graphic3d_TextPath::Graphic3d_TP_DOWN) │ │ │ │ - .value("Graphic3d_TP_LEFT",Graphic3d_TextPath::Graphic3d_TP_LEFT) │ │ │ │ - .value("Graphic3d_TP_RIGHT",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfBackfacingModel",R"#(Modes of display of back faces in the view.)#") │ │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_Auto",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_Auto) │ │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_DoubleSided",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_DoubleSided) │ │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_BackCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_BackCulled) │ │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_FrontCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_FrontCulled) │ │ │ │ - .value("Graphic3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_AUTOMATIC) │ │ │ │ - .value("Graphic3d_TOBM_FORCE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_FORCE) │ │ │ │ - .value("Graphic3d_TOBM_DISABLE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_DISABLE) │ │ │ │ - .value("V3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_AUTOMATIC) │ │ │ │ - .value("V3d_TOBM_ALWAYS_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_ALWAYS_DISPLAYED) │ │ │ │ - .value("V3d_TOBM_NEVER_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_NEVER_DISPLAYED).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfShadingModel",R"#(Definition of the color shading model.)#") │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_Unlit",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_PhongFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_Gouraud",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_Phong",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_Pbr",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr) │ │ │ │ - .value("Graphic3d_TypeOfShadingModel_PbrFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet) │ │ │ │ - .value("Graphic3d_TOSM_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT) │ │ │ │ - .value("Graphic3d_TOSM_UNLIT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT) │ │ │ │ - .value("Graphic3d_TOSM_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET) │ │ │ │ - .value("Graphic3d_TOSM_VERTEX",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX) │ │ │ │ - .value("Graphic3d_TOSM_FRAGMENT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT) │ │ │ │ - .value("Graphic3d_TOSM_PBR",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR) │ │ │ │ - .value("Graphic3d_TOSM_PBR_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET) │ │ │ │ - .value("Graphic3d_TOSM_NONE",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE) │ │ │ │ - .value("V3d_COLOR",Graphic3d_TypeOfShadingModel::V3d_COLOR) │ │ │ │ - .value("V3d_FLAT",Graphic3d_TypeOfShadingModel::V3d_FLAT) │ │ │ │ - .value("V3d_GOURAUD",Graphic3d_TypeOfShadingModel::V3d_GOURAUD) │ │ │ │ - .value("V3d_PHONG",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values(); │ │ │ │ - m.attr("Graphic3d_TypeOfShadingModel_NB") = py::cast(int(Graphic3d_TypeOfShadingModel_NB)); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfAttribute",R"#(Type of attribute in Vertex Buffer)#") │ │ │ │ - .value("Graphic3d_TOA_POS",Graphic3d_TypeOfAttribute::Graphic3d_TOA_POS) │ │ │ │ - .value("Graphic3d_TOA_NORM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_NORM) │ │ │ │ - .value("Graphic3d_TOA_UV",Graphic3d_TypeOfAttribute::Graphic3d_TOA_UV) │ │ │ │ - .value("Graphic3d_TOA_COLOR",Graphic3d_TypeOfAttribute::Graphic3d_TOA_COLOR) │ │ │ │ - .value("Graphic3d_TOA_CUSTOM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_CUSTOM).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfData",R"#(Type of the element in Vertex or Index Buffer)#") │ │ │ │ - .value("Graphic3d_TOD_USHORT",Graphic3d_TypeOfData::Graphic3d_TOD_USHORT) │ │ │ │ - .value("Graphic3d_TOD_UINT",Graphic3d_TypeOfData::Graphic3d_TOD_UINT) │ │ │ │ - .value("Graphic3d_TOD_VEC2",Graphic3d_TypeOfData::Graphic3d_TOD_VEC2) │ │ │ │ - .value("Graphic3d_TOD_VEC3",Graphic3d_TypeOfData::Graphic3d_TOD_VEC3) │ │ │ │ - .value("Graphic3d_TOD_VEC4",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4) │ │ │ │ - .value("Graphic3d_TOD_VEC4UB",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4UB) │ │ │ │ - .value("Graphic3d_TOD_FLOAT",Graphic3d_TypeOfData::Graphic3d_TOD_FLOAT).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfAnswer",R"#(The answer of the method AcceptDisplay AcceptDisplay means is it possible to display the specified structure in the specified view ? TOA_YES yes TOA_NO no TOA_COMPUTE yes but we have to compute the representation)#") │ │ │ │ - .value("Graphic3d_TOA_YES",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES) │ │ │ │ - .value("Graphic3d_TOA_NO",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO) │ │ │ │ - .value("Graphic3d_TOA_COMPUTE",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values(); │ │ │ │ - m.attr("Graphic3d_ZLayerId_UNKNOWN") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN)); │ │ │ │ - m.attr("Graphic3d_ZLayerId_Default") = py::cast(int(Graphic3d_ZLayerId_Default)); │ │ │ │ - m.attr("Graphic3d_ZLayerId_Top") = py::cast(int(Graphic3d_ZLayerId_Top)); │ │ │ │ - m.attr("Graphic3d_ZLayerId_Topmost") = py::cast(int(Graphic3d_ZLayerId_Topmost)); │ │ │ │ - m.attr("Graphic3d_ZLayerId_TopOSD") = py::cast(int(Graphic3d_ZLayerId_TopOSD)); │ │ │ │ - m.attr("Graphic3d_ZLayerId_BotOSD") = py::cast(int(Graphic3d_ZLayerId_BotOSD)); │ │ │ │ - py::enum_(m, "Graphic3d_NameOfTexture1D",R"#(Types of standard textures.)#") │ │ │ │ - .value("Graphic3d_NOT_1D_ELEVATION",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION) │ │ │ │ - .value("Graphic3d_NOT_1D_UNKNOWN",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_FrameStatsCounter",R"#(Stats counter.)#") │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayers",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructs",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesGeom",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesFbos",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesTextures",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayersNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbGroupsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsFillNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsLineNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsPointNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsTextNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbTrianglesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLinesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbPointsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayersImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbGroupsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsFillImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsLineImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsPointImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsTextImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbTrianglesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLinesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate) │ │ │ │ - .value("Graphic3d_FrameStatsCounter_NbPointsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values(); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_NB") = py::cast(int(Graphic3d_FrameStatsCounter_NB)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_SCENE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_SCENE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_RENDERED_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_RENDERED_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER)); │ │ │ │ - m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER)); │ │ │ │ - py::enum_(m, "Graphic3d_BufferType",R"#(Define buffers available for dump)#") │ │ │ │ - .value("Graphic3d_BT_RGB",Graphic3d_BufferType::Graphic3d_BT_RGB) │ │ │ │ - .value("Graphic3d_BT_RGBA",Graphic3d_BufferType::Graphic3d_BT_RGBA) │ │ │ │ - .value("Graphic3d_BT_Depth",Graphic3d_BufferType::Graphic3d_BT_Depth) │ │ │ │ - .value("Graphic3d_BT_RGB_RayTraceHdrLeft",Graphic3d_BufferType::Graphic3d_BT_RGB_RayTraceHdrLeft) │ │ │ │ - .value("Graphic3d_BT_Red",Graphic3d_BufferType::Graphic3d_BT_Red).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfTextureFilter",R"#(Type of the texture filter. Notice that for textures without mipmaps linear interpolation will be used instead of TOTF_BILINEAR and TOTF_TRILINEAR.)#") │ │ │ │ - .value("Graphic3d_TOTF_NEAREST",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST) │ │ │ │ - .value("Graphic3d_TOTF_BILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR) │ │ │ │ - .value("Graphic3d_TOTF_TRILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values(); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_None") = py::cast(int(Graphic3d_ArrayFlags_None)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexNormal") = py::cast(int(Graphic3d_ArrayFlags_VertexNormal)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexColor") = py::cast(int(Graphic3d_ArrayFlags_VertexColor)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexTexel") = py::cast(int(Graphic3d_ArrayFlags_VertexTexel)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_BoundColor") = py::cast(int(Graphic3d_ArrayFlags_BoundColor)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_AttribsMutable") = py::cast(int(Graphic3d_ArrayFlags_AttribsMutable)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_AttribsDeinterleaved") = py::cast(int(Graphic3d_ArrayFlags_AttribsDeinterleaved)); │ │ │ │ - m.attr("Graphic3d_ArrayFlags_IndexesMutable") = py::cast(int(Graphic3d_ArrayFlags_IndexesMutable)); │ │ │ │ - py::enum_(m, "Graphic3d_TypeOfShaderObject",R"#(Type of the shader object.)#") │ │ │ │ - .value("Graphic3d_TOS_VERTEX",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_VERTEX) │ │ │ │ - .value("Graphic3d_TOS_TESS_CONTROL",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_CONTROL) │ │ │ │ - .value("Graphic3d_TOS_TESS_EVALUATION",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_EVALUATION) │ │ │ │ - .value("Graphic3d_TOS_GEOMETRY",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_GEOMETRY) │ │ │ │ - .value("Graphic3d_TOS_FRAGMENT",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_FRAGMENT) │ │ │ │ - .value("Graphic3d_TOS_COMPUTE",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_COMPUTE).export_values(); │ │ │ │ - py::enum_(m, "Graphic3d_TransModeFlags",R"#(Transform Persistence Mode defining whether to lock in object position, rotation and / or zooming relative to camera position.)#") │ │ │ │ - .value("Graphic3d_TMF_None",Graphic3d_TransModeFlags::Graphic3d_TMF_None) │ │ │ │ - .value("Graphic3d_TMF_ZoomPers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomPers) │ │ │ │ - .value("Graphic3d_TMF_RotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_RotatePers) │ │ │ │ - .value("Graphic3d_TMF_TriedronPers",Graphic3d_TransModeFlags::Graphic3d_TMF_TriedronPers) │ │ │ │ - .value("Graphic3d_TMF_2d",Graphic3d_TransModeFlags::Graphic3d_TMF_2d) │ │ │ │ - .value("Graphic3d_TMF_CameraPers",Graphic3d_TransModeFlags::Graphic3d_TMF_CameraPers) │ │ │ │ - .value("Graphic3d_TMF_ZoomRotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomRotatePers).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Graphic3d_CStructure : public Graphic3d_CStructure{ │ │ │ │ public: │ │ │ │ using Graphic3d_CStructure::Graphic3d_CStructure; │ │ │ ├── ./usr/share/libocp/OCP/IFSelect_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -367,45 +367,45 @@ │ │ │ │ py::module m = main_module.def_submodule("IFSelect", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "IFSelect_PrintFail",R"#(Indicates whether there will be information on warnings as well as on failures. The terms of this enumeration have the following semantics: - IFSelect_FailOnly gives information on failures only - IFSelect_FailAndWarn gives information on both failures and warnings. used to pilot PrintCheckList)#") │ │ │ │ + .value("IFSelect_FailOnly",IFSelect_PrintFail::IFSelect_FailOnly) │ │ │ │ + .value("IFSelect_FailAndWarn",IFSelect_PrintFail::IFSelect_FailAndWarn).export_values(); │ │ │ │ + py::enum_(m, "IFSelect_EditValue",R"#(Controls access on Values by an Editor EditOptional : normal access, in addition may be removed Editable : normal access, must be present EditProtected : access must be validated EditComputed : why write it ? it will be recomputed EditRead : no way to write it, only for read EditDynamic : not a field, only to be displayed)#") │ │ │ │ + .value("IFSelect_Optional",IFSelect_EditValue::IFSelect_Optional) │ │ │ │ + .value("IFSelect_Editable",IFSelect_EditValue::IFSelect_Editable) │ │ │ │ + .value("IFSelect_EditProtected",IFSelect_EditValue::IFSelect_EditProtected) │ │ │ │ + .value("IFSelect_EditComputed",IFSelect_EditValue::IFSelect_EditComputed) │ │ │ │ + .value("IFSelect_EditRead",IFSelect_EditValue::IFSelect_EditRead) │ │ │ │ + .value("IFSelect_EditDynamic",IFSelect_EditValue::IFSelect_EditDynamic).export_values(); │ │ │ │ py::enum_(m, "IFSelect_RemainMode",R"#()#") │ │ │ │ .value("IFSelect_RemainForget",IFSelect_RemainMode::IFSelect_RemainForget) │ │ │ │ .value("IFSelect_RemainCompute",IFSelect_RemainMode::IFSelect_RemainCompute) │ │ │ │ .value("IFSelect_RemainDisplay",IFSelect_RemainMode::IFSelect_RemainDisplay) │ │ │ │ .value("IFSelect_RemainUndo",IFSelect_RemainMode::IFSelect_RemainUndo).export_values(); │ │ │ │ - py::enum_(m, "IFSelect_PrintFail",R"#(Indicates whether there will be information on warnings as well as on failures. The terms of this enumeration have the following semantics: - IFSelect_FailOnly gives information on failures only - IFSelect_FailAndWarn gives information on both failures and warnings. used to pilot PrintCheckList)#") │ │ │ │ - .value("IFSelect_FailOnly",IFSelect_PrintFail::IFSelect_FailOnly) │ │ │ │ - .value("IFSelect_FailAndWarn",IFSelect_PrintFail::IFSelect_FailAndWarn).export_values(); │ │ │ │ - py::enum_(m, "IFSelect_ReturnStatus",R"#(Qualifies an execution status : RetVoid : normal execution which created nothing, or no data to process RetDone : normal execution with a result RetError : error in command or input data, no execution RetFail : execution was run and has failed RetStop : indicates end or stop (such as Raise))#") │ │ │ │ - .value("IFSelect_RetVoid",IFSelect_ReturnStatus::IFSelect_RetVoid) │ │ │ │ - .value("IFSelect_RetDone",IFSelect_ReturnStatus::IFSelect_RetDone) │ │ │ │ - .value("IFSelect_RetError",IFSelect_ReturnStatus::IFSelect_RetError) │ │ │ │ - .value("IFSelect_RetFail",IFSelect_ReturnStatus::IFSelect_RetFail) │ │ │ │ - .value("IFSelect_RetStop",IFSelect_ReturnStatus::IFSelect_RetStop).export_values(); │ │ │ │ py::enum_(m, "IFSelect_PrintCount",R"#(Lets you choose the manner in which you want to analyze an IGES or STEP file. Your analysis can be either message-oriented or entity-oriented. The specific values are as follows: - ItemsByEntity is a sequential list of all messages per entity of the defined type - CountByItem is the number of entities of the defined type, with their rank number per message - ShortByItem is the number of entities of the defined type, with their types per message; displays the rank numbers of the first five entities of the defined type per message - ListByItem is the number of entities of the defined type per message and the numbers of the entities - EntitiesByItem is the number of entities of the defined type, with their types, rank numbers and Directory Entry numbers per message - GeneralInfo is general information on transfer such as: - number of entities - number of roots - number of resulting Open CASCADE shapes - number of warnings and failures - CountSummary summary statistics for counters and signatures - ResultCount information that contains the number of roots in the IGES file and the number of resulting Open CASCADE shapes. - Mapping of the IGES root entities to the resulting Open CASCADE shape (including type and form of the IGES entity and type of the resulting shape).)#") │ │ │ │ .value("IFSelect_ItemsByEntity",IFSelect_PrintCount::IFSelect_ItemsByEntity) │ │ │ │ .value("IFSelect_CountByItem",IFSelect_PrintCount::IFSelect_CountByItem) │ │ │ │ .value("IFSelect_ShortByItem",IFSelect_PrintCount::IFSelect_ShortByItem) │ │ │ │ .value("IFSelect_ListByItem",IFSelect_PrintCount::IFSelect_ListByItem) │ │ │ │ .value("IFSelect_EntitiesByItem",IFSelect_PrintCount::IFSelect_EntitiesByItem) │ │ │ │ .value("IFSelect_CountSummary",IFSelect_PrintCount::IFSelect_CountSummary) │ │ │ │ .value("IFSelect_GeneralInfo",IFSelect_PrintCount::IFSelect_GeneralInfo) │ │ │ │ .value("IFSelect_Mapping",IFSelect_PrintCount::IFSelect_Mapping) │ │ │ │ .value("IFSelect_ResultCount",IFSelect_PrintCount::IFSelect_ResultCount).export_values(); │ │ │ │ - py::enum_(m, "IFSelect_EditValue",R"#(Controls access on Values by an Editor EditOptional : normal access, in addition may be removed Editable : normal access, must be present EditProtected : access must be validated EditComputed : why write it ? it will be recomputed EditRead : no way to write it, only for read EditDynamic : not a field, only to be displayed)#") │ │ │ │ - .value("IFSelect_Optional",IFSelect_EditValue::IFSelect_Optional) │ │ │ │ - .value("IFSelect_Editable",IFSelect_EditValue::IFSelect_Editable) │ │ │ │ - .value("IFSelect_EditProtected",IFSelect_EditValue::IFSelect_EditProtected) │ │ │ │ - .value("IFSelect_EditComputed",IFSelect_EditValue::IFSelect_EditComputed) │ │ │ │ - .value("IFSelect_EditRead",IFSelect_EditValue::IFSelect_EditRead) │ │ │ │ - .value("IFSelect_EditDynamic",IFSelect_EditValue::IFSelect_EditDynamic).export_values(); │ │ │ │ + py::enum_(m, "IFSelect_ReturnStatus",R"#(Qualifies an execution status : RetVoid : normal execution which created nothing, or no data to process RetDone : normal execution with a result RetError : error in command or input data, no execution RetFail : execution was run and has failed RetStop : indicates end or stop (such as Raise))#") │ │ │ │ + .value("IFSelect_RetVoid",IFSelect_ReturnStatus::IFSelect_RetVoid) │ │ │ │ + .value("IFSelect_RetDone",IFSelect_ReturnStatus::IFSelect_RetDone) │ │ │ │ + .value("IFSelect_RetError",IFSelect_ReturnStatus::IFSelect_RetError) │ │ │ │ + .value("IFSelect_RetFail",IFSelect_ReturnStatus::IFSelect_RetFail) │ │ │ │ + .value("IFSelect_RetStop",IFSelect_ReturnStatus::IFSelect_RetStop).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_IFSelect_Activator : public IFSelect_Activator{ │ │ │ │ public: │ │ │ │ using IFSelect_Activator::IFSelect_Activator; │ │ │ ├── ./usr/share/libocp/OCP/IGESData_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -206,38 +206,38 @@ │ │ │ │ py::module m = main_module.def_submodule("IGESData", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "IGESData_ReadStage",R"#(gives successive stages of reading an entity (see ParamReader))#") │ │ │ │ - .value("IGESData_ReadDir",IGESData_ReadStage::IGESData_ReadDir) │ │ │ │ - .value("IGESData_ReadOwn",IGESData_ReadStage::IGESData_ReadOwn) │ │ │ │ - .value("IGESData_ReadAssocs",IGESData_ReadStage::IGESData_ReadAssocs) │ │ │ │ - .value("IGESData_ReadProps",IGESData_ReadStage::IGESData_ReadProps) │ │ │ │ - .value("IGESData_ReadEnd",IGESData_ReadStage::IGESData_ReadEnd).export_values(); │ │ │ │ + py::enum_(m, "IGESData_DefList",R"#(Some fields of an IGES entity may be - Undefined - Defined as a single item - Defined as a list of items. A typical example, which presents this kind of variation, is a level number. This enumeration allows you to identify which of the above is the case. The semantics of the terms is as follows: - DefNone indicates that the list is empty (there is not even a single item). - DefOne indicates that the list contains a single item. - DefSeveral indicates that the list contains several items. - ErrorOne indicates that the list contains one item, but that this item is incorrect - ErrorSeveral indicates that the list contains several items, but that at least one of them is incorrect.)#") │ │ │ │ + .value("IGESData_DefNone",IGESData_DefList::IGESData_DefNone) │ │ │ │ + .value("IGESData_DefOne",IGESData_DefList::IGESData_DefOne) │ │ │ │ + .value("IGESData_DefSeveral",IGESData_DefList::IGESData_DefSeveral) │ │ │ │ + .value("IGESData_ErrorOne",IGESData_DefList::IGESData_ErrorOne) │ │ │ │ + .value("IGESData_ErrorSeveral",IGESData_DefList::IGESData_ErrorSeveral).export_values(); │ │ │ │ + py::enum_(m, "IGESData_Status",R"#()#") │ │ │ │ + .value("IGESData_EntityOK",IGESData_Status::IGESData_EntityOK) │ │ │ │ + .value("IGESData_EntityError",IGESData_Status::IGESData_EntityError) │ │ │ │ + .value("IGESData_ReferenceError",IGESData_Status::IGESData_ReferenceError) │ │ │ │ + .value("IGESData_TypeError",IGESData_Status::IGESData_TypeError).export_values(); │ │ │ │ py::enum_(m, "IGESData_DefType",R"#(Some fields of an IGES entity may be - Undefined - Defined as a positive integer - Defined as a reference to a specialized entity. A typical example of this kind of variation is color. This enumeration allows you to identify which of the above is the case. The semantics of the terms are as follows: - DefVoid indicates that the item contained in the field is undefined - DefValue indicates that the item is defined as an immediate positive integer value (i.e. not a pointer) - DefReference indicates that the item is defined as an entity - DefAny indicates the item could not be determined - ErrorVal indicates that the item is defined as an integer but its value is incorrect (it could be out of range, for example) - ErrorRef indicates that the item is defined as an entity but is not of the required type.)#") │ │ │ │ .value("IGESData_DefVoid",IGESData_DefType::IGESData_DefVoid) │ │ │ │ .value("IGESData_DefValue",IGESData_DefType::IGESData_DefValue) │ │ │ │ .value("IGESData_DefReference",IGESData_DefType::IGESData_DefReference) │ │ │ │ .value("IGESData_DefAny",IGESData_DefType::IGESData_DefAny) │ │ │ │ .value("IGESData_ErrorVal",IGESData_DefType::IGESData_ErrorVal) │ │ │ │ .value("IGESData_ErrorRef",IGESData_DefType::IGESData_ErrorRef).export_values(); │ │ │ │ - py::enum_(m, "IGESData_Status",R"#()#") │ │ │ │ - .value("IGESData_EntityOK",IGESData_Status::IGESData_EntityOK) │ │ │ │ - .value("IGESData_EntityError",IGESData_Status::IGESData_EntityError) │ │ │ │ - .value("IGESData_ReferenceError",IGESData_Status::IGESData_ReferenceError) │ │ │ │ - .value("IGESData_TypeError",IGESData_Status::IGESData_TypeError).export_values(); │ │ │ │ - py::enum_(m, "IGESData_DefList",R"#(Some fields of an IGES entity may be - Undefined - Defined as a single item - Defined as a list of items. A typical example, which presents this kind of variation, is a level number. This enumeration allows you to identify which of the above is the case. The semantics of the terms is as follows: - DefNone indicates that the list is empty (there is not even a single item). - DefOne indicates that the list contains a single item. - DefSeveral indicates that the list contains several items. - ErrorOne indicates that the list contains one item, but that this item is incorrect - ErrorSeveral indicates that the list contains several items, but that at least one of them is incorrect.)#") │ │ │ │ - .value("IGESData_DefNone",IGESData_DefList::IGESData_DefNone) │ │ │ │ - .value("IGESData_DefOne",IGESData_DefList::IGESData_DefOne) │ │ │ │ - .value("IGESData_DefSeveral",IGESData_DefList::IGESData_DefSeveral) │ │ │ │ - .value("IGESData_ErrorOne",IGESData_DefList::IGESData_ErrorOne) │ │ │ │ - .value("IGESData_ErrorSeveral",IGESData_DefList::IGESData_ErrorSeveral).export_values(); │ │ │ │ + py::enum_(m, "IGESData_ReadStage",R"#(gives successive stages of reading an entity (see ParamReader))#") │ │ │ │ + .value("IGESData_ReadDir",IGESData_ReadStage::IGESData_ReadDir) │ │ │ │ + .value("IGESData_ReadOwn",IGESData_ReadStage::IGESData_ReadOwn) │ │ │ │ + .value("IGESData_ReadAssocs",IGESData_ReadStage::IGESData_ReadAssocs) │ │ │ │ + .value("IGESData_ReadProps",IGESData_ReadStage::IGESData_ReadProps) │ │ │ │ + .value("IGESData_ReadEnd",IGESData_ReadStage::IGESData_ReadEnd).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_IGESData_FileRecognizer : public IGESData_FileRecognizer{ │ │ │ │ public: │ │ │ │ using IGESData_FileRecognizer::IGESData_FileRecognizer; │ │ │ ├── ./usr/share/libocp/OCP/IntRes2d_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -44,22 +44,22 @@ │ │ │ │ py::module m = main_module.def_submodule("IntRes2d", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "IntRes2d_Position",R"#()#") │ │ │ │ - .value("IntRes2d_Head",IntRes2d_Position::IntRes2d_Head) │ │ │ │ - .value("IntRes2d_Middle",IntRes2d_Position::IntRes2d_Middle) │ │ │ │ - .value("IntRes2d_End",IntRes2d_Position::IntRes2d_End).export_values(); │ │ │ │ py::enum_(m, "IntRes2d_Situation",R"#()#") │ │ │ │ .value("IntRes2d_Inside",IntRes2d_Situation::IntRes2d_Inside) │ │ │ │ .value("IntRes2d_Outside",IntRes2d_Situation::IntRes2d_Outside) │ │ │ │ .value("IntRes2d_Unknown",IntRes2d_Situation::IntRes2d_Unknown).export_values(); │ │ │ │ + py::enum_(m, "IntRes2d_Position",R"#()#") │ │ │ │ + .value("IntRes2d_Head",IntRes2d_Position::IntRes2d_Head) │ │ │ │ + .value("IntRes2d_Middle",IntRes2d_Position::IntRes2d_Middle) │ │ │ │ + .value("IntRes2d_End",IntRes2d_Position::IntRes2d_End).export_values(); │ │ │ │ py::enum_(m, "IntRes2d_TypeTrans",R"#()#") │ │ │ │ .value("IntRes2d_In",IntRes2d_TypeTrans::IntRes2d_In) │ │ │ │ .value("IntRes2d_Out",IntRes2d_TypeTrans::IntRes2d_Out) │ │ │ │ .value("IntRes2d_Touch",IntRes2d_TypeTrans::IntRes2d_Touch) │ │ │ │ .value("IntRes2d_Undecided",IntRes2d_TypeTrans::IntRes2d_Undecided).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ ├── ./usr/share/libocp/OCP/Interface_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -221,41 +221,41 @@ │ │ │ │ py::module m = main_module.def_submodule("Interface", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Interface_DataState",R"#(validity state of anentity's content (see InterfaceModel))#") │ │ │ │ - .value("Interface_StateOK",Interface_DataState::Interface_StateOK) │ │ │ │ - .value("Interface_LoadWarning",Interface_DataState::Interface_LoadWarning) │ │ │ │ - .value("Interface_LoadFail",Interface_DataState::Interface_LoadFail) │ │ │ │ - .value("Interface_DataWarning",Interface_DataState::Interface_DataWarning) │ │ │ │ - .value("Interface_DataFail",Interface_DataState::Interface_DataFail) │ │ │ │ - .value("Interface_StateUnloaded",Interface_DataState::Interface_StateUnloaded) │ │ │ │ - .value("Interface_StateUnknown",Interface_DataState::Interface_StateUnknown).export_values(); │ │ │ │ - py::enum_(m, "Interface_CheckStatus",R"#(Classifies checks OK : check is empty Warning : Warning, no Fail Fail : Fail Others to query : Any : any status Message : Warning/Fail NoFail : Warning/OK)#") │ │ │ │ - .value("Interface_CheckOK",Interface_CheckStatus::Interface_CheckOK) │ │ │ │ - .value("Interface_CheckWarning",Interface_CheckStatus::Interface_CheckWarning) │ │ │ │ - .value("Interface_CheckFail",Interface_CheckStatus::Interface_CheckFail) │ │ │ │ - .value("Interface_CheckAny",Interface_CheckStatus::Interface_CheckAny) │ │ │ │ - .value("Interface_CheckMessage",Interface_CheckStatus::Interface_CheckMessage) │ │ │ │ - .value("Interface_CheckNoFail",Interface_CheckStatus::Interface_CheckNoFail).export_values(); │ │ │ │ py::enum_(m, "Interface_ParamType",R"#()#") │ │ │ │ .value("Interface_ParamMisc",Interface_ParamType::Interface_ParamMisc) │ │ │ │ .value("Interface_ParamInteger",Interface_ParamType::Interface_ParamInteger) │ │ │ │ .value("Interface_ParamReal",Interface_ParamType::Interface_ParamReal) │ │ │ │ .value("Interface_ParamIdent",Interface_ParamType::Interface_ParamIdent) │ │ │ │ .value("Interface_ParamVoid",Interface_ParamType::Interface_ParamVoid) │ │ │ │ .value("Interface_ParamText",Interface_ParamType::Interface_ParamText) │ │ │ │ .value("Interface_ParamEnum",Interface_ParamType::Interface_ParamEnum) │ │ │ │ .value("Interface_ParamLogical",Interface_ParamType::Interface_ParamLogical) │ │ │ │ .value("Interface_ParamSub",Interface_ParamType::Interface_ParamSub) │ │ │ │ .value("Interface_ParamHexa",Interface_ParamType::Interface_ParamHexa) │ │ │ │ .value("Interface_ParamBinary",Interface_ParamType::Interface_ParamBinary).export_values(); │ │ │ │ + py::enum_(m, "Interface_CheckStatus",R"#(Classifies checks OK : check is empty Warning : Warning, no Fail Fail : Fail Others to query : Any : any status Message : Warning/Fail NoFail : Warning/OK)#") │ │ │ │ + .value("Interface_CheckOK",Interface_CheckStatus::Interface_CheckOK) │ │ │ │ + .value("Interface_CheckWarning",Interface_CheckStatus::Interface_CheckWarning) │ │ │ │ + .value("Interface_CheckFail",Interface_CheckStatus::Interface_CheckFail) │ │ │ │ + .value("Interface_CheckAny",Interface_CheckStatus::Interface_CheckAny) │ │ │ │ + .value("Interface_CheckMessage",Interface_CheckStatus::Interface_CheckMessage) │ │ │ │ + .value("Interface_CheckNoFail",Interface_CheckStatus::Interface_CheckNoFail).export_values(); │ │ │ │ + py::enum_(m, "Interface_DataState",R"#(validity state of anentity's content (see InterfaceModel))#") │ │ │ │ + .value("Interface_StateOK",Interface_DataState::Interface_StateOK) │ │ │ │ + .value("Interface_LoadWarning",Interface_DataState::Interface_LoadWarning) │ │ │ │ + .value("Interface_LoadFail",Interface_DataState::Interface_LoadFail) │ │ │ │ + .value("Interface_DataWarning",Interface_DataState::Interface_DataWarning) │ │ │ │ + .value("Interface_DataFail",Interface_DataState::Interface_DataFail) │ │ │ │ + .value("Interface_StateUnloaded",Interface_DataState::Interface_StateUnloaded) │ │ │ │ + .value("Interface_StateUnknown",Interface_DataState::Interface_StateUnknown).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Interface_CopyControl : public Interface_CopyControl{ │ │ │ │ public: │ │ │ │ using Interface_CopyControl::Interface_CopyControl; │ │ │ ├── ./usr/share/libocp/OCP/LProp_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -40,23 +40,23 @@ │ │ │ │ py::module m = main_module.def_submodule("LProp", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "LProp_CIType",R"#(Identifies the type of a particular point on a curve: - LProp_Inflection: a point of inflection - LProp_MinCur: a minimum of curvature - LProp_MaxCur: a maximum of curvature.)#") │ │ │ │ + .value("LProp_Inflection",LProp_CIType::LProp_Inflection) │ │ │ │ + .value("LProp_MinCur",LProp_CIType::LProp_MinCur) │ │ │ │ + .value("LProp_MaxCur",LProp_CIType::LProp_MaxCur).export_values(); │ │ │ │ py::enum_(m, "LProp_Status",R"#()#") │ │ │ │ .value("LProp_Undecided",LProp_Status::LProp_Undecided) │ │ │ │ .value("LProp_Undefined",LProp_Status::LProp_Undefined) │ │ │ │ .value("LProp_Defined",LProp_Status::LProp_Defined) │ │ │ │ .value("LProp_Computed",LProp_Status::LProp_Computed).export_values(); │ │ │ │ - py::enum_(m, "LProp_CIType",R"#(Identifies the type of a particular point on a curve: - LProp_Inflection: a point of inflection - LProp_MinCur: a minimum of curvature - LProp_MaxCur: a maximum of curvature.)#") │ │ │ │ - .value("LProp_Inflection",LProp_CIType::LProp_Inflection) │ │ │ │ - .value("LProp_MinCur",LProp_CIType::LProp_MinCur) │ │ │ │ - .value("LProp_MaxCur",LProp_CIType::LProp_MaxCur).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"LProp_AnalyticCurInf",R"#(Computes the locals extremas of curvature of a gp curve Remark : a gp curve has not inflection.)#"); │ │ │ │ py::class_ >(m,"LProp_CurAndInf",R"#(Stores the parameters of a curve 2d or 3d corresponding to the curvature's extremas and the Inflection's Points.)#"); │ │ │ │ preregister_template_NCollection_Sequence(m,"LProp_SequenceOfCIType"); │ │ │ ├── ./usr/share/libocp/OCP/MeshVS_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -153,14 +153,18 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "MeshVS_MeshSelectionMethod",R"#(this enumeration describe what type of sensitive entity will be built in 0-th selection mode (it means that whole mesh is selected ))#") │ │ │ │ + .value("MeshVS_MSM_PRECISE",MeshVS_MeshSelectionMethod::MeshVS_MSM_PRECISE) │ │ │ │ + .value("MeshVS_MSM_NODES",MeshVS_MeshSelectionMethod::MeshVS_MSM_NODES) │ │ │ │ + .value("MeshVS_MSM_BOX",MeshVS_MeshSelectionMethod::MeshVS_MSM_BOX).export_values(); │ │ │ │ py::enum_(m, "MeshVS_EntityType",R"#()#") │ │ │ │ .value("MeshVS_ET_NONE",MeshVS_EntityType::MeshVS_ET_NONE) │ │ │ │ .value("MeshVS_ET_Node",MeshVS_EntityType::MeshVS_ET_Node) │ │ │ │ .value("MeshVS_ET_0D",MeshVS_EntityType::MeshVS_ET_0D) │ │ │ │ .value("MeshVS_ET_Link",MeshVS_EntityType::MeshVS_ET_Link) │ │ │ │ .value("MeshVS_ET_Face",MeshVS_EntityType::MeshVS_ET_Face) │ │ │ │ .value("MeshVS_ET_Volume",MeshVS_EntityType::MeshVS_ET_Volume) │ │ │ │ @@ -203,25 +207,24 @@ │ │ │ │ .value("MeshVS_DA_ComputeSelectionTime",MeshVS_DrawerAttribute::MeshVS_DA_ComputeSelectionTime) │ │ │ │ .value("MeshVS_DA_DisplayNodes",MeshVS_DrawerAttribute::MeshVS_DA_DisplayNodes) │ │ │ │ .value("MeshVS_DA_SelectableAuto",MeshVS_DrawerAttribute::MeshVS_DA_SelectableAuto) │ │ │ │ .value("MeshVS_DA_ShowEdges",MeshVS_DrawerAttribute::MeshVS_DA_ShowEdges) │ │ │ │ .value("MeshVS_DA_SmoothShading",MeshVS_DrawerAttribute::MeshVS_DA_SmoothShading) │ │ │ │ .value("MeshVS_DA_SupressBackFaces",MeshVS_DrawerAttribute::MeshVS_DA_SupressBackFaces) │ │ │ │ .value("MeshVS_DA_User",MeshVS_DrawerAttribute::MeshVS_DA_User).export_values(); │ │ │ │ - py::enum_(m, "MeshVS_MeshSelectionMethod",R"#(this enumeration describe what type of sensitive entity will be built in 0-th selection mode (it means that whole mesh is selected ))#") │ │ │ │ - .value("MeshVS_MSM_PRECISE",MeshVS_MeshSelectionMethod::MeshVS_MSM_PRECISE) │ │ │ │ - .value("MeshVS_MSM_NODES",MeshVS_MeshSelectionMethod::MeshVS_MSM_NODES) │ │ │ │ - .value("MeshVS_MSM_BOX",MeshVS_MeshSelectionMethod::MeshVS_MSM_BOX).export_values(); │ │ │ │ - m.attr("MeshVS_BP_Mesh") = py::cast(int(MeshVS_BP_Mesh)); │ │ │ │ - m.attr("MeshVS_BP_NodalColor") = py::cast(int(MeshVS_BP_NodalColor)); │ │ │ │ - m.attr("MeshVS_BP_ElemColor") = py::cast(int(MeshVS_BP_ElemColor)); │ │ │ │ - m.attr("MeshVS_BP_Text") = py::cast(int(MeshVS_BP_Text)); │ │ │ │ - m.attr("MeshVS_BP_Vector") = py::cast(int(MeshVS_BP_Vector)); │ │ │ │ - m.attr("MeshVS_BP_User") = py::cast(int(MeshVS_BP_User)); │ │ │ │ - m.attr("MeshVS_BP_Default") = py::cast(int(MeshVS_BP_Default)); │ │ │ │ + py::enum_(m, "MeshVS_SelectionModeFlags",R"#()#") │ │ │ │ + .value("MeshVS_SMF_Mesh",MeshVS_SelectionModeFlags::MeshVS_SMF_Mesh) │ │ │ │ + .value("MeshVS_SMF_Node",MeshVS_SelectionModeFlags::MeshVS_SMF_Node) │ │ │ │ + .value("MeshVS_SMF_0D",MeshVS_SelectionModeFlags::MeshVS_SMF_0D) │ │ │ │ + .value("MeshVS_SMF_Link",MeshVS_SelectionModeFlags::MeshVS_SMF_Link) │ │ │ │ + .value("MeshVS_SMF_Face",MeshVS_SelectionModeFlags::MeshVS_SMF_Face) │ │ │ │ + .value("MeshVS_SMF_Volume",MeshVS_SelectionModeFlags::MeshVS_SMF_Volume) │ │ │ │ + .value("MeshVS_SMF_Element",MeshVS_SelectionModeFlags::MeshVS_SMF_Element) │ │ │ │ + .value("MeshVS_SMF_All",MeshVS_SelectionModeFlags::MeshVS_SMF_All) │ │ │ │ + .value("MeshVS_SMF_Group",MeshVS_SelectionModeFlags::MeshVS_SMF_Group).export_values(); │ │ │ │ m.attr("MeshVS_DMF_WireFrame") = py::cast(int(MeshVS_DMF_WireFrame)); │ │ │ │ m.attr("MeshVS_DMF_Shading") = py::cast(int(MeshVS_DMF_Shading)); │ │ │ │ m.attr("MeshVS_DMF_Shrink") = py::cast(int(MeshVS_DMF_Shrink)); │ │ │ │ m.attr("MeshVS_DMF_OCCMask") = py::cast(int(MeshVS_DMF_OCCMask)); │ │ │ │ m.attr("MeshVS_DMF_VectorDataPrs") = py::cast(int(MeshVS_DMF_VectorDataPrs)); │ │ │ │ m.attr("MeshVS_DMF_NodalColorDataPrs") = py::cast(int(MeshVS_DMF_NodalColorDataPrs)); │ │ │ │ m.attr("MeshVS_DMF_ElementalColorDataPrs") = py::cast(int(MeshVS_DMF_ElementalColorDataPrs)); │ │ │ │ @@ -230,24 +233,21 @@ │ │ │ │ m.attr("MeshVS_DMF_DeformedPrsWireFrame") = py::cast(int(MeshVS_DMF_DeformedPrsWireFrame)); │ │ │ │ m.attr("MeshVS_DMF_DeformedPrsShading") = py::cast(int(MeshVS_DMF_DeformedPrsShading)); │ │ │ │ m.attr("MeshVS_DMF_DeformedPrsShrink") = py::cast(int(MeshVS_DMF_DeformedPrsShrink)); │ │ │ │ m.attr("MeshVS_DMF_DeformedMask") = py::cast(int(MeshVS_DMF_DeformedMask)); │ │ │ │ m.attr("MeshVS_DMF_SelectionPrs") = py::cast(int(MeshVS_DMF_SelectionPrs)); │ │ │ │ m.attr("MeshVS_DMF_HilightPrs") = py::cast(int(MeshVS_DMF_HilightPrs)); │ │ │ │ m.attr("MeshVS_DMF_User") = py::cast(int(MeshVS_DMF_User)); │ │ │ │ - py::enum_(m, "MeshVS_SelectionModeFlags",R"#()#") │ │ │ │ - .value("MeshVS_SMF_Mesh",MeshVS_SelectionModeFlags::MeshVS_SMF_Mesh) │ │ │ │ - .value("MeshVS_SMF_Node",MeshVS_SelectionModeFlags::MeshVS_SMF_Node) │ │ │ │ - .value("MeshVS_SMF_0D",MeshVS_SelectionModeFlags::MeshVS_SMF_0D) │ │ │ │ - .value("MeshVS_SMF_Link",MeshVS_SelectionModeFlags::MeshVS_SMF_Link) │ │ │ │ - .value("MeshVS_SMF_Face",MeshVS_SelectionModeFlags::MeshVS_SMF_Face) │ │ │ │ - .value("MeshVS_SMF_Volume",MeshVS_SelectionModeFlags::MeshVS_SMF_Volume) │ │ │ │ - .value("MeshVS_SMF_Element",MeshVS_SelectionModeFlags::MeshVS_SMF_Element) │ │ │ │ - .value("MeshVS_SMF_All",MeshVS_SelectionModeFlags::MeshVS_SMF_All) │ │ │ │ - .value("MeshVS_SMF_Group",MeshVS_SelectionModeFlags::MeshVS_SMF_Group).export_values(); │ │ │ │ + m.attr("MeshVS_BP_Mesh") = py::cast(int(MeshVS_BP_Mesh)); │ │ │ │ + m.attr("MeshVS_BP_NodalColor") = py::cast(int(MeshVS_BP_NodalColor)); │ │ │ │ + m.attr("MeshVS_BP_ElemColor") = py::cast(int(MeshVS_BP_ElemColor)); │ │ │ │ + m.attr("MeshVS_BP_Text") = py::cast(int(MeshVS_BP_Text)); │ │ │ │ + m.attr("MeshVS_BP_Vector") = py::cast(int(MeshVS_BP_Vector)); │ │ │ │ + m.attr("MeshVS_BP_User") = py::cast(int(MeshVS_BP_User)); │ │ │ │ + m.attr("MeshVS_BP_Default") = py::cast(int(MeshVS_BP_Default)); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_MeshVS_DataSource : public MeshVS_DataSource{ │ │ │ │ public: │ │ │ │ using MeshVS_DataSource::MeshVS_DataSource; │ │ │ ├── ./usr/share/libocp/OCP/Message_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -85,30 +85,43 @@ │ │ │ │ py::module m = main_module.def_submodule("Message", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "Message_StatusType",R"#(Definition of types of execution status supported by the class Message_ExecStatus)#") │ │ │ │ + .value("Message_DONE",Message_StatusType::Message_DONE) │ │ │ │ + .value("Message_WARN",Message_StatusType::Message_WARN) │ │ │ │ + .value("Message_ALARM",Message_StatusType::Message_ALARM) │ │ │ │ + .value("Message_FAIL",Message_StatusType::Message_FAIL).export_values(); │ │ │ │ + py::enum_(m, "Message_MetricType",R"#(Specifies kind of report information to collect)#") │ │ │ │ + .value("Message_MetricType_None",Message_MetricType::Message_MetricType_None) │ │ │ │ + .value("Message_MetricType_ThreadCPUUserTime",Message_MetricType::Message_MetricType_ThreadCPUUserTime) │ │ │ │ + .value("Message_MetricType_ThreadCPUSystemTime",Message_MetricType::Message_MetricType_ThreadCPUSystemTime) │ │ │ │ + .value("Message_MetricType_ProcessCPUUserTime",Message_MetricType::Message_MetricType_ProcessCPUUserTime) │ │ │ │ + .value("Message_MetricType_ProcessCPUSystemTime",Message_MetricType::Message_MetricType_ProcessCPUSystemTime) │ │ │ │ + .value("Message_MetricType_WallClock",Message_MetricType::Message_MetricType_WallClock) │ │ │ │ + .value("Message_MetricType_MemPrivate",Message_MetricType::Message_MetricType_MemPrivate) │ │ │ │ + .value("Message_MetricType_MemVirtual",Message_MetricType::Message_MetricType_MemVirtual) │ │ │ │ + .value("Message_MetricType_MemWorkingSet",Message_MetricType::Message_MetricType_MemWorkingSet) │ │ │ │ + .value("Message_MetricType_MemWorkingSetPeak",Message_MetricType::Message_MetricType_MemWorkingSetPeak) │ │ │ │ + .value("Message_MetricType_MemSwapUsage",Message_MetricType::Message_MetricType_MemSwapUsage) │ │ │ │ + .value("Message_MetricType_MemSwapUsagePeak",Message_MetricType::Message_MetricType_MemSwapUsagePeak) │ │ │ │ + .value("Message_MetricType_MemHeapUsage",Message_MetricType::Message_MetricType_MemHeapUsage).export_values(); │ │ │ │ py::enum_(m, "Message_ConsoleColor",R"#(Color definition for console/terminal output (limited palette).)#") │ │ │ │ .value("Message_ConsoleColor_Default",Message_ConsoleColor::Message_ConsoleColor_Default) │ │ │ │ .value("Message_ConsoleColor_Black",Message_ConsoleColor::Message_ConsoleColor_Black) │ │ │ │ .value("Message_ConsoleColor_White",Message_ConsoleColor::Message_ConsoleColor_White) │ │ │ │ .value("Message_ConsoleColor_Red",Message_ConsoleColor::Message_ConsoleColor_Red) │ │ │ │ .value("Message_ConsoleColor_Blue",Message_ConsoleColor::Message_ConsoleColor_Blue) │ │ │ │ .value("Message_ConsoleColor_Green",Message_ConsoleColor::Message_ConsoleColor_Green) │ │ │ │ .value("Message_ConsoleColor_Yellow",Message_ConsoleColor::Message_ConsoleColor_Yellow) │ │ │ │ .value("Message_ConsoleColor_Cyan",Message_ConsoleColor::Message_ConsoleColor_Cyan) │ │ │ │ .value("Message_ConsoleColor_Magenta",Message_ConsoleColor::Message_ConsoleColor_Magenta).export_values(); │ │ │ │ - py::enum_(m, "Message_Gravity",R"#(Defines gravity level of messages - Trace: low-level details on algorithm execution (usually for debug purposes) - Info: informative message - Warning: warning message - Alarm: non-critical error - Fail: fatal error)#") │ │ │ │ - .value("Message_Trace",Message_Gravity::Message_Trace) │ │ │ │ - .value("Message_Info",Message_Gravity::Message_Info) │ │ │ │ - .value("Message_Warning",Message_Gravity::Message_Warning) │ │ │ │ - .value("Message_Alarm",Message_Gravity::Message_Alarm) │ │ │ │ - .value("Message_Fail",Message_Gravity::Message_Fail).export_values(); │ │ │ │ py::enum_(m, "Message_Status",R"#(Enumeration covering all execution statuses supported by the class Message_ExecStatus: 32 statuses per each of 4 types (DONE, WARN, ALARM, FAIL))#") │ │ │ │ .value("Message_None",Message_Status::Message_None) │ │ │ │ .value("Message_Done1",Message_Status::Message_Done1) │ │ │ │ .value("Message_Done2",Message_Status::Message_Done2) │ │ │ │ .value("Message_Done3",Message_Status::Message_Done3) │ │ │ │ .value("Message_Done4",Message_Status::Message_Done4) │ │ │ │ .value("Message_Done5",Message_Status::Message_Done5) │ │ │ │ @@ -231,33 +244,20 @@ │ │ │ │ .value("Message_Fail26",Message_Status::Message_Fail26) │ │ │ │ .value("Message_Fail27",Message_Status::Message_Fail27) │ │ │ │ .value("Message_Fail28",Message_Status::Message_Fail28) │ │ │ │ .value("Message_Fail29",Message_Status::Message_Fail29) │ │ │ │ .value("Message_Fail30",Message_Status::Message_Fail30) │ │ │ │ .value("Message_Fail31",Message_Status::Message_Fail31) │ │ │ │ .value("Message_Fail32",Message_Status::Message_Fail32).export_values(); │ │ │ │ - py::enum_(m, "Message_StatusType",R"#(Definition of types of execution status supported by the class Message_ExecStatus)#") │ │ │ │ - .value("Message_DONE",Message_StatusType::Message_DONE) │ │ │ │ - .value("Message_WARN",Message_StatusType::Message_WARN) │ │ │ │ - .value("Message_ALARM",Message_StatusType::Message_ALARM) │ │ │ │ - .value("Message_FAIL",Message_StatusType::Message_FAIL).export_values(); │ │ │ │ - py::enum_(m, "Message_MetricType",R"#(Specifies kind of report information to collect)#") │ │ │ │ - .value("Message_MetricType_None",Message_MetricType::Message_MetricType_None) │ │ │ │ - .value("Message_MetricType_ThreadCPUUserTime",Message_MetricType::Message_MetricType_ThreadCPUUserTime) │ │ │ │ - .value("Message_MetricType_ThreadCPUSystemTime",Message_MetricType::Message_MetricType_ThreadCPUSystemTime) │ │ │ │ - .value("Message_MetricType_ProcessCPUUserTime",Message_MetricType::Message_MetricType_ProcessCPUUserTime) │ │ │ │ - .value("Message_MetricType_ProcessCPUSystemTime",Message_MetricType::Message_MetricType_ProcessCPUSystemTime) │ │ │ │ - .value("Message_MetricType_WallClock",Message_MetricType::Message_MetricType_WallClock) │ │ │ │ - .value("Message_MetricType_MemPrivate",Message_MetricType::Message_MetricType_MemPrivate) │ │ │ │ - .value("Message_MetricType_MemVirtual",Message_MetricType::Message_MetricType_MemVirtual) │ │ │ │ - .value("Message_MetricType_MemWorkingSet",Message_MetricType::Message_MetricType_MemWorkingSet) │ │ │ │ - .value("Message_MetricType_MemWorkingSetPeak",Message_MetricType::Message_MetricType_MemWorkingSetPeak) │ │ │ │ - .value("Message_MetricType_MemSwapUsage",Message_MetricType::Message_MetricType_MemSwapUsage) │ │ │ │ - .value("Message_MetricType_MemSwapUsagePeak",Message_MetricType::Message_MetricType_MemSwapUsagePeak) │ │ │ │ - .value("Message_MetricType_MemHeapUsage",Message_MetricType::Message_MetricType_MemHeapUsage).export_values(); │ │ │ │ + py::enum_(m, "Message_Gravity",R"#(Defines gravity level of messages - Trace: low-level details on algorithm execution (usually for debug purposes) - Info: informative message - Warning: warning message - Alarm: non-critical error - Fail: fatal error)#") │ │ │ │ + .value("Message_Trace",Message_Gravity::Message_Trace) │ │ │ │ + .value("Message_Info",Message_Gravity::Message_Info) │ │ │ │ + .value("Message_Warning",Message_Gravity::Message_Warning) │ │ │ │ + .value("Message_Alarm",Message_Gravity::Message_Alarm) │ │ │ │ + .value("Message_Fail",Message_Gravity::Message_Fail).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Message_Printer : public Message_Printer{ │ │ │ │ public: │ │ │ │ using Message_Printer::Message_Printer; │ │ │ ├── ./usr/share/libocp/OCP/NCollection_tmpl.hxx │ │ │ │┄ Ordering differences only │ │ │ │ @@ -78,482 +78,97 @@ │ │ │ │ │ │ │ │ // user-defined pre │ │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: This Iterator class iterates on BaseList of TListNode and is instantiated in List/Set/Queue/Stack Remark: TListIterator is internal class)#"); │ │ │ │ +void preregister_template_NCollection_List(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseList >(m,name,R"#(Purpose: Simple list to link items together keeping the first and the last one. Inherits BaseList, adding the data item to each node.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const NCollection_BaseList & >() ,py::arg("theList") ) │ │ │ │ - .def("More", │ │ │ │ - (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More, │ │ │ │ - R"#(Check end)#" ) │ │ │ │ - .def("Next", │ │ │ │ - (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next, │ │ │ │ - R"#(Make step)#" ) │ │ │ │ - .def("Value", │ │ │ │ - ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value, │ │ │ │ - R"#(Constant Value access)#" ) │ │ │ │ - .def("Value", │ │ │ │ - (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value, │ │ │ │ - R"#(Non-const Value access)#" ) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue, │ │ │ │ - R"#(Non-const Value access)#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle & >() ,py::arg("arg") ) │ │ │ │ - .def("address", │ │ │ │ - (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address, │ │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ - .def("address", │ │ │ │ - (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address, │ │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ - .def("destroy", │ │ │ │ - (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy, │ │ │ │ - R"#(Destroys the object. Uses the object destructor.)#" ,py::arg("thePnt")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const NCollection_Iterator & >() ,py::arg("theOther") ) │ │ │ │ - .def(py::init< const Container & >() ,py::arg("theList") ) │ │ │ │ - .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg("theList"), py::arg("theOther") ) │ │ │ │ - .def("Init", │ │ │ │ - (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init, │ │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ │ - .def("Init", │ │ │ │ - (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init, │ │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ │ - .def("More", │ │ │ │ - (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Initialize", │ │ │ │ - (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize, │ │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ │ - .def("Initialize", │ │ │ │ - (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize, │ │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ │ - .def("ValueIter", │ │ │ │ - ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("ChangeValueIter", │ │ │ │ - (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("EndIter", │ │ │ │ - ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("ChangeEndIter", │ │ │ │ - (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Next", │ │ │ │ - (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Value", │ │ │ │ - ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("ChangeValue", │ │ │ │ - ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue, │ │ │ │ - R"#()#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ │ -void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DoubleMap is used to bind pairs (Key1,Key2) and retrieve them in linear time.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ │ -void register_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ - .def(py::init< const NCollection_DoubleMap & >() ,py::arg("theOther") ) │ │ │ │ - .def("Exchange", │ │ │ │ - (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange, │ │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign, │ │ │ │ - R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ - .def("ReSize", │ │ │ │ - (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize, │ │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ │ - .def("Bind", │ │ │ │ - (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind, │ │ │ │ - R"#(Bind)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ - .def("AreBound", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound, │ │ │ │ - R"#(* AreBound)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ - .def("IsBound1", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1, │ │ │ │ - R"#(IsBound1)#" ,py::arg("theKey1")) │ │ │ │ - .def("IsBound2", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2, │ │ │ │ - R"#(IsBound2)#" ,py::arg("theKey2")) │ │ │ │ - .def("UnBind1", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1, │ │ │ │ - R"#(UnBind1)#" ,py::arg("theKey1")) │ │ │ │ - .def("UnBind2", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2, │ │ │ │ - R"#(UnBind2)#" ,py::arg("theKey2")) │ │ │ │ - .def("Find1", │ │ │ │ - ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ │ - R"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#" ,py::arg("theKey1")) │ │ │ │ - .def("Find1", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ │ - R"#(Find the Key1 and return Key2 value (by copying its value).)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ - .def("Seek1", │ │ │ │ - ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1, │ │ │ │ - R"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#" ,py::arg("theKey1")) │ │ │ │ - .def("Find2", │ │ │ │ - ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ │ - R"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#" ,py::arg("theKey2")) │ │ │ │ - .def("Find2", │ │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ │ - R"#(Find the Key2 and return Key1 value (by copying its value).)#" ,py::arg("theKey2"), py::arg("theKey1")) │ │ │ │ - .def("Seek2", │ │ │ │ - ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2, │ │ │ │ - R"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#" ,py::arg("theKey2")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear, │ │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear, │ │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size, │ │ │ │ - R"#(Size)#" ) │ │ │ │ - .def("__len__",[](const NCollection_DoubleMap &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Generic matrix of 4 x 4 elements. To be used in conjunction with NCollection_Vec4 entities. Originally introduced for 3D space projection and orientation operations. Warning, empty constructor returns an identity matrix.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("GetValue", │ │ │ │ - (Element_t (NCollection_Mat4::*)( const size_t , const size_t ) const) &NCollection_Mat4::GetValue, │ │ │ │ - R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (Element_t & (NCollection_Mat4::*)( const size_t , const size_t ) ) &NCollection_Mat4::ChangeValue, │ │ │ │ - R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("SetValue", │ │ │ │ - (void (NCollection_Mat4::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat4::SetValue, │ │ │ │ - R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ │ - .def("GetRow", │ │ │ │ - (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetRow, │ │ │ │ - R"#(Get vector of elements for the specified row.)#" ,py::arg("theRow")) │ │ │ │ - .def("SetRow", │ │ │ │ - (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetRow, │ │ │ │ - R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ - .def("SetRow", │ │ │ │ - (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetRow, │ │ │ │ - R"#(Set row values by the passed 4 element vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ - .def("GetColumn", │ │ │ │ - (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetColumn, │ │ │ │ - R"#(Get vector of elements for the specified column.)#" ,py::arg("theCol")) │ │ │ │ - .def("SetColumn", │ │ │ │ - (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetColumn, │ │ │ │ - R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ - .def("SetColumn", │ │ │ │ - (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetColumn, │ │ │ │ - R"#(Set column values by the passed 4 element vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ - .def("GetDiagonal", │ │ │ │ - (NCollection_Vec4 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetDiagonal, │ │ │ │ - R"#(Get vector of diagonal elements.)#" ) │ │ │ │ - .def("SetDiagonal", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::SetDiagonal, │ │ │ │ - R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ │ - .def("SetDiagonal", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Vec4 & ) ) &NCollection_Mat4::SetDiagonal, │ │ │ │ - R"#(Set diagonal elements of the matrix by the passed vector.)#" ,py::arg("theVec")) │ │ │ │ - .def("GetMat3", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetMat3, │ │ │ │ - R"#(Return 3x3 sub-matrix.)#" ) │ │ │ │ - .def("InitZero", │ │ │ │ - (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitZero, │ │ │ │ - R"#(Initialize the zero matrix.)#" ) │ │ │ │ - .def("IsZero", │ │ │ │ - (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsZero, │ │ │ │ - R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ │ - .def("InitIdentity", │ │ │ │ - (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitIdentity, │ │ │ │ - R"#(Initialize the identity matrix.)#" ) │ │ │ │ - .def("IsIdentity", │ │ │ │ - (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsIdentity, │ │ │ │ - R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ │ - .def("IsEqual", │ │ │ │ - (bool (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::IsEqual, │ │ │ │ - R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ - .def("GetData", │ │ │ │ - ( const Element_t * (NCollection_Mat4::*)() const) &NCollection_Mat4::GetData, │ │ │ │ - R"#(Raw access to the data (for OpenGL exchange); the data is returned in column-major order.)#" ) │ │ │ │ - .def("ChangeData", │ │ │ │ - (Element_t * (NCollection_Mat4::*)() ) &NCollection_Mat4::ChangeData, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Multiply", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply, │ │ │ │ - R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ │ - .def("Multiplied", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Multiplied, │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("Multiply", │ │ │ │ - (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Multiply, │ │ │ │ - R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Multiplied", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Multiplied, │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Divide", │ │ │ │ - (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Divide, │ │ │ │ - R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Divided", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Divided, │ │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ - .def("Add", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Add, │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Subtract", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Subtract, │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Added", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Added, │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Subtracted", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Subtracted, │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Negated", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Negated, │ │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ │ - .def("Translate", │ │ │ │ - (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::Translate, │ │ │ │ - R"#(Translate the matrix on the passed vector.)#" ,py::arg("theVec")) │ │ │ │ - .def("Transposed", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Transposed, │ │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ │ - .def("Transpose", │ │ │ │ - (void (NCollection_Mat4::*)() ) &NCollection_Mat4::Transpose, │ │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ │ - .def("Inverted", │ │ │ │ - (bool (NCollection_Mat4::*)( NCollection_Mat4 & , Element_t & ) const) &NCollection_Mat4::Inverted, │ │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theOutMx"), py::arg("theDet")) │ │ │ │ - .def("Inverted", │ │ │ │ - (bool (NCollection_Mat4::*)( NCollection_Mat4 & ) const) &NCollection_Mat4::Inverted, │ │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theOutMx")) │ │ │ │ - .def("Inverted", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Inverted, │ │ │ │ - R"#(Return inverted matrix.)#" ) │ │ │ │ - .def("DeterminantMat3", │ │ │ │ - (Element_t (NCollection_Mat4::*)() const) &NCollection_Mat4::DeterminantMat3, │ │ │ │ - R"#(Return determinant of the 3x3 sub-matrix.)#" ) │ │ │ │ - .def("Adjoint", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Adjoint, │ │ │ │ - R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ │ - .def("DumpJson", │ │ │ │ - (void (NCollection_Mat4::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat4::DumpJson, │ │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ │ - .def_static("Rows_s", │ │ │ │ - (size_t (*)() ) &NCollection_Mat4::Rows, │ │ │ │ - R"#(Get number of rows.)#" ) │ │ │ │ - .def_static("Cols_s", │ │ │ │ - (size_t (*)() ) &NCollection_Mat4::Cols, │ │ │ │ - R"#(Get number of columns.)#" ) │ │ │ │ - .def_static("Identity_s", │ │ │ │ - (NCollection_Mat4 (*)() ) &NCollection_Mat4::Identity, │ │ │ │ - R"#(Return identity matrix.)#" ) │ │ │ │ - .def_static("Zero_s", │ │ │ │ - (NCollection_Mat4 (*)() ) &NCollection_Mat4::Zero, │ │ │ │ - R"#(Return zero matrix.)#" ) │ │ │ │ - .def_static("Multiply_s", │ │ │ │ - (NCollection_Mat4 (*)( const NCollection_Mat4 & , const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply, │ │ │ │ - R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ │ - .def_static("Map_s", │ │ │ │ - (NCollection_Mat4 & (*)( Element_t * ) ) &NCollection_Mat4::Map, │ │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ - .def_static("Map_s", │ │ │ │ - ( const NCollection_Mat4 & (*)( const Element_t * ) ) &NCollection_Mat4::Map, │ │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ - .def("__imul__", │ │ │ │ - (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator*=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("__imul__", │ │ │ │ - (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator*=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__itruediv__", │ │ │ │ - (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator/=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ │ - .def("__truediv__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator/, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ - .def("__iadd__", │ │ │ │ - (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator+=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__isub__", │ │ │ │ - (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator-=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__add__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator+, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__sub__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__sub__", │ │ │ │ - (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template > │ │ │ │ -void preregister_template_NCollection_Map(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: Single hashed Map. This Map is used to store and retrieve keys in linear time.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template > │ │ │ │ -void register_template_NCollection_Map(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ +void register_template_NCollection_List(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ - .def(py::init< const NCollection_Map & >() ,py::arg("theOther") ) │ │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ + .def(py::init< const NCollection_List & >() ,py::arg("theOther") ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin, │ │ │ │ + R"#(Returns an iterator pointing to the first element in the list.)#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end, │ │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the list.)#" ) │ │ │ │ .def("cbegin", │ │ │ │ - (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin, │ │ │ │ - R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ │ + (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin, │ │ │ │ + R"#(Returns a const iterator pointing to the first element in the list.)#" ) │ │ │ │ .def("cend", │ │ │ │ - (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend, │ │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ - .def("Exchange", │ │ │ │ - (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange, │ │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ + (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend, │ │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the list.)#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size, │ │ │ │ + R"#(Size - Number of items)#" ) │ │ │ │ .def("Assign", │ │ │ │ - (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign, │ │ │ │ - R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ - .def("ReSize", │ │ │ │ - (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize, │ │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ │ - .def("Add", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add, │ │ │ │ - R"#(Add)#" ,py::arg("theKey")) │ │ │ │ - .def("Added", │ │ │ │ - ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added, │ │ │ │ - R"#(Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object)#" ,py::arg("theKey")) │ │ │ │ - .def("Contains", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains, │ │ │ │ - R"#(Contains)#" ,py::arg("theKey")) │ │ │ │ - .def("Remove", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove, │ │ │ │ - R"#(Remove)#" ,py::arg("K")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear, │ │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ + (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign, │ │ │ │ + R"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ .def("Clear", │ │ │ │ - (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear, │ │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size, │ │ │ │ - R"#(Size)#" ) │ │ │ │ - .def("IsEqual", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual, │ │ │ │ - R"#(Returns true if two maps contains exactly the same keys)#" ,py::arg("theOther")) │ │ │ │ - .def("Contains", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains, │ │ │ │ - R"#(Returns true if this map contains ALL keys of another map.)#" ,py::arg("theOther")) │ │ │ │ - .def("Union", │ │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union, │ │ │ │ - R"#(Sets this Map to be the result of union (aka addition, fuse, merge, boolean OR) operation between two given Maps The new Map contains the values that are contained either in the first map or in the second map or in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be passed as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ - .def("Unite", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite, │ │ │ │ - R"#(Apply to this Map the boolean operation union (aka addition, fuse, merge, boolean OR) with another (given) Map. The result contains the values that were previously contained in this map or contained in the given (operand) map. This algorithm is similar to method Union(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ - .def("HasIntersection", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection, │ │ │ │ - R"#(Returns true if this and theMap have common elements.)#" ,py::arg("theMap")) │ │ │ │ - .def("Intersection", │ │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection, │ │ │ │ - R"#(Sets this Map to be the result of intersection (aka multiplication, common, boolean AND) operation between two given Maps. The new Map contains only the values that are contained in both map operands. All previous content of this Map is cleared. This same map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ - .def("Intersect", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect, │ │ │ │ - R"#(Apply to this Map the intersection operation (aka multiplication, common, boolean AND) with another (given) Map. The result contains only the values that are contained in both this and the given maps. This algorithm is similar to method Intersection(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ - .def("Subtraction", │ │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction, │ │ │ │ - R"#(Sets this Map to be the result of subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation between two given Maps. The new Map contains only the values that are contained in the first map operands and not contained in the second one. All previous content of this Map is cleared.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ - .def("Subtract", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract, │ │ │ │ - R"#(Apply to this Map the subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation with another (given) Map. The result contains only the values that were previously contained in this map and not contained in this map. This algorithm is similar to method Subtract() with two operands. Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ - .def("Difference", │ │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference, │ │ │ │ - R"#(Sets this Map to be the result of symmetric difference (aka exclusive disjunction, boolean XOR) operation between two given Maps. The new Map contains the values that are contained only in the first or the second operand maps but not in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ - .def("Differ", │ │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ, │ │ │ │ - R"#(Apply to this Map the symmetric difference (aka exclusive disjunction, boolean XOR) operation with another (given) Map. The result contains the values that are contained only in this or the operand map, but not in both. This algorithm is similar to method Difference(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ - .def("__iter__",[](const NCollection_Map &self) │ │ │ │ - { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ │ + (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear, │ │ │ │ + R"#(Clear this list)#" ,py::arg("theAllocator")=static_cast< const handle &>(0L)) │ │ │ │ + .def("First", │ │ │ │ + ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First, │ │ │ │ + R"#(First item)#" ) │ │ │ │ + .def("First", │ │ │ │ + (TheItemType & (NCollection_List::*)() ) &NCollection_List::First, │ │ │ │ + R"#(First item (non-const))#" ) │ │ │ │ + .def("Last", │ │ │ │ + ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last, │ │ │ │ + R"#(Last item)#" ) │ │ │ │ + .def("Last", │ │ │ │ + (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last, │ │ │ │ + R"#(Last item (non-const))#" ) │ │ │ │ + .def("Append", │ │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append, │ │ │ │ + R"#(Append one item at the end)#" ,py::arg("theItem")) │ │ │ │ + .def("Append", │ │ │ │ + (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append, │ │ │ │ + R"#(Append one item at the end and output iterator pointing at the appended item)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ + .def("Append", │ │ │ │ + (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append, │ │ │ │ + R"#(Append another list at the end. After this operation, theOther list will be cleared.)#" ,py::arg("theOther")) │ │ │ │ + .def("Prepend", │ │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend, │ │ │ │ + R"#(Prepend one item at the beginning)#" ,py::arg("theItem")) │ │ │ │ + .def("Prepend", │ │ │ │ + (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend, │ │ │ │ + R"#(Prepend another list at the beginning)#" ,py::arg("theOther")) │ │ │ │ + .def("RemoveFirst", │ │ │ │ + (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst, │ │ │ │ + R"#(RemoveFirst item)#" ) │ │ │ │ + .def("Remove", │ │ │ │ + (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove, │ │ │ │ + R"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#" ,py::arg("theIter")) │ │ │ │ + .def("InsertBefore", │ │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ │ + R"#(InsertBefore)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ + .def("InsertBefore", │ │ │ │ + (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ │ + R"#(InsertBefore)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ │ + .def("InsertAfter", │ │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ │ + R"#(InsertAfter)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ + .def("InsertAfter", │ │ │ │ + (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ │ + R"#(InsertAfter)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ │ + .def("Reverse", │ │ │ │ + (void (NCollection_List::*)() ) &NCollection_List::Reverse, │ │ │ │ + R"#(Reverse the list)#" ) │ │ │ │ + .def("__iter__",[](const NCollection_List &self) │ │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_Map &self) │ │ │ │ + .def("__len__",[](const NCollection_List &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_NCollection_AliasedArray(py::object &m, const char *name){ │ │ │ │ @@ -613,82 +228,329 @@ │ │ │ │ ) │ │ │ │ .def("__bool__",[](const NCollection_AliasedArray &self) │ │ │ │ { return self.IsEmpty(); } │ │ │ │ ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template > │ │ │ │ -void preregister_template_NCollection_IndexedMap(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1..Extent. See the class Map from NCollection for a discussion about the number of buckets.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Defines the 2D-vector template. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template > │ │ │ │ -void register_template_NCollection_IndexedMap(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ - .def(py::init< const NCollection_IndexedMap & >() ,py::arg("theOther") ) │ │ │ │ + .def(py::init< const Element_t >() ,py::arg("theXY") ) │ │ │ │ + .def(py::init< const Element_t, const Element_t >() ,py::arg("theX"), py::arg("theY") ) │ │ │ │ + .def("SetValues", │ │ │ │ + (void (NCollection_Vec2::*)( const Element_t , const Element_t ) ) &NCollection_Vec2::SetValues, │ │ │ │ + R"#(Assign new values to the vector.)#" ,py::arg("theX"), py::arg("theY")) │ │ │ │ + .def("x", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::x, │ │ │ │ + R"#(Alias to 1st component as X coordinate in XY.)#" ) │ │ │ │ + .def("y", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::y, │ │ │ │ + R"#(Alias to 2nd component as Y coordinate in XY.)#" ) │ │ │ │ + .def("xy", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::xy, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("yx", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::yx, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("x", │ │ │ │ + (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::x, │ │ │ │ + R"#(Alias to 1st component as X coordinate in XY.)#" ) │ │ │ │ + .def("y", │ │ │ │ + (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::y, │ │ │ │ + R"#(Alias to 2nd component as Y coordinate in XY.)#" ) │ │ │ │ + .def("IsEqual", │ │ │ │ + (bool (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::IsEqual, │ │ │ │ + R"#(Check this vector with another vector for equality (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ + .def("GetData", │ │ │ │ + ( const Element_t * (NCollection_Vec2::*)() const) &NCollection_Vec2::GetData, │ │ │ │ + R"#(Raw access to the data (for OpenGL exchange).)#" ) │ │ │ │ + .def("ChangeData", │ │ │ │ + (Element_t * (NCollection_Vec2::*)() ) &NCollection_Vec2::ChangeData, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Multiply", │ │ │ │ + (void (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::Multiply, │ │ │ │ + R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Multiplied", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::Multiplied, │ │ │ │ + R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("cwiseMin", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMin, │ │ │ │ + R"#(Compute component-wise minimum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ + .def("cwiseMax", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMax, │ │ │ │ + R"#(Compute component-wise maximum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ + .def("cwiseAbs", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::cwiseAbs, │ │ │ │ + R"#(Compute component-wise modulus of the vector.)#" ) │ │ │ │ + .def("maxComp", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::maxComp, │ │ │ │ + R"#(Compute maximum component of the vector.)#" ) │ │ │ │ + .def("minComp", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::minComp, │ │ │ │ + R"#(Compute minimum component of the vector.)#" ) │ │ │ │ + .def("Dot", │ │ │ │ + (Element_t (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::Dot, │ │ │ │ + R"#(Computes the dot product.)#" ,py::arg("theOther")) │ │ │ │ + .def("Modulus", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::Modulus, │ │ │ │ + R"#(Computes the vector modulus (magnitude, length).)#" ) │ │ │ │ + .def("SquareModulus", │ │ │ │ + (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::SquareModulus, │ │ │ │ + R"#(Computes the square of vector modulus (magnitude, length). This method may be used for performance tricks.)#" ) │ │ │ │ + .def("DumpJson", │ │ │ │ + (void (NCollection_Vec2::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec2::DumpJson, │ │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ + .def_static("Length_s", │ │ │ │ + (int (*)() ) &NCollection_Vec2::Length, │ │ │ │ + R"#(Returns the number of components.)#" ) │ │ │ │ + .def_static("DX_s", │ │ │ │ + (NCollection_Vec2 (*)() ) &NCollection_Vec2::DX, │ │ │ │ + R"#(Construct DX unit vector.)#" ) │ │ │ │ + .def_static("DY_s", │ │ │ │ + (NCollection_Vec2 (*)() ) &NCollection_Vec2::DY, │ │ │ │ + R"#(Construct DY unit vector.)#" ) │ │ │ │ + .def("__iadd__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator+=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component summary.)#" ,py::arg("theAdd")) │ │ │ │ + .def("__isub__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator-=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component subtraction.)#" ,py::arg("theDec")) │ │ │ │ + .def("__sub__", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::operator-, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Unary -.)#" ) │ │ │ │ + .def("__imul__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator*=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component multiplication.)#" ,py::arg("theRight")) │ │ │ │ + .def("__imul__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator*=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__itruediv__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator/=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ + .def("__itruediv__", │ │ │ │ + (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator/=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component division.)#" ,py::arg("theRight")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__truediv__", │ │ │ │ + (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator/, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(The class NCollection_Array1 represents unidimensional arrays of fixed size known at run time. The range of the index is user defined. An array1 can be constructed with a "C array". This functionality is useful to call methods expecting an Array1. It allows to carry the bounds inside the arrays.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLower"), py::arg("theUpper") ) │ │ │ │ + .def(py::init< const typename NCollection_Array1::allocator_type &, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theLower"), py::arg("theUpper") ) │ │ │ │ + .def(py::init< typename NCollection_Array1::const_reference, const Standard_Integer, const Standard_Integer, const bool >() ,py::arg("theBegin"), py::arg("theLower"), py::arg("theUpper"), py::arg("theUseBuffer")=static_cast< const bool>(true) ) │ │ │ │ + .def(py::init< const NCollection_Array1 & >() ,py::arg("theOther") ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::begin, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::begin, │ │ │ │ + R"#()#" ) │ │ │ │ .def("cbegin", │ │ │ │ - (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cbegin, │ │ │ │ - R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cbegin, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::end, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::end, │ │ │ │ + R"#()#" ) │ │ │ │ .def("cend", │ │ │ │ - (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cend, │ │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ - .def("Exchange", │ │ │ │ - (void (NCollection_IndexedMap::*)( NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Exchange, │ │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_IndexedMap & (NCollection_IndexedMap::*)( const NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Assign, │ │ │ │ - R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ - .def("ReSize", │ │ │ │ - (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::ReSize, │ │ │ │ - R"#(ReSize)#" ,py::arg("theExtent")) │ │ │ │ - .def("Add", │ │ │ │ - (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::Add, │ │ │ │ - R"#(Add)#" ,py::arg("theKey1")) │ │ │ │ - .def("Contains", │ │ │ │ - (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::Contains, │ │ │ │ - R"#(Contains)#" ,py::arg("theKey1")) │ │ │ │ - .def("Substitute", │ │ │ │ - (void (NCollection_IndexedMap::*)( const Standard_Integer , const TheKeyType & ) ) &NCollection_IndexedMap::Substitute, │ │ │ │ - R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1")) │ │ │ │ - .def("Swap", │ │ │ │ - (void (NCollection_IndexedMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedMap::Swap, │ │ │ │ - R"#(Swaps two elements with the given indices.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ - .def("RemoveLast", │ │ │ │ - (void (NCollection_IndexedMap::*)() ) &NCollection_IndexedMap::RemoveLast, │ │ │ │ - R"#(RemoveLast)#" ) │ │ │ │ - .def("RemoveFromIndex", │ │ │ │ - (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::RemoveFromIndex, │ │ │ │ - R"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#" ,py::arg("theIndex")) │ │ │ │ - .def("RemoveKey", │ │ │ │ - (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::RemoveKey, │ │ │ │ - R"#(Remove the given key. Caution! The index of the last key can be changed.)#" ,py::arg("theKey1")) │ │ │ │ - .def("FindKey", │ │ │ │ - ( const TheKeyType & (NCollection_IndexedMap::*)( const Standard_Integer ) const) &NCollection_IndexedMap::FindKey, │ │ │ │ - R"#(FindKey)#" ,py::arg("theIndex")) │ │ │ │ - .def("FindIndex", │ │ │ │ - (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::FindIndex, │ │ │ │ - R"#(FindIndex)#" ,py::arg("theKey1")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_IndexedMap::*)( const Standard_Boolean ) ) &NCollection_IndexedMap::Clear, │ │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_IndexedMap::*)( const handle & ) ) &NCollection_IndexedMap::Clear, │ │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cend, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Init", │ │ │ │ + (void (NCollection_Array1::*)( typename NCollection_Array1::const_reference ) ) &NCollection_Array1::Init, │ │ │ │ + R"#(Initialise the items with theValue)#" ,py::arg("theValue")) │ │ │ │ .def("Size", │ │ │ │ - (Standard_Integer (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::Size, │ │ │ │ - R"#(Size)#" ) │ │ │ │ - .def("__iter__",[](const NCollection_IndexedMap &self) │ │ │ │ - { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Size, │ │ │ │ + R"#(Size query)#" ) │ │ │ │ + .def("Length", │ │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Length, │ │ │ │ + R"#(Length query (the same))#" ) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (Standard_Boolean (NCollection_Array1::*)() const) &NCollection_Array1::IsEmpty, │ │ │ │ + R"#(Return TRUE if array has zero length.)#" ) │ │ │ │ + .def("Lower", │ │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Lower, │ │ │ │ + R"#(Lower bound)#" ) │ │ │ │ + .def("Upper", │ │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Upper, │ │ │ │ + R"#(Upper bound)#" ) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_Array1 & (NCollection_Array1::*)( const NCollection_Array1 & ) ) &NCollection_Array1::Assign, │ │ │ │ + R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ │ + .def("Move", │ │ │ │ + (NCollection_Array1 & (NCollection_Array1::*)( NCollection_Array1 & ) ) &NCollection_Array1::Move, │ │ │ │ + R"#()#" ,py::arg("theOther")) │ │ │ │ + .def("First", │ │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::First, │ │ │ │ + R"#(Returns first element)#" ) │ │ │ │ + .def("ChangeFirst", │ │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeFirst, │ │ │ │ + R"#(Returns first element)#" ) │ │ │ │ + .def("Last", │ │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::Last, │ │ │ │ + R"#(Returns last element)#" ) │ │ │ │ + .def("ChangeLast", │ │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeLast, │ │ │ │ + R"#(Returns last element)#" ) │ │ │ │ + .def("Value", │ │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)( const Standard_Integer ) const) &NCollection_Array1::Value, │ │ │ │ + R"#(Constant value access)#" ,py::arg("theIndex")) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::ChangeValue, │ │ │ │ + R"#(Variable value access)#" ,py::arg("theIndex")) │ │ │ │ + .def("SetValue", │ │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer , const typename NCollection_Array1::value_type & ) ) &NCollection_Array1::SetValue, │ │ │ │ + R"#(Set value)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ + .def("UpdateLowerBound", │ │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateLowerBound, │ │ │ │ + R"#(Changes the lowest bound. Do not move data)#" ,py::arg("theLower")) │ │ │ │ + .def("UpdateUpperBound", │ │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateUpperBound, │ │ │ │ + R"#(Changes the upper bound. Do not move data)#" ,py::arg("theUpper")) │ │ │ │ + .def("Resize", │ │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer , const Standard_Integer , const Standard_Boolean ) ) &NCollection_Array1::Resize, │ │ │ │ + R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLower"), py::arg("theUpper"), py::arg("theToCopyData")) │ │ │ │ + .def("IsDeletable", │ │ │ │ + (bool (NCollection_Array1::*)() const) &NCollection_Array1::IsDeletable, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("__iter__",[](const NCollection_Array1 &self) │ │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_IndexedMap &self) │ │ │ │ + .def("__len__",[](const NCollection_Array1 &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + .def("__bool__",[](const NCollection_Array1 &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: The DefaultHasher is a Hasher that is used by default in NCollection maps. To compute the hash code of the key is used the global function HashCode. To compare two keys is used the global function IsEqual.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const NCollection_UtfString & >() ,py::arg("theCopy") ) │ │ │ │ + .def(py::init< const char *, const Standard_Integer >() ,py::arg("theCopyUtf8"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ + .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg("theCopyUtf16"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ + .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg("theCopyUtf32"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ + .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg("theCopyUtfWide"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ + .def("Iterator", │ │ │ │ + (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size, │ │ │ │ + R"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#" ) │ │ │ │ + .def("Length", │ │ │ │ + (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length, │ │ │ │ + R"#(Returns the length of the string in Unicode symbols)#" ) │ │ │ │ + .def("GetChar", │ │ │ │ + (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar, │ │ │ │ + R"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ │ + .def("GetCharBuffer", │ │ │ │ + ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer, │ │ │ │ + R"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ │ + .def("FromLocale", │ │ │ │ + (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale, │ │ │ │ + R"#(Copy from multibyte string in current system locale.)#" ,py::arg("theString"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1)) │ │ │ │ + .def("IsEqual", │ │ │ │ + (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual, │ │ │ │ + R"#(Compares this string with another one.)#" ,py::arg("theCompare")) │ │ │ │ + .def("SubString", │ │ │ │ + (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString, │ │ │ │ + R"#(Returns the substring.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ │ + .def("ToCString", │ │ │ │ + ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString, │ │ │ │ + R"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#" ) │ │ │ │ + .def("ToUtf8", │ │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8, │ │ │ │ + R"#(Returns copy in UTF-8 format)#" ) │ │ │ │ + .def("ToUtf16", │ │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16, │ │ │ │ + R"#(Returns copy in UTF-16 format)#" ) │ │ │ │ + .def("ToUtf32", │ │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32, │ │ │ │ + R"#(Returns copy in UTF-32 format)#" ) │ │ │ │ + .def("ToUtfWide", │ │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide, │ │ │ │ + R"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#" ) │ │ │ │ + .def("ToLocale", │ │ │ │ + (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale, │ │ │ │ + R"#(Converts the string into string in the current system locale.)#" ,py::arg("theBuffer"), py::arg("theSizeBytes")) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty, │ │ │ │ + R"#(Returns true if string is empty)#" ) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear, │ │ │ │ + R"#(Zero string.)#" ) │ │ │ │ + .def("Assign", │ │ │ │ + ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign, │ │ │ │ + R"#(Copy from another string.)#" ,py::arg("theOther")) │ │ │ │ + .def("Swap", │ │ │ │ + (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap, │ │ │ │ + R"#(Exchange the data of two strings (without reallocating memory).)#" ,py::arg("theOther")) │ │ │ │ + .def("__iadd__", │ │ │ │ + (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Join strings.)#" ,py::arg("theAppend")) │ │ │ │ + .def("__len__",[](const NCollection_UtfString &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ + .def("__bool__",[](const NCollection_UtfString &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template > │ │ │ │ void preregister_template_NCollection_DataMap(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DataMap is a Map to store keys with associated Items. See Map from NCollection for a discussion about the number of buckets.)#"); │ │ │ │ } │ │ │ │ @@ -761,107 +623,80 @@ │ │ │ │ py::keep_alive<0, 1>()) │ │ │ │ .def("__len__",[](const NCollection_DataMap &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#"); │ │ │ │ +template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ │ +void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DoubleMap is used to bind pairs (Key1,Key2) and retrieve them in linear time.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ │ +void register_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ - .def("Add", │ │ │ │ - (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add, │ │ │ │ - R"#(Update the tree with a new object and its bounding box.)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ + .def(py::init< const NCollection_DoubleMap & >() ,py::arg("theOther") ) │ │ │ │ + .def("Exchange", │ │ │ │ + (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange, │ │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign, │ │ │ │ + R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ + .def("ReSize", │ │ │ │ + (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize, │ │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ │ + .def("Bind", │ │ │ │ + (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind, │ │ │ │ + R"#(Bind)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ + .def("AreBound", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound, │ │ │ │ + R"#(* AreBound)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ + .def("IsBound1", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1, │ │ │ │ + R"#(IsBound1)#" ,py::arg("theKey1")) │ │ │ │ + .def("IsBound2", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2, │ │ │ │ + R"#(IsBound2)#" ,py::arg("theKey2")) │ │ │ │ + .def("UnBind1", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1, │ │ │ │ + R"#(UnBind1)#" ,py::arg("theKey1")) │ │ │ │ + .def("UnBind2", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2, │ │ │ │ + R"#(UnBind2)#" ,py::arg("theKey2")) │ │ │ │ + .def("Find1", │ │ │ │ + ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ │ + R"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#" ,py::arg("theKey1")) │ │ │ │ + .def("Find1", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ │ + R"#(Find the Key1 and return Key2 value (by copying its value).)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ │ + .def("Seek1", │ │ │ │ + ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1, │ │ │ │ + R"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#" ,py::arg("theKey1")) │ │ │ │ + .def("Find2", │ │ │ │ + ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ │ + R"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#" ,py::arg("theKey2")) │ │ │ │ + .def("Find2", │ │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ │ + R"#(Find the Key2 and return Key1 value (by copying its value).)#" ,py::arg("theKey2"), py::arg("theKey1")) │ │ │ │ + .def("Seek2", │ │ │ │ + ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2, │ │ │ │ + R"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#" ,py::arg("theKey2")) │ │ │ │ .def("Clear", │ │ │ │ - (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear, │ │ │ │ - R"#(Clears the contents of the tree.)#" ,py::arg("aNewAlloc")=static_cast< const handle &>(0L)) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Allocator", │ │ │ │ - ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator, │ │ │ │ - R"#(Recommended to be used only in sub-classes.)#" ) │ │ │ │ - .def("__bool__",[](const NCollection_UBTree &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const BaseIterator & >() ,py::arg("theIterator") ) │ │ │ │ - .def(py::init< const NCollection_StlIterator & >() ,py::arg("theIterator") ) │ │ │ │ - .def("Iterator", │ │ │ │ - ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator, │ │ │ │ - R"#(Access to NCollection iterator instance)#" ) │ │ │ │ - .def("ChangeIterator", │ │ │ │ - (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator, │ │ │ │ - R"#(Access to NCollection iterator instance)#" ) │ │ │ │ - .def("__mul__", │ │ │ │ - (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Get reference to current item)#" ) │ │ │ │ - .def("__rmul__", │ │ │ │ - (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Get reference to current item)#" ) │ │ │ │ - .def("__iadd__", │ │ │ │ - (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ │ - .def("__add__", │ │ │ │ - (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Addition)#" ,py::arg("theOffset")) │ │ │ │ - .def("__isub__", │ │ │ │ - (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ │ - .def("__sub__", │ │ │ │ - (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ │ - .def("__sub__", │ │ │ │ - (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Difference)#" ,py::arg("theOther")) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const size_t >() ,py::arg("theSize") ) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Allocate", │ │ │ │ - (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate, │ │ │ │ - R"#()#" ,py::arg("theSize")) │ │ │ │ + (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear, │ │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear, │ │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ .def("Size", │ │ │ │ - (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("__len__",[](const NCollection_LocalArray &self) │ │ │ │ + (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size, │ │ │ │ + R"#(Size)#" ) │ │ │ │ + .def("__len__",[](const NCollection_DoubleMap &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_NCollection_UtfIterator(py::object &m, const char *name){ │ │ │ │ @@ -921,773 +756,448 @@ │ │ │ │ .def("__rmul__", │ │ │ │ (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Dereference operator.)#" ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: The DefaultHasher is a Hasher that is used by default in NCollection maps. To compute the hash code of the key is used the global function HashCode. To compare two keys is used the global function IsEqual.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R"#(Dynamically resizable sparse array of objects)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name)) │ │ │ │ - .def(py::init< Standard_Size >() ,py::arg("theIncrement") ) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign, │ │ │ │ - R"#(Explicit assignment operator)#" ,py::arg("theOther")) │ │ │ │ - .def("Exchange", │ │ │ │ - (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange, │ │ │ │ - R"#(Exchange the data of two arrays; can be used primarily to move contents of theOther into the new array in a fast way (without creation of duplicated data))#" ,py::arg("theOther")) │ │ │ │ - .def("Value", │ │ │ │ - ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value, │ │ │ │ - R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue, │ │ │ │ - R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ │ - .def("SetValue", │ │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue, │ │ │ │ - R"#(Set a value at specified index method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ - .def("Extent", │ │ │ │ - (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent, │ │ │ │ - R"#(Returns number of items in the array)#" ) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty, │ │ │ │ - R"#(Returns True if array is empty)#" ) │ │ │ │ - .def("Find", │ │ │ │ - ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find, │ │ │ │ - R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ │ - .def("ChangeFind", │ │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind, │ │ │ │ - R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ │ - .def("Bind", │ │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind, │ │ │ │ - R"#(Set a value as explicit method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ - .def("IsBound", │ │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound, │ │ │ │ - R"#(Returns True if the item is defined)#" ,py::arg("theIndex")) │ │ │ │ - .def("UnBind", │ │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind, │ │ │ │ - R"#(Remove the item from array)#" ,py::arg("theIndex")) │ │ │ │ - .def("__len__",[](const NCollection_SparseArray &self) │ │ │ │ - { return self.Extent(); } │ │ │ │ - ) │ │ │ │ - .def("__bool__",[](const NCollection_SparseArray &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("GetValue", │ │ │ │ - (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue, │ │ │ │ - R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue, │ │ │ │ - R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("SetValue", │ │ │ │ - (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue, │ │ │ │ - R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ │ - .def("GetRow", │ │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow, │ │ │ │ - R"#(Return the row.)#" ,py::arg("theRow")) │ │ │ │ - .def("SetRow", │ │ │ │ - (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow, │ │ │ │ - R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ - .def("GetColumn", │ │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn, │ │ │ │ - R"#(Return the column.)#" ,py::arg("theCol")) │ │ │ │ - .def("SetColumn", │ │ │ │ - (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn, │ │ │ │ - R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ - .def("GetDiagonal", │ │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal, │ │ │ │ - R"#(Get vector of diagonal elements.)#" ) │ │ │ │ - .def("SetDiagonal", │ │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal, │ │ │ │ - R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ │ - .def("InitZero", │ │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero, │ │ │ │ - R"#(Initialize the zero matrix.)#" ) │ │ │ │ - .def("IsZero", │ │ │ │ - (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero, │ │ │ │ - R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ │ - .def("InitIdentity", │ │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity, │ │ │ │ - R"#(Initialize the identity matrix.)#" ) │ │ │ │ - .def("IsIdentity", │ │ │ │ - (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity, │ │ │ │ - R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ │ - .def("IsEqual", │ │ │ │ - (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual, │ │ │ │ - R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ - .def("GetData", │ │ │ │ - ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData, │ │ │ │ - R"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#" ) │ │ │ │ - .def("ChangeData", │ │ │ │ - (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Multiply", │ │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ │ - R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ │ - .def("Multiplied", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied, │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("Multiply", │ │ │ │ - (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply, │ │ │ │ - R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Multiplied", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied, │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Divide", │ │ │ │ - (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide, │ │ │ │ - R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ │ - .def("Divided", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided, │ │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ - .def("Add", │ │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add, │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Subtract", │ │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract, │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Added", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added, │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Subtracted", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted, │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("Negated", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated, │ │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ │ - .def("Transposed", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed, │ │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ │ - .def("Transpose", │ │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose, │ │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ │ - .def("Determinant", │ │ │ │ - (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant, │ │ │ │ - R"#(Return determinant of the matrix.)#" ) │ │ │ │ - .def("Adjoint", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint, │ │ │ │ - R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ │ - .def("Inverted", │ │ │ │ - (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted, │ │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theInv"), py::arg("theDet")) │ │ │ │ - .def("Inverted", │ │ │ │ - (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted, │ │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theInv")) │ │ │ │ - .def("Inverted", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted, │ │ │ │ - R"#(Return inverted matrix.)#" ) │ │ │ │ - .def("DumpJson", │ │ │ │ - (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson, │ │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ │ - .def_static("Identity_s", │ │ │ │ - (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity, │ │ │ │ - R"#(Return identity matrix.)#" ) │ │ │ │ - .def_static("Zero_s", │ │ │ │ - (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero, │ │ │ │ - R"#(Return zero matrix.)#" ) │ │ │ │ - .def_static("Multiply_s", │ │ │ │ - (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ │ - R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ │ - .def_static("Map_s", │ │ │ │ - (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map, │ │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ - .def_static("Map_s", │ │ │ │ - ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map, │ │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ - .def("__imul__", │ │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ - .def("__imul__", │ │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__mul__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__rmul__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__itruediv__", │ │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ │ - .def("__truediv__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ - .def("__iadd__", │ │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__isub__", │ │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__add__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__sub__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ - .def("__sub__", │ │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseSequence >(m,name,R"#(Purpose: Definition of a sequence of elements indexed by an Integer in range of 1..n)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ - .def(py::init< const NCollection_Sequence & >() ,py::arg("theOther") ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin, │ │ │ │ - R"#(Returns an iterator pointing to the first element in the sequence.)#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end, │ │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ │ - .def("cbegin", │ │ │ │ - (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin, │ │ │ │ - R"#(Returns a const iterator pointing to the first element in the sequence.)#" ) │ │ │ │ - .def("cend", │ │ │ │ - (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend, │ │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size, │ │ │ │ - R"#(Number of items)#" ) │ │ │ │ - .def("Length", │ │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length, │ │ │ │ - R"#(Number of items)#" ) │ │ │ │ - .def("Lower", │ │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower, │ │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ │ - .def("Upper", │ │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper, │ │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty, │ │ │ │ - R"#(Empty query)#" ) │ │ │ │ - .def("Reverse", │ │ │ │ - (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse, │ │ │ │ - R"#(Reverse sequence)#" ) │ │ │ │ - .def("Exchange", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange, │ │ │ │ - R"#(Exchange two members)#" ,py::arg("I"), py::arg("J")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear, │ │ │ │ - R"#(Clear the items out, take a new allocator if non null)#" ,py::arg("theAllocator")=static_cast< const handle &>(0L)) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign, │ │ │ │ - R"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ - .def("Remove", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ │ - R"#(Remove one item)#" ,py::arg("theIndex")) │ │ │ │ - .def("Remove", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ │ - R"#(Remove range of items)#" ,py::arg("theFromIndex"), py::arg("theToIndex")) │ │ │ │ - .def("Append", │ │ │ │ - (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append, │ │ │ │ - R"#(Append one item)#" ,py::arg("theItem")) │ │ │ │ - .def("Append", │ │ │ │ - (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append, │ │ │ │ - R"#(Append another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ │ - .def("Prepend", │ │ │ │ - (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend, │ │ │ │ - R"#(Prepend one item)#" ,py::arg("theItem")) │ │ │ │ - .def("Prepend", │ │ │ │ - (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend, │ │ │ │ - R"#(Prepend another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ │ - .def("InsertBefore", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore, │ │ │ │ - R"#(InsertBefore theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ - .def("InsertBefore", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore, │ │ │ │ - R"#(InsertBefore theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ - .def("InsertAfter", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter, │ │ │ │ - R"#(InsertAfter theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ - .def("InsertAfter", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter, │ │ │ │ - R"#(InsertAfter theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ - .def("Split", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split, │ │ │ │ - R"#(Split in two sequences)#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ - .def("First", │ │ │ │ - ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First, │ │ │ │ - R"#(First item access)#" ) │ │ │ │ - .def("ChangeFirst", │ │ │ │ - (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst, │ │ │ │ - R"#(First item access)#" ) │ │ │ │ - .def("Last", │ │ │ │ - ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last, │ │ │ │ - R"#(Last item access)#" ) │ │ │ │ - .def("ChangeLast", │ │ │ │ - (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast, │ │ │ │ - R"#(Last item access)#" ) │ │ │ │ - .def("Value", │ │ │ │ - ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value, │ │ │ │ - R"#(Constant item access by theIndex)#" ,py::arg("theIndex")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue, │ │ │ │ - R"#(Variable item access by theIndex)#" ,py::arg("theIndex")) │ │ │ │ - .def("SetValue", │ │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue, │ │ │ │ - R"#(Set item value by theIndex)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ - .def_static("delNode_s", │ │ │ │ - (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode, │ │ │ │ - R"#(Static deleter to be passed to BaseSequence)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ │ - .def("__iter__",[](const NCollection_Sequence &self) │ │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ - py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_Sequence &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - .def("__bool__",[](const NCollection_Sequence &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const NCollection_UtfString & >() ,py::arg("theCopy") ) │ │ │ │ - .def(py::init< const char *, const Standard_Integer >() ,py::arg("theCopyUtf8"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ - .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg("theCopyUtf16"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ - .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg("theCopyUtf32"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ - .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg("theCopyUtfWide"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1) ) │ │ │ │ - .def("Iterator", │ │ │ │ - (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size, │ │ │ │ - R"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#" ) │ │ │ │ - .def("Length", │ │ │ │ - (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length, │ │ │ │ - R"#(Returns the length of the string in Unicode symbols)#" ) │ │ │ │ - .def("GetChar", │ │ │ │ - (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar, │ │ │ │ - R"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ │ - .def("GetCharBuffer", │ │ │ │ - ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer, │ │ │ │ - R"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ │ - .def("FromLocale", │ │ │ │ - (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale, │ │ │ │ - R"#(Copy from multibyte string in current system locale.)#" ,py::arg("theString"), py::arg("theLength")=static_cast< const Standard_Integer>(- 1)) │ │ │ │ - .def("IsEqual", │ │ │ │ - (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual, │ │ │ │ - R"#(Compares this string with another one.)#" ,py::arg("theCompare")) │ │ │ │ - .def("SubString", │ │ │ │ - (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString, │ │ │ │ - R"#(Returns the substring.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ │ - .def("ToCString", │ │ │ │ - ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString, │ │ │ │ - R"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#" ) │ │ │ │ - .def("ToUtf8", │ │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8, │ │ │ │ - R"#(Returns copy in UTF-8 format)#" ) │ │ │ │ - .def("ToUtf16", │ │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16, │ │ │ │ - R"#(Returns copy in UTF-16 format)#" ) │ │ │ │ - .def("ToUtf32", │ │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32, │ │ │ │ - R"#(Returns copy in UTF-32 format)#" ) │ │ │ │ - .def("ToUtfWide", │ │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide, │ │ │ │ - R"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#" ) │ │ │ │ - .def("ToLocale", │ │ │ │ - (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale, │ │ │ │ - R"#(Converts the string into string in the current system locale.)#" ,py::arg("theBuffer"), py::arg("theSizeBytes")) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty, │ │ │ │ - R"#(Returns true if string is empty)#" ) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear, │ │ │ │ - R"#(Zero string.)#" ) │ │ │ │ - .def("Assign", │ │ │ │ - ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign, │ │ │ │ - R"#(Copy from another string.)#" ,py::arg("theOther")) │ │ │ │ - .def("Swap", │ │ │ │ - (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap, │ │ │ │ - R"#(Exchange the data of two strings (without reallocating memory).)#" ,py::arg("theOther")) │ │ │ │ - .def("__iadd__", │ │ │ │ - (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Join strings.)#" ,py::arg("theAppend")) │ │ │ │ - .def("__len__",[](const NCollection_UtfString &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - .def("__bool__",[](const NCollection_UtfString &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Defines the 2D-vector template. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ │ +void preregister_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Generic 3-components vector. To be used as RGB color pixel or XYZ 3D-point. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +void register_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< const Element_t >() ,py::arg("theXY") ) │ │ │ │ - .def(py::init< const Element_t, const Element_t >() ,py::arg("theX"), py::arg("theY") ) │ │ │ │ + .def(py::init< Element_t >() ,py::arg("theValue") ) │ │ │ │ + .def(py::init< const Element_t, const Element_t, const Element_t >() ,py::arg("theX"), py::arg("theY"), py::arg("theZ") ) │ │ │ │ + .def(py::init< const NCollection_Vec2 &,Element_t >() ,py::arg("theVec2"), py::arg("theZ")=static_cast(Element_t ( 0 )) ) │ │ │ │ .def("SetValues", │ │ │ │ - (void (NCollection_Vec2::*)( const Element_t , const Element_t ) ) &NCollection_Vec2::SetValues, │ │ │ │ - R"#(Assign new values to the vector.)#" ,py::arg("theX"), py::arg("theY")) │ │ │ │ + (void (NCollection_Vec3::*)( const Element_t , const Element_t , const Element_t ) ) &NCollection_Vec3::SetValues, │ │ │ │ + R"#(Assign new values to the vector.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ │ + .def("SetValues", │ │ │ │ + (void (NCollection_Vec3::*)( const NCollection_Vec2 & , Element_t ) ) &NCollection_Vec3::SetValues, │ │ │ │ + R"#(Assign new values to the vector.)#" ,py::arg("theVec2"), py::arg("theZ")) │ │ │ │ .def("x", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::x, │ │ │ │ - R"#(Alias to 1st component as X coordinate in XY.)#" ) │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::x, │ │ │ │ + R"#(Alias to 1st component as X coordinate in XYZ.)#" ) │ │ │ │ + .def("r", │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::r, │ │ │ │ + R"#(Alias to 1st component as RED channel in RGB.)#" ) │ │ │ │ .def("y", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::y, │ │ │ │ - R"#(Alias to 2nd component as Y coordinate in XY.)#" ) │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::y, │ │ │ │ + R"#(Alias to 2nd component as Y coordinate in XYZ.)#" ) │ │ │ │ + .def("g", │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::g, │ │ │ │ + R"#(Alias to 2nd component as GREEN channel in RGB.)#" ) │ │ │ │ + .def("z", │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::z, │ │ │ │ + R"#(Alias to 3rd component as Z coordinate in XYZ.)#" ) │ │ │ │ + .def("b", │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::b, │ │ │ │ + R"#(Alias to 3rd component as BLUE channel in RGB.)#" ) │ │ │ │ .def("xy", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::xy, │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::xy, │ │ │ │ R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ .def("yx", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::yx, │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::yx, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("xz", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::xz, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("zx", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::zx, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("yz", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::yz, │ │ │ │ + R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("zy", │ │ │ │ + ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::zy, │ │ │ │ R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("xyz", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::xyz, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("xzy", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::xzy, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("yxz", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::yxz, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("yzx", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::yzx, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("zyx", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::zyx, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ + .def("zxy", │ │ │ │ + ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::zxy, │ │ │ │ + R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ .def("x", │ │ │ │ - (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::x, │ │ │ │ - R"#(Alias to 1st component as X coordinate in XY.)#" ) │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::x, │ │ │ │ + R"#(Alias to 1st component as X coordinate in XYZ.)#" ) │ │ │ │ + .def("r", │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::r, │ │ │ │ + R"#(Alias to 1st component as RED channel in RGB.)#" ) │ │ │ │ .def("y", │ │ │ │ - (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::y, │ │ │ │ - R"#(Alias to 2nd component as Y coordinate in XY.)#" ) │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::y, │ │ │ │ + R"#(Alias to 2nd component as Y coordinate in XYZ.)#" ) │ │ │ │ + .def("g", │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::g, │ │ │ │ + R"#(Alias to 2nd component as GREEN channel in RGB.)#" ) │ │ │ │ + .def("z", │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::z, │ │ │ │ + R"#(Alias to 3rd component as Z coordinate in XYZ.)#" ) │ │ │ │ + .def("b", │ │ │ │ + (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::b, │ │ │ │ + R"#(Alias to 3rd component as BLUE channel in RGB.)#" ) │ │ │ │ .def("IsEqual", │ │ │ │ - (bool (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::IsEqual, │ │ │ │ + (bool (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::IsEqual, │ │ │ │ R"#(Check this vector with another vector for equality (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ .def("GetData", │ │ │ │ - ( const Element_t * (NCollection_Vec2::*)() const) &NCollection_Vec2::GetData, │ │ │ │ + ( const Element_t * (NCollection_Vec3::*)() const) &NCollection_Vec3::GetData, │ │ │ │ R"#(Raw access to the data (for OpenGL exchange).)#" ) │ │ │ │ .def("ChangeData", │ │ │ │ - (Element_t * (NCollection_Vec2::*)() ) &NCollection_Vec2::ChangeData, │ │ │ │ + (Element_t * (NCollection_Vec3::*)() ) &NCollection_Vec3::ChangeData, │ │ │ │ R"#()#" ) │ │ │ │ .def("Multiply", │ │ │ │ - (void (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::Multiply, │ │ │ │ + (void (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::Multiply, │ │ │ │ R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ .def("Multiplied", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::Multiplied, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::Multiplied, │ │ │ │ R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ .def("cwiseMin", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMin, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::cwiseMin, │ │ │ │ R"#(Compute component-wise minimum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ .def("cwiseMax", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMax, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::cwiseMax, │ │ │ │ R"#(Compute component-wise maximum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ .def("cwiseAbs", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::cwiseAbs, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::cwiseAbs, │ │ │ │ R"#(Compute component-wise modulus of the vector.)#" ) │ │ │ │ .def("maxComp", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::maxComp, │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::maxComp, │ │ │ │ R"#(Compute maximum component of the vector.)#" ) │ │ │ │ .def("minComp", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::minComp, │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::minComp, │ │ │ │ R"#(Compute minimum component of the vector.)#" ) │ │ │ │ .def("Dot", │ │ │ │ - (Element_t (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::Dot, │ │ │ │ + (Element_t (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::Dot, │ │ │ │ R"#(Computes the dot product.)#" ,py::arg("theOther")) │ │ │ │ .def("Modulus", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::Modulus, │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::Modulus, │ │ │ │ R"#(Computes the vector modulus (magnitude, length).)#" ) │ │ │ │ .def("SquareModulus", │ │ │ │ - (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::SquareModulus, │ │ │ │ + (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::SquareModulus, │ │ │ │ R"#(Computes the square of vector modulus (magnitude, length). This method may be used for performance tricks.)#" ) │ │ │ │ + .def("Normalize", │ │ │ │ + (void (NCollection_Vec3::*)() ) &NCollection_Vec3::Normalize, │ │ │ │ + R"#(Normalize the vector.)#" ) │ │ │ │ + .def("Normalized", │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::Normalized, │ │ │ │ + R"#(Normalize the vector.)#" ) │ │ │ │ .def("DumpJson", │ │ │ │ - (void (NCollection_Vec2::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec2::DumpJson, │ │ │ │ + (void (NCollection_Vec3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec3::DumpJson, │ │ │ │ R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ .def_static("Length_s", │ │ │ │ - (int (*)() ) &NCollection_Vec2::Length, │ │ │ │ + (int (*)() ) &NCollection_Vec3::Length, │ │ │ │ R"#(Returns the number of components.)#" ) │ │ │ │ + .def_static("Cross_s", │ │ │ │ + (NCollection_Vec3 (*)( const NCollection_Vec3 & , const NCollection_Vec3 & ) ) &NCollection_Vec3::Cross, │ │ │ │ + R"#(Computes the cross product.)#" ,py::arg("theVec1"), py::arg("theVec2")) │ │ │ │ + .def_static("GetLERP_s", │ │ │ │ + (NCollection_Vec3 (*)( const NCollection_Vec3 & , const NCollection_Vec3 & , const Element_t ) ) &NCollection_Vec3::GetLERP, │ │ │ │ + R"#(Compute linear interpolation between to vectors.)#" ,py::arg("theFrom"), py::arg("theTo"), py::arg("theT")) │ │ │ │ .def_static("DX_s", │ │ │ │ - (NCollection_Vec2 (*)() ) &NCollection_Vec2::DX, │ │ │ │ + (NCollection_Vec3 (*)() ) &NCollection_Vec3::DX, │ │ │ │ R"#(Construct DX unit vector.)#" ) │ │ │ │ .def_static("DY_s", │ │ │ │ - (NCollection_Vec2 (*)() ) &NCollection_Vec2::DY, │ │ │ │ + (NCollection_Vec3 (*)() ) &NCollection_Vec3::DY, │ │ │ │ R"#(Construct DY unit vector.)#" ) │ │ │ │ + .def_static("DZ_s", │ │ │ │ + (NCollection_Vec3 (*)() ) &NCollection_Vec3::DZ, │ │ │ │ + R"#(Construct DZ unit vector.)#" ) │ │ │ │ .def("__iadd__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator+=, │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator+=, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component summary.)#" ,py::arg("theAdd")) │ │ │ │ - .def("__isub__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator-=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-component subtraction.)#" ,py::arg("theDec")) │ │ │ │ .def("__sub__", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::operator-, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::operator-, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Unary -.)#" ) │ │ │ │ + .def("__isub__", │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator-=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component subtraction.)#" ,py::arg("theDec")) │ │ │ │ .def("__imul__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator*=, │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator*=, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component multiplication.)#" ,py::arg("theRight")) │ │ │ │ .def("__imul__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator*=, │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::operator*=, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__itruediv__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator/=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ - .def("__itruediv__", │ │ │ │ - (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator/=, │ │ │ │ - py::is_operator(), │ │ │ │ - R"#(Compute per-component division.)#" ,py::arg("theRight")) │ │ │ │ .def("__mul__", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator*, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ .def("__rmul__", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator*, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__itruediv__", │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::operator/=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ + .def("__itruediv__", │ │ │ │ + (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator/=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-component division.)#" ,py::arg("theRight")) │ │ │ │ .def("__truediv__", │ │ │ │ - (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator/, │ │ │ │ + (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator/, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Simple linear interpolation tool (also known as mix() in GLSL). The main purpose of this template class is making interpolation routines more readable.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R"#(Dynamically resizable sparse array of objects)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const T &, const T & >() ,py::arg("theStart"), py::arg("theEnd") ) │ │ │ │ - .def("Init", │ │ │ │ - (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init, │ │ │ │ - R"#(Initialize values.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ │ - .def("Interpolate", │ │ │ │ - (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate, │ │ │ │ - R"#(Compute interpolated value between two values.)#" ,py::arg("theT"), py::arg("theResult")) │ │ │ │ - .def_static("Interpolate_s", │ │ │ │ - (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate, │ │ │ │ - R"#(Compute interpolated value between two values.)#" ,py::arg("theStart"), py::arg("theEnd"), py::arg("theT")) │ │ │ │ +template │ │ │ │ +void register_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name)) │ │ │ │ + .def(py::init< Standard_Size >() ,py::arg("theIncrement") ) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign, │ │ │ │ + R"#(Explicit assignment operator)#" ,py::arg("theOther")) │ │ │ │ + .def("Exchange", │ │ │ │ + (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange, │ │ │ │ + R"#(Exchange the data of two arrays; can be used primarily to move contents of theOther into the new array in a fast way (without creation of duplicated data))#" ,py::arg("theOther")) │ │ │ │ + .def("Value", │ │ │ │ + ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value, │ │ │ │ + R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue, │ │ │ │ + R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ │ + .def("SetValue", │ │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue, │ │ │ │ + R"#(Set a value at specified index method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ + .def("Extent", │ │ │ │ + (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent, │ │ │ │ + R"#(Returns number of items in the array)#" ) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty, │ │ │ │ + R"#(Returns True if array is empty)#" ) │ │ │ │ + .def("Find", │ │ │ │ + ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find, │ │ │ │ + R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ │ + .def("ChangeFind", │ │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind, │ │ │ │ + R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ │ + .def("Bind", │ │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind, │ │ │ │ + R"#(Set a value as explicit method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ + .def("IsBound", │ │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound, │ │ │ │ + R"#(Returns True if the item is defined)#" ,py::arg("theIndex")) │ │ │ │ + .def("UnBind", │ │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind, │ │ │ │ + R"#(Remove the item from array)#" ,py::arg("theIndex")) │ │ │ │ + .def("__len__",[](const NCollection_SparseArray &self) │ │ │ │ + { return self.Extent(); } │ │ │ │ + ) │ │ │ │ + .def("__bool__",[](const NCollection_SparseArray &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(A data structure for sorting geometric objects (called targets) in n-dimensional space into cells, with associated algorithm for fast checking of coincidence (overlapping, intersection, etc.) with other objects (called here bullets).)#"); │ │ │ │ +template > │ │ │ │ +void preregister_template_NCollection_Map(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: Single hashed Map. This Map is used to store and retrieve keys in linear time.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Real, const handle & >() ,py::arg("theDim"), py::arg("theCellSize")=static_cast< const Standard_Real>(0), py::arg("theAlloc")=static_cast< const handle &>(0) ) │ │ │ │ - .def(py::init< const Standard_Real, const handle & >() ,py::arg("theCellSize")=static_cast< const Standard_Real>(0), py::arg("theAlloc")=static_cast< const handle &>(0) ) │ │ │ │ - .def("Reset", │ │ │ │ - (void (NCollection_CellFilter::*)( Standard_Real , const handle & ) ) &NCollection_CellFilter::Reset, │ │ │ │ - R"#(Clear the data structures, set new cell size and allocator)#" ,py::arg("theCellSize"), py::arg("theAlloc")=static_cast< const handle &>(0)) │ │ │ │ - .def("Reset", │ │ │ │ - (void (NCollection_CellFilter::*)( NCollection_Array1 & , const handle & ) ) &NCollection_CellFilter::Reset, │ │ │ │ - R"#(Clear the data structures and set new cell sizes and allocator)#" ,py::arg("theCellSize"), py::arg("theAlloc")=static_cast< const handle &>(0)) │ │ │ │ - .def("Add", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add, │ │ │ │ - R"#(Adds a target object for further search at a point (into only one cell))#" ,py::arg("theTarget"), py::arg("thePnt")) │ │ │ │ +template > │ │ │ │ +void register_template_NCollection_Map(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ + .def(py::init< const NCollection_Map & >() ,py::arg("theOther") ) │ │ │ │ + .def("cbegin", │ │ │ │ + (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin, │ │ │ │ + R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ │ + .def("cend", │ │ │ │ + (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend, │ │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ + .def("Exchange", │ │ │ │ + (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange, │ │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign, │ │ │ │ + R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ + .def("ReSize", │ │ │ │ + (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize, │ │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ │ .def("Add", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add, │ │ │ │ - R"#(Adds a target object for further search in the range of cells defined by two points (the first point must have all coordinates equal or less than the same coordinate of the second point))#" ,py::arg("theTarget"), py::arg("thePntMin"), py::arg("thePntMax")) │ │ │ │ - .def("Remove", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove, │ │ │ │ - R"#(Find a target object at a point and remove it from the structures. For usage of this method "operator ==" should be defined for Target.)#" ,py::arg("theTarget"), py::arg("thePnt")) │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add, │ │ │ │ + R"#(Add)#" ,py::arg("theKey")) │ │ │ │ + .def("Added", │ │ │ │ + ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added, │ │ │ │ + R"#(Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object)#" ,py::arg("theKey")) │ │ │ │ + .def("Contains", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains, │ │ │ │ + R"#(Contains)#" ,py::arg("theKey")) │ │ │ │ .def("Remove", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove, │ │ │ │ - R"#(Find a target object in the range of cells defined by two points and remove it from the structures (the first point must have all coordinates equal or less than the same coordinate of the second point). For usage of this method "operator ==" should be defined for Target.)#" ,py::arg("theTarget"), py::arg("thePntMin"), py::arg("thePntMax")) │ │ │ │ - .def("Inspect", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect, │ │ │ │ - R"#(Inspect all targets in the cell corresponding to the given point)#" ,py::arg("thePnt"), py::arg("theInspector")) │ │ │ │ - .def("Inspect", │ │ │ │ - (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect, │ │ │ │ - R"#(Inspect all targets in the cells range limited by two given points (the first point must have all coordinates equal or less than the same coordinate of the second point))#" ,py::arg("thePntMin"), py::arg("thePntMax"), py::arg("theInspector")) │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove, │ │ │ │ + R"#(Remove)#" ,py::arg("K")) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear, │ │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear, │ │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size, │ │ │ │ + R"#(Size)#" ) │ │ │ │ + .def("IsEqual", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual, │ │ │ │ + R"#(Returns true if two maps contains exactly the same keys)#" ,py::arg("theOther")) │ │ │ │ + .def("Contains", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains, │ │ │ │ + R"#(Returns true if this map contains ALL keys of another map.)#" ,py::arg("theOther")) │ │ │ │ + .def("Union", │ │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union, │ │ │ │ + R"#(Sets this Map to be the result of union (aka addition, fuse, merge, boolean OR) operation between two given Maps The new Map contains the values that are contained either in the first map or in the second map or in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be passed as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ + .def("Unite", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite, │ │ │ │ + R"#(Apply to this Map the boolean operation union (aka addition, fuse, merge, boolean OR) with another (given) Map. The result contains the values that were previously contained in this map or contained in the given (operand) map. This algorithm is similar to method Union(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ + .def("HasIntersection", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection, │ │ │ │ + R"#(Returns true if this and theMap have common elements.)#" ,py::arg("theMap")) │ │ │ │ + .def("Intersection", │ │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection, │ │ │ │ + R"#(Sets this Map to be the result of intersection (aka multiplication, common, boolean AND) operation between two given Maps. The new Map contains only the values that are contained in both map operands. All previous content of this Map is cleared. This same map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ + .def("Intersect", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect, │ │ │ │ + R"#(Apply to this Map the intersection operation (aka multiplication, common, boolean AND) with another (given) Map. The result contains only the values that are contained in both this and the given maps. This algorithm is similar to method Intersection(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ + .def("Subtraction", │ │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction, │ │ │ │ + R"#(Sets this Map to be the result of subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation between two given Maps. The new Map contains only the values that are contained in the first map operands and not contained in the second one. All previous content of this Map is cleared.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ + .def("Subtract", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract, │ │ │ │ + R"#(Apply to this Map the subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation with another (given) Map. The result contains only the values that were previously contained in this map and not contained in this map. This algorithm is similar to method Subtract() with two operands. Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ + .def("Difference", │ │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference, │ │ │ │ + R"#(Sets this Map to be the result of symmetric difference (aka exclusive disjunction, boolean XOR) operation between two given Maps. The new Map contains the values that are contained only in the first or the second operand maps but not in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ │ + .def("Differ", │ │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ, │ │ │ │ + R"#(Apply to this Map the symmetric difference (aka exclusive disjunction, boolean XOR) operation with another (given) Map. The result contains the values that are contained only in this or the operand map, but not in both. This algorithm is similar to method Difference(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ │ + .def("__iter__",[](const NCollection_Map &self) │ │ │ │ + { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ │ + py::keep_alive<0, 1>()) │ │ │ │ + .def("__len__",[](const NCollection_Map &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(This class is used to fill an UBTree in a random order. The quality of a tree is much better (from the point of view of the search time) if objects are added to it in a random order to avoid adding a chain of neerby objects one following each other.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< typename NCollection_UBTreeFiller::UBTree &, const handle &, const Standard_Boolean >() ,py::arg("theTree"), py::arg("theAlloc")=static_cast< const handle &>(0L), py::arg("isFullRandom")=static_cast< const Standard_Boolean>(Standard_True) ) │ │ │ │ - .def("Add", │ │ │ │ - (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add, │ │ │ │ - R"#(Adds a pair (theObj, theBnd) to my sequence)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ │ - .def("Fill", │ │ │ │ - (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill, │ │ │ │ - R"#(Fills the tree with the objects from my sequence. This method clears the internal buffer of added items making sure that no item would be added twice.)#" ) │ │ │ │ - .def("Reset", │ │ │ │ - (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset, │ │ │ │ - R"#(Remove all data from Filler, partculary if the Tree no more needed so the destructor of this Filler should not populate the useless Tree.)#" ) │ │ │ │ - .def("CheckTree", │ │ │ │ - (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree, │ │ │ │ - R"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#" ,py::arg("theStream")) │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const handle & >() ,py::arg("arg") ) │ │ │ │ + .def("address", │ │ │ │ + (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address, │ │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ + .def("address", │ │ │ │ + (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address, │ │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ + .def("destroy", │ │ │ │ + (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy, │ │ │ │ + R"#(Destroys the object. Uses the object destructor.)#" ,py::arg("thePnt")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Class NCollection_DynamicArray (dynamic array of objects))#"); │ │ │ │ +void preregister_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: The class Array2 represents bi-dimensional arrays of fixed size known at run time. The ranges of indices are user defined.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const Standard_Integer >() ,py::arg("theIncrement")=static_cast< const Standard_Integer>(256) ) │ │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ │ - .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ │ - .def(py::init< const NCollection_DynamicArray & >() ,py::arg("theOther") ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("cbegin", │ │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("cend", │ │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Length", │ │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length, │ │ │ │ - R"#(Total number of items)#" ) │ │ │ │ +void register_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ + .def(py::init< const typename NCollection_Array2::allocator_type &, const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ + .def(py::init< const NCollection_Array2 & >() ,py::arg("theOther") ) │ │ │ │ + .def(py::init< const TheItemType &, const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theBegin"), py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ .def("Size", │ │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size, │ │ │ │ - R"#(Total number of items in the vector)#" ) │ │ │ │ - .def("Lower", │ │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower, │ │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ │ - .def("Upper", │ │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper, │ │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty, │ │ │ │ - R"#(Empty query)#" ) │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::Size, │ │ │ │ + R"#(Size (number of items))#" ) │ │ │ │ + .def("Length", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::Length, │ │ │ │ + R"#(Length (number of items))#" ) │ │ │ │ + .def("NbRows", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::NbRows, │ │ │ │ + R"#(Returns number of rows)#" ) │ │ │ │ + .def("NbColumns", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::NbColumns, │ │ │ │ + R"#(Returns number of columns)#" ) │ │ │ │ + .def("RowLength", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::RowLength, │ │ │ │ + R"#(Returns length of the row, i.e. number of columns)#" ) │ │ │ │ + .def("ColLength", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::ColLength, │ │ │ │ + R"#(Returns length of the column, i.e. number of rows)#" ) │ │ │ │ + .def("LowerRow", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::LowerRow, │ │ │ │ + R"#(LowerRow)#" ) │ │ │ │ + .def("UpperRow", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::UpperRow, │ │ │ │ + R"#(UpperRow)#" ) │ │ │ │ + .def("LowerCol", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::LowerCol, │ │ │ │ + R"#(LowerCol)#" ) │ │ │ │ + .def("UpperCol", │ │ │ │ + (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::UpperCol, │ │ │ │ + R"#(UpperCol)#" ) │ │ │ │ .def("Assign", │ │ │ │ - (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign, │ │ │ │ - R"#(Assignment to the collection of the same type)#" ,py::arg("theOther"), py::arg("theOwnAllocator")=static_cast< const bool>(true)) │ │ │ │ - .def("Append", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append, │ │ │ │ - R"#(Append)#" ,py::arg("theValue")) │ │ │ │ - .def("EraseLast", │ │ │ │ - (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Appended", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended, │ │ │ │ - R"#(Appends an empty value and returns the reference to it)#" ) │ │ │ │ + (NCollection_Array2 & (NCollection_Array2::*)( const NCollection_Array2 & ) ) &NCollection_Array2::Assign, │ │ │ │ + R"#(Assignment)#" ,py::arg("theOther")) │ │ │ │ + .def("Move", │ │ │ │ + (NCollection_Array2 & (NCollection_Array2::*)( NCollection_Array2 & ) ) &NCollection_Array2::Move, │ │ │ │ + R"#(Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.)#" ,py::arg("theOther")) │ │ │ │ .def("Value", │ │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value, │ │ │ │ - R"#()#" ,py::arg("theIndex")) │ │ │ │ - .def("First", │ │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First, │ │ │ │ - R"#(Returns first element)#" ) │ │ │ │ - .def("ChangeFirst", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst, │ │ │ │ - R"#(Returns first element)#" ) │ │ │ │ - .def("Last", │ │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last, │ │ │ │ - R"#(Returns last element)#" ) │ │ │ │ - .def("ChangeLast", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast, │ │ │ │ - R"#(Returns last element)#" ) │ │ │ │ + (typename NCollection_Array2::const_reference (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_Array2::Value, │ │ │ │ + R"#(Constant value access)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ .def("ChangeValue", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue, │ │ │ │ - R"#()#" ,py::arg("theIndex")) │ │ │ │ + (typename NCollection_Array2::reference (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Array2::ChangeValue, │ │ │ │ + R"#(Variable value access)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ .def("SetValue", │ │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue, │ │ │ │ - R"#(SetValue () - set or append a value)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear, │ │ │ │ - R"#()#" ,py::arg("theReleaseMemory")=static_cast< const bool>(false)) │ │ │ │ - .def("SetIncrement", │ │ │ │ - (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement, │ │ │ │ - R"#()#" ,py::arg("theIncrement")) │ │ │ │ - .def("__iter__",[](const NCollection_DynamicArray &self) │ │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ - py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_DynamicArray &self) │ │ │ │ + (void (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer , const TheItemType & ) ) &NCollection_Array2::SetValue, │ │ │ │ + R"#(SetValue)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theItem")) │ │ │ │ + .def("Resize", │ │ │ │ + (void (NCollection_Array2::*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer , Standard_Boolean ) ) &NCollection_Array2::Resize, │ │ │ │ + R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper"), py::arg("theToCopyData")) │ │ │ │ + .def_static("BeginPosition_s", │ │ │ │ + (int (*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer ) ) &NCollection_Array2::BeginPosition, │ │ │ │ + R"#()#" ,py::arg("theRowLower"), py::arg("arg"), py::arg("theColLower"), py::arg("theColUpper")) │ │ │ │ + .def_static("LastPosition_s", │ │ │ │ + (int (*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer ) ) &NCollection_Array2::LastPosition, │ │ │ │ + R"#()#" ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper")) │ │ │ │ + .def("__len__",[](const NCollection_Array2 &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ - .def("__bool__",[](const NCollection_DynamicArray &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_NCollection_Vec4(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Generic 4-components vector. To be used as RGBA color vector or XYZW 3D-point with special W-component for operations with projection / model view matrices. Use this class for 3D-points carefully because declared W-component may results in incorrect results if used without matrices.)#"); │ │ │ │ } │ │ │ │ @@ -1958,231 +1468,751 @@ │ │ │ │ .def("__truediv__", │ │ │ │ (NCollection_Vec4 (NCollection_Vec4::*)( const Element_t ) ) &NCollection_Vec4::operator/, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const size_t >() ,py::arg("theSize") ) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Allocate", │ │ │ │ + (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate, │ │ │ │ + R"#()#" ,py::arg("theSize")) │ │ │ │ + .def("Size", │ │ │ │ + (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("__len__",[](const NCollection_LocalArray &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template > │ │ │ │ +void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1.. Extent. An Item is stored with each key.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template > │ │ │ │ +void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ + .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg("theOther") ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin, │ │ │ │ + R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end, │ │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ + .def("cbegin", │ │ │ │ + (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin, │ │ │ │ + R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ │ + .def("cend", │ │ │ │ + (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend, │ │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ + .def("Exchange", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange, │ │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign, │ │ │ │ + R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ + .def("ReSize", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize, │ │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ │ + .def("Add", │ │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add, │ │ │ │ + R"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#" ,py::arg("theKey1"), py::arg("theItem")) │ │ │ │ + .def("Contains", │ │ │ │ + (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains, │ │ │ │ + R"#(Contains)#" ,py::arg("theKey1")) │ │ │ │ + .def("Substitute", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute, │ │ │ │ + R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1"), py::arg("theItem")) │ │ │ │ + .def("Swap", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap, │ │ │ │ + R"#(Swaps two elements with the given indices.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ + .def("RemoveLast", │ │ │ │ + (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast, │ │ │ │ + R"#(RemoveLast)#" ) │ │ │ │ + .def("RemoveFromIndex", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex, │ │ │ │ + R"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#" ,py::arg("theIndex")) │ │ │ │ + .def("RemoveKey", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey, │ │ │ │ + R"#(Remove the given key. Caution! The index of the last key can be changed.)#" ,py::arg("theKey1")) │ │ │ │ + .def("FindKey", │ │ │ │ + ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey, │ │ │ │ + R"#(FindKey)#" ,py::arg("theIndex")) │ │ │ │ + .def("FindFromIndex", │ │ │ │ + ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex, │ │ │ │ + R"#(FindFromIndex)#" ,py::arg("theIndex")) │ │ │ │ + .def("ChangeFromIndex", │ │ │ │ + (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex, │ │ │ │ + R"#(ChangeFromIndex)#" ,py::arg("theIndex")) │ │ │ │ + .def("FindIndex", │ │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex, │ │ │ │ + R"#(FindIndex)#" ,py::arg("theKey1")) │ │ │ │ + .def("FindFromKey", │ │ │ │ + ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ │ + R"#(FindFromKey)#" ,py::arg("theKey1")) │ │ │ │ + .def("ChangeFromKey", │ │ │ │ + (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey, │ │ │ │ + R"#(ChangeFromKey)#" ,py::arg("theKey1")) │ │ │ │ + .def("Seek", │ │ │ │ + ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek, │ │ │ │ + R"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ │ + .def("ChangeSeek", │ │ │ │ + (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek, │ │ │ │ + R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ │ + .def("FindFromKey", │ │ │ │ + (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ │ + R"#(Find value for key with copying.)#" ,py::arg("theKey1"), py::arg("theValue")) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear, │ │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear, │ │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size, │ │ │ │ + R"#(Size)#" ) │ │ │ │ + .def("__iter__",[](const NCollection_IndexedDataMap &self) │ │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ + py::keep_alive<0, 1>()) │ │ │ │ + .def("__len__",[](const NCollection_IndexedDataMap &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Generic 3-components vector. To be used as RGB color pixel or XYZ 3D-point. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ │ +void preregister_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +void register_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< Element_t >() ,py::arg("theValue") ) │ │ │ │ - .def(py::init< const Element_t, const Element_t, const Element_t >() ,py::arg("theX"), py::arg("theY"), py::arg("theZ") ) │ │ │ │ - .def(py::init< const NCollection_Vec2 &,Element_t >() ,py::arg("theVec2"), py::arg("theZ")=static_cast(Element_t ( 0 )) ) │ │ │ │ - .def("SetValues", │ │ │ │ - (void (NCollection_Vec3::*)( const Element_t , const Element_t , const Element_t ) ) &NCollection_Vec3::SetValues, │ │ │ │ - R"#(Assign new values to the vector.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ │ - .def("SetValues", │ │ │ │ - (void (NCollection_Vec3::*)( const NCollection_Vec2 & , Element_t ) ) &NCollection_Vec3::SetValues, │ │ │ │ - R"#(Assign new values to the vector.)#" ,py::arg("theVec2"), py::arg("theZ")) │ │ │ │ - .def("x", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::x, │ │ │ │ - R"#(Alias to 1st component as X coordinate in XYZ.)#" ) │ │ │ │ - .def("r", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::r, │ │ │ │ - R"#(Alias to 1st component as RED channel in RGB.)#" ) │ │ │ │ - .def("y", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::y, │ │ │ │ - R"#(Alias to 2nd component as Y coordinate in XYZ.)#" ) │ │ │ │ - .def("g", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::g, │ │ │ │ - R"#(Alias to 2nd component as GREEN channel in RGB.)#" ) │ │ │ │ - .def("z", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::z, │ │ │ │ - R"#(Alias to 3rd component as Z coordinate in XYZ.)#" ) │ │ │ │ - .def("b", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::b, │ │ │ │ - R"#(Alias to 3rd component as BLUE channel in RGB.)#" ) │ │ │ │ - .def("xy", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::xy, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("yx", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::yx, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("xz", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::xz, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("zx", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::zx, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("yz", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::yz, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("zy", │ │ │ │ - ( const NCollection_Vec2 (NCollection_Vec3::*)() const) &NCollection_Vec3::zy, │ │ │ │ - R"#(Returns 2 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("xyz", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::xyz, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("xzy", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::xzy, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("yxz", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::yxz, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("yzx", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::yzx, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("zyx", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::zyx, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("zxy", │ │ │ │ - ( const NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::zxy, │ │ │ │ - R"#(Returns 3 components by their names in specified order (in GLSL-style))#" ) │ │ │ │ - .def("x", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::x, │ │ │ │ - R"#(Alias to 1st component as X coordinate in XYZ.)#" ) │ │ │ │ - .def("r", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::r, │ │ │ │ - R"#(Alias to 1st component as RED channel in RGB.)#" ) │ │ │ │ - .def("y", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::y, │ │ │ │ - R"#(Alias to 2nd component as Y coordinate in XYZ.)#" ) │ │ │ │ - .def("g", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::g, │ │ │ │ - R"#(Alias to 2nd component as GREEN channel in RGB.)#" ) │ │ │ │ - .def("z", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::z, │ │ │ │ - R"#(Alias to 3rd component as Z coordinate in XYZ.)#" ) │ │ │ │ - .def("b", │ │ │ │ - (Element_t & (NCollection_Vec3::*)() ) &NCollection_Vec3::b, │ │ │ │ - R"#(Alias to 3rd component as BLUE channel in RGB.)#" ) │ │ │ │ + .def("GetValue", │ │ │ │ + (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue, │ │ │ │ + R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue, │ │ │ │ + R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ + .def("SetValue", │ │ │ │ + (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue, │ │ │ │ + R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ │ + .def("GetRow", │ │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow, │ │ │ │ + R"#(Return the row.)#" ,py::arg("theRow")) │ │ │ │ + .def("SetRow", │ │ │ │ + (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow, │ │ │ │ + R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ + .def("GetColumn", │ │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn, │ │ │ │ + R"#(Return the column.)#" ,py::arg("theCol")) │ │ │ │ + .def("SetColumn", │ │ │ │ + (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn, │ │ │ │ + R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ + .def("GetDiagonal", │ │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal, │ │ │ │ + R"#(Get vector of diagonal elements.)#" ) │ │ │ │ + .def("SetDiagonal", │ │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal, │ │ │ │ + R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ │ + .def("InitZero", │ │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero, │ │ │ │ + R"#(Initialize the zero matrix.)#" ) │ │ │ │ + .def("IsZero", │ │ │ │ + (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero, │ │ │ │ + R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ │ + .def("InitIdentity", │ │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity, │ │ │ │ + R"#(Initialize the identity matrix.)#" ) │ │ │ │ + .def("IsIdentity", │ │ │ │ + (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity, │ │ │ │ + R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ │ .def("IsEqual", │ │ │ │ - (bool (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::IsEqual, │ │ │ │ - R"#(Check this vector with another vector for equality (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ + (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual, │ │ │ │ + R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ .def("GetData", │ │ │ │ - ( const Element_t * (NCollection_Vec3::*)() const) &NCollection_Vec3::GetData, │ │ │ │ - R"#(Raw access to the data (for OpenGL exchange).)#" ) │ │ │ │ + ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData, │ │ │ │ + R"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#" ) │ │ │ │ .def("ChangeData", │ │ │ │ - (Element_t * (NCollection_Vec3::*)() ) &NCollection_Vec3::ChangeData, │ │ │ │ + (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData, │ │ │ │ R"#()#" ) │ │ │ │ .def("Multiply", │ │ │ │ - (void (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::Multiply, │ │ │ │ - R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ │ + R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ │ .def("Multiplied", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::Multiplied, │ │ │ │ - R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ - .def("cwiseMin", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::cwiseMin, │ │ │ │ - R"#(Compute component-wise minimum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ - .def("cwiseMax", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::cwiseMax, │ │ │ │ - R"#(Compute component-wise maximum of two vectors.)#" ,py::arg("theVec")) │ │ │ │ - .def("cwiseAbs", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::cwiseAbs, │ │ │ │ - R"#(Compute component-wise modulus of the vector.)#" ) │ │ │ │ - .def("maxComp", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::maxComp, │ │ │ │ - R"#(Compute maximum component of the vector.)#" ) │ │ │ │ - .def("minComp", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::minComp, │ │ │ │ - R"#(Compute minimum component of the vector.)#" ) │ │ │ │ - .def("Dot", │ │ │ │ - (Element_t (NCollection_Vec3::*)( const NCollection_Vec3 & ) const) &NCollection_Vec3::Dot, │ │ │ │ - R"#(Computes the dot product.)#" ,py::arg("theOther")) │ │ │ │ - .def("Modulus", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::Modulus, │ │ │ │ - R"#(Computes the vector modulus (magnitude, length).)#" ) │ │ │ │ - .def("SquareModulus", │ │ │ │ - (Element_t (NCollection_Vec3::*)() const) &NCollection_Vec3::SquareModulus, │ │ │ │ - R"#(Computes the square of vector modulus (magnitude, length). This method may be used for performance tricks.)#" ) │ │ │ │ - .def("Normalize", │ │ │ │ - (void (NCollection_Vec3::*)() ) &NCollection_Vec3::Normalize, │ │ │ │ - R"#(Normalize the vector.)#" ) │ │ │ │ - .def("Normalized", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::Normalized, │ │ │ │ - R"#(Normalize the vector.)#" ) │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied, │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ + .def("Multiply", │ │ │ │ + (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply, │ │ │ │ + R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Multiplied", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied, │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Divide", │ │ │ │ + (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide, │ │ │ │ + R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Divided", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided, │ │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ + .def("Add", │ │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add, │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Subtract", │ │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract, │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Added", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added, │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Subtracted", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted, │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Negated", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated, │ │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ │ + .def("Transposed", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed, │ │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ │ + .def("Transpose", │ │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose, │ │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ │ + .def("Determinant", │ │ │ │ + (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant, │ │ │ │ + R"#(Return determinant of the matrix.)#" ) │ │ │ │ + .def("Adjoint", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint, │ │ │ │ + R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ │ + .def("Inverted", │ │ │ │ + (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted, │ │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theInv"), py::arg("theDet")) │ │ │ │ + .def("Inverted", │ │ │ │ + (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted, │ │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theInv")) │ │ │ │ + .def("Inverted", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted, │ │ │ │ + R"#(Return inverted matrix.)#" ) │ │ │ │ .def("DumpJson", │ │ │ │ - (void (NCollection_Vec3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec3::DumpJson, │ │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ - .def_static("Length_s", │ │ │ │ - (int (*)() ) &NCollection_Vec3::Length, │ │ │ │ - R"#(Returns the number of components.)#" ) │ │ │ │ - .def_static("Cross_s", │ │ │ │ - (NCollection_Vec3 (*)( const NCollection_Vec3 & , const NCollection_Vec3 & ) ) &NCollection_Vec3::Cross, │ │ │ │ - R"#(Computes the cross product.)#" ,py::arg("theVec1"), py::arg("theVec2")) │ │ │ │ - .def_static("GetLERP_s", │ │ │ │ - (NCollection_Vec3 (*)( const NCollection_Vec3 & , const NCollection_Vec3 & , const Element_t ) ) &NCollection_Vec3::GetLERP, │ │ │ │ - R"#(Compute linear interpolation between to vectors.)#" ,py::arg("theFrom"), py::arg("theTo"), py::arg("theT")) │ │ │ │ - .def_static("DX_s", │ │ │ │ - (NCollection_Vec3 (*)() ) &NCollection_Vec3::DX, │ │ │ │ - R"#(Construct DX unit vector.)#" ) │ │ │ │ - .def_static("DY_s", │ │ │ │ - (NCollection_Vec3 (*)() ) &NCollection_Vec3::DY, │ │ │ │ - R"#(Construct DY unit vector.)#" ) │ │ │ │ - .def_static("DZ_s", │ │ │ │ - (NCollection_Vec3 (*)() ) &NCollection_Vec3::DZ, │ │ │ │ - R"#(Construct DZ unit vector.)#" ) │ │ │ │ + (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson, │ │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ │ + .def_static("Identity_s", │ │ │ │ + (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity, │ │ │ │ + R"#(Return identity matrix.)#" ) │ │ │ │ + .def_static("Zero_s", │ │ │ │ + (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero, │ │ │ │ + R"#(Return zero matrix.)#" ) │ │ │ │ + .def_static("Multiply_s", │ │ │ │ + (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ │ + R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ │ + .def_static("Map_s", │ │ │ │ + (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map, │ │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ + .def_static("Map_s", │ │ │ │ + ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map, │ │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ + .def("__imul__", │ │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ + .def("__imul__", │ │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__itruediv__", │ │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ │ + .def("__truediv__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ .def("__iadd__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator+=, │ │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component summary.)#" ,py::arg("theAdd")) │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__isub__", │ │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__add__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ .def("__sub__", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)() const) &NCollection_Vec3::operator-, │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Unary -.)#" ) │ │ │ │ - .def("__isub__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator-=, │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__sub__", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component subtraction.)#" ,py::arg("theDec")) │ │ │ │ - .def("__imul__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator*=, │ │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Class NCollection_DynamicArray (dynamic array of objects))#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer >() ,py::arg("theIncrement")=static_cast< const Standard_Integer>(256) ) │ │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ │ + .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ │ + .def(py::init< const NCollection_DynamicArray & >() ,py::arg("theOther") ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("cbegin", │ │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("cend", │ │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Length", │ │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length, │ │ │ │ + R"#(Total number of items)#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size, │ │ │ │ + R"#(Total number of items in the vector)#" ) │ │ │ │ + .def("Lower", │ │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower, │ │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ │ + .def("Upper", │ │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper, │ │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty, │ │ │ │ + R"#(Empty query)#" ) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign, │ │ │ │ + R"#(Assignment to the collection of the same type)#" ,py::arg("theOther"), py::arg("theOwnAllocator")=static_cast< const bool>(true)) │ │ │ │ + .def("Append", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append, │ │ │ │ + R"#(Append)#" ,py::arg("theValue")) │ │ │ │ + .def("EraseLast", │ │ │ │ + (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Appended", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended, │ │ │ │ + R"#(Appends an empty value and returns the reference to it)#" ) │ │ │ │ + .def("Value", │ │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value, │ │ │ │ + R"#()#" ,py::arg("theIndex")) │ │ │ │ + .def("First", │ │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First, │ │ │ │ + R"#(Returns first element)#" ) │ │ │ │ + .def("ChangeFirst", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst, │ │ │ │ + R"#(Returns first element)#" ) │ │ │ │ + .def("Last", │ │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last, │ │ │ │ + R"#(Returns last element)#" ) │ │ │ │ + .def("ChangeLast", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast, │ │ │ │ + R"#(Returns last element)#" ) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue, │ │ │ │ + R"#()#" ,py::arg("theIndex")) │ │ │ │ + .def("SetValue", │ │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue, │ │ │ │ + R"#(SetValue () - set or append a value)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear, │ │ │ │ + R"#()#" ,py::arg("theReleaseMemory")=static_cast< const bool>(false)) │ │ │ │ + .def("SetIncrement", │ │ │ │ + (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement, │ │ │ │ + R"#()#" ,py::arg("theIncrement")) │ │ │ │ + .def("__iter__",[](const NCollection_DynamicArray &self) │ │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ + py::keep_alive<0, 1>()) │ │ │ │ + .def("__len__",[](const NCollection_DynamicArray &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + .def("__bool__",[](const NCollection_DynamicArray &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Generic matrix of 4 x 4 elements. To be used in conjunction with NCollection_Vec4 entities. Originally introduced for 3D space projection and orientation operations. Warning, empty constructor returns an identity matrix.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("GetValue", │ │ │ │ + (Element_t (NCollection_Mat4::*)( const size_t , const size_t ) const) &NCollection_Mat4::GetValue, │ │ │ │ + R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (Element_t & (NCollection_Mat4::*)( const size_t , const size_t ) ) &NCollection_Mat4::ChangeValue, │ │ │ │ + R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ + .def("SetValue", │ │ │ │ + (void (NCollection_Mat4::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat4::SetValue, │ │ │ │ + R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ │ + .def("GetRow", │ │ │ │ + (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetRow, │ │ │ │ + R"#(Get vector of elements for the specified row.)#" ,py::arg("theRow")) │ │ │ │ + .def("SetRow", │ │ │ │ + (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetRow, │ │ │ │ + R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ + .def("SetRow", │ │ │ │ + (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetRow, │ │ │ │ + R"#(Set row values by the passed 4 element vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ │ + .def("GetColumn", │ │ │ │ + (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetColumn, │ │ │ │ + R"#(Get vector of elements for the specified column.)#" ,py::arg("theCol")) │ │ │ │ + .def("SetColumn", │ │ │ │ + (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetColumn, │ │ │ │ + R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ + .def("SetColumn", │ │ │ │ + (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetColumn, │ │ │ │ + R"#(Set column values by the passed 4 element vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ │ + .def("GetDiagonal", │ │ │ │ + (NCollection_Vec4 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetDiagonal, │ │ │ │ + R"#(Get vector of diagonal elements.)#" ) │ │ │ │ + .def("SetDiagonal", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::SetDiagonal, │ │ │ │ + R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ │ + .def("SetDiagonal", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Vec4 & ) ) &NCollection_Mat4::SetDiagonal, │ │ │ │ + R"#(Set diagonal elements of the matrix by the passed vector.)#" ,py::arg("theVec")) │ │ │ │ + .def("GetMat3", │ │ │ │ + (NCollection_Mat3 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetMat3, │ │ │ │ + R"#(Return 3x3 sub-matrix.)#" ) │ │ │ │ + .def("InitZero", │ │ │ │ + (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitZero, │ │ │ │ + R"#(Initialize the zero matrix.)#" ) │ │ │ │ + .def("IsZero", │ │ │ │ + (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsZero, │ │ │ │ + R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ │ + .def("InitIdentity", │ │ │ │ + (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitIdentity, │ │ │ │ + R"#(Initialize the identity matrix.)#" ) │ │ │ │ + .def("IsIdentity", │ │ │ │ + (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsIdentity, │ │ │ │ + R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ │ + .def("IsEqual", │ │ │ │ + (bool (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::IsEqual, │ │ │ │ + R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ │ + .def("GetData", │ │ │ │ + ( const Element_t * (NCollection_Mat4::*)() const) &NCollection_Mat4::GetData, │ │ │ │ + R"#(Raw access to the data (for OpenGL exchange); the data is returned in column-major order.)#" ) │ │ │ │ + .def("ChangeData", │ │ │ │ + (Element_t * (NCollection_Mat4::*)() ) &NCollection_Mat4::ChangeData, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Multiply", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply, │ │ │ │ + R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ │ + .def("Multiplied", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Multiplied, │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ + .def("Multiply", │ │ │ │ + (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Multiply, │ │ │ │ + R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Multiplied", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Multiplied, │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Divide", │ │ │ │ + (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Divide, │ │ │ │ + R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ │ + .def("Divided", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Divided, │ │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ + .def("Add", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Add, │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Subtract", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Subtract, │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Added", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Added, │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Subtracted", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Subtracted, │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("Negated", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Negated, │ │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ │ + .def("Translate", │ │ │ │ + (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::Translate, │ │ │ │ + R"#(Translate the matrix on the passed vector.)#" ,py::arg("theVec")) │ │ │ │ + .def("Transposed", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Transposed, │ │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ │ + .def("Transpose", │ │ │ │ + (void (NCollection_Mat4::*)() ) &NCollection_Mat4::Transpose, │ │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ │ + .def("Inverted", │ │ │ │ + (bool (NCollection_Mat4::*)( NCollection_Mat4 & , Element_t & ) const) &NCollection_Mat4::Inverted, │ │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theOutMx"), py::arg("theDet")) │ │ │ │ + .def("Inverted", │ │ │ │ + (bool (NCollection_Mat4::*)( NCollection_Mat4 & ) const) &NCollection_Mat4::Inverted, │ │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theOutMx")) │ │ │ │ + .def("Inverted", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Inverted, │ │ │ │ + R"#(Return inverted matrix.)#" ) │ │ │ │ + .def("DeterminantMat3", │ │ │ │ + (Element_t (NCollection_Mat4::*)() const) &NCollection_Mat4::DeterminantMat3, │ │ │ │ + R"#(Return determinant of the 3x3 sub-matrix.)#" ) │ │ │ │ + .def("Adjoint", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Adjoint, │ │ │ │ + R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ │ + .def("DumpJson", │ │ │ │ + (void (NCollection_Mat4::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat4::DumpJson, │ │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ │ + .def_static("Rows_s", │ │ │ │ + (size_t (*)() ) &NCollection_Mat4::Rows, │ │ │ │ + R"#(Get number of rows.)#" ) │ │ │ │ + .def_static("Cols_s", │ │ │ │ + (size_t (*)() ) &NCollection_Mat4::Cols, │ │ │ │ + R"#(Get number of columns.)#" ) │ │ │ │ + .def_static("Identity_s", │ │ │ │ + (NCollection_Mat4 (*)() ) &NCollection_Mat4::Identity, │ │ │ │ + R"#(Return identity matrix.)#" ) │ │ │ │ + .def_static("Zero_s", │ │ │ │ + (NCollection_Mat4 (*)() ) &NCollection_Mat4::Zero, │ │ │ │ + R"#(Return zero matrix.)#" ) │ │ │ │ + .def_static("Multiply_s", │ │ │ │ + (NCollection_Mat4 (*)( const NCollection_Mat4 & , const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply, │ │ │ │ + R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ │ + .def_static("Map_s", │ │ │ │ + (NCollection_Mat4 & (*)( Element_t * ) ) &NCollection_Mat4::Map, │ │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ + .def_static("Map_s", │ │ │ │ + ( const NCollection_Mat4 & (*)( const Element_t * ) ) &NCollection_Mat4::Map, │ │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component multiplication.)#" ,py::arg("theRight")) │ │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ │ .def("__imul__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::operator*=, │ │ │ │ + (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator*=, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ │ .def("__mul__", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator*, │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ .def("__rmul__", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator*, │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component multiplication by scale factor.)#" ,py::arg("theFactor")) │ │ │ │ - .def("__itruediv__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const Element_t ) ) &NCollection_Vec3::operator/=, │ │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ │ + .def("__imul__", │ │ │ │ + (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator*=, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__mul__", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ + .def("__rmul__", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ │ .def("__itruediv__", │ │ │ │ - (NCollection_Vec3 & (NCollection_Vec3::*)( const NCollection_Vec3 & ) ) &NCollection_Vec3::operator/=, │ │ │ │ + (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator/=, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component division.)#" ,py::arg("theRight")) │ │ │ │ + R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ │ .def("__truediv__", │ │ │ │ - (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator/, │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator/, │ │ │ │ py::is_operator(), │ │ │ │ - R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ │ + .def("__iadd__", │ │ │ │ + (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator+=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__isub__", │ │ │ │ + (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator-=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__add__", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator+, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__sub__", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator-, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ │ + .def("__sub__", │ │ │ │ + (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::operator-, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: Abstract list node class. Used by BaseList Remark: Internal class)#"); │ │ │ │ +void preregister_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseSequence >(m,name,R"#(Purpose: Definition of a sequence of elements indexed by an Integer in range of 1..n)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< const TheItemType &,NCollection_ListNode * >() ,py::arg("theItem"), py::arg("theNext")=static_cast(NULL) ) │ │ │ │ +void register_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ + .def(py::init< const NCollection_Sequence & >() ,py::arg("theOther") ) │ │ │ │ + .def("begin", │ │ │ │ + (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin, │ │ │ │ + R"#(Returns an iterator pointing to the first element in the sequence.)#" ) │ │ │ │ + .def("end", │ │ │ │ + (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end, │ │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ │ + .def("cbegin", │ │ │ │ + (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin, │ │ │ │ + R"#(Returns a const iterator pointing to the first element in the sequence.)#" ) │ │ │ │ + .def("cend", │ │ │ │ + (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend, │ │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ │ + .def("Size", │ │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size, │ │ │ │ + R"#(Number of items)#" ) │ │ │ │ + .def("Length", │ │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length, │ │ │ │ + R"#(Number of items)#" ) │ │ │ │ + .def("Lower", │ │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower, │ │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ │ + .def("Upper", │ │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper, │ │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty, │ │ │ │ + R"#(Empty query)#" ) │ │ │ │ + .def("Reverse", │ │ │ │ + (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse, │ │ │ │ + R"#(Reverse sequence)#" ) │ │ │ │ + .def("Exchange", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange, │ │ │ │ + R"#(Exchange two members)#" ,py::arg("I"), py::arg("J")) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear, │ │ │ │ + R"#(Clear the items out, take a new allocator if non null)#" ,py::arg("theAllocator")=static_cast< const handle &>(0L)) │ │ │ │ + .def("Assign", │ │ │ │ + (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign, │ │ │ │ + R"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ + .def("Remove", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ │ + R"#(Remove one item)#" ,py::arg("theIndex")) │ │ │ │ + .def("Remove", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ │ + R"#(Remove range of items)#" ,py::arg("theFromIndex"), py::arg("theToIndex")) │ │ │ │ + .def("Append", │ │ │ │ + (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append, │ │ │ │ + R"#(Append one item)#" ,py::arg("theItem")) │ │ │ │ + .def("Append", │ │ │ │ + (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append, │ │ │ │ + R"#(Append another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ │ + .def("Prepend", │ │ │ │ + (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend, │ │ │ │ + R"#(Prepend one item)#" ,py::arg("theItem")) │ │ │ │ + .def("Prepend", │ │ │ │ + (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend, │ │ │ │ + R"#(Prepend another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ │ + .def("InsertBefore", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore, │ │ │ │ + R"#(InsertBefore theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ + .def("InsertBefore", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore, │ │ │ │ + R"#(InsertBefore theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ + .def("InsertAfter", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter, │ │ │ │ + R"#(InsertAfter theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ + .def("InsertAfter", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter, │ │ │ │ + R"#(InsertAfter theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ + .def("Split", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split, │ │ │ │ + R"#(Split in two sequences)#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ │ + .def("First", │ │ │ │ + ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First, │ │ │ │ + R"#(First item access)#" ) │ │ │ │ + .def("ChangeFirst", │ │ │ │ + (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst, │ │ │ │ + R"#(First item access)#" ) │ │ │ │ + .def("Last", │ │ │ │ + ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last, │ │ │ │ + R"#(Last item access)#" ) │ │ │ │ + .def("ChangeLast", │ │ │ │ + (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast, │ │ │ │ + R"#(Last item access)#" ) │ │ │ │ .def("Value", │ │ │ │ - ( const TheItemType & (NCollection_TListNode::*)() const) &NCollection_TListNode::Value, │ │ │ │ - R"#(Constant value access)#" ) │ │ │ │ + ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value, │ │ │ │ + R"#(Constant item access by theIndex)#" ,py::arg("theIndex")) │ │ │ │ .def("ChangeValue", │ │ │ │ - (TheItemType & (NCollection_TListNode::*)() ) &NCollection_TListNode::ChangeValue, │ │ │ │ - R"#(Variable value access)#" ) │ │ │ │ + (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue, │ │ │ │ + R"#(Variable item access by theIndex)#" ,py::arg("theIndex")) │ │ │ │ + .def("SetValue", │ │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue, │ │ │ │ + R"#(Set item value by theIndex)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ .def_static("delNode_s", │ │ │ │ - (void (*)( NCollection_ListNode * , handle & ) ) &NCollection_TListNode::delNode, │ │ │ │ - R"#(Static deleter to be passed to BaseList)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ │ + (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode, │ │ │ │ + R"#(Static deleter to be passed to BaseSequence)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ │ + .def("__iter__",[](const NCollection_Sequence &self) │ │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ + py::keep_alive<0, 1>()) │ │ │ │ + .def("__len__",[](const NCollection_Sequence &self) │ │ │ │ + { return self.Size(); } │ │ │ │ + ) │ │ │ │ + .def("__bool__",[](const NCollection_Sequence &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_NCollection_EBTree(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes with the possibility of deleting objects from the tree.)#"); │ │ │ │ } │ │ │ │ @@ -2205,14 +2235,86 @@ │ │ │ │ R"#(Returns The leaf node containing the object.)#" ,py::arg("theObj")) │ │ │ │ .def("Clear", │ │ │ │ (void (NCollection_EBTree::*)( const handle & ) ) &NCollection_EBTree::Clear, │ │ │ │ R"#(Clears the contents of the tree. Redefined virtual method)#" ,py::arg("aNewAlloc")=static_cast< const handle &>(0L)) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const BaseIterator & >() ,py::arg("theIterator") ) │ │ │ │ + .def(py::init< const NCollection_StlIterator & >() ,py::arg("theIterator") ) │ │ │ │ + .def("Iterator", │ │ │ │ + ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator, │ │ │ │ + R"#(Access to NCollection iterator instance)#" ) │ │ │ │ + .def("ChangeIterator", │ │ │ │ + (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator, │ │ │ │ + R"#(Access to NCollection iterator instance)#" ) │ │ │ │ + .def("__mul__", │ │ │ │ + (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Get reference to current item)#" ) │ │ │ │ + .def("__rmul__", │ │ │ │ + (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Get reference to current item)#" ) │ │ │ │ + .def("__iadd__", │ │ │ │ + (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ │ + .def("__add__", │ │ │ │ + (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Addition)#" ,py::arg("theOffset")) │ │ │ │ + .def("__isub__", │ │ │ │ + (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ │ + .def("__sub__", │ │ │ │ + (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ │ + .def("__sub__", │ │ │ │ + (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-, │ │ │ │ + py::is_operator(), │ │ │ │ + R"#(Difference)#" ,py::arg("theOther")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(This class is used to fill an UBTree in a random order. The quality of a tree is much better (from the point of view of the search time) if objects are added to it in a random order to avoid adding a chain of neerby objects one following each other.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< typename NCollection_UBTreeFiller::UBTree &, const handle &, const Standard_Boolean >() ,py::arg("theTree"), py::arg("theAlloc")=static_cast< const handle &>(0L), py::arg("isFullRandom")=static_cast< const Standard_Boolean>(Standard_True) ) │ │ │ │ + .def("Add", │ │ │ │ + (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add, │ │ │ │ + R"#(Adds a pair (theObj, theBnd) to my sequence)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ │ + .def("Fill", │ │ │ │ + (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill, │ │ │ │ + R"#(Fills the tree with the objects from my sequence. This method clears the internal buffer of added items making sure that no item would be added twice.)#" ) │ │ │ │ + .def("Reset", │ │ │ │ + (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset, │ │ │ │ + R"#(Remove all data from Filler, partculary if the Tree no more needed so the destructor of this Filler should not populate the useless Tree.)#" ) │ │ │ │ + .def("CheckTree", │ │ │ │ + (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree, │ │ │ │ + R"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#" ,py::arg("theStream")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ template │ │ │ │ void preregister_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ void register_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ │ @@ -2243,400 +2345,168 @@ │ │ │ │ .def("__rmul__", │ │ │ │ ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Cast handle to contained type)#" ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(A data structure for sorting geometric objects (called targets) in n-dimensional space into cells, with associated algorithm for fast checking of coincidence (overlapping, intersection, etc.) with other objects (called here bullets).)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const Standard_Integer, const Standard_Real, const handle & >() ,py::arg("theDim"), py::arg("theCellSize")=static_cast< const Standard_Real>(0), py::arg("theAlloc")=static_cast< const handle &>(0) ) │ │ │ │ + .def(py::init< const Standard_Real, const handle & >() ,py::arg("theCellSize")=static_cast< const Standard_Real>(0), py::arg("theAlloc")=static_cast< const handle &>(0) ) │ │ │ │ + .def("Reset", │ │ │ │ + (void (NCollection_CellFilter::*)( Standard_Real , const handle & ) ) &NCollection_CellFilter::Reset, │ │ │ │ + R"#(Clear the data structures, set new cell size and allocator)#" ,py::arg("theCellSize"), py::arg("theAlloc")=static_cast< const handle &>(0)) │ │ │ │ + .def("Reset", │ │ │ │ + (void (NCollection_CellFilter::*)( NCollection_Array1 & , const handle & ) ) &NCollection_CellFilter::Reset, │ │ │ │ + R"#(Clear the data structures and set new cell sizes and allocator)#" ,py::arg("theCellSize"), py::arg("theAlloc")=static_cast< const handle &>(0)) │ │ │ │ + .def("Add", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add, │ │ │ │ + R"#(Adds a target object for further search at a point (into only one cell))#" ,py::arg("theTarget"), py::arg("thePnt")) │ │ │ │ + .def("Add", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add, │ │ │ │ + R"#(Adds a target object for further search in the range of cells defined by two points (the first point must have all coordinates equal or less than the same coordinate of the second point))#" ,py::arg("theTarget"), py::arg("thePntMin"), py::arg("thePntMax")) │ │ │ │ + .def("Remove", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove, │ │ │ │ + R"#(Find a target object at a point and remove it from the structures. For usage of this method "operator ==" should be defined for Target.)#" ,py::arg("theTarget"), py::arg("thePnt")) │ │ │ │ + .def("Remove", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove, │ │ │ │ + R"#(Find a target object in the range of cells defined by two points and remove it from the structures (the first point must have all coordinates equal or less than the same coordinate of the second point). For usage of this method "operator ==" should be defined for Target.)#" ,py::arg("theTarget"), py::arg("thePntMin"), py::arg("thePntMax")) │ │ │ │ + .def("Inspect", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect, │ │ │ │ + R"#(Inspect all targets in the cell corresponding to the given point)#" ,py::arg("thePnt"), py::arg("theInspector")) │ │ │ │ + .def("Inspect", │ │ │ │ + (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect, │ │ │ │ + R"#(Inspect all targets in the cells range limited by two given points (the first point must have all coordinates equal or less than the same coordinate of the second point))#" ,py::arg("thePntMin"), py::arg("thePntMax"), py::arg("theInspector")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ template │ │ │ │ -void preregister_template_NCollection_List(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseList >(m,name,R"#(Purpose: Simple list to link items together keeping the first and the last one. Inherits BaseList, adding the data item to each node.)#"); │ │ │ │ +void preregister_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: Abstract list node class. Used by BaseList Remark: Internal class)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_NCollection_List(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ - .def(py::init< const NCollection_List & >() ,py::arg("theOther") ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin, │ │ │ │ - R"#(Returns an iterator pointing to the first element in the list.)#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end, │ │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the list.)#" ) │ │ │ │ - .def("cbegin", │ │ │ │ - (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin, │ │ │ │ - R"#(Returns a const iterator pointing to the first element in the list.)#" ) │ │ │ │ - .def("cend", │ │ │ │ - (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend, │ │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the list.)#" ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size, │ │ │ │ - R"#(Size - Number of items)#" ) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign, │ │ │ │ - R"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ - .def("Clear", │ │ │ │ - (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear, │ │ │ │ - R"#(Clear this list)#" ,py::arg("theAllocator")=static_cast< const handle &>(0L)) │ │ │ │ - .def("First", │ │ │ │ - ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First, │ │ │ │ - R"#(First item)#" ) │ │ │ │ - .def("First", │ │ │ │ - (TheItemType & (NCollection_List::*)() ) &NCollection_List::First, │ │ │ │ - R"#(First item (non-const))#" ) │ │ │ │ - .def("Last", │ │ │ │ - ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last, │ │ │ │ - R"#(Last item)#" ) │ │ │ │ - .def("Last", │ │ │ │ - (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last, │ │ │ │ - R"#(Last item (non-const))#" ) │ │ │ │ - .def("Append", │ │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append, │ │ │ │ - R"#(Append one item at the end)#" ,py::arg("theItem")) │ │ │ │ - .def("Append", │ │ │ │ - (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append, │ │ │ │ - R"#(Append one item at the end and output iterator pointing at the appended item)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ - .def("Append", │ │ │ │ - (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append, │ │ │ │ - R"#(Append another list at the end. After this operation, theOther list will be cleared.)#" ,py::arg("theOther")) │ │ │ │ - .def("Prepend", │ │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend, │ │ │ │ - R"#(Prepend one item at the beginning)#" ,py::arg("theItem")) │ │ │ │ - .def("Prepend", │ │ │ │ - (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend, │ │ │ │ - R"#(Prepend another list at the beginning)#" ,py::arg("theOther")) │ │ │ │ - .def("RemoveFirst", │ │ │ │ - (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst, │ │ │ │ - R"#(RemoveFirst item)#" ) │ │ │ │ - .def("Remove", │ │ │ │ - (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove, │ │ │ │ - R"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#" ,py::arg("theIter")) │ │ │ │ - .def("InsertBefore", │ │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ │ - R"#(InsertBefore)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ - .def("InsertBefore", │ │ │ │ - (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ │ - R"#(InsertBefore)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ │ - .def("InsertAfter", │ │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ │ - R"#(InsertAfter)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ │ - .def("InsertAfter", │ │ │ │ - (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ │ - R"#(InsertAfter)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ │ - .def("Reverse", │ │ │ │ - (void (NCollection_List::*)() ) &NCollection_List::Reverse, │ │ │ │ - R"#(Reverse the list)#" ) │ │ │ │ - .def("__iter__",[](const NCollection_List &self) │ │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ - py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_List &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ +void register_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< const TheItemType &,NCollection_ListNode * >() ,py::arg("theItem"), py::arg("theNext")=static_cast(NULL) ) │ │ │ │ + .def("Value", │ │ │ │ + ( const TheItemType & (NCollection_TListNode::*)() const) &NCollection_TListNode::Value, │ │ │ │ + R"#(Constant value access)#" ) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (TheItemType & (NCollection_TListNode::*)() ) &NCollection_TListNode::ChangeValue, │ │ │ │ + R"#(Variable value access)#" ) │ │ │ │ + .def_static("delNode_s", │ │ │ │ + (void (*)( NCollection_ListNode * , handle & ) ) &NCollection_TListNode::delNode, │ │ │ │ + R"#(Static deleter to be passed to BaseList)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template │ │ │ │ -void register_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ +template │ │ │ │ +void register_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ - .def(py::init< const handle & >() ,py::arg("theAlloc") ) │ │ │ │ - .def(py::init< const NCollection_OccAllocator & >() ,py::arg("theOther") ) │ │ │ │ - .def("SetAllocator", │ │ │ │ - (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator, │ │ │ │ - R"#()#" ,py::arg("theAlloc")) │ │ │ │ - .def("Allocator", │ │ │ │ - ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator, │ │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ │ + .def("Add", │ │ │ │ + (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add, │ │ │ │ + R"#(Update the tree with a new object and its bounding box.)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ │ + .def("Clear", │ │ │ │ + (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear, │ │ │ │ + R"#(Clears the contents of the tree.)#" ,py::arg("aNewAlloc")=static_cast< const handle &>(0L)) │ │ │ │ + .def("IsEmpty", │ │ │ │ + (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty, │ │ │ │ R"#()#" ) │ │ │ │ - .def("address", │ │ │ │ - (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address, │ │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ - .def("address", │ │ │ │ - (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address, │ │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ - .def("max_size", │ │ │ │ - (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size, │ │ │ │ - R"#(Estimate maximum array size)#" ) │ │ │ │ + .def("Allocator", │ │ │ │ + ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator, │ │ │ │ + R"#(Recommended to be used only in sub-classes.)#" ) │ │ │ │ + .def("__bool__",[](const NCollection_UBTree &self) │ │ │ │ + { return self.IsEmpty(); } │ │ │ │ + ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ -template > │ │ │ │ -void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1.. Extent. An Item is stored with each key.)#"); │ │ │ │ +template > │ │ │ │ +void preregister_template_NCollection_IndexedMap(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1..Extent. See the class Map from NCollection for a discussion about the number of buckets.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ -template > │ │ │ │ -void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ +template > │ │ │ │ +void register_template_NCollection_IndexedMap(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ │ .def(py::init< >() ) │ │ │ │ .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator")=static_cast< const handle &>(0L) ) │ │ │ │ - .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg("theOther") ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin, │ │ │ │ - R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end, │ │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ + .def(py::init< const NCollection_IndexedMap & >() ,py::arg("theOther") ) │ │ │ │ .def("cbegin", │ │ │ │ - (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin, │ │ │ │ + (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cbegin, │ │ │ │ R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ │ .def("cend", │ │ │ │ - (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend, │ │ │ │ + (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cend, │ │ │ │ R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ │ .def("Exchange", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange, │ │ │ │ + (void (NCollection_IndexedMap::*)( NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Exchange, │ │ │ │ R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ │ .def("Assign", │ │ │ │ - (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign, │ │ │ │ - R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ + (NCollection_IndexedMap & (NCollection_IndexedMap::*)( const NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Assign, │ │ │ │ + R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ │ .def("ReSize", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize, │ │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ │ + (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::ReSize, │ │ │ │ + R"#(ReSize)#" ,py::arg("theExtent")) │ │ │ │ .def("Add", │ │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add, │ │ │ │ - R"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#" ,py::arg("theKey1"), py::arg("theItem")) │ │ │ │ + (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::Add, │ │ │ │ + R"#(Add)#" ,py::arg("theKey1")) │ │ │ │ .def("Contains", │ │ │ │ - (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains, │ │ │ │ + (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::Contains, │ │ │ │ R"#(Contains)#" ,py::arg("theKey1")) │ │ │ │ .def("Substitute", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute, │ │ │ │ - R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1"), py::arg("theItem")) │ │ │ │ + (void (NCollection_IndexedMap::*)( const Standard_Integer , const TheKeyType & ) ) &NCollection_IndexedMap::Substitute, │ │ │ │ + R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1")) │ │ │ │ .def("Swap", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap, │ │ │ │ + (void (NCollection_IndexedMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedMap::Swap, │ │ │ │ R"#(Swaps two elements with the given indices.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ │ .def("RemoveLast", │ │ │ │ - (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast, │ │ │ │ + (void (NCollection_IndexedMap::*)() ) &NCollection_IndexedMap::RemoveLast, │ │ │ │ R"#(RemoveLast)#" ) │ │ │ │ .def("RemoveFromIndex", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex, │ │ │ │ + (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::RemoveFromIndex, │ │ │ │ R"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#" ,py::arg("theIndex")) │ │ │ │ .def("RemoveKey", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey, │ │ │ │ + (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::RemoveKey, │ │ │ │ R"#(Remove the given key. Caution! The index of the last key can be changed.)#" ,py::arg("theKey1")) │ │ │ │ .def("FindKey", │ │ │ │ - ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey, │ │ │ │ + ( const TheKeyType & (NCollection_IndexedMap::*)( const Standard_Integer ) const) &NCollection_IndexedMap::FindKey, │ │ │ │ R"#(FindKey)#" ,py::arg("theIndex")) │ │ │ │ - .def("FindFromIndex", │ │ │ │ - ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex, │ │ │ │ - R"#(FindFromIndex)#" ,py::arg("theIndex")) │ │ │ │ - .def("ChangeFromIndex", │ │ │ │ - (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex, │ │ │ │ - R"#(ChangeFromIndex)#" ,py::arg("theIndex")) │ │ │ │ .def("FindIndex", │ │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex, │ │ │ │ + (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::FindIndex, │ │ │ │ R"#(FindIndex)#" ,py::arg("theKey1")) │ │ │ │ - .def("FindFromKey", │ │ │ │ - ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ │ - R"#(FindFromKey)#" ,py::arg("theKey1")) │ │ │ │ - .def("ChangeFromKey", │ │ │ │ - (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey, │ │ │ │ - R"#(ChangeFromKey)#" ,py::arg("theKey1")) │ │ │ │ - .def("Seek", │ │ │ │ - ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek, │ │ │ │ - R"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ │ - .def("ChangeSeek", │ │ │ │ - (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek, │ │ │ │ - R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ │ - .def("FindFromKey", │ │ │ │ - (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ │ - R"#(Find value for key with copying.)#" ,py::arg("theKey1"), py::arg("theValue")) │ │ │ │ .def("Clear", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear, │ │ │ │ + (void (NCollection_IndexedMap::*)( const Standard_Boolean ) ) &NCollection_IndexedMap::Clear, │ │ │ │ R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")=static_cast< const Standard_Boolean>(Standard_False)) │ │ │ │ .def("Clear", │ │ │ │ - (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear, │ │ │ │ + (void (NCollection_IndexedMap::*)( const handle & ) ) &NCollection_IndexedMap::Clear, │ │ │ │ R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ │ .def("Size", │ │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size, │ │ │ │ + (Standard_Integer (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::Size, │ │ │ │ R"#(Size)#" ) │ │ │ │ - .def("__iter__",[](const NCollection_IndexedDataMap &self) │ │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ - py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_IndexedDataMap &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: The class Array2 represents bi-dimensional arrays of fixed size known at run time. The ranges of indices are user defined.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ - .def(py::init< const typename NCollection_Array2::allocator_type &, const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ - .def(py::init< const NCollection_Array2 & >() ,py::arg("theOther") ) │ │ │ │ - .def(py::init< const TheItemType &, const Standard_Integer, const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theBegin"), py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper") ) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::Size, │ │ │ │ - R"#(Size (number of items))#" ) │ │ │ │ - .def("Length", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::Length, │ │ │ │ - R"#(Length (number of items))#" ) │ │ │ │ - .def("NbRows", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::NbRows, │ │ │ │ - R"#(Returns number of rows)#" ) │ │ │ │ - .def("NbColumns", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::NbColumns, │ │ │ │ - R"#(Returns number of columns)#" ) │ │ │ │ - .def("RowLength", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::RowLength, │ │ │ │ - R"#(Returns length of the row, i.e. number of columns)#" ) │ │ │ │ - .def("ColLength", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::ColLength, │ │ │ │ - R"#(Returns length of the column, i.e. number of rows)#" ) │ │ │ │ - .def("LowerRow", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::LowerRow, │ │ │ │ - R"#(LowerRow)#" ) │ │ │ │ - .def("UpperRow", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::UpperRow, │ │ │ │ - R"#(UpperRow)#" ) │ │ │ │ - .def("LowerCol", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::LowerCol, │ │ │ │ - R"#(LowerCol)#" ) │ │ │ │ - .def("UpperCol", │ │ │ │ - (Standard_Integer (NCollection_Array2::*)() const) &NCollection_Array2::UpperCol, │ │ │ │ - R"#(UpperCol)#" ) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_Array2 & (NCollection_Array2::*)( const NCollection_Array2 & ) ) &NCollection_Array2::Assign, │ │ │ │ - R"#(Assignment)#" ,py::arg("theOther")) │ │ │ │ - .def("Move", │ │ │ │ - (NCollection_Array2 & (NCollection_Array2::*)( NCollection_Array2 & ) ) &NCollection_Array2::Move, │ │ │ │ - R"#(Move assignment. This array will borrow all the data from theOther. The moved object will be left uninitialized and should not be used anymore.)#" ,py::arg("theOther")) │ │ │ │ - .def("Value", │ │ │ │ - (typename NCollection_Array2::const_reference (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_Array2::Value, │ │ │ │ - R"#(Constant value access)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (typename NCollection_Array2::reference (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Array2::ChangeValue, │ │ │ │ - R"#(Variable value access)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ │ - .def("SetValue", │ │ │ │ - (void (NCollection_Array2::*)( const Standard_Integer , const Standard_Integer , const TheItemType & ) ) &NCollection_Array2::SetValue, │ │ │ │ - R"#(SetValue)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theItem")) │ │ │ │ - .def("Resize", │ │ │ │ - (void (NCollection_Array2::*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer , Standard_Boolean ) ) &NCollection_Array2::Resize, │ │ │ │ - R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper"), py::arg("theToCopyData")) │ │ │ │ - .def_static("BeginPosition_s", │ │ │ │ - (int (*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer ) ) &NCollection_Array2::BeginPosition, │ │ │ │ - R"#()#" ,py::arg("theRowLower"), py::arg("arg"), py::arg("theColLower"), py::arg("theColUpper")) │ │ │ │ - .def_static("LastPosition_s", │ │ │ │ - (int (*)( Standard_Integer , Standard_Integer , Standard_Integer , Standard_Integer ) ) &NCollection_Array2::LastPosition, │ │ │ │ - R"#()#" ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper")) │ │ │ │ - .def("__len__",[](const NCollection_Array2 &self) │ │ │ │ - { return self.Size(); } │ │ │ │ - ) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ -void preregister_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(The class NCollection_Array1 represents unidimensional arrays of fixed size known at run time. The range of the index is user defined. An array1 can be constructed with a "C array". This functionality is useful to call methods expecting an Array1. It allows to carry the bounds inside the arrays.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLower"), py::arg("theUpper") ) │ │ │ │ - .def(py::init< const typename NCollection_Array1::allocator_type &, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theLower"), py::arg("theUpper") ) │ │ │ │ - .def(py::init< typename NCollection_Array1::const_reference, const Standard_Integer, const Standard_Integer, const bool >() ,py::arg("theBegin"), py::arg("theLower"), py::arg("theUpper"), py::arg("theUseBuffer")=static_cast< const bool>(true) ) │ │ │ │ - .def(py::init< const NCollection_Array1 & >() ,py::arg("theOther") ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::begin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("begin", │ │ │ │ - (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::begin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("cbegin", │ │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cbegin, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::end, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("end", │ │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::end, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("cend", │ │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cend, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("Init", │ │ │ │ - (void (NCollection_Array1::*)( typename NCollection_Array1::const_reference ) ) &NCollection_Array1::Init, │ │ │ │ - R"#(Initialise the items with theValue)#" ,py::arg("theValue")) │ │ │ │ - .def("Size", │ │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Size, │ │ │ │ - R"#(Size query)#" ) │ │ │ │ - .def("Length", │ │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Length, │ │ │ │ - R"#(Length query (the same))#" ) │ │ │ │ - .def("IsEmpty", │ │ │ │ - (Standard_Boolean (NCollection_Array1::*)() const) &NCollection_Array1::IsEmpty, │ │ │ │ - R"#(Return TRUE if array has zero length.)#" ) │ │ │ │ - .def("Lower", │ │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Lower, │ │ │ │ - R"#(Lower bound)#" ) │ │ │ │ - .def("Upper", │ │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Upper, │ │ │ │ - R"#(Upper bound)#" ) │ │ │ │ - .def("Assign", │ │ │ │ - (NCollection_Array1 & (NCollection_Array1::*)( const NCollection_Array1 & ) ) &NCollection_Array1::Assign, │ │ │ │ - R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ │ - .def("Move", │ │ │ │ - (NCollection_Array1 & (NCollection_Array1::*)( NCollection_Array1 & ) ) &NCollection_Array1::Move, │ │ │ │ - R"#()#" ,py::arg("theOther")) │ │ │ │ - .def("First", │ │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::First, │ │ │ │ - R"#(Returns first element)#" ) │ │ │ │ - .def("ChangeFirst", │ │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeFirst, │ │ │ │ - R"#(Returns first element)#" ) │ │ │ │ - .def("Last", │ │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::Last, │ │ │ │ - R"#(Returns last element)#" ) │ │ │ │ - .def("ChangeLast", │ │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeLast, │ │ │ │ - R"#(Returns last element)#" ) │ │ │ │ - .def("Value", │ │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)( const Standard_Integer ) const) &NCollection_Array1::Value, │ │ │ │ - R"#(Constant value access)#" ,py::arg("theIndex")) │ │ │ │ - .def("ChangeValue", │ │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::ChangeValue, │ │ │ │ - R"#(Variable value access)#" ,py::arg("theIndex")) │ │ │ │ - .def("SetValue", │ │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer , const typename NCollection_Array1::value_type & ) ) &NCollection_Array1::SetValue, │ │ │ │ - R"#(Set value)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ │ - .def("UpdateLowerBound", │ │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateLowerBound, │ │ │ │ - R"#(Changes the lowest bound. Do not move data)#" ,py::arg("theLower")) │ │ │ │ - .def("UpdateUpperBound", │ │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateUpperBound, │ │ │ │ - R"#(Changes the upper bound. Do not move data)#" ,py::arg("theUpper")) │ │ │ │ - .def("Resize", │ │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer , const Standard_Integer , const Standard_Boolean ) ) &NCollection_Array1::Resize, │ │ │ │ - R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLower"), py::arg("theUpper"), py::arg("theToCopyData")) │ │ │ │ - .def("IsDeletable", │ │ │ │ - (bool (NCollection_Array1::*)() const) &NCollection_Array1::IsDeletable, │ │ │ │ - R"#()#" ) │ │ │ │ - .def("__iter__",[](const NCollection_Array1 &self) │ │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ │ + .def("__iter__",[](const NCollection_IndexedMap &self) │ │ │ │ + { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ │ py::keep_alive<0, 1>()) │ │ │ │ - .def("__len__",[](const NCollection_Array1 &self) │ │ │ │ + .def("__len__",[](const NCollection_IndexedMap &self) │ │ │ │ { return self.Size(); } │ │ │ │ ) │ │ │ │ - .def("__bool__",[](const NCollection_Array1 &self) │ │ │ │ - { return self.IsEmpty(); } │ │ │ │ - ) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ void preregister_template_NCollection_IndexedIterator(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ │ } │ │ │ │ @@ -2675,10 +2545,140 @@ │ │ │ │ .def("__sub__", │ │ │ │ (typename NCollection_IndexedIterator::difference_type (NCollection_IndexedIterator::*)( const NCollection_IndexedIterator & ) const) &NCollection_IndexedIterator::operator-, │ │ │ │ py::is_operator(), │ │ │ │ R"#(Difference)#" ,py::arg("theOther")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const NCollection_Iterator & >() ,py::arg("theOther") ) │ │ │ │ + .def(py::init< const Container & >() ,py::arg("theList") ) │ │ │ │ + .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg("theList"), py::arg("theOther") ) │ │ │ │ + .def("Init", │ │ │ │ + (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init, │ │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ │ + .def("Init", │ │ │ │ + (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init, │ │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ │ + .def("More", │ │ │ │ + (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Initialize", │ │ │ │ + (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize, │ │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ │ + .def("Initialize", │ │ │ │ + (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize, │ │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ │ + .def("ValueIter", │ │ │ │ + ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("ChangeValueIter", │ │ │ │ + (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("EndIter", │ │ │ │ + ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("ChangeEndIter", │ │ │ │ + (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Next", │ │ │ │ + (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("Value", │ │ │ │ + ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("ChangeValue", │ │ │ │ + ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue, │ │ │ │ + R"#()#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Simple linear interpolation tool (also known as mix() in GLSL). The main purpose of this template class is making interpolation routines more readable.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const T &, const T & >() ,py::arg("theStart"), py::arg("theEnd") ) │ │ │ │ + .def("Init", │ │ │ │ + (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init, │ │ │ │ + R"#(Initialize values.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ │ + .def("Interpolate", │ │ │ │ + (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate, │ │ │ │ + R"#(Compute interpolated value between two values.)#" ,py::arg("theT"), py::arg("theResult")) │ │ │ │ + .def_static("Interpolate_s", │ │ │ │ + (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate, │ │ │ │ + R"#(Compute interpolated value between two values.)#" ,py::arg("theStart"), py::arg("theEnd"), py::arg("theT")) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: This Iterator class iterates on BaseList of TListNode and is instantiated in List/Set/Queue/Stack Remark: TListIterator is internal class)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const NCollection_BaseList & >() ,py::arg("theList") ) │ │ │ │ + .def("More", │ │ │ │ + (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More, │ │ │ │ + R"#(Check end)#" ) │ │ │ │ + .def("Next", │ │ │ │ + (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next, │ │ │ │ + R"#(Make step)#" ) │ │ │ │ + .def("Value", │ │ │ │ + ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value, │ │ │ │ + R"#(Constant Value access)#" ) │ │ │ │ + .def("Value", │ │ │ │ + (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value, │ │ │ │ + R"#(Non-const Value access)#" ) │ │ │ │ + .def("ChangeValue", │ │ │ │ + (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue, │ │ │ │ + R"#(Non-const Value access)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ +template │ │ │ │ +void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def(py::init< const handle & >() ,py::arg("theAlloc") ) │ │ │ │ + .def(py::init< const NCollection_OccAllocator & >() ,py::arg("theOther") ) │ │ │ │ + .def("SetAllocator", │ │ │ │ + (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator, │ │ │ │ + R"#()#" ,py::arg("theAlloc")) │ │ │ │ + .def("Allocator", │ │ │ │ + ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator, │ │ │ │ + R"#()#" ) │ │ │ │ + .def("address", │ │ │ │ + (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address, │ │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ + .def("address", │ │ │ │ + (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address, │ │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ │ + .def("max_size", │ │ │ │ + (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size, │ │ │ │ + R"#(Estimate maximum array size)#" ) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ │ │ │ │ // user-defined post │ │ │ ├── ./usr/share/libocp/OCP/OSD_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -110,34 +110,14 @@ │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "OSD_SignalMode",R"#(Mode of operation for OSD::SetSignal() function)#") │ │ │ │ .value("OSD_SignalMode_AsIs",OSD_SignalMode::OSD_SignalMode_AsIs) │ │ │ │ .value("OSD_SignalMode_Set",OSD_SignalMode::OSD_SignalMode_Set) │ │ │ │ .value("OSD_SignalMode_SetUnhandled",OSD_SignalMode::OSD_SignalMode_SetUnhandled) │ │ │ │ .value("OSD_SignalMode_Unset",OSD_SignalMode::OSD_SignalMode_Unset).export_values(); │ │ │ │ - py::enum_(m, "OSD_LoadMode",R"#(This enumeration is used to load shareable libraries.)#") │ │ │ │ - .value("OSD_RTLD_LAZY",OSD_LoadMode::OSD_RTLD_LAZY) │ │ │ │ - .value("OSD_RTLD_NOW",OSD_LoadMode::OSD_RTLD_NOW).export_values(); │ │ │ │ - py::enum_(m, "OSD_OEMType",R"#(This is set of possible machine types used in OSD_Host::MachineType)#") │ │ │ │ - .value("OSD_Unavailable",OSD_OEMType::OSD_Unavailable) │ │ │ │ - .value("OSD_SUN",OSD_OEMType::OSD_SUN) │ │ │ │ - .value("OSD_DEC",OSD_OEMType::OSD_DEC) │ │ │ │ - .value("OSD_SGI",OSD_OEMType::OSD_SGI) │ │ │ │ - .value("OSD_NEC",OSD_OEMType::OSD_NEC) │ │ │ │ - .value("OSD_MAC",OSD_OEMType::OSD_MAC) │ │ │ │ - .value("OSD_PC",OSD_OEMType::OSD_PC) │ │ │ │ - .value("OSD_HP",OSD_OEMType::OSD_HP) │ │ │ │ - .value("OSD_IBM",OSD_OEMType::OSD_IBM) │ │ │ │ - .value("OSD_VAX",OSD_OEMType::OSD_VAX) │ │ │ │ - .value("OSD_LIN",OSD_OEMType::OSD_LIN) │ │ │ │ - .value("OSD_AIX",OSD_OEMType::OSD_AIX).export_values(); │ │ │ │ - py::enum_(m, "OSD_OpenMode",R"#(Specifies the file open mode.)#") │ │ │ │ - .value("OSD_ReadOnly",OSD_OpenMode::OSD_ReadOnly) │ │ │ │ - .value("OSD_WriteOnly",OSD_OpenMode::OSD_WriteOnly) │ │ │ │ - .value("OSD_ReadWrite",OSD_OpenMode::OSD_ReadWrite).export_values(); │ │ │ │ py::enum_(m, "OSD_WhoAmI",R"#(Allows great accuracy for error management. This is private.)#") │ │ │ │ .value("OSD_WDirectory",OSD_WhoAmI::OSD_WDirectory) │ │ │ │ .value("OSD_WDirectoryIterator",OSD_WhoAmI::OSD_WDirectoryIterator) │ │ │ │ .value("OSD_WEnvironment",OSD_WhoAmI::OSD_WEnvironment) │ │ │ │ .value("OSD_WFile",OSD_WhoAmI::OSD_WFile) │ │ │ │ .value("OSD_WFileNode",OSD_WhoAmI::OSD_WFileNode) │ │ │ │ .value("OSD_WFileIterator",OSD_WhoAmI::OSD_WFileIterator) │ │ │ │ @@ -146,31 +126,35 @@ │ │ │ │ .value("OSD_WProtection",OSD_WhoAmI::OSD_WProtection) │ │ │ │ .value("OSD_WHost",OSD_WhoAmI::OSD_WHost) │ │ │ │ .value("OSD_WDisk",OSD_WhoAmI::OSD_WDisk) │ │ │ │ .value("OSD_WChronometer",OSD_WhoAmI::OSD_WChronometer) │ │ │ │ .value("OSD_WTimer",OSD_WhoAmI::OSD_WTimer) │ │ │ │ .value("OSD_WPackage",OSD_WhoAmI::OSD_WPackage) │ │ │ │ .value("OSD_WEnvironmentIterator",OSD_WhoAmI::OSD_WEnvironmentIterator).export_values(); │ │ │ │ - py::enum_(m, "OSD_SingleProtection",R"#(Access rights for files. R means Read, W means Write, X means eXecute and D means Delete. On UNIX, the right to Delete is combined with Write access. So if "W"rite is not set and "D"elete is, "W"rite will be set and if "W" is set, "D" will be too.)#") │ │ │ │ - .value("OSD_None",OSD_SingleProtection::OSD_None) │ │ │ │ - .value("OSD_R",OSD_SingleProtection::OSD_R) │ │ │ │ - .value("OSD_W",OSD_SingleProtection::OSD_W) │ │ │ │ - .value("OSD_RW",OSD_SingleProtection::OSD_RW) │ │ │ │ - .value("OSD_X",OSD_SingleProtection::OSD_X) │ │ │ │ - .value("OSD_RX",OSD_SingleProtection::OSD_RX) │ │ │ │ - .value("OSD_WX",OSD_SingleProtection::OSD_WX) │ │ │ │ - .value("OSD_RWX",OSD_SingleProtection::OSD_RWX) │ │ │ │ - .value("OSD_D",OSD_SingleProtection::OSD_D) │ │ │ │ - .value("OSD_RD",OSD_SingleProtection::OSD_RD) │ │ │ │ - .value("OSD_WD",OSD_SingleProtection::OSD_WD) │ │ │ │ - .value("OSD_RWD",OSD_SingleProtection::OSD_RWD) │ │ │ │ - .value("OSD_XD",OSD_SingleProtection::OSD_XD) │ │ │ │ - .value("OSD_RXD",OSD_SingleProtection::OSD_RXD) │ │ │ │ - .value("OSD_WXD",OSD_SingleProtection::OSD_WXD) │ │ │ │ - .value("OSD_RWXD",OSD_SingleProtection::OSD_RWXD).export_values(); │ │ │ │ + py::enum_(m, "OSD_LoadMode",R"#(This enumeration is used to load shareable libraries.)#") │ │ │ │ + .value("OSD_RTLD_LAZY",OSD_LoadMode::OSD_RTLD_LAZY) │ │ │ │ + .value("OSD_RTLD_NOW",OSD_LoadMode::OSD_RTLD_NOW).export_values(); │ │ │ │ + py::enum_(m, "OSD_OEMType",R"#(This is set of possible machine types used in OSD_Host::MachineType)#") │ │ │ │ + .value("OSD_Unavailable",OSD_OEMType::OSD_Unavailable) │ │ │ │ + .value("OSD_SUN",OSD_OEMType::OSD_SUN) │ │ │ │ + .value("OSD_DEC",OSD_OEMType::OSD_DEC) │ │ │ │ + .value("OSD_SGI",OSD_OEMType::OSD_SGI) │ │ │ │ + .value("OSD_NEC",OSD_OEMType::OSD_NEC) │ │ │ │ + .value("OSD_MAC",OSD_OEMType::OSD_MAC) │ │ │ │ + .value("OSD_PC",OSD_OEMType::OSD_PC) │ │ │ │ + .value("OSD_HP",OSD_OEMType::OSD_HP) │ │ │ │ + .value("OSD_IBM",OSD_OEMType::OSD_IBM) │ │ │ │ + .value("OSD_VAX",OSD_OEMType::OSD_VAX) │ │ │ │ + .value("OSD_LIN",OSD_OEMType::OSD_LIN) │ │ │ │ + .value("OSD_AIX",OSD_OEMType::OSD_AIX).export_values(); │ │ │ │ + py::enum_(m, "OSD_LockType",R"#(locks for files. NoLock is the default value when opening a file.)#") │ │ │ │ + .value("OSD_NoLock",OSD_LockType::OSD_NoLock) │ │ │ │ + .value("OSD_ReadLock",OSD_LockType::OSD_ReadLock) │ │ │ │ + .value("OSD_WriteLock",OSD_LockType::OSD_WriteLock) │ │ │ │ + .value("OSD_ExclusiveLock",OSD_LockType::OSD_ExclusiveLock).export_values(); │ │ │ │ py::enum_(m, "OSD_SysType",R"#(Thisd is a set of possible system types. 'Default' means SysType of machine operating this process. This can be used with the Path class. All UNIX-like are grouped under "UnixBSD" or "UnixSystemV". Such systems are Solaris, NexTOS ... A category of systems accept MSDOS-like path such as WindowsNT and OS2.)#") │ │ │ │ .value("OSD_Unknown",OSD_SysType::OSD_Unknown) │ │ │ │ .value("OSD_Default",OSD_SysType::OSD_Default) │ │ │ │ .value("OSD_UnixBSD",OSD_SysType::OSD_UnixBSD) │ │ │ │ .value("OSD_UnixSystemV",OSD_SysType::OSD_UnixSystemV) │ │ │ │ .value("OSD_VMS",OSD_SysType::OSD_VMS) │ │ │ │ .value("OSD_OS2",OSD_SysType::OSD_OS2) │ │ │ │ @@ -186,19 +170,35 @@ │ │ │ │ .value("OSD_FromEnd",OSD_FromWhere::OSD_FromEnd).export_values(); │ │ │ │ py::enum_(m, "OSD_KindFile",R"#(Specifies the type of files.)#") │ │ │ │ .value("OSD_FILE",OSD_KindFile::OSD_FILE) │ │ │ │ .value("OSD_DIRECTORY",OSD_KindFile::OSD_DIRECTORY) │ │ │ │ .value("OSD_LINK",OSD_KindFile::OSD_LINK) │ │ │ │ .value("OSD_SOCKET",OSD_KindFile::OSD_SOCKET) │ │ │ │ .value("OSD_UNKNOWN",OSD_KindFile::OSD_UNKNOWN).export_values(); │ │ │ │ - py::enum_(m, "OSD_LockType",R"#(locks for files. NoLock is the default value when opening a file.)#") │ │ │ │ - .value("OSD_NoLock",OSD_LockType::OSD_NoLock) │ │ │ │ - .value("OSD_ReadLock",OSD_LockType::OSD_ReadLock) │ │ │ │ - .value("OSD_WriteLock",OSD_LockType::OSD_WriteLock) │ │ │ │ - .value("OSD_ExclusiveLock",OSD_LockType::OSD_ExclusiveLock).export_values(); │ │ │ │ + py::enum_(m, "OSD_OpenMode",R"#(Specifies the file open mode.)#") │ │ │ │ + .value("OSD_ReadOnly",OSD_OpenMode::OSD_ReadOnly) │ │ │ │ + .value("OSD_WriteOnly",OSD_OpenMode::OSD_WriteOnly) │ │ │ │ + .value("OSD_ReadWrite",OSD_OpenMode::OSD_ReadWrite).export_values(); │ │ │ │ + py::enum_(m, "OSD_SingleProtection",R"#(Access rights for files. R means Read, W means Write, X means eXecute and D means Delete. On UNIX, the right to Delete is combined with Write access. So if "W"rite is not set and "D"elete is, "W"rite will be set and if "W" is set, "D" will be too.)#") │ │ │ │ + .value("OSD_None",OSD_SingleProtection::OSD_None) │ │ │ │ + .value("OSD_R",OSD_SingleProtection::OSD_R) │ │ │ │ + .value("OSD_W",OSD_SingleProtection::OSD_W) │ │ │ │ + .value("OSD_RW",OSD_SingleProtection::OSD_RW) │ │ │ │ + .value("OSD_X",OSD_SingleProtection::OSD_X) │ │ │ │ + .value("OSD_RX",OSD_SingleProtection::OSD_RX) │ │ │ │ + .value("OSD_WX",OSD_SingleProtection::OSD_WX) │ │ │ │ + .value("OSD_RWX",OSD_SingleProtection::OSD_RWX) │ │ │ │ + .value("OSD_D",OSD_SingleProtection::OSD_D) │ │ │ │ + .value("OSD_RD",OSD_SingleProtection::OSD_RD) │ │ │ │ + .value("OSD_WD",OSD_SingleProtection::OSD_WD) │ │ │ │ + .value("OSD_RWD",OSD_SingleProtection::OSD_RWD) │ │ │ │ + .value("OSD_XD",OSD_SingleProtection::OSD_XD) │ │ │ │ + .value("OSD_RXD",OSD_SingleProtection::OSD_RXD) │ │ │ │ + .value("OSD_WXD",OSD_SingleProtection::OSD_WXD) │ │ │ │ + .value("OSD_RWXD",OSD_SingleProtection::OSD_RWXD).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_OSD_FileSystem : public OSD_FileSystem{ │ │ │ │ public: │ │ │ │ using OSD_FileSystem::OSD_FileSystem; │ │ │ ├── ./usr/share/libocp/OCP/OpenGl.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -6632,17 +6632,17 @@ │ │ │ │ ( const handle & (OpenGl_PointSprite::*)() const) static_cast< const handle & (OpenGl_PointSprite::*)() const>(&OpenGl_PointSprite::DynamicType), │ │ │ │ R"#()#" │ │ │ │ │ │ │ │ ) │ │ │ │ ; │ │ │ │ │ │ │ │ // functions │ │ │ │ +auto mOpenGl_Raytrace = static_cast(m.attr("OpenGl_Raytrace")); │ │ │ │ auto mopencascade = static_cast(m.attr("opencascade")); │ │ │ │ auto mOpenGl = static_cast(m.attr("OpenGl")); │ │ │ │ -auto mOpenGl_Raytrace = static_cast(m.attr("OpenGl_Raytrace")); │ │ │ │ auto mOpenGl_HashMapInitializer = static_cast(m.attr("OpenGl_HashMapInitializer")); │ │ │ │ │ │ │ │ // /usr/include/opencascade/OpenGl_ArbDbg.hxx │ │ │ │ // /usr/include/opencascade/OpenGl_ArbFBO.hxx │ │ │ │ // /usr/include/opencascade/OpenGl_ArbIns.hxx │ │ │ │ // /usr/include/opencascade/OpenGl_ArbSamplerObject.hxx │ │ │ │ // /usr/include/opencascade/OpenGl_ArbTBO.hxx │ │ │ ├── ./usr/share/libocp/OCP/OpenGl_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -238,30 +238,39 @@ │ │ │ │ // Module definiiton │ │ │ │ void register_OpenGl_enums(py::module &main_module) { │ │ │ │ │ │ │ │ │ │ │ │ py::module m = main_module.def_submodule("OpenGl", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ +m.def_submodule("OpenGl_Raytrace"); │ │ │ │ m.def_submodule("opencascade"); │ │ │ │ m.def_submodule("OpenGl"); │ │ │ │ -m.def_submodule("OpenGl_Raytrace"); │ │ │ │ m.def_submodule("OpenGl_HashMapInitializer"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ py::class_(m, "NSOpenGLContext"); │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "OpenGl_RenderFilter",R"#(Filter for rendering elements.)#") │ │ │ │ - .value("OpenGl_RenderFilter_Empty",OpenGl_RenderFilter::OpenGl_RenderFilter_Empty) │ │ │ │ - .value("OpenGl_RenderFilter_OpaqueOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_OpaqueOnly) │ │ │ │ - .value("OpenGl_RenderFilter_TransparentOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_TransparentOnly) │ │ │ │ - .value("OpenGl_RenderFilter_NonRaytraceableOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_NonRaytraceableOnly) │ │ │ │ - .value("OpenGl_RenderFilter_FillModeOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_FillModeOnly) │ │ │ │ - .value("OpenGl_RenderFilter_SkipTrsfPersistence",OpenGl_RenderFilter::OpenGl_RenderFilter_SkipTrsfPersistence).export_values(); │ │ │ │ + py::enum_(m, "OpenGl_ShaderProgramDumpLevel",R"#(Definition of shader programs source code dump levels.)#") │ │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Off",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off) │ │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Short",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short) │ │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Full",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values(); │ │ │ │ + py::enum_(m, "OpenGl_MaterialFlag",R"#(Material flag)#") │ │ │ │ + .value("OpenGl_MaterialFlag_Front",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front) │ │ │ │ + .value("OpenGl_MaterialFlag_Back",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values(); │ │ │ │ + py::enum_(m, "OpenGl_LayerFilter",R"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#") │ │ │ │ + .value("OpenGl_LF_All",OpenGl_LayerFilter::OpenGl_LF_All) │ │ │ │ + .value("OpenGl_LF_Upper",OpenGl_LayerFilter::OpenGl_LF_Upper) │ │ │ │ + .value("OpenGl_LF_Bottom",OpenGl_LayerFilter::OpenGl_LF_Bottom) │ │ │ │ + .value("OpenGl_LF_RayTracable",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values(); │ │ │ │ + py::enum_(m, "OpenGl_FeatureFlag",R"#()#") │ │ │ │ + .value("OpenGl_FeatureNotAvailable",OpenGl_FeatureFlag::OpenGl_FeatureNotAvailable) │ │ │ │ + .value("OpenGl_FeatureInExtensions",OpenGl_FeatureFlag::OpenGl_FeatureInExtensions) │ │ │ │ + .value("OpenGl_FeatureInCore",OpenGl_FeatureFlag::OpenGl_FeatureInCore).export_values(); │ │ │ │ py::enum_(m, "OpenGl_StateVariable",R"#(The enumeration of OCCT-specific OpenGL/GLSL variables.)#") │ │ │ │ .value("OpenGl_OCC_MODEL_WORLD_MATRIX",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX) │ │ │ │ .value("OpenGl_OCC_WORLD_VIEW_MATRIX",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX) │ │ │ │ .value("OpenGl_OCC_PROJECTION_MATRIX",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX) │ │ │ │ .value("OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE) │ │ │ │ .value("OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE) │ │ │ │ .value("OpenGl_OCC_PROJECTION_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX_INVERSE) │ │ │ │ @@ -308,30 +317,21 @@ │ │ │ │ .value("OpenGl_MODEL_WORLD_STATE",OpenGl_UniformStateType::OpenGl_MODEL_WORLD_STATE) │ │ │ │ .value("OpenGl_WORLD_VIEW_STATE",OpenGl_UniformStateType::OpenGl_WORLD_VIEW_STATE) │ │ │ │ .value("OpenGl_PROJECTION_STATE",OpenGl_UniformStateType::OpenGl_PROJECTION_STATE) │ │ │ │ .value("OpenGl_MATERIAL_STATE",OpenGl_UniformStateType::OpenGl_MATERIAL_STATE) │ │ │ │ .value("OpenGl_SURF_DETAIL_STATE",OpenGl_UniformStateType::OpenGl_SURF_DETAIL_STATE) │ │ │ │ .value("OpenGL_OIT_STATE",OpenGl_UniformStateType::OpenGL_OIT_STATE) │ │ │ │ .value("OpenGl_UniformStateType_NB",OpenGl_UniformStateType::OpenGl_UniformStateType_NB).export_values(); │ │ │ │ - py::enum_(m, "OpenGl_ShaderProgramDumpLevel",R"#(Definition of shader programs source code dump levels.)#") │ │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Off",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off) │ │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Short",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short) │ │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Full",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values(); │ │ │ │ - py::enum_(m, "OpenGl_LayerFilter",R"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#") │ │ │ │ - .value("OpenGl_LF_All",OpenGl_LayerFilter::OpenGl_LF_All) │ │ │ │ - .value("OpenGl_LF_Upper",OpenGl_LayerFilter::OpenGl_LF_Upper) │ │ │ │ - .value("OpenGl_LF_Bottom",OpenGl_LayerFilter::OpenGl_LF_Bottom) │ │ │ │ - .value("OpenGl_LF_RayTracable",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values(); │ │ │ │ - py::enum_(m, "OpenGl_MaterialFlag",R"#(Material flag)#") │ │ │ │ - .value("OpenGl_MaterialFlag_Front",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front) │ │ │ │ - .value("OpenGl_MaterialFlag_Back",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values(); │ │ │ │ - py::enum_(m, "OpenGl_FeatureFlag",R"#()#") │ │ │ │ - .value("OpenGl_FeatureNotAvailable",OpenGl_FeatureFlag::OpenGl_FeatureNotAvailable) │ │ │ │ - .value("OpenGl_FeatureInExtensions",OpenGl_FeatureFlag::OpenGl_FeatureInExtensions) │ │ │ │ - .value("OpenGl_FeatureInCore",OpenGl_FeatureFlag::OpenGl_FeatureInCore).export_values(); │ │ │ │ + py::enum_(m, "OpenGl_RenderFilter",R"#(Filter for rendering elements.)#") │ │ │ │ + .value("OpenGl_RenderFilter_Empty",OpenGl_RenderFilter::OpenGl_RenderFilter_Empty) │ │ │ │ + .value("OpenGl_RenderFilter_OpaqueOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_OpaqueOnly) │ │ │ │ + .value("OpenGl_RenderFilter_TransparentOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_TransparentOnly) │ │ │ │ + .value("OpenGl_RenderFilter_NonRaytraceableOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_NonRaytraceableOnly) │ │ │ │ + .value("OpenGl_RenderFilter_FillModeOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_FillModeOnly) │ │ │ │ + .value("OpenGl_RenderFilter_SkipTrsfPersistence",OpenGl_RenderFilter::OpenGl_RenderFilter_SkipTrsfPersistence).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_OpenGl_Element : public OpenGl_Element{ │ │ │ │ public: │ │ │ │ using OpenGl_Element::OpenGl_Element; │ │ │ ├── ./usr/share/libocp/OCP/OpenGl_tmpl.hxx │ │ │ │┄ Ordering differences only │ │ │ │ @@ -212,14 +212,47 @@ │ │ │ │ #include │ │ │ │ │ │ │ │ // user-defined pre │ │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ │ │ +template │ │ │ │ +void preregister_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Software implementation for OpenGL matrix stack.)#"); │ │ │ │ +} │ │ │ │ + │ │ │ │ +template │ │ │ │ +void register_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ + .def(py::init< >() ) │ │ │ │ + .def("Push", │ │ │ │ + (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Push, │ │ │ │ + R"#(Pushes current matrix into stack.)#" ) │ │ │ │ + .def("Pop", │ │ │ │ + (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Pop, │ │ │ │ + R"#(Pops matrix from stack to current.)#" ) │ │ │ │ + .def("Current", │ │ │ │ + ( const typename OpenGl::MatrixType::Mat4 & (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Current, │ │ │ │ + R"#(Returns current matrix.)#" ) │ │ │ │ + .def("SetCurrent", │ │ │ │ + (void (OpenGl_MatrixState::*)( const typename OpenGl::MatrixType::Mat4 & ) ) &OpenGl_MatrixState::SetCurrent, │ │ │ │ + R"#(Sets given matrix as current.)#" ,py::arg("theNewCurrent")) │ │ │ │ + .def("ChangeCurrent", │ │ │ │ + (typename OpenGl::MatrixType::Mat4 & (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::ChangeCurrent, │ │ │ │ + R"#(Change current matrix.)#" ) │ │ │ │ + .def("SetIdentity", │ │ │ │ + (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::SetIdentity, │ │ │ │ + R"#(Sets current matrix to identity.)#" ) │ │ │ │ + .def("DumpJson", │ │ │ │ + (void (OpenGl_MatrixState::*)( Standard_OStream & , Standard_Integer ) const) &OpenGl_MatrixState::DumpJson, │ │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ + ; │ │ │ │ +}; │ │ │ │ + │ │ │ │ template │ │ │ │ void preregister_template_OpenGl_BufferCompatT(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Compatibility layer for old OpenGL without VBO. Make sure to pass pointer from GetDataOffset() instead of NULL. Method GetDataOffset() returns pointer to real data in this class (while base class OpenGl_VertexBuffer always return NULL).)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ void register_template_OpenGl_BufferCompatT(py::object &m, const char *name){ │ │ │ │ @@ -252,25 +285,14 @@ │ │ │ │ .def("getSubData", │ │ │ │ (bool (OpenGl_BufferCompatT::*)( const handle & , const Standard_Integer , const Standard_Integer , void * , const unsigned int ) ) &OpenGl_BufferCompatT::getSubData, │ │ │ │ R"#(Read back buffer sub-range.)#" ,py::arg("theGlCtx"), py::arg("theElemFrom"), py::arg("theElemsNb"), py::arg("theData"), py::arg("theDataType")) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Selects preferable texture format for specified parameters.)#"); │ │ │ │ -} │ │ │ │ - │ │ │ │ -template │ │ │ │ -void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - ; │ │ │ │ -}; │ │ │ │ - │ │ │ │ -template │ │ │ │ void preregister_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ │ py::class_ , shared_ptr> , OpenGl_SetterInterface >(m,name,R"#()#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ void register_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ │ static_cast , shared_ptr> , OpenGl_SetterInterface >>(m.attr(name)) │ │ │ │ @@ -339,42 +361,20 @@ │ │ │ │ template │ │ │ │ void register_template_MatrixType(py::object &m, const char *name){ │ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ template │ │ │ │ -void preregister_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Software implementation for OpenGL matrix stack.)#"); │ │ │ │ +void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Selects preferable texture format for specified parameters.)#"); │ │ │ │ } │ │ │ │ │ │ │ │ template │ │ │ │ -void register_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ - .def(py::init< >() ) │ │ │ │ - .def("Push", │ │ │ │ - (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Push, │ │ │ │ - R"#(Pushes current matrix into stack.)#" ) │ │ │ │ - .def("Pop", │ │ │ │ - (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Pop, │ │ │ │ - R"#(Pops matrix from stack to current.)#" ) │ │ │ │ - .def("Current", │ │ │ │ - ( const typename OpenGl::MatrixType::Mat4 & (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::Current, │ │ │ │ - R"#(Returns current matrix.)#" ) │ │ │ │ - .def("SetCurrent", │ │ │ │ - (void (OpenGl_MatrixState::*)( const typename OpenGl::MatrixType::Mat4 & ) ) &OpenGl_MatrixState::SetCurrent, │ │ │ │ - R"#(Sets given matrix as current.)#" ,py::arg("theNewCurrent")) │ │ │ │ - .def("ChangeCurrent", │ │ │ │ - (typename OpenGl::MatrixType::Mat4 & (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::ChangeCurrent, │ │ │ │ - R"#(Change current matrix.)#" ) │ │ │ │ - .def("SetIdentity", │ │ │ │ - (void (OpenGl_MatrixState::*)() ) &OpenGl_MatrixState::SetIdentity, │ │ │ │ - R"#(Sets current matrix to identity.)#" ) │ │ │ │ - .def("DumpJson", │ │ │ │ - (void (OpenGl_MatrixState::*)( Standard_OStream & , Standard_Integer ) const) &OpenGl_MatrixState::DumpJson, │ │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")=static_cast(- 1)) │ │ │ │ +void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ │ ; │ │ │ │ }; │ │ │ │ │ │ │ │ │ │ │ │ // user-defined post │ │ │ ├── ./usr/share/libocp/OCP/PCDM_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -73,14 +73,24 @@ │ │ │ │ py::module m = main_module.def_submodule("PCDM", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "PCDM_StoreStatus",R"#(Status of storage of a document on disk. If it is PCDM_SS_OK, the document is successfully saved on disk. Else - there is an error.)#") │ │ │ │ + .value("PCDM_SS_OK",PCDM_StoreStatus::PCDM_SS_OK) │ │ │ │ + .value("PCDM_SS_DriverFailure",PCDM_StoreStatus::PCDM_SS_DriverFailure) │ │ │ │ + .value("PCDM_SS_WriteFailure",PCDM_StoreStatus::PCDM_SS_WriteFailure) │ │ │ │ + .value("PCDM_SS_Failure",PCDM_StoreStatus::PCDM_SS_Failure) │ │ │ │ + .value("PCDM_SS_Doc_IsNull",PCDM_StoreStatus::PCDM_SS_Doc_IsNull) │ │ │ │ + .value("PCDM_SS_No_Obj",PCDM_StoreStatus::PCDM_SS_No_Obj) │ │ │ │ + .value("PCDM_SS_Info_Section_Error",PCDM_StoreStatus::PCDM_SS_Info_Section_Error) │ │ │ │ + .value("PCDM_SS_UserBreak",PCDM_StoreStatus::PCDM_SS_UserBreak) │ │ │ │ + .value("PCDM_SS_UnrecognizedFormat",PCDM_StoreStatus::PCDM_SS_UnrecognizedFormat).export_values(); │ │ │ │ py::enum_(m, "PCDM_ReaderStatus",R"#(Status of reading of a document. The following values are accessible: - PCDM_RS_OK: the document was successfully read; - PCDM_RS_NoDriver: driver is not found for the defined file format; - PCDM_RS_UnknownFileDriver: check of the file failed (file doesn't exist, for example); - PCDM_RS_OpenError: attempt to open the file failed; - PCDM_RS_NoVersion: document version of the file is out of scope; - PCDM_RS_NoSchema: NOT USED; - PCDM_RS_NoDocument: document is empty (failed to be read correctly); - PCDM_RS_ExtensionFailure: NOT USED; - PCDM_RS_WrongStreamMode: file is not open for reading (a mistaken mode); - PCDM_RS_FormatFailure: mistake in document data structure; - PCDM_RS_TypeFailure: data type is unknown; - PCDM_RS_TypeNotFoundInSchema: data type is not found in schema (STD file format); - PCDM_RS_UnrecognizedFileFormat: document data structure is wrong (binary file format); - PCDM_RS_MakeFailure: conversion of data from persistent to transient attributes failed (XML file format); - PCDM_RS_PermissionDenied: file can't be opened because permission is denied; - PCDM_RS_DriverFailure: something went wrong (a general mistake of reading of a document); - PCDM_RS_AlreadyRetrievedAndModified: document is already retrieved and modified in current session; - PCDM_RS_AlreadyRetrieved: document is already in current session (already retrieved); - PCDM_RS_UnknownDocument: file doesn't exist on disk; - PCDM_RS_WrongResource: wrong resource file (.RetrievalPlugin); - PCDM_RS_ReaderException: no shape section in the document file (binary file format); - PCDM_RS_NoModel: NOT USED; - PCDM_RS_UserBreak: user stopped reading of the document;)#") │ │ │ │ .value("PCDM_RS_OK",PCDM_ReaderStatus::PCDM_RS_OK) │ │ │ │ .value("PCDM_RS_NoDriver",PCDM_ReaderStatus::PCDM_RS_NoDriver) │ │ │ │ .value("PCDM_RS_UnknownFileDriver",PCDM_ReaderStatus::PCDM_RS_UnknownFileDriver) │ │ │ │ .value("PCDM_RS_OpenError",PCDM_ReaderStatus::PCDM_RS_OpenError) │ │ │ │ .value("PCDM_RS_NoVersion",PCDM_ReaderStatus::PCDM_RS_NoVersion) │ │ │ │ .value("PCDM_RS_NoSchema",PCDM_ReaderStatus::PCDM_RS_NoSchema) │ │ │ │ @@ -102,24 +112,14 @@ │ │ │ │ .value("PCDM_RS_NoModel",PCDM_ReaderStatus::PCDM_RS_NoModel) │ │ │ │ .value("PCDM_RS_UserBreak",PCDM_ReaderStatus::PCDM_RS_UserBreak).export_values(); │ │ │ │ py::enum_(m, "PCDM_TypeOfFileDriver",R"#()#") │ │ │ │ .value("PCDM_TOFD_File",PCDM_TypeOfFileDriver::PCDM_TOFD_File) │ │ │ │ .value("PCDM_TOFD_CmpFile",PCDM_TypeOfFileDriver::PCDM_TOFD_CmpFile) │ │ │ │ .value("PCDM_TOFD_XmlFile",PCDM_TypeOfFileDriver::PCDM_TOFD_XmlFile) │ │ │ │ .value("PCDM_TOFD_Unknown",PCDM_TypeOfFileDriver::PCDM_TOFD_Unknown).export_values(); │ │ │ │ - py::enum_(m, "PCDM_StoreStatus",R"#(Status of storage of a document on disk. If it is PCDM_SS_OK, the document is successfully saved on disk. Else - there is an error.)#") │ │ │ │ - .value("PCDM_SS_OK",PCDM_StoreStatus::PCDM_SS_OK) │ │ │ │ - .value("PCDM_SS_DriverFailure",PCDM_StoreStatus::PCDM_SS_DriverFailure) │ │ │ │ - .value("PCDM_SS_WriteFailure",PCDM_StoreStatus::PCDM_SS_WriteFailure) │ │ │ │ - .value("PCDM_SS_Failure",PCDM_StoreStatus::PCDM_SS_Failure) │ │ │ │ - .value("PCDM_SS_Doc_IsNull",PCDM_StoreStatus::PCDM_SS_Doc_IsNull) │ │ │ │ - .value("PCDM_SS_No_Obj",PCDM_StoreStatus::PCDM_SS_No_Obj) │ │ │ │ - .value("PCDM_SS_Info_Section_Error",PCDM_StoreStatus::PCDM_SS_Info_Section_Error) │ │ │ │ - .value("PCDM_SS_UserBreak",PCDM_StoreStatus::PCDM_SS_UserBreak) │ │ │ │ - .value("PCDM_SS_UnrecognizedFormat",PCDM_StoreStatus::PCDM_SS_UnrecognizedFormat).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_PCDM_ReadWriter : public PCDM_ReadWriter{ │ │ │ │ public: │ │ │ │ using PCDM_ReadWriter::PCDM_ReadWriter; │ │ │ ├── ./usr/share/libocp/OCP/Prs3d_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -84,19 +84,49 @@ │ │ │ │ py::module m = main_module.def_submodule("Prs3d", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Prs3d_DimensionTextHorizontalPosition",R"#(Specifies options for positioning dimension value label in horizontal direction. DTHP_Left - value label located at left side on dimension extension. DTHP_Right - value label located at right side on dimension extension. DTHP_Center - value label located at center of dimension line. DTHP_Fit - value label located automatically at left side if does not fits the dimension space, otherwise the value label is placed at center.)#") │ │ │ │ - .value("Prs3d_DTHP_Left",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left) │ │ │ │ - .value("Prs3d_DTHP_Right",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right) │ │ │ │ - .value("Prs3d_DTHP_Center",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center) │ │ │ │ - .value("Prs3d_DTHP_Fit",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_TypeOfLinePicking",R"#()#") │ │ │ │ + .value("Prs3d_TOLP_Point",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Point) │ │ │ │ + .value("Prs3d_TOLP_Segment",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Segment).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_DatumParts",R"#(Enumeration defining a part of datum aspect, see Prs3d_Datum.)#") │ │ │ │ + .value("Prs3d_DatumParts_Origin",Prs3d_DatumParts::Prs3d_DatumParts_Origin) │ │ │ │ + .value("Prs3d_DatumParts_XAxis",Prs3d_DatumParts::Prs3d_DatumParts_XAxis) │ │ │ │ + .value("Prs3d_DatumParts_YAxis",Prs3d_DatumParts::Prs3d_DatumParts_YAxis) │ │ │ │ + .value("Prs3d_DatumParts_ZAxis",Prs3d_DatumParts::Prs3d_DatumParts_ZAxis) │ │ │ │ + .value("Prs3d_DatumParts_XArrow",Prs3d_DatumParts::Prs3d_DatumParts_XArrow) │ │ │ │ + .value("Prs3d_DatumParts_YArrow",Prs3d_DatumParts::Prs3d_DatumParts_YArrow) │ │ │ │ + .value("Prs3d_DatumParts_ZArrow",Prs3d_DatumParts::Prs3d_DatumParts_ZArrow) │ │ │ │ + .value("Prs3d_DatumParts_XOYAxis",Prs3d_DatumParts::Prs3d_DatumParts_XOYAxis) │ │ │ │ + .value("Prs3d_DatumParts_YOZAxis",Prs3d_DatumParts::Prs3d_DatumParts_YOZAxis) │ │ │ │ + .value("Prs3d_DatumParts_XOZAxis",Prs3d_DatumParts::Prs3d_DatumParts_XOZAxis) │ │ │ │ + .value("Prs3d_DatumParts_None",Prs3d_DatumParts::Prs3d_DatumParts_None) │ │ │ │ + .value("Prs3d_DP_Origin",Prs3d_DatumParts::Prs3d_DP_Origin) │ │ │ │ + .value("Prs3d_DP_XAxis",Prs3d_DatumParts::Prs3d_DP_XAxis) │ │ │ │ + .value("Prs3d_DP_YAxis",Prs3d_DatumParts::Prs3d_DP_YAxis) │ │ │ │ + .value("Prs3d_DP_ZAxis",Prs3d_DatumParts::Prs3d_DP_ZAxis) │ │ │ │ + .value("Prs3d_DP_XArrow",Prs3d_DatumParts::Prs3d_DP_XArrow) │ │ │ │ + .value("Prs3d_DP_YArrow",Prs3d_DatumParts::Prs3d_DP_YArrow) │ │ │ │ + .value("Prs3d_DP_ZArrow",Prs3d_DatumParts::Prs3d_DP_ZArrow) │ │ │ │ + .value("Prs3d_DP_XOYAxis",Prs3d_DatumParts::Prs3d_DP_XOYAxis) │ │ │ │ + .value("Prs3d_DP_YOZAxis",Prs3d_DatumParts::Prs3d_DP_YOZAxis) │ │ │ │ + .value("Prs3d_DP_XOZAxis",Prs3d_DatumParts::Prs3d_DP_XOZAxis) │ │ │ │ + .value("Prs3d_DP_None",Prs3d_DatumParts::Prs3d_DP_None).export_values(); │ │ │ │ + m.attr("Prs3d_DatumParts_NB") = py::cast(int(Prs3d_DatumParts_NB)); │ │ │ │ + py::enum_(m, "Prs3d_TypeOfHighlight",R"#(Type of highlighting to apply specific style.)#") │ │ │ │ + .value("Prs3d_TypeOfHighlight_None",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None) │ │ │ │ + .value("Prs3d_TypeOfHighlight_Selected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected) │ │ │ │ + .value("Prs3d_TypeOfHighlight_Dynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic) │ │ │ │ + .value("Prs3d_TypeOfHighlight_LocalSelected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected) │ │ │ │ + .value("Prs3d_TypeOfHighlight_LocalDynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic) │ │ │ │ + .value("Prs3d_TypeOfHighlight_SubIntensity",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity) │ │ │ │ + .value("Prs3d_TypeOfHighlight_NB",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values(); │ │ │ │ py::enum_(m, "Prs3d_DatumAxes",R"#(Enumeration defining axes used in datum aspect, see Prs3d_Datum.)#") │ │ │ │ .value("Prs3d_DatumAxes_XAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_XAxis) │ │ │ │ .value("Prs3d_DatumAxes_YAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_YAxis) │ │ │ │ .value("Prs3d_DatumAxes_ZAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_ZAxis) │ │ │ │ .value("Prs3d_DatumAxes_XYAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_XYAxes) │ │ │ │ .value("Prs3d_DatumAxes_YZAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_YZAxes) │ │ │ │ .value("Prs3d_DatumAxes_XZAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_XZAxes) │ │ │ │ @@ -104,44 +134,18 @@ │ │ │ │ .value("Prs3d_DA_XAxis",Prs3d_DatumAxes::Prs3d_DA_XAxis) │ │ │ │ .value("Prs3d_DA_YAxis",Prs3d_DatumAxes::Prs3d_DA_YAxis) │ │ │ │ .value("Prs3d_DA_ZAxis",Prs3d_DatumAxes::Prs3d_DA_ZAxis) │ │ │ │ .value("Prs3d_DA_XYAxis",Prs3d_DatumAxes::Prs3d_DA_XYAxis) │ │ │ │ .value("Prs3d_DA_YZAxis",Prs3d_DatumAxes::Prs3d_DA_YZAxis) │ │ │ │ .value("Prs3d_DA_XZAxis",Prs3d_DatumAxes::Prs3d_DA_XZAxis) │ │ │ │ .value("Prs3d_DA_XYZAxis",Prs3d_DatumAxes::Prs3d_DA_XYZAxis).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_TypeOfLinePicking",R"#()#") │ │ │ │ - .value("Prs3d_TOLP_Point",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Point) │ │ │ │ - .value("Prs3d_TOLP_Segment",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Segment).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_DimensionTextVerticalPosition",R"#(Specifies options for positioning dimension value label in vertical direction with respect to dimension (extension) line. DTVP_Above - text label is located above the dimension or extension line. DTVP_Below - text label is located below the dimension or extension line. DTVP_Center - the text label middle-point is in line with dimension or extension line.)#") │ │ │ │ - .value("Prs3d_DTVP_Above",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above) │ │ │ │ - .value("Prs3d_DTVP_Below",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below) │ │ │ │ - .value("Prs3d_DTVP_Center",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_DatumMode",R"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#") │ │ │ │ - .value("Prs3d_DM_WireFrame",Prs3d_DatumMode::Prs3d_DM_WireFrame) │ │ │ │ - .value("Prs3d_DM_Shaded",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_TypeOfHLR",R"#(Declares types of hidden line removal algorithm. TOH_Algo enables using of exact HLR algorithm. TOH_PolyAlgo enables using of polygonal HLR algorithm. TOH_NotSet is used by Prs3d_Drawer class, it means that the drawer should return the global value. For more details see Prs3d_Drawer class, AIS_Shape::Compute() method and HLRAlgo package from TKHLR toolkit.)#") │ │ │ │ - .value("Prs3d_TOH_NotSet",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet) │ │ │ │ - .value("Prs3d_TOH_PolyAlgo",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo) │ │ │ │ - .value("Prs3d_TOH_Algo",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_TypeOfHighlight",R"#(Type of highlighting to apply specific style.)#") │ │ │ │ - .value("Prs3d_TypeOfHighlight_None",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None) │ │ │ │ - .value("Prs3d_TypeOfHighlight_Selected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected) │ │ │ │ - .value("Prs3d_TypeOfHighlight_Dynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic) │ │ │ │ - .value("Prs3d_TypeOfHighlight_LocalSelected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected) │ │ │ │ - .value("Prs3d_TypeOfHighlight_LocalDynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic) │ │ │ │ - .value("Prs3d_TypeOfHighlight_SubIntensity",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity) │ │ │ │ - .value("Prs3d_TypeOfHighlight_NB",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values(); │ │ │ │ py::enum_(m, "Prs3d_DimensionArrowOrientation",R"#(Specifies dimension arrow location and orientation. DAO_Internal - arrows "inside", pointing outwards. DAO_External - arrows "outside", pointing inwards. DAO_Fit - arrows oriented inside if value label with arrowtips fit the dimension line, otherwise - externally)#") │ │ │ │ .value("Prs3d_DAO_Internal",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Internal) │ │ │ │ .value("Prs3d_DAO_External",Prs3d_DimensionArrowOrientation::Prs3d_DAO_External) │ │ │ │ .value("Prs3d_DAO_Fit",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Fit).export_values(); │ │ │ │ - py::enum_(m, "Prs3d_VertexDrawMode",R"#(Describes supported modes of visualization of the shape's vertices: VDM_Isolated - only isolated vertices (not belonging to a face) are displayed. VDM_All - all vertices of the shape are displayed. VDM_Inherited - the global settings are inherited and applied to the shape's presentation.)#") │ │ │ │ - .value("Prs3d_VDM_Isolated",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated) │ │ │ │ - .value("Prs3d_VDM_All",Prs3d_VertexDrawMode::Prs3d_VDM_All) │ │ │ │ - .value("Prs3d_VDM_Inherited",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values(); │ │ │ │ py::enum_(m, "Prs3d_DatumAttribute",R"#(Enumeration defining a datum attribute, see Prs3d_Datum.)#") │ │ │ │ .value("Prs3d_DatumAttribute_XAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_XAxisLength) │ │ │ │ .value("Prs3d_DatumAttribute_YAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_YAxisLength) │ │ │ │ .value("Prs3d_DatumAttribute_ZAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ZAxisLength) │ │ │ │ .value("Prs3d_DatumAttribute_ShadingTubeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingTubeRadiusPercent) │ │ │ │ .value("Prs3d_DatumAttribute_ShadingConeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeRadiusPercent) │ │ │ │ .value("Prs3d_DatumAttribute_ShadingConeLengthPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeLengthPercent) │ │ │ │ @@ -152,38 +156,34 @@ │ │ │ │ .value("Prs3d_DA_ZAxisLength",Prs3d_DatumAttribute::Prs3d_DA_ZAxisLength) │ │ │ │ .value("Prs3d_DP_ShadingTubeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingTubeRadiusPercent) │ │ │ │ .value("Prs3d_DP_ShadingConeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeRadiusPercent) │ │ │ │ .value("Prs3d_DP_ShadingConeLengthPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeLengthPercent) │ │ │ │ .value("Prs3d_DP_ShadingOriginRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingOriginRadiusPercent) │ │ │ │ .value("Prs3d_DP_ShadingNumberOfFacettes",Prs3d_DatumAttribute::Prs3d_DP_ShadingNumberOfFacettes).export_values(); │ │ │ │ m.attr("Prs3d_DatumAttribute_NB") = py::cast(int(Prs3d_DatumAttribute_NB)); │ │ │ │ - py::enum_(m, "Prs3d_DatumParts",R"#(Enumeration defining a part of datum aspect, see Prs3d_Datum.)#") │ │ │ │ - .value("Prs3d_DatumParts_Origin",Prs3d_DatumParts::Prs3d_DatumParts_Origin) │ │ │ │ - .value("Prs3d_DatumParts_XAxis",Prs3d_DatumParts::Prs3d_DatumParts_XAxis) │ │ │ │ - .value("Prs3d_DatumParts_YAxis",Prs3d_DatumParts::Prs3d_DatumParts_YAxis) │ │ │ │ - .value("Prs3d_DatumParts_ZAxis",Prs3d_DatumParts::Prs3d_DatumParts_ZAxis) │ │ │ │ - .value("Prs3d_DatumParts_XArrow",Prs3d_DatumParts::Prs3d_DatumParts_XArrow) │ │ │ │ - .value("Prs3d_DatumParts_YArrow",Prs3d_DatumParts::Prs3d_DatumParts_YArrow) │ │ │ │ - .value("Prs3d_DatumParts_ZArrow",Prs3d_DatumParts::Prs3d_DatumParts_ZArrow) │ │ │ │ - .value("Prs3d_DatumParts_XOYAxis",Prs3d_DatumParts::Prs3d_DatumParts_XOYAxis) │ │ │ │ - .value("Prs3d_DatumParts_YOZAxis",Prs3d_DatumParts::Prs3d_DatumParts_YOZAxis) │ │ │ │ - .value("Prs3d_DatumParts_XOZAxis",Prs3d_DatumParts::Prs3d_DatumParts_XOZAxis) │ │ │ │ - .value("Prs3d_DatumParts_None",Prs3d_DatumParts::Prs3d_DatumParts_None) │ │ │ │ - .value("Prs3d_DP_Origin",Prs3d_DatumParts::Prs3d_DP_Origin) │ │ │ │ - .value("Prs3d_DP_XAxis",Prs3d_DatumParts::Prs3d_DP_XAxis) │ │ │ │ - .value("Prs3d_DP_YAxis",Prs3d_DatumParts::Prs3d_DP_YAxis) │ │ │ │ - .value("Prs3d_DP_ZAxis",Prs3d_DatumParts::Prs3d_DP_ZAxis) │ │ │ │ - .value("Prs3d_DP_XArrow",Prs3d_DatumParts::Prs3d_DP_XArrow) │ │ │ │ - .value("Prs3d_DP_YArrow",Prs3d_DatumParts::Prs3d_DP_YArrow) │ │ │ │ - .value("Prs3d_DP_ZArrow",Prs3d_DatumParts::Prs3d_DP_ZArrow) │ │ │ │ - .value("Prs3d_DP_XOYAxis",Prs3d_DatumParts::Prs3d_DP_XOYAxis) │ │ │ │ - .value("Prs3d_DP_YOZAxis",Prs3d_DatumParts::Prs3d_DP_YOZAxis) │ │ │ │ - .value("Prs3d_DP_XOZAxis",Prs3d_DatumParts::Prs3d_DP_XOZAxis) │ │ │ │ - .value("Prs3d_DP_None",Prs3d_DatumParts::Prs3d_DP_None).export_values(); │ │ │ │ - m.attr("Prs3d_DatumParts_NB") = py::cast(int(Prs3d_DatumParts_NB)); │ │ │ │ + py::enum_(m, "Prs3d_DimensionTextVerticalPosition",R"#(Specifies options for positioning dimension value label in vertical direction with respect to dimension (extension) line. DTVP_Above - text label is located above the dimension or extension line. DTVP_Below - text label is located below the dimension or extension line. DTVP_Center - the text label middle-point is in line with dimension or extension line.)#") │ │ │ │ + .value("Prs3d_DTVP_Above",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above) │ │ │ │ + .value("Prs3d_DTVP_Below",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below) │ │ │ │ + .value("Prs3d_DTVP_Center",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_TypeOfHLR",R"#(Declares types of hidden line removal algorithm. TOH_Algo enables using of exact HLR algorithm. TOH_PolyAlgo enables using of polygonal HLR algorithm. TOH_NotSet is used by Prs3d_Drawer class, it means that the drawer should return the global value. For more details see Prs3d_Drawer class, AIS_Shape::Compute() method and HLRAlgo package from TKHLR toolkit.)#") │ │ │ │ + .value("Prs3d_TOH_NotSet",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet) │ │ │ │ + .value("Prs3d_TOH_PolyAlgo",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo) │ │ │ │ + .value("Prs3d_TOH_Algo",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_DimensionTextHorizontalPosition",R"#(Specifies options for positioning dimension value label in horizontal direction. DTHP_Left - value label located at left side on dimension extension. DTHP_Right - value label located at right side on dimension extension. DTHP_Center - value label located at center of dimension line. DTHP_Fit - value label located automatically at left side if does not fits the dimension space, otherwise the value label is placed at center.)#") │ │ │ │ + .value("Prs3d_DTHP_Left",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left) │ │ │ │ + .value("Prs3d_DTHP_Right",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right) │ │ │ │ + .value("Prs3d_DTHP_Center",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center) │ │ │ │ + .value("Prs3d_DTHP_Fit",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_VertexDrawMode",R"#(Describes supported modes of visualization of the shape's vertices: VDM_Isolated - only isolated vertices (not belonging to a face) are displayed. VDM_All - all vertices of the shape are displayed. VDM_Inherited - the global settings are inherited and applied to the shape's presentation.)#") │ │ │ │ + .value("Prs3d_VDM_Isolated",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated) │ │ │ │ + .value("Prs3d_VDM_All",Prs3d_VertexDrawMode::Prs3d_VDM_All) │ │ │ │ + .value("Prs3d_VDM_Inherited",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values(); │ │ │ │ + py::enum_(m, "Prs3d_DatumMode",R"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#") │ │ │ │ + .value("Prs3d_DM_WireFrame",Prs3d_DatumMode::Prs3d_DM_WireFrame) │ │ │ │ + .value("Prs3d_DM_Shaded",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Prs3d_BasicAspect : public Prs3d_BasicAspect{ │ │ │ │ public: │ │ │ │ using Prs3d_BasicAspect::Prs3d_BasicAspect; │ │ │ ├── ./usr/share/libocp/OCP/PrsMgr_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -56,24 +56,24 @@ │ │ │ │ py::module m = main_module.def_submodule("PrsMgr", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "PrsMgr_TypeOfPresentation3d",R"#(The type of presentation.)#") │ │ │ │ - .value("PrsMgr_TOP_AllView",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_AllView) │ │ │ │ - .value("PrsMgr_TOP_ProjectorDependent",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_ProjectorDependent).export_values(); │ │ │ │ py::enum_(m, "PrsMgr_DisplayStatus",R"#(To give the display status of an Interactive Object.)#") │ │ │ │ .value("PrsMgr_DisplayStatus_Displayed",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_Displayed) │ │ │ │ .value("PrsMgr_DisplayStatus_Erased",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_Erased) │ │ │ │ .value("PrsMgr_DisplayStatus_None",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_None) │ │ │ │ .value("AIS_DS_Displayed",PrsMgr_DisplayStatus::AIS_DS_Displayed) │ │ │ │ .value("AIS_DS_Erased",PrsMgr_DisplayStatus::AIS_DS_Erased) │ │ │ │ .value("AIS_DS_None",PrsMgr_DisplayStatus::AIS_DS_None).export_values(); │ │ │ │ + py::enum_(m, "PrsMgr_TypeOfPresentation3d",R"#(The type of presentation.)#") │ │ │ │ + .value("PrsMgr_TOP_AllView",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_AllView) │ │ │ │ + .value("PrsMgr_TOP_ProjectorDependent",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_ProjectorDependent).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_PrsMgr_PresentableObject : public PrsMgr_PresentableObject{ │ │ │ │ public: │ │ │ │ using PrsMgr_PresentableObject::PrsMgr_PresentableObject; │ │ │ ├── ./usr/share/libocp/OCP/Quantity_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -44,20 +44,14 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Quantity_TypeOfColor",R"#(Identifies color definition systems.)#") │ │ │ │ - .value("Quantity_TOC_RGB",Quantity_TypeOfColor::Quantity_TOC_RGB) │ │ │ │ - .value("Quantity_TOC_sRGB",Quantity_TypeOfColor::Quantity_TOC_sRGB) │ │ │ │ - .value("Quantity_TOC_HLS",Quantity_TypeOfColor::Quantity_TOC_HLS) │ │ │ │ - .value("Quantity_TOC_CIELab",Quantity_TypeOfColor::Quantity_TOC_CIELab) │ │ │ │ - .value("Quantity_TOC_CIELch",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values(); │ │ │ │ py::enum_(m, "Quantity_NameOfColor",R"#(Definition of names of known colors. The names come (mostly) from the X11 specification.)#") │ │ │ │ .value("Quantity_NOC_BLACK",Quantity_NameOfColor::Quantity_NOC_BLACK) │ │ │ │ .value("Quantity_NOC_MATRABLUE",Quantity_NameOfColor::Quantity_NOC_MATRABLUE) │ │ │ │ .value("Quantity_NOC_MATRAGRAY",Quantity_NameOfColor::Quantity_NOC_MATRAGRAY) │ │ │ │ .value("Quantity_NOC_ALICEBLUE",Quantity_NameOfColor::Quantity_NOC_ALICEBLUE) │ │ │ │ .value("Quantity_NOC_ANTIQUEWHITE",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE) │ │ │ │ .value("Quantity_NOC_ANTIQUEWHITE1",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE1) │ │ │ │ @@ -572,14 +566,20 @@ │ │ │ │ .value("Quantity_NOC_YELLOW",Quantity_NameOfColor::Quantity_NOC_YELLOW) │ │ │ │ .value("Quantity_NOC_YELLOW1",Quantity_NameOfColor::Quantity_NOC_YELLOW1) │ │ │ │ .value("Quantity_NOC_YELLOW2",Quantity_NameOfColor::Quantity_NOC_YELLOW2) │ │ │ │ .value("Quantity_NOC_YELLOW3",Quantity_NameOfColor::Quantity_NOC_YELLOW3) │ │ │ │ .value("Quantity_NOC_YELLOW4",Quantity_NameOfColor::Quantity_NOC_YELLOW4) │ │ │ │ .value("Quantity_NOC_YELLOWGREEN",Quantity_NameOfColor::Quantity_NOC_YELLOWGREEN) │ │ │ │ .value("Quantity_NOC_WHITE",Quantity_NameOfColor::Quantity_NOC_WHITE).export_values(); │ │ │ │ + py::enum_(m, "Quantity_TypeOfColor",R"#(Identifies color definition systems.)#") │ │ │ │ + .value("Quantity_TOC_RGB",Quantity_TypeOfColor::Quantity_TOC_RGB) │ │ │ │ + .value("Quantity_TOC_sRGB",Quantity_TypeOfColor::Quantity_TOC_sRGB) │ │ │ │ + .value("Quantity_TOC_HLS",Quantity_TypeOfColor::Quantity_TOC_HLS) │ │ │ │ + .value("Quantity_TOC_CIELab",Quantity_TypeOfColor::Quantity_TOC_CIELab) │ │ │ │ + .value("Quantity_TOC_CIELch",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"Quantity_Color",R"#(This class allows the definition of an RGB color as triplet of 3 normalized floating point values (red, green, blue).)#"); │ │ │ │ py::class_ >(m,"Quantity_ColorRGBA",R"#(The pair of Quantity_Color and Alpha component (1.0 opaque, 0.0 transparent).)#"); │ │ │ │ py::class_ >(m,"Quantity_Date",R"#(This class provides services to manage date information. A date represents the following time intervals: year, month, day, hour, minute, second, millisecond and microsecond. Current time is expressed in elapsed seconds and microseconds beginning from 00:00 GMT, January 1, 1979 (zero hour). The valid date can only be later than this one. Note: a Period object gives the interval between two dates.)#"); │ │ │ ├── ./usr/share/libocp/OCP/SelectMgr_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -107,44 +107,44 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("SelectMgr_MatOp"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "SelectMgr_TypeOfUpdate",R"#(Provides values for types of update, including - full - partial - none.)#") │ │ │ │ - .value("SelectMgr_TOU_Full",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Full) │ │ │ │ - .value("SelectMgr_TOU_Partial",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Partial) │ │ │ │ - .value("SelectMgr_TOU_None",SelectMgr_TypeOfUpdate::SelectMgr_TOU_None).export_values(); │ │ │ │ + py::enum_(m, "SelectMgr_PickingStrategy",R"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#") │ │ │ │ + .value("SelectMgr_PickingStrategy_FirstAcceptable",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable) │ │ │ │ + .value("SelectMgr_PickingStrategy_OnlyTopmost",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values(); │ │ │ │ + py::enum_(m, "SelectMgr_TypeOfDepthTolerance",R"#(Define the type of depth tolerance for considering picked entities to lie on the same depth (distance from eye to entity).)#") │ │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_Uniform",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform) │ │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_UniformPixels",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels) │ │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_SensitivityFactor",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values(); │ │ │ │ py::enum_(m, "SelectMgr_StateOfSelection",R"#(different state of a Selection in a ViewerSelector...)#") │ │ │ │ .value("SelectMgr_SOS_Any",SelectMgr_StateOfSelection::SelectMgr_SOS_Any) │ │ │ │ .value("SelectMgr_SOS_Unknown",SelectMgr_StateOfSelection::SelectMgr_SOS_Unknown) │ │ │ │ .value("SelectMgr_SOS_Deactivated",SelectMgr_StateOfSelection::SelectMgr_SOS_Deactivated) │ │ │ │ .value("SelectMgr_SOS_Activated",SelectMgr_StateOfSelection::SelectMgr_SOS_Activated).export_values(); │ │ │ │ + py::enum_(m, "SelectMgr_SelectionType",R"#(Possible selection types)#") │ │ │ │ + .value("SelectMgr_SelectionType_Unknown",SelectMgr_SelectionType::SelectMgr_SelectionType_Unknown) │ │ │ │ + .value("SelectMgr_SelectionType_Point",SelectMgr_SelectionType::SelectMgr_SelectionType_Point) │ │ │ │ + .value("SelectMgr_SelectionType_Box",SelectMgr_SelectionType::SelectMgr_SelectionType_Box) │ │ │ │ + .value("SelectMgr_SelectionType_Polyline",SelectMgr_SelectionType::SelectMgr_SelectionType_Polyline).export_values(); │ │ │ │ py::enum_(m, "SelectMgr_FilterType",R"#(Enumeration defines the filter type.)#") │ │ │ │ .value("SelectMgr_FilterType_AND",SelectMgr_FilterType::SelectMgr_FilterType_AND) │ │ │ │ .value("SelectMgr_FilterType_OR",SelectMgr_FilterType::SelectMgr_FilterType_OR).export_values(); │ │ │ │ + py::enum_(m, "SelectMgr_TypeOfUpdate",R"#(Provides values for types of update, including - full - partial - none.)#") │ │ │ │ + .value("SelectMgr_TOU_Full",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Full) │ │ │ │ + .value("SelectMgr_TOU_Partial",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Partial) │ │ │ │ + .value("SelectMgr_TOU_None",SelectMgr_TypeOfUpdate::SelectMgr_TOU_None).export_values(); │ │ │ │ py::enum_(m, "SelectMgr_TypeOfBVHUpdate",R"#(Keeps track for BVH update state for each SelectMgr_Selection entity in a following way: - Add : 2nd level BVH does not contain any of the selection's sensitive entities and they must be added; - Remove : all sensitive entities of the selection must be removed from 2nd level BVH; - Renew : 2nd level BVH already contains sensitives of the selection, but the its complete update and removal is required. Therefore, sensitives of the selection with this type of update must be removed from 2nd level BVH and added after recomputation. - Invalidate : the 2nd level BVH needs to be rebuilt; - None : entities of the selection are up to date.)#") │ │ │ │ .value("SelectMgr_TBU_Add",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Add) │ │ │ │ .value("SelectMgr_TBU_Remove",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Remove) │ │ │ │ .value("SelectMgr_TBU_Renew",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Renew) │ │ │ │ .value("SelectMgr_TBU_Invalidate",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Invalidate) │ │ │ │ .value("SelectMgr_TBU_None",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_None).export_values(); │ │ │ │ - py::enum_(m, "SelectMgr_TypeOfDepthTolerance",R"#(Define the type of depth tolerance for considering picked entities to lie on the same depth (distance from eye to entity).)#") │ │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_Uniform",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform) │ │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_UniformPixels",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels) │ │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_SensitivityFactor",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values(); │ │ │ │ - py::enum_(m, "SelectMgr_SelectionType",R"#(Possible selection types)#") │ │ │ │ - .value("SelectMgr_SelectionType_Unknown",SelectMgr_SelectionType::SelectMgr_SelectionType_Unknown) │ │ │ │ - .value("SelectMgr_SelectionType_Point",SelectMgr_SelectionType::SelectMgr_SelectionType_Point) │ │ │ │ - .value("SelectMgr_SelectionType_Box",SelectMgr_SelectionType::SelectMgr_SelectionType_Box) │ │ │ │ - .value("SelectMgr_SelectionType_Polyline",SelectMgr_SelectionType::SelectMgr_SelectionType_Polyline).export_values(); │ │ │ │ - py::enum_(m, "SelectMgr_PickingStrategy",R"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#") │ │ │ │ - .value("SelectMgr_PickingStrategy_FirstAcceptable",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable) │ │ │ │ - .value("SelectMgr_PickingStrategy_OnlyTopmost",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_SelectMgr_BaseIntersector : public SelectMgr_BaseIntersector{ │ │ │ │ public: │ │ │ │ using SelectMgr_BaseIntersector::SelectMgr_BaseIntersector; │ │ │ ├── ./usr/share/libocp/OCP/ShapeExtend_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -60,14 +60,18 @@ │ │ │ │ py::module m = main_module.def_submodule("ShapeExtend", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "ShapeExtend_Parametrisation",R"#(Defines kind of global parametrisation on the composite surface each patch of the 1st row and column adds its range, Ui+1 = Ui + URange(i,1), etc. each patch gives range 1.: Ui = i-1, Vj = j-1 uniform parametrisation with global range [0,1])#") │ │ │ │ + .value("ShapeExtend_Natural",ShapeExtend_Parametrisation::ShapeExtend_Natural) │ │ │ │ + .value("ShapeExtend_Uniform",ShapeExtend_Parametrisation::ShapeExtend_Uniform) │ │ │ │ + .value("ShapeExtend_Unitary",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values(); │ │ │ │ py::enum_(m, "ShapeExtend_Status",R"#(This enumeration is used in ShapeHealing toolkit for representing flags in the return statuses of class methods. The status is a field of the class which is set by one or several methods of that class. It is used for reporting about errors and other situations encountered during execution of the method. There are defined 8 values for DONE and 8 for FAIL flags: ShapeExtend_DONE1 ... ShapeExtend_DONE8, ShapeExtend_FAIL1 ... ShapeExtend_FAIL8 and also enumerations for representing combinations of flags: ShapeExtend_OK - no flags at all, ShapeExtend_DONE - any of flags DONEi, ShapeExtend_FAIL - any of flags FAILi. The class that uses statuses provides a method(s) which answers whether the flag corresponding to a given enumerative value is (are) set: Standard_Boolean Status(const ShapeExtend_Status test); Note that status can have several flags set simultaneously. Status(ShapeExtend_OK) gives True when no flags are set. Nothing done, everything OK Something was done, case 1 Something was done, case 2 Something was done, case 3 Something was done, case 4 Something was done, case 5 Something was done, case 6 Something was done, case 7 Something was done, case 8 Something was done (any of DONE#) The method failed, case 1 The method failed, case 2 The method failed, case 3 The method failed, case 4 The method failed, case 5 The method failed, case 6 The method failed, case 7 The method failed, case 8 The method failed (any of FAIL# occurred))#") │ │ │ │ .value("ShapeExtend_OK",ShapeExtend_Status::ShapeExtend_OK) │ │ │ │ .value("ShapeExtend_DONE1",ShapeExtend_Status::ShapeExtend_DONE1) │ │ │ │ .value("ShapeExtend_DONE2",ShapeExtend_Status::ShapeExtend_DONE2) │ │ │ │ .value("ShapeExtend_DONE3",ShapeExtend_Status::ShapeExtend_DONE3) │ │ │ │ .value("ShapeExtend_DONE4",ShapeExtend_Status::ShapeExtend_DONE4) │ │ │ │ .value("ShapeExtend_DONE5",ShapeExtend_Status::ShapeExtend_DONE5) │ │ │ │ @@ -80,18 +84,14 @@ │ │ │ │ .value("ShapeExtend_FAIL3",ShapeExtend_Status::ShapeExtend_FAIL3) │ │ │ │ .value("ShapeExtend_FAIL4",ShapeExtend_Status::ShapeExtend_FAIL4) │ │ │ │ .value("ShapeExtend_FAIL5",ShapeExtend_Status::ShapeExtend_FAIL5) │ │ │ │ .value("ShapeExtend_FAIL6",ShapeExtend_Status::ShapeExtend_FAIL6) │ │ │ │ .value("ShapeExtend_FAIL7",ShapeExtend_Status::ShapeExtend_FAIL7) │ │ │ │ .value("ShapeExtend_FAIL8",ShapeExtend_Status::ShapeExtend_FAIL8) │ │ │ │ .value("ShapeExtend_FAIL",ShapeExtend_Status::ShapeExtend_FAIL).export_values(); │ │ │ │ - py::enum_(m, "ShapeExtend_Parametrisation",R"#(Defines kind of global parametrisation on the composite surface each patch of the 1st row and column adds its range, Ui+1 = Ui + URange(i,1), etc. each patch gives range 1.: Ui = i-1, Vj = j-1 uniform parametrisation with global range [0,1])#") │ │ │ │ - .value("ShapeExtend_Natural",ShapeExtend_Parametrisation::ShapeExtend_Natural) │ │ │ │ - .value("ShapeExtend_Uniform",ShapeExtend_Parametrisation::ShapeExtend_Uniform) │ │ │ │ - .value("ShapeExtend_Unitary",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_ShapeExtend_ComplexCurve : public ShapeExtend_ComplexCurve{ │ │ │ │ public: │ │ │ │ using ShapeExtend_ComplexCurve::ShapeExtend_ComplexCurve; │ │ │ ├── ./usr/share/libocp/OCP/Standard.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -905,19 +905,19 @@ │ │ │ │ ( const handle & (Standard_Type::*)() const) static_cast< const handle & (Standard_Type::*)() const>(&Standard_Type::DynamicType), │ │ │ │ R"#()#" │ │ │ │ │ │ │ │ ) │ │ │ │ ; │ │ │ │ │ │ │ │ // functions │ │ │ │ -auto mopencascade = static_cast(m.attr("opencascade")); │ │ │ │ auto mMurmurHashUtils = static_cast(m.attr("MurmurHashUtils")); │ │ │ │ +auto mstd = static_cast(m.attr("std")); │ │ │ │ auto mMurmurHash = static_cast(m.attr("MurmurHash")); │ │ │ │ +auto mopencascade = static_cast(m.attr("opencascade")); │ │ │ │ auto mFNVHash = static_cast(m.attr("FNVHash")); │ │ │ │ -auto mstd = static_cast(m.attr("std")); │ │ │ │ │ │ │ │ // /usr/include/opencascade/Standard.hxx │ │ │ │ // /usr/include/opencascade/Standard_AbortiveTransaction.hxx │ │ │ │ // /usr/include/opencascade/Standard_ArrayStreamBuffer.hxx │ │ │ │ // /usr/include/opencascade/Standard_Assert.hxx │ │ │ │ m.def("Standard_ASSERT_DO_NOTHING", │ │ │ │ (void (*)()) static_cast(&Standard_ASSERT_DO_NOTHING), │ │ │ ├── ./usr/share/libocp/OCP/Standard_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -107,19 +107,19 @@ │ │ │ │ // Module definiiton │ │ │ │ void register_Standard_enums(py::module &main_module) { │ │ │ │ │ │ │ │ │ │ │ │ py::module m = main_module.def_submodule("Standard", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ -m.def_submodule("opencascade"); │ │ │ │ m.def_submodule("MurmurHashUtils"); │ │ │ │ +m.def_submodule("std"); │ │ │ │ m.def_submodule("MurmurHash"); │ │ │ │ +m.def_submodule("opencascade"); │ │ │ │ m.def_submodule("FNVHash"); │ │ │ │ -m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "Standard_HandlerStatus",R"#()#") │ │ │ │ .value("Standard_HandlerVoid",Standard_HandlerStatus::Standard_HandlerVoid) │ │ │ │ .value("Standard_HandlerJumped",Standard_HandlerStatus::Standard_HandlerJumped) │ │ │ ├── ./usr/share/libocp/OCP/StdSelect_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -51,32 +51,32 @@ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "StdSelect_TypeOfEdge",R"#(Provides values for different types of edges. These values are used to filter edges in frameworks inheriting StdSelect_EdgeFilter.)#") │ │ │ │ .value("StdSelect_AnyEdge",StdSelect_TypeOfEdge::StdSelect_AnyEdge) │ │ │ │ .value("StdSelect_Line",StdSelect_TypeOfEdge::StdSelect_Line) │ │ │ │ .value("StdSelect_Circle",StdSelect_TypeOfEdge::StdSelect_Circle).export_values(); │ │ │ │ - py::enum_(m, "StdSelect_TypeOfFace",R"#(Provides values for different types of faces. These values are used to filter faces in frameworks inheriting StdSelect_FaceFilter.)#") │ │ │ │ - .value("StdSelect_AnyFace",StdSelect_TypeOfFace::StdSelect_AnyFace) │ │ │ │ - .value("StdSelect_Plane",StdSelect_TypeOfFace::StdSelect_Plane) │ │ │ │ - .value("StdSelect_Cylinder",StdSelect_TypeOfFace::StdSelect_Cylinder) │ │ │ │ - .value("StdSelect_Sphere",StdSelect_TypeOfFace::StdSelect_Sphere) │ │ │ │ - .value("StdSelect_Torus",StdSelect_TypeOfFace::StdSelect_Torus) │ │ │ │ - .value("StdSelect_Revol",StdSelect_TypeOfFace::StdSelect_Revol) │ │ │ │ - .value("StdSelect_Cone",StdSelect_TypeOfFace::StdSelect_Cone).export_values(); │ │ │ │ py::enum_(m, "StdSelect_TypeOfSelectionImage",R"#(Type of output selection image.)#") │ │ │ │ .value("StdSelect_TypeOfSelectionImage_NormalizedDepth",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepth) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_NormalizedDepthInverted",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepthInverted) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_UnnormalizedDepth",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_UnnormalizedDepth) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredDetectedObject",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredDetectedObject) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredEntity",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntity) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredEntityType",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntityType) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredOwner",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredOwner) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredSelectionMode",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredSelectionMode) │ │ │ │ .value("StdSelect_TypeOfSelectionImage_SurfaceNormal",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_SurfaceNormal).export_values(); │ │ │ │ + py::enum_(m, "StdSelect_TypeOfFace",R"#(Provides values for different types of faces. These values are used to filter faces in frameworks inheriting StdSelect_FaceFilter.)#") │ │ │ │ + .value("StdSelect_AnyFace",StdSelect_TypeOfFace::StdSelect_AnyFace) │ │ │ │ + .value("StdSelect_Plane",StdSelect_TypeOfFace::StdSelect_Plane) │ │ │ │ + .value("StdSelect_Cylinder",StdSelect_TypeOfFace::StdSelect_Cylinder) │ │ │ │ + .value("StdSelect_Sphere",StdSelect_TypeOfFace::StdSelect_Sphere) │ │ │ │ + .value("StdSelect_Torus",StdSelect_TypeOfFace::StdSelect_Torus) │ │ │ │ + .value("StdSelect_Revol",StdSelect_TypeOfFace::StdSelect_Revol) │ │ │ │ + .value("StdSelect_Cone",StdSelect_TypeOfFace::StdSelect_Cone).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"StdSelect",R"#(The StdSelect package provides the following services - the definition of selection modes for topological shapes - the definition of several concrete filtertandard Selection2d.ap classes - 2D and 3D viewer selectors. Note that each new Interactive Object must have all its selection modes defined. Standard Classes is useful to build 3D Selectable Objects, and to process 3D Selections:)#"); │ │ │ │ py::class_ >(m,"StdSelect_BRepSelectionTool",R"#(Tool to create specific selections (sets of primitives) for Shapes from Topology. These Selections may be used in dynamic selection Mechanism Given a Shape and a mode of selection (selection of vertices, edges,faces ...) , This Tool Computes corresponding sensitive primitives, puts them in an entity called Selection (see package SelectMgr) and returns it.)#"); │ │ │ │ py::class_ , SelectMgr_EntityOwner >(m,"StdSelect_BRepOwner",R"#(Defines Specific Owners for Sensitive Primitives (Sensitive Segments,Circles...). Used in Dynamic Selection Mechanism. A BRepOwner has an Owner (the shape it represents) and Users (One or More Transient entities). The highlight-unhighlight methods are empty and must be redefined by each User.Defines Specific Owners for Sensitive Primitives (Sensitive Segments,Circles...). Used in Dynamic Selection Mechanism. A BRepOwner has an Owner (the shape it represents) and Users (One or More Transient entities). The highlight-unhighlight methods are empty and must be redefined by each User.)#"); │ │ │ ├── ./usr/share/libocp/OCP/StepBasic_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -411,35 +411,14 @@ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "StepBasic_AheadOrBehind",R"#()#") │ │ │ │ .value("StepBasic_aobAhead",StepBasic_AheadOrBehind::StepBasic_aobAhead) │ │ │ │ .value("StepBasic_aobExact",StepBasic_AheadOrBehind::StepBasic_aobExact) │ │ │ │ .value("StepBasic_aobBehind",StepBasic_AheadOrBehind::StepBasic_aobBehind).export_values(); │ │ │ │ - py::enum_(m, "StepBasic_Source",R"#()#") │ │ │ │ - .value("StepBasic_sMade",StepBasic_Source::StepBasic_sMade) │ │ │ │ - .value("StepBasic_sBought",StepBasic_Source::StepBasic_sBought) │ │ │ │ - .value("StepBasic_sNotKnown",StepBasic_Source::StepBasic_sNotKnown).export_values(); │ │ │ │ - py::enum_(m, "StepBasic_SiPrefix",R"#()#") │ │ │ │ - .value("StepBasic_spExa",StepBasic_SiPrefix::StepBasic_spExa) │ │ │ │ - .value("StepBasic_spPeta",StepBasic_SiPrefix::StepBasic_spPeta) │ │ │ │ - .value("StepBasic_spTera",StepBasic_SiPrefix::StepBasic_spTera) │ │ │ │ - .value("StepBasic_spGiga",StepBasic_SiPrefix::StepBasic_spGiga) │ │ │ │ - .value("StepBasic_spMega",StepBasic_SiPrefix::StepBasic_spMega) │ │ │ │ - .value("StepBasic_spKilo",StepBasic_SiPrefix::StepBasic_spKilo) │ │ │ │ - .value("StepBasic_spHecto",StepBasic_SiPrefix::StepBasic_spHecto) │ │ │ │ - .value("StepBasic_spDeca",StepBasic_SiPrefix::StepBasic_spDeca) │ │ │ │ - .value("StepBasic_spDeci",StepBasic_SiPrefix::StepBasic_spDeci) │ │ │ │ - .value("StepBasic_spCenti",StepBasic_SiPrefix::StepBasic_spCenti) │ │ │ │ - .value("StepBasic_spMilli",StepBasic_SiPrefix::StepBasic_spMilli) │ │ │ │ - .value("StepBasic_spMicro",StepBasic_SiPrefix::StepBasic_spMicro) │ │ │ │ - .value("StepBasic_spNano",StepBasic_SiPrefix::StepBasic_spNano) │ │ │ │ - .value("StepBasic_spPico",StepBasic_SiPrefix::StepBasic_spPico) │ │ │ │ - .value("StepBasic_spFemto",StepBasic_SiPrefix::StepBasic_spFemto) │ │ │ │ - .value("StepBasic_spAtto",StepBasic_SiPrefix::StepBasic_spAtto).export_values(); │ │ │ │ py::enum_(m, "StepBasic_SiUnitName",R"#()#") │ │ │ │ .value("StepBasic_sunMetre",StepBasic_SiUnitName::StepBasic_sunMetre) │ │ │ │ .value("StepBasic_sunGram",StepBasic_SiUnitName::StepBasic_sunGram) │ │ │ │ .value("StepBasic_sunSecond",StepBasic_SiUnitName::StepBasic_sunSecond) │ │ │ │ .value("StepBasic_sunAmpere",StepBasic_SiUnitName::StepBasic_sunAmpere) │ │ │ │ .value("StepBasic_sunKelvin",StepBasic_SiUnitName::StepBasic_sunKelvin) │ │ │ │ .value("StepBasic_sunMole",StepBasic_SiUnitName::StepBasic_sunMole) │ │ │ │ @@ -461,14 +440,35 @@ │ │ │ │ .value("StepBasic_sunHenry",StepBasic_SiUnitName::StepBasic_sunHenry) │ │ │ │ .value("StepBasic_sunDegreeCelsius",StepBasic_SiUnitName::StepBasic_sunDegreeCelsius) │ │ │ │ .value("StepBasic_sunLumen",StepBasic_SiUnitName::StepBasic_sunLumen) │ │ │ │ .value("StepBasic_sunLux",StepBasic_SiUnitName::StepBasic_sunLux) │ │ │ │ .value("StepBasic_sunBecquerel",StepBasic_SiUnitName::StepBasic_sunBecquerel) │ │ │ │ .value("StepBasic_sunGray",StepBasic_SiUnitName::StepBasic_sunGray) │ │ │ │ .value("StepBasic_sunSievert",StepBasic_SiUnitName::StepBasic_sunSievert).export_values(); │ │ │ │ + py::enum_(m, "StepBasic_Source",R"#()#") │ │ │ │ + .value("StepBasic_sMade",StepBasic_Source::StepBasic_sMade) │ │ │ │ + .value("StepBasic_sBought",StepBasic_Source::StepBasic_sBought) │ │ │ │ + .value("StepBasic_sNotKnown",StepBasic_Source::StepBasic_sNotKnown).export_values(); │ │ │ │ + py::enum_(m, "StepBasic_SiPrefix",R"#()#") │ │ │ │ + .value("StepBasic_spExa",StepBasic_SiPrefix::StepBasic_spExa) │ │ │ │ + .value("StepBasic_spPeta",StepBasic_SiPrefix::StepBasic_spPeta) │ │ │ │ + .value("StepBasic_spTera",StepBasic_SiPrefix::StepBasic_spTera) │ │ │ │ + .value("StepBasic_spGiga",StepBasic_SiPrefix::StepBasic_spGiga) │ │ │ │ + .value("StepBasic_spMega",StepBasic_SiPrefix::StepBasic_spMega) │ │ │ │ + .value("StepBasic_spKilo",StepBasic_SiPrefix::StepBasic_spKilo) │ │ │ │ + .value("StepBasic_spHecto",StepBasic_SiPrefix::StepBasic_spHecto) │ │ │ │ + .value("StepBasic_spDeca",StepBasic_SiPrefix::StepBasic_spDeca) │ │ │ │ + .value("StepBasic_spDeci",StepBasic_SiPrefix::StepBasic_spDeci) │ │ │ │ + .value("StepBasic_spCenti",StepBasic_SiPrefix::StepBasic_spCenti) │ │ │ │ + .value("StepBasic_spMilli",StepBasic_SiPrefix::StepBasic_spMilli) │ │ │ │ + .value("StepBasic_spMicro",StepBasic_SiPrefix::StepBasic_spMicro) │ │ │ │ + .value("StepBasic_spNano",StepBasic_SiPrefix::StepBasic_spNano) │ │ │ │ + .value("StepBasic_spPico",StepBasic_SiPrefix::StepBasic_spPico) │ │ │ │ + .value("StepBasic_spFemto",StepBasic_SiPrefix::StepBasic_spFemto) │ │ │ │ + .value("StepBasic_spAtto",StepBasic_SiPrefix::StepBasic_spAtto).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ , Standard_Transient >(m,"StepBasic_Action",R"#(Representation of STEP entity ActionRepresentation of STEP entity ActionRepresentation of STEP entity Action)#"); │ │ │ │ py::class_ , Standard_Transient >(m,"StepBasic_ActionAssignment",R"#(Representation of STEP entity ActionAssignmentRepresentation of STEP entity ActionAssignmentRepresentation of STEP entity ActionAssignment)#"); │ │ │ │ py::class_ , Standard_Transient >(m,"StepBasic_ActionMethod",R"#(Representation of STEP entity ActionMethodRepresentation of STEP entity ActionMethodRepresentation of STEP entity ActionMethod)#"); │ │ │ ├── ./usr/share/libocp/OCP/StepDimTol_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -199,43 +199,14 @@ │ │ │ │ py::module m = main_module.def_submodule("StepDimTol", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "StepDimTol_GeometricToleranceType",R"#()#") │ │ │ │ - .value("StepDimTol_GTTAngularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTAngularityTolerance) │ │ │ │ - .value("StepDimTol_GTTCircularRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCircularRunoutTolerance) │ │ │ │ - .value("StepDimTol_GTTCoaxialityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCoaxialityTolerance) │ │ │ │ - .value("StepDimTol_GTTConcentricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTConcentricityTolerance) │ │ │ │ - .value("StepDimTol_GTTCylindricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCylindricityTolerance) │ │ │ │ - .value("StepDimTol_GTTFlatnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTFlatnessTolerance) │ │ │ │ - .value("StepDimTol_GTTLineProfileTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTLineProfileTolerance) │ │ │ │ - .value("StepDimTol_GTTParallelismTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTParallelismTolerance) │ │ │ │ - .value("StepDimTol_GTTPerpendicularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPerpendicularityTolerance) │ │ │ │ - .value("StepDimTol_GTTPositionTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPositionTolerance) │ │ │ │ - .value("StepDimTol_GTTRoundnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTRoundnessTolerance) │ │ │ │ - .value("StepDimTol_GTTStraightnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTStraightnessTolerance) │ │ │ │ - .value("StepDimTol_GTTSurfaceProfileTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSurfaceProfileTolerance) │ │ │ │ - .value("StepDimTol_GTTSymmetryTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSymmetryTolerance) │ │ │ │ - .value("StepDimTol_GTTTotalRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTTotalRunoutTolerance).export_values(); │ │ │ │ - py::enum_(m, "StepDimTol_AreaUnitType",R"#()#") │ │ │ │ - .value("StepDimTol_Circular",StepDimTol_AreaUnitType::StepDimTol_Circular) │ │ │ │ - .value("StepDimTol_Rectangular",StepDimTol_AreaUnitType::StepDimTol_Rectangular) │ │ │ │ - .value("StepDimTol_Square",StepDimTol_AreaUnitType::StepDimTol_Square).export_values(); │ │ │ │ - py::enum_(m, "StepDimTol_DatumReferenceModifierType",R"#()#") │ │ │ │ - .value("StepDimTol_CircularOrCylindrical",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical) │ │ │ │ - .value("StepDimTol_Distance",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance) │ │ │ │ - .value("StepDimTol_Projected",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected) │ │ │ │ - .value("StepDimTol_Spherical",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values(); │ │ │ │ - py::enum_(m, "StepDimTol_LimitCondition",R"#()#") │ │ │ │ - .value("StepDimTol_MaximumMaterialCondition",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition) │ │ │ │ - .value("StepDimTol_LeastMaterialCondition",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition) │ │ │ │ - .value("StepDimTol_RegardlessOfFeatureSize",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values(); │ │ │ │ py::enum_(m, "StepDimTol_SimpleDatumReferenceModifier",R"#()#") │ │ │ │ .value("StepDimTol_SDRMAnyCrossSection",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMAnyCrossSection) │ │ │ │ .value("StepDimTol_SDRMAnyLongitudinalSection",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMAnyLongitudinalSection) │ │ │ │ .value("StepDimTol_SDRMBasic",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMBasic) │ │ │ │ .value("StepDimTol_SDRMContactingFeature",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMContactingFeature) │ │ │ │ .value("StepDimTol_SDRMDegreeOfFreedomConstraintU",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMDegreeOfFreedomConstraintU) │ │ │ │ .value("StepDimTol_SDRMDegreeOfFreedomConstraintV",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMDegreeOfFreedomConstraintV) │ │ │ │ @@ -251,14 +222,19 @@ │ │ │ │ .value("StepDimTol_SDRMMaximumMaterialRequirement",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMaximumMaterialRequirement) │ │ │ │ .value("StepDimTol_SDRMMinorDiameter",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMinorDiameter) │ │ │ │ .value("StepDimTol_SDRMOrientation",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMOrientation) │ │ │ │ .value("StepDimTol_SDRMPitchDiameter",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPitchDiameter) │ │ │ │ .value("StepDimTol_SDRMPlane",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPlane) │ │ │ │ .value("StepDimTol_SDRMPoint",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPoint) │ │ │ │ .value("StepDimTol_SDRMTranslation",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMTranslation).export_values(); │ │ │ │ + py::enum_(m, "StepDimTol_DatumReferenceModifierType",R"#()#") │ │ │ │ + .value("StepDimTol_CircularOrCylindrical",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical) │ │ │ │ + .value("StepDimTol_Distance",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance) │ │ │ │ + .value("StepDimTol_Projected",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected) │ │ │ │ + .value("StepDimTol_Spherical",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values(); │ │ │ │ py::enum_(m, "StepDimTol_GeometricToleranceModifier",R"#()#") │ │ │ │ .value("StepDimTol_GTMAnyCrossSection",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMAnyCrossSection) │ │ │ │ .value("StepDimTol_GTMCommonZone",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMCommonZone) │ │ │ │ .value("StepDimTol_GTMEachRadialElement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMEachRadialElement) │ │ │ │ .value("StepDimTol_GTMFreeState",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMFreeState) │ │ │ │ .value("StepDimTol_GTMLeastMaterialRequirement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLeastMaterialRequirement) │ │ │ │ .value("StepDimTol_GTMLineElement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLineElement) │ │ │ │ @@ -267,14 +243,38 @@ │ │ │ │ .value("StepDimTol_GTMMinorDiameter",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMinorDiameter) │ │ │ │ .value("StepDimTol_GTMNotConvex",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMNotConvex) │ │ │ │ .value("StepDimTol_GTMPitchDiameter",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMPitchDiameter) │ │ │ │ .value("StepDimTol_GTMReciprocityRequirement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMReciprocityRequirement) │ │ │ │ .value("StepDimTol_GTMSeparateRequirement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMSeparateRequirement) │ │ │ │ .value("StepDimTol_GTMStatisticalTolerance",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMStatisticalTolerance) │ │ │ │ .value("StepDimTol_GTMTangentPlane",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMTangentPlane).export_values(); │ │ │ │ + py::enum_(m, "StepDimTol_AreaUnitType",R"#()#") │ │ │ │ + .value("StepDimTol_Circular",StepDimTol_AreaUnitType::StepDimTol_Circular) │ │ │ │ + .value("StepDimTol_Rectangular",StepDimTol_AreaUnitType::StepDimTol_Rectangular) │ │ │ │ + .value("StepDimTol_Square",StepDimTol_AreaUnitType::StepDimTol_Square).export_values(); │ │ │ │ + py::enum_(m, "StepDimTol_GeometricToleranceType",R"#()#") │ │ │ │ + .value("StepDimTol_GTTAngularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTAngularityTolerance) │ │ │ │ + .value("StepDimTol_GTTCircularRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCircularRunoutTolerance) │ │ │ │ + .value("StepDimTol_GTTCoaxialityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCoaxialityTolerance) │ │ │ │ + .value("StepDimTol_GTTConcentricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTConcentricityTolerance) │ │ │ │ + .value("StepDimTol_GTTCylindricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCylindricityTolerance) │ │ │ │ + .value("StepDimTol_GTTFlatnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTFlatnessTolerance) │ │ │ │ + .value("StepDimTol_GTTLineProfileTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTLineProfileTolerance) │ │ │ │ + .value("StepDimTol_GTTParallelismTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTParallelismTolerance) │ │ │ │ + .value("StepDimTol_GTTPerpendicularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPerpendicularityTolerance) │ │ │ │ + .value("StepDimTol_GTTPositionTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPositionTolerance) │ │ │ │ + .value("StepDimTol_GTTRoundnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTRoundnessTolerance) │ │ │ │ + .value("StepDimTol_GTTStraightnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTStraightnessTolerance) │ │ │ │ + .value("StepDimTol_GTTSurfaceProfileTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSurfaceProfileTolerance) │ │ │ │ + .value("StepDimTol_GTTSymmetryTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSymmetryTolerance) │ │ │ │ + .value("StepDimTol_GTTTotalRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTTotalRunoutTolerance).export_values(); │ │ │ │ + py::enum_(m, "StepDimTol_LimitCondition",R"#()#") │ │ │ │ + .value("StepDimTol_MaximumMaterialCondition",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition) │ │ │ │ + .value("StepDimTol_LeastMaterialCondition",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition) │ │ │ │ + .value("StepDimTol_RegardlessOfFeatureSize",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReference"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReferenceCompartment"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReferenceElement"); │ │ │ ├── ./usr/share/libocp/OCP/StepElement_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -150,57 +150,57 @@ │ │ │ │ py::module m = main_module.def_submodule("StepElement", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "StepElement_EnumeratedCurveElementFreedom",R"#()#") │ │ │ │ - .value("StepElement_XTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_XTranslation) │ │ │ │ - .value("StepElement_YTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_YTranslation) │ │ │ │ - .value("StepElement_ZTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZTranslation) │ │ │ │ - .value("StepElement_XRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_XRotation) │ │ │ │ - .value("StepElement_YRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_YRotation) │ │ │ │ - .value("StepElement_ZRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZRotation) │ │ │ │ - .value("StepElement_Warp",StepElement_EnumeratedCurveElementFreedom::StepElement_Warp) │ │ │ │ - .value("StepElement_None",StepElement_EnumeratedCurveElementFreedom::StepElement_None).export_values(); │ │ │ │ - py::enum_(m, "StepElement_EnumeratedSurfaceElementPurpose",R"#()#") │ │ │ │ - .value("StepElement_MembraneDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneDirect) │ │ │ │ - .value("StepElement_MembraneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneShear) │ │ │ │ - .value("StepElement_BendingDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingDirect) │ │ │ │ - .value("StepElement_BendingTorsion",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingTorsion) │ │ │ │ - .value("StepElement_NormalToPlaneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_NormalToPlaneShear).export_values(); │ │ │ │ py::enum_(m, "StepElement_UnspecifiedValue",R"#()#") │ │ │ │ .value("StepElement_Unspecified",StepElement_UnspecifiedValue::StepElement_Unspecified).export_values(); │ │ │ │ - py::enum_(m, "StepElement_Element2dShape",R"#()#") │ │ │ │ - .value("StepElement_Quadrilateral",StepElement_Element2dShape::StepElement_Quadrilateral) │ │ │ │ - .value("StepElement_Triangle",StepElement_Element2dShape::StepElement_Triangle).export_values(); │ │ │ │ - py::enum_(m, "StepElement_ElementVolume",R"#()#") │ │ │ │ - .value("StepElement_Volume",StepElement_ElementVolume::StepElement_Volume).export_values(); │ │ │ │ + py::enum_(m, "StepElement_ElementOrder",R"#()#") │ │ │ │ + .value("StepElement_Linear",StepElement_ElementOrder::StepElement_Linear) │ │ │ │ + .value("StepElement_Quadratic",StepElement_ElementOrder::StepElement_Quadratic) │ │ │ │ + .value("StepElement_Cubic",StepElement_ElementOrder::StepElement_Cubic).export_values(); │ │ │ │ + py::enum_(m, "StepElement_EnumeratedVolumeElementPurpose",R"#()#") │ │ │ │ + .value("StepElement_StressDisplacement",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values(); │ │ │ │ + py::enum_(m, "StepElement_Volume3dElementShape",R"#()#") │ │ │ │ + .value("StepElement_Hexahedron",StepElement_Volume3dElementShape::StepElement_Hexahedron) │ │ │ │ + .value("StepElement_Wedge",StepElement_Volume3dElementShape::StepElement_Wedge) │ │ │ │ + .value("StepElement_Tetrahedron",StepElement_Volume3dElementShape::StepElement_Tetrahedron) │ │ │ │ + .value("StepElement_Pyramid",StepElement_Volume3dElementShape::StepElement_Pyramid).export_values(); │ │ │ │ py::enum_(m, "StepElement_EnumeratedCurveElementPurpose",R"#()#") │ │ │ │ .value("StepElement_Axial",StepElement_EnumeratedCurveElementPurpose::StepElement_Axial) │ │ │ │ .value("StepElement_YYBending",StepElement_EnumeratedCurveElementPurpose::StepElement_YYBending) │ │ │ │ .value("StepElement_ZZBending",StepElement_EnumeratedCurveElementPurpose::StepElement_ZZBending) │ │ │ │ .value("StepElement_Torsion",StepElement_EnumeratedCurveElementPurpose::StepElement_Torsion) │ │ │ │ .value("StepElement_XYShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XYShear) │ │ │ │ .value("StepElement_XZShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XZShear) │ │ │ │ .value("StepElement_Warping",StepElement_EnumeratedCurveElementPurpose::StepElement_Warping).export_values(); │ │ │ │ - py::enum_(m, "StepElement_Volume3dElementShape",R"#()#") │ │ │ │ - .value("StepElement_Hexahedron",StepElement_Volume3dElementShape::StepElement_Hexahedron) │ │ │ │ - .value("StepElement_Wedge",StepElement_Volume3dElementShape::StepElement_Wedge) │ │ │ │ - .value("StepElement_Tetrahedron",StepElement_Volume3dElementShape::StepElement_Tetrahedron) │ │ │ │ - .value("StepElement_Pyramid",StepElement_Volume3dElementShape::StepElement_Pyramid).export_values(); │ │ │ │ - py::enum_(m, "StepElement_EnumeratedVolumeElementPurpose",R"#()#") │ │ │ │ - .value("StepElement_StressDisplacement",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values(); │ │ │ │ - py::enum_(m, "StepElement_ElementOrder",R"#()#") │ │ │ │ - .value("StepElement_Linear",StepElement_ElementOrder::StepElement_Linear) │ │ │ │ - .value("StepElement_Quadratic",StepElement_ElementOrder::StepElement_Quadratic) │ │ │ │ - .value("StepElement_Cubic",StepElement_ElementOrder::StepElement_Cubic).export_values(); │ │ │ │ + py::enum_(m, "StepElement_EnumeratedSurfaceElementPurpose",R"#()#") │ │ │ │ + .value("StepElement_MembraneDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneDirect) │ │ │ │ + .value("StepElement_MembraneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneShear) │ │ │ │ + .value("StepElement_BendingDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingDirect) │ │ │ │ + .value("StepElement_BendingTorsion",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingTorsion) │ │ │ │ + .value("StepElement_NormalToPlaneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_NormalToPlaneShear).export_values(); │ │ │ │ + py::enum_(m, "StepElement_ElementVolume",R"#()#") │ │ │ │ + .value("StepElement_Volume",StepElement_ElementVolume::StepElement_Volume).export_values(); │ │ │ │ + py::enum_(m, "StepElement_EnumeratedCurveElementFreedom",R"#()#") │ │ │ │ + .value("StepElement_XTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_XTranslation) │ │ │ │ + .value("StepElement_YTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_YTranslation) │ │ │ │ + .value("StepElement_ZTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZTranslation) │ │ │ │ + .value("StepElement_XRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_XRotation) │ │ │ │ + .value("StepElement_YRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_YRotation) │ │ │ │ + .value("StepElement_ZRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZRotation) │ │ │ │ + .value("StepElement_Warp",StepElement_EnumeratedCurveElementFreedom::StepElement_Warp) │ │ │ │ + .value("StepElement_None",StepElement_EnumeratedCurveElementFreedom::StepElement_None).export_values(); │ │ │ │ py::enum_(m, "StepElement_CurveEdge",R"#()#") │ │ │ │ .value("StepElement_ElementEdge",StepElement_CurveEdge::StepElement_ElementEdge).export_values(); │ │ │ │ + py::enum_(m, "StepElement_Element2dShape",R"#()#") │ │ │ │ + .value("StepElement_Quadrilateral",StepElement_Element2dShape::StepElement_Quadrilateral) │ │ │ │ + .value("StepElement_Triangle",StepElement_Element2dShape::StepElement_Triangle).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ , Standard_Transient >(m,"StepElement_AnalysisItemWithinRepresentation",R"#(Representation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentation)#"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepElement_Array1OfCurveElementEndReleasePacket"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepElement_Array1OfCurveElementSectionDefinition"); │ │ │ ├── ./usr/share/libocp/OCP/StepFEA_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -225,18 +225,18 @@ │ │ │ │ .value("StepFEA_XTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XTranslation) │ │ │ │ .value("StepFEA_YTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YTranslation) │ │ │ │ .value("StepFEA_ZTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZTranslation) │ │ │ │ .value("StepFEA_XRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XRotation) │ │ │ │ .value("StepFEA_YRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YRotation) │ │ │ │ .value("StepFEA_ZRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZRotation) │ │ │ │ .value("StepFEA_Warp",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_Warp).export_values(); │ │ │ │ - py::enum_(m, "StepFEA_CurveEdge",R"#()#") │ │ │ │ - .value("StepFEA_ElementEdge",StepFEA_CurveEdge::StepFEA_ElementEdge).export_values(); │ │ │ │ py::enum_(m, "StepFEA_ElementVolume",R"#()#") │ │ │ │ .value("StepFEA_Volume",StepFEA_ElementVolume::StepFEA_Volume).export_values(); │ │ │ │ + py::enum_(m, "StepFEA_CurveEdge",R"#()#") │ │ │ │ + .value("StepFEA_ElementEdge",StepFEA_CurveEdge::StepFEA_ElementEdge).export_values(); │ │ │ │ py::enum_(m, "StepFEA_UnspecifiedValue",R"#()#") │ │ │ │ .value("StepFEA_Unspecified",StepFEA_UnspecifiedValue::StepFEA_Unspecified).export_values(); │ │ │ │ py::enum_(m, "StepFEA_CoordinateSystemType",R"#()#") │ │ │ │ .value("StepFEA_Cartesian",StepFEA_CoordinateSystemType::StepFEA_Cartesian) │ │ │ │ .value("StepFEA_Cylindrical",StepFEA_CoordinateSystemType::StepFEA_Cylindrical) │ │ │ │ .value("StepFEA_Spherical",StepFEA_CoordinateSystemType::StepFEA_Spherical).export_values(); │ │ │ ├── ./usr/share/libocp/OCP/StepGeom_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -305,21 +305,30 @@ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "StepGeom_TrimmingPreference",R"#()#") │ │ │ │ .value("StepGeom_tpCartesian",StepGeom_TrimmingPreference::StepGeom_tpCartesian) │ │ │ │ .value("StepGeom_tpParameter",StepGeom_TrimmingPreference::StepGeom_tpParameter) │ │ │ │ .value("StepGeom_tpUnspecified",StepGeom_TrimmingPreference::StepGeom_tpUnspecified).export_values(); │ │ │ │ + py::enum_(m, "StepGeom_PreferredSurfaceCurveRepresentation",R"#()#") │ │ │ │ + .value("StepGeom_pscrCurve3d",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrCurve3d) │ │ │ │ + .value("StepGeom_pscrPcurveS1",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS1) │ │ │ │ + .value("StepGeom_pscrPcurveS2",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS2).export_values(); │ │ │ │ py::enum_(m, "StepGeom_BSplineCurveForm",R"#()#") │ │ │ │ .value("StepGeom_bscfPolylineForm",StepGeom_BSplineCurveForm::StepGeom_bscfPolylineForm) │ │ │ │ .value("StepGeom_bscfCircularArc",StepGeom_BSplineCurveForm::StepGeom_bscfCircularArc) │ │ │ │ .value("StepGeom_bscfEllipticArc",StepGeom_BSplineCurveForm::StepGeom_bscfEllipticArc) │ │ │ │ .value("StepGeom_bscfParabolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfParabolicArc) │ │ │ │ .value("StepGeom_bscfHyperbolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfHyperbolicArc) │ │ │ │ .value("StepGeom_bscfUnspecified",StepGeom_BSplineCurveForm::StepGeom_bscfUnspecified).export_values(); │ │ │ │ + py::enum_(m, "StepGeom_TransitionCode",R"#()#") │ │ │ │ + .value("StepGeom_tcDiscontinuous",StepGeom_TransitionCode::StepGeom_tcDiscontinuous) │ │ │ │ + .value("StepGeom_tcContinuous",StepGeom_TransitionCode::StepGeom_tcContinuous) │ │ │ │ + .value("StepGeom_tcContSameGradient",StepGeom_TransitionCode::StepGeom_tcContSameGradient) │ │ │ │ + .value("StepGeom_tcContSameGradientSameCurvature",StepGeom_TransitionCode::StepGeom_tcContSameGradientSameCurvature).export_values(); │ │ │ │ py::enum_(m, "StepGeom_BSplineSurfaceForm",R"#()#") │ │ │ │ .value("StepGeom_bssfPlaneSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfPlaneSurf) │ │ │ │ .value("StepGeom_bssfCylindricalSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfCylindricalSurf) │ │ │ │ .value("StepGeom_bssfConicalSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfConicalSurf) │ │ │ │ .value("StepGeom_bssfSphericalSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfSphericalSurf) │ │ │ │ .value("StepGeom_bssfToroidalSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfToroidalSurf) │ │ │ │ .value("StepGeom_bssfSurfOfRevolution",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfRevolution) │ │ │ │ @@ -329,23 +338,14 @@ │ │ │ │ .value("StepGeom_bssfSurfOfLinearExtrusion",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfLinearExtrusion) │ │ │ │ .value("StepGeom_bssfUnspecified",StepGeom_BSplineSurfaceForm::StepGeom_bssfUnspecified).export_values(); │ │ │ │ py::enum_(m, "StepGeom_KnotType",R"#()#") │ │ │ │ .value("StepGeom_ktUniformKnots",StepGeom_KnotType::StepGeom_ktUniformKnots) │ │ │ │ .value("StepGeom_ktUnspecified",StepGeom_KnotType::StepGeom_ktUnspecified) │ │ │ │ .value("StepGeom_ktQuasiUniformKnots",StepGeom_KnotType::StepGeom_ktQuasiUniformKnots) │ │ │ │ .value("StepGeom_ktPiecewiseBezierKnots",StepGeom_KnotType::StepGeom_ktPiecewiseBezierKnots).export_values(); │ │ │ │ - py::enum_(m, "StepGeom_PreferredSurfaceCurveRepresentation",R"#()#") │ │ │ │ - .value("StepGeom_pscrCurve3d",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrCurve3d) │ │ │ │ - .value("StepGeom_pscrPcurveS1",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS1) │ │ │ │ - .value("StepGeom_pscrPcurveS2",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS2).export_values(); │ │ │ │ - py::enum_(m, "StepGeom_TransitionCode",R"#()#") │ │ │ │ - .value("StepGeom_tcDiscontinuous",StepGeom_TransitionCode::StepGeom_tcDiscontinuous) │ │ │ │ - .value("StepGeom_tcContinuous",StepGeom_TransitionCode::StepGeom_tcContinuous) │ │ │ │ - .value("StepGeom_tcContSameGradient",StepGeom_TransitionCode::StepGeom_tcContSameGradient) │ │ │ │ - .value("StepGeom_tcContSameGradientSameCurvature",StepGeom_TransitionCode::StepGeom_tcContSameGradientSameCurvature).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfBoundaryCurve"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfCartesianPoint"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfCompositeCurveSegment"); │ │ │ ├── ./usr/share/libocp/OCP/StepShape_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -315,22 +315,22 @@ │ │ │ │ py::module m = main_module.def_submodule("StepShape", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "StepShape_BooleanOperator",R"#()#") │ │ │ │ - .value("StepShape_boDifference",StepShape_BooleanOperator::StepShape_boDifference) │ │ │ │ - .value("StepShape_boIntersection",StepShape_BooleanOperator::StepShape_boIntersection) │ │ │ │ - .value("StepShape_boUnion",StepShape_BooleanOperator::StepShape_boUnion).export_values(); │ │ │ │ py::enum_(m, "StepShape_AngleRelator",R"#()#") │ │ │ │ .value("StepShape_Equal",StepShape_AngleRelator::StepShape_Equal) │ │ │ │ .value("StepShape_Large",StepShape_AngleRelator::StepShape_Large) │ │ │ │ .value("StepShape_Small",StepShape_AngleRelator::StepShape_Small).export_values(); │ │ │ │ + py::enum_(m, "StepShape_BooleanOperator",R"#()#") │ │ │ │ + .value("StepShape_boDifference",StepShape_BooleanOperator::StepShape_boDifference) │ │ │ │ + .value("StepShape_boIntersection",StepShape_BooleanOperator::StepShape_boIntersection) │ │ │ │ + .value("StepShape_boUnion",StepShape_BooleanOperator::StepShape_boUnion).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"StepShape_BooleanOperand",R"#()#"); │ │ │ │ py::class_ >(m,"StepShape_CsgSelect",R"#()#"); │ │ │ │ preregister_template_NCollection_Array1>(m,"StepShape_Array1OfConnectedEdgeSet"); │ │ │ ├── ./usr/share/libocp/OCP/StepToTopoDS_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -168,48 +168,48 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "StepToTopoDS_TranslateEdgeLoopError",R"#()#") │ │ │ │ - .value("StepToTopoDS_TranslateEdgeLoopDone",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone) │ │ │ │ - .value("StepToTopoDS_TranslateEdgeLoopOther",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values(); │ │ │ │ - py::enum_(m, "StepToTopoDS_GeometricToolError",R"#()#") │ │ │ │ - .value("StepToTopoDS_GeometricToolDone",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolDone) │ │ │ │ - .value("StepToTopoDS_GeometricToolIsDegenerated",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolIsDegenerated) │ │ │ │ - .value("StepToTopoDS_GeometricToolHasNoPCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolHasNoPCurve) │ │ │ │ - .value("StepToTopoDS_GeometricToolWrong3dParameters",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolWrong3dParameters) │ │ │ │ - .value("StepToTopoDS_GeometricToolNoProjectiOnCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolNoProjectiOnCurve) │ │ │ │ - .value("StepToTopoDS_GeometricToolOther",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolOther).export_values(); │ │ │ │ py::enum_(m, "StepToTopoDS_TranslateVertexLoopError",R"#()#") │ │ │ │ .value("StepToTopoDS_TranslateVertexLoopDone",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopDone) │ │ │ │ .value("StepToTopoDS_TranslateVertexLoopOther",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopOther).export_values(); │ │ │ │ - py::enum_(m, "StepToTopoDS_BuilderError",R"#()#") │ │ │ │ - .value("StepToTopoDS_BuilderDone",StepToTopoDS_BuilderError::StepToTopoDS_BuilderDone) │ │ │ │ - .value("StepToTopoDS_BuilderOther",StepToTopoDS_BuilderError::StepToTopoDS_BuilderOther).export_values(); │ │ │ │ - py::enum_(m, "StepToTopoDS_TranslateShellError",R"#()#") │ │ │ │ - .value("StepToTopoDS_TranslateShellDone",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellDone) │ │ │ │ - .value("StepToTopoDS_TranslateShellOther",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellOther).export_values(); │ │ │ │ py::enum_(m, "StepToTopoDS_TranslateFaceError",R"#()#") │ │ │ │ .value("StepToTopoDS_TranslateFaceDone",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceDone) │ │ │ │ .value("StepToTopoDS_TranslateFaceOther",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceOther).export_values(); │ │ │ │ - py::enum_(m, "StepToTopoDS_TranslateVertexError",R"#()#") │ │ │ │ - .value("StepToTopoDS_TranslateVertexDone",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexDone) │ │ │ │ - .value("StepToTopoDS_TranslateVertexOther",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexOther).export_values(); │ │ │ │ + py::enum_(m, "StepToTopoDS_BuilderError",R"#()#") │ │ │ │ + .value("StepToTopoDS_BuilderDone",StepToTopoDS_BuilderError::StepToTopoDS_BuilderDone) │ │ │ │ + .value("StepToTopoDS_BuilderOther",StepToTopoDS_BuilderError::StepToTopoDS_BuilderOther).export_values(); │ │ │ │ py::enum_(m, "StepToTopoDS_TranslateSolidError",R"#()#") │ │ │ │ .value("StepToTopoDS_TranslateSolidDone",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidDone) │ │ │ │ .value("StepToTopoDS_TranslateSolidOther",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidOther).export_values(); │ │ │ │ + py::enum_(m, "StepToTopoDS_TranslateVertexError",R"#()#") │ │ │ │ + .value("StepToTopoDS_TranslateVertexDone",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexDone) │ │ │ │ + .value("StepToTopoDS_TranslateVertexOther",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexOther).export_values(); │ │ │ │ py::enum_(m, "StepToTopoDS_TranslateEdgeError",R"#()#") │ │ │ │ .value("StepToTopoDS_TranslateEdgeDone",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeDone) │ │ │ │ .value("StepToTopoDS_TranslateEdgeOther",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeOther).export_values(); │ │ │ │ + py::enum_(m, "StepToTopoDS_TranslateShellError",R"#()#") │ │ │ │ + .value("StepToTopoDS_TranslateShellDone",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellDone) │ │ │ │ + .value("StepToTopoDS_TranslateShellOther",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellOther).export_values(); │ │ │ │ + py::enum_(m, "StepToTopoDS_TranslateEdgeLoopError",R"#()#") │ │ │ │ + .value("StepToTopoDS_TranslateEdgeLoopDone",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone) │ │ │ │ + .value("StepToTopoDS_TranslateEdgeLoopOther",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values(); │ │ │ │ py::enum_(m, "StepToTopoDS_TranslatePolyLoopError",R"#()#") │ │ │ │ .value("StepToTopoDS_TranslatePolyLoopDone",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopDone) │ │ │ │ .value("StepToTopoDS_TranslatePolyLoopOther",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopOther).export_values(); │ │ │ │ + py::enum_(m, "StepToTopoDS_GeometricToolError",R"#()#") │ │ │ │ + .value("StepToTopoDS_GeometricToolDone",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolDone) │ │ │ │ + .value("StepToTopoDS_GeometricToolIsDegenerated",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolIsDegenerated) │ │ │ │ + .value("StepToTopoDS_GeometricToolHasNoPCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolHasNoPCurve) │ │ │ │ + .value("StepToTopoDS_GeometricToolWrong3dParameters",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolWrong3dParameters) │ │ │ │ + .value("StepToTopoDS_GeometricToolNoProjectiOnCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolNoProjectiOnCurve) │ │ │ │ + .value("StepToTopoDS_GeometricToolOther",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolOther).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"StepToTopoDS",R"#(This package implements the mapping between AP214 Shape representation and CAS.CAD Shape Representation. The source schema is Part42 (which is included in AP214))#"); │ │ │ │ py::class_ >(m,"StepToTopoDS_GeometricTool",R"#(This class contains some algorithmic services specific to the mapping STEP to CAS.CADE)#"); │ │ │ │ py::class_ >(m,"StepToTopoDS_NMTool",R"#(Provides data to process non-manifold topology when reading from STEP.)#"); │ │ │ ├── ./usr/share/libocp/OCP/StepVisual_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -371,32 +371,32 @@ │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "StepVisual_ShadingSurfaceMethod",R"#()#") │ │ │ │ .value("StepVisual_ssmConstantShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmConstantShading) │ │ │ │ .value("StepVisual_ssmColourShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmColourShading) │ │ │ │ .value("StepVisual_ssmDotShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmDotShading) │ │ │ │ .value("StepVisual_ssmNormalShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmNormalShading).export_values(); │ │ │ │ + py::enum_(m, "StepVisual_NullStyle",R"#()#") │ │ │ │ + .value("StepVisual_Null",StepVisual_NullStyle::StepVisual_Null).export_values(); │ │ │ │ + py::enum_(m, "StepVisual_CentralOrParallel",R"#()#") │ │ │ │ + .value("StepVisual_copCentral",StepVisual_CentralOrParallel::StepVisual_copCentral) │ │ │ │ + .value("StepVisual_copParallel",StepVisual_CentralOrParallel::StepVisual_copParallel).export_values(); │ │ │ │ + py::enum_(m, "StepVisual_TextPath",R"#()#") │ │ │ │ + .value("StepVisual_tpUp",StepVisual_TextPath::StepVisual_tpUp) │ │ │ │ + .value("StepVisual_tpRight",StepVisual_TextPath::StepVisual_tpRight) │ │ │ │ + .value("StepVisual_tpDown",StepVisual_TextPath::StepVisual_tpDown) │ │ │ │ + .value("StepVisual_tpLeft",StepVisual_TextPath::StepVisual_tpLeft).export_values(); │ │ │ │ py::enum_(m, "StepVisual_MarkerType",R"#()#") │ │ │ │ .value("StepVisual_mtDot",StepVisual_MarkerType::StepVisual_mtDot) │ │ │ │ .value("StepVisual_mtX",StepVisual_MarkerType::StepVisual_mtX) │ │ │ │ .value("StepVisual_mtPlus",StepVisual_MarkerType::StepVisual_mtPlus) │ │ │ │ .value("StepVisual_mtAsterisk",StepVisual_MarkerType::StepVisual_mtAsterisk) │ │ │ │ .value("StepVisual_mtRing",StepVisual_MarkerType::StepVisual_mtRing) │ │ │ │ .value("StepVisual_mtSquare",StepVisual_MarkerType::StepVisual_mtSquare) │ │ │ │ .value("StepVisual_mtTriangle",StepVisual_MarkerType::StepVisual_mtTriangle).export_values(); │ │ │ │ - py::enum_(m, "StepVisual_NullStyle",R"#()#") │ │ │ │ - .value("StepVisual_Null",StepVisual_NullStyle::StepVisual_Null).export_values(); │ │ │ │ - py::enum_(m, "StepVisual_TextPath",R"#()#") │ │ │ │ - .value("StepVisual_tpUp",StepVisual_TextPath::StepVisual_tpUp) │ │ │ │ - .value("StepVisual_tpRight",StepVisual_TextPath::StepVisual_tpRight) │ │ │ │ - .value("StepVisual_tpDown",StepVisual_TextPath::StepVisual_tpDown) │ │ │ │ - .value("StepVisual_tpLeft",StepVisual_TextPath::StepVisual_tpLeft).export_values(); │ │ │ │ - py::enum_(m, "StepVisual_CentralOrParallel",R"#()#") │ │ │ │ - .value("StepVisual_copCentral",StepVisual_CentralOrParallel::StepVisual_copCentral) │ │ │ │ - .value("StepVisual_copParallel",StepVisual_CentralOrParallel::StepVisual_copParallel).export_values(); │ │ │ │ py::enum_(m, "StepVisual_SurfaceSide",R"#()#") │ │ │ │ .value("StepVisual_ssNegative",StepVisual_SurfaceSide::StepVisual_ssNegative) │ │ │ │ .value("StepVisual_ssPositive",StepVisual_SurfaceSide::StepVisual_ssPositive) │ │ │ │ .value("StepVisual_ssBoth",StepVisual_SurfaceSide::StepVisual_ssBoth).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ ├── ./usr/share/libocp/OCP/Storage_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -104,18 +104,14 @@ │ │ │ │ │ │ │ │ // enums │ │ │ │ py::enum_(m, "Storage_OpenMode",R"#(Specifies opening modes for a file: - Storage_VSNone : no mode is specified - Storage_VSRead : the file is open for reading operations - Storage_VSWrite : the file is open for writing operations - Storage_VSReadWrite : the file is open for both reading and writing operations.)#") │ │ │ │ .value("Storage_VSNone",Storage_OpenMode::Storage_VSNone) │ │ │ │ .value("Storage_VSRead",Storage_OpenMode::Storage_VSRead) │ │ │ │ .value("Storage_VSWrite",Storage_OpenMode::Storage_VSWrite) │ │ │ │ .value("Storage_VSReadWrite",Storage_OpenMode::Storage_VSReadWrite).export_values(); │ │ │ │ - py::enum_(m, "Storage_SolveMode",R"#()#") │ │ │ │ - .value("Storage_AddSolve",Storage_SolveMode::Storage_AddSolve) │ │ │ │ - .value("Storage_WriteSolve",Storage_SolveMode::Storage_WriteSolve) │ │ │ │ - .value("Storage_ReadSolve",Storage_SolveMode::Storage_ReadSolve).export_values(); │ │ │ │ py::enum_(m, "Storage_Error",R"#(Error codes returned by the ErrorStatus function on a Storage_Data set of data during a storage or retrieval operation : - Storage_VSOk : no problem has been detected - Storage_VSOpenError : an error has occurred when opening the driver - Storage_VSModeError : the driver has not been opened in the correct mode - Storage_VSCloseError : an error has occurred when closing the driver - Storage_VSAlreadyOpen : the driver is already open - Storage_VSNotOpen : the driver is not open - Storage_VSSectionNotFound : a section has not been found in the driver - Storage_VSWriteError : an error occurred when writing the driver - Storage_VSFormatError : the file format is wrong - Storage_VSUnknownType : a type is not known from the schema - Storage_VSTypeMismatch : trying to read a wrong type - Storage_VSInternalError : an internal error has been detected - Storage_VSExtCharParityError : an error has occurred while reading 16 bit character)#") │ │ │ │ .value("Storage_VSOk",Storage_Error::Storage_VSOk) │ │ │ │ .value("Storage_VSOpenError",Storage_Error::Storage_VSOpenError) │ │ │ │ .value("Storage_VSModeError",Storage_Error::Storage_VSModeError) │ │ │ │ .value("Storage_VSCloseError",Storage_Error::Storage_VSCloseError) │ │ │ │ .value("Storage_VSAlreadyOpen",Storage_Error::Storage_VSAlreadyOpen) │ │ │ │ .value("Storage_VSNotOpen",Storage_Error::Storage_VSNotOpen) │ │ │ │ @@ -123,14 +119,18 @@ │ │ │ │ .value("Storage_VSWriteError",Storage_Error::Storage_VSWriteError) │ │ │ │ .value("Storage_VSFormatError",Storage_Error::Storage_VSFormatError) │ │ │ │ .value("Storage_VSUnknownType",Storage_Error::Storage_VSUnknownType) │ │ │ │ .value("Storage_VSTypeMismatch",Storage_Error::Storage_VSTypeMismatch) │ │ │ │ .value("Storage_VSInternalError",Storage_Error::Storage_VSInternalError) │ │ │ │ .value("Storage_VSExtCharParityError",Storage_Error::Storage_VSExtCharParityError) │ │ │ │ .value("Storage_VSWrongFileDriver",Storage_Error::Storage_VSWrongFileDriver).export_values(); │ │ │ │ + py::enum_(m, "Storage_SolveMode",R"#()#") │ │ │ │ + .value("Storage_AddSolve",Storage_SolveMode::Storage_AddSolve) │ │ │ │ + .value("Storage_WriteSolve",Storage_SolveMode::Storage_WriteSolve) │ │ │ │ + .value("Storage_ReadSolve",Storage_SolveMode::Storage_ReadSolve).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Storage_BaseDriver : public Storage_BaseDriver{ │ │ │ │ public: │ │ │ │ using Storage_BaseDriver::Storage_BaseDriver; │ │ │ ├── ./usr/share/libocp/OCP/TDataXtd_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -90,23 +90,14 @@ │ │ │ │ py::module m = main_module.def_submodule("TDataXtd", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "TDataXtd_GeometryEnum",R"#(The terms of this enumeration define the types of geometric shapes available.)#") │ │ │ │ - .value("TDataXtd_ANY_GEOM",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM) │ │ │ │ - .value("TDataXtd_POINT",TDataXtd_GeometryEnum::TDataXtd_POINT) │ │ │ │ - .value("TDataXtd_LINE",TDataXtd_GeometryEnum::TDataXtd_LINE) │ │ │ │ - .value("TDataXtd_CIRCLE",TDataXtd_GeometryEnum::TDataXtd_CIRCLE) │ │ │ │ - .value("TDataXtd_ELLIPSE",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE) │ │ │ │ - .value("TDataXtd_SPLINE",TDataXtd_GeometryEnum::TDataXtd_SPLINE) │ │ │ │ - .value("TDataXtd_PLANE",TDataXtd_GeometryEnum::TDataXtd_PLANE) │ │ │ │ - .value("TDataXtd_CYLINDER",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values(); │ │ │ │ py::enum_(m, "TDataXtd_ConstraintEnum",R"#(The terms of this enumeration define the types of available constraint. ==================)#") │ │ │ │ .value("TDataXtd_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_RADIUS) │ │ │ │ .value("TDataXtd_DIAMETER",TDataXtd_ConstraintEnum::TDataXtd_DIAMETER) │ │ │ │ .value("TDataXtd_MINOR_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_MINOR_RADIUS) │ │ │ │ .value("TDataXtd_MAJOR_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_MAJOR_RADIUS) │ │ │ │ .value("TDataXtd_TANGENT",TDataXtd_ConstraintEnum::TDataXtd_TANGENT) │ │ │ │ .value("TDataXtd_PARALLEL",TDataXtd_ConstraintEnum::TDataXtd_PARALLEL) │ │ │ │ @@ -126,14 +117,23 @@ │ │ │ │ .value("TDataXtd_MATE",TDataXtd_ConstraintEnum::TDataXtd_MATE) │ │ │ │ .value("TDataXtd_ALIGN_FACES",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_FACES) │ │ │ │ .value("TDataXtd_ALIGN_AXES",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_AXES) │ │ │ │ .value("TDataXtd_AXES_ANGLE",TDataXtd_ConstraintEnum::TDataXtd_AXES_ANGLE) │ │ │ │ .value("TDataXtd_FACES_ANGLE",TDataXtd_ConstraintEnum::TDataXtd_FACES_ANGLE) │ │ │ │ .value("TDataXtd_ROUND",TDataXtd_ConstraintEnum::TDataXtd_ROUND) │ │ │ │ .value("TDataXtd_OFFSET",TDataXtd_ConstraintEnum::TDataXtd_OFFSET).export_values(); │ │ │ │ + py::enum_(m, "TDataXtd_GeometryEnum",R"#(The terms of this enumeration define the types of geometric shapes available.)#") │ │ │ │ + .value("TDataXtd_ANY_GEOM",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM) │ │ │ │ + .value("TDataXtd_POINT",TDataXtd_GeometryEnum::TDataXtd_POINT) │ │ │ │ + .value("TDataXtd_LINE",TDataXtd_GeometryEnum::TDataXtd_LINE) │ │ │ │ + .value("TDataXtd_CIRCLE",TDataXtd_GeometryEnum::TDataXtd_CIRCLE) │ │ │ │ + .value("TDataXtd_ELLIPSE",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE) │ │ │ │ + .value("TDataXtd_SPLINE",TDataXtd_GeometryEnum::TDataXtd_SPLINE) │ │ │ │ + .value("TDataXtd_PLANE",TDataXtd_GeometryEnum::TDataXtd_PLANE) │ │ │ │ + .value("TDataXtd_CYLINDER",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_TDataXtd_Pattern : public TDataXtd_Pattern{ │ │ │ │ public: │ │ │ │ using TDataXtd_Pattern::TDataXtd_Pattern; │ │ │ ├── ./usr/share/libocp/OCP/TNaming_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -166,34 +166,34 @@ │ │ │ │ py::module m = main_module.def_submodule("TNaming", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "TNaming_Evolution",R"#(Defines the type of evolution in old shape - new shape pairs. The definitions - in the form of the terms of the enumeration - are needed by the TNaming_NamedShape attribute and indicate what entities this attribute records as follows: - PRIMITIVE - New entities; in each pair, old shape is a null shape and new shape is a created entity. - GENERATED - Entities created from other entities; in each pair, old shape is the generator and new shape is the created entity. - MODIFY - Split or merged entities, in each pair, old shape is the entity before the operation and new shape is the new entity after the operation. - DELETE - Deletion of entities; in each pair, old shape is a deleted entity and new shape is null. - SELECTED - Named topological entities; in each pair, the new shape is a named entity and the old shape is not used.)#") │ │ │ │ - .value("TNaming_PRIMITIVE",TNaming_Evolution::TNaming_PRIMITIVE) │ │ │ │ - .value("TNaming_GENERATED",TNaming_Evolution::TNaming_GENERATED) │ │ │ │ - .value("TNaming_MODIFY",TNaming_Evolution::TNaming_MODIFY) │ │ │ │ - .value("TNaming_DELETE",TNaming_Evolution::TNaming_DELETE) │ │ │ │ - .value("TNaming_REPLACE",TNaming_Evolution::TNaming_REPLACE) │ │ │ │ - .value("TNaming_SELECTED",TNaming_Evolution::TNaming_SELECTED).export_values(); │ │ │ │ py::enum_(m, "TNaming_NameType",R"#(to store naming characteristcs)#") │ │ │ │ .value("TNaming_UNKNOWN",TNaming_NameType::TNaming_UNKNOWN) │ │ │ │ .value("TNaming_IDENTITY",TNaming_NameType::TNaming_IDENTITY) │ │ │ │ .value("TNaming_MODIFUNTIL",TNaming_NameType::TNaming_MODIFUNTIL) │ │ │ │ .value("TNaming_GENERATION",TNaming_NameType::TNaming_GENERATION) │ │ │ │ .value("TNaming_INTERSECTION",TNaming_NameType::TNaming_INTERSECTION) │ │ │ │ .value("TNaming_UNION",TNaming_NameType::TNaming_UNION) │ │ │ │ .value("TNaming_SUBSTRACTION",TNaming_NameType::TNaming_SUBSTRACTION) │ │ │ │ .value("TNaming_CONSTSHAPE",TNaming_NameType::TNaming_CONSTSHAPE) │ │ │ │ .value("TNaming_FILTERBYNEIGHBOURGS",TNaming_NameType::TNaming_FILTERBYNEIGHBOURGS) │ │ │ │ .value("TNaming_ORIENTATION",TNaming_NameType::TNaming_ORIENTATION) │ │ │ │ .value("TNaming_WIREIN",TNaming_NameType::TNaming_WIREIN) │ │ │ │ .value("TNaming_SHELLIN",TNaming_NameType::TNaming_SHELLIN).export_values(); │ │ │ │ + py::enum_(m, "TNaming_Evolution",R"#(Defines the type of evolution in old shape - new shape pairs. The definitions - in the form of the terms of the enumeration - are needed by the TNaming_NamedShape attribute and indicate what entities this attribute records as follows: - PRIMITIVE - New entities; in each pair, old shape is a null shape and new shape is a created entity. - GENERATED - Entities created from other entities; in each pair, old shape is the generator and new shape is the created entity. - MODIFY - Split or merged entities, in each pair, old shape is the entity before the operation and new shape is the new entity after the operation. - DELETE - Deletion of entities; in each pair, old shape is a deleted entity and new shape is null. - SELECTED - Named topological entities; in each pair, the new shape is a named entity and the old shape is not used.)#") │ │ │ │ + .value("TNaming_PRIMITIVE",TNaming_Evolution::TNaming_PRIMITIVE) │ │ │ │ + .value("TNaming_GENERATED",TNaming_Evolution::TNaming_GENERATED) │ │ │ │ + .value("TNaming_MODIFY",TNaming_Evolution::TNaming_MODIFY) │ │ │ │ + .value("TNaming_DELETE",TNaming_Evolution::TNaming_DELETE) │ │ │ │ + .value("TNaming_REPLACE",TNaming_Evolution::TNaming_REPLACE) │ │ │ │ + .value("TNaming_SELECTED",TNaming_Evolution::TNaming_SELECTED).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"TNaming",R"#(A topological attribute can be seen as a hook into the topological structure. To this hook, data can be attached and references defined. It is used for keeping and access to topological objects and their evolution. All topological objects are stored in the one user-protected TNaming_UsedShapes attribute at the root label of the data framework. This attribute contains map with all topological shapes, used in this document. To all other labels TNaming_NamedShape attribute can be added. This attribute contains references (hooks) to shapes from the TNaming_UsedShapes attribute and evolution of these shapes. TNaming_NamedShape attribute contains a set of pairs of hooks: old shape and new shape (see the figure below). It allows not only get the topological shapes by the labels, but also trace evolution of the shapes and correctly resolve dependent shapes by the changed one. If shape is just-created, then the old shape for accorded named shape is an empty shape. If a shape is deleted, then the new shape in this named shape is empty. Different algorithms may dispose sub-shapes of the result shape at the individual label depending on necessity: - If a sub-shape must have some extra attributes (material of each face or color of each edge). In this case a specific sub-shape is placed to the separate label (usually, sub-label of the result shape label) with all attributes of this sub-shape. - If topological naming is needed, a necessary and sufficient (for selected sub-shapes identification) set of sub-shapes is placed to the child labels of the result shape label. As usual, as far as basic solids and closed shells are concerned, all faces of the shape are disposed. Edges and vertices sub-shapes can be identified as intersection of contiguous faces. Modified/generated shapes may be placed to one named shape and identified as this named shape and source named shape that also can be identified with used algorithms. TNaming_NamedShape may contain a few pairs of hooks with the same evolution. In this case topology shape, which belongs to the named shape, is a compound of new shapes. The data model contains both the topology and the hooks, and functions handle both topological entities and hooks. Consider the case of a box function, which creates a solid with six faces and six hooks. Each hook is attached to a face. If you want, you can also have this function create hooks for edges and vertices as well as for faces. For the sake of simplicity though, let's limit the example. Not all functions can define explicit hooks for all topological entities they create, but all topological entities can be turned into hooks when necessary. This is where topological naming is necessary.)#"); │ │ │ │ py::class_ >(m,"TNaming_Builder",R"#(A tool to create and maintain topological attributes. Constructor creates an empty TNaming_NamedShape attribute at the given label. It allows adding "old shape" and "new shape" pairs with the specified evolution to this named shape. One evolution type per one builder must be used.)#"); │ │ │ │ py::class_ >(m,"TNaming_CopyShape",R"#()#"); │ │ │ ├── ./usr/share/libocp/OCP/TopAbs_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -34,14 +34,19 @@ │ │ │ │ py::module m = main_module.def_submodule("TopAbs", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "TopAbs_State",R"#(Identifies the position of a vertex or a set of vertices relative to a region of a shape. The figure shown above illustrates the states of vertices found in various parts of the edge relative to the face which it intersects.)#") │ │ │ │ + .value("TopAbs_IN",TopAbs_State::TopAbs_IN) │ │ │ │ + .value("TopAbs_OUT",TopAbs_State::TopAbs_OUT) │ │ │ │ + .value("TopAbs_ON",TopAbs_State::TopAbs_ON) │ │ │ │ + .value("TopAbs_UNKNOWN",TopAbs_State::TopAbs_UNKNOWN).export_values(); │ │ │ │ py::enum_(m, "TopAbs_Orientation",R"#(Identifies the orientation of a topological shape. Orientation can represent a relation between two entities, or it can apply to a shape in its own right. When used to describe a relation between two shapes, orientation allows you to use the underlying entity in either direction. For example on a curve which is oriented FORWARD (say from left to right) you can have both a FORWARD and a REVERSED edge. The FORWARD edge will be oriented from left to right, and the REVERSED edge from right to left. In this way, you share the underlying entity. In other words, two faces of a cube can share an edge, and can also be used to build compound shapes. For each case in which an element is used as the boundary of a geometric domain of a higher dimension, this element defines two local regions of which one is arbitrarily considered as the default region. A change in orientation implies a switch of default region. This allows you to apply changes of orientation to the shape as a whole.)#") │ │ │ │ .value("TopAbs_FORWARD",TopAbs_Orientation::TopAbs_FORWARD) │ │ │ │ .value("TopAbs_REVERSED",TopAbs_Orientation::TopAbs_REVERSED) │ │ │ │ .value("TopAbs_INTERNAL",TopAbs_Orientation::TopAbs_INTERNAL) │ │ │ │ .value("TopAbs_EXTERNAL",TopAbs_Orientation::TopAbs_EXTERNAL).export_values(); │ │ │ │ py::enum_(m, "TopAbs_ShapeEnum",R"#(Identifies various topological shapes. This enumeration allows you to use dynamic typing of shapes. The values are listed in order of complexity, from the most complex to the most simple i.e. COMPOUND > COMPSOLID > SOLID > .... > VERTEX > SHAPE. Any shape can contain simpler shapes in its definition. Abstract topological data structure describes a basic entity, the shape (present in this enumeration as the SHAPE value), which can be divided into the following component topologies: - COMPOUND: A group of any of the shapes below. - COMPSOLID: A set of solids connected by their faces. This expands the notions of WIRE and SHELL to solids. - SOLID: A part of 3D space bounded by shells. - SHELL: A set of faces connected by some of the edges of their wire boundaries. A shell can be open or closed. - FACE: Part of a plane (in 2D geometry) or a surface (in 3D geometry) bounded by a closed wire. Its geometry is constrained (trimmed) by contours. - WIRE: A sequence of edges connected by their vertices. It can be open or closed depending on whether the edges are linked or not. - EDGE: A single dimensional shape corresponding to a curve, and bound by a vertex at each extremity. - VERTEX: A zero-dimensional shape corresponding to a point in geometry.)#") │ │ │ │ .value("TopAbs_COMPOUND",TopAbs_ShapeEnum::TopAbs_COMPOUND) │ │ │ │ @@ -49,19 +54,14 @@ │ │ │ │ .value("TopAbs_SOLID",TopAbs_ShapeEnum::TopAbs_SOLID) │ │ │ │ .value("TopAbs_SHELL",TopAbs_ShapeEnum::TopAbs_SHELL) │ │ │ │ .value("TopAbs_FACE",TopAbs_ShapeEnum::TopAbs_FACE) │ │ │ │ .value("TopAbs_WIRE",TopAbs_ShapeEnum::TopAbs_WIRE) │ │ │ │ .value("TopAbs_EDGE",TopAbs_ShapeEnum::TopAbs_EDGE) │ │ │ │ .value("TopAbs_VERTEX",TopAbs_ShapeEnum::TopAbs_VERTEX) │ │ │ │ .value("TopAbs_SHAPE",TopAbs_ShapeEnum::TopAbs_SHAPE).export_values(); │ │ │ │ - py::enum_(m, "TopAbs_State",R"#(Identifies the position of a vertex or a set of vertices relative to a region of a shape. The figure shown above illustrates the states of vertices found in various parts of the edge relative to the face which it intersects.)#") │ │ │ │ - .value("TopAbs_IN",TopAbs_State::TopAbs_IN) │ │ │ │ - .value("TopAbs_OUT",TopAbs_State::TopAbs_OUT) │ │ │ │ - .value("TopAbs_ON",TopAbs_State::TopAbs_ON) │ │ │ │ - .value("TopAbs_UNKNOWN",TopAbs_State::TopAbs_UNKNOWN).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"TopAbs",R"#(This package gives resources for Topology oriented applications such as : Topological Data Structure, Topological Algorithms.)#"); │ │ │ │ │ │ │ │ }; │ │ │ ├── ./usr/share/libocp/OCP/TopOpeBRepDS_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -202,17 +202,14 @@ │ │ │ │ py::module m = main_module.def_submodule("TopOpeBRepDS", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "TopOpeBRepDS_CheckStatus",R"#()#") │ │ │ │ - .value("TopOpeBRepDS_OK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK) │ │ │ │ - .value("TopOpeBRepDS_NOK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values(); │ │ │ │ py::enum_(m, "TopOpeBRepDS_Kind",R"#(different types of objects in DataStructure)#") │ │ │ │ .value("TopOpeBRepDS_POINT",TopOpeBRepDS_Kind::TopOpeBRepDS_POINT) │ │ │ │ .value("TopOpeBRepDS_CURVE",TopOpeBRepDS_Kind::TopOpeBRepDS_CURVE) │ │ │ │ .value("TopOpeBRepDS_SURFACE",TopOpeBRepDS_Kind::TopOpeBRepDS_SURFACE) │ │ │ │ .value("TopOpeBRepDS_VERTEX",TopOpeBRepDS_Kind::TopOpeBRepDS_VERTEX) │ │ │ │ .value("TopOpeBRepDS_EDGE",TopOpeBRepDS_Kind::TopOpeBRepDS_EDGE) │ │ │ │ .value("TopOpeBRepDS_WIRE",TopOpeBRepDS_Kind::TopOpeBRepDS_WIRE) │ │ │ │ @@ -222,14 +219,17 @@ │ │ │ │ .value("TopOpeBRepDS_COMPSOLID",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPSOLID) │ │ │ │ .value("TopOpeBRepDS_COMPOUND",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPOUND) │ │ │ │ .value("TopOpeBRepDS_UNKNOWN",TopOpeBRepDS_Kind::TopOpeBRepDS_UNKNOWN).export_values(); │ │ │ │ py::enum_(m, "TopOpeBRepDS_Config",R"#()#") │ │ │ │ .value("TopOpeBRepDS_UNSHGEOMETRY",TopOpeBRepDS_Config::TopOpeBRepDS_UNSHGEOMETRY) │ │ │ │ .value("TopOpeBRepDS_SAMEORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_SAMEORIENTED) │ │ │ │ .value("TopOpeBRepDS_DIFFORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_DIFFORIENTED).export_values(); │ │ │ │ + py::enum_(m, "TopOpeBRepDS_CheckStatus",R"#()#") │ │ │ │ + .value("TopOpeBRepDS_OK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK) │ │ │ │ + .value("TopOpeBRepDS_NOK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"TopOpeBRepDS",R"#(This package provides services used by the TopOpeBRepBuild package performing topological operations on the BRep data structure.)#"); │ │ │ │ py::class_ >(m,"TopOpeBRepDS_BuildTool",R"#(Provides a Tool to build topologies. Used to instantiate the Builder algorithm.)#"); │ │ │ │ py::class_ >(m,"TopOpeBRepDS_Curve",R"#(A Geom curve and a tolerance.)#"); │ │ │ ├── ./usr/share/libocp/OCP/TopOpeBRep_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -146,30 +146,30 @@ │ │ │ │ py::module m = main_module.def_submodule("TopOpeBRep", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "TopOpeBRep_P2Dstatus",R"#()#") │ │ │ │ + .value("TopOpeBRep_P2DUNK",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DUNK) │ │ │ │ + .value("TopOpeBRep_P2DINT",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DINT) │ │ │ │ + .value("TopOpeBRep_P2DSGF",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGF) │ │ │ │ + .value("TopOpeBRep_P2DSGL",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGL) │ │ │ │ + .value("TopOpeBRep_P2DNEW",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DNEW).export_values(); │ │ │ │ py::enum_(m, "TopOpeBRep_TypeLineCurve",R"#()#") │ │ │ │ .value("TopOpeBRep_ANALYTIC",TopOpeBRep_TypeLineCurve::TopOpeBRep_ANALYTIC) │ │ │ │ .value("TopOpeBRep_RESTRICTION",TopOpeBRep_TypeLineCurve::TopOpeBRep_RESTRICTION) │ │ │ │ .value("TopOpeBRep_WALKING",TopOpeBRep_TypeLineCurve::TopOpeBRep_WALKING) │ │ │ │ .value("TopOpeBRep_LINE",TopOpeBRep_TypeLineCurve::TopOpeBRep_LINE) │ │ │ │ .value("TopOpeBRep_CIRCLE",TopOpeBRep_TypeLineCurve::TopOpeBRep_CIRCLE) │ │ │ │ .value("TopOpeBRep_ELLIPSE",TopOpeBRep_TypeLineCurve::TopOpeBRep_ELLIPSE) │ │ │ │ .value("TopOpeBRep_PARABOLA",TopOpeBRep_TypeLineCurve::TopOpeBRep_PARABOLA) │ │ │ │ .value("TopOpeBRep_HYPERBOLA",TopOpeBRep_TypeLineCurve::TopOpeBRep_HYPERBOLA) │ │ │ │ .value("TopOpeBRep_OTHERTYPE",TopOpeBRep_TypeLineCurve::TopOpeBRep_OTHERTYPE).export_values(); │ │ │ │ - py::enum_(m, "TopOpeBRep_P2Dstatus",R"#()#") │ │ │ │ - .value("TopOpeBRep_P2DUNK",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DUNK) │ │ │ │ - .value("TopOpeBRep_P2DINT",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DINT) │ │ │ │ - .value("TopOpeBRep_P2DSGF",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGF) │ │ │ │ - .value("TopOpeBRep_P2DSGL",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGL) │ │ │ │ - .value("TopOpeBRep_P2DNEW",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DNEW).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"TopOpeBRep",R"#(This package provides the topological operations on the BRep data structure.)#"); │ │ │ │ py::class_ >(m,"TopOpeBRep_Bipoint",R"#()#"); │ │ │ │ py::class_ >(m,"TopOpeBRep_DSFiller",R"#(Provides class methods to fill a datastructure with results of intersections.)#"); │ │ │ ├── ./usr/share/libocp/OCP/TopoDSToStep_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -122,39 +122,39 @@ │ │ │ │ py::module m = main_module.def_submodule("TopoDSToStep", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "TopoDSToStep_MakeVertexError",R"#()#") │ │ │ │ - .value("TopoDSToStep_VertexDone",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone) │ │ │ │ - .value("TopoDSToStep_VertexOther",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values(); │ │ │ │ py::enum_(m, "TopoDSToStep_BuilderError",R"#()#") │ │ │ │ .value("TopoDSToStep_BuilderDone",TopoDSToStep_BuilderError::TopoDSToStep_BuilderDone) │ │ │ │ .value("TopoDSToStep_NoFaceMapped",TopoDSToStep_BuilderError::TopoDSToStep_NoFaceMapped) │ │ │ │ .value("TopoDSToStep_BuilderOther",TopoDSToStep_BuilderError::TopoDSToStep_BuilderOther).export_values(); │ │ │ │ + py::enum_(m, "TopoDSToStep_MakeWireError",R"#()#") │ │ │ │ + .value("TopoDSToStep_WireDone",TopoDSToStep_MakeWireError::TopoDSToStep_WireDone) │ │ │ │ + .value("TopoDSToStep_NonManifoldWire",TopoDSToStep_MakeWireError::TopoDSToStep_NonManifoldWire) │ │ │ │ + .value("TopoDSToStep_WireOther",TopoDSToStep_MakeWireError::TopoDSToStep_WireOther).export_values(); │ │ │ │ py::enum_(m, "TopoDSToStep_FacetedError",R"#()#") │ │ │ │ .value("TopoDSToStep_FacetedDone",TopoDSToStep_FacetedError::TopoDSToStep_FacetedDone) │ │ │ │ .value("TopoDSToStep_SurfaceNotPlane",TopoDSToStep_FacetedError::TopoDSToStep_SurfaceNotPlane) │ │ │ │ .value("TopoDSToStep_PCurveNotLinear",TopoDSToStep_FacetedError::TopoDSToStep_PCurveNotLinear).export_values(); │ │ │ │ py::enum_(m, "TopoDSToStep_MakeFaceError",R"#()#") │ │ │ │ .value("TopoDSToStep_FaceDone",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceDone) │ │ │ │ .value("TopoDSToStep_InfiniteFace",TopoDSToStep_MakeFaceError::TopoDSToStep_InfiniteFace) │ │ │ │ .value("TopoDSToStep_NonManifoldFace",TopoDSToStep_MakeFaceError::TopoDSToStep_NonManifoldFace) │ │ │ │ .value("TopoDSToStep_NoWireMapped",TopoDSToStep_MakeFaceError::TopoDSToStep_NoWireMapped) │ │ │ │ .value("TopoDSToStep_FaceOther",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceOther).export_values(); │ │ │ │ + py::enum_(m, "TopoDSToStep_MakeVertexError",R"#()#") │ │ │ │ + .value("TopoDSToStep_VertexDone",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone) │ │ │ │ + .value("TopoDSToStep_VertexOther",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values(); │ │ │ │ py::enum_(m, "TopoDSToStep_MakeEdgeError",R"#()#") │ │ │ │ .value("TopoDSToStep_EdgeDone",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeDone) │ │ │ │ .value("TopoDSToStep_NonManifoldEdge",TopoDSToStep_MakeEdgeError::TopoDSToStep_NonManifoldEdge) │ │ │ │ .value("TopoDSToStep_EdgeOther",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeOther).export_values(); │ │ │ │ - py::enum_(m, "TopoDSToStep_MakeWireError",R"#()#") │ │ │ │ - .value("TopoDSToStep_WireDone",TopoDSToStep_MakeWireError::TopoDSToStep_WireDone) │ │ │ │ - .value("TopoDSToStep_NonManifoldWire",TopoDSToStep_MakeWireError::TopoDSToStep_NonManifoldWire) │ │ │ │ - .value("TopoDSToStep_WireOther",TopoDSToStep_MakeWireError::TopoDSToStep_WireOther).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"TopoDSToStep",R"#(This package implements the mapping between CAS.CAD Shape representation and AP214 Shape Representation. The target schema is pms_c4 (a subset of AP214))#"); │ │ │ │ py::class_ >(m,"TopoDSToStep_FacetedTool",R"#(This Tool Class provides Information about Faceted Shapes to be mapped to STEP.)#"); │ │ │ │ py::class_ >(m,"TopoDSToStep_Root",R"#(This class implements the common services for all classes of TopoDSToStep which report error.)#"); │ │ │ ├── ./usr/share/libocp/OCP/Transfer_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -139,29 +139,29 @@ │ │ │ │ py::module m = main_module.def_submodule("Transfer", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "Transfer_UndefMode",R"#(used on processing Undefined Entities (see TransferOutput))#") │ │ │ │ - .value("Transfer_UndefIgnore",Transfer_UndefMode::Transfer_UndefIgnore) │ │ │ │ - .value("Transfer_UndefFailure",Transfer_UndefMode::Transfer_UndefFailure) │ │ │ │ - .value("Transfer_UndefContent",Transfer_UndefMode::Transfer_UndefContent) │ │ │ │ - .value("Transfer_UndefUser",Transfer_UndefMode::Transfer_UndefUser).export_values(); │ │ │ │ py::enum_(m, "Transfer_StatusExec",R"#(execution status of an individual transfer (see Transcriptor))#") │ │ │ │ .value("Transfer_StatusInitial",Transfer_StatusExec::Transfer_StatusInitial) │ │ │ │ .value("Transfer_StatusRun",Transfer_StatusExec::Transfer_StatusRun) │ │ │ │ .value("Transfer_StatusDone",Transfer_StatusExec::Transfer_StatusDone) │ │ │ │ .value("Transfer_StatusError",Transfer_StatusExec::Transfer_StatusError) │ │ │ │ .value("Transfer_StatusLoop",Transfer_StatusExec::Transfer_StatusLoop).export_values(); │ │ │ │ py::enum_(m, "Transfer_StatusResult",R"#(result status of transferring an entity (see Transcriptor))#") │ │ │ │ .value("Transfer_StatusVoid",Transfer_StatusResult::Transfer_StatusVoid) │ │ │ │ .value("Transfer_StatusDefined",Transfer_StatusResult::Transfer_StatusDefined) │ │ │ │ .value("Transfer_StatusUsed",Transfer_StatusResult::Transfer_StatusUsed).export_values(); │ │ │ │ + py::enum_(m, "Transfer_UndefMode",R"#(used on processing Undefined Entities (see TransferOutput))#") │ │ │ │ + .value("Transfer_UndefIgnore",Transfer_UndefMode::Transfer_UndefIgnore) │ │ │ │ + .value("Transfer_UndefFailure",Transfer_UndefMode::Transfer_UndefFailure) │ │ │ │ + .value("Transfer_UndefContent",Transfer_UndefMode::Transfer_UndefContent) │ │ │ │ + .value("Transfer_UndefUser",Transfer_UndefMode::Transfer_UndefUser).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ class Py_Transfer_Binder : public Transfer_Binder{ │ │ │ │ public: │ │ │ │ using Transfer_Binder::Transfer_Binder; │ │ │ ├── ./usr/share/libocp/OCP/V3d_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -78,19 +78,14 @@ │ │ │ │ py::module m = main_module.def_submodule("V3d", R"#()#"); │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ - py::enum_(m, "V3d_StereoDumpOptions",R"#(Options to be used with image dumping. Notice that the value will have no effect with disabled stereo output.)#") │ │ │ │ - .value("V3d_SDO_MONO",V3d_StereoDumpOptions::V3d_SDO_MONO) │ │ │ │ - .value("V3d_SDO_LEFT_EYE",V3d_StereoDumpOptions::V3d_SDO_LEFT_EYE) │ │ │ │ - .value("V3d_SDO_RIGHT_EYE",V3d_StereoDumpOptions::V3d_SDO_RIGHT_EYE) │ │ │ │ - .value("V3d_SDO_BLENDED",V3d_StereoDumpOptions::V3d_SDO_BLENDED).export_values(); │ │ │ │ py::enum_(m, "V3d_TypeOfOrientation",R"#(Determines the type of orientation as a combination of standard DX/DY/DZ directions. This enumeration defines a model orientation looking towards the user's eye, which is an opposition to Camera main direction. For example, V3d_Xneg defines +X Camera main direction.)#") │ │ │ │ .value("V3d_Xpos",V3d_TypeOfOrientation::V3d_Xpos) │ │ │ │ .value("V3d_Ypos",V3d_TypeOfOrientation::V3d_Ypos) │ │ │ │ .value("V3d_Zpos",V3d_TypeOfOrientation::V3d_Zpos) │ │ │ │ .value("V3d_Xneg",V3d_TypeOfOrientation::V3d_Xneg) │ │ │ │ .value("V3d_Yneg",V3d_TypeOfOrientation::V3d_Yneg) │ │ │ │ .value("V3d_Zneg",V3d_TypeOfOrientation::V3d_Zneg) │ │ │ │ @@ -126,24 +121,29 @@ │ │ │ │ .value("V3d_TypeOfOrientation_Yup_AxoRight",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_AxoRight) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Front",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Front) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Back",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Back) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Top",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Top) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Bottom",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Bottom) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Left",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Left) │ │ │ │ .value("V3d_TypeOfOrientation_Yup_Right",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Right).export_values(); │ │ │ │ + py::enum_(m, "V3d_TypeOfAxe",R"#(Determines the axis type through the coordinates X, Y, Z.)#") │ │ │ │ + .value("V3d_X",V3d_TypeOfAxe::V3d_X) │ │ │ │ + .value("V3d_Y",V3d_TypeOfAxe::V3d_Y) │ │ │ │ + .value("V3d_Z",V3d_TypeOfAxe::V3d_Z).export_values(); │ │ │ │ py::enum_(m, "V3d_TypeOfView",R"#(Defines the type of projection of the view.)#") │ │ │ │ .value("V3d_ORTHOGRAPHIC",V3d_TypeOfView::V3d_ORTHOGRAPHIC) │ │ │ │ .value("V3d_PERSPECTIVE",V3d_TypeOfView::V3d_PERSPECTIVE).export_values(); │ │ │ │ py::enum_(m, "V3d_TypeOfVisualization",R"#(Determines the type of visualization in the view, either WIREFRAME or ZBUFFER (shading).)#") │ │ │ │ .value("V3d_WIREFRAME",V3d_TypeOfVisualization::V3d_WIREFRAME) │ │ │ │ .value("V3d_ZBUFFER",V3d_TypeOfVisualization::V3d_ZBUFFER).export_values(); │ │ │ │ - py::enum_(m, "V3d_TypeOfAxe",R"#(Determines the axis type through the coordinates X, Y, Z.)#") │ │ │ │ - .value("V3d_X",V3d_TypeOfAxe::V3d_X) │ │ │ │ - .value("V3d_Y",V3d_TypeOfAxe::V3d_Y) │ │ │ │ - .value("V3d_Z",V3d_TypeOfAxe::V3d_Z).export_values(); │ │ │ │ + py::enum_(m, "V3d_StereoDumpOptions",R"#(Options to be used with image dumping. Notice that the value will have no effect with disabled stereo output.)#") │ │ │ │ + .value("V3d_SDO_MONO",V3d_StereoDumpOptions::V3d_SDO_MONO) │ │ │ │ + .value("V3d_SDO_LEFT_EYE",V3d_StereoDumpOptions::V3d_SDO_LEFT_EYE) │ │ │ │ + .value("V3d_SDO_RIGHT_EYE",V3d_StereoDumpOptions::V3d_SDO_RIGHT_EYE) │ │ │ │ + .value("V3d_SDO_BLENDED",V3d_StereoDumpOptions::V3d_SDO_BLENDED).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"V3d",R"#(This package contains the set of commands and services of the 3D Viewer. It provides a set of high level commands to control the views and viewing modes.)#"); │ │ │ │ py::class_ >(m,"V3d_ImageDumpOptions",R"#(The structure defines options for image dump functionality.)#"); │ │ │ │ py::class_ , Graphic3d_CLight >(m,"V3d_AmbientLight",R"#(Creation of an ambient light source in a viewer.Creation of an ambient light source in a viewer.)#"); │ │ │ ├── ./usr/share/libocp/OCP/XCAFDimTolObjects_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -88,51 +88,43 @@ │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Perpendicularity",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Perpendicularity) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Position",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Position) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_ProfileOfLine",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfLine) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Straightness",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Straightness) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Symmetry",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Symmetry) │ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_TotalRunout",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_TotalRunout).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceZoneModif",R"#(Defines types of zone)#") │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_None",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_Projected",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_Runout",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceTypeValue",R"#(Defines types of value of tolerane)#") │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceTypeValue_None",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_None) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceTypeValue_Diameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_Diameter) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_ToleranceZoneAffectedPlane",R"#(Defines types of tolerance zone affected plane)#") │ │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_None",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None) │ │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection) │ │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceModif",R"#(Defines modifirs)#") │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Common_Zone",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Common_Zone) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Free_State",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Free_State) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Line_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Line_Element) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Major_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Major_Diameter) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Maximum_Material_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Maximum_Material_Requirement) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Minor_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Minor_Diameter) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Not_Convex",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Not_Convex) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_All_Around",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Around) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceModif_All_Over",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Over).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumTargetType",R"#(Defines types of dimension)#") │ │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Point",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point) │ │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Line",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line) │ │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Rectangle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle) │ │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Circle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle) │ │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Area",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumModifWithValue",R"#(Defines modifirs)#") │ │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_None",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None) │ │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical) │ │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Distance",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance) │ │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Projected",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected) │ │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Spherical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumSingleModif",R"#(Defines modifirs)#") │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_AnyCrossSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_AnyCrossSection) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Basic",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Basic) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_ContactingFeature",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_ContactingFeature) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DistanceVariable",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DistanceVariable) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_FreeState",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_FreeState) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Line",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Line) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MajorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MajorDiameter) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MinorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MinorDiameter) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Orientation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Orientation) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_PitchDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_PitchDiameter) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Plane",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Plane) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Point",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Point) │ │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Translation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Translation).export_values(); │ │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionFormVariance",R"#(Defines value of form variance)#") │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_None",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_None) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_A",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_A) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_B",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_B) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_C",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_C) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_CD",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_CD) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_D",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_D) │ │ │ │ @@ -155,29 +147,14 @@ │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_V",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_V) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_X",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_X) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_Y",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Y) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_Z",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Z) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZA",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZA) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZB",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZB) │ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZC",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZC).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_DimensionQualifier",R"#(Defines types of qualifier)#") │ │ │ │ - .value("XCAFDimTolObjects_DimensionQualifier_None",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_None) │ │ │ │ - .value("XCAFDimTolObjects_DimensionQualifier_Min",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Min) │ │ │ │ - .value("XCAFDimTolObjects_DimensionQualifier_Max",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Max) │ │ │ │ - .value("XCAFDimTolObjects_DimensionQualifier_Avg",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Avg).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceMatReqModif",R"#(Defines types of material requirement)#") │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_None",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_M",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M) │ │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_L",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumModifWithValue",R"#(Defines modifirs)#") │ │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_None",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None) │ │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical) │ │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Distance",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance) │ │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Projected",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected) │ │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Spherical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values(); │ │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionModif",R"#(Defines modifirs)#") │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_ControlledRadius",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ControlledRadius) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_Square",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Square) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_StatisticalTolerance",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_StatisticalTolerance) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_ContinuousFeature",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ContinuousFeature) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_TwoPointSize",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_TwoPointSize) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere) │ │ │ │ @@ -195,14 +172,18 @@ │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_RangeOfSizes",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_RangeOfSizes) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_AnyCrossSection",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyCrossSection) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_CommonTolerance",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_CommonTolerance) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_FreeStateCondition",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_FreeStateCondition) │ │ │ │ .value("XCAFDimTolObjects_DimensionModif_Between",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Between).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_ToleranceZoneAffectedPlane",R"#(Defines types of tolerance zone affected plane)#") │ │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_None",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None) │ │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection) │ │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values(); │ │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionGrade",R"#(Defines value of grade)#") │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT01",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT01) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT0",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT0) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT1",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT1) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT2",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT2) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT3",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT3) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT4",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT4) │ │ │ │ @@ -216,19 +197,61 @@ │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT12",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT12) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT13",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT13) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT14",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT14) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT15",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT15) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT16",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT16) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT17",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT17) │ │ │ │ .value("XCAFDimTolObjects_DimensionGrade_IT18",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT18).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceModif",R"#(Defines modifirs)#") │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Common_Zone",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Common_Zone) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Free_State",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Free_State) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Line_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Line_Element) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Major_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Major_Diameter) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Maximum_Material_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Maximum_Material_Requirement) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Minor_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Minor_Diameter) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Not_Convex",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Not_Convex) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_All_Around",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Around) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceModif_All_Over",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Over).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceZoneModif",R"#(Defines types of zone)#") │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_None",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_Projected",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_Runout",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceMatReqModif",R"#(Defines types of material requirement)#") │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_None",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_M",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_L",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceTypeValue",R"#(Defines types of value of tolerane)#") │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceTypeValue_None",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_None) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceTypeValue_Diameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_Diameter) │ │ │ │ + .value("XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter).export_values(); │ │ │ │ py::enum_(m, "XCAFDimTolObjects_AngularQualifier",R"#(Defines types of qualifier for angular dimensions)#") │ │ │ │ .value("XCAFDimTolObjects_AngularQualifier_None",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_None) │ │ │ │ .value("XCAFDimTolObjects_AngularQualifier_Small",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Small) │ │ │ │ .value("XCAFDimTolObjects_AngularQualifier_Large",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Large) │ │ │ │ .value("XCAFDimTolObjects_AngularQualifier_Equal",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Equal).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumTargetType",R"#(Defines types of dimension)#") │ │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Point",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point) │ │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Line",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line) │ │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Rectangle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle) │ │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Circle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle) │ │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Area",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values(); │ │ │ │ + py::enum_(m, "XCAFDimTolObjects_DimensionQualifier",R"#(Defines types of qualifier)#") │ │ │ │ + .value("XCAFDimTolObjects_DimensionQualifier_None",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_None) │ │ │ │ + .value("XCAFDimTolObjects_DimensionQualifier_Min",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Min) │ │ │ │ + .value("XCAFDimTolObjects_DimensionQualifier_Max",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Max) │ │ │ │ + .value("XCAFDimTolObjects_DimensionQualifier_Avg",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Avg).export_values(); │ │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionType",R"#(Defines types of dimension)#") │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_None",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_None) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_CurvedDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_CurvedDistance) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter) │ │ │ │ @@ -254,37 +277,14 @@ │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Size_Thickness",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Thickness) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Size_Angular",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Angular) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_Size_WithPath",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_WithPath) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_CommonLabel",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_CommonLabel) │ │ │ │ .value("XCAFDimTolObjects_DimensionType_DimensionPresentation",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_DimensionPresentation).export_values(); │ │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumSingleModif",R"#(Defines modifirs)#") │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_AnyCrossSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_AnyCrossSection) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Basic",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Basic) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_ContactingFeature",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_ContactingFeature) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DistanceVariable",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DistanceVariable) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_FreeState",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_FreeState) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Line",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Line) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MajorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MajorDiameter) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MinorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MinorDiameter) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Orientation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Orientation) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_PitchDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_PitchDiameter) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Plane",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Plane) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Point",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Point) │ │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Translation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Translation).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ >(m,"XCAFDimTolObjects_Tool",R"#()#"); │ │ │ │ preregister_template_NCollection_Sequence(m,"XCAFDimTolObjects_DatumModifiersSequence"); │ │ │ │ py::class_ , Standard_Transient >(m,"XCAFDimTolObjects_DatumObject",R"#(Access object to store datumAccess object to store datumAccess object to store datum)#"); │ │ │ ├── ./usr/share/libocp/OCP/gp.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -7607,77 +7607,77 @@ │ │ │ │ // /usr/include/opencascade/gp_XYZ.hxx │ │ │ │ │ │ │ │ // Additional functions │ │ │ │ │ │ │ │ │ │ │ │ // operators │ │ │ │ m.def("__mul__", │ │ │ │ + (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ │ + py::is_operator(), │ │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ │ + m.def("__rmul__", │ │ │ │ + (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ │ + py::is_operator(), │ │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ │ + m.def("__mul__", │ │ │ │ + (gp_Vec2d (*)( const Standard_Real , const gp_Vec2d & )) static_cast(&operator*), │ │ │ │ + py::is_operator(), │ │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ + m.def("__rmul__", │ │ │ │ + (gp_Vec2d (*)( const Standard_Real , const gp_Vec2d & )) static_cast(&operator*), │ │ │ │ + py::is_operator(), │ │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ + m.def("__mul__", │ │ │ │ (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ │ m.def("__rmul__", │ │ │ │ (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ │ m.def("__mul__", │ │ │ │ - (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*), │ │ │ │ + (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theMatrix"), py::arg("theCoord1")); │ │ │ │ m.def("__rmul__", │ │ │ │ - (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*), │ │ │ │ + (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theMatrix"), py::arg("theCoord1")); │ │ │ │ m.def("__mul__", │ │ │ │ - (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ │ + (gp_XYZ (*)( const Standard_Real , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ │ m.def("__rmul__", │ │ │ │ - (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ │ + (gp_XYZ (*)( const Standard_Real , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ │ m.def("__mul__", │ │ │ │ (gp_Vec (*)( const Standard_Real , const gp_Vec & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ m.def("__rmul__", │ │ │ │ (gp_Vec (*)( const Standard_Real , const gp_Vec & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ m.def("__mul__", │ │ │ │ - (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ │ - py::is_operator(), │ │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ │ - m.def("__rmul__", │ │ │ │ - (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ │ - py::is_operator(), │ │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ │ - m.def("__mul__", │ │ │ │ - (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ + (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theMatrix"), py::arg("theCoord1")); │ │ │ │ m.def("__rmul__", │ │ │ │ - (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ + (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theMatrix"), py::arg("theCoord1")); │ │ │ │ m.def("__mul__", │ │ │ │ - (gp_XYZ (*)( const Standard_Real , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ + (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ │ m.def("__rmul__", │ │ │ │ - (gp_XYZ (*)( const Standard_Real , const gp_XYZ & )) static_cast(&operator*), │ │ │ │ + (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ │ py::is_operator(), │ │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ │ - m.def("__mul__", │ │ │ │ - (gp_Vec2d (*)( const Standard_Real , const gp_Vec2d & )) static_cast(&operator*), │ │ │ │ - py::is_operator(), │ │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ - m.def("__rmul__", │ │ │ │ - (gp_Vec2d (*)( const Standard_Real , const gp_Vec2d & )) static_cast(&operator*), │ │ │ │ - py::is_operator(), │ │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ │ │ │ │ │ // register typdefs │ │ │ │ register_template_NCollection_Vec2(m,"gp_Vec2f"); │ │ │ │ register_template_NCollection_Vec3(m,"gp_Vec3f"); │ │ │ │ │ │ │ │ │ │ │ │ // exceptions │ │ │ ├── ./usr/share/libocp/OCP/gp_pre.cpp │ │ │ │┄ Ordering differences only │ │ │ │ @@ -99,14 +99,24 @@ │ │ │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ m.def_submodule("std"); │ │ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ │ │ // enums │ │ │ │ + py::enum_(m, "gp_TrsfForm",R"#(Identifies the type of a geometric transformation.)#") │ │ │ │ + .value("gp_Identity",gp_TrsfForm::gp_Identity) │ │ │ │ + .value("gp_Rotation",gp_TrsfForm::gp_Rotation) │ │ │ │ + .value("gp_Translation",gp_TrsfForm::gp_Translation) │ │ │ │ + .value("gp_PntMirror",gp_TrsfForm::gp_PntMirror) │ │ │ │ + .value("gp_Ax1Mirror",gp_TrsfForm::gp_Ax1Mirror) │ │ │ │ + .value("gp_Ax2Mirror",gp_TrsfForm::gp_Ax2Mirror) │ │ │ │ + .value("gp_Scale",gp_TrsfForm::gp_Scale) │ │ │ │ + .value("gp_CompoundTrsf",gp_TrsfForm::gp_CompoundTrsf) │ │ │ │ + .value("gp_Other",gp_TrsfForm::gp_Other).export_values(); │ │ │ │ py::enum_(m, "gp_EulerSequence",R"#(Enumerates all 24 possible variants of generalized Euler angles, defining general 3d rotation by three rotations around main axes of coordinate system, in different possible orders.)#") │ │ │ │ .value("gp_EulerAngles",gp_EulerSequence::gp_EulerAngles) │ │ │ │ .value("gp_YawPitchRoll",gp_EulerSequence::gp_YawPitchRoll) │ │ │ │ .value("gp_Extrinsic_XYZ",gp_EulerSequence::gp_Extrinsic_XYZ) │ │ │ │ .value("gp_Extrinsic_XZY",gp_EulerSequence::gp_Extrinsic_XZY) │ │ │ │ .value("gp_Extrinsic_YZX",gp_EulerSequence::gp_Extrinsic_YZX) │ │ │ │ .value("gp_Extrinsic_YXZ",gp_EulerSequence::gp_Extrinsic_YXZ) │ │ │ │ @@ -126,24 +136,14 @@ │ │ │ │ .value("gp_Extrinsic_ZXZ",gp_EulerSequence::gp_Extrinsic_ZXZ) │ │ │ │ .value("gp_Intrinsic_XYX",gp_EulerSequence::gp_Intrinsic_XYX) │ │ │ │ .value("gp_Intrinsic_XZX",gp_EulerSequence::gp_Intrinsic_XZX) │ │ │ │ .value("gp_Intrinsic_YZY",gp_EulerSequence::gp_Intrinsic_YZY) │ │ │ │ .value("gp_Intrinsic_YXY",gp_EulerSequence::gp_Intrinsic_YXY) │ │ │ │ .value("gp_Intrinsic_ZXZ",gp_EulerSequence::gp_Intrinsic_ZXZ) │ │ │ │ .value("gp_Intrinsic_ZYZ",gp_EulerSequence::gp_Intrinsic_ZYZ).export_values(); │ │ │ │ - py::enum_(m, "gp_TrsfForm",R"#(Identifies the type of a geometric transformation.)#") │ │ │ │ - .value("gp_Identity",gp_TrsfForm::gp_Identity) │ │ │ │ - .value("gp_Rotation",gp_TrsfForm::gp_Rotation) │ │ │ │ - .value("gp_Translation",gp_TrsfForm::gp_Translation) │ │ │ │ - .value("gp_PntMirror",gp_TrsfForm::gp_PntMirror) │ │ │ │ - .value("gp_Ax1Mirror",gp_TrsfForm::gp_Ax1Mirror) │ │ │ │ - .value("gp_Ax2Mirror",gp_TrsfForm::gp_Ax2Mirror) │ │ │ │ - .value("gp_Scale",gp_TrsfForm::gp_Scale) │ │ │ │ - .value("gp_CompoundTrsf",gp_TrsfForm::gp_CompoundTrsf) │ │ │ │ - .value("gp_Other",gp_TrsfForm::gp_Other).export_values(); │ │ │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ │ py::class_ , shared_ptr> >(m,"NCollection_Lerp_gp_Trsf",R"#(Linear interpolation tool for transformation defined by gp_Trsf.)#"); │ │ │ │ py::class_ >(m,"gp",R"#(The geometric processor package, called gp, provides an implementation of entities used : . for algebraic calculation such as "XYZ" coordinates, "Mat" matrix . for basis analytic geometry such as Transformations, point, vector, line, plane, axis placement, conics, and elementary surfaces. These entities are defined in 2d and 3d space. All the classes of this package are non-persistent.)#"); │ │ │ │ py::class_ >(m,"gp_Ax1",R"#(Describes an axis in 3D space. An axis is defined by: - its origin (also referred to as its "Location point"), and - its unit vector (referred to as its "Direction" or "main Direction"). An axis is used: - to describe 3D geometric entities (for example, the axis of a revolution entity). It serves the same purpose as the STEP function "axis placement one axis", or - to define geometric transformations (axis of symmetry, axis of rotation, and so on). For example, this entity can be used to locate a geometric entity or to define a symmetry axis.)#");