{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.h0xsJ8zJ/b1/python-opencascade-pywrap_0.0~git20250714210719.b608b60-3_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.h0xsJ8zJ/b2/python-opencascade-pywrap_0.0~git20250714210719.b608b60-3_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,2 +1,2 @@\n \n- 010f570f40ba1dc9f530df73052cbb35 1908456 python optional python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb\n+ 71a4a8a0e423bd576621fe8639580af3 1908356 python optional python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb\n"}, {"source1": "python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb", "source2": "python3-opencascade-pywrap_0.0~git20250714210719.b608b60-3_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2025-08-02 01:34:12.000000 debian-binary\n--rw-r--r-- 0 0 0 21308 2025-08-02 01:34:12.000000 control.tar.xz\n--rw-r--r-- 0 0 0 1886956 2025-08-02 01:34:12.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 21296 2025-08-02 01:34:12.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 1886868 2025-08-02 01:34:12.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/libocp/OCP/AIS_pre.cpp", "source2": "./usr/share/libocp/OCP/AIS_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -199,108 +199,122 @@\n // enums\n py::enum_(m, \"AIS_StatusOfPick\",R\"#()#\")\n .value(\"AIS_SOP_Error\",AIS_StatusOfPick::AIS_SOP_Error)\n .value(\"AIS_SOP_NothingSelected\",AIS_StatusOfPick::AIS_SOP_NothingSelected)\n .value(\"AIS_SOP_Removed\",AIS_StatusOfPick::AIS_SOP_Removed)\n .value(\"AIS_SOP_OneSelected\",AIS_StatusOfPick::AIS_SOP_OneSelected)\n .value(\"AIS_SOP_SeveralSelected\",AIS_StatusOfPick::AIS_SOP_SeveralSelected).export_values();\n- py::enum_(m, \"AIS_TypeOfPlane\",R\"#(Declares the type of plane.)#\")\n- .value(\"AIS_TOPL_Unknown\",AIS_TypeOfPlane::AIS_TOPL_Unknown)\n- .value(\"AIS_TOPL_XYPlane\",AIS_TypeOfPlane::AIS_TOPL_XYPlane)\n- .value(\"AIS_TOPL_XZPlane\",AIS_TypeOfPlane::AIS_TOPL_XZPlane)\n- .value(\"AIS_TOPL_YZPlane\",AIS_TypeOfPlane::AIS_TOPL_YZPlane).export_values();\n+ py::enum_(m, \"AIS_TypeOfAxis\",R\"#(Declares the type of axis.)#\")\n+ .value(\"AIS_TOAX_Unknown\",AIS_TypeOfAxis::AIS_TOAX_Unknown)\n+ .value(\"AIS_TOAX_XAxis\",AIS_TypeOfAxis::AIS_TOAX_XAxis)\n+ .value(\"AIS_TOAX_YAxis\",AIS_TypeOfAxis::AIS_TOAX_YAxis)\n+ .value(\"AIS_TOAX_ZAxis\",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values();\n py::enum_(m, \"AIS_WalkTranslation\",R\"#(Walking translation components.)#\")\n .value(\"AIS_WalkTranslation_Forward\",AIS_WalkTranslation::AIS_WalkTranslation_Forward)\n .value(\"AIS_WalkTranslation_Side\",AIS_WalkTranslation::AIS_WalkTranslation_Side)\n .value(\"AIS_WalkTranslation_Up\",AIS_WalkTranslation::AIS_WalkTranslation_Up).export_values();\n py::enum_(m, \"AIS_WalkRotation\",R\"#(Walking rotation components.)#\")\n .value(\"AIS_WalkRotation_Yaw\",AIS_WalkRotation::AIS_WalkRotation_Yaw)\n .value(\"AIS_WalkRotation_Pitch\",AIS_WalkRotation::AIS_WalkRotation_Pitch)\n .value(\"AIS_WalkRotation_Roll\",AIS_WalkRotation::AIS_WalkRotation_Roll).export_values();\n- py::enum_(m, \"AIS_SelectionScheme\",R\"#(Sets selection schemes for interactive contexts.)#\")\n- .value(\"AIS_SelectionScheme_UNKNOWN\",AIS_SelectionScheme::AIS_SelectionScheme_UNKNOWN)\n- .value(\"AIS_SelectionScheme_Replace\",AIS_SelectionScheme::AIS_SelectionScheme_Replace)\n- .value(\"AIS_SelectionScheme_Add\",AIS_SelectionScheme::AIS_SelectionScheme_Add)\n- .value(\"AIS_SelectionScheme_Remove\",AIS_SelectionScheme::AIS_SelectionScheme_Remove)\n- .value(\"AIS_SelectionScheme_XOR\",AIS_SelectionScheme::AIS_SelectionScheme_XOR)\n- .value(\"AIS_SelectionScheme_Clear\",AIS_SelectionScheme::AIS_SelectionScheme_Clear)\n- .value(\"AIS_SelectionScheme_ReplaceExtra\",AIS_SelectionScheme::AIS_SelectionScheme_ReplaceExtra).export_values();\n+ py::enum_(m, \"AIS_TrihedronSelectionMode\",R\"#(Enumeration defining selection modes supported by AIS_Trihedron.)#\")\n+ .value(\"AIS_TrihedronSelectionMode_EntireObject\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject)\n+ .value(\"AIS_TrihedronSelectionMode_Origin\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin)\n+ .value(\"AIS_TrihedronSelectionMode_Axes\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes)\n+ .value(\"AIS_TrihedronSelectionMode_MainPlanes\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values();\n+ py::enum_(m, \"AIS_ViewSelectionTool\",R\"#(Selection mode)#\")\n+ .value(\"AIS_ViewSelectionTool_Picking\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Picking)\n+ .value(\"AIS_ViewSelectionTool_RubberBand\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_RubberBand)\n+ .value(\"AIS_ViewSelectionTool_Polygon\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Polygon)\n+ .value(\"AIS_ViewSelectionTool_ZoomWindow\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_ZoomWindow).export_values();\n+ py::enum_(m, \"AIS_ViewInputBufferType\",R\"#(Input buffer type.)#\")\n+ .value(\"AIS_ViewInputBufferType_UI\",AIS_ViewInputBufferType::AIS_ViewInputBufferType_UI)\n+ .value(\"AIS_ViewInputBufferType_GL\",AIS_ViewInputBufferType::AIS_ViewInputBufferType_GL).export_values();\n+ py::enum_(m, \"AIS_TypeOfIso\",R\"#(Declares the type of isoparameter displayed.)#\")\n+ .value(\"AIS_TOI_IsoU\",AIS_TypeOfIso::AIS_TOI_IsoU)\n+ .value(\"AIS_TOI_IsoV\",AIS_TypeOfIso::AIS_TOI_IsoV)\n+ .value(\"AIS_TOI_Both\",AIS_TypeOfIso::AIS_TOI_Both).export_values();\n+ py::enum_(m, \"AIS_DragAction\",R\"#(Dragging action.)#\")\n+ .value(\"AIS_DragAction_Start\",AIS_DragAction::AIS_DragAction_Start)\n+ .value(\"AIS_DragAction_Confirmed\",AIS_DragAction::AIS_DragAction_Confirmed)\n+ .value(\"AIS_DragAction_Update\",AIS_DragAction::AIS_DragAction_Update)\n+ .value(\"AIS_DragAction_Stop\",AIS_DragAction::AIS_DragAction_Stop)\n+ .value(\"AIS_DragAction_Abort\",AIS_DragAction::AIS_DragAction_Abort).export_values();\n+ py::enum_(m, \"AIS_DisplayMode\",R\"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#\")\n+ .value(\"AIS_WireFrame\",AIS_DisplayMode::AIS_WireFrame)\n+ .value(\"AIS_Shaded\",AIS_DisplayMode::AIS_Shaded).export_values();\n+ 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.)#\")\n+ .value(\"AIS_KindOfInteractive_None\",AIS_KindOfInteractive::AIS_KindOfInteractive_None)\n+ .value(\"AIS_KindOfInteractive_Datum\",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum)\n+ .value(\"AIS_KindOfInteractive_Shape\",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape)\n+ .value(\"AIS_KindOfInteractive_Object\",AIS_KindOfInteractive::AIS_KindOfInteractive_Object)\n+ .value(\"AIS_KindOfInteractive_Relation\",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation)\n+ .value(\"AIS_KindOfInteractive_Dimension\",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension)\n+ .value(\"AIS_KindOfInteractive_LightSource\",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource)\n+ .value(\"AIS_KOI_None\",AIS_KindOfInteractive::AIS_KOI_None)\n+ .value(\"AIS_KOI_Datum\",AIS_KindOfInteractive::AIS_KOI_Datum)\n+ .value(\"AIS_KOI_Shape\",AIS_KindOfInteractive::AIS_KOI_Shape)\n+ .value(\"AIS_KOI_Object\",AIS_KindOfInteractive::AIS_KOI_Object)\n+ .value(\"AIS_KOI_Relation\",AIS_KindOfInteractive::AIS_KOI_Relation)\n+ .value(\"AIS_KOI_Dimension\",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values();\n py::enum_(m, \"AIS_StatusOfDetection\",R\"#()#\")\n .value(\"AIS_SOD_Error\",AIS_StatusOfDetection::AIS_SOD_Error)\n .value(\"AIS_SOD_Nothing\",AIS_StatusOfDetection::AIS_SOD_Nothing)\n .value(\"AIS_SOD_AllBad\",AIS_StatusOfDetection::AIS_SOD_AllBad)\n .value(\"AIS_SOD_Selected\",AIS_StatusOfDetection::AIS_SOD_Selected)\n .value(\"AIS_SOD_OnlyOneDetected\",AIS_StatusOfDetection::AIS_SOD_OnlyOneDetected)\n .value(\"AIS_SOD_OnlyOneGood\",AIS_StatusOfDetection::AIS_SOD_OnlyOneGood)\n .value(\"AIS_SOD_SeveralGood\",AIS_StatusOfDetection::AIS_SOD_SeveralGood).export_values();\n- py::enum_(m, \"AIS_TypeOfAxis\",R\"#(Declares the type of axis.)#\")\n- .value(\"AIS_TOAX_Unknown\",AIS_TypeOfAxis::AIS_TOAX_Unknown)\n- .value(\"AIS_TOAX_XAxis\",AIS_TypeOfAxis::AIS_TOAX_XAxis)\n- .value(\"AIS_TOAX_YAxis\",AIS_TypeOfAxis::AIS_TOAX_YAxis)\n- .value(\"AIS_TOAX_ZAxis\",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values();\n- py::enum_(m, \"AIS_TrihedronSelectionMode\",R\"#(Enumeration defining selection modes supported by AIS_Trihedron.)#\")\n- .value(\"AIS_TrihedronSelectionMode_EntireObject\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject)\n- .value(\"AIS_TrihedronSelectionMode_Origin\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin)\n- .value(\"AIS_TrihedronSelectionMode_Axes\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes)\n- .value(\"AIS_TrihedronSelectionMode_MainPlanes\",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values();\n- py::enum_(m, \"AIS_NavigationMode\",R\"#(Camera navigation mode.)#\")\n- .value(\"AIS_NavigationMode_Orbit\",AIS_NavigationMode::AIS_NavigationMode_Orbit)\n- .value(\"AIS_NavigationMode_FirstPersonFlight\",AIS_NavigationMode::AIS_NavigationMode_FirstPersonFlight)\n- .value(\"AIS_NavigationMode_FirstPersonWalk\",AIS_NavigationMode::AIS_NavigationMode_FirstPersonWalk).export_values();\n- m.attr(\"AIS_NavigationMode_LOWER\") = py::cast(int(AIS_NavigationMode_LOWER));\n- m.attr(\"AIS_NavigationMode_UPPER\") = py::cast(int(AIS_NavigationMode_UPPER));\n+ py::enum_(m, \"AIS_SelectionModesConcurrency\",R\"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#\")\n+ .value(\"AIS_SelectionModesConcurrency_Single\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single)\n+ .value(\"AIS_SelectionModesConcurrency_GlobalOrLocal\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal)\n+ .value(\"AIS_SelectionModesConcurrency_Multiple\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values();\n py::enum_(m, \"AIS_RotationMode\",R\"#(Camera rotation mode.)#\")\n .value(\"AIS_RotationMode_BndBoxActive\",AIS_RotationMode::AIS_RotationMode_BndBoxActive)\n .value(\"AIS_RotationMode_PickLast\",AIS_RotationMode::AIS_RotationMode_PickLast)\n .value(\"AIS_RotationMode_PickCenter\",AIS_RotationMode::AIS_RotationMode_PickCenter)\n .value(\"AIS_RotationMode_CameraAt\",AIS_RotationMode::AIS_RotationMode_CameraAt)\n .value(\"AIS_RotationMode_BndBoxScene\",AIS_RotationMode::AIS_RotationMode_BndBoxScene).export_values();\n m.attr(\"AIS_RotationMode_LOWER\") = py::cast(int(AIS_RotationMode_LOWER));\n m.attr(\"AIS_RotationMode_UPPER\") = py::cast(int(AIS_RotationMode_UPPER));\n- py::enum_(m, \"AIS_ViewSelectionTool\",R\"#(Selection mode)#\")\n- .value(\"AIS_ViewSelectionTool_Picking\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Picking)\n- .value(\"AIS_ViewSelectionTool_RubberBand\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_RubberBand)\n- .value(\"AIS_ViewSelectionTool_Polygon\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Polygon)\n- .value(\"AIS_ViewSelectionTool_ZoomWindow\",AIS_ViewSelectionTool::AIS_ViewSelectionTool_ZoomWindow).export_values();\n- py::enum_(m, \"AIS_ViewInputBufferType\",R\"#(Input buffer type.)#\")\n- .value(\"AIS_ViewInputBufferType_UI\",AIS_ViewInputBufferType::AIS_ViewInputBufferType_UI)\n- .value(\"AIS_ViewInputBufferType_GL\",AIS_ViewInputBufferType::AIS_ViewInputBufferType_GL).export_values();\n+ py::enum_(m, \"AIS_TypeOfPlane\",R\"#(Declares the type of plane.)#\")\n+ .value(\"AIS_TOPL_Unknown\",AIS_TypeOfPlane::AIS_TOPL_Unknown)\n+ .value(\"AIS_TOPL_XYPlane\",AIS_TypeOfPlane::AIS_TOPL_XYPlane)\n+ .value(\"AIS_TOPL_XZPlane\",AIS_TypeOfPlane::AIS_TOPL_XZPlane)\n+ .value(\"AIS_TOPL_YZPlane\",AIS_TypeOfPlane::AIS_TOPL_YZPlane).export_values();\n py::enum_(m, \"AIS_MouseGesture\",R\"#(Mouse gesture - only one can be active at one moment.)#\")\n .value(\"AIS_MouseGesture_NONE\",AIS_MouseGesture::AIS_MouseGesture_NONE)\n .value(\"AIS_MouseGesture_SelectRectangle\",AIS_MouseGesture::AIS_MouseGesture_SelectRectangle)\n .value(\"AIS_MouseGesture_SelectLasso\",AIS_MouseGesture::AIS_MouseGesture_SelectLasso)\n .value(\"AIS_MouseGesture_Zoom\",AIS_MouseGesture::AIS_MouseGesture_Zoom)\n .value(\"AIS_MouseGesture_ZoomWindow\",AIS_MouseGesture::AIS_MouseGesture_ZoomWindow)\n .value(\"AIS_MouseGesture_Pan\",AIS_MouseGesture::AIS_MouseGesture_Pan)\n .value(\"AIS_MouseGesture_RotateOrbit\",AIS_MouseGesture::AIS_MouseGesture_RotateOrbit)\n .value(\"AIS_MouseGesture_RotateView\",AIS_MouseGesture::AIS_MouseGesture_RotateView)\n .value(\"AIS_MouseGesture_Drag\",AIS_MouseGesture::AIS_MouseGesture_Drag).export_values();\n- py::enum_(m, \"AIS_TypeOfIso\",R\"#(Declares the type of isoparameter displayed.)#\")\n- .value(\"AIS_TOI_IsoU\",AIS_TypeOfIso::AIS_TOI_IsoU)\n- .value(\"AIS_TOI_IsoV\",AIS_TypeOfIso::AIS_TOI_IsoV)\n- .value(\"AIS_TOI_Both\",AIS_TypeOfIso::AIS_TOI_Both).export_values();\n+ py::enum_(m, \"AIS_NavigationMode\",R\"#(Camera navigation mode.)#\")\n+ .value(\"AIS_NavigationMode_Orbit\",AIS_NavigationMode::AIS_NavigationMode_Orbit)\n+ .value(\"AIS_NavigationMode_FirstPersonFlight\",AIS_NavigationMode::AIS_NavigationMode_FirstPersonFlight)\n+ .value(\"AIS_NavigationMode_FirstPersonWalk\",AIS_NavigationMode::AIS_NavigationMode_FirstPersonWalk).export_values();\n+ m.attr(\"AIS_NavigationMode_LOWER\") = py::cast(int(AIS_NavigationMode_LOWER));\n+ m.attr(\"AIS_NavigationMode_UPPER\") = py::cast(int(AIS_NavigationMode_UPPER));\n py::enum_(m, \"AIS_ManipulatorMode\",R\"#(Mode to make definite kind of transformations with AIS_Manipulator object.)#\")\n .value(\"AIS_MM_None\",AIS_ManipulatorMode::AIS_MM_None)\n .value(\"AIS_MM_Translation\",AIS_ManipulatorMode::AIS_MM_Translation)\n .value(\"AIS_MM_Rotation\",AIS_ManipulatorMode::AIS_MM_Rotation)\n .value(\"AIS_MM_Scaling\",AIS_ManipulatorMode::AIS_MM_Scaling)\n .value(\"AIS_MM_TranslationPlane\",AIS_ManipulatorMode::AIS_MM_TranslationPlane).export_values();\n- py::enum_(m, \"AIS_DisplayMode\",R\"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#\")\n- .value(\"AIS_WireFrame\",AIS_DisplayMode::AIS_WireFrame)\n- .value(\"AIS_Shaded\",AIS_DisplayMode::AIS_Shaded).export_values();\n- py::enum_(m, \"AIS_SelectionModesConcurrency\",R\"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#\")\n- .value(\"AIS_SelectionModesConcurrency_Single\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single)\n- .value(\"AIS_SelectionModesConcurrency_GlobalOrLocal\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal)\n- .value(\"AIS_SelectionModesConcurrency_Multiple\",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values();\n- py::enum_(m, \"AIS_DragAction\",R\"#(Dragging action.)#\")\n- .value(\"AIS_DragAction_Start\",AIS_DragAction::AIS_DragAction_Start)\n- .value(\"AIS_DragAction_Confirmed\",AIS_DragAction::AIS_DragAction_Confirmed)\n- .value(\"AIS_DragAction_Update\",AIS_DragAction::AIS_DragAction_Update)\n- .value(\"AIS_DragAction_Stop\",AIS_DragAction::AIS_DragAction_Stop)\n- .value(\"AIS_DragAction_Abort\",AIS_DragAction::AIS_DragAction_Abort).export_values();\n+ py::enum_(m, \"AIS_SelectionScheme\",R\"#(Sets selection schemes for interactive contexts.)#\")\n+ .value(\"AIS_SelectionScheme_UNKNOWN\",AIS_SelectionScheme::AIS_SelectionScheme_UNKNOWN)\n+ .value(\"AIS_SelectionScheme_Replace\",AIS_SelectionScheme::AIS_SelectionScheme_Replace)\n+ .value(\"AIS_SelectionScheme_Add\",AIS_SelectionScheme::AIS_SelectionScheme_Add)\n+ .value(\"AIS_SelectionScheme_Remove\",AIS_SelectionScheme::AIS_SelectionScheme_Remove)\n+ .value(\"AIS_SelectionScheme_XOR\",AIS_SelectionScheme::AIS_SelectionScheme_XOR)\n+ .value(\"AIS_SelectionScheme_Clear\",AIS_SelectionScheme::AIS_SelectionScheme_Clear)\n+ .value(\"AIS_SelectionScheme_ReplaceExtra\",AIS_SelectionScheme::AIS_SelectionScheme_ReplaceExtra).export_values();\n py::enum_(m, \"AIS_TypeOfAttribute\",R\"#()#\")\n .value(\"AIS_TOA_Line\",AIS_TypeOfAttribute::AIS_TOA_Line)\n .value(\"AIS_TOA_Dimension\",AIS_TypeOfAttribute::AIS_TOA_Dimension)\n .value(\"AIS_TOA_Wire\",AIS_TypeOfAttribute::AIS_TOA_Wire)\n .value(\"AIS_TOA_Plane\",AIS_TypeOfAttribute::AIS_TOA_Plane)\n .value(\"AIS_TOA_Vector\",AIS_TypeOfAttribute::AIS_TOA_Vector)\n .value(\"AIS_TOA_UIso\",AIS_TypeOfAttribute::AIS_TOA_UIso)\n@@ -314,28 +328,14 @@\n .value(\"AIS_TOA_FirstAxis\",AIS_TypeOfAttribute::AIS_TOA_FirstAxis)\n .value(\"AIS_TOA_SecondAxis\",AIS_TypeOfAttribute::AIS_TOA_SecondAxis)\n .value(\"AIS_TOA_ThirdAxis\",AIS_TypeOfAttribute::AIS_TOA_ThirdAxis).export_values();\n py::enum_(m, \"AIS_SelectStatus\",R\"#()#\")\n .value(\"AIS_SS_Added\",AIS_SelectStatus::AIS_SS_Added)\n .value(\"AIS_SS_Removed\",AIS_SelectStatus::AIS_SS_Removed)\n .value(\"AIS_SS_NotDone\",AIS_SelectStatus::AIS_SS_NotDone).export_values();\n- 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.)#\")\n- .value(\"AIS_KindOfInteractive_None\",AIS_KindOfInteractive::AIS_KindOfInteractive_None)\n- .value(\"AIS_KindOfInteractive_Datum\",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum)\n- .value(\"AIS_KindOfInteractive_Shape\",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape)\n- .value(\"AIS_KindOfInteractive_Object\",AIS_KindOfInteractive::AIS_KindOfInteractive_Object)\n- .value(\"AIS_KindOfInteractive_Relation\",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation)\n- .value(\"AIS_KindOfInteractive_Dimension\",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension)\n- .value(\"AIS_KindOfInteractive_LightSource\",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource)\n- .value(\"AIS_KOI_None\",AIS_KindOfInteractive::AIS_KOI_None)\n- .value(\"AIS_KOI_Datum\",AIS_KindOfInteractive::AIS_KOI_Datum)\n- .value(\"AIS_KOI_Shape\",AIS_KindOfInteractive::AIS_KOI_Shape)\n- .value(\"AIS_KOI_Object\",AIS_KindOfInteractive::AIS_KOI_Object)\n- .value(\"AIS_KOI_Relation\",AIS_KindOfInteractive::AIS_KOI_Relation)\n- .value(\"AIS_KOI_Dimension\",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values();\n \n //Python trampoline classes\n class Py_AIS_InteractiveObject : public AIS_InteractiveObject{\n public:\n using AIS_InteractiveObject::AIS_InteractiveObject;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Approx_pre.cpp", "source2": "./usr/share/libocp/OCP/Approx_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -61,22 +61,22 @@\n py::module m = main_module.def_submodule(\"Approx\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Approx_ParametrizationType\",R\"#()#\")\n- .value(\"Approx_ChordLength\",Approx_ParametrizationType::Approx_ChordLength)\n- .value(\"Approx_Centripetal\",Approx_ParametrizationType::Approx_Centripetal)\n- .value(\"Approx_IsoParametric\",Approx_ParametrizationType::Approx_IsoParametric).export_values();\n py::enum_(m, \"Approx_Status\",R\"#(It is an auxiliary flag being used in inner computations)#\")\n .value(\"Approx_PointsAdded\",Approx_Status::Approx_PointsAdded)\n .value(\"Approx_NoPointsAdded\",Approx_Status::Approx_NoPointsAdded)\n .value(\"Approx_NoApproximation\",Approx_Status::Approx_NoApproximation).export_values();\n+ py::enum_(m, \"Approx_ParametrizationType\",R\"#()#\")\n+ .value(\"Approx_ChordLength\",Approx_ParametrizationType::Approx_ChordLength)\n+ .value(\"Approx_Centripetal\",Approx_ParametrizationType::Approx_Centripetal)\n+ .value(\"Approx_IsoParametric\",Approx_ParametrizationType::Approx_IsoParametric).export_values();\n \n //Python trampoline classes\n class Py_Approx_SweepFunction : public Approx_SweepFunction{\n public:\n using Approx_SweepFunction::Approx_SweepFunction;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Aspect_pre.cpp", "source2": "./usr/share/libocp/OCP/Aspect_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -113,104 +113,45 @@\n py::module m = main_module.def_submodule(\"Aspect\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Aspect_GraphicsLibrary\",R\"#(Graphics API enumeration.)#\")\n- .value(\"Aspect_GraphicsLibrary_OpenGL\",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL)\n- .value(\"Aspect_GraphicsLibrary_OpenGLES\",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values();\n- py::enum_(m, \"Aspect_TypeOfDisplayText\",R\"#(Define the display type of the text.)#\")\n- .value(\"Aspect_TODT_NORMAL\",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL)\n- .value(\"Aspect_TODT_SUBTITLE\",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE)\n- .value(\"Aspect_TODT_DEKALE\",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE)\n- .value(\"Aspect_TODT_BLEND\",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND)\n- .value(\"Aspect_TODT_DIMENSION\",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION)\n- .value(\"Aspect_TODT_SHADOW\",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values();\n- py::enum_(m, \"Aspect_TypeOfMarker\",R\"#(Definition of types of markers)#\")\n- .value(\"Aspect_TOM_EMPTY\",Aspect_TypeOfMarker::Aspect_TOM_EMPTY)\n- .value(\"Aspect_TOM_POINT\",Aspect_TypeOfMarker::Aspect_TOM_POINT)\n- .value(\"Aspect_TOM_PLUS\",Aspect_TypeOfMarker::Aspect_TOM_PLUS)\n- .value(\"Aspect_TOM_STAR\",Aspect_TypeOfMarker::Aspect_TOM_STAR)\n- .value(\"Aspect_TOM_X\",Aspect_TypeOfMarker::Aspect_TOM_X)\n- .value(\"Aspect_TOM_O\",Aspect_TypeOfMarker::Aspect_TOM_O)\n- .value(\"Aspect_TOM_O_POINT\",Aspect_TypeOfMarker::Aspect_TOM_O_POINT)\n- .value(\"Aspect_TOM_O_PLUS\",Aspect_TypeOfMarker::Aspect_TOM_O_PLUS)\n- .value(\"Aspect_TOM_O_STAR\",Aspect_TypeOfMarker::Aspect_TOM_O_STAR)\n- .value(\"Aspect_TOM_O_X\",Aspect_TypeOfMarker::Aspect_TOM_O_X)\n- .value(\"Aspect_TOM_RING1\",Aspect_TypeOfMarker::Aspect_TOM_RING1)\n- .value(\"Aspect_TOM_RING2\",Aspect_TypeOfMarker::Aspect_TOM_RING2)\n- .value(\"Aspect_TOM_RING3\",Aspect_TypeOfMarker::Aspect_TOM_RING3)\n- .value(\"Aspect_TOM_BALL\",Aspect_TypeOfMarker::Aspect_TOM_BALL)\n- .value(\"Aspect_TOM_USERDEFINED\",Aspect_TypeOfMarker::Aspect_TOM_USERDEFINED).export_values();\n- py::enum_(m, \"Aspect_TypeOfResize\",R\"#(Defines the type of Resize Window method applied by the user.)#\")\n- .value(\"Aspect_TOR_UNKNOWN\",Aspect_TypeOfResize::Aspect_TOR_UNKNOWN)\n- .value(\"Aspect_TOR_NO_BORDER\",Aspect_TypeOfResize::Aspect_TOR_NO_BORDER)\n- .value(\"Aspect_TOR_TOP_BORDER\",Aspect_TypeOfResize::Aspect_TOR_TOP_BORDER)\n- .value(\"Aspect_TOR_RIGHT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_RIGHT_BORDER)\n- .value(\"Aspect_TOR_BOTTOM_BORDER\",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_BORDER)\n- .value(\"Aspect_TOR_LEFT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_LEFT_BORDER)\n- .value(\"Aspect_TOR_TOP_AND_RIGHT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_TOP_AND_RIGHT_BORDER)\n- .value(\"Aspect_TOR_RIGHT_AND_BOTTOM_BORDER\",Aspect_TypeOfResize::Aspect_TOR_RIGHT_AND_BOTTOM_BORDER)\n- .value(\"Aspect_TOR_BOTTOM_AND_LEFT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_AND_LEFT_BORDER)\n- .value(\"Aspect_TOR_LEFT_AND_TOP_BORDER\",Aspect_TypeOfResize::Aspect_TOR_LEFT_AND_TOP_BORDER).export_values();\n- m.attr(\"Aspect_VKeyFlags_NONE\") = py::cast(int(Aspect_VKeyFlags_NONE));\n- m.attr(\"Aspect_VKeyFlags_SHIFT\") = py::cast(int(Aspect_VKeyFlags_SHIFT));\n- m.attr(\"Aspect_VKeyFlags_CTRL\") = py::cast(int(Aspect_VKeyFlags_CTRL));\n- m.attr(\"Aspect_VKeyFlags_ALT\") = py::cast(int(Aspect_VKeyFlags_ALT));\n- m.attr(\"Aspect_VKeyFlags_MENU\") = py::cast(int(Aspect_VKeyFlags_MENU));\n- m.attr(\"Aspect_VKeyFlags_META\") = py::cast(int(Aspect_VKeyFlags_META));\n- m.attr(\"Aspect_VKeyFlags_ALL\") = py::cast(int(Aspect_VKeyFlags_ALL));\n- m.attr(\"Aspect_VKeyMouse_NONE\") = py::cast(int(Aspect_VKeyMouse_NONE));\n- m.attr(\"Aspect_VKeyMouse_LeftButton\") = py::cast(int(Aspect_VKeyMouse_LeftButton));\n- m.attr(\"Aspect_VKeyMouse_MiddleButton\") = py::cast(int(Aspect_VKeyMouse_MiddleButton));\n- m.attr(\"Aspect_VKeyMouse_RightButton\") = py::cast(int(Aspect_VKeyMouse_RightButton));\n- m.attr(\"Aspect_VKeyMouse_MainButtons\") = py::cast(int(Aspect_VKeyMouse_MainButtons));\n- py::enum_(m, \"Aspect_PolygonOffsetMode\",R\"#()#\")\n- .value(\"Aspect_POM_Off\",Aspect_PolygonOffsetMode::Aspect_POM_Off)\n- .value(\"Aspect_POM_Fill\",Aspect_PolygonOffsetMode::Aspect_POM_Fill)\n- .value(\"Aspect_POM_Line\",Aspect_PolygonOffsetMode::Aspect_POM_Line)\n- .value(\"Aspect_POM_Point\",Aspect_PolygonOffsetMode::Aspect_POM_Point)\n- .value(\"Aspect_POM_All\",Aspect_PolygonOffsetMode::Aspect_POM_All)\n- .value(\"Aspect_POM_None\",Aspect_PolygonOffsetMode::Aspect_POM_None)\n- .value(\"Aspect_POM_Mask\",Aspect_PolygonOffsetMode::Aspect_POM_Mask).export_values();\n py::enum_(m, \"Aspect_GridDrawMode\",R\"#(Defines the grid draw mode. The grid may be drawn by using lines or points.)#\")\n .value(\"Aspect_GDM_Lines\",Aspect_GridDrawMode::Aspect_GDM_Lines)\n .value(\"Aspect_GDM_Points\",Aspect_GridDrawMode::Aspect_GDM_Points)\n .value(\"Aspect_GDM_None\",Aspect_GridDrawMode::Aspect_GDM_None).export_values();\n- py::enum_(m, \"Aspect_TypeOfColorScalePosition\",R\"#(Defines the type of position for color scale labels)#\")\n- .value(\"Aspect_TOCSP_NONE\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE)\n- .value(\"Aspect_TOCSP_LEFT\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT)\n- .value(\"Aspect_TOCSP_RIGHT\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT)\n- .value(\"Aspect_TOCSP_CENTER\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values();\n- py::enum_(m, \"Aspect_InteriorStyle\",R\"#(Interior types for primitive faces.)#\")\n- .value(\"Aspect_IS_EMPTY\",Aspect_InteriorStyle::Aspect_IS_EMPTY)\n- .value(\"Aspect_IS_SOLID\",Aspect_InteriorStyle::Aspect_IS_SOLID)\n- .value(\"Aspect_IS_HATCH\",Aspect_InteriorStyle::Aspect_IS_HATCH)\n- .value(\"Aspect_IS_HIDDENLINE\",Aspect_InteriorStyle::Aspect_IS_HIDDENLINE)\n- .value(\"Aspect_IS_POINT\",Aspect_InteriorStyle::Aspect_IS_POINT)\n- .value(\"Aspect_IS_HOLLOW\",Aspect_InteriorStyle::Aspect_IS_HOLLOW).export_values();\n- 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.)#\")\n- .value(\"Aspect_TOD_RELATIVE\",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE)\n- .value(\"Aspect_TOD_ABSOLUTE\",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values();\n+ py::enum_(m, \"Aspect_TypeOfColorScaleData\",R\"#(Defines the using type of colors and labels)#\")\n+ .value(\"Aspect_TOCSD_AUTO\",Aspect_TypeOfColorScaleData::Aspect_TOCSD_AUTO)\n+ .value(\"Aspect_TOCSD_USER\",Aspect_TypeOfColorScaleData::Aspect_TOCSD_USER).export_values();\n+ py::enum_(m, \"Aspect_TypeOfStyleText\",R\"#(Define the style of the text.)#\")\n+ .value(\"Aspect_TOST_NORMAL\",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL)\n+ .value(\"Aspect_TOST_ANNOTATION\",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values();\n+ py::enum_(m, \"Aspect_TypeOfColorScaleOrientation\",R\"#(Defines the type of color scale orientation)#\")\n+ .value(\"Aspect_TOCSO_NONE\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE)\n+ .value(\"Aspect_TOCSO_LEFT\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT)\n+ .value(\"Aspect_TOCSO_RIGHT\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT)\n+ .value(\"Aspect_TOCSO_CENTER\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values();\n+ py::enum_(m, \"Aspect_FillMethod\",R\"#(Defines the fill methods to write bitmaps in a window.)#\")\n+ .value(\"Aspect_FM_NONE\",Aspect_FillMethod::Aspect_FM_NONE)\n+ .value(\"Aspect_FM_CENTERED\",Aspect_FillMethod::Aspect_FM_CENTERED)\n+ .value(\"Aspect_FM_TILED\",Aspect_FillMethod::Aspect_FM_TILED)\n+ .value(\"Aspect_FM_STRETCH\",Aspect_FillMethod::Aspect_FM_STRETCH).export_values();\n py::enum_(m, \"Aspect_XAtom\",R\"#(Defines custom identifiers(atoms) for X window custom named properties)#\")\n .value(\"Aspect_XA_DELETE_WINDOW\",Aspect_XAtom::Aspect_XA_DELETE_WINDOW).export_values();\n- py::enum_(m, \"Aspect_WidthOfLine\",R\"#(Definition of line types)#\")\n- .value(\"Aspect_WOL_THIN\",Aspect_WidthOfLine::Aspect_WOL_THIN)\n- .value(\"Aspect_WOL_MEDIUM\",Aspect_WidthOfLine::Aspect_WOL_MEDIUM)\n- .value(\"Aspect_WOL_THICK\",Aspect_WidthOfLine::Aspect_WOL_THICK)\n- .value(\"Aspect_WOL_VERYTHICK\",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK)\n- .value(\"Aspect_WOL_USERDEFINED\",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values();\n py::enum_(m, \"Aspect_XRTrackedDeviceRole\",R\"#(Predefined tracked devices.)#\")\n .value(\"Aspect_XRTrackedDeviceRole_Head\",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Head)\n .value(\"Aspect_XRTrackedDeviceRole_LeftHand\",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_LeftHand)\n .value(\"Aspect_XRTrackedDeviceRole_RightHand\",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_RightHand)\n .value(\"Aspect_XRTrackedDeviceRole_Other\",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Other).export_values();\n m.attr(\"Aspect_XRTrackedDeviceRole_NB\") = py::cast(int(Aspect_XRTrackedDeviceRole_NB));\n+ py::enum_(m, \"Aspect_GridType\",R\"#(Defines the grid type : Rectangular or Circular.)#\")\n+ .value(\"Aspect_GT_Rectangular\",Aspect_GridType::Aspect_GT_Rectangular)\n+ .value(\"Aspect_GT_Circular\",Aspect_GridType::Aspect_GT_Circular).export_values();\n py::enum_(m, \"Aspect_GradientFillMethod\",R\"#(Defines the fill methods to write gradient background in a window.)#\")\n .value(\"Aspect_GradientFillMethod_None\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_None)\n .value(\"Aspect_GradientFillMethod_Horizontal\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Horizontal)\n .value(\"Aspect_GradientFillMethod_Vertical\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Vertical)\n .value(\"Aspect_GradientFillMethod_Diagonal1\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal1)\n .value(\"Aspect_GradientFillMethod_Diagonal2\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal2)\n .value(\"Aspect_GradientFillMethod_Corner1\",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Corner1)\n@@ -223,14 +164,43 @@\n .value(\"Aspect_GFM_VER\",Aspect_GradientFillMethod::Aspect_GFM_VER)\n .value(\"Aspect_GFM_DIAG1\",Aspect_GradientFillMethod::Aspect_GFM_DIAG1)\n .value(\"Aspect_GFM_DIAG2\",Aspect_GradientFillMethod::Aspect_GFM_DIAG2)\n .value(\"Aspect_GFM_CORNER1\",Aspect_GradientFillMethod::Aspect_GFM_CORNER1)\n .value(\"Aspect_GFM_CORNER2\",Aspect_GradientFillMethod::Aspect_GFM_CORNER2)\n .value(\"Aspect_GFM_CORNER3\",Aspect_GradientFillMethod::Aspect_GFM_CORNER3)\n .value(\"Aspect_GFM_CORNER4\",Aspect_GradientFillMethod::Aspect_GFM_CORNER4).export_values();\n+ py::enum_(m, \"Aspect_HatchStyle\",R\"#(Definition of all available hatch styles.)#\")\n+ .value(\"Aspect_HS_SOLID\",Aspect_HatchStyle::Aspect_HS_SOLID)\n+ .value(\"Aspect_HS_HORIZONTAL\",Aspect_HatchStyle::Aspect_HS_HORIZONTAL)\n+ .value(\"Aspect_HS_HORIZONTAL_WIDE\",Aspect_HatchStyle::Aspect_HS_HORIZONTAL_WIDE)\n+ .value(\"Aspect_HS_VERTICAL\",Aspect_HatchStyle::Aspect_HS_VERTICAL)\n+ .value(\"Aspect_HS_VERTICAL_WIDE\",Aspect_HatchStyle::Aspect_HS_VERTICAL_WIDE)\n+ .value(\"Aspect_HS_DIAGONAL_45\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45)\n+ .value(\"Aspect_HS_DIAGONAL_45_WIDE\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45_WIDE)\n+ .value(\"Aspect_HS_DIAGONAL_135\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135)\n+ .value(\"Aspect_HS_DIAGONAL_135_WIDE\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135_WIDE)\n+ .value(\"Aspect_HS_GRID\",Aspect_HatchStyle::Aspect_HS_GRID)\n+ .value(\"Aspect_HS_GRID_WIDE\",Aspect_HatchStyle::Aspect_HS_GRID_WIDE)\n+ .value(\"Aspect_HS_GRID_DIAGONAL\",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL)\n+ .value(\"Aspect_HS_GRID_DIAGONAL_WIDE\",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL_WIDE)\n+ .value(\"Aspect_HS_NB\",Aspect_HatchStyle::Aspect_HS_NB).export_values();\n+ py::enum_(m, \"Aspect_TypeOfFacingModel\",R\"#()#\")\n+ .value(\"Aspect_TOFM_BOTH_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE)\n+ .value(\"Aspect_TOFM_BACK_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE)\n+ .value(\"Aspect_TOFM_FRONT_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values();\n+ 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.)#\")\n+ .value(\"Aspect_TOTP_CENTER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER)\n+ .value(\"Aspect_TOTP_TOP\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP)\n+ .value(\"Aspect_TOTP_BOTTOM\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM)\n+ .value(\"Aspect_TOTP_LEFT\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT)\n+ .value(\"Aspect_TOTP_RIGHT\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT)\n+ .value(\"Aspect_TOTP_LEFT_LOWER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER)\n+ .value(\"Aspect_TOTP_LEFT_UPPER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER)\n+ .value(\"Aspect_TOTP_RIGHT_LOWER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER)\n+ .value(\"Aspect_TOTP_RIGHT_UPPER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values();\n py::enum_(m, \"Aspect_VKeyBasic\",R\"#(Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys management logic.)#\")\n .value(\"Aspect_VKey_UNKNOWN\",Aspect_VKeyBasic::Aspect_VKey_UNKNOWN)\n .value(\"Aspect_VKey_A\",Aspect_VKeyBasic::Aspect_VKey_A)\n .value(\"Aspect_VKey_B\",Aspect_VKeyBasic::Aspect_VKey_B)\n .value(\"Aspect_VKey_C\",Aspect_VKeyBasic::Aspect_VKey_C)\n .value(\"Aspect_VKey_D\",Aspect_VKeyBasic::Aspect_VKey_D)\n .value(\"Aspect_VKey_E\",Aspect_VKeyBasic::Aspect_VKey_E)\n@@ -375,33 +345,46 @@\n m.attr(\"Aspect_VKey_ModifiersLower\") = py::cast(int(Aspect_VKey_ModifiersLower));\n m.attr(\"Aspect_VKey_ModifiersUpper\") = py::cast(int(Aspect_VKey_ModifiersUpper));\n m.attr(\"Aspect_VKey_NavigationKeysLower\") = py::cast(int(Aspect_VKey_NavigationKeysLower));\n m.attr(\"Aspect_VKey_NavigationKeysUpper\") = py::cast(int(Aspect_VKey_NavigationKeysUpper));\n m.attr(\"Aspect_VKey_Upper\") = py::cast(int(Aspect_VKey_Upper));\n m.attr(\"Aspect_VKey_NB\") = py::cast(int(Aspect_VKey_NB));\n m.attr(\"Aspect_VKey_MAX\") = py::cast(int(Aspect_VKey_MAX));\n- py::enum_(m, \"Aspect_TypeOfColorScaleOrientation\",R\"#(Defines the type of color scale orientation)#\")\n- .value(\"Aspect_TOCSO_NONE\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE)\n- .value(\"Aspect_TOCSO_LEFT\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT)\n- .value(\"Aspect_TOCSO_RIGHT\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT)\n- .value(\"Aspect_TOCSO_CENTER\",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values();\n- py::enum_(m, \"Aspect_TypeOfColorScaleData\",R\"#(Defines the using type of colors and labels)#\")\n- .value(\"Aspect_TOCSD_AUTO\",Aspect_TypeOfColorScaleData::Aspect_TOCSD_AUTO)\n- .value(\"Aspect_TOCSD_USER\",Aspect_TypeOfColorScaleData::Aspect_TOCSD_USER).export_values();\n- py::enum_(m, \"Aspect_TypeOfLine\",R\"#(Definition of line types)#\")\n- .value(\"Aspect_TOL_EMPTY\",Aspect_TypeOfLine::Aspect_TOL_EMPTY)\n- .value(\"Aspect_TOL_SOLID\",Aspect_TypeOfLine::Aspect_TOL_SOLID)\n- .value(\"Aspect_TOL_DASH\",Aspect_TypeOfLine::Aspect_TOL_DASH)\n- .value(\"Aspect_TOL_DOT\",Aspect_TypeOfLine::Aspect_TOL_DOT)\n- .value(\"Aspect_TOL_DOTDASH\",Aspect_TypeOfLine::Aspect_TOL_DOTDASH)\n- .value(\"Aspect_TOL_USERDEFINED\",Aspect_TypeOfLine::Aspect_TOL_USERDEFINED).export_values();\n- py::enum_(m, \"Aspect_TypeOfFacingModel\",R\"#()#\")\n- .value(\"Aspect_TOFM_BOTH_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE)\n- .value(\"Aspect_TOFM_BACK_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE)\n- .value(\"Aspect_TOFM_FRONT_SIDE\",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values();\n+ py::enum_(m, \"Aspect_TypeOfDisplayText\",R\"#(Define the display type of the text.)#\")\n+ .value(\"Aspect_TODT_NORMAL\",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL)\n+ .value(\"Aspect_TODT_SUBTITLE\",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE)\n+ .value(\"Aspect_TODT_DEKALE\",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE)\n+ .value(\"Aspect_TODT_BLEND\",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND)\n+ .value(\"Aspect_TODT_DIMENSION\",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION)\n+ .value(\"Aspect_TODT_SHADOW\",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values();\n+ py::enum_(m, \"Aspect_TypeOfHighlightMethod\",R\"#(Definition of a highlight method)#\")\n+ .value(\"Aspect_TOHM_COLOR\",Aspect_TypeOfHighlightMethod::Aspect_TOHM_COLOR)\n+ .value(\"Aspect_TOHM_BOUNDBOX\",Aspect_TypeOfHighlightMethod::Aspect_TOHM_BOUNDBOX).export_values();\n+ py::enum_(m, \"Aspect_TypeOfColorScalePosition\",R\"#(Defines the type of position for color scale labels)#\")\n+ .value(\"Aspect_TOCSP_NONE\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE)\n+ .value(\"Aspect_TOCSP_LEFT\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT)\n+ .value(\"Aspect_TOCSP_RIGHT\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT)\n+ .value(\"Aspect_TOCSP_CENTER\",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values();\n+ py::enum_(m, \"Aspect_GraphicsLibrary\",R\"#(Graphics API enumeration.)#\")\n+ .value(\"Aspect_GraphicsLibrary_OpenGL\",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL)\n+ .value(\"Aspect_GraphicsLibrary_OpenGLES\",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values();\n+ py::enum_(m, \"Aspect_TypeOfResize\",R\"#(Defines the type of Resize Window method applied by the user.)#\")\n+ .value(\"Aspect_TOR_UNKNOWN\",Aspect_TypeOfResize::Aspect_TOR_UNKNOWN)\n+ .value(\"Aspect_TOR_NO_BORDER\",Aspect_TypeOfResize::Aspect_TOR_NO_BORDER)\n+ .value(\"Aspect_TOR_TOP_BORDER\",Aspect_TypeOfResize::Aspect_TOR_TOP_BORDER)\n+ .value(\"Aspect_TOR_RIGHT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_RIGHT_BORDER)\n+ .value(\"Aspect_TOR_BOTTOM_BORDER\",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_BORDER)\n+ .value(\"Aspect_TOR_LEFT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_LEFT_BORDER)\n+ .value(\"Aspect_TOR_TOP_AND_RIGHT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_TOP_AND_RIGHT_BORDER)\n+ .value(\"Aspect_TOR_RIGHT_AND_BOTTOM_BORDER\",Aspect_TypeOfResize::Aspect_TOR_RIGHT_AND_BOTTOM_BORDER)\n+ .value(\"Aspect_TOR_BOTTOM_AND_LEFT_BORDER\",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_AND_LEFT_BORDER)\n+ .value(\"Aspect_TOR_LEFT_AND_TOP_BORDER\",Aspect_TypeOfResize::Aspect_TOR_LEFT_AND_TOP_BORDER).export_values();\n+ py::enum_(m, \"Aspect_Eye\",R\"#(Camera eye index within stereoscopic pair.)#\")\n+ .value(\"Aspect_Eye_Left\",Aspect_Eye::Aspect_Eye_Left)\n+ .value(\"Aspect_Eye_Right\",Aspect_Eye::Aspect_Eye_Right).export_values();\n py::enum_(m, \"Aspect_XRGenericAction\",R\"#(Generic XR action.)#\")\n .value(\"Aspect_XRGenericAction_IsHeadsetOn\",Aspect_XRGenericAction::Aspect_XRGenericAction_IsHeadsetOn)\n .value(\"Aspect_XRGenericAction_InputAppMenu\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputAppMenu)\n .value(\"Aspect_XRGenericAction_InputSysMenu\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputSysMenu)\n .value(\"Aspect_XRGenericAction_InputTriggerPull\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerPull)\n .value(\"Aspect_XRGenericAction_InputTriggerClick\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerClick)\n .value(\"Aspect_XRGenericAction_InputGripClick\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputGripClick)\n@@ -413,65 +396,82 @@\n .value(\"Aspect_XRGenericAction_InputThumbstickClick\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickClick)\n .value(\"Aspect_XRGenericAction_InputPoseBase\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseBase)\n .value(\"Aspect_XRGenericAction_InputPoseFront\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFront)\n .value(\"Aspect_XRGenericAction_InputPoseHandGrip\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseHandGrip)\n .value(\"Aspect_XRGenericAction_InputPoseFingerTip\",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFingerTip)\n .value(\"Aspect_XRGenericAction_OutputHaptic\",Aspect_XRGenericAction::Aspect_XRGenericAction_OutputHaptic).export_values();\n m.attr(\"Aspect_XRGenericAction_NB\") = py::cast(int(Aspect_XRGenericAction_NB));\n+ py::enum_(m, \"Aspect_TypeOfMarker\",R\"#(Definition of types of markers)#\")\n+ .value(\"Aspect_TOM_EMPTY\",Aspect_TypeOfMarker::Aspect_TOM_EMPTY)\n+ .value(\"Aspect_TOM_POINT\",Aspect_TypeOfMarker::Aspect_TOM_POINT)\n+ .value(\"Aspect_TOM_PLUS\",Aspect_TypeOfMarker::Aspect_TOM_PLUS)\n+ .value(\"Aspect_TOM_STAR\",Aspect_TypeOfMarker::Aspect_TOM_STAR)\n+ .value(\"Aspect_TOM_X\",Aspect_TypeOfMarker::Aspect_TOM_X)\n+ .value(\"Aspect_TOM_O\",Aspect_TypeOfMarker::Aspect_TOM_O)\n+ .value(\"Aspect_TOM_O_POINT\",Aspect_TypeOfMarker::Aspect_TOM_O_POINT)\n+ .value(\"Aspect_TOM_O_PLUS\",Aspect_TypeOfMarker::Aspect_TOM_O_PLUS)\n+ .value(\"Aspect_TOM_O_STAR\",Aspect_TypeOfMarker::Aspect_TOM_O_STAR)\n+ .value(\"Aspect_TOM_O_X\",Aspect_TypeOfMarker::Aspect_TOM_O_X)\n+ .value(\"Aspect_TOM_RING1\",Aspect_TypeOfMarker::Aspect_TOM_RING1)\n+ .value(\"Aspect_TOM_RING2\",Aspect_TypeOfMarker::Aspect_TOM_RING2)\n+ .value(\"Aspect_TOM_RING3\",Aspect_TypeOfMarker::Aspect_TOM_RING3)\n+ .value(\"Aspect_TOM_BALL\",Aspect_TypeOfMarker::Aspect_TOM_BALL)\n+ .value(\"Aspect_TOM_USERDEFINED\",Aspect_TypeOfMarker::Aspect_TOM_USERDEFINED).export_values();\n py::enum_(m, \"Aspect_ColorSpace\",R\"#(Texture color spaces accepted by XR composer.)#\")\n .value(\"Aspect_ColorSpace_sRGB\",Aspect_ColorSpace::Aspect_ColorSpace_sRGB)\n .value(\"Aspect_ColorSpace_Linear\",Aspect_ColorSpace::Aspect_ColorSpace_Linear).export_values();\n- py::enum_(m, \"Aspect_GridType\",R\"#(Defines the grid type : Rectangular or Circular.)#\")\n- .value(\"Aspect_GT_Rectangular\",Aspect_GridType::Aspect_GT_Rectangular)\n- .value(\"Aspect_GT_Circular\",Aspect_GridType::Aspect_GT_Circular).export_values();\n- py::enum_(m, \"Aspect_TypeOfStyleText\",R\"#(Define the style of the text.)#\")\n- .value(\"Aspect_TOST_NORMAL\",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL)\n- .value(\"Aspect_TOST_ANNOTATION\",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values();\n- 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.)#\")\n- .value(\"Aspect_TOTP_CENTER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER)\n- .value(\"Aspect_TOTP_TOP\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP)\n- .value(\"Aspect_TOTP_BOTTOM\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM)\n- .value(\"Aspect_TOTP_LEFT\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT)\n- .value(\"Aspect_TOTP_RIGHT\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT)\n- .value(\"Aspect_TOTP_LEFT_LOWER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER)\n- .value(\"Aspect_TOTP_LEFT_UPPER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER)\n- .value(\"Aspect_TOTP_RIGHT_LOWER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER)\n- .value(\"Aspect_TOTP_RIGHT_UPPER\",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values();\n- py::enum_(m, \"Aspect_Eye\",R\"#(Camera eye index within stereoscopic pair.)#\")\n- .value(\"Aspect_Eye_Left\",Aspect_Eye::Aspect_Eye_Left)\n- .value(\"Aspect_Eye_Right\",Aspect_Eye::Aspect_Eye_Right).export_values();\n- py::enum_(m, \"Aspect_FillMethod\",R\"#(Defines the fill methods to write bitmaps in a window.)#\")\n- .value(\"Aspect_FM_NONE\",Aspect_FillMethod::Aspect_FM_NONE)\n- .value(\"Aspect_FM_CENTERED\",Aspect_FillMethod::Aspect_FM_CENTERED)\n- .value(\"Aspect_FM_TILED\",Aspect_FillMethod::Aspect_FM_TILED)\n- .value(\"Aspect_FM_STRETCH\",Aspect_FillMethod::Aspect_FM_STRETCH).export_values();\n- py::enum_(m, \"Aspect_TypeOfHighlightMethod\",R\"#(Definition of a highlight method)#\")\n- .value(\"Aspect_TOHM_COLOR\",Aspect_TypeOfHighlightMethod::Aspect_TOHM_COLOR)\n- .value(\"Aspect_TOHM_BOUNDBOX\",Aspect_TypeOfHighlightMethod::Aspect_TOHM_BOUNDBOX).export_values();\n- py::enum_(m, \"Aspect_HatchStyle\",R\"#(Definition of all available hatch styles.)#\")\n- .value(\"Aspect_HS_SOLID\",Aspect_HatchStyle::Aspect_HS_SOLID)\n- .value(\"Aspect_HS_HORIZONTAL\",Aspect_HatchStyle::Aspect_HS_HORIZONTAL)\n- .value(\"Aspect_HS_HORIZONTAL_WIDE\",Aspect_HatchStyle::Aspect_HS_HORIZONTAL_WIDE)\n- .value(\"Aspect_HS_VERTICAL\",Aspect_HatchStyle::Aspect_HS_VERTICAL)\n- .value(\"Aspect_HS_VERTICAL_WIDE\",Aspect_HatchStyle::Aspect_HS_VERTICAL_WIDE)\n- .value(\"Aspect_HS_DIAGONAL_45\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45)\n- .value(\"Aspect_HS_DIAGONAL_45_WIDE\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45_WIDE)\n- .value(\"Aspect_HS_DIAGONAL_135\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135)\n- .value(\"Aspect_HS_DIAGONAL_135_WIDE\",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135_WIDE)\n- .value(\"Aspect_HS_GRID\",Aspect_HatchStyle::Aspect_HS_GRID)\n- .value(\"Aspect_HS_GRID_WIDE\",Aspect_HatchStyle::Aspect_HS_GRID_WIDE)\n- .value(\"Aspect_HS_GRID_DIAGONAL\",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL)\n- .value(\"Aspect_HS_GRID_DIAGONAL_WIDE\",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL_WIDE)\n- .value(\"Aspect_HS_NB\",Aspect_HatchStyle::Aspect_HS_NB).export_values();\n+ m.attr(\"Aspect_VKeyFlags_NONE\") = py::cast(int(Aspect_VKeyFlags_NONE));\n+ m.attr(\"Aspect_VKeyFlags_SHIFT\") = py::cast(int(Aspect_VKeyFlags_SHIFT));\n+ m.attr(\"Aspect_VKeyFlags_CTRL\") = py::cast(int(Aspect_VKeyFlags_CTRL));\n+ m.attr(\"Aspect_VKeyFlags_ALT\") = py::cast(int(Aspect_VKeyFlags_ALT));\n+ m.attr(\"Aspect_VKeyFlags_MENU\") = py::cast(int(Aspect_VKeyFlags_MENU));\n+ m.attr(\"Aspect_VKeyFlags_META\") = py::cast(int(Aspect_VKeyFlags_META));\n+ m.attr(\"Aspect_VKeyFlags_ALL\") = py::cast(int(Aspect_VKeyFlags_ALL));\n+ m.attr(\"Aspect_VKeyMouse_NONE\") = py::cast(int(Aspect_VKeyMouse_NONE));\n+ m.attr(\"Aspect_VKeyMouse_LeftButton\") = py::cast(int(Aspect_VKeyMouse_LeftButton));\n+ m.attr(\"Aspect_VKeyMouse_MiddleButton\") = py::cast(int(Aspect_VKeyMouse_MiddleButton));\n+ m.attr(\"Aspect_VKeyMouse_RightButton\") = py::cast(int(Aspect_VKeyMouse_RightButton));\n+ m.attr(\"Aspect_VKeyMouse_MainButtons\") = py::cast(int(Aspect_VKeyMouse_MainButtons));\n+ py::enum_(m, \"Aspect_InteriorStyle\",R\"#(Interior types for primitive faces.)#\")\n+ .value(\"Aspect_IS_EMPTY\",Aspect_InteriorStyle::Aspect_IS_EMPTY)\n+ .value(\"Aspect_IS_SOLID\",Aspect_InteriorStyle::Aspect_IS_SOLID)\n+ .value(\"Aspect_IS_HATCH\",Aspect_InteriorStyle::Aspect_IS_HATCH)\n+ .value(\"Aspect_IS_HIDDENLINE\",Aspect_InteriorStyle::Aspect_IS_HIDDENLINE)\n+ .value(\"Aspect_IS_POINT\",Aspect_InteriorStyle::Aspect_IS_POINT)\n+ .value(\"Aspect_IS_HOLLOW\",Aspect_InteriorStyle::Aspect_IS_HOLLOW).export_values();\n+ 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.)#\")\n+ .value(\"Aspect_TOD_RELATIVE\",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE)\n+ .value(\"Aspect_TOD_ABSOLUTE\",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values();\n+ py::enum_(m, \"Aspect_WidthOfLine\",R\"#(Definition of line types)#\")\n+ .value(\"Aspect_WOL_THIN\",Aspect_WidthOfLine::Aspect_WOL_THIN)\n+ .value(\"Aspect_WOL_MEDIUM\",Aspect_WidthOfLine::Aspect_WOL_MEDIUM)\n+ .value(\"Aspect_WOL_THICK\",Aspect_WidthOfLine::Aspect_WOL_THICK)\n+ .value(\"Aspect_WOL_VERYTHICK\",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK)\n+ .value(\"Aspect_WOL_USERDEFINED\",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values();\n+ py::enum_(m, \"Aspect_PolygonOffsetMode\",R\"#()#\")\n+ .value(\"Aspect_POM_Off\",Aspect_PolygonOffsetMode::Aspect_POM_Off)\n+ .value(\"Aspect_POM_Fill\",Aspect_PolygonOffsetMode::Aspect_POM_Fill)\n+ .value(\"Aspect_POM_Line\",Aspect_PolygonOffsetMode::Aspect_POM_Line)\n+ .value(\"Aspect_POM_Point\",Aspect_PolygonOffsetMode::Aspect_POM_Point)\n+ .value(\"Aspect_POM_All\",Aspect_PolygonOffsetMode::Aspect_POM_All)\n+ .value(\"Aspect_POM_None\",Aspect_PolygonOffsetMode::Aspect_POM_None)\n+ .value(\"Aspect_POM_Mask\",Aspect_PolygonOffsetMode::Aspect_POM_Mask).export_values();\n py::enum_(m, \"Aspect_XRActionType\",R\"#(XR action type.)#\")\n .value(\"Aspect_XRActionType_InputDigital\",Aspect_XRActionType::Aspect_XRActionType_InputDigital)\n .value(\"Aspect_XRActionType_InputAnalog\",Aspect_XRActionType::Aspect_XRActionType_InputAnalog)\n .value(\"Aspect_XRActionType_InputPose\",Aspect_XRActionType::Aspect_XRActionType_InputPose)\n .value(\"Aspect_XRActionType_InputSkeletal\",Aspect_XRActionType::Aspect_XRActionType_InputSkeletal)\n .value(\"Aspect_XRActionType_OutputHaptic\",Aspect_XRActionType::Aspect_XRActionType_OutputHaptic).export_values();\n+ py::enum_(m, \"Aspect_TypeOfLine\",R\"#(Definition of line types)#\")\n+ .value(\"Aspect_TOL_EMPTY\",Aspect_TypeOfLine::Aspect_TOL_EMPTY)\n+ .value(\"Aspect_TOL_SOLID\",Aspect_TypeOfLine::Aspect_TOL_SOLID)\n+ .value(\"Aspect_TOL_DASH\",Aspect_TypeOfLine::Aspect_TOL_DASH)\n+ .value(\"Aspect_TOL_DOT\",Aspect_TypeOfLine::Aspect_TOL_DOT)\n+ .value(\"Aspect_TOL_DOTDASH\",Aspect_TypeOfLine::Aspect_TOL_DOTDASH)\n+ .value(\"Aspect_TOL_USERDEFINED\",Aspect_TypeOfLine::Aspect_TOL_USERDEFINED).export_values();\n \n //Python trampoline classes\n class Py_Aspect_Grid : public Aspect_Grid{\n public:\n using Aspect_Grid::Aspect_Grid;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BOPAlgo_pre.cpp", "source2": "./usr/share/libocp/OCP/BOPAlgo_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -89,14 +89,18 @@\n py::module m = main_module.def_submodule(\"BOPAlgo\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"BOPAlgo_GlueEnum\",R\"#(The Enumeration describes an additional option for the algorithms in the Boolean Component such as General Fuse, Boolean operations, Section, Maker Volume, Splitter and Cells Builder algorithms.)#\")\n+ .value(\"BOPAlgo_GlueOff\",BOPAlgo_GlueEnum::BOPAlgo_GlueOff)\n+ .value(\"BOPAlgo_GlueShift\",BOPAlgo_GlueEnum::BOPAlgo_GlueShift)\n+ .value(\"BOPAlgo_GlueFull\",BOPAlgo_GlueEnum::BOPAlgo_GlueFull).export_values();\n py::enum_(m, \"BOPAlgo_Operation\",R\"#()#\")\n .value(\"BOPAlgo_COMMON\",BOPAlgo_Operation::BOPAlgo_COMMON)\n .value(\"BOPAlgo_FUSE\",BOPAlgo_Operation::BOPAlgo_FUSE)\n .value(\"BOPAlgo_CUT\",BOPAlgo_Operation::BOPAlgo_CUT)\n .value(\"BOPAlgo_CUT21\",BOPAlgo_Operation::BOPAlgo_CUT21)\n .value(\"BOPAlgo_SECTION\",BOPAlgo_Operation::BOPAlgo_SECTION)\n .value(\"BOPAlgo_UNKNOWN\",BOPAlgo_Operation::BOPAlgo_UNKNOWN).export_values();\n@@ -109,18 +113,14 @@\n .value(\"BOPAlgo_IncompatibilityOfVertex\",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfVertex)\n .value(\"BOPAlgo_IncompatibilityOfEdge\",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfEdge)\n .value(\"BOPAlgo_IncompatibilityOfFace\",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfFace)\n .value(\"BOPAlgo_OperationAborted\",BOPAlgo_CheckStatus::BOPAlgo_OperationAborted)\n .value(\"BOPAlgo_GeomAbs_C0\",BOPAlgo_CheckStatus::BOPAlgo_GeomAbs_C0)\n .value(\"BOPAlgo_InvalidCurveOnSurface\",BOPAlgo_CheckStatus::BOPAlgo_InvalidCurveOnSurface)\n .value(\"BOPAlgo_NotValid\",BOPAlgo_CheckStatus::BOPAlgo_NotValid).export_values();\n- py::enum_(m, \"BOPAlgo_GlueEnum\",R\"#(The Enumeration describes an additional option for the algorithms in the Boolean Component such as General Fuse, Boolean operations, Section, Maker Volume, Splitter and Cells Builder algorithms.)#\")\n- .value(\"BOPAlgo_GlueOff\",BOPAlgo_GlueEnum::BOPAlgo_GlueOff)\n- .value(\"BOPAlgo_GlueShift\",BOPAlgo_GlueEnum::BOPAlgo_GlueShift)\n- .value(\"BOPAlgo_GlueFull\",BOPAlgo_GlueEnum::BOPAlgo_GlueFull).export_values();\n \n //Python trampoline classes\n class Py_BOPAlgo_Algo : public BOPAlgo_Algo{\n public:\n using BOPAlgo_Algo::BOPAlgo_Algo;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BRepBuilderAPI_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepBuilderAPI_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -106,53 +106,53 @@\n py::module m = main_module.def_submodule(\"BRepBuilderAPI\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ 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.)#\")\n+ .value(\"BRepBuilderAPI_WireDone\",BRepBuilderAPI_WireError::BRepBuilderAPI_WireDone)\n+ .value(\"BRepBuilderAPI_EmptyWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_EmptyWire)\n+ .value(\"BRepBuilderAPI_DisconnectedWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_DisconnectedWire)\n+ .value(\"BRepBuilderAPI_NonManifoldWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_NonManifoldWire).export_values();\n+ py::enum_(m, \"BRepBuilderAPI_TransitionMode\",R\"#(Option to manage discontinuities in Sweep)#\")\n+ .value(\"BRepBuilderAPI_Transformed\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed)\n+ .value(\"BRepBuilderAPI_RightCorner\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner)\n+ .value(\"BRepBuilderAPI_RoundCorner\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values();\n py::enum_(m, \"BRepBuilderAPI_PipeError\",R\"#(Errors that can occur at (shell)pipe construction.)#\")\n .value(\"BRepBuilderAPI_PipeDone\",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeDone)\n .value(\"BRepBuilderAPI_PipeNotDone\",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeNotDone)\n .value(\"BRepBuilderAPI_PlaneNotIntersectGuide\",BRepBuilderAPI_PipeError::BRepBuilderAPI_PlaneNotIntersectGuide)\n .value(\"BRepBuilderAPI_ImpossibleContact\",BRepBuilderAPI_PipeError::BRepBuilderAPI_ImpossibleContact).export_values();\n- 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.)#\")\n- .value(\"BRepBuilderAPI_Preserved\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Preserved)\n- .value(\"BRepBuilderAPI_Deleted\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Deleted)\n- .value(\"BRepBuilderAPI_Trimmed\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Trimmed)\n- .value(\"BRepBuilderAPI_Merged\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Merged)\n- .value(\"BRepBuilderAPI_BoundaryModified\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_BoundaryModified).export_values();\n 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.)#\")\n .value(\"BRepBuilderAPI_FaceDone\",BRepBuilderAPI_FaceError::BRepBuilderAPI_FaceDone)\n .value(\"BRepBuilderAPI_NoFace\",BRepBuilderAPI_FaceError::BRepBuilderAPI_NoFace)\n .value(\"BRepBuilderAPI_NotPlanar\",BRepBuilderAPI_FaceError::BRepBuilderAPI_NotPlanar)\n .value(\"BRepBuilderAPI_CurveProjectionFailed\",BRepBuilderAPI_FaceError::BRepBuilderAPI_CurveProjectionFailed)\n .value(\"BRepBuilderAPI_ParametersOutOfRange\",BRepBuilderAPI_FaceError::BRepBuilderAPI_ParametersOutOfRange).export_values();\n- 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.)#\")\n- .value(\"BRepBuilderAPI_WireDone\",BRepBuilderAPI_WireError::BRepBuilderAPI_WireDone)\n- .value(\"BRepBuilderAPI_EmptyWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_EmptyWire)\n- .value(\"BRepBuilderAPI_DisconnectedWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_DisconnectedWire)\n- .value(\"BRepBuilderAPI_NonManifoldWire\",BRepBuilderAPI_WireError::BRepBuilderAPI_NonManifoldWire).export_values();\n 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.)#\")\n .value(\"BRepBuilderAPI_EdgeDone\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_EdgeDone)\n .value(\"BRepBuilderAPI_PointProjectionFailed\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointProjectionFailed)\n .value(\"BRepBuilderAPI_ParameterOutOfRange\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_ParameterOutOfRange)\n .value(\"BRepBuilderAPI_DifferentPointsOnClosedCurve\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentPointsOnClosedCurve)\n .value(\"BRepBuilderAPI_PointWithInfiniteParameter\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointWithInfiniteParameter)\n .value(\"BRepBuilderAPI_DifferentsPointAndParameter\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentsPointAndParameter)\n .value(\"BRepBuilderAPI_LineThroughIdenticPoints\",BRepBuilderAPI_EdgeError::BRepBuilderAPI_LineThroughIdenticPoints).export_values();\n+ 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.)#\")\n+ .value(\"BRepBuilderAPI_Preserved\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Preserved)\n+ .value(\"BRepBuilderAPI_Deleted\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Deleted)\n+ .value(\"BRepBuilderAPI_Trimmed\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Trimmed)\n+ .value(\"BRepBuilderAPI_Merged\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Merged)\n+ .value(\"BRepBuilderAPI_BoundaryModified\",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_BoundaryModified).export_values();\n 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.)#\")\n .value(\"BRepBuilderAPI_ShellDone\",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellDone)\n .value(\"BRepBuilderAPI_EmptyShell\",BRepBuilderAPI_ShellError::BRepBuilderAPI_EmptyShell)\n .value(\"BRepBuilderAPI_DisconnectedShell\",BRepBuilderAPI_ShellError::BRepBuilderAPI_DisconnectedShell)\n .value(\"BRepBuilderAPI_ShellParametersOutOfRange\",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellParametersOutOfRange).export_values();\n- py::enum_(m, \"BRepBuilderAPI_TransitionMode\",R\"#(Option to manage discontinuities in Sweep)#\")\n- .value(\"BRepBuilderAPI_Transformed\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed)\n- .value(\"BRepBuilderAPI_RightCorner\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner)\n- .value(\"BRepBuilderAPI_RoundCorner\",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"BRepBuilderAPI\",R\"#(The BRepBuilderAPI package provides an Application Programming Interface for the BRep topology data structure.)#\");\n py::class_ >(m,\"BRepBuilderAPI_Collect\",R\"#()#\");\n py::class_ >(m,\"BRepBuilderAPI_Command\",R\"#(Root class for all commands in BRepBuilderAPI.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/BRepFeat_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepFeat_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -80,20 +80,14 @@\n // user-defined inclusion per module in the body\n \n // enums\n py::enum_(m, \"BRepFeat_Status\",R\"#()#\")\n .value(\"BRepFeat_NoError\",BRepFeat_Status::BRepFeat_NoError)\n .value(\"BRepFeat_InvalidPlacement\",BRepFeat_Status::BRepFeat_InvalidPlacement)\n .value(\"BRepFeat_HoleTooLong\",BRepFeat_Status::BRepFeat_HoleTooLong).export_values();\n- 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.)#\")\n- .value(\"BRepFeat_NoSelection\",BRepFeat_PerfSelection::BRepFeat_NoSelection)\n- .value(\"BRepFeat_SelectionFU\",BRepFeat_PerfSelection::BRepFeat_SelectionFU)\n- .value(\"BRepFeat_SelectionU\",BRepFeat_PerfSelection::BRepFeat_SelectionU)\n- .value(\"BRepFeat_SelectionSh\",BRepFeat_PerfSelection::BRepFeat_SelectionSh)\n- .value(\"BRepFeat_SelectionShU\",BRepFeat_PerfSelection::BRepFeat_SelectionShU).export_values();\n py::enum_(m, \"BRepFeat_StatusError\",R\"#(Describes the error.)#\")\n .value(\"BRepFeat_OK\",BRepFeat_StatusError::BRepFeat_OK)\n .value(\"BRepFeat_BadDirect\",BRepFeat_StatusError::BRepFeat_BadDirect)\n .value(\"BRepFeat_BadIntersect\",BRepFeat_StatusError::BRepFeat_BadIntersect)\n .value(\"BRepFeat_EmptyBaryCurve\",BRepFeat_StatusError::BRepFeat_EmptyBaryCurve)\n .value(\"BRepFeat_EmptyCutResult\",BRepFeat_StatusError::BRepFeat_EmptyCutResult)\n .value(\"BRepFeat_FalseSide\",BRepFeat_StatusError::BRepFeat_FalseSide)\n@@ -115,14 +109,20 @@\n .value(\"BRepFeat_NoParts\",BRepFeat_StatusError::BRepFeat_NoParts)\n .value(\"BRepFeat_NoProjPt\",BRepFeat_StatusError::BRepFeat_NoProjPt)\n .value(\"BRepFeat_NotInitialized\",BRepFeat_StatusError::BRepFeat_NotInitialized)\n .value(\"BRepFeat_NotYetImplemented\",BRepFeat_StatusError::BRepFeat_NotYetImplemented)\n .value(\"BRepFeat_NullRealTool\",BRepFeat_StatusError::BRepFeat_NullRealTool)\n .value(\"BRepFeat_NullToolF\",BRepFeat_StatusError::BRepFeat_NullToolF)\n .value(\"BRepFeat_NullToolU\",BRepFeat_StatusError::BRepFeat_NullToolU).export_values();\n+ 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.)#\")\n+ .value(\"BRepFeat_NoSelection\",BRepFeat_PerfSelection::BRepFeat_NoSelection)\n+ .value(\"BRepFeat_SelectionFU\",BRepFeat_PerfSelection::BRepFeat_SelectionFU)\n+ .value(\"BRepFeat_SelectionU\",BRepFeat_PerfSelection::BRepFeat_SelectionU)\n+ .value(\"BRepFeat_SelectionSh\",BRepFeat_PerfSelection::BRepFeat_SelectionSh)\n+ .value(\"BRepFeat_SelectionShU\",BRepFeat_PerfSelection::BRepFeat_SelectionShU).export_values();\n \n //Python trampoline classes\n class Py_BRepFeat_Form : public BRepFeat_Form{\n public:\n using BRepFeat_Form::BRepFeat_Form;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BRepFill_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepFill_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -160,22 +160,22 @@\n py::module m = main_module.def_submodule(\"BRepFill\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"BRepFill_TransitionStyle\",R\"#()#\")\n- .value(\"BRepFill_Modified\",BRepFill_TransitionStyle::BRepFill_Modified)\n- .value(\"BRepFill_Right\",BRepFill_TransitionStyle::BRepFill_Right)\n- .value(\"BRepFill_Round\",BRepFill_TransitionStyle::BRepFill_Round).export_values();\n py::enum_(m, \"BRepFill_TypeOfContact\",R\"#(A pair of bound shapes with the result.)#\")\n .value(\"BRepFill_NoContact\",BRepFill_TypeOfContact::BRepFill_NoContact)\n .value(\"BRepFill_Contact\",BRepFill_TypeOfContact::BRepFill_Contact)\n .value(\"BRepFill_ContactOnBorder\",BRepFill_TypeOfContact::BRepFill_ContactOnBorder).export_values();\n+ py::enum_(m, \"BRepFill_TransitionStyle\",R\"#()#\")\n+ .value(\"BRepFill_Modified\",BRepFill_TransitionStyle::BRepFill_Modified)\n+ .value(\"BRepFill_Right\",BRepFill_TransitionStyle::BRepFill_Right)\n+ .value(\"BRepFill_Round\",BRepFill_TransitionStyle::BRepFill_Round).export_values();\n py::enum_(m, \"BRepFill_ThruSectionErrorStatus\",R\"#(Errors that can occur at thrusection algorithm.)#\")\n .value(\"BRepFill_ThruSectionErrorStatus_Done\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Done)\n .value(\"BRepFill_ThruSectionErrorStatus_NotDone\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotDone)\n .value(\"BRepFill_ThruSectionErrorStatus_NotSameTopology\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotSameTopology)\n .value(\"BRepFill_ThruSectionErrorStatus_ProfilesInconsistent\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_ProfilesInconsistent)\n .value(\"BRepFill_ThruSectionErrorStatus_WrongUsage\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_WrongUsage)\n .value(\"BRepFill_ThruSectionErrorStatus_Null3DCurve\",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Null3DCurve)\n"}, {"source1": "./usr/share/libocp/OCP/BRepLib_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepLib_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -100,44 +100,44 @@\n py::module m = main_module.def_submodule(\"BRepLib\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"BRepLib_ShapeModification\",R\"#(Modification type after a topologic operation.)#\")\n- .value(\"BRepLib_Preserved\",BRepLib_ShapeModification::BRepLib_Preserved)\n- .value(\"BRepLib_Deleted\",BRepLib_ShapeModification::BRepLib_Deleted)\n- .value(\"BRepLib_Trimmed\",BRepLib_ShapeModification::BRepLib_Trimmed)\n- .value(\"BRepLib_Merged\",BRepLib_ShapeModification::BRepLib_Merged)\n- .value(\"BRepLib_BoundaryModified\",BRepLib_ShapeModification::BRepLib_BoundaryModified).export_values();\n- py::enum_(m, \"BRepLib_FaceError\",R\"#(Errors that can occur at face construction. no error not initialised)#\")\n- .value(\"BRepLib_FaceDone\",BRepLib_FaceError::BRepLib_FaceDone)\n- .value(\"BRepLib_NoFace\",BRepLib_FaceError::BRepLib_NoFace)\n- .value(\"BRepLib_NotPlanar\",BRepLib_FaceError::BRepLib_NotPlanar)\n- .value(\"BRepLib_CurveProjectionFailed\",BRepLib_FaceError::BRepLib_CurveProjectionFailed)\n- .value(\"BRepLib_ParametersOutOfRange\",BRepLib_FaceError::BRepLib_ParametersOutOfRange).export_values();\n py::enum_(m, \"BRepLib_ShellError\",R\"#(Errors that can occur at shell construction.)#\")\n .value(\"BRepLib_ShellDone\",BRepLib_ShellError::BRepLib_ShellDone)\n .value(\"BRepLib_EmptyShell\",BRepLib_ShellError::BRepLib_EmptyShell)\n .value(\"BRepLib_DisconnectedShell\",BRepLib_ShellError::BRepLib_DisconnectedShell)\n .value(\"BRepLib_ShellParametersOutOfRange\",BRepLib_ShellError::BRepLib_ShellParametersOutOfRange).export_values();\n py::enum_(m, \"BRepLib_WireError\",R\"#(Errors that can occur at wire construction. no error)#\")\n .value(\"BRepLib_WireDone\",BRepLib_WireError::BRepLib_WireDone)\n .value(\"BRepLib_EmptyWire\",BRepLib_WireError::BRepLib_EmptyWire)\n .value(\"BRepLib_DisconnectedWire\",BRepLib_WireError::BRepLib_DisconnectedWire)\n .value(\"BRepLib_NonManifoldWire\",BRepLib_WireError::BRepLib_NonManifoldWire).export_values();\n+ py::enum_(m, \"BRepLib_ShapeModification\",R\"#(Modification type after a topologic operation.)#\")\n+ .value(\"BRepLib_Preserved\",BRepLib_ShapeModification::BRepLib_Preserved)\n+ .value(\"BRepLib_Deleted\",BRepLib_ShapeModification::BRepLib_Deleted)\n+ .value(\"BRepLib_Trimmed\",BRepLib_ShapeModification::BRepLib_Trimmed)\n+ .value(\"BRepLib_Merged\",BRepLib_ShapeModification::BRepLib_Merged)\n+ .value(\"BRepLib_BoundaryModified\",BRepLib_ShapeModification::BRepLib_BoundaryModified).export_values();\n py::enum_(m, \"BRepLib_EdgeError\",R\"#(Errors that can occur at edge construction. no error)#\")\n .value(\"BRepLib_EdgeDone\",BRepLib_EdgeError::BRepLib_EdgeDone)\n .value(\"BRepLib_PointProjectionFailed\",BRepLib_EdgeError::BRepLib_PointProjectionFailed)\n .value(\"BRepLib_ParameterOutOfRange\",BRepLib_EdgeError::BRepLib_ParameterOutOfRange)\n .value(\"BRepLib_DifferentPointsOnClosedCurve\",BRepLib_EdgeError::BRepLib_DifferentPointsOnClosedCurve)\n .value(\"BRepLib_PointWithInfiniteParameter\",BRepLib_EdgeError::BRepLib_PointWithInfiniteParameter)\n .value(\"BRepLib_DifferentsPointAndParameter\",BRepLib_EdgeError::BRepLib_DifferentsPointAndParameter)\n .value(\"BRepLib_LineThroughIdenticPoints\",BRepLib_EdgeError::BRepLib_LineThroughIdenticPoints).export_values();\n+ py::enum_(m, \"BRepLib_FaceError\",R\"#(Errors that can occur at face construction. no error not initialised)#\")\n+ .value(\"BRepLib_FaceDone\",BRepLib_FaceError::BRepLib_FaceDone)\n+ .value(\"BRepLib_NoFace\",BRepLib_FaceError::BRepLib_NoFace)\n+ .value(\"BRepLib_NotPlanar\",BRepLib_FaceError::BRepLib_NotPlanar)\n+ .value(\"BRepLib_CurveProjectionFailed\",BRepLib_FaceError::BRepLib_CurveProjectionFailed)\n+ .value(\"BRepLib_ParametersOutOfRange\",BRepLib_FaceError::BRepLib_ParametersOutOfRange).export_values();\n \n //Python trampoline classes\n class Py_BRepLib_PointCloudShape : public BRepLib_PointCloudShape{\n public:\n using BRepLib_PointCloudShape::BRepLib_PointCloudShape;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BRepMesh_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepMesh_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -91,27 +91,27 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"BRepMesh_FactoryError\",R\"#()#\")\n+ .value(\"BRepMesh_FE_NOERROR\",BRepMesh_FactoryError::BRepMesh_FE_NOERROR)\n+ .value(\"BRepMesh_FE_LIBRARYNOTFOUND\",BRepMesh_FactoryError::BRepMesh_FE_LIBRARYNOTFOUND)\n+ .value(\"BRepMesh_FE_FUNCTIONNOTFOUND\",BRepMesh_FactoryError::BRepMesh_FE_FUNCTIONNOTFOUND)\n+ .value(\"BRepMesh_FE_CANNOTCREATEALGO\",BRepMesh_FactoryError::BRepMesh_FE_CANNOTCREATEALGO).export_values();\n py::enum_(m, \"BRepMesh_DegreeOfFreedom\",R\"#()#\")\n .value(\"BRepMesh_Free\",BRepMesh_DegreeOfFreedom::BRepMesh_Free)\n .value(\"BRepMesh_InVolume\",BRepMesh_DegreeOfFreedom::BRepMesh_InVolume)\n .value(\"BRepMesh_OnSurface\",BRepMesh_DegreeOfFreedom::BRepMesh_OnSurface)\n .value(\"BRepMesh_OnCurve\",BRepMesh_DegreeOfFreedom::BRepMesh_OnCurve)\n .value(\"BRepMesh_Fixed\",BRepMesh_DegreeOfFreedom::BRepMesh_Fixed)\n .value(\"BRepMesh_Frontier\",BRepMesh_DegreeOfFreedom::BRepMesh_Frontier)\n .value(\"BRepMesh_Deleted\",BRepMesh_DegreeOfFreedom::BRepMesh_Deleted).export_values();\n- py::enum_(m, \"BRepMesh_FactoryError\",R\"#()#\")\n- .value(\"BRepMesh_FE_NOERROR\",BRepMesh_FactoryError::BRepMesh_FE_NOERROR)\n- .value(\"BRepMesh_FE_LIBRARYNOTFOUND\",BRepMesh_FactoryError::BRepMesh_FE_LIBRARYNOTFOUND)\n- .value(\"BRepMesh_FE_FUNCTIONNOTFOUND\",BRepMesh_FactoryError::BRepMesh_FE_FUNCTIONNOTFOUND)\n- .value(\"BRepMesh_FE_CANNOTCREATEALGO\",BRepMesh_FactoryError::BRepMesh_FE_CANNOTCREATEALGO).export_values();\n \n //Python trampoline classes\n class Py_BRepMesh_DiscretRoot : public BRepMesh_DiscretRoot{\n public:\n using BRepMesh_DiscretRoot::BRepMesh_DiscretRoot;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BRepOffset_pre.cpp", "source2": "./usr/share/libocp/OCP/BRepOffset_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -102,23 +102,23 @@\n .value(\"BRepOffset_NullOffset\",BRepOffset_Error::BRepOffset_NullOffset)\n .value(\"BRepOffset_NotConnectedShell\",BRepOffset_Error::BRepOffset_NotConnectedShell)\n .value(\"BRepOffset_CannotTrimEdges\",BRepOffset_Error::BRepOffset_CannotTrimEdges)\n .value(\"BRepOffset_CannotFuseVertices\",BRepOffset_Error::BRepOffset_CannotFuseVertices)\n .value(\"BRepOffset_CannotExtentEdge\",BRepOffset_Error::BRepOffset_CannotExtentEdge)\n .value(\"BRepOffset_UserBreak\",BRepOffset_Error::BRepOffset_UserBreak)\n .value(\"BRepOffset_MixedConnectivity\",BRepOffset_Error::BRepOffset_MixedConnectivity).export_values();\n- 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.)#\")\n- .value(\"BRepOffset_Skin\",BRepOffset_Mode::BRepOffset_Skin)\n- .value(\"BRepOffset_Pipe\",BRepOffset_Mode::BRepOffset_Pipe)\n- .value(\"BRepOffset_RectoVerso\",BRepOffset_Mode::BRepOffset_RectoVerso).export_values();\n 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)#\")\n .value(\"BRepOffset_Good\",BRepOffset_Status::BRepOffset_Good)\n .value(\"BRepOffset_Reversed\",BRepOffset_Status::BRepOffset_Reversed)\n .value(\"BRepOffset_Degenerated\",BRepOffset_Status::BRepOffset_Degenerated)\n .value(\"BRepOffset_Unknown\",BRepOffset_Status::BRepOffset_Unknown).export_values();\n+ 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.)#\")\n+ .value(\"BRepOffset_Skin\",BRepOffset_Mode::BRepOffset_Skin)\n+ .value(\"BRepOffset_Pipe\",BRepOffset_Mode::BRepOffset_Pipe)\n+ .value(\"BRepOffset_RectoVerso\",BRepOffset_Mode::BRepOffset_RectoVerso).export_values();\n py::enum_(m, \"BRepOffsetSimple_Status\",R\"#()#\")\n .value(\"BRepOffsetSimple_OK\",BRepOffsetSimple_Status::BRepOffsetSimple_OK)\n .value(\"BRepOffsetSimple_NullInputShape\",BRepOffsetSimple_Status::BRepOffsetSimple_NullInputShape)\n .value(\"BRepOffsetSimple_ErrorOffsetComputation\",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorOffsetComputation)\n .value(\"BRepOffsetSimple_ErrorWallFaceComputation\",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorWallFaceComputation)\n .value(\"BRepOffsetSimple_ErrorInvalidNbShells\",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorInvalidNbShells)\n .value(\"BRepOffsetSimple_ErrorNonClosedShell\",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorNonClosedShell).export_values();\n"}, {"source1": "./usr/share/libocp/OCP/BSplCLib_pre.cpp", "source2": "./usr/share/libocp/OCP/BSplCLib_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -37,21 +37,21 @@\n py::module m = main_module.def_submodule(\"BSplCLib\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"BSplCLib_KnotDistribution\",R\"#(This enumeration describes the repartition of the knots sequence. If all the knots differ by the same positive constant from the preceding knot the \"KnotDistribution\" is else it is )#\")\n+ .value(\"BSplCLib_NonUniform\",BSplCLib_KnotDistribution::BSplCLib_NonUniform)\n+ .value(\"BSplCLib_Uniform\",BSplCLib_KnotDistribution::BSplCLib_Uniform).export_values();\n py::enum_(m, \"BSplCLib_MultDistribution\",R\"#(This enumeration describes the form of the sequence of mutiplicities. MultDistribution is :)#\")\n .value(\"BSplCLib_NonConstant\",BSplCLib_MultDistribution::BSplCLib_NonConstant)\n .value(\"BSplCLib_Constant\",BSplCLib_MultDistribution::BSplCLib_Constant)\n .value(\"BSplCLib_QuasiConstant\",BSplCLib_MultDistribution::BSplCLib_QuasiConstant).export_values();\n- py::enum_(m, \"BSplCLib_KnotDistribution\",R\"#(This enumeration describes the repartition of the knots sequence. If all the knots differ by the same positive constant from the preceding knot the \"KnotDistribution\" is else it is )#\")\n- .value(\"BSplCLib_NonUniform\",BSplCLib_KnotDistribution::BSplCLib_NonUniform)\n- .value(\"BSplCLib_Uniform\",BSplCLib_KnotDistribution::BSplCLib_Uniform).export_values();\n \n //Python trampoline classes\n class Py_BSplCLib_EvaluatorFunction : public BSplCLib_EvaluatorFunction{\n public:\n using BSplCLib_EvaluatorFunction::BSplCLib_EvaluatorFunction;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/BVH_tmpl.hxx", "source2": "./usr/share/libocp/OCP/BVH_tmpl.hxx", "comments": ["Ordering differences only"], "unified_diff": "@@ -47,199 +47,197 @@\n \n // user-defined pre\n #include \"OCP_specific.inc\"\n \n // Class template handling functions\n \n template \n-void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){\n- 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).)#\");\n+void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n template \n-void register_template_BVH_LinearBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n+void register_template_BVH_QueueBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n .def(\"Build\",\n- (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build,\n- R\"#(Builds BVH.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n+ (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build,\n+ R\"#(Builds BVH using specific algorithm.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n ;\n };\n \n template \n-void preregister_template_BoundData(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_BVH_Transform(py::object &m, const char *name){\n+ py::class_ , opencascade::handle> , BVH_Properties >(m,name,R\"#(Stores transform properties of geometric object.)#\");\n }\n \n template \n-void register_template_BoundData(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_Transform(py::object &m, const char *name){\n+ static_cast , opencascade::handle> , BVH_Properties >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const typename BVH_Transform::BVH_MatNt & >() ,py::arg(\"theTransform\") )\n+ .def(\"Transform\",\n+ ( const typename BVH_Transform::BVH_MatNt & (BVH_Transform::*)() const) &BVH_Transform::Transform,\n+ R\"#(Returns transformation matrix.)#\" )\n+ .def(\"SetTransform\",\n+ (void (BVH_Transform::*)( const typename BVH_Transform::BVH_MatNt & ) ) &BVH_Transform::SetTransform,\n+ R\"#(Sets new transformation matrix.)#\" ,py::arg(\"theTransform\"))\n+ .def(\"Inversed\",\n+ ( const typename BVH_Transform::BVH_MatNt & (BVH_Transform::*)() const) &BVH_Transform::Inversed,\n+ R\"#(Returns inversed transformation matrix.)#\" )\n+ .def(\"Apply\",\n+ (BVH_Box (BVH_Transform::*)( const BVH_Box & ) const) &BVH_Transform::Apply,\n+ R\"#(Applies transformation matrix to bounding box.)#\" ,py::arg(\"theBox\"))\n ;\n };\n \n template \n-void preregister_template_UpdateBoundTask(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Task for parallel bounds updating.)#\");\n+void preregister_template_MatrixOp(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_UpdateBoundTask(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Standard_Boolean >() ,py::arg(\"isParallel\") )\n+void register_template_MatrixOp(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_BVH_BaseBox(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Base class for BVH_Box (CRTP idiom is used).)#\");\n+void preregister_template_UnitVector(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_BVH_BaseBox(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_UnitVector(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n-template \n-void preregister_template_BVH_Box(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Defines axis aligned bounding box (AABB) based on BVH vectors.)#\");\n+template \n+void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){\n+ py::class_ , shared_ptr_nodelete> >(m,name,R\"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#\");\n }\n \n-template \n-void register_template_BVH_Box(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const typename BVH_Box::BVH_VecNt & >() ,py::arg(\"thePoint\") )\n- .def(py::init< const typename BVH_Box::BVH_VecNt &, const typename BVH_Box::BVH_VecNt & >() ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\") )\n- .def(\"Clear\",\n- (void (BVH_Box::*)() ) &BVH_Box::Clear,\n- R\"#(Clears bounding box.)#\" )\n- .def(\"IsValid\",\n- (Standard_Boolean (BVH_Box::*)() const) &BVH_Box::IsValid,\n- R\"#(Is bounding box valid?)#\" )\n- .def(\"Add\",\n- (void (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & ) ) &BVH_Box::Add,\n- R\"#(Appends new point to the bounding box.)#\" ,py::arg(\"thePoint\"))\n- .def(\"Combine\",\n- (void (BVH_Box::*)( const BVH_Box & ) ) &BVH_Box::Combine,\n- R\"#(Combines bounding box with another one.)#\" ,py::arg(\"theBox\"))\n- .def(\"CornerMin\",\n- ( const typename BVH_Box::BVH_VecNt & (BVH_Box::*)() const) &BVH_Box::CornerMin,\n- R\"#(Returns minimum point of bounding box.)#\" )\n- .def(\"CornerMax\",\n- ( const typename BVH_Box::BVH_VecNt & (BVH_Box::*)() const) &BVH_Box::CornerMax,\n- R\"#(Returns maximum point of bounding box.)#\" )\n- .def(\"CornerMin\",\n- (typename BVH_Box::BVH_VecNt & (BVH_Box::*)() ) &BVH_Box::CornerMin,\n- R\"#(Returns minimum point of bounding box.)#\" )\n- .def(\"CornerMax\",\n- (typename BVH_Box::BVH_VecNt & (BVH_Box::*)() ) &BVH_Box::CornerMax,\n- R\"#(Returns maximum point of bounding box.)#\" )\n- .def(\"Area\",\n- (T (BVH_Box::*)() const) &BVH_Box::Area,\n- R\"#(Returns surface area of bounding box. If the box is degenerated into line, returns the perimeter instead.)#\" )\n- .def(\"Size\",\n- (typename BVH_Box::BVH_VecNt (BVH_Box::*)() const) &BVH_Box::Size,\n- R\"#(Returns diagonal of bounding box.)#\" )\n- .def(\"Center\",\n- (typename BVH_Box::BVH_VecNt (BVH_Box::*)() const) &BVH_Box::Center,\n- R\"#(Returns center of bounding box.)#\" )\n- .def(\"Center\",\n- (T (BVH_Box::*)( const Standard_Integer ) const) &BVH_Box::Center,\n- R\"#(Returns center of bounding box along the given axis.)#\" ,py::arg(\"theAxis\"))\n- .def(\"DumpJson\",\n- (void (BVH_Box::*)( Standard_OStream & , Standard_Integer ) const) &BVH_Box::DumpJson,\n- R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"theDepth\")=static_cast(- 1))\n- .def(\"InitFromJson\",\n- (Standard_Boolean (BVH_Box::*)( const Standard_SStream & , Standard_Integer & ) ) &BVH_Box::InitFromJson,\n- R\"#(Inits the content of me from the stream)#\" ,py::arg(\"theSStream\"), py::arg(\"theStreamPos\"))\n- .def(\"IsOut\",\n- (Standard_Boolean (BVH_Box::*)( const BVH_Box & ) const) &BVH_Box::IsOut,\n- R\"#(Checks if the Box is out of the other box.)#\" ,py::arg(\"theOther\"))\n- .def(\"IsOut\",\n- (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & , const typename BVH_Box::BVH_VecNt & ) const) &BVH_Box::IsOut,\n- R\"#(Checks if the Box is out of the other box defined by two points.)#\" ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\"))\n- .def(\"Contains\",\n- (Standard_Boolean (BVH_Box::*)( const BVH_Box & , Standard_Boolean & ) const) &BVH_Box::Contains,\n- R\"#(Checks if the Box fully contains the other box.)#\" ,py::arg(\"theOther\"), py::arg(\"hasOverlap\"))\n- .def(\"Contains\",\n- (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & , const typename BVH_Box::BVH_VecNt & , Standard_Boolean & ) const) &BVH_Box::Contains,\n- R\"#(Checks if the Box is fully contains the other box.)#\" ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\"), py::arg(\"hasOverlap\"))\n- .def(\"IsOut\",\n- (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & ) const) &BVH_Box::IsOut,\n- R\"#(Checks if the Point is out of the box.)#\" ,py::arg(\"thePoint\"))\n- .def(\"__len__\",[](const BVH_Box &self)\n- { return self.Size(); }\n- )\n+template \n+void register_template_BVH_BaseTraverse(py::object &m, const char *name){\n+ static_cast , shared_ptr_nodelete> >>(m.attr(name))\n+ .def(\"IsMetricBetter\",\n+ (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter,\n+ 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\"))\n+ .def(\"RejectMetric\",\n+ (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric,\n+ R\"#(Rejects the node by the metric)#\" ,py::arg(\"arg\"))\n+ .def(\"Stop\",\n+ (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop,\n+ R\"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#\" )\n ;\n };\n \n-template \n-void preregister_template_CenterAxis(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculating box center along the given axis.)#\");\n+template \n+void preregister_template_BVH_Traverse(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template \n-void register_template_CenterAxis(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_BVH_Traverse(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"SetBVHSet\",\n+ (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet,\n+ R\"#(Sets the BVH Set containing the BVH tree)#\" ,py::arg(\"theBVHSet\"))\n+ .def(\"AcceptMetric\",\n+ (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric,\n+ 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\"))\n+ .def(\"RejectNode\",\n+ (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode,\n+ 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\"))\n+ .def(\"Accept\",\n+ (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept,\n+ 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\"))\n+ .def(\"Select\",\n+ (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select,\n+ 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.)#\" )\n+ .def(\"Select\",\n+ (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select,\n+ 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\"))\n ;\n };\n \n-template \n-void preregister_template_SurfaceCalculator(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculating surface area of the box.)#\");\n+template \n+void preregister_template_BVH_PairTraverse(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template \n-void register_template_SurfaceCalculator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_BVH_PairTraverse(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"SetBVHSets\",\n+ (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets,\n+ R\"#(Sets the BVH Sets containing the BVH trees)#\" ,py::arg(\"theBVHSet1\"), py::arg(\"theBVHSet2\"))\n+ .def(\"RejectNode\",\n+ (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,\n+ 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\"))\n+ .def(\"Accept\",\n+ (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept,\n+ R\"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n+ .def(\"Select\",\n+ (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select,\n+ 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.)#\" )\n+ .def(\"Select\",\n+ (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select,\n+ 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\"))\n ;\n };\n \n-template \n-void preregister_template_BoxMinMax(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculate component-wise vector minimum and maximum (optimized version).)#\");\n+template \n+void preregister_template_BVH_NodeInStack(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary structure for keeping the nodes to process)#\");\n }\n \n-template \n-void register_template_BoxMinMax(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def_static(\"CwiseMin_s\",\n- (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMin,\n- R\"#()#\" ,py::arg(\"theVec1\"), py::arg(\"theVec2\"))\n- .def_static(\"CwiseMax_s\",\n- (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMax,\n- R\"#()#\" ,py::arg(\"theVec1\"), py::arg(\"theVec2\"))\n+template \n+void register_template_BVH_NodeInStack(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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 ( )) )\n ;\n };\n \n-template \n-void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Performs building of BVH tree using sweep plane SAH algorithm.)#\");\n+template \n+void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary structure for keeping the pair of nodes to process)#\");\n }\n \n-template \n-void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n+template \n+void register_template_BVH_PairNodesInStack(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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 ( )) )\n ;\n };\n \n template \n-void preregister_template_BVH_Object(py::object &m, const char *name){\n- py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R\"#(Abstract geometric object bounded by BVH box.)#\");\n+void preregister_template_BVH_Sorter(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool object to sort abstract primitive set.)#\");\n }\n \n template \n-void register_template_BVH_Object(py::object &m, const char *name){\n- static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name))\n+void register_template_BVH_Sorter(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(\"Box\",\n- (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box,\n- R\"#(Returns AABB of the geometric object.)#\" )\n+ .def(\"Perform\",\n+ (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform,\n+ R\"#(Sorts the set.)#\" ,py::arg(\"theSet\"))\n+ .def(\"Perform\",\n+ (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform,\n+ R\"#(Sorts the given (inclusive) range in the set.)#\" ,py::arg(\"theSet\"), py::arg(\"theStart\"), py::arg(\"theFinal\"))\n+ .def(\"IsParallel\",\n+ (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel,\n+ R\"#(Returns parallel flag.)#\" )\n+ .def(\"SetParallel\",\n+ (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel,\n+ R\"#(Set parallel flag contolling possibility of parallel execution.)#\" ,py::arg(\"isParallel\"))\n ;\n };\n \n template \n void preregister_template_BVH_Ray(py::object &m, const char *name){\n py::class_ , shared_ptr> >(m,name,R\"#(Describes a ray based on BVH vectors.)#\");\n }\n@@ -248,14 +246,45 @@\n void register_template_BVH_Ray(py::object &m, const char *name){\n static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< const int &, const int & >() ,py::arg(\"theOrigin\"), py::arg(\"theDirect\") )\n ;\n };\n \n template \n+void preregister_template_BVH_Geometry(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#\");\n+}\n+\n+template \n+void register_template_BVH_Geometry(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n+ .def(\"IsDirty\",\n+ (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty,\n+ R\"#(Returns TRUE if geometry state should be updated.)#\" )\n+ .def(\"MarkDirty\",\n+ (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty,\n+ R\"#(Marks geometry as outdated.)#\" )\n+ .def(\"Box\",\n+ (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box,\n+ R\"#(Returns AABB of the whole geometry.)#\" )\n+ .def(\"BVH\",\n+ ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH,\n+ R\"#(Returns BVH tree (and builds it if necessary).)#\" )\n+ .def(\"Builder\",\n+ ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder,\n+ R\"#(Returns the method (builder) used to construct BVH.)#\" )\n+ .def(\"SetBuilder\",\n+ (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder,\n+ R\"#(Sets the method (builder) used to construct BVH.)#\" ,py::arg(\"theBuilder\"))\n+ ;\n+};\n+\n+template \n void preregister_template_BVH_Tools(py::object &m, const char *name){\n py::class_ , shared_ptr> >(m,name,R\"#(Defines a set of static methods operating with points and bounding boxes.)#\");\n }\n \n template \n void register_template_BVH_Tools(py::object &m, const char *name){\n static_cast , shared_ptr> >>(m.attr(name))\n@@ -295,136 +324,14 @@\n .def_static(\"RayBoxIntersection_s\",\n (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,\n 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\"))\n ;\n };\n \n template \n-void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_BVH_PrimitiveSet(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n- .def(\"Box\",\n- (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box,\n- R\"#(Returns AABB of primitive set.)#\" )\n- .def(\"BVH\",\n- ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH,\n- R\"#(Returns BVH tree (and builds it if necessary).)#\" )\n- .def(\"Builder\",\n- ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder,\n- R\"#(Returns the method (builder) used to construct BVH.)#\" )\n- .def(\"SetBuilder\",\n- (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder,\n- R\"#(Sets the method (builder) used to construct BVH.)#\" ,py::arg(\"theBuilder\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_BVH_QueueBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n- .def(\"Build\",\n- (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build,\n- R\"#(Builds BVH using specific algorithm.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_Geometry(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#\");\n-}\n-\n-template \n-void register_template_BVH_Geometry(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n- .def(\"IsDirty\",\n- (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty,\n- R\"#(Returns TRUE if geometry state should be updated.)#\" )\n- .def(\"MarkDirty\",\n- (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty,\n- R\"#(Marks geometry as outdated.)#\" )\n- .def(\"Box\",\n- (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box,\n- R\"#(Returns AABB of the whole geometry.)#\" )\n- .def(\"BVH\",\n- ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH,\n- R\"#(Returns BVH tree (and builds it if necessary).)#\" )\n- .def(\"Builder\",\n- ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder,\n- R\"#(Returns the method (builder) used to construct BVH.)#\" )\n- .def(\"SetBuilder\",\n- (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder,\n- R\"#(Sets the method (builder) used to construct BVH.)#\" ,py::arg(\"theBuilder\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_QuickSorter(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_BVH_QuickSorter(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Standard_Integer >() ,py::arg(\"theAxis\")=static_cast< const Standard_Integer>(0) )\n- .def(\"Perform\",\n- (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform,\n- R\"#(Sorts the set.)#\" ,py::arg(\"theSet\"))\n- .def(\"Perform\",\n- (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform,\n- R\"#(Sorts the given (inclusive) range in the set.)#\" ,py::arg(\"theSet\"), py::arg(\"theStart\"), py::arg(\"theFinal\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_Distance(py::object &m, const char *name){\n- 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)#\");\n-}\n-\n-template \n-void register_template_BVH_Distance(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"SetObject\",\n- (void (BVH_Distance::*)( const ObjectType & ) ) &BVH_Distance::SetObject,\n- R\"#(Sets the object to which the distance is required)#\" ,py::arg(\"theObject\"))\n- .def(\"ComputeDistance\",\n- (NumType (BVH_Distance::*)() ) &BVH_Distance::ComputeDistance,\n- R\"#(Computes the distance between object and BVH tree)#\" )\n- .def(\"IsDone\",\n- (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::IsDone,\n- R\"#(Returns IsDone flag)#\" )\n- .def(\"Distance\",\n- (NumType (BVH_Distance::*)() const) &BVH_Distance::Distance,\n- R\"#(Returns the computed distance)#\" )\n- .def(\"IsMetricBetter\",\n- (Standard_Boolean (BVH_Distance::*)( const NumType & , const NumType & ) const) &BVH_Distance::IsMetricBetter,\n- R\"#(Compares the two metrics and chooses the best one)#\" ,py::arg(\"theLeft\"), py::arg(\"theRight\"))\n- .def(\"RejectMetric\",\n- (Standard_Boolean (BVH_Distance::*)( const NumType & ) const) &BVH_Distance::RejectMetric,\n- R\"#(Rejects the branch by the metric)#\" ,py::arg(\"theMetric\"))\n- .def(\"Stop\",\n- (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::Stop,\n- R\"#(Returns the flag controlling the tree descend)#\" )\n- ;\n-};\n-\n-template \n void preregister_template_BVH_TreeBase(py::object &m, const char *name){\n 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.)#\");\n }\n \n template \n void register_template_BVH_TreeBase(py::object &m, const char *name){\n static_cast , opencascade::handle> , BVH_TreeBaseTransient >>(m.attr(name))\n@@ -506,48 +413,121 @@\n template \n void register_template_BVH_Tree(py::object &m, const char *name){\n static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_BVH_Bin(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Stores parameters of single bin (slice of AABB).)#\");\n+void preregister_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool object for parallel construction of distance field (uses Intel TBB).)#\");\n }\n \n template \n-void register_template_BVH_Bin(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< BVH_DistanceField *,BVH_Geometry * >() ,py::arg(\"theOutField\"), py::arg(\"theGeometry\") )\n+ ;\n+};\n+\n+template \n+void preregister_template_BVH_DistanceField(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool object for building 3D distance field from the set of BVH triangulations. Distance field is a scalar field that measures the distance from a given point to some object, including optional information about the inside and outside of the structure. Distance fields are used as alternative surface representations (like polygons or NURBS).)#\");\n+}\n+\n+template \n+void register_template_BVH_DistanceField(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Standard_Integer, const Standard_Boolean >() ,py::arg(\"theMaximumSize\"), py::arg(\"theComputeSign\") )\n+ .def(\"Build\",\n+ (Standard_Boolean (BVH_DistanceField::*)( BVH_Geometry & ) ) &BVH_DistanceField::Build,\n+ R\"#(Builds 3D distance field from BVH geometry.)#\" ,py::arg(\"theGeometry\"))\n+ .def(\"IsParallel\",\n+ (Standard_Boolean (BVH_DistanceField::*)() const) &BVH_DistanceField::IsParallel,\n+ R\"#(Returns parallel flag.)#\" )\n+ .def(\"SetParallel\",\n+ (void (BVH_DistanceField::*)( const Standard_Boolean ) ) &BVH_DistanceField::SetParallel,\n+ R\"#(Set parallel flag contolling possibility of parallel execution.)#\" ,py::arg(\"isParallel\"))\n+ .def(\"PackedData\",\n+ ( const T * (BVH_DistanceField::*)() const) &BVH_DistanceField::PackedData,\n+ R\"#(Returns packed voxel data.)#\" )\n+ .def(\"Voxel\",\n+ (T & (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) ) &BVH_DistanceField::Voxel,\n+ R\"#(Returns distance value for the given voxel.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"), py::arg(\"theZ\"))\n+ .def(\"Voxel\",\n+ (T (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) const) &BVH_DistanceField::Voxel,\n+ R\"#(Returns distance value for the given voxel.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"), py::arg(\"theZ\"))\n+ .def(\"DimensionX\",\n+ (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionX,\n+ R\"#(Returns size of voxel grid in X dimension.)#\" )\n+ .def(\"DimensionY\",\n+ (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionY,\n+ R\"#(Returns size of voxel grid in Y dimension.)#\" )\n+ .def(\"DimensionZ\",\n+ (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionZ,\n+ R\"#(Returns size of voxel grid in Z dimension.)#\" )\n+ .def(\"VoxelSize\",\n+ ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::VoxelSize,\n+ R\"#(Returns size of single voxel.)#\" )\n+ .def(\"CornerMin\",\n+ ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMin,\n+ R\"#(Returns minimum corner of voxel grid.)#\" )\n+ .def(\"CornerMax\",\n+ ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMax,\n+ R\"#(Returns maximum corner of voxel grid.)#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_SquareDistanceToPoint(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+}\n+\n+template \n+void register_template_SquareDistanceToPoint(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n+ .def(\"IsOutside\",\n+ (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::IsOutside,\n+ R\"#(IsOutside)#\" )\n+ .def(\"RejectNode\",\n+ (Standard_Boolean (SquareDistanceToPoint::*)( const typename BVH::SquareDistanceToPoint::BVH_VecNt & , const typename BVH::SquareDistanceToPoint::BVH_VecNt & , T & ) const) &SquareDistanceToPoint::RejectNode,\n+ R\"#(Defines the rules for node rejection)#\" ,py::arg(\"theCMin\"), py::arg(\"theCMax\"), py::arg(\"theMetric\"))\n+ .def(\"Stop\",\n+ (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::Stop,\n+ R\"#(Redefine the Stop to never stop the selection)#\" )\n ;\n };\n \n-template \n-void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_PointTriangulationSquareDistance(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n-template \n-void register_template_BVH_BinnedBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n+template \n+void register_template_PointTriangulationSquareDistance(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"Accept\",\n+ (Standard_Boolean (PointTriangulationSquareDistance::*)( const Standard_Integer , const T & ) ) &PointTriangulationSquareDistance::Accept,\n+ R\"#()#\" ,py::arg(\"theIndex\"), py::arg(\"arg\"))\n ;\n };\n \n template \n-void preregister_template_BVH_AxisSelector(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_PointGeometrySquareDistance(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_BVH_AxisSelector(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def_static(\"MainAxis_s\",\n- (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis,\n- R\"#()#\" ,py::arg(\"theSize\"))\n+void register_template_PointGeometrySquareDistance(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"Accept\",\n+ (Standard_Boolean (PointGeometrySquareDistance::*)( const Standard_Integer , const T & ) ) &PointGeometrySquareDistance::Accept,\n+ R\"#()#\" ,py::arg(\"theIndex\"), py::arg(\"arg\"))\n ;\n };\n \n template \n void preregister_template_BVH_Set(py::object &m, const char *name){\n 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.)#\");\n }\n@@ -573,193 +553,325 @@\n R\"#(Performs transposing the two given objects in the set.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n .def(\"__len__\",[](const BVH_Set &self)\n { return self.Size(); }\n )\n ;\n };\n \n+template \n+void preregister_template_BVH_PairDistance(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_BVH_PairDistance(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"ComputeDistance\",\n+ (NumType (BVH_PairDistance::*)() ) &BVH_PairDistance::ComputeDistance,\n+ R\"#(Computes the distance between two BVH trees)#\" )\n+ .def(\"IsDone\",\n+ (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::IsDone,\n+ R\"#(Returns IsDone flag)#\" )\n+ .def(\"Distance\",\n+ (NumType (BVH_PairDistance::*)() const) &BVH_PairDistance::Distance,\n+ R\"#(Returns the computed distance)#\" )\n+ .def(\"IsMetricBetter\",\n+ (Standard_Boolean (BVH_PairDistance::*)( const NumType & , const NumType & ) const) &BVH_PairDistance::IsMetricBetter,\n+ R\"#(Compares the two metrics and chooses the best one)#\" ,py::arg(\"theLeft\"), py::arg(\"theRight\"))\n+ .def(\"RejectNode\",\n+ (Standard_Boolean (BVH_PairDistance::*)( const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , NumType & ) const) &BVH_PairDistance::RejectNode,\n+ R\"#(Computes the distance between boxes of the nodes)#\" ,py::arg(\"theCornerMin1\"), py::arg(\"theCornerMax1\"), py::arg(\"theCornerMin2\"), py::arg(\"theCornerMax2\"), py::arg(\"theMetric\"))\n+ .def(\"RejectMetric\",\n+ (Standard_Boolean (BVH_PairDistance::*)( const NumType & ) const) &BVH_PairDistance::RejectMetric,\n+ R\"#(Rejects the branch by the metric)#\" ,py::arg(\"theMetric\"))\n+ .def(\"Stop\",\n+ (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::Stop,\n+ R\"#(Returns the flag controlling the tree descend)#\" )\n+ ;\n+};\n+\n template \n-void preregister_template_BVH_ObjectSet(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#\");\n+void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n template \n-void register_template_BVH_ObjectSet(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_PrimitiveSet(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(\"Clear\",\n- (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear,\n- R\"#(Removes all geometric objects.)#\" )\n- .def(\"Objects\",\n- (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects,\n- R\"#(Returns reference to the array of geometric objects.)#\" )\n- .def(\"Objects\",\n- ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects,\n- R\"#(Returns reference to the array of geometric objects.)#\" )\n- .def(\"Size\",\n- (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size,\n- R\"#(Return total number of objects.)#\" )\n+ .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n .def(\"Box\",\n- (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box,\n- R\"#(Returns AABB of the given object.)#\" ,py::arg(\"theIndex\"))\n- .def(\"Center\",\n- (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center,\n- R\"#(Returns centroid position along the given axis.)#\" ,py::arg(\"theIndex\"), py::arg(\"theAxis\"))\n- .def(\"Swap\",\n- (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap,\n- R\"#(Performs transposing the two given objects in the set.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n- .def(\"__len__\",[](const BVH_ObjectSet &self)\n- { return self.Size(); }\n- )\n+ (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box,\n+ R\"#(Returns AABB of primitive set.)#\" )\n+ .def(\"BVH\",\n+ ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH,\n+ R\"#(Returns BVH tree (and builds it if necessary).)#\" )\n+ .def(\"Builder\",\n+ ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder,\n+ R\"#(Returns the method (builder) used to construct BVH.)#\" )\n+ .def(\"SetBuilder\",\n+ (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder,\n+ R\"#(Sets the method (builder) used to construct BVH.)#\" ,py::arg(\"theBuilder\"))\n ;\n };\n \n template \n-void preregister_template_BVH_Sorter(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool object to sort abstract primitive set.)#\");\n+void preregister_template_BVH_QuickSorter(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n template \n-void register_template_BVH_Sorter(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n+void register_template_BVH_QuickSorter(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Standard_Integer >() ,py::arg(\"theAxis\")=static_cast< const Standard_Integer>(0) )\n .def(\"Perform\",\n- (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform,\n+ (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform,\n R\"#(Sorts the set.)#\" ,py::arg(\"theSet\"))\n .def(\"Perform\",\n- (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform,\n+ (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform,\n R\"#(Sorts the given (inclusive) range in the set.)#\" ,py::arg(\"theSet\"), py::arg(\"theStart\"), py::arg(\"theFinal\"))\n- .def(\"IsParallel\",\n- (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel,\n- R\"#(Returns parallel flag.)#\" )\n- .def(\"SetParallel\",\n- (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel,\n- R\"#(Set parallel flag contolling possibility of parallel execution.)#\" ,py::arg(\"isParallel\"))\n ;\n };\n \n-template \n-void preregister_template_BVH_Builder(py::object &m, const char *name){\n- py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R\"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#\");\n+template \n+void preregister_template_BVH_Distance(py::object &m, const char *name){\n+ 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)#\");\n }\n \n-template \n-void register_template_BVH_Builder(py::object &m, const char *name){\n- static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name))\n- .def(\"Build\",\n- (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build,\n- R\"#(Builds BVH using specific algorithm.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n+template \n+void register_template_BVH_Distance(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"SetObject\",\n+ (void (BVH_Distance::*)( const ObjectType & ) ) &BVH_Distance::SetObject,\n+ R\"#(Sets the object to which the distance is required)#\" ,py::arg(\"theObject\"))\n+ .def(\"ComputeDistance\",\n+ (NumType (BVH_Distance::*)() ) &BVH_Distance::ComputeDistance,\n+ R\"#(Computes the distance between object and BVH tree)#\" )\n+ .def(\"IsDone\",\n+ (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::IsDone,\n+ R\"#(Returns IsDone flag)#\" )\n+ .def(\"Distance\",\n+ (NumType (BVH_Distance::*)() const) &BVH_Distance::Distance,\n+ R\"#(Returns the computed distance)#\" )\n+ .def(\"IsMetricBetter\",\n+ (Standard_Boolean (BVH_Distance::*)( const NumType & , const NumType & ) const) &BVH_Distance::IsMetricBetter,\n+ R\"#(Compares the two metrics and chooses the best one)#\" ,py::arg(\"theLeft\"), py::arg(\"theRight\"))\n+ .def(\"RejectMetric\",\n+ (Standard_Boolean (BVH_Distance::*)( const NumType & ) const) &BVH_Distance::RejectMetric,\n+ R\"#(Rejects the branch by the metric)#\" ,py::arg(\"theMetric\"))\n+ .def(\"Stop\",\n+ (Standard_Boolean (BVH_Distance::*)() const) &BVH_Distance::Stop,\n+ R\"#(Returns the flag controlling the tree descend)#\" )\n ;\n };\n \n template \n-void preregister_template_BVH_Transform(py::object &m, const char *name){\n- py::class_ , opencascade::handle> , BVH_Properties >(m,name,R\"#(Stores transform properties of geometric object.)#\");\n+void preregister_template_BVH_Triangulation(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Triangulation as an example of BVH primitive set.)#\");\n }\n \n template \n-void register_template_BVH_Transform(py::object &m, const char *name){\n- static_cast , opencascade::handle> , BVH_Properties >>(m.attr(name))\n+void register_template_BVH_Triangulation(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(py::init< const typename BVH_Transform::BVH_MatNt & >() ,py::arg(\"theTransform\") )\n- .def(\"Transform\",\n- ( const typename BVH_Transform::BVH_MatNt & (BVH_Transform::*)() const) &BVH_Transform::Transform,\n- R\"#(Returns transformation matrix.)#\" )\n- .def(\"SetTransform\",\n- (void (BVH_Transform::*)( const typename BVH_Transform::BVH_MatNt & ) ) &BVH_Transform::SetTransform,\n- R\"#(Sets new transformation matrix.)#\" ,py::arg(\"theTransform\"))\n- .def(\"Inversed\",\n- ( const typename BVH_Transform::BVH_MatNt & (BVH_Transform::*)() const) &BVH_Transform::Inversed,\n- R\"#(Returns inversed transformation matrix.)#\" )\n- .def(\"Apply\",\n- (BVH_Box (BVH_Transform::*)( const BVH_Box & ) const) &BVH_Transform::Apply,\n- R\"#(Applies transformation matrix to bounding box.)#\" ,py::arg(\"theBox\"))\n+ .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n+ .def(\"Size\",\n+ (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size,\n+ R\"#(Returns total number of triangles.)#\" )\n+ .def(\"Box\",\n+ (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box,\n+ R\"#(Returns AABB of the given triangle.)#\" ,py::arg(\"theIndex\"))\n+ .def(\"Center\",\n+ (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center,\n+ R\"#(Returns centroid position along the given axis.)#\" ,py::arg(\"theIndex\"), py::arg(\"theAxis\"))\n+ .def(\"Swap\",\n+ (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap,\n+ R\"#(Performs transposing the two given triangles in the set.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n+ .def(\"__len__\",[](const BVH_Triangulation &self)\n+ { return self.Size(); }\n+ )\n ;\n };\n \n template \n-void preregister_template_MatrixOp(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Performs building of BVH tree using sweep plane SAH algorithm.)#\");\n }\n \n template \n-void register_template_MatrixOp(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n ;\n };\n \n template \n-void preregister_template_UnitVector(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_BVH_BaseBox(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Base class for BVH_Box (CRTP idiom is used).)#\");\n }\n \n template \n-void register_template_UnitVector(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_BaseBox(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_BVH_Triangulation(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Triangulation as an example of BVH primitive set.)#\");\n+void preregister_template_BVH_Box(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Defines axis aligned bounding box (AABB) based on BVH vectors.)#\");\n }\n \n template \n-void register_template_BVH_Triangulation(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_BVH_Box(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(py::init< const handle> & >() ,py::arg(\"theBuilder\") )\n+ .def(py::init< const typename BVH_Box::BVH_VecNt & >() ,py::arg(\"thePoint\") )\n+ .def(py::init< const typename BVH_Box::BVH_VecNt &, const typename BVH_Box::BVH_VecNt & >() ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\") )\n+ .def(\"Clear\",\n+ (void (BVH_Box::*)() ) &BVH_Box::Clear,\n+ R\"#(Clears bounding box.)#\" )\n+ .def(\"IsValid\",\n+ (Standard_Boolean (BVH_Box::*)() const) &BVH_Box::IsValid,\n+ R\"#(Is bounding box valid?)#\" )\n+ .def(\"Add\",\n+ (void (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & ) ) &BVH_Box::Add,\n+ R\"#(Appends new point to the bounding box.)#\" ,py::arg(\"thePoint\"))\n+ .def(\"Combine\",\n+ (void (BVH_Box::*)( const BVH_Box & ) ) &BVH_Box::Combine,\n+ R\"#(Combines bounding box with another one.)#\" ,py::arg(\"theBox\"))\n+ .def(\"CornerMin\",\n+ ( const typename BVH_Box::BVH_VecNt & (BVH_Box::*)() const) &BVH_Box::CornerMin,\n+ R\"#(Returns minimum point of bounding box.)#\" )\n+ .def(\"CornerMax\",\n+ ( const typename BVH_Box::BVH_VecNt & (BVH_Box::*)() const) &BVH_Box::CornerMax,\n+ R\"#(Returns maximum point of bounding box.)#\" )\n+ .def(\"CornerMin\",\n+ (typename BVH_Box::BVH_VecNt & (BVH_Box::*)() ) &BVH_Box::CornerMin,\n+ R\"#(Returns minimum point of bounding box.)#\" )\n+ .def(\"CornerMax\",\n+ (typename BVH_Box::BVH_VecNt & (BVH_Box::*)() ) &BVH_Box::CornerMax,\n+ R\"#(Returns maximum point of bounding box.)#\" )\n+ .def(\"Area\",\n+ (T (BVH_Box::*)() const) &BVH_Box::Area,\n+ R\"#(Returns surface area of bounding box. If the box is degenerated into line, returns the perimeter instead.)#\" )\n .def(\"Size\",\n- (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size,\n- R\"#(Returns total number of triangles.)#\" )\n- .def(\"Box\",\n- (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box,\n- R\"#(Returns AABB of the given triangle.)#\" ,py::arg(\"theIndex\"))\n+ (typename BVH_Box::BVH_VecNt (BVH_Box::*)() const) &BVH_Box::Size,\n+ R\"#(Returns diagonal of bounding box.)#\" )\n .def(\"Center\",\n- (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center,\n- R\"#(Returns centroid position along the given axis.)#\" ,py::arg(\"theIndex\"), py::arg(\"theAxis\"))\n- .def(\"Swap\",\n- (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap,\n- R\"#(Performs transposing the two given triangles in the set.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n- .def(\"__len__\",[](const BVH_Triangulation &self)\n+ (typename BVH_Box::BVH_VecNt (BVH_Box::*)() const) &BVH_Box::Center,\n+ R\"#(Returns center of bounding box.)#\" )\n+ .def(\"Center\",\n+ (T (BVH_Box::*)( const Standard_Integer ) const) &BVH_Box::Center,\n+ R\"#(Returns center of bounding box along the given axis.)#\" ,py::arg(\"theAxis\"))\n+ .def(\"DumpJson\",\n+ (void (BVH_Box::*)( Standard_OStream & , Standard_Integer ) const) &BVH_Box::DumpJson,\n+ R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"theDepth\")=static_cast(- 1))\n+ .def(\"InitFromJson\",\n+ (Standard_Boolean (BVH_Box::*)( const Standard_SStream & , Standard_Integer & ) ) &BVH_Box::InitFromJson,\n+ R\"#(Inits the content of me from the stream)#\" ,py::arg(\"theSStream\"), py::arg(\"theStreamPos\"))\n+ .def(\"IsOut\",\n+ (Standard_Boolean (BVH_Box::*)( const BVH_Box & ) const) &BVH_Box::IsOut,\n+ R\"#(Checks if the Box is out of the other box.)#\" ,py::arg(\"theOther\"))\n+ .def(\"IsOut\",\n+ (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & , const typename BVH_Box::BVH_VecNt & ) const) &BVH_Box::IsOut,\n+ R\"#(Checks if the Box is out of the other box defined by two points.)#\" ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (BVH_Box::*)( const BVH_Box & , Standard_Boolean & ) const) &BVH_Box::Contains,\n+ R\"#(Checks if the Box fully contains the other box.)#\" ,py::arg(\"theOther\"), py::arg(\"hasOverlap\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & , const typename BVH_Box::BVH_VecNt & , Standard_Boolean & ) const) &BVH_Box::Contains,\n+ R\"#(Checks if the Box is fully contains the other box.)#\" ,py::arg(\"theMinPoint\"), py::arg(\"theMaxPoint\"), py::arg(\"hasOverlap\"))\n+ .def(\"IsOut\",\n+ (Standard_Boolean (BVH_Box::*)( const typename BVH_Box::BVH_VecNt & ) const) &BVH_Box::IsOut,\n+ R\"#(Checks if the Point is out of the box.)#\" ,py::arg(\"thePoint\"))\n+ .def(\"__len__\",[](const BVH_Box &self)\n { return self.Size(); }\n )\n ;\n };\n \n-template \n-void preregister_template_BVH_PairDistance(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_CenterAxis(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculating box center along the given axis.)#\");\n }\n \n-template \n-void register_template_BVH_PairDistance(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_CenterAxis(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ ;\n+};\n+\n+template \n+void preregister_template_SurfaceCalculator(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculating surface area of the box.)#\");\n+}\n+\n+template \n+void register_template_SurfaceCalculator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ ;\n+};\n+\n+template \n+void preregister_template_BoxMinMax(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool class for calculate component-wise vector minimum and maximum (optimized version).)#\");\n+}\n+\n+template \n+void register_template_BoxMinMax(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def_static(\"CwiseMin_s\",\n+ (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMin,\n+ R\"#()#\" ,py::arg(\"theVec1\"), py::arg(\"theVec2\"))\n+ .def_static(\"CwiseMax_s\",\n+ (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMax,\n+ R\"#()#\" ,py::arg(\"theVec1\"), py::arg(\"theVec2\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_BVH_Object(py::object &m, const char *name){\n+ py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R\"#(Abstract geometric object bounded by BVH box.)#\");\n+}\n+\n+template \n+void register_template_BVH_Object(py::object &m, const char *name){\n+ static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name))\n .def(py::init< >() )\n- .def(\"ComputeDistance\",\n- (NumType (BVH_PairDistance::*)() ) &BVH_PairDistance::ComputeDistance,\n- R\"#(Computes the distance between two BVH trees)#\" )\n- .def(\"IsDone\",\n- (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::IsDone,\n- R\"#(Returns IsDone flag)#\" )\n- .def(\"Distance\",\n- (NumType (BVH_PairDistance::*)() const) &BVH_PairDistance::Distance,\n- R\"#(Returns the computed distance)#\" )\n- .def(\"IsMetricBetter\",\n- (Standard_Boolean (BVH_PairDistance::*)( const NumType & , const NumType & ) const) &BVH_PairDistance::IsMetricBetter,\n- R\"#(Compares the two metrics and chooses the best one)#\" ,py::arg(\"theLeft\"), py::arg(\"theRight\"))\n- .def(\"RejectNode\",\n- (Standard_Boolean (BVH_PairDistance::*)( const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , const typename BVH_PairDistance::BVH_VecNt & , NumType & ) const) &BVH_PairDistance::RejectNode,\n- R\"#(Computes the distance between boxes of the nodes)#\" ,py::arg(\"theCornerMin1\"), py::arg(\"theCornerMax1\"), py::arg(\"theCornerMin2\"), py::arg(\"theCornerMax2\"), py::arg(\"theMetric\"))\n- .def(\"RejectMetric\",\n- (Standard_Boolean (BVH_PairDistance::*)( const NumType & ) const) &BVH_PairDistance::RejectMetric,\n- R\"#(Rejects the branch by the metric)#\" ,py::arg(\"theMetric\"))\n- .def(\"Stop\",\n- (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::Stop,\n- R\"#(Returns the flag controlling the tree descend)#\" )\n+ .def(\"Box\",\n+ (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box,\n+ R\"#(Returns AABB of the geometric object.)#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_BVH_Builder(py::object &m, const char *name){\n+ py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R\"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#\");\n+}\n+\n+template \n+void register_template_BVH_Builder(py::object &m, const char *name){\n+ static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name))\n+ .def(\"Build\",\n+ (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build,\n+ R\"#(Builds BVH using specific algorithm.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Performs building of BVH tree using spatial median split algorithm.)#\");\n+}\n+\n+template \n+void register_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n ;\n };\n \n template \n void preregister_template_BVH_BoxSet(py::object &m, const char *name){\n 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.)#\");\n }\n@@ -799,233 +911,121 @@\n .def(\"__len__\",[](const BVH_BoxSet &self)\n { return self.Size(); }\n )\n ;\n };\n \n template \n-void preregister_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool object for parallel construction of distance field (uses Intel TBB).)#\");\n+void preregister_template_BVH_ObjectSet(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#\");\n }\n \n template \n-void register_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< BVH_DistanceField *,BVH_Geometry * >() ,py::arg(\"theOutField\"), py::arg(\"theGeometry\") )\n+void register_template_BVH_ObjectSet(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"Clear\",\n+ (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear,\n+ R\"#(Removes all geometric objects.)#\" )\n+ .def(\"Objects\",\n+ (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects,\n+ R\"#(Returns reference to the array of geometric objects.)#\" )\n+ .def(\"Objects\",\n+ ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects,\n+ R\"#(Returns reference to the array of geometric objects.)#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size,\n+ R\"#(Return total number of objects.)#\" )\n+ .def(\"Box\",\n+ (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box,\n+ R\"#(Returns AABB of the given object.)#\" ,py::arg(\"theIndex\"))\n+ .def(\"Center\",\n+ (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center,\n+ R\"#(Returns centroid position along the given axis.)#\" ,py::arg(\"theIndex\"), py::arg(\"theAxis\"))\n+ .def(\"Swap\",\n+ (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap,\n+ R\"#(Performs transposing the two given objects in the set.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n+ .def(\"__len__\",[](const BVH_ObjectSet &self)\n+ { return self.Size(); }\n+ )\n ;\n };\n \n template \n-void preregister_template_BVH_DistanceField(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool object for building 3D distance field from the set of BVH triangulations. Distance field is a scalar field that measures the distance from a given point to some object, including optional information about the inside and outside of the structure. Distance fields are used as alternative surface representations (like polygons or NURBS).)#\");\n+void preregister_template_BVH_Bin(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Stores parameters of single bin (slice of AABB).)#\");\n }\n \n template \n-void register_template_BVH_DistanceField(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Standard_Integer, const Standard_Boolean >() ,py::arg(\"theMaximumSize\"), py::arg(\"theComputeSign\") )\n- .def(\"Build\",\n- (Standard_Boolean (BVH_DistanceField::*)( BVH_Geometry & ) ) &BVH_DistanceField::Build,\n- R\"#(Builds 3D distance field from BVH geometry.)#\" ,py::arg(\"theGeometry\"))\n- .def(\"IsParallel\",\n- (Standard_Boolean (BVH_DistanceField::*)() const) &BVH_DistanceField::IsParallel,\n- R\"#(Returns parallel flag.)#\" )\n- .def(\"SetParallel\",\n- (void (BVH_DistanceField::*)( const Standard_Boolean ) ) &BVH_DistanceField::SetParallel,\n- R\"#(Set parallel flag contolling possibility of parallel execution.)#\" ,py::arg(\"isParallel\"))\n- .def(\"PackedData\",\n- ( const T * (BVH_DistanceField::*)() const) &BVH_DistanceField::PackedData,\n- R\"#(Returns packed voxel data.)#\" )\n- .def(\"Voxel\",\n- (T & (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) ) &BVH_DistanceField::Voxel,\n- R\"#(Returns distance value for the given voxel.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"), py::arg(\"theZ\"))\n- .def(\"Voxel\",\n- (T (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) const) &BVH_DistanceField::Voxel,\n- R\"#(Returns distance value for the given voxel.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"), py::arg(\"theZ\"))\n- .def(\"DimensionX\",\n- (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionX,\n- R\"#(Returns size of voxel grid in X dimension.)#\" )\n- .def(\"DimensionY\",\n- (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionY,\n- R\"#(Returns size of voxel grid in Y dimension.)#\" )\n- .def(\"DimensionZ\",\n- (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionZ,\n- R\"#(Returns size of voxel grid in Z dimension.)#\" )\n- .def(\"VoxelSize\",\n- ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::VoxelSize,\n- R\"#(Returns size of single voxel.)#\" )\n- .def(\"CornerMin\",\n- ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMin,\n- R\"#(Returns minimum corner of voxel grid.)#\" )\n- .def(\"CornerMax\",\n- ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMax,\n- R\"#(Returns maximum corner of voxel grid.)#\" )\n+void register_template_BVH_Bin(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n ;\n };\n \n-template \n-void preregister_template_SquareDistanceToPoint(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+template \n+void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template \n-void register_template_SquareDistanceToPoint(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"IsOutside\",\n- (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::IsOutside,\n- R\"#(IsOutside)#\" )\n- .def(\"RejectNode\",\n- (Standard_Boolean (SquareDistanceToPoint::*)( const typename BVH::SquareDistanceToPoint::BVH_VecNt & , const typename BVH::SquareDistanceToPoint::BVH_VecNt & , T & ) const) &SquareDistanceToPoint::RejectNode,\n- R\"#(Defines the rules for node rejection)#\" ,py::arg(\"theCMin\"), py::arg(\"theCMax\"), py::arg(\"theMetric\"))\n- .def(\"Stop\",\n- (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::Stop,\n- R\"#(Redefine the Stop to never stop the selection)#\" )\n+template \n+void register_template_BVH_BinnedBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n ;\n };\n \n template \n-void preregister_template_PointTriangulationSquareDistance(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_BVH_AxisSelector(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_PointTriangulationSquareDistance(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"Accept\",\n- (Standard_Boolean (PointTriangulationSquareDistance::*)( const Standard_Integer , const T & ) ) &PointTriangulationSquareDistance::Accept,\n- R\"#()#\" ,py::arg(\"theIndex\"), py::arg(\"arg\"))\n+void register_template_BVH_AxisSelector(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def_static(\"MainAxis_s\",\n+ (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis,\n+ R\"#()#\" ,py::arg(\"theSize\"))\n ;\n };\n \n template \n-void preregister_template_PointGeometrySquareDistance(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){\n+ 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).)#\");\n }\n \n template \n-void register_template_PointGeometrySquareDistance(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"Accept\",\n- (Standard_Boolean (PointGeometrySquareDistance::*)( const Standard_Integer , const T & ) ) &PointGeometrySquareDistance::Accept,\n- R\"#()#\" ,py::arg(\"theIndex\"), py::arg(\"arg\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){\n- py::class_ , shared_ptr_nodelete> >(m,name,R\"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#\");\n-}\n-\n-template \n-void register_template_BVH_BaseTraverse(py::object &m, const char *name){\n- static_cast , shared_ptr_nodelete> >>(m.attr(name))\n- .def(\"IsMetricBetter\",\n- (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter,\n- 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\"))\n- .def(\"RejectMetric\",\n- (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric,\n- R\"#(Rejects the node by the metric)#\" ,py::arg(\"arg\"))\n- .def(\"Stop\",\n- (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop,\n- R\"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#\" )\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_Traverse(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_BVH_Traverse(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"SetBVHSet\",\n- (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet,\n- R\"#(Sets the BVH Set containing the BVH tree)#\" ,py::arg(\"theBVHSet\"))\n- .def(\"AcceptMetric\",\n- (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric,\n- 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\"))\n- .def(\"RejectNode\",\n- (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode,\n- 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\"))\n- .def(\"Accept\",\n- (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept,\n- 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\"))\n- .def(\"Select\",\n- (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select,\n- 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.)#\" )\n- .def(\"Select\",\n- (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select,\n- 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\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_PairTraverse(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_BVH_PairTraverse(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"SetBVHSets\",\n- (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets,\n- R\"#(Sets the BVH Sets containing the BVH trees)#\" ,py::arg(\"theBVHSet1\"), py::arg(\"theBVHSet2\"))\n- .def(\"RejectNode\",\n- (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,\n- 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\"))\n- .def(\"Accept\",\n- (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept,\n- R\"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n- .def(\"Select\",\n- (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select,\n- 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.)#\" )\n- .def(\"Select\",\n- (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select,\n- 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\"))\n- ;\n-};\n-\n-template \n-void preregister_template_BVH_NodeInStack(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary structure for keeping the nodes to process)#\");\n-}\n-\n-template \n-void register_template_BVH_NodeInStack(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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 ( )) )\n+void register_template_BVH_LinearBuilder(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n+ .def(\"Build\",\n+ (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build,\n+ R\"#(Builds BVH.)#\" ,py::arg(\"theSet\"), py::arg(\"theBVH\"), py::arg(\"theBox\"))\n ;\n };\n \n-template \n-void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary structure for keeping the pair of nodes to process)#\");\n+template \n+void preregister_template_BoundData(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n-template \n-void register_template_BVH_PairNodesInStack(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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 ( )) )\n+template \n+void register_template_BoundData(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Performs building of BVH tree using spatial median split algorithm.)#\");\n+void preregister_template_UpdateBoundTask(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Task for parallel bounds updating.)#\");\n }\n \n template \n-void register_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n+void register_template_UpdateBoundTask(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Standard_Boolean >() ,py::arg(\"isParallel\") )\n ;\n };\n \n \n // user-defined post\n \n"}, {"source1": "./usr/share/libocp/OCP/BinTools_pre.cpp", "source2": "./usr/share/libocp/OCP/BinTools_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -63,22 +63,14 @@\n py::module m = main_module.def_submodule(\"BinTools\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"BinTools_FormatVersion\",R\"#(Defined BinTools format version)#\")\n- .value(\"BinTools_FormatVersion_VERSION_1\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_1)\n- .value(\"BinTools_FormatVersion_VERSION_2\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_2)\n- .value(\"BinTools_FormatVersion_VERSION_3\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_3)\n- .value(\"BinTools_FormatVersion_VERSION_4\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_4)\n- .value(\"BinTools_FormatVersion_CURRENT\",BinTools_FormatVersion::BinTools_FormatVersion_CURRENT).export_values();\n- m.attr(\"BinTools_FormatVersion_LOWER\") = py::cast(int(BinTools_FormatVersion_LOWER));\n- m.attr(\"BinTools_FormatVersion_UPPER\") = py::cast(int(BinTools_FormatVersion_UPPER));\n py::enum_(m, \"BinTools_ObjectType\",R\"#(Enumeration defining objects identifiers in the shape read/write format.)#\")\n .value(\"BinTools_ObjectType_Unknown\",BinTools_ObjectType::BinTools_ObjectType_Unknown)\n .value(\"BinTools_ObjectType_Reference8\",BinTools_ObjectType::BinTools_ObjectType_Reference8)\n .value(\"BinTools_ObjectType_Reference16\",BinTools_ObjectType::BinTools_ObjectType_Reference16)\n .value(\"BinTools_ObjectType_Reference32\",BinTools_ObjectType::BinTools_ObjectType_Reference32)\n .value(\"BinTools_ObjectType_Reference64\",BinTools_ObjectType::BinTools_ObjectType_Reference64)\n .value(\"BinTools_ObjectType_Location\",BinTools_ObjectType::BinTools_ObjectType_Location)\n@@ -95,14 +87,22 @@\n .value(\"BinTools_ObjectType_EmptyPolygon3d\",BinTools_ObjectType::BinTools_ObjectType_EmptyPolygon3d)\n .value(\"BinTools_ObjectType_PolygonOnTriangulation\",BinTools_ObjectType::BinTools_ObjectType_PolygonOnTriangulation)\n .value(\"BinTools_ObjectType_EmptyPolygonOnTriangulation\",BinTools_ObjectType::BinTools_ObjectType_EmptyPolygonOnTriangulation)\n .value(\"BinTools_ObjectType_Triangulation\",BinTools_ObjectType::BinTools_ObjectType_Triangulation)\n .value(\"BinTools_ObjectType_EmptyTriangulation\",BinTools_ObjectType::BinTools_ObjectType_EmptyTriangulation)\n .value(\"BinTools_ObjectType_EmptyShape\",BinTools_ObjectType::BinTools_ObjectType_EmptyShape)\n .value(\"BinTools_ObjectType_EndShape\",BinTools_ObjectType::BinTools_ObjectType_EndShape).export_values();\n+ py::enum_(m, \"BinTools_FormatVersion\",R\"#(Defined BinTools format version)#\")\n+ .value(\"BinTools_FormatVersion_VERSION_1\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_1)\n+ .value(\"BinTools_FormatVersion_VERSION_2\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_2)\n+ .value(\"BinTools_FormatVersion_VERSION_3\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_3)\n+ .value(\"BinTools_FormatVersion_VERSION_4\",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_4)\n+ .value(\"BinTools_FormatVersion_CURRENT\",BinTools_FormatVersion::BinTools_FormatVersion_CURRENT).export_values();\n+ m.attr(\"BinTools_FormatVersion_LOWER\") = py::cast(int(BinTools_FormatVersion_LOWER));\n+ m.attr(\"BinTools_FormatVersion_UPPER\") = py::cast(int(BinTools_FormatVersion_UPPER));\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"BinTools\",R\"#(Tool to keep shapes in binary format)#\");\n py::class_ >(m,\"BinTools_Curve2dSet\",R\"#(Stores a set of Curves from Geom2d in binary format)#\");\n py::class_ >(m,\"BinTools_CurveSet\",R\"#(Stores a set of Curves from Geom in binary format.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Blend_pre.cpp", "source2": "./usr/share/libocp/OCP/Blend_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -52,28 +52,28 @@\n py::module m = main_module.def_submodule(\"Blend\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Blend_DecrochStatus\",R\"#()#\")\n- .value(\"Blend_NoDecroch\",Blend_DecrochStatus::Blend_NoDecroch)\n- .value(\"Blend_DecrochRst1\",Blend_DecrochStatus::Blend_DecrochRst1)\n- .value(\"Blend_DecrochRst2\",Blend_DecrochStatus::Blend_DecrochRst2)\n- .value(\"Blend_DecrochBoth\",Blend_DecrochStatus::Blend_DecrochBoth).export_values();\n py::enum_(m, \"Blend_Status\",R\"#()#\")\n .value(\"Blend_StepTooLarge\",Blend_Status::Blend_StepTooLarge)\n .value(\"Blend_StepTooSmall\",Blend_Status::Blend_StepTooSmall)\n .value(\"Blend_Backward\",Blend_Status::Blend_Backward)\n .value(\"Blend_SamePoints\",Blend_Status::Blend_SamePoints)\n .value(\"Blend_OnRst1\",Blend_Status::Blend_OnRst1)\n .value(\"Blend_OnRst2\",Blend_Status::Blend_OnRst2)\n .value(\"Blend_OnRst12\",Blend_Status::Blend_OnRst12)\n .value(\"Blend_OK\",Blend_Status::Blend_OK).export_values();\n+ py::enum_(m, \"Blend_DecrochStatus\",R\"#()#\")\n+ .value(\"Blend_NoDecroch\",Blend_DecrochStatus::Blend_NoDecroch)\n+ .value(\"Blend_DecrochRst1\",Blend_DecrochStatus::Blend_DecrochRst1)\n+ .value(\"Blend_DecrochRst2\",Blend_DecrochStatus::Blend_DecrochRst2)\n+ .value(\"Blend_DecrochBoth\",Blend_DecrochStatus::Blend_DecrochBoth).export_values();\n \n //Python trampoline classes\n class Py_Blend_AppFunction : public Blend_AppFunction{\n public:\n using Blend_AppFunction::Blend_AppFunction;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/CDF_pre.cpp", "source2": "./usr/share/libocp/OCP/CDF_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -67,27 +67,27 @@\n \n // enums\n py::enum_(m, \"CDF_SubComponentStatus\",R\"#()#\")\n .value(\"CDF_SCS_Consistent\",CDF_SubComponentStatus::CDF_SCS_Consistent)\n .value(\"CDF_SCS_Unconsistent\",CDF_SubComponentStatus::CDF_SCS_Unconsistent)\n .value(\"CDF_SCS_Stored\",CDF_SubComponentStatus::CDF_SCS_Stored)\n .value(\"CDF_SCS_Modified\",CDF_SubComponentStatus::CDF_SCS_Modified).export_values();\n+ py::enum_(m, \"CDF_TypeOfActivation\",R\"#()#\")\n+ .value(\"CDF_TOA_New\",CDF_TypeOfActivation::CDF_TOA_New)\n+ .value(\"CDF_TOA_Modified\",CDF_TypeOfActivation::CDF_TOA_Modified)\n+ .value(\"CDF_TOA_Unchanged\",CDF_TypeOfActivation::CDF_TOA_Unchanged).export_values();\n py::enum_(m, \"CDF_StoreSetNameStatus\",R\"#()#\")\n .value(\"CDF_SSNS_OK\",CDF_StoreSetNameStatus::CDF_SSNS_OK)\n .value(\"CDF_SSNS_ReplacingAnExistentDocument\",CDF_StoreSetNameStatus::CDF_SSNS_ReplacingAnExistentDocument)\n .value(\"CDF_SSNS_OpenDocument\",CDF_StoreSetNameStatus::CDF_SSNS_OpenDocument).export_values();\n py::enum_(m, \"CDF_TryStoreStatus\",R\"#()#\")\n .value(\"CDF_TS_OK\",CDF_TryStoreStatus::CDF_TS_OK)\n .value(\"CDF_TS_NoCurrentDocument\",CDF_TryStoreStatus::CDF_TS_NoCurrentDocument)\n .value(\"CDF_TS_NoDriver\",CDF_TryStoreStatus::CDF_TS_NoDriver)\n .value(\"CDF_TS_NoSubComponentDriver\",CDF_TryStoreStatus::CDF_TS_NoSubComponentDriver).export_values();\n- py::enum_(m, \"CDF_TypeOfActivation\",R\"#()#\")\n- .value(\"CDF_TOA_New\",CDF_TypeOfActivation::CDF_TOA_New)\n- .value(\"CDF_TOA_Modified\",CDF_TypeOfActivation::CDF_TOA_Modified)\n- .value(\"CDF_TOA_Unchanged\",CDF_TypeOfActivation::CDF_TOA_Unchanged).export_values();\n \n //Python trampoline classes\n class Py_CDF_Application : public CDF_Application{\n public:\n using CDF_Application::CDF_Application;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/ChFiDS_pre.cpp", "source2": "./usr/share/libocp/OCP/ChFiDS_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -85,14 +85,26 @@\n py::module m = main_module.def_submodule(\"ChFiDS\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ 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.)#\")\n+ .value(\"ChFiDS_OnSame\",ChFiDS_State::ChFiDS_OnSame)\n+ .value(\"ChFiDS_OnDiff\",ChFiDS_State::ChFiDS_OnDiff)\n+ .value(\"ChFiDS_AllSame\",ChFiDS_State::ChFiDS_AllSame)\n+ .value(\"ChFiDS_BreakPoint\",ChFiDS_State::ChFiDS_BreakPoint)\n+ .value(\"ChFiDS_FreeBoundary\",ChFiDS_State::ChFiDS_FreeBoundary)\n+ .value(\"ChFiDS_Closed\",ChFiDS_State::ChFiDS_Closed)\n+ .value(\"ChFiDS_Tangent\",ChFiDS_State::ChFiDS_Tangent).export_values();\n+ py::enum_(m, \"ChFiDS_ChamfMethod\",R\"#()#\")\n+ .value(\"ChFiDS_Sym\",ChFiDS_ChamfMethod::ChFiDS_Sym)\n+ .value(\"ChFiDS_TwoDist\",ChFiDS_ChamfMethod::ChFiDS_TwoDist)\n+ .value(\"ChFiDS_DistAngle\",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values();\n py::enum_(m, \"ChFiDS_ChamfMode\",R\"#(this enumeration defines several modes of chamfer)#\")\n .value(\"ChFiDS_ClassicChamfer\",ChFiDS_ChamfMode::ChFiDS_ClassicChamfer)\n .value(\"ChFiDS_ConstThroatChamfer\",ChFiDS_ChamfMode::ChFiDS_ConstThroatChamfer)\n .value(\"ChFiDS_ConstThroatWithPenetrationChamfer\",ChFiDS_ChamfMode::ChFiDS_ConstThroatWithPenetrationChamfer).export_values();\n py::enum_(m, \"ChFiDS_TypeOfConcavity\",R\"#()#\")\n .value(\"ChFiDS_Concave\",ChFiDS_TypeOfConcavity::ChFiDS_Concave)\n .value(\"ChFiDS_Convex\",ChFiDS_TypeOfConcavity::ChFiDS_Convex)\n@@ -102,26 +114,14 @@\n .value(\"ChFiDS_Mixed\",ChFiDS_TypeOfConcavity::ChFiDS_Mixed).export_values();\n py::enum_(m, \"ChFiDS_ErrorStatus\",R\"#(--- Purpose statuts concernant la cause de l'erreur)#\")\n .value(\"ChFiDS_Ok\",ChFiDS_ErrorStatus::ChFiDS_Ok)\n .value(\"ChFiDS_Error\",ChFiDS_ErrorStatus::ChFiDS_Error)\n .value(\"ChFiDS_WalkingFailure\",ChFiDS_ErrorStatus::ChFiDS_WalkingFailure)\n .value(\"ChFiDS_StartsolFailure\",ChFiDS_ErrorStatus::ChFiDS_StartsolFailure)\n .value(\"ChFiDS_TwistedSurface\",ChFiDS_ErrorStatus::ChFiDS_TwistedSurface).export_values();\n- py::enum_(m, \"ChFiDS_ChamfMethod\",R\"#()#\")\n- .value(\"ChFiDS_Sym\",ChFiDS_ChamfMethod::ChFiDS_Sym)\n- .value(\"ChFiDS_TwoDist\",ChFiDS_ChamfMethod::ChFiDS_TwoDist)\n- .value(\"ChFiDS_DistAngle\",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values();\n- 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.)#\")\n- .value(\"ChFiDS_OnSame\",ChFiDS_State::ChFiDS_OnSame)\n- .value(\"ChFiDS_OnDiff\",ChFiDS_State::ChFiDS_OnDiff)\n- .value(\"ChFiDS_AllSame\",ChFiDS_State::ChFiDS_AllSame)\n- .value(\"ChFiDS_BreakPoint\",ChFiDS_State::ChFiDS_BreakPoint)\n- .value(\"ChFiDS_FreeBoundary\",ChFiDS_State::ChFiDS_FreeBoundary)\n- .value(\"ChFiDS_Closed\",ChFiDS_State::ChFiDS_Closed)\n- .value(\"ChFiDS_Tangent\",ChFiDS_State::ChFiDS_Tangent).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"ChFiDS_CircSection\",R\"#(A Section of fillet.)#\");\n 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)#\");\n py::class_ >(m,\"ChFiDS_FaceInterference\",R\"#(interference face/fillet)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Contap_pre.cpp", "source2": "./usr/share/libocp/OCP/Contap_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -85,24 +85,24 @@\n py::module m = main_module.def_submodule(\"Contap\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Contap_TFunction\",R\"#()#\")\n- .value(\"Contap_ContourStd\",Contap_TFunction::Contap_ContourStd)\n- .value(\"Contap_ContourPrs\",Contap_TFunction::Contap_ContourPrs)\n- .value(\"Contap_DraftStd\",Contap_TFunction::Contap_DraftStd)\n- .value(\"Contap_DraftPrs\",Contap_TFunction::Contap_DraftPrs).export_values();\n py::enum_(m, \"Contap_IType\",R\"#()#\")\n .value(\"Contap_Lin\",Contap_IType::Contap_Lin)\n .value(\"Contap_Circle\",Contap_IType::Contap_Circle)\n .value(\"Contap_Walking\",Contap_IType::Contap_Walking)\n .value(\"Contap_Restriction\",Contap_IType::Contap_Restriction).export_values();\n+ py::enum_(m, \"Contap_TFunction\",R\"#()#\")\n+ .value(\"Contap_ContourStd\",Contap_TFunction::Contap_ContourStd)\n+ .value(\"Contap_ContourPrs\",Contap_TFunction::Contap_ContourPrs)\n+ .value(\"Contap_DraftStd\",Contap_TFunction::Contap_DraftStd)\n+ .value(\"Contap_DraftPrs\",Contap_TFunction::Contap_DraftPrs).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"Contap_ContAna\",R\"#(This class provides the computation of the contours for quadric surfaces.)#\");\n py::class_ >(m,\"Contap_Contour\",R\"#()#\");\n py::class_ >(m,\"Contap_HContTool\",R\"#(Tool for the intersection between 2 surfaces. Regroupe pour l instant les methodes hors Adaptor3d...)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Extrema_pre.cpp", "source2": "./usr/share/libocp/OCP/Extrema_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -265,26 +265,26 @@\n py::module m = main_module.def_submodule(\"Extrema\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"Extrema_ExtAlgo\",R\"#()#\")\n+ .value(\"Extrema_ExtAlgo_Grad\",Extrema_ExtAlgo::Extrema_ExtAlgo_Grad)\n+ .value(\"Extrema_ExtAlgo_Tree\",Extrema_ExtAlgo::Extrema_ExtAlgo_Tree).export_values();\n py::enum_(m, \"Extrema_ElementType\",R\"#()#\")\n .value(\"Extrema_Node\",Extrema_ElementType::Extrema_Node)\n .value(\"Extrema_UIsoEdge\",Extrema_ElementType::Extrema_UIsoEdge)\n .value(\"Extrema_VIsoEdge\",Extrema_ElementType::Extrema_VIsoEdge)\n .value(\"Extrema_Face\",Extrema_ElementType::Extrema_Face).export_values();\n py::enum_(m, \"Extrema_ExtFlag\",R\"#()#\")\n .value(\"Extrema_ExtFlag_MIN\",Extrema_ExtFlag::Extrema_ExtFlag_MIN)\n .value(\"Extrema_ExtFlag_MAX\",Extrema_ExtFlag::Extrema_ExtFlag_MAX)\n .value(\"Extrema_ExtFlag_MINMAX\",Extrema_ExtFlag::Extrema_ExtFlag_MINMAX).export_values();\n- py::enum_(m, \"Extrema_ExtAlgo\",R\"#()#\")\n- .value(\"Extrema_ExtAlgo_Grad\",Extrema_ExtAlgo::Extrema_ExtAlgo_Grad)\n- .value(\"Extrema_ExtAlgo_Tree\",Extrema_ExtAlgo::Extrema_ExtAlgo_Tree).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"Extrema_Curve2dTool\",R\"#()#\");\n py::class_ >(m,\"Extrema_CurveTool\",R\"#()#\");\n py::class_ >(m,\"Extrema_ECC\",R\"#()#\");\n"}, {"source1": "./usr/share/libocp/OCP/FilletSurf_pre.cpp", "source2": "./usr/share/libocp/OCP/FilletSurf_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -39,29 +39,29 @@\n py::module m = main_module.def_submodule(\"FilletSurf\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"FilletSurf_ErrorTypeStatus\",R\"#()#\")\n+ .value(\"FilletSurf_EmptyList\",FilletSurf_ErrorTypeStatus::FilletSurf_EmptyList)\n+ .value(\"FilletSurf_EdgeNotG1\",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotG1)\n+ .value(\"FilletSurf_FacesNotG1\",FilletSurf_ErrorTypeStatus::FilletSurf_FacesNotG1)\n+ .value(\"FilletSurf_EdgeNotOnShape\",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotOnShape)\n+ .value(\"FilletSurf_NotSharpEdge\",FilletSurf_ErrorTypeStatus::FilletSurf_NotSharpEdge)\n+ .value(\"FilletSurf_PbFilletCompute\",FilletSurf_ErrorTypeStatus::FilletSurf_PbFilletCompute).export_values();\n py::enum_(m, \"FilletSurf_StatusType\",R\"#()#\")\n .value(\"FilletSurf_TwoExtremityOnEdge\",FilletSurf_StatusType::FilletSurf_TwoExtremityOnEdge)\n .value(\"FilletSurf_OneExtremityOnEdge\",FilletSurf_StatusType::FilletSurf_OneExtremityOnEdge)\n .value(\"FilletSurf_NoExtremityOnEdge\",FilletSurf_StatusType::FilletSurf_NoExtremityOnEdge).export_values();\n py::enum_(m, \"FilletSurf_StatusDone\",R\"#()#\")\n .value(\"FilletSurf_IsOk\",FilletSurf_StatusDone::FilletSurf_IsOk)\n .value(\"FilletSurf_IsNotOk\",FilletSurf_StatusDone::FilletSurf_IsNotOk)\n .value(\"FilletSurf_IsPartial\",FilletSurf_StatusDone::FilletSurf_IsPartial).export_values();\n- py::enum_(m, \"FilletSurf_ErrorTypeStatus\",R\"#()#\")\n- .value(\"FilletSurf_EmptyList\",FilletSurf_ErrorTypeStatus::FilletSurf_EmptyList)\n- .value(\"FilletSurf_EdgeNotG1\",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotG1)\n- .value(\"FilletSurf_FacesNotG1\",FilletSurf_ErrorTypeStatus::FilletSurf_FacesNotG1)\n- .value(\"FilletSurf_EdgeNotOnShape\",FilletSurf_ErrorTypeStatus::FilletSurf_EdgeNotOnShape)\n- .value(\"FilletSurf_NotSharpEdge\",FilletSurf_ErrorTypeStatus::FilletSurf_NotSharpEdge)\n- .value(\"FilletSurf_PbFilletCompute\",FilletSurf_ErrorTypeStatus::FilletSurf_PbFilletCompute).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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.)#\");\n 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.)#\");\n \n"}, {"source1": "./usr/share/libocp/OCP/Font_pre.cpp", "source2": "./usr/share/libocp/OCP/Font_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -51,20 +51,18 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Font_Hinting\",R\"#(Enumeration defining font hinting options.)#\")\n- .value(\"Font_Hinting_Off\",Font_Hinting::Font_Hinting_Off)\n- .value(\"Font_Hinting_Normal\",Font_Hinting::Font_Hinting_Normal)\n- .value(\"Font_Hinting_Light\",Font_Hinting::Font_Hinting_Light)\n- .value(\"Font_Hinting_ForceAutohint\",Font_Hinting::Font_Hinting_ForceAutohint)\n- .value(\"Font_Hinting_NoAutohint\",Font_Hinting::Font_Hinting_NoAutohint).export_values();\n+ py::enum_(m, \"Font_StrictLevel\",R\"#(Enumeration defining font search restrictions.)#\")\n+ .value(\"Font_StrictLevel_Strict\",Font_StrictLevel::Font_StrictLevel_Strict)\n+ .value(\"Font_StrictLevel_Aliases\",Font_StrictLevel::Font_StrictLevel_Aliases)\n+ .value(\"Font_StrictLevel_Any\",Font_StrictLevel::Font_StrictLevel_Any).export_values();\n py::enum_(m, \"Font_UnicodeSubset\",R\"#(Enumeration defining Unicode subsets.)#\")\n .value(\"Font_UnicodeSubset_Western\",Font_UnicodeSubset::Font_UnicodeSubset_Western)\n .value(\"Font_UnicodeSubset_Korean\",Font_UnicodeSubset::Font_UnicodeSubset_Korean)\n .value(\"Font_UnicodeSubset_CJK\",Font_UnicodeSubset::Font_UnicodeSubset_CJK)\n .value(\"Font_UnicodeSubset_Arabic\",Font_UnicodeSubset::Font_UnicodeSubset_Arabic).export_values();\n m.attr(\"Font_UnicodeSubset_NB\") = py::cast(int(Font_UnicodeSubset_NB));\n py::enum_(m, \"Font_FontAspect\",R\"#(Specifies aspect of system font.)#\")\n@@ -75,18 +73,20 @@\n .value(\"Font_FontAspect_BoldItalic\",Font_FontAspect::Font_FontAspect_BoldItalic)\n .value(\"Font_FA_Undefined\",Font_FontAspect::Font_FA_Undefined)\n .value(\"Font_FA_Regular\",Font_FontAspect::Font_FA_Regular)\n .value(\"Font_FA_Bold\",Font_FontAspect::Font_FA_Bold)\n .value(\"Font_FA_Italic\",Font_FontAspect::Font_FA_Italic)\n .value(\"Font_FA_BoldItalic\",Font_FontAspect::Font_FA_BoldItalic).export_values();\n m.attr(\"Font_FontAspect_NB\") = py::cast(int(Font_FontAspect_NB));\n- py::enum_(m, \"Font_StrictLevel\",R\"#(Enumeration defining font search restrictions.)#\")\n- .value(\"Font_StrictLevel_Strict\",Font_StrictLevel::Font_StrictLevel_Strict)\n- .value(\"Font_StrictLevel_Aliases\",Font_StrictLevel::Font_StrictLevel_Aliases)\n- .value(\"Font_StrictLevel_Any\",Font_StrictLevel::Font_StrictLevel_Any).export_values();\n+ py::enum_(m, \"Font_Hinting\",R\"#(Enumeration defining font hinting options.)#\")\n+ .value(\"Font_Hinting_Off\",Font_Hinting::Font_Hinting_Off)\n+ .value(\"Font_Hinting_Normal\",Font_Hinting::Font_Hinting_Normal)\n+ .value(\"Font_Hinting_Light\",Font_Hinting::Font_Hinting_Light)\n+ .value(\"Font_Hinting_ForceAutohint\",Font_Hinting::Font_Hinting_ForceAutohint)\n+ .value(\"Font_Hinting_NoAutohint\",Font_Hinting::Font_Hinting_NoAutohint).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"Font_FTFontParams\",R\"#(Font initialization parameters.)#\");\n py::class_ >(m,\"Font_Rect\",R\"#(Auxiliary POD structure - 2D rectangle definition.)#\");\n py::class_> , shared_ptr>> >(m,\"std::hash_opencascade::handle_Font_SystemFont\",R\"#()#\");\n"}, {"source1": "./usr/share/libocp/OCP/GCPnts_pre.cpp", "source2": "./usr/share/libocp/OCP/GCPnts_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -51,23 +51,23 @@\n py::module m = main_module.def_submodule(\"GCPnts\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"GCPnts_AbscissaType\",R\"#()#\")\n- .value(\"GCPnts_LengthParametrized\",GCPnts_AbscissaType::GCPnts_LengthParametrized)\n- .value(\"GCPnts_Parametrized\",GCPnts_AbscissaType::GCPnts_Parametrized)\n- .value(\"GCPnts_AbsComposite\",GCPnts_AbscissaType::GCPnts_AbsComposite).export_values();\n py::enum_(m, \"GCPnts_DeflectionType\",R\"#()#\")\n .value(\"GCPnts_Linear\",GCPnts_DeflectionType::GCPnts_Linear)\n .value(\"GCPnts_Circular\",GCPnts_DeflectionType::GCPnts_Circular)\n .value(\"GCPnts_Curved\",GCPnts_DeflectionType::GCPnts_Curved)\n .value(\"GCPnts_DefComposite\",GCPnts_DeflectionType::GCPnts_DefComposite).export_values();\n+ py::enum_(m, \"GCPnts_AbscissaType\",R\"#()#\")\n+ .value(\"GCPnts_LengthParametrized\",GCPnts_AbscissaType::GCPnts_LengthParametrized)\n+ .value(\"GCPnts_Parametrized\",GCPnts_AbscissaType::GCPnts_Parametrized)\n+ .value(\"GCPnts_AbsComposite\",GCPnts_AbscissaType::GCPnts_AbsComposite).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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.)#\");\n 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.)#\");\n 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.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/GProp_pre.cpp", "source2": "./usr/share/libocp/OCP/GProp_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -57,32 +57,32 @@\n py::module m = main_module.def_submodule(\"GProp\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"GProp_EquaType\",R\"#()#\")\n+ .value(\"GProp_Plane\",GProp_EquaType::GProp_Plane)\n+ .value(\"GProp_Line\",GProp_EquaType::GProp_Line)\n+ .value(\"GProp_Point\",GProp_EquaType::GProp_Point)\n+ .value(\"GProp_Space\",GProp_EquaType::GProp_Space)\n+ .value(\"GProp_None\",GProp_EquaType::GProp_None).export_values();\n py::enum_(m, \"GProp_ValueType\",R\"#(Algorithmes :)#\")\n .value(\"GProp_Mass\",GProp_ValueType::GProp_Mass)\n .value(\"GProp_CenterMassX\",GProp_ValueType::GProp_CenterMassX)\n .value(\"GProp_CenterMassY\",GProp_ValueType::GProp_CenterMassY)\n .value(\"GProp_CenterMassZ\",GProp_ValueType::GProp_CenterMassZ)\n .value(\"GProp_InertiaXX\",GProp_ValueType::GProp_InertiaXX)\n .value(\"GProp_InertiaYY\",GProp_ValueType::GProp_InertiaYY)\n .value(\"GProp_InertiaZZ\",GProp_ValueType::GProp_InertiaZZ)\n .value(\"GProp_InertiaXY\",GProp_ValueType::GProp_InertiaXY)\n .value(\"GProp_InertiaXZ\",GProp_ValueType::GProp_InertiaXZ)\n .value(\"GProp_InertiaYZ\",GProp_ValueType::GProp_InertiaYZ)\n .value(\"GProp_Unknown\",GProp_ValueType::GProp_Unknown).export_values();\n- py::enum_(m, \"GProp_EquaType\",R\"#()#\")\n- .value(\"GProp_Plane\",GProp_EquaType::GProp_Plane)\n- .value(\"GProp_Line\",GProp_EquaType::GProp_Line)\n- .value(\"GProp_Point\",GProp_EquaType::GProp_Point)\n- .value(\"GProp_Space\",GProp_EquaType::GProp_Space)\n- .value(\"GProp_None\",GProp_EquaType::GProp_None).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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).)#\");\n 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.)#\");\n 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.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Geom2dGcc_pre.cpp", "source2": "./usr/share/libocp/OCP/Geom2dGcc_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -112,37 +112,37 @@\n py::module m = main_module.def_submodule(\"Geom2dGcc\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"Geom2dGcc_Type3\",R\"#()#\")\n+ .value(\"Geom2dGcc_CuCu\",Geom2dGcc_Type3::Geom2dGcc_CuCu)\n+ .value(\"Geom2dGcc_CiCu\",Geom2dGcc_Type3::Geom2dGcc_CiCu).export_values();\n+ py::enum_(m, \"Geom2dGcc_Type1\",R\"#()#\")\n+ .value(\"Geom2dGcc_CuCuCu\",Geom2dGcc_Type1::Geom2dGcc_CuCuCu)\n+ .value(\"Geom2dGcc_CiCuCu\",Geom2dGcc_Type1::Geom2dGcc_CiCuCu)\n+ .value(\"Geom2dGcc_CiCiCu\",Geom2dGcc_Type1::Geom2dGcc_CiCiCu)\n+ .value(\"Geom2dGcc_CiLiCu\",Geom2dGcc_Type1::Geom2dGcc_CiLiCu)\n+ .value(\"Geom2dGcc_LiLiCu\",Geom2dGcc_Type1::Geom2dGcc_LiLiCu)\n+ .value(\"Geom2dGcc_LiCuCu\",Geom2dGcc_Type1::Geom2dGcc_LiCuCu).export_values();\n py::enum_(m, \"Geom2dGcc_Type2\",R\"#()#\")\n .value(\"Geom2dGcc_CuCuOnCu\",Geom2dGcc_Type2::Geom2dGcc_CuCuOnCu)\n .value(\"Geom2dGcc_CiCuOnCu\",Geom2dGcc_Type2::Geom2dGcc_CiCuOnCu)\n .value(\"Geom2dGcc_LiCuOnCu\",Geom2dGcc_Type2::Geom2dGcc_LiCuOnCu)\n .value(\"Geom2dGcc_CuPtOnCu\",Geom2dGcc_Type2::Geom2dGcc_CuPtOnCu)\n .value(\"Geom2dGcc_CuCuOnLi\",Geom2dGcc_Type2::Geom2dGcc_CuCuOnLi)\n .value(\"Geom2dGcc_CiCuOnLi\",Geom2dGcc_Type2::Geom2dGcc_CiCuOnLi)\n .value(\"Geom2dGcc_LiCuOnLi\",Geom2dGcc_Type2::Geom2dGcc_LiCuOnLi)\n .value(\"Geom2dGcc_CuPtOnLi\",Geom2dGcc_Type2::Geom2dGcc_CuPtOnLi)\n .value(\"Geom2dGcc_CuCuOnCi\",Geom2dGcc_Type2::Geom2dGcc_CuCuOnCi)\n .value(\"Geom2dGcc_CiCuOnCi\",Geom2dGcc_Type2::Geom2dGcc_CiCuOnCi)\n .value(\"Geom2dGcc_LiCuOnCi\",Geom2dGcc_Type2::Geom2dGcc_LiCuOnCi)\n .value(\"Geom2dGcc_CuPtOnCi\",Geom2dGcc_Type2::Geom2dGcc_CuPtOnCi).export_values();\n- py::enum_(m, \"Geom2dGcc_Type3\",R\"#()#\")\n- .value(\"Geom2dGcc_CuCu\",Geom2dGcc_Type3::Geom2dGcc_CuCu)\n- .value(\"Geom2dGcc_CiCu\",Geom2dGcc_Type3::Geom2dGcc_CiCu).export_values();\n- py::enum_(m, \"Geom2dGcc_Type1\",R\"#()#\")\n- .value(\"Geom2dGcc_CuCuCu\",Geom2dGcc_Type1::Geom2dGcc_CuCuCu)\n- .value(\"Geom2dGcc_CiCuCu\",Geom2dGcc_Type1::Geom2dGcc_CiCuCu)\n- .value(\"Geom2dGcc_CiCiCu\",Geom2dGcc_Type1::Geom2dGcc_CiCiCu)\n- .value(\"Geom2dGcc_CiLiCu\",Geom2dGcc_Type1::Geom2dGcc_CiLiCu)\n- .value(\"Geom2dGcc_LiLiCu\",Geom2dGcc_Type1::Geom2dGcc_LiLiCu)\n- .value(\"Geom2dGcc_LiCuCu\",Geom2dGcc_Type1::Geom2dGcc_LiCuCu).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"Geom2dGcc\",R\"#(The Geom2dGcc package describes qualified 2D curves used in the construction of constrained geometric objects by an algorithm provided by the Geom2dGcc package. A qualified 2D curve is a curve with a qualifier which specifies whether the solution of a construction algorithm using the qualified curve (as an argument): - encloses the curve, or - is enclosed by the curve, or - is built so that both the curve and this solution are external to one another, or - is undefined (all solutions apply). These package methods provide simpler functions to construct a qualified curve. Note: the interior of a curve is defined as the left-hand side of the curve in relation to its orientation.)#\");\n py::class_ >(m,\"Geom2dGcc_Circ2d2TanOn\",R\"#(This class implements the algorithms used to create 2d circles TANgent to 2 entities and having the center ON a curve. The order of the tangency argument is always QualifiedCirc, QualifiedLin, QualifiedCurv, Pnt2d. the arguments are : - The two tangency arguments. - The center line. - The parameter for each tangency argument which is a curve. - The tolerance.)#\");\n py::class_ >(m,\"Geom2dGcc_Circ2d2TanOnGeo\",R\"#(This class implements the algorithms used to create 2d circles TANgent to 2 entities and having the center ON a curve. The order of the tangency argument is always QualifiedCirc, QualifiedLin, QualifiedCurv, Pnt2d. the arguments are : - The two tangency arguments (lines, circles or points). - The center line (a curve). - The parameter for each tangency argument which is a curve. - The tolerance.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/GeomAbs_pre.cpp", "source2": "./usr/share/libocp/OCP/GeomAbs_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -36,39 +36,26 @@\n py::module m = main_module.def_submodule(\"GeomAbs\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"GeomAbs_IsoType\",R\"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#\")\n- .value(\"GeomAbs_IsoU\",GeomAbs_IsoType::GeomAbs_IsoU)\n- .value(\"GeomAbs_IsoV\",GeomAbs_IsoType::GeomAbs_IsoV)\n- .value(\"GeomAbs_NoneIso\",GeomAbs_IsoType::GeomAbs_NoneIso).export_values();\n py::enum_(m, \"GeomAbs_SurfaceType\",R\"#()#\")\n .value(\"GeomAbs_Plane\",GeomAbs_SurfaceType::GeomAbs_Plane)\n .value(\"GeomAbs_Cylinder\",GeomAbs_SurfaceType::GeomAbs_Cylinder)\n .value(\"GeomAbs_Cone\",GeomAbs_SurfaceType::GeomAbs_Cone)\n .value(\"GeomAbs_Sphere\",GeomAbs_SurfaceType::GeomAbs_Sphere)\n .value(\"GeomAbs_Torus\",GeomAbs_SurfaceType::GeomAbs_Torus)\n .value(\"GeomAbs_BezierSurface\",GeomAbs_SurfaceType::GeomAbs_BezierSurface)\n .value(\"GeomAbs_BSplineSurface\",GeomAbs_SurfaceType::GeomAbs_BSplineSurface)\n .value(\"GeomAbs_SurfaceOfRevolution\",GeomAbs_SurfaceType::GeomAbs_SurfaceOfRevolution)\n .value(\"GeomAbs_SurfaceOfExtrusion\",GeomAbs_SurfaceType::GeomAbs_SurfaceOfExtrusion)\n .value(\"GeomAbs_OffsetSurface\",GeomAbs_SurfaceType::GeomAbs_OffsetSurface)\n .value(\"GeomAbs_OtherSurface\",GeomAbs_SurfaceType::GeomAbs_OtherSurface).export_values();\n- 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.)#\")\n- .value(\"GeomAbs_Arc\",GeomAbs_JoinType::GeomAbs_Arc)\n- .value(\"GeomAbs_Tangent\",GeomAbs_JoinType::GeomAbs_Tangent)\n- .value(\"GeomAbs_Intersection\",GeomAbs_JoinType::GeomAbs_Intersection).export_values();\n- 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))#\")\n- .value(\"GeomAbs_NonUniform\",GeomAbs_BSplKnotDistribution::GeomAbs_NonUniform)\n- .value(\"GeomAbs_Uniform\",GeomAbs_BSplKnotDistribution::GeomAbs_Uniform)\n- .value(\"GeomAbs_QuasiUniform\",GeomAbs_BSplKnotDistribution::GeomAbs_QuasiUniform)\n- .value(\"GeomAbs_PiecewiseBezier\",GeomAbs_BSplKnotDistribution::GeomAbs_PiecewiseBezier).export_values();\n 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.)#\")\n .value(\"GeomAbs_C0\",GeomAbs_Shape::GeomAbs_C0)\n .value(\"GeomAbs_G1\",GeomAbs_Shape::GeomAbs_G1)\n .value(\"GeomAbs_C1\",GeomAbs_Shape::GeomAbs_C1)\n .value(\"GeomAbs_G2\",GeomAbs_Shape::GeomAbs_G2)\n .value(\"GeomAbs_C2\",GeomAbs_Shape::GeomAbs_C2)\n .value(\"GeomAbs_C3\",GeomAbs_Shape::GeomAbs_C3)\n@@ -79,14 +66,27 @@\n .value(\"GeomAbs_Ellipse\",GeomAbs_CurveType::GeomAbs_Ellipse)\n .value(\"GeomAbs_Hyperbola\",GeomAbs_CurveType::GeomAbs_Hyperbola)\n .value(\"GeomAbs_Parabola\",GeomAbs_CurveType::GeomAbs_Parabola)\n .value(\"GeomAbs_BezierCurve\",GeomAbs_CurveType::GeomAbs_BezierCurve)\n .value(\"GeomAbs_BSplineCurve\",GeomAbs_CurveType::GeomAbs_BSplineCurve)\n .value(\"GeomAbs_OffsetCurve\",GeomAbs_CurveType::GeomAbs_OffsetCurve)\n .value(\"GeomAbs_OtherCurve\",GeomAbs_CurveType::GeomAbs_OtherCurve).export_values();\n+ py::enum_(m, \"GeomAbs_IsoType\",R\"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#\")\n+ .value(\"GeomAbs_IsoU\",GeomAbs_IsoType::GeomAbs_IsoU)\n+ .value(\"GeomAbs_IsoV\",GeomAbs_IsoType::GeomAbs_IsoV)\n+ .value(\"GeomAbs_NoneIso\",GeomAbs_IsoType::GeomAbs_NoneIso).export_values();\n+ 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))#\")\n+ .value(\"GeomAbs_NonUniform\",GeomAbs_BSplKnotDistribution::GeomAbs_NonUniform)\n+ .value(\"GeomAbs_Uniform\",GeomAbs_BSplKnotDistribution::GeomAbs_Uniform)\n+ .value(\"GeomAbs_QuasiUniform\",GeomAbs_BSplKnotDistribution::GeomAbs_QuasiUniform)\n+ .value(\"GeomAbs_PiecewiseBezier\",GeomAbs_BSplKnotDistribution::GeomAbs_PiecewiseBezier).export_values();\n+ 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.)#\")\n+ .value(\"GeomAbs_Arc\",GeomAbs_JoinType::GeomAbs_Arc)\n+ .value(\"GeomAbs_Tangent\",GeomAbs_JoinType::GeomAbs_Tangent)\n+ .value(\"GeomAbs_Intersection\",GeomAbs_JoinType::GeomAbs_Intersection).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n \n };\n \n"}, {"source1": "./usr/share/libocp/OCP/GeomFill_pre.cpp", "source2": "./usr/share/libocp/OCP/GeomFill_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -173,14 +173,17 @@\n py::module m = main_module.def_submodule(\"GeomFill\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"GeomFill_ApproxStyle\",R\"#()#\")\n+ .value(\"GeomFill_Section\",GeomFill_ApproxStyle::GeomFill_Section)\n+ .value(\"GeomFill_Location\",GeomFill_ApproxStyle::GeomFill_Location).export_values();\n py::enum_(m, \"GeomFill_Trihedron\",R\"#()#\")\n .value(\"GeomFill_IsCorrectedFrenet\",GeomFill_Trihedron::GeomFill_IsCorrectedFrenet)\n .value(\"GeomFill_IsFixed\",GeomFill_Trihedron::GeomFill_IsFixed)\n .value(\"GeomFill_IsFrenet\",GeomFill_Trihedron::GeomFill_IsFrenet)\n .value(\"GeomFill_IsConstantNormal\",GeomFill_Trihedron::GeomFill_IsConstantNormal)\n .value(\"GeomFill_IsDarboux\",GeomFill_Trihedron::GeomFill_IsDarboux)\n .value(\"GeomFill_IsGuideAC\",GeomFill_Trihedron::GeomFill_IsGuideAC)\n@@ -188,17 +191,14 @@\n .value(\"GeomFill_IsGuideACWithContact\",GeomFill_Trihedron::GeomFill_IsGuideACWithContact)\n .value(\"GeomFill_IsGuidePlanWithContact\",GeomFill_Trihedron::GeomFill_IsGuidePlanWithContact)\n .value(\"GeomFill_IsDiscreteTrihedron\",GeomFill_Trihedron::GeomFill_IsDiscreteTrihedron).export_values();\n 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.)#\")\n .value(\"GeomFill_StretchStyle\",GeomFill_FillingStyle::GeomFill_StretchStyle)\n .value(\"GeomFill_CoonsStyle\",GeomFill_FillingStyle::GeomFill_CoonsStyle)\n .value(\"GeomFill_CurvedStyle\",GeomFill_FillingStyle::GeomFill_CurvedStyle).export_values();\n- py::enum_(m, \"GeomFill_ApproxStyle\",R\"#()#\")\n- .value(\"GeomFill_Section\",GeomFill_ApproxStyle::GeomFill_Section)\n- .value(\"GeomFill_Location\",GeomFill_ApproxStyle::GeomFill_Location).export_values();\n py::enum_(m, \"GeomFill_PipeError\",R\"#()#\")\n .value(\"GeomFill_PipeOk\",GeomFill_PipeError::GeomFill_PipeOk)\n .value(\"GeomFill_PipeNotOk\",GeomFill_PipeError::GeomFill_PipeNotOk)\n .value(\"GeomFill_PlaneNotIntersectGuide\",GeomFill_PipeError::GeomFill_PlaneNotIntersectGuide)\n .value(\"GeomFill_ImpossibleContact\",GeomFill_PipeError::GeomFill_ImpossibleContact).export_values();\n \n //Python trampoline classes\n"}, {"source1": "./usr/share/libocp/OCP/Graphic3d_pre.cpp", "source2": "./usr/share/libocp/OCP/Graphic3d_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -284,128 +284,91 @@\n \n // add namespaces as submodules\n m.def_submodule(\"Graphic3d_TransformUtils\");\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Graphic3d_GlslExtension\",R\"#(GLSL syntax extensions.)#\")\n- .value(\"Graphic3d_GlslExtension_GL_OES_standard_derivatives\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives)\n- .value(\"Graphic3d_GlslExtension_GL_EXT_shader_texture_lod\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod)\n- .value(\"Graphic3d_GlslExtension_GL_EXT_frag_depth\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth)\n- .value(\"Graphic3d_GlslExtension_GL_EXT_gpu_shader4\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values();\n- m.attr(\"Graphic3d_GlslExtension_NB\") = py::cast(int(Graphic3d_GlslExtension_NB));\n- m.attr(\"Graphic3d_ZLayerId_UNKNOWN\") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN));\n- m.attr(\"Graphic3d_ZLayerId_Default\") = py::cast(int(Graphic3d_ZLayerId_Default));\n- m.attr(\"Graphic3d_ZLayerId_Top\") = py::cast(int(Graphic3d_ZLayerId_Top));\n- m.attr(\"Graphic3d_ZLayerId_Topmost\") = py::cast(int(Graphic3d_ZLayerId_Topmost));\n- m.attr(\"Graphic3d_ZLayerId_TopOSD\") = py::cast(int(Graphic3d_ZLayerId_TopOSD));\n- m.attr(\"Graphic3d_ZLayerId_BotOSD\") = py::cast(int(Graphic3d_ZLayerId_BotOSD));\n- py::enum_(m, \"Graphic3d_TypeOfLimit\",R\"#(Type of graphic resource limit.)#\")\n- .value(\"Graphic3d_TypeOfLimit_MaxNbLights\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbLights)\n- .value(\"Graphic3d_TypeOfLimit_MaxNbClipPlanes\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbClipPlanes)\n- .value(\"Graphic3d_TypeOfLimit_MaxNbViews\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbViews)\n- .value(\"Graphic3d_TypeOfLimit_MaxTextureSize\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxTextureSize)\n- .value(\"Graphic3d_TypeOfLimit_MaxViewDumpSizeX\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeX)\n- .value(\"Graphic3d_TypeOfLimit_MaxViewDumpSizeY\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeY)\n- .value(\"Graphic3d_TypeOfLimit_MaxCombinedTextureUnits\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxCombinedTextureUnits)\n- .value(\"Graphic3d_TypeOfLimit_MaxMsaa\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxMsaa)\n- .value(\"Graphic3d_TypeOfLimit_HasPBR\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasPBR)\n- .value(\"Graphic3d_TypeOfLimit_HasRayTracing\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracing)\n- .value(\"Graphic3d_TypeOfLimit_HasRayTracingTextures\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingTextures)\n- .value(\"Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling)\n- .value(\"Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic)\n- .value(\"Graphic3d_TypeOfLimit_HasSRGB\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasSRGB)\n- .value(\"Graphic3d_TypeOfLimit_HasBlendedOit\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOit)\n- .value(\"Graphic3d_TypeOfLimit_HasBlendedOitMsaa\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOitMsaa)\n- .value(\"Graphic3d_TypeOfLimit_HasFlatShading\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasFlatShading)\n- .value(\"Graphic3d_TypeOfLimit_HasMeshEdges\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasMeshEdges)\n- .value(\"Graphic3d_TypeOfLimit_IsWorkaroundFBO\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_IsWorkaroundFBO)\n- .value(\"Graphic3d_TypeOfLimit_NB\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_NB).export_values();\n- 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.)#\")\n- .value(\"Graphic3d_TOTF_NEAREST\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST)\n- .value(\"Graphic3d_TOTF_BILINEAR\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR)\n- .value(\"Graphic3d_TOTF_TRILINEAR\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfReflection\",R\"#(Nature of the reflection of a material.)#\")\n- .value(\"Graphic3d_TOR_AMBIENT\",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT)\n- .value(\"Graphic3d_TOR_DIFFUSE\",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE)\n- .value(\"Graphic3d_TOR_SPECULAR\",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR)\n- .value(\"Graphic3d_TOR_EMISSION\",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values();\n- m.attr(\"Graphic3d_TypeOfReflection_NB\") = py::cast(int(Graphic3d_TypeOfReflection_NB));\n- py::enum_(m, \"Graphic3d_CappingFlags\",R\"#(Enumeration of capping flags.)#\")\n- .value(\"Graphic3d_CappingFlags_None\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None)\n- .value(\"Graphic3d_CappingFlags_ObjectMaterial\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial)\n- .value(\"Graphic3d_CappingFlags_ObjectTexture\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture)\n- .value(\"Graphic3d_CappingFlags_ObjectShader\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader)\n- .value(\"Graphic3d_CappingFlags_ObjectAspect\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfMaterial\",R\"#(Types of materials specifies if a material can change color.)#\")\n- .value(\"Graphic3d_MATERIAL_ASPECT\",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT)\n- .value(\"Graphic3d_MATERIAL_PHYSIC\",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values();\n+ py::enum_(m, \"Graphic3d_HorizontalTextAlignment\",R\"#(Defines the horizontal position of the text relative to its anchor.)#\")\n+ .value(\"Graphic3d_HTA_LEFT\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT)\n+ .value(\"Graphic3d_HTA_CENTER\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER)\n+ .value(\"Graphic3d_HTA_RIGHT\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values();\n m.attr(\"Graphic3d_ArrayFlags_None\") = py::cast(int(Graphic3d_ArrayFlags_None));\n m.attr(\"Graphic3d_ArrayFlags_VertexNormal\") = py::cast(int(Graphic3d_ArrayFlags_VertexNormal));\n m.attr(\"Graphic3d_ArrayFlags_VertexColor\") = py::cast(int(Graphic3d_ArrayFlags_VertexColor));\n m.attr(\"Graphic3d_ArrayFlags_VertexTexel\") = py::cast(int(Graphic3d_ArrayFlags_VertexTexel));\n m.attr(\"Graphic3d_ArrayFlags_BoundColor\") = py::cast(int(Graphic3d_ArrayFlags_BoundColor));\n m.attr(\"Graphic3d_ArrayFlags_AttribsMutable\") = py::cast(int(Graphic3d_ArrayFlags_AttribsMutable));\n m.attr(\"Graphic3d_ArrayFlags_AttribsDeinterleaved\") = py::cast(int(Graphic3d_ArrayFlags_AttribsDeinterleaved));\n m.attr(\"Graphic3d_ArrayFlags_IndexesMutable\") = py::cast(int(Graphic3d_ArrayFlags_IndexesMutable));\n- py::enum_(m, \"Graphic3d_ShaderFlags\",R\"#(Standard GLSL program combination bits.)#\")\n- .value(\"Graphic3d_ShaderFlags_VertColor\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor)\n- .value(\"Graphic3d_ShaderFlags_TextureRGB\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB)\n- .value(\"Graphic3d_ShaderFlags_TextureEnv\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv)\n- .value(\"Graphic3d_ShaderFlags_TextureNormal\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal)\n- .value(\"Graphic3d_ShaderFlags_PointSimple\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple)\n- .value(\"Graphic3d_ShaderFlags_PointSprite\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite)\n- .value(\"Graphic3d_ShaderFlags_PointSpriteA\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA)\n- .value(\"Graphic3d_ShaderFlags_StippleLine\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine)\n- .value(\"Graphic3d_ShaderFlags_ClipPlanes1\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1)\n- .value(\"Graphic3d_ShaderFlags_ClipPlanes2\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2)\n- .value(\"Graphic3d_ShaderFlags_ClipPlanesN\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN)\n- .value(\"Graphic3d_ShaderFlags_ClipChains\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains)\n- .value(\"Graphic3d_ShaderFlags_MeshEdges\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges)\n- .value(\"Graphic3d_ShaderFlags_AlphaTest\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest)\n- .value(\"Graphic3d_ShaderFlags_WriteOit\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit)\n- .value(\"Graphic3d_ShaderFlags_OitDepthPeeling\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling)\n- .value(\"Graphic3d_ShaderFlags_NB\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB)\n- .value(\"Graphic3d_ShaderFlags_IsPoint\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint)\n- .value(\"Graphic3d_ShaderFlags_HasTextures\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures)\n- .value(\"Graphic3d_ShaderFlags_NeedsGeomShader\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values();\n- py::enum_(m, \"Graphic3d_NameOfTexture1D\",R\"#(Types of standard textures.)#\")\n- .value(\"Graphic3d_NOT_1D_ELEVATION\",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION)\n- .value(\"Graphic3d_NOT_1D_UNKNOWN\",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values();\n+ py::enum_(m, \"Graphic3d_FrameStatsCounter\",R\"#(Stats counter.)#\")\n+ .value(\"Graphic3d_FrameStatsCounter_NbLayers\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers)\n+ .value(\"Graphic3d_FrameStatsCounter_NbStructs\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs)\n+ .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesGeom\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom)\n+ .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesFbos\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos)\n+ .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesTextures\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures)\n+ .value(\"Graphic3d_FrameStatsCounter_NbLayersNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbStructsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbGroupsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsFillNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsLineNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsPointNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsTextNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbTrianglesNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbLinesNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbPointsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled)\n+ .value(\"Graphic3d_FrameStatsCounter_NbLayersImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbStructsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbGroupsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsFillImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsLineImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsPointImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbElemsTextImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbTrianglesImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbLinesImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate)\n+ .value(\"Graphic3d_FrameStatsCounter_NbPointsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values();\n+ m.attr(\"Graphic3d_FrameStatsCounter_NB\") = py::cast(int(Graphic3d_FrameStatsCounter_NB));\n+ m.attr(\"Graphic3d_FrameStatsCounter_SCENE_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER));\n+ m.attr(\"Graphic3d_FrameStatsCounter_SCENE_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER));\n+ m.attr(\"Graphic3d_FrameStatsCounter_RENDERED_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER));\n+ m.attr(\"Graphic3d_FrameStatsCounter_RENDERED_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER));\n+ m.attr(\"Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER));\n+ m.attr(\"Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER));\n py::enum_(m, \"Graphic3d_NameOfTexturePlane\",R\"#(Type of the texture projection plane for both S and T texture coordinate.)#\")\n .value(\"Graphic3d_NOTP_XY\",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_XY)\n .value(\"Graphic3d_NOTP_YZ\",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_YZ)\n .value(\"Graphic3d_NOTP_ZX\",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_ZX)\n .value(\"Graphic3d_NOTP_UNKNOWN\",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_UNKNOWN).export_values();\n- py::enum_(m, \"Graphic3d_VerticalTextAlignment\",R\"#(Defines the vertical position of the text relative to its anchor.)#\")\n- .value(\"Graphic3d_VTA_BOTTOM\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_BOTTOM)\n- .value(\"Graphic3d_VTA_CENTER\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_CENTER)\n- .value(\"Graphic3d_VTA_TOP\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOP)\n- .value(\"Graphic3d_VTA_TOPFIRSTLINE\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOPFIRSTLINE).export_values();\n- 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)#\")\n- .value(\"Graphic3d_TOA_YES\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES)\n- .value(\"Graphic3d_TOA_NO\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO)\n- .value(\"Graphic3d_TOA_COMPUTE\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values();\n- py::enum_(m, \"Graphic3d_RenderingMode\",R\"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#\")\n- .value(\"Graphic3d_RM_RASTERIZATION\",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION)\n- .value(\"Graphic3d_RM_RAYTRACING\",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfConnection\",R\"#(To manage the connections between the structures.)#\")\n- .value(\"Graphic3d_TOC_ANCESTOR\",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR)\n- .value(\"Graphic3d_TOC_DESCENDANT\",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values();\n- py::enum_(m, \"Graphic3d_DiagnosticInfo\",R\"#(Diagnostic info categories bit flags.)#\")\n- .value(\"Graphic3d_DiagnosticInfo_Device\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device)\n- .value(\"Graphic3d_DiagnosticInfo_FrameBuffer\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer)\n- .value(\"Graphic3d_DiagnosticInfo_Limits\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits)\n- .value(\"Graphic3d_DiagnosticInfo_Memory\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory)\n- .value(\"Graphic3d_DiagnosticInfo_NativePlatform\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform)\n- .value(\"Graphic3d_DiagnosticInfo_Extensions\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions)\n- .value(\"Graphic3d_DiagnosticInfo_Short\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short)\n- .value(\"Graphic3d_DiagnosticInfo_Basic\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic)\n- .value(\"Graphic3d_DiagnosticInfo_Complete\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfLightSource\",R\"#(Definition of all the type of light source.)#\")\n+ .value(\"Graphic3d_TypeOfLightSource_Ambient\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Ambient)\n+ .value(\"Graphic3d_TypeOfLightSource_Directional\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Directional)\n+ .value(\"Graphic3d_TypeOfLightSource_Positional\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Positional)\n+ .value(\"Graphic3d_TypeOfLightSource_Spot\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Spot)\n+ .value(\"Graphic3d_TOLS_AMBIENT\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_AMBIENT)\n+ .value(\"Graphic3d_TOLS_DIRECTIONAL\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_DIRECTIONAL)\n+ .value(\"Graphic3d_TOLS_POSITIONAL\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_POSITIONAL)\n+ .value(\"Graphic3d_TOLS_SPOT\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_SPOT)\n+ .value(\"V3d_AMBIENT\",Graphic3d_TypeOfLightSource::V3d_AMBIENT)\n+ .value(\"V3d_DIRECTIONAL\",Graphic3d_TypeOfLightSource::V3d_DIRECTIONAL)\n+ .value(\"V3d_POSITIONAL\",Graphic3d_TypeOfLightSource::V3d_POSITIONAL)\n+ .value(\"V3d_SPOT\",Graphic3d_TypeOfLightSource::V3d_SPOT).export_values();\n+ m.attr(\"Graphic3d_TypeOfLightSource_NB\") = py::cast(int(Graphic3d_TypeOfLightSource_NB));\n+ py::enum_(m, \"Graphic3d_TypeOfMaterial\",R\"#(Types of materials specifies if a material can change color.)#\")\n+ .value(\"Graphic3d_MATERIAL_ASPECT\",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT)\n+ .value(\"Graphic3d_MATERIAL_PHYSIC\",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values();\n+ py::enum_(m, \"Graphic3d_TransModeFlags\",R\"#(Transform Persistence Mode defining whether to lock in object position, rotation and / or zooming relative to camera position.)#\")\n+ .value(\"Graphic3d_TMF_None\",Graphic3d_TransModeFlags::Graphic3d_TMF_None)\n+ .value(\"Graphic3d_TMF_ZoomPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomPers)\n+ .value(\"Graphic3d_TMF_RotatePers\",Graphic3d_TransModeFlags::Graphic3d_TMF_RotatePers)\n+ .value(\"Graphic3d_TMF_TriedronPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_TriedronPers)\n+ .value(\"Graphic3d_TMF_2d\",Graphic3d_TransModeFlags::Graphic3d_TMF_2d)\n+ .value(\"Graphic3d_TMF_CameraPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_CameraPers)\n+ .value(\"Graphic3d_TMF_ZoomRotatePers\",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomRotatePers).export_values();\n py::enum_(m, \"Graphic3d_TypeOfAttribute\",R\"#(Type of attribute in Vertex Buffer)#\")\n .value(\"Graphic3d_TOA_POS\",Graphic3d_TypeOfAttribute::Graphic3d_TOA_POS)\n .value(\"Graphic3d_TOA_NORM\",Graphic3d_TypeOfAttribute::Graphic3d_TOA_NORM)\n .value(\"Graphic3d_TOA_UV\",Graphic3d_TypeOfAttribute::Graphic3d_TOA_UV)\n .value(\"Graphic3d_TOA_COLOR\",Graphic3d_TypeOfAttribute::Graphic3d_TOA_COLOR)\n .value(\"Graphic3d_TOA_CUSTOM\",Graphic3d_TypeOfAttribute::Graphic3d_TOA_CUSTOM).export_values();\n py::enum_(m, \"Graphic3d_TypeOfData\",R\"#(Type of the element in Vertex or Index Buffer)#\")\n@@ -419,162 +382,57 @@\n py::enum_(m, \"Graphic3d_TypeOfShaderObject\",R\"#(Type of the shader object.)#\")\n .value(\"Graphic3d_TOS_VERTEX\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_VERTEX)\n .value(\"Graphic3d_TOS_TESS_CONTROL\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_CONTROL)\n .value(\"Graphic3d_TOS_TESS_EVALUATION\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_EVALUATION)\n .value(\"Graphic3d_TOS_GEOMETRY\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_GEOMETRY)\n .value(\"Graphic3d_TOS_FRAGMENT\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_FRAGMENT)\n .value(\"Graphic3d_TOS_COMPUTE\",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_COMPUTE).export_values();\n+ py::enum_(m, \"Graphic3d_GlslExtension\",R\"#(GLSL syntax extensions.)#\")\n+ .value(\"Graphic3d_GlslExtension_GL_OES_standard_derivatives\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives)\n+ .value(\"Graphic3d_GlslExtension_GL_EXT_shader_texture_lod\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod)\n+ .value(\"Graphic3d_GlslExtension_GL_EXT_frag_depth\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth)\n+ .value(\"Graphic3d_GlslExtension_GL_EXT_gpu_shader4\",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values();\n+ m.attr(\"Graphic3d_GlslExtension_NB\") = py::cast(int(Graphic3d_GlslExtension_NB));\n py::enum_(m, \"Graphic3d_BufferType\",R\"#(Define buffers available for dump)#\")\n .value(\"Graphic3d_BT_RGB\",Graphic3d_BufferType::Graphic3d_BT_RGB)\n .value(\"Graphic3d_BT_RGBA\",Graphic3d_BufferType::Graphic3d_BT_RGBA)\n .value(\"Graphic3d_BT_Depth\",Graphic3d_BufferType::Graphic3d_BT_Depth)\n .value(\"Graphic3d_BT_RGB_RayTraceHdrLeft\",Graphic3d_BufferType::Graphic3d_BT_RGB_RayTraceHdrLeft)\n .value(\"Graphic3d_BT_Red\",Graphic3d_BufferType::Graphic3d_BT_Red).export_values();\n py::enum_(m, \"Graphic3d_TextureSetBits\",R\"#(Standard texture units combination bits.)#\")\n .value(\"Graphic3d_TextureSetBits_NONE\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_NONE)\n .value(\"Graphic3d_TextureSetBits_BaseColor\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_BaseColor)\n .value(\"Graphic3d_TextureSetBits_Emissive\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Emissive)\n .value(\"Graphic3d_TextureSetBits_Occlusion\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Occlusion)\n .value(\"Graphic3d_TextureSetBits_Normal\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Normal)\n .value(\"Graphic3d_TextureSetBits_MetallicRoughness\",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_MetallicRoughness).export_values();\n- py::enum_(m, \"Graphic3d_FrameStatsTimer\",R\"#(Timers for collecting frame performance statistics.)#\")\n- .value(\"Graphic3d_FrameStatsTimer_ElapsedFrame\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_ElapsedFrame)\n- .value(\"Graphic3d_FrameStatsTimer_CpuFrame\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuFrame)\n- .value(\"Graphic3d_FrameStatsTimer_CpuCulling\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuCulling)\n- .value(\"Graphic3d_FrameStatsTimer_CpuPicking\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuPicking)\n- .value(\"Graphic3d_FrameStatsTimer_CpuDynamics\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuDynamics).export_values();\n- m.attr(\"Graphic3d_FrameStatsTimer_NB\") = py::cast(int(Graphic3d_FrameStatsTimer_NB));\n- py::enum_(m, \"Graphic3d_CubeMapSide\",R\"#(Sides of cubemap in order of OpenGL rules)#\")\n- .value(\"Graphic3d_CMS_POS_X\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_X)\n- .value(\"Graphic3d_CMS_NEG_X\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_X)\n- .value(\"Graphic3d_CMS_POS_Y\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Y)\n- .value(\"Graphic3d_CMS_NEG_Y\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Y)\n- .value(\"Graphic3d_CMS_POS_Z\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Z)\n- .value(\"Graphic3d_CMS_NEG_Z\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Z).export_values();\n+ m.attr(\"Graphic3d_ZLayerId_UNKNOWN\") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN));\n+ m.attr(\"Graphic3d_ZLayerId_Default\") = py::cast(int(Graphic3d_ZLayerId_Default));\n+ m.attr(\"Graphic3d_ZLayerId_Top\") = py::cast(int(Graphic3d_ZLayerId_Top));\n+ m.attr(\"Graphic3d_ZLayerId_Topmost\") = py::cast(int(Graphic3d_ZLayerId_Topmost));\n+ m.attr(\"Graphic3d_ZLayerId_TopOSD\") = py::cast(int(Graphic3d_ZLayerId_TopOSD));\n+ m.attr(\"Graphic3d_ZLayerId_BotOSD\") = py::cast(int(Graphic3d_ZLayerId_BotOSD));\n py::enum_(m, \"Graphic3d_RenderTransparentMethod\",R\"#(Enumerates transparency rendering methods supported by rasterization mode.)#\")\n .value(\"Graphic3d_RTM_BLEND_UNORDERED\",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_UNORDERED)\n .value(\"Graphic3d_RTM_BLEND_OIT\",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_OIT)\n .value(\"Graphic3d_RTM_DEPTH_PEELING_OIT\",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_DEPTH_PEELING_OIT).export_values();\n- 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 ()#\")\n- .value(\"Graphic3d_NameOfMaterial_Brass\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Brass)\n- .value(\"Graphic3d_NameOfMaterial_Bronze\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Bronze)\n- .value(\"Graphic3d_NameOfMaterial_Copper\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Copper)\n- .value(\"Graphic3d_NameOfMaterial_Gold\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Gold)\n- .value(\"Graphic3d_NameOfMaterial_Pewter\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Pewter)\n- .value(\"Graphic3d_NameOfMaterial_Plastered\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastered)\n- .value(\"Graphic3d_NameOfMaterial_Plastified\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastified)\n- .value(\"Graphic3d_NameOfMaterial_Silver\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Silver)\n- .value(\"Graphic3d_NameOfMaterial_Steel\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Steel)\n- .value(\"Graphic3d_NameOfMaterial_Stone\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Stone)\n- .value(\"Graphic3d_NameOfMaterial_ShinyPlastified\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_ShinyPlastified)\n- .value(\"Graphic3d_NameOfMaterial_Satin\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Satin)\n- .value(\"Graphic3d_NameOfMaterial_Metalized\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Metalized)\n- .value(\"Graphic3d_NameOfMaterial_Ionized\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Ionized)\n- .value(\"Graphic3d_NameOfMaterial_Chrome\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Chrome)\n- .value(\"Graphic3d_NameOfMaterial_Aluminum\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Aluminum)\n- .value(\"Graphic3d_NameOfMaterial_Obsidian\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Obsidian)\n- .value(\"Graphic3d_NameOfMaterial_Neon\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Neon)\n- .value(\"Graphic3d_NameOfMaterial_Jade\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Jade)\n- .value(\"Graphic3d_NameOfMaterial_Charcoal\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Charcoal)\n- .value(\"Graphic3d_NameOfMaterial_Water\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Water)\n- .value(\"Graphic3d_NameOfMaterial_Glass\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Glass)\n- .value(\"Graphic3d_NameOfMaterial_Diamond\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Diamond)\n- .value(\"Graphic3d_NameOfMaterial_Transparent\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Transparent)\n- .value(\"Graphic3d_NameOfMaterial_DEFAULT\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_DEFAULT)\n- .value(\"Graphic3d_NameOfMaterial_UserDefined\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_UserDefined)\n- .value(\"Graphic3d_NOM_BRASS\",Graphic3d_NameOfMaterial::Graphic3d_NOM_BRASS)\n- .value(\"Graphic3d_NOM_BRONZE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_BRONZE)\n- .value(\"Graphic3d_NOM_COPPER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_COPPER)\n- .value(\"Graphic3d_NOM_GOLD\",Graphic3d_NameOfMaterial::Graphic3d_NOM_GOLD)\n- .value(\"Graphic3d_NOM_PEWTER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PEWTER)\n- .value(\"Graphic3d_NOM_PLASTER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PLASTER)\n- .value(\"Graphic3d_NOM_PLASTIC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PLASTIC)\n- .value(\"Graphic3d_NOM_SILVER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SILVER)\n- .value(\"Graphic3d_NOM_STEEL\",Graphic3d_NameOfMaterial::Graphic3d_NOM_STEEL)\n- .value(\"Graphic3d_NOM_STONE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_STONE)\n- .value(\"Graphic3d_NOM_SHINY_PLASTIC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SHINY_PLASTIC)\n- .value(\"Graphic3d_NOM_SATIN\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SATIN)\n- .value(\"Graphic3d_NOM_METALIZED\",Graphic3d_NameOfMaterial::Graphic3d_NOM_METALIZED)\n- .value(\"Graphic3d_NOM_NEON_GNC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_NEON_GNC)\n- .value(\"Graphic3d_NOM_CHROME\",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHROME)\n- .value(\"Graphic3d_NOM_ALUMINIUM\",Graphic3d_NameOfMaterial::Graphic3d_NOM_ALUMINIUM)\n- .value(\"Graphic3d_NOM_OBSIDIAN\",Graphic3d_NameOfMaterial::Graphic3d_NOM_OBSIDIAN)\n- .value(\"Graphic3d_NOM_NEON_PHC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_NEON_PHC)\n- .value(\"Graphic3d_NOM_JADE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_JADE)\n- .value(\"Graphic3d_NOM_CHARCOAL\",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHARCOAL)\n- .value(\"Graphic3d_NOM_WATER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_WATER)\n- .value(\"Graphic3d_NOM_GLASS\",Graphic3d_NameOfMaterial::Graphic3d_NOM_GLASS)\n- .value(\"Graphic3d_NOM_DIAMOND\",Graphic3d_NameOfMaterial::Graphic3d_NOM_DIAMOND)\n- .value(\"Graphic3d_NOM_TRANSPARENT\",Graphic3d_NameOfMaterial::Graphic3d_NOM_TRANSPARENT)\n- .value(\"Graphic3d_NOM_DEFAULT\",Graphic3d_NameOfMaterial::Graphic3d_NOM_DEFAULT)\n- .value(\"Graphic3d_NOM_UserDefined\",Graphic3d_NameOfMaterial::Graphic3d_NOM_UserDefined).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfStructure\",R\"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#\")\n- .value(\"Graphic3d_TOS_WIREFRAME\",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME)\n- .value(\"Graphic3d_TOS_SHADING\",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING)\n- .value(\"Graphic3d_TOS_COMPUTED\",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED)\n- .value(\"Graphic3d_TOS_ALL\",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values();\n- py::enum_(m, \"Graphic3d_AlphaMode\",R\"#(Defines how alpha value of base color / texture should be treated.)#\")\n- .value(\"Graphic3d_AlphaMode_Opaque\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Opaque)\n- .value(\"Graphic3d_AlphaMode_Mask\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Mask)\n- .value(\"Graphic3d_AlphaMode_Blend\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Blend)\n- .value(\"Graphic3d_AlphaMode_MaskBlend\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_MaskBlend)\n- .value(\"Graphic3d_AlphaMode_BlendAuto\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_BlendAuto).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfLightSource\",R\"#(Definition of all the type of light source.)#\")\n- .value(\"Graphic3d_TypeOfLightSource_Ambient\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Ambient)\n- .value(\"Graphic3d_TypeOfLightSource_Directional\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Directional)\n- .value(\"Graphic3d_TypeOfLightSource_Positional\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Positional)\n- .value(\"Graphic3d_TypeOfLightSource_Spot\",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Spot)\n- .value(\"Graphic3d_TOLS_AMBIENT\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_AMBIENT)\n- .value(\"Graphic3d_TOLS_DIRECTIONAL\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_DIRECTIONAL)\n- .value(\"Graphic3d_TOLS_POSITIONAL\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_POSITIONAL)\n- .value(\"Graphic3d_TOLS_SPOT\",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_SPOT)\n- .value(\"V3d_AMBIENT\",Graphic3d_TypeOfLightSource::V3d_AMBIENT)\n- .value(\"V3d_DIRECTIONAL\",Graphic3d_TypeOfLightSource::V3d_DIRECTIONAL)\n- .value(\"V3d_POSITIONAL\",Graphic3d_TypeOfLightSource::V3d_POSITIONAL)\n- .value(\"V3d_SPOT\",Graphic3d_TypeOfLightSource::V3d_SPOT).export_values();\n- m.attr(\"Graphic3d_TypeOfLightSource_NB\") = py::cast(int(Graphic3d_TypeOfLightSource_NB));\n- py::enum_(m, \"Graphic3d_NameOfTexture2D\",R\"#(Types of standard textures.)#\")\n- .value(\"Graphic3d_NOT_2D_MATRA\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MATRA)\n- .value(\"Graphic3d_NOT_2D_ALIENSKIN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALIENSKIN)\n- .value(\"Graphic3d_NOT_2D_BLUE_ROCK\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUE_ROCK)\n- .value(\"Graphic3d_NOT_2D_BLUEWHITE_PAPER\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUEWHITE_PAPER)\n- .value(\"Graphic3d_NOT_2D_BRUSHED\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BRUSHED)\n- .value(\"Graphic3d_NOT_2D_BUBBLES\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUBBLES)\n- .value(\"Graphic3d_NOT_2D_BUMP\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUMP)\n- .value(\"Graphic3d_NOT_2D_CAST\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CAST)\n- .value(\"Graphic3d_NOT_2D_CHIPBD\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHIPBD)\n- .value(\"Graphic3d_NOT_2D_CLOUDS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CLOUDS)\n- .value(\"Graphic3d_NOT_2D_FLESH\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLESH)\n- .value(\"Graphic3d_NOT_2D_FLOOR\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLOOR)\n- .value(\"Graphic3d_NOT_2D_GALVNISD\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GALVNISD)\n- .value(\"Graphic3d_NOT_2D_GRASS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GRASS)\n- .value(\"Graphic3d_NOT_2D_ALUMINUM\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALUMINUM)\n- .value(\"Graphic3d_NOT_2D_ROCK\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ROCK)\n- .value(\"Graphic3d_NOT_2D_KNURL\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_KNURL)\n- .value(\"Graphic3d_NOT_2D_MAPLE\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MAPLE)\n- .value(\"Graphic3d_NOT_2D_MARBLE\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MARBLE)\n- .value(\"Graphic3d_NOT_2D_MOTTLED\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MOTTLED)\n- .value(\"Graphic3d_NOT_2D_RAIN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_RAIN)\n- .value(\"Graphic3d_NOT_2D_CHESS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHESS)\n- .value(\"Graphic3d_NOT_2D_UNKNOWN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_UNKNOWN).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfPrimitiveArray\",R\"#(The type of primitive array in a group in a structure.)#\")\n- .value(\"Graphic3d_TOPA_UNDEFINED\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED)\n- .value(\"Graphic3d_TOPA_POINTS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS)\n- .value(\"Graphic3d_TOPA_SEGMENTS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS)\n- .value(\"Graphic3d_TOPA_POLYLINES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES)\n- .value(\"Graphic3d_TOPA_TRIANGLES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES)\n- .value(\"Graphic3d_TOPA_TRIANGLESTRIPS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS)\n- .value(\"Graphic3d_TOPA_TRIANGLEFANS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS)\n- .value(\"Graphic3d_TOPA_LINES_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY)\n- .value(\"Graphic3d_TOPA_LINE_STRIP_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY)\n- .value(\"Graphic3d_TOPA_TRIANGLES_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY)\n- .value(\"Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY)\n- .value(\"Graphic3d_TOPA_QUADRANGLES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES)\n- .value(\"Graphic3d_TOPA_QUADRANGLESTRIPS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS)\n- .value(\"Graphic3d_TOPA_POLYGONS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values();\n+ 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).)#\")\n+ .value(\"Graphic3d_DisplayPriority_INVALID\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID)\n+ .value(\"Graphic3d_DisplayPriority_Bottom\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom)\n+ .value(\"Graphic3d_DisplayPriority_AlmostBottom\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom)\n+ .value(\"Graphic3d_DisplayPriority_Below2\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2)\n+ .value(\"Graphic3d_DisplayPriority_Below1\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1)\n+ .value(\"Graphic3d_DisplayPriority_Below\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below)\n+ .value(\"Graphic3d_DisplayPriority_Normal\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal)\n+ .value(\"Graphic3d_DisplayPriority_Above\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above)\n+ .value(\"Graphic3d_DisplayPriority_Above1\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1)\n+ .value(\"Graphic3d_DisplayPriority_Above2\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2)\n+ .value(\"Graphic3d_DisplayPriority_Highlight\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight)\n+ .value(\"Graphic3d_DisplayPriority_Topmost\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values();\n+ m.attr(\"Graphic3d_DisplayPriority_NB\") = py::cast(int(Graphic3d_DisplayPriority_NB));\n py::enum_(m, \"Graphic3d_TextureUnit\",R\"#(Texture unit.)#\")\n .value(\"Graphic3d_TextureUnit_0\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_0)\n .value(\"Graphic3d_TextureUnit_1\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_1)\n .value(\"Graphic3d_TextureUnit_2\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_2)\n .value(\"Graphic3d_TextureUnit_3\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_3)\n .value(\"Graphic3d_TextureUnit_4\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_4)\n .value(\"Graphic3d_TextureUnit_5\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_5)\n@@ -598,179 +456,321 @@\n .value(\"Graphic3d_TextureUnit_DepthPeelingDepth\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingDepth)\n .value(\"Graphic3d_TextureUnit_DepthPeelingFrontColor\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingFrontColor)\n .value(\"Graphic3d_TextureUnit_ShadowMap\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_ShadowMap)\n .value(\"Graphic3d_TextureUnit_PbrEnvironmentLUT\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrEnvironmentLUT)\n .value(\"Graphic3d_TextureUnit_PbrIblDiffuseSH\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblDiffuseSH)\n .value(\"Graphic3d_TextureUnit_PbrIblSpecular\",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblSpecular).export_values();\n m.attr(\"Graphic3d_TextureUnit_NB\") = py::cast(int(Graphic3d_TextureUnit_NB));\n- py::enum_(m, \"Graphic3d_TextPath\",R\"#(Direction in which text is displayed.)#\")\n- .value(\"Graphic3d_TP_UP\",Graphic3d_TextPath::Graphic3d_TP_UP)\n- .value(\"Graphic3d_TP_DOWN\",Graphic3d_TextPath::Graphic3d_TP_DOWN)\n- .value(\"Graphic3d_TP_LEFT\",Graphic3d_TextPath::Graphic3d_TP_LEFT)\n- .value(\"Graphic3d_TP_RIGHT\",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfVisualization\",R\"#(Modes of visualisation of objects in a view)#\")\n+ .value(\"Graphic3d_TOV_WIREFRAME\",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME)\n+ .value(\"Graphic3d_TOV_SHADING\",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values();\n+ py::enum_(m, \"Graphic3d_ClipState\",R\"#(Clipping state.)#\")\n+ .value(\"Graphic3d_ClipState_Out\",Graphic3d_ClipState::Graphic3d_ClipState_Out)\n+ .value(\"Graphic3d_ClipState_In\",Graphic3d_ClipState::Graphic3d_ClipState_In)\n+ .value(\"Graphic3d_ClipState_On\",Graphic3d_ClipState::Graphic3d_ClipState_On).export_values();\n py::enum_(m, \"Graphic3d_StereoMode\",R\"#(This enumeration defines the list of stereoscopic output modes.)#\")\n .value(\"Graphic3d_StereoMode_QuadBuffer\",Graphic3d_StereoMode::Graphic3d_StereoMode_QuadBuffer)\n .value(\"Graphic3d_StereoMode_Anaglyph\",Graphic3d_StereoMode::Graphic3d_StereoMode_Anaglyph)\n .value(\"Graphic3d_StereoMode_RowInterlaced\",Graphic3d_StereoMode::Graphic3d_StereoMode_RowInterlaced)\n .value(\"Graphic3d_StereoMode_ColumnInterlaced\",Graphic3d_StereoMode::Graphic3d_StereoMode_ColumnInterlaced)\n .value(\"Graphic3d_StereoMode_ChessBoard\",Graphic3d_StereoMode::Graphic3d_StereoMode_ChessBoard)\n .value(\"Graphic3d_StereoMode_SideBySide\",Graphic3d_StereoMode::Graphic3d_StereoMode_SideBySide)\n .value(\"Graphic3d_StereoMode_OverUnder\",Graphic3d_StereoMode::Graphic3d_StereoMode_OverUnder)\n .value(\"Graphic3d_StereoMode_SoftPageFlip\",Graphic3d_StereoMode::Graphic3d_StereoMode_SoftPageFlip)\n .value(\"Graphic3d_StereoMode_OpenVR\",Graphic3d_StereoMode::Graphic3d_StereoMode_OpenVR).export_values();\n m.attr(\"Graphic3d_StereoMode_NB\") = py::cast(int(Graphic3d_StereoMode_NB));\n- py::enum_(m, \"Graphic3d_HorizontalTextAlignment\",R\"#(Defines the horizontal position of the text relative to its anchor.)#\")\n- .value(\"Graphic3d_HTA_LEFT\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT)\n- .value(\"Graphic3d_HTA_CENTER\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER)\n- .value(\"Graphic3d_HTA_RIGHT\",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values();\n- py::enum_(m, \"Graphic3d_ClipState\",R\"#(Clipping state.)#\")\n- .value(\"Graphic3d_ClipState_Out\",Graphic3d_ClipState::Graphic3d_ClipState_Out)\n- .value(\"Graphic3d_ClipState_In\",Graphic3d_ClipState::Graphic3d_ClipState_In)\n- .value(\"Graphic3d_ClipState_On\",Graphic3d_ClipState::Graphic3d_ClipState_On).export_values();\n- 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).)#\")\n- .value(\"Graphic3d_DisplayPriority_INVALID\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID)\n- .value(\"Graphic3d_DisplayPriority_Bottom\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom)\n- .value(\"Graphic3d_DisplayPriority_AlmostBottom\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom)\n- .value(\"Graphic3d_DisplayPriority_Below2\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2)\n- .value(\"Graphic3d_DisplayPriority_Below1\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1)\n- .value(\"Graphic3d_DisplayPriority_Below\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below)\n- .value(\"Graphic3d_DisplayPriority_Normal\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal)\n- .value(\"Graphic3d_DisplayPriority_Above\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above)\n- .value(\"Graphic3d_DisplayPriority_Above1\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1)\n- .value(\"Graphic3d_DisplayPriority_Above2\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2)\n- .value(\"Graphic3d_DisplayPriority_Highlight\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight)\n- .value(\"Graphic3d_DisplayPriority_Topmost\",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values();\n- m.attr(\"Graphic3d_DisplayPriority_NB\") = py::cast(int(Graphic3d_DisplayPriority_NB));\n- py::enum_(m, \"Graphic3d_TransModeFlags\",R\"#(Transform Persistence Mode defining whether to lock in object position, rotation and / or zooming relative to camera position.)#\")\n- .value(\"Graphic3d_TMF_None\",Graphic3d_TransModeFlags::Graphic3d_TMF_None)\n- .value(\"Graphic3d_TMF_ZoomPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomPers)\n- .value(\"Graphic3d_TMF_RotatePers\",Graphic3d_TransModeFlags::Graphic3d_TMF_RotatePers)\n- .value(\"Graphic3d_TMF_TriedronPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_TriedronPers)\n- .value(\"Graphic3d_TMF_2d\",Graphic3d_TransModeFlags::Graphic3d_TMF_2d)\n- .value(\"Graphic3d_TMF_CameraPers\",Graphic3d_TransModeFlags::Graphic3d_TMF_CameraPers)\n- .value(\"Graphic3d_TMF_ZoomRotatePers\",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomRotatePers).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfConnection\",R\"#(To manage the connections between the structures.)#\")\n+ .value(\"Graphic3d_TOC_ANCESTOR\",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR)\n+ .value(\"Graphic3d_TOC_DESCENDANT\",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfPrimitiveArray\",R\"#(The type of primitive array in a group in a structure.)#\")\n+ .value(\"Graphic3d_TOPA_UNDEFINED\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED)\n+ .value(\"Graphic3d_TOPA_POINTS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS)\n+ .value(\"Graphic3d_TOPA_SEGMENTS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS)\n+ .value(\"Graphic3d_TOPA_POLYLINES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES)\n+ .value(\"Graphic3d_TOPA_TRIANGLES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES)\n+ .value(\"Graphic3d_TOPA_TRIANGLESTRIPS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS)\n+ .value(\"Graphic3d_TOPA_TRIANGLEFANS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS)\n+ .value(\"Graphic3d_TOPA_LINES_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY)\n+ .value(\"Graphic3d_TOPA_LINE_STRIP_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY)\n+ .value(\"Graphic3d_TOPA_TRIANGLES_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY)\n+ .value(\"Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY)\n+ .value(\"Graphic3d_TOPA_QUADRANGLES\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES)\n+ .value(\"Graphic3d_TOPA_QUADRANGLESTRIPS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS)\n+ .value(\"Graphic3d_TOPA_POLYGONS\",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values();\n+ py::enum_(m, \"Graphic3d_FrameStatsTimer\",R\"#(Timers for collecting frame performance statistics.)#\")\n+ .value(\"Graphic3d_FrameStatsTimer_ElapsedFrame\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_ElapsedFrame)\n+ .value(\"Graphic3d_FrameStatsTimer_CpuFrame\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuFrame)\n+ .value(\"Graphic3d_FrameStatsTimer_CpuCulling\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuCulling)\n+ .value(\"Graphic3d_FrameStatsTimer_CpuPicking\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuPicking)\n+ .value(\"Graphic3d_FrameStatsTimer_CpuDynamics\",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuDynamics).export_values();\n+ m.attr(\"Graphic3d_FrameStatsTimer_NB\") = py::cast(int(Graphic3d_FrameStatsTimer_NB));\n+ py::enum_(m, \"Graphic3d_TypeOfReflection\",R\"#(Nature of the reflection of a material.)#\")\n+ .value(\"Graphic3d_TOR_AMBIENT\",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT)\n+ .value(\"Graphic3d_TOR_DIFFUSE\",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE)\n+ .value(\"Graphic3d_TOR_SPECULAR\",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR)\n+ .value(\"Graphic3d_TOR_EMISSION\",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values();\n+ m.attr(\"Graphic3d_TypeOfReflection_NB\") = py::cast(int(Graphic3d_TypeOfReflection_NB));\n+ py::enum_(m, \"Graphic3d_DiagnosticInfo\",R\"#(Diagnostic info categories bit flags.)#\")\n+ .value(\"Graphic3d_DiagnosticInfo_Device\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device)\n+ .value(\"Graphic3d_DiagnosticInfo_FrameBuffer\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer)\n+ .value(\"Graphic3d_DiagnosticInfo_Limits\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits)\n+ .value(\"Graphic3d_DiagnosticInfo_Memory\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory)\n+ .value(\"Graphic3d_DiagnosticInfo_NativePlatform\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform)\n+ .value(\"Graphic3d_DiagnosticInfo_Extensions\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions)\n+ .value(\"Graphic3d_DiagnosticInfo_Short\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short)\n+ .value(\"Graphic3d_DiagnosticInfo_Basic\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic)\n+ .value(\"Graphic3d_DiagnosticInfo_Complete\",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values();\n+ py::enum_(m, \"Graphic3d_NameOfTexture1D\",R\"#(Types of standard textures.)#\")\n+ .value(\"Graphic3d_NOT_1D_ELEVATION\",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION)\n+ .value(\"Graphic3d_NOT_1D_UNKNOWN\",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values();\n+ py::enum_(m, \"Graphic3d_ShaderFlags\",R\"#(Standard GLSL program combination bits.)#\")\n+ .value(\"Graphic3d_ShaderFlags_VertColor\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor)\n+ .value(\"Graphic3d_ShaderFlags_TextureRGB\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB)\n+ .value(\"Graphic3d_ShaderFlags_TextureEnv\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv)\n+ .value(\"Graphic3d_ShaderFlags_TextureNormal\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal)\n+ .value(\"Graphic3d_ShaderFlags_PointSimple\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple)\n+ .value(\"Graphic3d_ShaderFlags_PointSprite\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite)\n+ .value(\"Graphic3d_ShaderFlags_PointSpriteA\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA)\n+ .value(\"Graphic3d_ShaderFlags_StippleLine\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine)\n+ .value(\"Graphic3d_ShaderFlags_ClipPlanes1\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1)\n+ .value(\"Graphic3d_ShaderFlags_ClipPlanes2\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2)\n+ .value(\"Graphic3d_ShaderFlags_ClipPlanesN\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN)\n+ .value(\"Graphic3d_ShaderFlags_ClipChains\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains)\n+ .value(\"Graphic3d_ShaderFlags_MeshEdges\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges)\n+ .value(\"Graphic3d_ShaderFlags_AlphaTest\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest)\n+ .value(\"Graphic3d_ShaderFlags_WriteOit\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit)\n+ .value(\"Graphic3d_ShaderFlags_OitDepthPeeling\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling)\n+ .value(\"Graphic3d_ShaderFlags_NB\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB)\n+ .value(\"Graphic3d_ShaderFlags_IsPoint\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint)\n+ .value(\"Graphic3d_ShaderFlags_HasTextures\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures)\n+ .value(\"Graphic3d_ShaderFlags_NeedsGeomShader\",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values();\n 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.)#\")\n .value(\"Graphic3d_ASPECT_LINE\",Graphic3d_GroupAspect::Graphic3d_ASPECT_LINE)\n .value(\"Graphic3d_ASPECT_TEXT\",Graphic3d_GroupAspect::Graphic3d_ASPECT_TEXT)\n .value(\"Graphic3d_ASPECT_MARKER\",Graphic3d_GroupAspect::Graphic3d_ASPECT_MARKER)\n .value(\"Graphic3d_ASPECT_FILL_AREA\",Graphic3d_GroupAspect::Graphic3d_ASPECT_FILL_AREA).export_values();\n- py::enum_(m, \"Graphic3d_ToneMappingMethod\",R\"#(Enumerates tone mapping methods.)#\")\n- .value(\"Graphic3d_ToneMappingMethod_Disabled\",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled)\n- .value(\"Graphic3d_ToneMappingMethod_Filmic\",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfBackground\",R\"#(Describes type of view background.)#\")\n- .value(\"Graphic3d_TOB_NONE\",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE)\n- .value(\"Graphic3d_TOB_GRADIENT\",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT)\n- .value(\"Graphic3d_TOB_TEXTURE\",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE)\n- .value(\"Graphic3d_TOB_CUBEMAP\",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values();\n- m.attr(\"Graphic3d_TypeOfBackground_NB\") = py::cast(int(Graphic3d_TypeOfBackground_NB));\n- py::enum_(m, \"Graphic3d_TypeOfShadingModel\",R\"#(Definition of the color shading model.)#\")\n- .value(\"Graphic3d_TypeOfShadingModel_DEFAULT\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT)\n- .value(\"Graphic3d_TypeOfShadingModel_Unlit\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit)\n- .value(\"Graphic3d_TypeOfShadingModel_PhongFacet\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet)\n- .value(\"Graphic3d_TypeOfShadingModel_Gouraud\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud)\n- .value(\"Graphic3d_TypeOfShadingModel_Phong\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong)\n- .value(\"Graphic3d_TypeOfShadingModel_Pbr\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr)\n- .value(\"Graphic3d_TypeOfShadingModel_PbrFacet\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet)\n- .value(\"Graphic3d_TOSM_DEFAULT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT)\n- .value(\"Graphic3d_TOSM_UNLIT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT)\n- .value(\"Graphic3d_TOSM_FACET\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET)\n- .value(\"Graphic3d_TOSM_VERTEX\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX)\n- .value(\"Graphic3d_TOSM_FRAGMENT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT)\n- .value(\"Graphic3d_TOSM_PBR\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR)\n- .value(\"Graphic3d_TOSM_PBR_FACET\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET)\n- .value(\"Graphic3d_TOSM_NONE\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE)\n- .value(\"V3d_COLOR\",Graphic3d_TypeOfShadingModel::V3d_COLOR)\n- .value(\"V3d_FLAT\",Graphic3d_TypeOfShadingModel::V3d_FLAT)\n- .value(\"V3d_GOURAUD\",Graphic3d_TypeOfShadingModel::V3d_GOURAUD)\n- .value(\"V3d_PHONG\",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values();\n- m.attr(\"Graphic3d_TypeOfShadingModel_NB\") = py::cast(int(Graphic3d_TypeOfShadingModel_NB));\n+ py::enum_(m, \"Graphic3d_CubeMapSide\",R\"#(Sides of cubemap in order of OpenGL rules)#\")\n+ .value(\"Graphic3d_CMS_POS_X\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_X)\n+ .value(\"Graphic3d_CMS_NEG_X\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_X)\n+ .value(\"Graphic3d_CMS_POS_Y\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Y)\n+ .value(\"Graphic3d_CMS_NEG_Y\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Y)\n+ .value(\"Graphic3d_CMS_POS_Z\",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Z)\n+ .value(\"Graphic3d_CMS_NEG_Z\",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Z).export_values();\n+ 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.)#\")\n+ .value(\"Graphic3d_TOTF_NEAREST\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST)\n+ .value(\"Graphic3d_TOTF_BILINEAR\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR)\n+ .value(\"Graphic3d_TOTF_TRILINEAR\",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values();\n+ py::enum_(m, \"Graphic3d_TextPath\",R\"#(Direction in which text is displayed.)#\")\n+ .value(\"Graphic3d_TP_UP\",Graphic3d_TextPath::Graphic3d_TP_UP)\n+ .value(\"Graphic3d_TP_DOWN\",Graphic3d_TextPath::Graphic3d_TP_DOWN)\n+ .value(\"Graphic3d_TP_LEFT\",Graphic3d_TextPath::Graphic3d_TP_LEFT)\n+ .value(\"Graphic3d_TP_RIGHT\",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values();\n+ py::enum_(m, \"Graphic3d_CappingFlags\",R\"#(Enumeration of capping flags.)#\")\n+ .value(\"Graphic3d_CappingFlags_None\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None)\n+ .value(\"Graphic3d_CappingFlags_ObjectMaterial\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial)\n+ .value(\"Graphic3d_CappingFlags_ObjectTexture\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture)\n+ .value(\"Graphic3d_CappingFlags_ObjectShader\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader)\n+ .value(\"Graphic3d_CappingFlags_ObjectAspect\",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values();\n+ py::enum_(m, \"Graphic3d_NameOfTexture2D\",R\"#(Types of standard textures.)#\")\n+ .value(\"Graphic3d_NOT_2D_MATRA\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MATRA)\n+ .value(\"Graphic3d_NOT_2D_ALIENSKIN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALIENSKIN)\n+ .value(\"Graphic3d_NOT_2D_BLUE_ROCK\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUE_ROCK)\n+ .value(\"Graphic3d_NOT_2D_BLUEWHITE_PAPER\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUEWHITE_PAPER)\n+ .value(\"Graphic3d_NOT_2D_BRUSHED\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BRUSHED)\n+ .value(\"Graphic3d_NOT_2D_BUBBLES\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUBBLES)\n+ .value(\"Graphic3d_NOT_2D_BUMP\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUMP)\n+ .value(\"Graphic3d_NOT_2D_CAST\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CAST)\n+ .value(\"Graphic3d_NOT_2D_CHIPBD\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHIPBD)\n+ .value(\"Graphic3d_NOT_2D_CLOUDS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CLOUDS)\n+ .value(\"Graphic3d_NOT_2D_FLESH\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLESH)\n+ .value(\"Graphic3d_NOT_2D_FLOOR\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLOOR)\n+ .value(\"Graphic3d_NOT_2D_GALVNISD\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GALVNISD)\n+ .value(\"Graphic3d_NOT_2D_GRASS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GRASS)\n+ .value(\"Graphic3d_NOT_2D_ALUMINUM\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALUMINUM)\n+ .value(\"Graphic3d_NOT_2D_ROCK\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ROCK)\n+ .value(\"Graphic3d_NOT_2D_KNURL\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_KNURL)\n+ .value(\"Graphic3d_NOT_2D_MAPLE\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MAPLE)\n+ .value(\"Graphic3d_NOT_2D_MARBLE\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MARBLE)\n+ .value(\"Graphic3d_NOT_2D_MOTTLED\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MOTTLED)\n+ .value(\"Graphic3d_NOT_2D_RAIN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_RAIN)\n+ .value(\"Graphic3d_NOT_2D_CHESS\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHESS)\n+ .value(\"Graphic3d_NOT_2D_UNKNOWN\",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_UNKNOWN).export_values();\n py::enum_(m, \"Graphic3d_TypeOfBackfacingModel\",R\"#(Modes of display of back faces in the view.)#\")\n .value(\"Graphic3d_TypeOfBackfacingModel_Auto\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_Auto)\n .value(\"Graphic3d_TypeOfBackfacingModel_DoubleSided\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_DoubleSided)\n .value(\"Graphic3d_TypeOfBackfacingModel_BackCulled\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_BackCulled)\n .value(\"Graphic3d_TypeOfBackfacingModel_FrontCulled\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_FrontCulled)\n .value(\"Graphic3d_TOBM_AUTOMATIC\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_AUTOMATIC)\n .value(\"Graphic3d_TOBM_FORCE\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_FORCE)\n .value(\"Graphic3d_TOBM_DISABLE\",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_DISABLE)\n .value(\"V3d_TOBM_AUTOMATIC\",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_AUTOMATIC)\n .value(\"V3d_TOBM_ALWAYS_DISPLAYED\",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_ALWAYS_DISPLAYED)\n .value(\"V3d_TOBM_NEVER_DISPLAYED\",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_NEVER_DISPLAYED).export_values();\n- py::enum_(m, \"Graphic3d_TypeOfVisualization\",R\"#(Modes of visualisation of objects in a view)#\")\n- .value(\"Graphic3d_TOV_WIREFRAME\",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME)\n- .value(\"Graphic3d_TOV_SHADING\",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values();\n- py::enum_(m, \"Graphic3d_FrameStatsCounter\",R\"#(Stats counter.)#\")\n- .value(\"Graphic3d_FrameStatsCounter_NbLayers\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers)\n- .value(\"Graphic3d_FrameStatsCounter_NbStructs\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs)\n- .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesGeom\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom)\n- .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesFbos\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos)\n- .value(\"Graphic3d_FrameStatsCounter_EstimatedBytesTextures\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures)\n- .value(\"Graphic3d_FrameStatsCounter_NbLayersNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbStructsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbGroupsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsFillNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsLineNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsPointNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsTextNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbTrianglesNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbLinesNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbPointsNotCulled\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled)\n- .value(\"Graphic3d_FrameStatsCounter_NbLayersImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbStructsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbGroupsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsFillImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsLineImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsPointImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbElemsTextImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbTrianglesImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbLinesImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate)\n- .value(\"Graphic3d_FrameStatsCounter_NbPointsImmediate\",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values();\n- m.attr(\"Graphic3d_FrameStatsCounter_NB\") = py::cast(int(Graphic3d_FrameStatsCounter_NB));\n- m.attr(\"Graphic3d_FrameStatsCounter_SCENE_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER));\n- m.attr(\"Graphic3d_FrameStatsCounter_SCENE_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER));\n- m.attr(\"Graphic3d_FrameStatsCounter_RENDERED_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER));\n- m.attr(\"Graphic3d_FrameStatsCounter_RENDERED_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER));\n- m.attr(\"Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER\") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER));\n- m.attr(\"Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER\") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER));\n- py::enum_(m, \"Graphic3d_LevelOfTextureAnisotropy\",R\"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#\")\n- .value(\"Graphic3d_LOTA_OFF\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF)\n- .value(\"Graphic3d_LOTA_FAST\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST)\n- .value(\"Graphic3d_LOTA_MIDDLE\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE)\n- .value(\"Graphic3d_LOTA_QUALITY\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values();\n py::enum_(m, \"Graphic3d_NameOfTextureEnv\",R\"#(Types of standard textures.)#\")\n .value(\"Graphic3d_NOT_ENV_CLOUDS\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CLOUDS)\n .value(\"Graphic3d_NOT_ENV_CV\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CV)\n .value(\"Graphic3d_NOT_ENV_MEDIT\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_MEDIT)\n .value(\"Graphic3d_NOT_ENV_PEARL\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_PEARL)\n .value(\"Graphic3d_NOT_ENV_SKY1\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY1)\n .value(\"Graphic3d_NOT_ENV_SKY2\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY2)\n .value(\"Graphic3d_NOT_ENV_LINES\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_LINES)\n .value(\"Graphic3d_NOT_ENV_ROAD\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_ROAD)\n .value(\"Graphic3d_NOT_ENV_UNKNOWN\",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_UNKNOWN).export_values();\n+ py::enum_(m, \"Graphic3d_VerticalTextAlignment\",R\"#(Defines the vertical position of the text relative to its anchor.)#\")\n+ .value(\"Graphic3d_VTA_BOTTOM\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_BOTTOM)\n+ .value(\"Graphic3d_VTA_CENTER\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_CENTER)\n+ .value(\"Graphic3d_VTA_TOP\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOP)\n+ .value(\"Graphic3d_VTA_TOPFIRSTLINE\",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOPFIRSTLINE).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfStructure\",R\"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#\")\n+ .value(\"Graphic3d_TOS_WIREFRAME\",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME)\n+ .value(\"Graphic3d_TOS_SHADING\",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING)\n+ .value(\"Graphic3d_TOS_COMPUTED\",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED)\n+ .value(\"Graphic3d_TOS_ALL\",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfBackground\",R\"#(Describes type of view background.)#\")\n+ .value(\"Graphic3d_TOB_NONE\",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE)\n+ .value(\"Graphic3d_TOB_GRADIENT\",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT)\n+ .value(\"Graphic3d_TOB_TEXTURE\",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE)\n+ .value(\"Graphic3d_TOB_CUBEMAP\",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values();\n+ m.attr(\"Graphic3d_TypeOfBackground_NB\") = py::cast(int(Graphic3d_TypeOfBackground_NB));\n py::enum_(m, \"Graphic3d_FresnelModel\",R\"#(Type of the Fresnel model.)#\")\n .value(\"Graphic3d_FM_SCHLICK\",Graphic3d_FresnelModel::Graphic3d_FM_SCHLICK)\n .value(\"Graphic3d_FM_CONSTANT\",Graphic3d_FresnelModel::Graphic3d_FM_CONSTANT)\n .value(\"Graphic3d_FM_CONDUCTOR\",Graphic3d_FresnelModel::Graphic3d_FM_CONDUCTOR)\n .value(\"Graphic3d_FM_DIELECTRIC\",Graphic3d_FresnelModel::Graphic3d_FM_DIELECTRIC).export_values();\n py::enum_(m, \"Graphic3d_TypeOfTexture\",R\"#(Type of the texture file format.)#\")\n .value(\"Graphic3d_TypeOfTexture_1D\",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_1D)\n .value(\"Graphic3d_TypeOfTexture_2D\",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_2D)\n .value(\"Graphic3d_TypeOfTexture_3D\",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_3D)\n .value(\"Graphic3d_TypeOfTexture_CUBEMAP\",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_CUBEMAP)\n .value(\"Graphic3d_TOT_2D_MIPMAP\",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D_MIPMAP)\n .value(\"Graphic3d_TOT_1D\",Graphic3d_TypeOfTexture::Graphic3d_TOT_1D)\n .value(\"Graphic3d_TOT_2D\",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D)\n .value(\"Graphic3d_TOT_CUBEMAP\",Graphic3d_TypeOfTexture::Graphic3d_TOT_CUBEMAP).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfLimit\",R\"#(Type of graphic resource limit.)#\")\n+ .value(\"Graphic3d_TypeOfLimit_MaxNbLights\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbLights)\n+ .value(\"Graphic3d_TypeOfLimit_MaxNbClipPlanes\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbClipPlanes)\n+ .value(\"Graphic3d_TypeOfLimit_MaxNbViews\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbViews)\n+ .value(\"Graphic3d_TypeOfLimit_MaxTextureSize\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxTextureSize)\n+ .value(\"Graphic3d_TypeOfLimit_MaxViewDumpSizeX\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeX)\n+ .value(\"Graphic3d_TypeOfLimit_MaxViewDumpSizeY\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeY)\n+ .value(\"Graphic3d_TypeOfLimit_MaxCombinedTextureUnits\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxCombinedTextureUnits)\n+ .value(\"Graphic3d_TypeOfLimit_MaxMsaa\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxMsaa)\n+ .value(\"Graphic3d_TypeOfLimit_HasPBR\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasPBR)\n+ .value(\"Graphic3d_TypeOfLimit_HasRayTracing\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracing)\n+ .value(\"Graphic3d_TypeOfLimit_HasRayTracingTextures\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingTextures)\n+ .value(\"Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling)\n+ .value(\"Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic)\n+ .value(\"Graphic3d_TypeOfLimit_HasSRGB\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasSRGB)\n+ .value(\"Graphic3d_TypeOfLimit_HasBlendedOit\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOit)\n+ .value(\"Graphic3d_TypeOfLimit_HasBlendedOitMsaa\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOitMsaa)\n+ .value(\"Graphic3d_TypeOfLimit_HasFlatShading\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasFlatShading)\n+ .value(\"Graphic3d_TypeOfLimit_HasMeshEdges\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasMeshEdges)\n+ .value(\"Graphic3d_TypeOfLimit_IsWorkaroundFBO\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_IsWorkaroundFBO)\n+ .value(\"Graphic3d_TypeOfLimit_NB\",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_NB).export_values();\n+ py::enum_(m, \"Graphic3d_AlphaMode\",R\"#(Defines how alpha value of base color / texture should be treated.)#\")\n+ .value(\"Graphic3d_AlphaMode_Opaque\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Opaque)\n+ .value(\"Graphic3d_AlphaMode_Mask\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Mask)\n+ .value(\"Graphic3d_AlphaMode_Blend\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Blend)\n+ .value(\"Graphic3d_AlphaMode_MaskBlend\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_MaskBlend)\n+ .value(\"Graphic3d_AlphaMode_BlendAuto\",Graphic3d_AlphaMode::Graphic3d_AlphaMode_BlendAuto).export_values();\n+ py::enum_(m, \"Graphic3d_TypeOfShadingModel\",R\"#(Definition of the color shading model.)#\")\n+ .value(\"Graphic3d_TypeOfShadingModel_DEFAULT\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT)\n+ .value(\"Graphic3d_TypeOfShadingModel_Unlit\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit)\n+ .value(\"Graphic3d_TypeOfShadingModel_PhongFacet\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet)\n+ .value(\"Graphic3d_TypeOfShadingModel_Gouraud\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud)\n+ .value(\"Graphic3d_TypeOfShadingModel_Phong\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong)\n+ .value(\"Graphic3d_TypeOfShadingModel_Pbr\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr)\n+ .value(\"Graphic3d_TypeOfShadingModel_PbrFacet\",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet)\n+ .value(\"Graphic3d_TOSM_DEFAULT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT)\n+ .value(\"Graphic3d_TOSM_UNLIT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT)\n+ .value(\"Graphic3d_TOSM_FACET\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET)\n+ .value(\"Graphic3d_TOSM_VERTEX\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX)\n+ .value(\"Graphic3d_TOSM_FRAGMENT\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT)\n+ .value(\"Graphic3d_TOSM_PBR\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR)\n+ .value(\"Graphic3d_TOSM_PBR_FACET\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET)\n+ .value(\"Graphic3d_TOSM_NONE\",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE)\n+ .value(\"V3d_COLOR\",Graphic3d_TypeOfShadingModel::V3d_COLOR)\n+ .value(\"V3d_FLAT\",Graphic3d_TypeOfShadingModel::V3d_FLAT)\n+ .value(\"V3d_GOURAUD\",Graphic3d_TypeOfShadingModel::V3d_GOURAUD)\n+ .value(\"V3d_PHONG\",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values();\n+ m.attr(\"Graphic3d_TypeOfShadingModel_NB\") = py::cast(int(Graphic3d_TypeOfShadingModel_NB));\n+ 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)#\")\n+ .value(\"Graphic3d_TOA_YES\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES)\n+ .value(\"Graphic3d_TOA_NO\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO)\n+ .value(\"Graphic3d_TOA_COMPUTE\",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values();\n+ py::enum_(m, \"Graphic3d_LevelOfTextureAnisotropy\",R\"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#\")\n+ .value(\"Graphic3d_LOTA_OFF\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF)\n+ .value(\"Graphic3d_LOTA_FAST\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST)\n+ .value(\"Graphic3d_LOTA_MIDDLE\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE)\n+ .value(\"Graphic3d_LOTA_QUALITY\",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values();\n py::enum_(m, \"Graphic3d_TypeOfTextureMode\",R\"#(Type of the texture projection.)#\")\n .value(\"Graphic3d_TOTM_OBJECT\",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_OBJECT)\n .value(\"Graphic3d_TOTM_SPHERE\",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPHERE)\n .value(\"Graphic3d_TOTM_EYE\",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_EYE)\n .value(\"Graphic3d_TOTM_MANUAL\",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_MANUAL)\n .value(\"Graphic3d_TOTM_SPRITE\",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPRITE).export_values();\n+ py::enum_(m, \"Graphic3d_ToneMappingMethod\",R\"#(Enumerates tone mapping methods.)#\")\n+ .value(\"Graphic3d_ToneMappingMethod_Disabled\",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled)\n+ .value(\"Graphic3d_ToneMappingMethod_Filmic\",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values();\n+ py::enum_(m, \"Graphic3d_RenderingMode\",R\"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#\")\n+ .value(\"Graphic3d_RM_RASTERIZATION\",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION)\n+ .value(\"Graphic3d_RM_RAYTRACING\",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values();\n+ 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 ()#\")\n+ .value(\"Graphic3d_NameOfMaterial_Brass\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Brass)\n+ .value(\"Graphic3d_NameOfMaterial_Bronze\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Bronze)\n+ .value(\"Graphic3d_NameOfMaterial_Copper\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Copper)\n+ .value(\"Graphic3d_NameOfMaterial_Gold\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Gold)\n+ .value(\"Graphic3d_NameOfMaterial_Pewter\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Pewter)\n+ .value(\"Graphic3d_NameOfMaterial_Plastered\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastered)\n+ .value(\"Graphic3d_NameOfMaterial_Plastified\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastified)\n+ .value(\"Graphic3d_NameOfMaterial_Silver\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Silver)\n+ .value(\"Graphic3d_NameOfMaterial_Steel\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Steel)\n+ .value(\"Graphic3d_NameOfMaterial_Stone\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Stone)\n+ .value(\"Graphic3d_NameOfMaterial_ShinyPlastified\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_ShinyPlastified)\n+ .value(\"Graphic3d_NameOfMaterial_Satin\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Satin)\n+ .value(\"Graphic3d_NameOfMaterial_Metalized\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Metalized)\n+ .value(\"Graphic3d_NameOfMaterial_Ionized\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Ionized)\n+ .value(\"Graphic3d_NameOfMaterial_Chrome\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Chrome)\n+ .value(\"Graphic3d_NameOfMaterial_Aluminum\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Aluminum)\n+ .value(\"Graphic3d_NameOfMaterial_Obsidian\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Obsidian)\n+ .value(\"Graphic3d_NameOfMaterial_Neon\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Neon)\n+ .value(\"Graphic3d_NameOfMaterial_Jade\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Jade)\n+ .value(\"Graphic3d_NameOfMaterial_Charcoal\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Charcoal)\n+ .value(\"Graphic3d_NameOfMaterial_Water\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Water)\n+ .value(\"Graphic3d_NameOfMaterial_Glass\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Glass)\n+ .value(\"Graphic3d_NameOfMaterial_Diamond\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Diamond)\n+ .value(\"Graphic3d_NameOfMaterial_Transparent\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Transparent)\n+ .value(\"Graphic3d_NameOfMaterial_DEFAULT\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_DEFAULT)\n+ .value(\"Graphic3d_NameOfMaterial_UserDefined\",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_UserDefined)\n+ .value(\"Graphic3d_NOM_BRASS\",Graphic3d_NameOfMaterial::Graphic3d_NOM_BRASS)\n+ .value(\"Graphic3d_NOM_BRONZE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_BRONZE)\n+ .value(\"Graphic3d_NOM_COPPER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_COPPER)\n+ .value(\"Graphic3d_NOM_GOLD\",Graphic3d_NameOfMaterial::Graphic3d_NOM_GOLD)\n+ .value(\"Graphic3d_NOM_PEWTER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PEWTER)\n+ .value(\"Graphic3d_NOM_PLASTER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PLASTER)\n+ .value(\"Graphic3d_NOM_PLASTIC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_PLASTIC)\n+ .value(\"Graphic3d_NOM_SILVER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SILVER)\n+ .value(\"Graphic3d_NOM_STEEL\",Graphic3d_NameOfMaterial::Graphic3d_NOM_STEEL)\n+ .value(\"Graphic3d_NOM_STONE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_STONE)\n+ .value(\"Graphic3d_NOM_SHINY_PLASTIC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SHINY_PLASTIC)\n+ .value(\"Graphic3d_NOM_SATIN\",Graphic3d_NameOfMaterial::Graphic3d_NOM_SATIN)\n+ .value(\"Graphic3d_NOM_METALIZED\",Graphic3d_NameOfMaterial::Graphic3d_NOM_METALIZED)\n+ .value(\"Graphic3d_NOM_NEON_GNC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_NEON_GNC)\n+ .value(\"Graphic3d_NOM_CHROME\",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHROME)\n+ .value(\"Graphic3d_NOM_ALUMINIUM\",Graphic3d_NameOfMaterial::Graphic3d_NOM_ALUMINIUM)\n+ .value(\"Graphic3d_NOM_OBSIDIAN\",Graphic3d_NameOfMaterial::Graphic3d_NOM_OBSIDIAN)\n+ .value(\"Graphic3d_NOM_NEON_PHC\",Graphic3d_NameOfMaterial::Graphic3d_NOM_NEON_PHC)\n+ .value(\"Graphic3d_NOM_JADE\",Graphic3d_NameOfMaterial::Graphic3d_NOM_JADE)\n+ .value(\"Graphic3d_NOM_CHARCOAL\",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHARCOAL)\n+ .value(\"Graphic3d_NOM_WATER\",Graphic3d_NameOfMaterial::Graphic3d_NOM_WATER)\n+ .value(\"Graphic3d_NOM_GLASS\",Graphic3d_NameOfMaterial::Graphic3d_NOM_GLASS)\n+ .value(\"Graphic3d_NOM_DIAMOND\",Graphic3d_NameOfMaterial::Graphic3d_NOM_DIAMOND)\n+ .value(\"Graphic3d_NOM_TRANSPARENT\",Graphic3d_NameOfMaterial::Graphic3d_NOM_TRANSPARENT)\n+ .value(\"Graphic3d_NOM_DEFAULT\",Graphic3d_NameOfMaterial::Graphic3d_NOM_DEFAULT)\n+ .value(\"Graphic3d_NOM_UserDefined\",Graphic3d_NameOfMaterial::Graphic3d_NOM_UserDefined).export_values();\n \n //Python trampoline classes\n class Py_Graphic3d_CStructure : public Graphic3d_CStructure{\n public:\n using Graphic3d_CStructure::Graphic3d_CStructure;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Graphic3d_tmpl.hxx", "source2": "./usr/share/libocp/OCP/Graphic3d_tmpl.hxx", "comments": ["Ordering differences only"], "unified_diff": "@@ -199,57 +199,57 @@\n \n // user-defined pre\n #include \"OCP_specific.inc\"\n \n // Class template handling functions\n \n template \n-void preregister_template_MatrixType(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_Graphic3d_UniformValueTypeID(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Generates unique type identifier for variable value.)#\");\n }\n \n template \n-void register_template_MatrixType(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_Graphic3d_UniformValueTypeID(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_VectorType(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+void preregister_template_Graphic3d_UniformValue(py::object &m, const char *name){\n+ py::class_ , shared_ptr> , Graphic3d_ValueInterface >(m,name,R\"#(Describes specific value of custom uniform variable.)#\");\n }\n \n template \n-void register_template_VectorType(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_Graphic3d_UniformValue(py::object &m, const char *name){\n+ static_cast , shared_ptr> , Graphic3d_ValueInterface >>(m.attr(name))\n+ .def(py::init< const T & >() ,py::arg(\"theValue\") )\n+ .def(\"TypeID\",\n+ (Standard_Size (Graphic3d_UniformValue::*)() const) &Graphic3d_UniformValue::TypeID,\n+ R\"#(Returns unique identifier of value type.)#\" )\n ;\n };\n \n template \n-void preregister_template_Graphic3d_UniformValueTypeID(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Generates unique type identifier for variable value.)#\");\n+void preregister_template_MatrixType(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_Graphic3d_UniformValueTypeID(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_MatrixType(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n-void preregister_template_Graphic3d_UniformValue(py::object &m, const char *name){\n- py::class_ , shared_ptr> , Graphic3d_ValueInterface >(m,name,R\"#(Describes specific value of custom uniform variable.)#\");\n+void preregister_template_VectorType(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n template \n-void register_template_Graphic3d_UniformValue(py::object &m, const char *name){\n- static_cast , shared_ptr> , Graphic3d_ValueInterface >>(m.attr(name))\n- .def(py::init< const T & >() ,py::arg(\"theValue\") )\n- .def(\"TypeID\",\n- (Standard_Size (Graphic3d_UniformValue::*)() const) &Graphic3d_UniformValue::TypeID,\n- R\"#(Returns unique identifier of value type.)#\" )\n+void register_template_VectorType(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n \n // user-defined post\n \n"}, {"source1": "./usr/share/libocp/OCP/HatchGen_pre.cpp", "source2": "./usr/share/libocp/OCP/HatchGen_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -47,25 +47,25 @@\n py::module m = main_module.def_submodule(\"HatchGen\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"HatchGen_IntersectionType\",R\"#(Intersection type between the hatching and the element.)#\")\n- .value(\"HatchGen_TRUE\",HatchGen_IntersectionType::HatchGen_TRUE)\n- .value(\"HatchGen_TOUCH\",HatchGen_IntersectionType::HatchGen_TOUCH)\n- .value(\"HatchGen_TANGENT\",HatchGen_IntersectionType::HatchGen_TANGENT)\n- .value(\"HatchGen_UNDETERMINED\",HatchGen_IntersectionType::HatchGen_UNDETERMINED).export_values();\n py::enum_(m, \"HatchGen_ErrorStatus\",R\"#(Error status.)#\")\n .value(\"HatchGen_NoProblem\",HatchGen_ErrorStatus::HatchGen_NoProblem)\n .value(\"HatchGen_TrimFailure\",HatchGen_ErrorStatus::HatchGen_TrimFailure)\n .value(\"HatchGen_TransitionFailure\",HatchGen_ErrorStatus::HatchGen_TransitionFailure)\n .value(\"HatchGen_IncoherentParity\",HatchGen_ErrorStatus::HatchGen_IncoherentParity)\n .value(\"HatchGen_IncompatibleStates\",HatchGen_ErrorStatus::HatchGen_IncompatibleStates).export_values();\n+ py::enum_(m, \"HatchGen_IntersectionType\",R\"#(Intersection type between the hatching and the element.)#\")\n+ .value(\"HatchGen_TRUE\",HatchGen_IntersectionType::HatchGen_TRUE)\n+ .value(\"HatchGen_TOUCH\",HatchGen_IntersectionType::HatchGen_TOUCH)\n+ .value(\"HatchGen_TANGENT\",HatchGen_IntersectionType::HatchGen_TANGENT)\n+ .value(\"HatchGen_UNDETERMINED\",HatchGen_IntersectionType::HatchGen_UNDETERMINED).export_values();\n \n //Python trampoline classes\n class Py_HatchGen_IntersectionPoint : public HatchGen_IntersectionPoint{\n public:\n using HatchGen_IntersectionPoint::HatchGen_IntersectionPoint;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/IFSelect_pre.cpp", "source2": "./usr/share/libocp/OCP/IFSelect_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -383,26 +383,26 @@\n .value(\"IFSelect_ShortByItem\",IFSelect_PrintCount::IFSelect_ShortByItem)\n .value(\"IFSelect_ListByItem\",IFSelect_PrintCount::IFSelect_ListByItem)\n .value(\"IFSelect_EntitiesByItem\",IFSelect_PrintCount::IFSelect_EntitiesByItem)\n .value(\"IFSelect_CountSummary\",IFSelect_PrintCount::IFSelect_CountSummary)\n .value(\"IFSelect_GeneralInfo\",IFSelect_PrintCount::IFSelect_GeneralInfo)\n .value(\"IFSelect_Mapping\",IFSelect_PrintCount::IFSelect_Mapping)\n .value(\"IFSelect_ResultCount\",IFSelect_PrintCount::IFSelect_ResultCount).export_values();\n- py::enum_(m, \"IFSelect_RemainMode\",R\"#()#\")\n- .value(\"IFSelect_RemainForget\",IFSelect_RemainMode::IFSelect_RemainForget)\n- .value(\"IFSelect_RemainCompute\",IFSelect_RemainMode::IFSelect_RemainCompute)\n- .value(\"IFSelect_RemainDisplay\",IFSelect_RemainMode::IFSelect_RemainDisplay)\n- .value(\"IFSelect_RemainUndo\",IFSelect_RemainMode::IFSelect_RemainUndo).export_values();\n 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)#\")\n .value(\"IFSelect_Optional\",IFSelect_EditValue::IFSelect_Optional)\n .value(\"IFSelect_Editable\",IFSelect_EditValue::IFSelect_Editable)\n .value(\"IFSelect_EditProtected\",IFSelect_EditValue::IFSelect_EditProtected)\n .value(\"IFSelect_EditComputed\",IFSelect_EditValue::IFSelect_EditComputed)\n .value(\"IFSelect_EditRead\",IFSelect_EditValue::IFSelect_EditRead)\n .value(\"IFSelect_EditDynamic\",IFSelect_EditValue::IFSelect_EditDynamic).export_values();\n+ py::enum_(m, \"IFSelect_RemainMode\",R\"#()#\")\n+ .value(\"IFSelect_RemainForget\",IFSelect_RemainMode::IFSelect_RemainForget)\n+ .value(\"IFSelect_RemainCompute\",IFSelect_RemainMode::IFSelect_RemainCompute)\n+ .value(\"IFSelect_RemainDisplay\",IFSelect_RemainMode::IFSelect_RemainDisplay)\n+ .value(\"IFSelect_RemainUndo\",IFSelect_RemainMode::IFSelect_RemainUndo).export_values();\n 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)#\")\n .value(\"IFSelect_FailOnly\",IFSelect_PrintFail::IFSelect_FailOnly)\n .value(\"IFSelect_FailAndWarn\",IFSelect_PrintFail::IFSelect_FailAndWarn).export_values();\n \n //Python trampoline classes\n class Py_IFSelect_Activator : public IFSelect_Activator{\n public:\n"}, {"source1": "./usr/share/libocp/OCP/IGESData_pre.cpp", "source2": "./usr/share/libocp/OCP/IGESData_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -206,38 +206,38 @@\n py::module m = main_module.def_submodule(\"IGESData\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"IGESData_Status\",R\"#()#\")\n+ .value(\"IGESData_EntityOK\",IGESData_Status::IGESData_EntityOK)\n+ .value(\"IGESData_EntityError\",IGESData_Status::IGESData_EntityError)\n+ .value(\"IGESData_ReferenceError\",IGESData_Status::IGESData_ReferenceError)\n+ .value(\"IGESData_TypeError\",IGESData_Status::IGESData_TypeError).export_values();\n+ 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.)#\")\n+ .value(\"IGESData_DefVoid\",IGESData_DefType::IGESData_DefVoid)\n+ .value(\"IGESData_DefValue\",IGESData_DefType::IGESData_DefValue)\n+ .value(\"IGESData_DefReference\",IGESData_DefType::IGESData_DefReference)\n+ .value(\"IGESData_DefAny\",IGESData_DefType::IGESData_DefAny)\n+ .value(\"IGESData_ErrorVal\",IGESData_DefType::IGESData_ErrorVal)\n+ .value(\"IGESData_ErrorRef\",IGESData_DefType::IGESData_ErrorRef).export_values();\n 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.)#\")\n .value(\"IGESData_DefNone\",IGESData_DefList::IGESData_DefNone)\n .value(\"IGESData_DefOne\",IGESData_DefList::IGESData_DefOne)\n .value(\"IGESData_DefSeveral\",IGESData_DefList::IGESData_DefSeveral)\n .value(\"IGESData_ErrorOne\",IGESData_DefList::IGESData_ErrorOne)\n .value(\"IGESData_ErrorSeveral\",IGESData_DefList::IGESData_ErrorSeveral).export_values();\n py::enum_(m, \"IGESData_ReadStage\",R\"#(gives successive stages of reading an entity (see ParamReader))#\")\n .value(\"IGESData_ReadDir\",IGESData_ReadStage::IGESData_ReadDir)\n .value(\"IGESData_ReadOwn\",IGESData_ReadStage::IGESData_ReadOwn)\n .value(\"IGESData_ReadAssocs\",IGESData_ReadStage::IGESData_ReadAssocs)\n .value(\"IGESData_ReadProps\",IGESData_ReadStage::IGESData_ReadProps)\n .value(\"IGESData_ReadEnd\",IGESData_ReadStage::IGESData_ReadEnd).export_values();\n- 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.)#\")\n- .value(\"IGESData_DefVoid\",IGESData_DefType::IGESData_DefVoid)\n- .value(\"IGESData_DefValue\",IGESData_DefType::IGESData_DefValue)\n- .value(\"IGESData_DefReference\",IGESData_DefType::IGESData_DefReference)\n- .value(\"IGESData_DefAny\",IGESData_DefType::IGESData_DefAny)\n- .value(\"IGESData_ErrorVal\",IGESData_DefType::IGESData_ErrorVal)\n- .value(\"IGESData_ErrorRef\",IGESData_DefType::IGESData_ErrorRef).export_values();\n- py::enum_(m, \"IGESData_Status\",R\"#()#\")\n- .value(\"IGESData_EntityOK\",IGESData_Status::IGESData_EntityOK)\n- .value(\"IGESData_EntityError\",IGESData_Status::IGESData_EntityError)\n- .value(\"IGESData_ReferenceError\",IGESData_Status::IGESData_ReferenceError)\n- .value(\"IGESData_TypeError\",IGESData_Status::IGESData_TypeError).export_values();\n \n //Python trampoline classes\n class Py_IGESData_FileRecognizer : public IGESData_FileRecognizer{\n public:\n using IGESData_FileRecognizer::IGESData_FileRecognizer;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Image_pre.cpp", "source2": "./usr/share/libocp/OCP/Image_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -48,21 +48,14 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Image_CompressedFormat\",R\"#(List of compressed pixel formats natively supported by various graphics hardware (e.g. for efficient decoding on-the-fly). It is defined as extension of Image_Format.)#\")\n- .value(\"Image_CompressedFormat_UNKNOWN\",Image_CompressedFormat::Image_CompressedFormat_UNKNOWN)\n- .value(\"Image_CompressedFormat_RGB_S3TC_DXT1\",Image_CompressedFormat::Image_CompressedFormat_RGB_S3TC_DXT1)\n- .value(\"Image_CompressedFormat_RGBA_S3TC_DXT1\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT1)\n- .value(\"Image_CompressedFormat_RGBA_S3TC_DXT3\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT3)\n- .value(\"Image_CompressedFormat_RGBA_S3TC_DXT5\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT5).export_values();\n- m.attr(\"Image_CompressedFormat_NB\") = py::cast(int(Image_CompressedFormat_NB));\n py::enum_(m, \"Image_Format\",R\"#(This enumeration defines packed image plane formats)#\")\n .value(\"Image_Format_UNKNOWN\",Image_Format::Image_Format_UNKNOWN)\n .value(\"Image_Format_Gray\",Image_Format::Image_Format_Gray)\n .value(\"Image_Format_Alpha\",Image_Format::Image_Format_Alpha)\n .value(\"Image_Format_RGB\",Image_Format::Image_Format_RGB)\n .value(\"Image_Format_BGR\",Image_Format::Image_Format_BGR)\n .value(\"Image_Format_RGB32\",Image_Format::Image_Format_RGB32)\n@@ -77,14 +70,21 @@\n .value(\"Image_Format_RGBAF\",Image_Format::Image_Format_RGBAF)\n .value(\"Image_Format_BGRAF\",Image_Format::Image_Format_BGRAF)\n .value(\"Image_Format_GrayF_half\",Image_Format::Image_Format_GrayF_half)\n .value(\"Image_Format_RGF_half\",Image_Format::Image_Format_RGF_half)\n .value(\"Image_Format_RGBAF_half\",Image_Format::Image_Format_RGBAF_half)\n .value(\"Image_Format_Gray16\",Image_Format::Image_Format_Gray16).export_values();\n m.attr(\"Image_Format_NB\") = py::cast(int(Image_Format_NB));\n+ py::enum_(m, \"Image_CompressedFormat\",R\"#(List of compressed pixel formats natively supported by various graphics hardware (e.g. for efficient decoding on-the-fly). It is defined as extension of Image_Format.)#\")\n+ .value(\"Image_CompressedFormat_UNKNOWN\",Image_CompressedFormat::Image_CompressedFormat_UNKNOWN)\n+ .value(\"Image_CompressedFormat_RGB_S3TC_DXT1\",Image_CompressedFormat::Image_CompressedFormat_RGB_S3TC_DXT1)\n+ .value(\"Image_CompressedFormat_RGBA_S3TC_DXT1\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT1)\n+ .value(\"Image_CompressedFormat_RGBA_S3TC_DXT3\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT3)\n+ .value(\"Image_CompressedFormat_RGBA_S3TC_DXT5\",Image_CompressedFormat::Image_CompressedFormat_RGBA_S3TC_DXT5).export_values();\n+ m.attr(\"Image_CompressedFormat_NB\") = py::cast(int(Image_CompressedFormat_NB));\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"Image_ColorBGR\",R\"#(POD structure for packed BGR color value (3 bytes))#\");\n py::class_ >(m,\"Image_ColorBGR32\",R\"#(POD structure for packed BGR color value (4 bytes with extra byte for alignment))#\");\n py::class_ >(m,\"Image_ColorBGRA\",R\"#(POD structure for packed BGRA color value (4 bytes))#\");\n"}, {"source1": "./usr/share/libocp/OCP/IntPatch_pre.cpp", "source2": "./usr/share/libocp/OCP/IntPatch_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -128,30 +128,30 @@\n py::module m = main_module.def_submodule(\"IntPatch\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"IntPatch_SpecPntType\",R\"#(This enum describe the different kinds of special (singular) points of Surface-Surface intersection algorithm. Such as pole of sphere, apex of cone, point on U- or V-seam etc.)#\")\n- .value(\"IntPatch_SPntNone\",IntPatch_SpecPntType::IntPatch_SPntNone)\n- .value(\"IntPatch_SPntSeamU\",IntPatch_SpecPntType::IntPatch_SPntSeamU)\n- .value(\"IntPatch_SPntSeamV\",IntPatch_SpecPntType::IntPatch_SPntSeamV)\n- .value(\"IntPatch_SPntSeamUV\",IntPatch_SpecPntType::IntPatch_SPntSeamUV)\n- .value(\"IntPatch_SPntPoleSeamU\",IntPatch_SpecPntType::IntPatch_SPntPoleSeamU)\n- .value(\"IntPatch_SPntPole\",IntPatch_SpecPntType::IntPatch_SPntPole).export_values();\n py::enum_(m, \"IntPatch_IType\",R\"#()#\")\n .value(\"IntPatch_Lin\",IntPatch_IType::IntPatch_Lin)\n .value(\"IntPatch_Circle\",IntPatch_IType::IntPatch_Circle)\n .value(\"IntPatch_Ellipse\",IntPatch_IType::IntPatch_Ellipse)\n .value(\"IntPatch_Parabola\",IntPatch_IType::IntPatch_Parabola)\n .value(\"IntPatch_Hyperbola\",IntPatch_IType::IntPatch_Hyperbola)\n .value(\"IntPatch_Analytic\",IntPatch_IType::IntPatch_Analytic)\n .value(\"IntPatch_Walking\",IntPatch_IType::IntPatch_Walking)\n .value(\"IntPatch_Restriction\",IntPatch_IType::IntPatch_Restriction).export_values();\n+ py::enum_(m, \"IntPatch_SpecPntType\",R\"#(This enum describe the different kinds of special (singular) points of Surface-Surface intersection algorithm. Such as pole of sphere, apex of cone, point on U- or V-seam etc.)#\")\n+ .value(\"IntPatch_SPntNone\",IntPatch_SpecPntType::IntPatch_SPntNone)\n+ .value(\"IntPatch_SPntSeamU\",IntPatch_SpecPntType::IntPatch_SPntSeamU)\n+ .value(\"IntPatch_SPntSeamV\",IntPatch_SpecPntType::IntPatch_SPntSeamV)\n+ .value(\"IntPatch_SPntSeamUV\",IntPatch_SpecPntType::IntPatch_SPntSeamUV)\n+ .value(\"IntPatch_SPntPoleSeamU\",IntPatch_SpecPntType::IntPatch_SPntPoleSeamU)\n+ .value(\"IntPatch_SPntPole\",IntPatch_SpecPntType::IntPatch_SPntPole).export_values();\n \n //Python trampoline classes\n class Py_IntPatch_Polygo : public IntPatch_Polygo{\n public:\n using IntPatch_Polygo::IntPatch_Polygo;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/IntRes2d_pre.cpp", "source2": "./usr/share/libocp/OCP/IntRes2d_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -49,22 +49,22 @@\n \n // enums\n py::enum_(m, \"IntRes2d_TypeTrans\",R\"#()#\")\n .value(\"IntRes2d_In\",IntRes2d_TypeTrans::IntRes2d_In)\n .value(\"IntRes2d_Out\",IntRes2d_TypeTrans::IntRes2d_Out)\n .value(\"IntRes2d_Touch\",IntRes2d_TypeTrans::IntRes2d_Touch)\n .value(\"IntRes2d_Undecided\",IntRes2d_TypeTrans::IntRes2d_Undecided).export_values();\n- py::enum_(m, \"IntRes2d_Position\",R\"#()#\")\n- .value(\"IntRes2d_Head\",IntRes2d_Position::IntRes2d_Head)\n- .value(\"IntRes2d_Middle\",IntRes2d_Position::IntRes2d_Middle)\n- .value(\"IntRes2d_End\",IntRes2d_Position::IntRes2d_End).export_values();\n py::enum_(m, \"IntRes2d_Situation\",R\"#()#\")\n .value(\"IntRes2d_Inside\",IntRes2d_Situation::IntRes2d_Inside)\n .value(\"IntRes2d_Outside\",IntRes2d_Situation::IntRes2d_Outside)\n .value(\"IntRes2d_Unknown\",IntRes2d_Situation::IntRes2d_Unknown).export_values();\n+ py::enum_(m, \"IntRes2d_Position\",R\"#()#\")\n+ .value(\"IntRes2d_Head\",IntRes2d_Position::IntRes2d_Head)\n+ .value(\"IntRes2d_Middle\",IntRes2d_Position::IntRes2d_Middle)\n+ .value(\"IntRes2d_End\",IntRes2d_Position::IntRes2d_End).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"IntRes2d_Domain\",R\"#(Definition of the domain of parameter on a 2d-curve. Most of the time, a domain is defined by two extremities. An extremity is made of : - a point in 2d-space (Pnt2d from gp), - a parameter on the curve, - a tolerance in the 2d-space. Sometimes, it can be made of 0 or 1 point ( for an infinite or semi-infinite line for example).)#\");\n py::class_ >(m,\"IntRes2d_Intersection\",R\"#(Defines the root class of all the Intersections between two 2D-Curves, and provides all the methods about the results of the Intersections Algorithms.)#\");\n py::class_ >(m,\"IntRes2d_IntersectionPoint\",R\"#(Definition of an intersection point between two 2D curves.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/IntSurf_pre.cpp", "source2": "./usr/share/libocp/OCP/IntSurf_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -61,23 +61,23 @@\n py::module m = main_module.def_submodule(\"IntSurf\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"IntSurf_Situation\",R\"#()#\")\n- .value(\"IntSurf_Inside\",IntSurf_Situation::IntSurf_Inside)\n- .value(\"IntSurf_Outside\",IntSurf_Situation::IntSurf_Outside)\n- .value(\"IntSurf_Unknown\",IntSurf_Situation::IntSurf_Unknown).export_values();\n py::enum_(m, \"IntSurf_TypeTrans\",R\"#()#\")\n .value(\"IntSurf_In\",IntSurf_TypeTrans::IntSurf_In)\n .value(\"IntSurf_Out\",IntSurf_TypeTrans::IntSurf_Out)\n .value(\"IntSurf_Touch\",IntSurf_TypeTrans::IntSurf_Touch)\n .value(\"IntSurf_Undecided\",IntSurf_TypeTrans::IntSurf_Undecided).export_values();\n+ py::enum_(m, \"IntSurf_Situation\",R\"#()#\")\n+ .value(\"IntSurf_Inside\",IntSurf_Situation::IntSurf_Inside)\n+ .value(\"IntSurf_Outside\",IntSurf_Situation::IntSurf_Outside)\n+ .value(\"IntSurf_Unknown\",IntSurf_Situation::IntSurf_Unknown).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"IntSurf\",R\"#(This package provides resources for all the packages concerning the intersection between surfaces.)#\");\n py::class_ >(m,\"IntSurf_Couple\",R\"#(creation d 'un couple de 2 entiers)#\");\n py::class_ >(m,\"IntSurf_InteriorPoint\",R\"#(Definition of a point solution of the intersection between an implicit an a parametrised surface. These points are passing points on the intersection lines, or starting points for the closed lines on the parametrised surface.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Interface_pre.cpp", "source2": "./usr/share/libocp/OCP/Interface_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -221,41 +221,41 @@\n py::module m = main_module.def_submodule(\"Interface\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Interface_DataState\",R\"#(validity state of anentity's content (see InterfaceModel))#\")\n- .value(\"Interface_StateOK\",Interface_DataState::Interface_StateOK)\n- .value(\"Interface_LoadWarning\",Interface_DataState::Interface_LoadWarning)\n- .value(\"Interface_LoadFail\",Interface_DataState::Interface_LoadFail)\n- .value(\"Interface_DataWarning\",Interface_DataState::Interface_DataWarning)\n- .value(\"Interface_DataFail\",Interface_DataState::Interface_DataFail)\n- .value(\"Interface_StateUnloaded\",Interface_DataState::Interface_StateUnloaded)\n- .value(\"Interface_StateUnknown\",Interface_DataState::Interface_StateUnknown).export_values();\n+ 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)#\")\n+ .value(\"Interface_CheckOK\",Interface_CheckStatus::Interface_CheckOK)\n+ .value(\"Interface_CheckWarning\",Interface_CheckStatus::Interface_CheckWarning)\n+ .value(\"Interface_CheckFail\",Interface_CheckStatus::Interface_CheckFail)\n+ .value(\"Interface_CheckAny\",Interface_CheckStatus::Interface_CheckAny)\n+ .value(\"Interface_CheckMessage\",Interface_CheckStatus::Interface_CheckMessage)\n+ .value(\"Interface_CheckNoFail\",Interface_CheckStatus::Interface_CheckNoFail).export_values();\n py::enum_(m, \"Interface_ParamType\",R\"#()#\")\n .value(\"Interface_ParamMisc\",Interface_ParamType::Interface_ParamMisc)\n .value(\"Interface_ParamInteger\",Interface_ParamType::Interface_ParamInteger)\n .value(\"Interface_ParamReal\",Interface_ParamType::Interface_ParamReal)\n .value(\"Interface_ParamIdent\",Interface_ParamType::Interface_ParamIdent)\n .value(\"Interface_ParamVoid\",Interface_ParamType::Interface_ParamVoid)\n .value(\"Interface_ParamText\",Interface_ParamType::Interface_ParamText)\n .value(\"Interface_ParamEnum\",Interface_ParamType::Interface_ParamEnum)\n .value(\"Interface_ParamLogical\",Interface_ParamType::Interface_ParamLogical)\n .value(\"Interface_ParamSub\",Interface_ParamType::Interface_ParamSub)\n .value(\"Interface_ParamHexa\",Interface_ParamType::Interface_ParamHexa)\n .value(\"Interface_ParamBinary\",Interface_ParamType::Interface_ParamBinary).export_values();\n- 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)#\")\n- .value(\"Interface_CheckOK\",Interface_CheckStatus::Interface_CheckOK)\n- .value(\"Interface_CheckWarning\",Interface_CheckStatus::Interface_CheckWarning)\n- .value(\"Interface_CheckFail\",Interface_CheckStatus::Interface_CheckFail)\n- .value(\"Interface_CheckAny\",Interface_CheckStatus::Interface_CheckAny)\n- .value(\"Interface_CheckMessage\",Interface_CheckStatus::Interface_CheckMessage)\n- .value(\"Interface_CheckNoFail\",Interface_CheckStatus::Interface_CheckNoFail).export_values();\n+ py::enum_(m, \"Interface_DataState\",R\"#(validity state of anentity's content (see InterfaceModel))#\")\n+ .value(\"Interface_StateOK\",Interface_DataState::Interface_StateOK)\n+ .value(\"Interface_LoadWarning\",Interface_DataState::Interface_LoadWarning)\n+ .value(\"Interface_LoadFail\",Interface_DataState::Interface_LoadFail)\n+ .value(\"Interface_DataWarning\",Interface_DataState::Interface_DataWarning)\n+ .value(\"Interface_DataFail\",Interface_DataState::Interface_DataFail)\n+ .value(\"Interface_StateUnloaded\",Interface_DataState::Interface_StateUnloaded)\n+ .value(\"Interface_StateUnknown\",Interface_DataState::Interface_StateUnknown).export_values();\n \n //Python trampoline classes\n class Py_Interface_CopyControl : public Interface_CopyControl{\n public:\n using Interface_CopyControl::Interface_CopyControl;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/MeshVS_pre.cpp", "source2": "./usr/share/libocp/OCP/MeshVS_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -153,60 +153,37 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"MeshVS_EntityType\",R\"#()#\")\n- .value(\"MeshVS_ET_NONE\",MeshVS_EntityType::MeshVS_ET_NONE)\n- .value(\"MeshVS_ET_Node\",MeshVS_EntityType::MeshVS_ET_Node)\n- .value(\"MeshVS_ET_0D\",MeshVS_EntityType::MeshVS_ET_0D)\n- .value(\"MeshVS_ET_Link\",MeshVS_EntityType::MeshVS_ET_Link)\n- .value(\"MeshVS_ET_Face\",MeshVS_EntityType::MeshVS_ET_Face)\n- .value(\"MeshVS_ET_Volume\",MeshVS_EntityType::MeshVS_ET_Volume)\n- .value(\"MeshVS_ET_Element\",MeshVS_EntityType::MeshVS_ET_Element)\n- .value(\"MeshVS_ET_All\",MeshVS_EntityType::MeshVS_ET_All).export_values();\n 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 ))#\")\n .value(\"MeshVS_MSM_PRECISE\",MeshVS_MeshSelectionMethod::MeshVS_MSM_PRECISE)\n .value(\"MeshVS_MSM_NODES\",MeshVS_MeshSelectionMethod::MeshVS_MSM_NODES)\n .value(\"MeshVS_MSM_BOX\",MeshVS_MeshSelectionMethod::MeshVS_MSM_BOX).export_values();\n py::enum_(m, \"MeshVS_SelectionModeFlags\",R\"#()#\")\n .value(\"MeshVS_SMF_Mesh\",MeshVS_SelectionModeFlags::MeshVS_SMF_Mesh)\n .value(\"MeshVS_SMF_Node\",MeshVS_SelectionModeFlags::MeshVS_SMF_Node)\n .value(\"MeshVS_SMF_0D\",MeshVS_SelectionModeFlags::MeshVS_SMF_0D)\n .value(\"MeshVS_SMF_Link\",MeshVS_SelectionModeFlags::MeshVS_SMF_Link)\n .value(\"MeshVS_SMF_Face\",MeshVS_SelectionModeFlags::MeshVS_SMF_Face)\n .value(\"MeshVS_SMF_Volume\",MeshVS_SelectionModeFlags::MeshVS_SMF_Volume)\n .value(\"MeshVS_SMF_Element\",MeshVS_SelectionModeFlags::MeshVS_SMF_Element)\n .value(\"MeshVS_SMF_All\",MeshVS_SelectionModeFlags::MeshVS_SMF_All)\n .value(\"MeshVS_SMF_Group\",MeshVS_SelectionModeFlags::MeshVS_SMF_Group).export_values();\n- m.attr(\"MeshVS_DMF_WireFrame\") = py::cast(int(MeshVS_DMF_WireFrame));\n- m.attr(\"MeshVS_DMF_Shading\") = py::cast(int(MeshVS_DMF_Shading));\n- m.attr(\"MeshVS_DMF_Shrink\") = py::cast(int(MeshVS_DMF_Shrink));\n- m.attr(\"MeshVS_DMF_OCCMask\") = py::cast(int(MeshVS_DMF_OCCMask));\n- m.attr(\"MeshVS_DMF_VectorDataPrs\") = py::cast(int(MeshVS_DMF_VectorDataPrs));\n- m.attr(\"MeshVS_DMF_NodalColorDataPrs\") = py::cast(int(MeshVS_DMF_NodalColorDataPrs));\n- m.attr(\"MeshVS_DMF_ElementalColorDataPrs\") = py::cast(int(MeshVS_DMF_ElementalColorDataPrs));\n- m.attr(\"MeshVS_DMF_TextDataPrs\") = py::cast(int(MeshVS_DMF_TextDataPrs));\n- m.attr(\"MeshVS_DMF_EntitiesWithData\") = py::cast(int(MeshVS_DMF_EntitiesWithData));\n- m.attr(\"MeshVS_DMF_DeformedPrsWireFrame\") = py::cast(int(MeshVS_DMF_DeformedPrsWireFrame));\n- m.attr(\"MeshVS_DMF_DeformedPrsShading\") = py::cast(int(MeshVS_DMF_DeformedPrsShading));\n- m.attr(\"MeshVS_DMF_DeformedPrsShrink\") = py::cast(int(MeshVS_DMF_DeformedPrsShrink));\n- m.attr(\"MeshVS_DMF_DeformedMask\") = py::cast(int(MeshVS_DMF_DeformedMask));\n- m.attr(\"MeshVS_DMF_SelectionPrs\") = py::cast(int(MeshVS_DMF_SelectionPrs));\n- m.attr(\"MeshVS_DMF_HilightPrs\") = py::cast(int(MeshVS_DMF_HilightPrs));\n- m.attr(\"MeshVS_DMF_User\") = py::cast(int(MeshVS_DMF_User));\n- m.attr(\"MeshVS_BP_Mesh\") = py::cast(int(MeshVS_BP_Mesh));\n- m.attr(\"MeshVS_BP_NodalColor\") = py::cast(int(MeshVS_BP_NodalColor));\n- m.attr(\"MeshVS_BP_ElemColor\") = py::cast(int(MeshVS_BP_ElemColor));\n- m.attr(\"MeshVS_BP_Text\") = py::cast(int(MeshVS_BP_Text));\n- m.attr(\"MeshVS_BP_Vector\") = py::cast(int(MeshVS_BP_Vector));\n- m.attr(\"MeshVS_BP_User\") = py::cast(int(MeshVS_BP_User));\n- m.attr(\"MeshVS_BP_Default\") = py::cast(int(MeshVS_BP_Default));\n+ py::enum_(m, \"MeshVS_EntityType\",R\"#()#\")\n+ .value(\"MeshVS_ET_NONE\",MeshVS_EntityType::MeshVS_ET_NONE)\n+ .value(\"MeshVS_ET_Node\",MeshVS_EntityType::MeshVS_ET_Node)\n+ .value(\"MeshVS_ET_0D\",MeshVS_EntityType::MeshVS_ET_0D)\n+ .value(\"MeshVS_ET_Link\",MeshVS_EntityType::MeshVS_ET_Link)\n+ .value(\"MeshVS_ET_Face\",MeshVS_EntityType::MeshVS_ET_Face)\n+ .value(\"MeshVS_ET_Volume\",MeshVS_EntityType::MeshVS_ET_Volume)\n+ .value(\"MeshVS_ET_Element\",MeshVS_EntityType::MeshVS_ET_Element)\n+ .value(\"MeshVS_ET_All\",MeshVS_EntityType::MeshVS_ET_All).export_values();\n py::enum_(m, \"MeshVS_DrawerAttribute\",R\"#(Is it allowed to draw beam and face's edge overlapping with this beam. Is mesh drawn with reflective material Is colored mesh data representation drawn with reflective material What part of face or link will be shown if shrink mode. It is recommended this coeff to be between 0 and 1. How many nodes is possible to be in face If this parameter is true, the compute method CPU time will be displayed in console window If this parameter is true, the compute selection method CPU time will be displayed in console window If this parameter is false, the nodes won't be shown in viewer, otherwise will be.//! If this parameter is true, the selectable nodes map will be updated automatically when hidden elements change//! If this parameter is false, the face's edges are not shown Warning: in wireframe mode this parameter is ignored Is mesh drawing in smooth shading mode Is back faces of volume elements should be suppressed The integer keys for most useful constants attuning mesh presentation appearance WARNING: DA_TextExpansionFactor, DA_TextSpace, DA_TextDisplayType have no effect and might be removed in the future.)#\")\n .value(\"MeshVS_DA_InteriorStyle\",MeshVS_DrawerAttribute::MeshVS_DA_InteriorStyle)\n .value(\"MeshVS_DA_InteriorColor\",MeshVS_DrawerAttribute::MeshVS_DA_InteriorColor)\n .value(\"MeshVS_DA_BackInteriorColor\",MeshVS_DrawerAttribute::MeshVS_DA_BackInteriorColor)\n .value(\"MeshVS_DA_EdgeColor\",MeshVS_DrawerAttribute::MeshVS_DA_EdgeColor)\n .value(\"MeshVS_DA_EdgeType\",MeshVS_DrawerAttribute::MeshVS_DA_EdgeType)\n .value(\"MeshVS_DA_EdgeWidth\",MeshVS_DrawerAttribute::MeshVS_DA_EdgeWidth)\n@@ -240,14 +217,37 @@\n .value(\"MeshVS_DA_ComputeSelectionTime\",MeshVS_DrawerAttribute::MeshVS_DA_ComputeSelectionTime)\n .value(\"MeshVS_DA_DisplayNodes\",MeshVS_DrawerAttribute::MeshVS_DA_DisplayNodes)\n .value(\"MeshVS_DA_SelectableAuto\",MeshVS_DrawerAttribute::MeshVS_DA_SelectableAuto)\n .value(\"MeshVS_DA_ShowEdges\",MeshVS_DrawerAttribute::MeshVS_DA_ShowEdges)\n .value(\"MeshVS_DA_SmoothShading\",MeshVS_DrawerAttribute::MeshVS_DA_SmoothShading)\n .value(\"MeshVS_DA_SupressBackFaces\",MeshVS_DrawerAttribute::MeshVS_DA_SupressBackFaces)\n .value(\"MeshVS_DA_User\",MeshVS_DrawerAttribute::MeshVS_DA_User).export_values();\n+ m.attr(\"MeshVS_BP_Mesh\") = py::cast(int(MeshVS_BP_Mesh));\n+ m.attr(\"MeshVS_BP_NodalColor\") = py::cast(int(MeshVS_BP_NodalColor));\n+ m.attr(\"MeshVS_BP_ElemColor\") = py::cast(int(MeshVS_BP_ElemColor));\n+ m.attr(\"MeshVS_BP_Text\") = py::cast(int(MeshVS_BP_Text));\n+ m.attr(\"MeshVS_BP_Vector\") = py::cast(int(MeshVS_BP_Vector));\n+ m.attr(\"MeshVS_BP_User\") = py::cast(int(MeshVS_BP_User));\n+ m.attr(\"MeshVS_BP_Default\") = py::cast(int(MeshVS_BP_Default));\n+ m.attr(\"MeshVS_DMF_WireFrame\") = py::cast(int(MeshVS_DMF_WireFrame));\n+ m.attr(\"MeshVS_DMF_Shading\") = py::cast(int(MeshVS_DMF_Shading));\n+ m.attr(\"MeshVS_DMF_Shrink\") = py::cast(int(MeshVS_DMF_Shrink));\n+ m.attr(\"MeshVS_DMF_OCCMask\") = py::cast(int(MeshVS_DMF_OCCMask));\n+ m.attr(\"MeshVS_DMF_VectorDataPrs\") = py::cast(int(MeshVS_DMF_VectorDataPrs));\n+ m.attr(\"MeshVS_DMF_NodalColorDataPrs\") = py::cast(int(MeshVS_DMF_NodalColorDataPrs));\n+ m.attr(\"MeshVS_DMF_ElementalColorDataPrs\") = py::cast(int(MeshVS_DMF_ElementalColorDataPrs));\n+ m.attr(\"MeshVS_DMF_TextDataPrs\") = py::cast(int(MeshVS_DMF_TextDataPrs));\n+ m.attr(\"MeshVS_DMF_EntitiesWithData\") = py::cast(int(MeshVS_DMF_EntitiesWithData));\n+ m.attr(\"MeshVS_DMF_DeformedPrsWireFrame\") = py::cast(int(MeshVS_DMF_DeformedPrsWireFrame));\n+ m.attr(\"MeshVS_DMF_DeformedPrsShading\") = py::cast(int(MeshVS_DMF_DeformedPrsShading));\n+ m.attr(\"MeshVS_DMF_DeformedPrsShrink\") = py::cast(int(MeshVS_DMF_DeformedPrsShrink));\n+ m.attr(\"MeshVS_DMF_DeformedMask\") = py::cast(int(MeshVS_DMF_DeformedMask));\n+ m.attr(\"MeshVS_DMF_SelectionPrs\") = py::cast(int(MeshVS_DMF_SelectionPrs));\n+ m.attr(\"MeshVS_DMF_HilightPrs\") = py::cast(int(MeshVS_DMF_HilightPrs));\n+ m.attr(\"MeshVS_DMF_User\") = py::cast(int(MeshVS_DMF_User));\n \n //Python trampoline classes\n class Py_MeshVS_DataSource : public MeshVS_DataSource{\n public:\n using MeshVS_DataSource::MeshVS_DataSource;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Message_pre.cpp", "source2": "./usr/share/libocp/OCP/Message_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -85,14 +85,20 @@\n py::module m = main_module.def_submodule(\"Message\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ 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)#\")\n+ .value(\"Message_Trace\",Message_Gravity::Message_Trace)\n+ .value(\"Message_Info\",Message_Gravity::Message_Info)\n+ .value(\"Message_Warning\",Message_Gravity::Message_Warning)\n+ .value(\"Message_Alarm\",Message_Gravity::Message_Alarm)\n+ .value(\"Message_Fail\",Message_Gravity::Message_Fail).export_values();\n py::enum_(m, \"Message_StatusType\",R\"#(Definition of types of execution status supported by the class Message_ExecStatus)#\")\n .value(\"Message_DONE\",Message_StatusType::Message_DONE)\n .value(\"Message_WARN\",Message_StatusType::Message_WARN)\n .value(\"Message_ALARM\",Message_StatusType::Message_ALARM)\n .value(\"Message_FAIL\",Message_StatusType::Message_FAIL).export_values();\n py::enum_(m, \"Message_ConsoleColor\",R\"#(Color definition for console/terminal output (limited palette).)#\")\n .value(\"Message_ConsoleColor_Default\",Message_ConsoleColor::Message_ConsoleColor_Default)\n@@ -100,34 +106,14 @@\n .value(\"Message_ConsoleColor_White\",Message_ConsoleColor::Message_ConsoleColor_White)\n .value(\"Message_ConsoleColor_Red\",Message_ConsoleColor::Message_ConsoleColor_Red)\n .value(\"Message_ConsoleColor_Blue\",Message_ConsoleColor::Message_ConsoleColor_Blue)\n .value(\"Message_ConsoleColor_Green\",Message_ConsoleColor::Message_ConsoleColor_Green)\n .value(\"Message_ConsoleColor_Yellow\",Message_ConsoleColor::Message_ConsoleColor_Yellow)\n .value(\"Message_ConsoleColor_Cyan\",Message_ConsoleColor::Message_ConsoleColor_Cyan)\n .value(\"Message_ConsoleColor_Magenta\",Message_ConsoleColor::Message_ConsoleColor_Magenta).export_values();\n- py::enum_(m, \"Message_MetricType\",R\"#(Specifies kind of report information to collect)#\")\n- .value(\"Message_MetricType_None\",Message_MetricType::Message_MetricType_None)\n- .value(\"Message_MetricType_ThreadCPUUserTime\",Message_MetricType::Message_MetricType_ThreadCPUUserTime)\n- .value(\"Message_MetricType_ThreadCPUSystemTime\",Message_MetricType::Message_MetricType_ThreadCPUSystemTime)\n- .value(\"Message_MetricType_ProcessCPUUserTime\",Message_MetricType::Message_MetricType_ProcessCPUUserTime)\n- .value(\"Message_MetricType_ProcessCPUSystemTime\",Message_MetricType::Message_MetricType_ProcessCPUSystemTime)\n- .value(\"Message_MetricType_WallClock\",Message_MetricType::Message_MetricType_WallClock)\n- .value(\"Message_MetricType_MemPrivate\",Message_MetricType::Message_MetricType_MemPrivate)\n- .value(\"Message_MetricType_MemVirtual\",Message_MetricType::Message_MetricType_MemVirtual)\n- .value(\"Message_MetricType_MemWorkingSet\",Message_MetricType::Message_MetricType_MemWorkingSet)\n- .value(\"Message_MetricType_MemWorkingSetPeak\",Message_MetricType::Message_MetricType_MemWorkingSetPeak)\n- .value(\"Message_MetricType_MemSwapUsage\",Message_MetricType::Message_MetricType_MemSwapUsage)\n- .value(\"Message_MetricType_MemSwapUsagePeak\",Message_MetricType::Message_MetricType_MemSwapUsagePeak)\n- .value(\"Message_MetricType_MemHeapUsage\",Message_MetricType::Message_MetricType_MemHeapUsage).export_values();\n- 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)#\")\n- .value(\"Message_Trace\",Message_Gravity::Message_Trace)\n- .value(\"Message_Info\",Message_Gravity::Message_Info)\n- .value(\"Message_Warning\",Message_Gravity::Message_Warning)\n- .value(\"Message_Alarm\",Message_Gravity::Message_Alarm)\n- .value(\"Message_Fail\",Message_Gravity::Message_Fail).export_values();\n 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))#\")\n .value(\"Message_None\",Message_Status::Message_None)\n .value(\"Message_Done1\",Message_Status::Message_Done1)\n .value(\"Message_Done2\",Message_Status::Message_Done2)\n .value(\"Message_Done3\",Message_Status::Message_Done3)\n .value(\"Message_Done4\",Message_Status::Message_Done4)\n .value(\"Message_Done5\",Message_Status::Message_Done5)\n@@ -250,14 +236,28 @@\n .value(\"Message_Fail26\",Message_Status::Message_Fail26)\n .value(\"Message_Fail27\",Message_Status::Message_Fail27)\n .value(\"Message_Fail28\",Message_Status::Message_Fail28)\n .value(\"Message_Fail29\",Message_Status::Message_Fail29)\n .value(\"Message_Fail30\",Message_Status::Message_Fail30)\n .value(\"Message_Fail31\",Message_Status::Message_Fail31)\n .value(\"Message_Fail32\",Message_Status::Message_Fail32).export_values();\n+ py::enum_(m, \"Message_MetricType\",R\"#(Specifies kind of report information to collect)#\")\n+ .value(\"Message_MetricType_None\",Message_MetricType::Message_MetricType_None)\n+ .value(\"Message_MetricType_ThreadCPUUserTime\",Message_MetricType::Message_MetricType_ThreadCPUUserTime)\n+ .value(\"Message_MetricType_ThreadCPUSystemTime\",Message_MetricType::Message_MetricType_ThreadCPUSystemTime)\n+ .value(\"Message_MetricType_ProcessCPUUserTime\",Message_MetricType::Message_MetricType_ProcessCPUUserTime)\n+ .value(\"Message_MetricType_ProcessCPUSystemTime\",Message_MetricType::Message_MetricType_ProcessCPUSystemTime)\n+ .value(\"Message_MetricType_WallClock\",Message_MetricType::Message_MetricType_WallClock)\n+ .value(\"Message_MetricType_MemPrivate\",Message_MetricType::Message_MetricType_MemPrivate)\n+ .value(\"Message_MetricType_MemVirtual\",Message_MetricType::Message_MetricType_MemVirtual)\n+ .value(\"Message_MetricType_MemWorkingSet\",Message_MetricType::Message_MetricType_MemWorkingSet)\n+ .value(\"Message_MetricType_MemWorkingSetPeak\",Message_MetricType::Message_MetricType_MemWorkingSetPeak)\n+ .value(\"Message_MetricType_MemSwapUsage\",Message_MetricType::Message_MetricType_MemSwapUsage)\n+ .value(\"Message_MetricType_MemSwapUsagePeak\",Message_MetricType::Message_MetricType_MemSwapUsagePeak)\n+ .value(\"Message_MetricType_MemHeapUsage\",Message_MetricType::Message_MetricType_MemHeapUsage).export_values();\n \n //Python trampoline classes\n class Py_Message_Printer : public Message_Printer{\n public:\n using Message_Printer::Message_Printer;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/NCollection_tmpl.hxx", "source2": "./usr/share/libocp/OCP/NCollection_tmpl.hxx", "comments": ["Ordering differences only"], "unified_diff": "@@ -78,68 +78,14 @@\n \n // user-defined pre\n #include \"OCP_specific.inc\"\n \n // Class template handling functions\n \n template \n-void preregister_template_NCollection_SparseArray(py::object &m, const char *name){\n- py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R\"#(Dynamically resizable sparse array of objects)#\");\n-}\n-\n-template \n-void register_template_NCollection_SparseArray(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name))\n- .def(py::init< Standard_Size >() ,py::arg(\"theIncrement\") )\n- .def(\"Assign\",\n- (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign,\n- R\"#(Explicit assignment operator)#\" ,py::arg(\"theOther\"))\n- .def(\"Exchange\",\n- (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange,\n- 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\"))\n- .def(\"Value\",\n- ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value,\n- R\"#(Direct const access to the item)#\" ,py::arg(\"theIndex\"))\n- .def(\"ChangeValue\",\n- (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue,\n- R\"#(Modification access to the item)#\" ,py::arg(\"theIndex\"))\n- .def(\"SetValue\",\n- (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue,\n- R\"#(Set a value at specified index method)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n- .def(\"Extent\",\n- (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent,\n- R\"#(Returns number of items in the array)#\" )\n- .def(\"IsEmpty\",\n- (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty,\n- R\"#(Returns True if array is empty)#\" )\n- .def(\"Find\",\n- ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find,\n- R\"#(Direct const access to the item)#\" ,py::arg(\"theIndex\"))\n- .def(\"ChangeFind\",\n- (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind,\n- R\"#(Modification access to the item)#\" ,py::arg(\"theIndex\"))\n- .def(\"Bind\",\n- (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind,\n- R\"#(Set a value as explicit method)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n- .def(\"IsBound\",\n- (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound,\n- R\"#(Returns True if the item is defined)#\" ,py::arg(\"theIndex\"))\n- .def(\"UnBind\",\n- (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind,\n- R\"#(Remove the item from array)#\" ,py::arg(\"theIndex\"))\n- .def(\"__len__\",[](const NCollection_SparseArray &self)\n- { return self.Extent(); }\n- )\n- .def(\"__bool__\",[](const NCollection_SparseArray &self)\n- { return self.IsEmpty(); }\n- )\n- ;\n-};\n-\n-template \n void preregister_template_NCollection_Array1(py::object &m, const char *name){\n 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.)#\");\n }\n \n template \n void register_template_NCollection_Array1(py::object &m, const char *name){\n static_cast , shared_ptr> >>(m.attr(name))\n@@ -231,80 +177,424 @@\n )\n .def(\"__bool__\",[](const NCollection_Array1 &self)\n { return self.IsEmpty(); }\n )\n ;\n };\n \n-template ,typename Hasher2=NCollection_DefaultHasher>\n-void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_NCollection_CellFilter(py::object &m, const char *name){\n+ 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).)#\");\n }\n \n-template ,typename Hasher2=NCollection_DefaultHasher>\n-void register_template_NCollection_DoubleMap(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n+template \n+void register_template_NCollection_CellFilter(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n+ .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) )\n+ .def(\"Reset\",\n+ (void (NCollection_CellFilter::*)( Standard_Real , const handle & ) ) &NCollection_CellFilter::Reset,\n+ R\"#(Clear the data structures, set new cell size and allocator)#\" ,py::arg(\"theCellSize\"), py::arg(\"theAlloc\")=static_cast< const handle &>(0))\n+ .def(\"Reset\",\n+ (void (NCollection_CellFilter::*)( NCollection_Array1 & , const handle & ) ) &NCollection_CellFilter::Reset,\n+ R\"#(Clear the data structures and set new cell sizes and allocator)#\" ,py::arg(\"theCellSize\"), py::arg(\"theAlloc\")=static_cast< const handle &>(0))\n+ .def(\"Add\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add,\n+ R\"#(Adds a target object for further search at a point (into only one cell))#\" ,py::arg(\"theTarget\"), py::arg(\"thePnt\"))\n+ .def(\"Add\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add,\n+ 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\"))\n+ .def(\"Remove\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove,\n+ 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\"))\n+ .def(\"Remove\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove,\n+ 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\"))\n+ .def(\"Inspect\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect,\n+ R\"#(Inspect all targets in the cell corresponding to the given point)#\" ,py::arg(\"thePnt\"), py::arg(\"theInspector\"))\n+ .def(\"Inspect\",\n+ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect,\n+ 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\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_UtfString(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_UtfString(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const NCollection_UtfString & >() ,py::arg(\"theCopy\") )\n+ .def(py::init< const char *, const Standard_Integer >() ,py::arg(\"theCopyUtf8\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n+ .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg(\"theCopyUtf16\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n+ .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg(\"theCopyUtf32\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n+ .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg(\"theCopyUtfWide\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n+ .def(\"Iterator\",\n+ (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator,\n+ R\"#()#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size,\n+ R\"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#\" )\n+ .def(\"Length\",\n+ (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length,\n+ R\"#(Returns the length of the string in Unicode symbols)#\" )\n+ .def(\"GetChar\",\n+ (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar,\n+ R\"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#\" ,py::arg(\"theCharIndex\"))\n+ .def(\"GetCharBuffer\",\n+ ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer,\n+ R\"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#\" ,py::arg(\"theCharIndex\"))\n+ .def(\"FromLocale\",\n+ (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale,\n+ R\"#(Copy from multibyte string in current system locale.)#\" ,py::arg(\"theString\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1))\n+ .def(\"IsEqual\",\n+ (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual,\n+ R\"#(Compares this string with another one.)#\" ,py::arg(\"theCompare\"))\n+ .def(\"SubString\",\n+ (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString,\n+ R\"#(Returns the substring.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"))\n+ .def(\"ToCString\",\n+ ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString,\n+ R\"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#\" )\n+ .def(\"ToUtf8\",\n+ ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8,\n+ R\"#(Returns copy in UTF-8 format)#\" )\n+ .def(\"ToUtf16\",\n+ ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16,\n+ R\"#(Returns copy in UTF-16 format)#\" )\n+ .def(\"ToUtf32\",\n+ ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32,\n+ R\"#(Returns copy in UTF-32 format)#\" )\n+ .def(\"ToUtfWide\",\n+ ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide,\n+ R\"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#\" )\n+ .def(\"ToLocale\",\n+ (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale,\n+ R\"#(Converts the string into string in the current system locale.)#\" ,py::arg(\"theBuffer\"), py::arg(\"theSizeBytes\"))\n+ .def(\"IsEmpty\",\n+ (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty,\n+ R\"#(Returns true if string is empty)#\" )\n+ .def(\"Clear\",\n+ (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear,\n+ R\"#(Zero string.)#\" )\n+ .def(\"Assign\",\n+ ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign,\n+ R\"#(Copy from another string.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Swap\",\n+ (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap,\n+ R\"#(Exchange the data of two strings (without reallocating memory).)#\" ,py::arg(\"theOther\"))\n+ .def(\"__iadd__\",\n+ (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=,\n+ py::is_operator(),\n+ R\"#(Join strings.)#\" ,py::arg(\"theAppend\"))\n+ .def(\"__len__\",[](const NCollection_UtfString &self)\n+ { return self.Size(); }\n+ )\n+ .def(\"__bool__\",[](const NCollection_UtfString &self)\n+ { return self.IsEmpty(); }\n+ )\n+ ;\n+};\n+\n+template >\n+void preregister_template_NCollection_Map(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template >\n+void register_template_NCollection_Map(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n .def(py::init< >() )\n .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(py::init< const NCollection_DoubleMap & >() ,py::arg(\"theOther\") )\n+ .def(py::init< const NCollection_Map & >() ,py::arg(\"theOther\") )\n+ .def(\"cbegin\",\n+ (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin,\n+ R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n+ .def(\"cend\",\n+ (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend,\n+ R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n .def(\"Exchange\",\n- (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange,\n+ (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange,\n R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n .def(\"Assign\",\n- (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign,\n- R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign,\n+ R\"#(Assign. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n .def(\"ReSize\",\n- (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize,\n+ (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize,\n R\"#(ReSize)#\" ,py::arg(\"N\"))\n- .def(\"Bind\",\n- (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind,\n- R\"#(Bind)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n- .def(\"AreBound\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound,\n- R\"#(* AreBound)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n- .def(\"IsBound1\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1,\n- R\"#(IsBound1)#\" ,py::arg(\"theKey1\"))\n- .def(\"IsBound2\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2,\n- R\"#(IsBound2)#\" ,py::arg(\"theKey2\"))\n- .def(\"UnBind1\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1,\n- R\"#(UnBind1)#\" ,py::arg(\"theKey1\"))\n- .def(\"UnBind2\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2,\n- R\"#(UnBind2)#\" ,py::arg(\"theKey2\"))\n- .def(\"Find1\",\n- ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1,\n- R\"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#\" ,py::arg(\"theKey1\"))\n- .def(\"Find1\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1,\n- R\"#(Find the Key1 and return Key2 value (by copying its value).)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n- .def(\"Seek1\",\n- ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1,\n- R\"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#\" ,py::arg(\"theKey1\"))\n- .def(\"Find2\",\n- ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2,\n- R\"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#\" ,py::arg(\"theKey2\"))\n- .def(\"Find2\",\n- (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2,\n- R\"#(Find the Key2 and return Key1 value (by copying its value).)#\" ,py::arg(\"theKey2\"), py::arg(\"theKey1\"))\n- .def(\"Seek2\",\n- ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2,\n- R\"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#\" ,py::arg(\"theKey2\"))\n+ .def(\"Add\",\n+ (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add,\n+ R\"#(Add)#\" ,py::arg(\"theKey\"))\n+ .def(\"Added\",\n+ ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added,\n+ 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\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains,\n+ R\"#(Contains)#\" ,py::arg(\"theKey\"))\n+ .def(\"Remove\",\n+ (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove,\n+ R\"#(Remove)#\" ,py::arg(\"K\"))\n .def(\"Clear\",\n- (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear,\n+ (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear,\n 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))\n .def(\"Clear\",\n- (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear,\n+ (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear,\n R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n .def(\"Size\",\n- (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size,\n+ (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size,\n R\"#(Size)#\" )\n- .def(\"__len__\",[](const NCollection_DoubleMap &self)\n+ .def(\"IsEqual\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual,\n+ R\"#(Returns true if two maps contains exactly the same keys)#\" ,py::arg(\"theOther\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains,\n+ R\"#(Returns true if this map contains ALL keys of another map.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Union\",\n+ (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union,\n+ 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\"))\n+ .def(\"Unite\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite,\n+ 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\"))\n+ .def(\"HasIntersection\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection,\n+ R\"#(Returns true if this and theMap have common elements.)#\" ,py::arg(\"theMap\"))\n+ .def(\"Intersection\",\n+ (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection,\n+ 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\"))\n+ .def(\"Intersect\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect,\n+ 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\"))\n+ .def(\"Subtraction\",\n+ (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction,\n+ 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\"))\n+ .def(\"Subtract\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract,\n+ 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\"))\n+ .def(\"Difference\",\n+ (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference,\n+ 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\"))\n+ .def(\"Differ\",\n+ (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ,\n+ 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\"))\n+ .def(\"__iter__\",[](const NCollection_Map &self)\n+ { return py::make_iterator(self.cbegin(), self.cend()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_Map &self)\n+ { return self.Size(); }\n+ )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_Sequence(py::object &m, const char *name){\n+ 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)#\");\n+}\n+\n+template \n+void register_template_NCollection_Sequence(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n+ .def(py::init< const NCollection_Sequence & >() ,py::arg(\"theOther\") )\n+ .def(\"begin\",\n+ (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin,\n+ R\"#(Returns an iterator pointing to the first element in the sequence.)#\" )\n+ .def(\"end\",\n+ (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end,\n+ R\"#(Returns an iterator referring to the past-the-end element in the sequence.)#\" )\n+ .def(\"cbegin\",\n+ (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin,\n+ R\"#(Returns a const iterator pointing to the first element in the sequence.)#\" )\n+ .def(\"cend\",\n+ (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend,\n+ R\"#(Returns a const iterator referring to the past-the-end element in the sequence.)#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size,\n+ R\"#(Number of items)#\" )\n+ .def(\"Length\",\n+ (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length,\n+ R\"#(Number of items)#\" )\n+ .def(\"Lower\",\n+ (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower,\n+ R\"#(Method for consistency with other collections.)#\" )\n+ .def(\"Upper\",\n+ (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper,\n+ R\"#(Method for consistency with other collections.)#\" )\n+ .def(\"IsEmpty\",\n+ (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty,\n+ R\"#(Empty query)#\" )\n+ .def(\"Reverse\",\n+ (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse,\n+ R\"#(Reverse sequence)#\" )\n+ .def(\"Exchange\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange,\n+ R\"#(Exchange two members)#\" ,py::arg(\"I\"), py::arg(\"J\"))\n+ .def(\"Clear\",\n+ (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear,\n+ R\"#(Clear the items out, take a new allocator if non null)#\" ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L))\n+ .def(\"Assign\",\n+ (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign,\n+ R\"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Remove\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove,\n+ R\"#(Remove one item)#\" ,py::arg(\"theIndex\"))\n+ .def(\"Remove\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove,\n+ R\"#(Remove range of items)#\" ,py::arg(\"theFromIndex\"), py::arg(\"theToIndex\"))\n+ .def(\"Append\",\n+ (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append,\n+ R\"#(Append one item)#\" ,py::arg(\"theItem\"))\n+ .def(\"Append\",\n+ (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append,\n+ R\"#(Append another sequence (making it empty))#\" ,py::arg(\"theSeq\"))\n+ .def(\"Prepend\",\n+ (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend,\n+ R\"#(Prepend one item)#\" ,py::arg(\"theItem\"))\n+ .def(\"Prepend\",\n+ (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend,\n+ R\"#(Prepend another sequence (making it empty))#\" ,py::arg(\"theSeq\"))\n+ .def(\"InsertBefore\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore,\n+ R\"#(InsertBefore theIndex theItem)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n+ .def(\"InsertBefore\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore,\n+ R\"#(InsertBefore theIndex another sequence (making it empty))#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n+ .def(\"InsertAfter\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter,\n+ R\"#(InsertAfter theIndex another sequence (making it empty))#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n+ .def(\"InsertAfter\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter,\n+ R\"#(InsertAfter theIndex theItem)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n+ .def(\"Split\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split,\n+ R\"#(Split in two sequences)#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n+ .def(\"First\",\n+ ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First,\n+ R\"#(First item access)#\" )\n+ .def(\"ChangeFirst\",\n+ (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst,\n+ R\"#(First item access)#\" )\n+ .def(\"Last\",\n+ ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last,\n+ R\"#(Last item access)#\" )\n+ .def(\"ChangeLast\",\n+ (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast,\n+ R\"#(Last item access)#\" )\n+ .def(\"Value\",\n+ ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value,\n+ R\"#(Constant item access by theIndex)#\" ,py::arg(\"theIndex\"))\n+ .def(\"ChangeValue\",\n+ (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue,\n+ R\"#(Variable item access by theIndex)#\" ,py::arg(\"theIndex\"))\n+ .def(\"SetValue\",\n+ (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue,\n+ R\"#(Set item value by theIndex)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n+ .def_static(\"delNode_s\",\n+ (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode,\n+ R\"#(Static deleter to be passed to BaseSequence)#\" ,py::arg(\"theNode\"), py::arg(\"theAl\"))\n+ .def(\"__iter__\",[](const NCollection_Sequence &self)\n+ { return py::make_iterator(self.begin(), self.end()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_Sequence &self)\n+ { return self.Size(); }\n+ )\n+ .def(\"__bool__\",[](const NCollection_Sequence &self)\n+ { return self.IsEmpty(); }\n+ )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_List(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_List(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n+ .def(py::init< const NCollection_List & >() ,py::arg(\"theOther\") )\n+ .def(\"begin\",\n+ (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin,\n+ R\"#(Returns an iterator pointing to the first element in the list.)#\" )\n+ .def(\"end\",\n+ (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end,\n+ R\"#(Returns an iterator referring to the past-the-end element in the list.)#\" )\n+ .def(\"cbegin\",\n+ (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin,\n+ R\"#(Returns a const iterator pointing to the first element in the list.)#\" )\n+ .def(\"cend\",\n+ (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend,\n+ R\"#(Returns a const iterator referring to the past-the-end element in the list.)#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size,\n+ R\"#(Size - Number of items)#\" )\n+ .def(\"Assign\",\n+ (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign,\n+ R\"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Clear\",\n+ (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear,\n+ R\"#(Clear this list)#\" ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L))\n+ .def(\"First\",\n+ ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First,\n+ R\"#(First item)#\" )\n+ .def(\"First\",\n+ (TheItemType & (NCollection_List::*)() ) &NCollection_List::First,\n+ R\"#(First item (non-const))#\" )\n+ .def(\"Last\",\n+ ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last,\n+ R\"#(Last item)#\" )\n+ .def(\"Last\",\n+ (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last,\n+ R\"#(Last item (non-const))#\" )\n+ .def(\"Append\",\n+ (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append,\n+ R\"#(Append one item at the end)#\" ,py::arg(\"theItem\"))\n+ .def(\"Append\",\n+ (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append,\n+ R\"#(Append one item at the end and output iterator pointing at the appended item)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n+ .def(\"Append\",\n+ (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append,\n+ R\"#(Append another list at the end. After this operation, theOther list will be cleared.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Prepend\",\n+ (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend,\n+ R\"#(Prepend one item at the beginning)#\" ,py::arg(\"theItem\"))\n+ .def(\"Prepend\",\n+ (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend,\n+ R\"#(Prepend another list at the beginning)#\" ,py::arg(\"theOther\"))\n+ .def(\"RemoveFirst\",\n+ (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst,\n+ R\"#(RemoveFirst item)#\" )\n+ .def(\"Remove\",\n+ (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove,\n+ R\"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#\" ,py::arg(\"theIter\"))\n+ .def(\"InsertBefore\",\n+ (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore,\n+ R\"#(InsertBefore)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n+ .def(\"InsertBefore\",\n+ (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore,\n+ R\"#(InsertBefore)#\" ,py::arg(\"theOther\"), py::arg(\"theIter\"))\n+ .def(\"InsertAfter\",\n+ (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter,\n+ R\"#(InsertAfter)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n+ .def(\"InsertAfter\",\n+ (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter,\n+ R\"#(InsertAfter)#\" ,py::arg(\"theOther\"), py::arg(\"theIter\"))\n+ .def(\"Reverse\",\n+ (void (NCollection_List::*)() ) &NCollection_List::Reverse,\n+ R\"#(Reverse the list)#\" )\n+ .def(\"__iter__\",[](const NCollection_List &self)\n+ { return py::make_iterator(self.begin(), self.end()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_List &self)\n { return self.Size(); }\n )\n ;\n };\n \n template \n void preregister_template_NCollection_IndexedIterator(py::object &m, const char *name){\n@@ -345,230 +635,973 @@\n .def(\"__sub__\",\n (typename NCollection_IndexedIterator::difference_type (NCollection_IndexedIterator::*)( const NCollection_IndexedIterator & ) const) &NCollection_IndexedIterator::operator-,\n py::is_operator(),\n R\"#(Difference)#\" ,py::arg(\"theOther\"))\n ;\n };\n \n-template \n-void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Class NCollection_DynamicArray (dynamic array of objects))#\");\n+template \n+void preregister_template_NCollection_EBTree(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template \n-void register_template_NCollection_DynamicArray(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Standard_Integer >() ,py::arg(\"theIncrement\")=static_cast< const Standard_Integer>(256) )\n- .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theIncrement\"), py::arg(\"theAllocator\") )\n- .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg(\"theIncrement\"), py::arg(\"theAllocator\") )\n- .def(py::init< const NCollection_DynamicArray & >() ,py::arg(\"theOther\") )\n- .def(\"begin\",\n- (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin,\n- R\"#()#\" )\n- .def(\"begin\",\n- (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin,\n- R\"#()#\" )\n- .def(\"cbegin\",\n- (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin,\n- R\"#()#\" )\n- .def(\"end\",\n- (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end,\n- R\"#()#\" )\n- .def(\"end\",\n- (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end,\n- R\"#()#\" )\n- .def(\"cend\",\n- (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend,\n- R\"#()#\" )\n- .def(\"Length\",\n- (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length,\n- R\"#(Total number of items)#\" )\n- .def(\"Size\",\n- (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size,\n- R\"#(Total number of items in the vector)#\" )\n- .def(\"Lower\",\n- (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower,\n- R\"#(Method for consistency with other collections.)#\" )\n- .def(\"Upper\",\n- (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper,\n- R\"#(Method for consistency with other collections.)#\" )\n+template \n+void register_template_NCollection_EBTree(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const handle & >() ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n+ .def(\"Add\",\n+ (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_EBTree::Add,\n+ R\"#(Updates the tree with a new object and its bounding box. Extends the functionality of the parent method by maintaining the map myObjNodeMap. Redefined virtual method.)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n+ .def(\"Remove\",\n+ (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & ) ) &NCollection_EBTree::Remove,\n+ R\"#(Removes the given object and updates the tree.)#\" ,py::arg(\"theObj\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & ) const) &NCollection_EBTree::Contains,\n+ R\"#(Returns True if the tree contains the object.)#\" ,py::arg(\"theObj\"))\n+ .def(\"FindNode\",\n+ ( const typename NCollection_EBTree::TreeNode & (NCollection_EBTree::*)( const TheObjType & ) const) &NCollection_EBTree::FindNode,\n+ R\"#(Returns The leaf node containing the object.)#\" ,py::arg(\"theObj\"))\n+ .def(\"Clear\",\n+ (void (NCollection_EBTree::*)( const handle & ) ) &NCollection_EBTree::Clear,\n+ R\"#(Clears the contents of the tree. Redefined virtual method)#\" ,py::arg(\"aNewAlloc\")=static_cast< const handle &>(0L))\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_UBTree(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#\");\n+}\n+\n+template \n+void register_template_NCollection_UBTree(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n+ .def(\"Add\",\n+ (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add,\n+ R\"#(Update the tree with a new object and its bounding box.)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n+ .def(\"Clear\",\n+ (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear,\n+ R\"#(Clears the contents of the tree.)#\" ,py::arg(\"aNewAlloc\")=static_cast< const handle &>(0L))\n .def(\"IsEmpty\",\n- (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty,\n- R\"#(Empty query)#\" )\n- .def(\"Assign\",\n- (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign,\n- R\"#(Assignment to the collection of the same type)#\" ,py::arg(\"theOther\"), py::arg(\"theOwnAllocator\")=static_cast< const bool>(true))\n- .def(\"Append\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append,\n- R\"#(Append)#\" ,py::arg(\"theValue\"))\n- .def(\"EraseLast\",\n- (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast,\n+ (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty,\n R\"#()#\" )\n- .def(\"Appended\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended,\n- R\"#(Appends an empty value and returns the reference to it)#\" )\n- .def(\"Value\",\n- (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value,\n- R\"#()#\" ,py::arg(\"theIndex\"))\n- .def(\"First\",\n- (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First,\n- R\"#(Returns first element)#\" )\n- .def(\"ChangeFirst\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst,\n- R\"#(Returns first element)#\" )\n- .def(\"Last\",\n- (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last,\n- R\"#(Returns last element)#\" )\n- .def(\"ChangeLast\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast,\n- R\"#(Returns last element)#\" )\n- .def(\"ChangeValue\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue,\n- R\"#()#\" ,py::arg(\"theIndex\"))\n- .def(\"SetValue\",\n- (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue,\n- R\"#(SetValue () - set or append a value)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n- .def(\"Clear\",\n- (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear,\n- R\"#()#\" ,py::arg(\"theReleaseMemory\")=static_cast< const bool>(false))\n- .def(\"SetIncrement\",\n- (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement,\n- R\"#()#\" ,py::arg(\"theIncrement\"))\n- .def(\"__iter__\",[](const NCollection_DynamicArray &self)\n- { return py::make_iterator(self.begin(), self.end()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_DynamicArray &self)\n- { return self.Size(); }\n- )\n- .def(\"__bool__\",[](const NCollection_DynamicArray &self)\n+ .def(\"Allocator\",\n+ ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator,\n+ R\"#(Recommended to be used only in sub-classes.)#\" )\n+ .def(\"__bool__\",[](const NCollection_UBTree &self)\n { return self.IsEmpty(); }\n )\n ;\n };\n \n-template \n-void preregister_template_NCollection_LocalArray(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#\");\n+template \n+void preregister_template_NCollection_Mat3(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#\");\n }\n \n-template \n-void register_template_NCollection_LocalArray(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const size_t >() ,py::arg(\"theSize\") )\n+template \n+void register_template_NCollection_Mat3(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(\"Allocate\",\n- (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate,\n- R\"#()#\" ,py::arg(\"theSize\"))\n- .def(\"Size\",\n- (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size,\n+ .def(\"GetValue\",\n+ (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue,\n+ R\"#(Get element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+ .def(\"ChangeValue\",\n+ (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue,\n+ R\"#(Access element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+ .def(\"SetValue\",\n+ (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue,\n+ R\"#(Set value for the element specified by row and columns.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"), py::arg(\"theValue\"))\n+ .def(\"GetRow\",\n+ (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow,\n+ R\"#(Return the row.)#\" ,py::arg(\"theRow\"))\n+ .def(\"SetRow\",\n+ (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow,\n+ R\"#(Change first 3 row values by the passed vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n+ .def(\"GetColumn\",\n+ (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn,\n+ R\"#(Return the column.)#\" ,py::arg(\"theCol\"))\n+ .def(\"SetColumn\",\n+ (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn,\n+ R\"#(Change first 3 column values by the passed vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n+ .def(\"GetDiagonal\",\n+ (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal,\n+ R\"#(Get vector of diagonal elements.)#\" )\n+ .def(\"SetDiagonal\",\n+ (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal,\n+ R\"#(Change first 3 elements of the diagonal matrix.)#\" ,py::arg(\"theVec\"))\n+ .def(\"InitZero\",\n+ (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero,\n+ R\"#(Initialize the zero matrix.)#\" )\n+ .def(\"IsZero\",\n+ (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero,\n+ R\"#(Checks the matrix for zero (without tolerance).)#\" )\n+ .def(\"InitIdentity\",\n+ (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity,\n+ R\"#(Initialize the identity matrix.)#\" )\n+ .def(\"IsIdentity\",\n+ (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity,\n+ R\"#(Checks the matrix for identity (without tolerance).)#\" )\n+ .def(\"IsEqual\",\n+ (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual,\n+ R\"#(Check this matrix for equality with another matrix (without tolerance!).)#\" ,py::arg(\"theOther\"))\n+ .def(\"GetData\",\n+ ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData,\n+ R\"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#\" )\n+ .def(\"ChangeData\",\n+ (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData,\n R\"#()#\" )\n- .def(\"__len__\",[](const NCollection_LocalArray &self)\n- { return self.Size(); }\n- )\n+ .def(\"Multiply\",\n+ (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply,\n+ R\"#(Compute matrix multiplication.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Multiplied\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied,\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Multiply\",\n+ (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply,\n+ R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Multiplied\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied,\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Divide\",\n+ (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide,\n+ R\"#(Compute per-component division.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Divided\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided,\n+ R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"Add\",\n+ (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add,\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Subtract\",\n+ (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract,\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Added\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added,\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Subtracted\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted,\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Negated\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated,\n+ R\"#(Returns matrix with all components negated.)#\" )\n+ .def(\"Transposed\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed,\n+ R\"#(Transpose the matrix.)#\" )\n+ .def(\"Transpose\",\n+ (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose,\n+ R\"#(Transpose the matrix.)#\" )\n+ .def(\"Determinant\",\n+ (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant,\n+ R\"#(Return determinant of the matrix.)#\" )\n+ .def(\"Adjoint\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint,\n+ R\"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#\" )\n+ .def(\"Inverted\",\n+ (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted,\n+ R\"#(Compute inverted matrix.)#\" ,py::arg(\"theInv\"), py::arg(\"theDet\"))\n+ .def(\"Inverted\",\n+ (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted,\n+ R\"#(Compute inverted matrix.)#\" ,py::arg(\"theInv\"))\n+ .def(\"Inverted\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted,\n+ R\"#(Return inverted matrix.)#\" )\n+ .def(\"DumpJson\",\n+ (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson,\n+ R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"arg\"))\n+ .def_static(\"Identity_s\",\n+ (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity,\n+ R\"#(Return identity matrix.)#\" )\n+ .def_static(\"Zero_s\",\n+ (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero,\n+ R\"#(Return zero matrix.)#\" )\n+ .def_static(\"Multiply_s\",\n+ (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply,\n+ R\"#(Compute matrix multiplication product: A * B.)#\" ,py::arg(\"theMatA\"), py::arg(\"theMatB\"))\n+ .def_static(\"Map_s\",\n+ (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map,\n+ R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n+ .def_static(\"Map_s\",\n+ ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map,\n+ R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n+ .def(\"__mul__\",\n+ (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n+ .def(\"__imul__\",\n+ (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=,\n+ py::is_operator(),\n+ R\"#(Multiply by the another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__mul__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__imul__\",\n+ (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__mul__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__itruediv__\",\n+ (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=,\n+ py::is_operator(),\n+ R\"#(Per-component division.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"__truediv__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/,\n+ py::is_operator(),\n+ R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"__iadd__\",\n+ (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=,\n+ py::is_operator(),\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__isub__\",\n+ (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=,\n+ py::is_operator(),\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__add__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+,\n+ py::is_operator(),\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__sub__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-,\n+ py::is_operator(),\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__sub__\",\n+ (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-,\n+ py::is_operator(),\n+ R\"#(Returns matrix with all components negated.)#\" )\n ;\n };\n \n-template >\n-void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){\n- 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.)#\");\n+template >\n+void preregister_template_NCollection_IndexedMap(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template >\n-void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n+template >\n+void register_template_NCollection_IndexedMap(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n .def(py::init< >() )\n .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg(\"theOther\") )\n- .def(\"begin\",\n- (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin,\n- R\"#(Returns an iterator pointing to the first element in the map.)#\" )\n- .def(\"end\",\n- (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end,\n- R\"#(Returns an iterator referring to the past-the-end element in the map.)#\" )\n+ .def(py::init< const NCollection_IndexedMap & >() ,py::arg(\"theOther\") )\n .def(\"cbegin\",\n- (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin,\n+ (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cbegin,\n R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n .def(\"cend\",\n- (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend,\n+ (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cend,\n R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n .def(\"Exchange\",\n- (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange,\n+ (void (NCollection_IndexedMap::*)( NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Exchange,\n R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n .def(\"Assign\",\n- (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign,\n- R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ (NCollection_IndexedMap & (NCollection_IndexedMap::*)( const NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Assign,\n+ R\"#(Assign. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n .def(\"ReSize\",\n- (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize,\n- R\"#(ReSize)#\" ,py::arg(\"N\"))\n+ (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::ReSize,\n+ R\"#(ReSize)#\" ,py::arg(\"theExtent\"))\n .def(\"Add\",\n- (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add,\n- R\"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#\" ,py::arg(\"theKey1\"), py::arg(\"theItem\"))\n+ (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::Add,\n+ R\"#(Add)#\" ,py::arg(\"theKey1\"))\n .def(\"Contains\",\n- (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains,\n+ (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::Contains,\n R\"#(Contains)#\" ,py::arg(\"theKey1\"))\n .def(\"Substitute\",\n- (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute,\n- R\"#(Substitute)#\" ,py::arg(\"theIndex\"), py::arg(\"theKey1\"), py::arg(\"theItem\"))\n+ (void (NCollection_IndexedMap::*)( const Standard_Integer , const TheKeyType & ) ) &NCollection_IndexedMap::Substitute,\n+ R\"#(Substitute)#\" ,py::arg(\"theIndex\"), py::arg(\"theKey1\"))\n .def(\"Swap\",\n- (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap,\n+ (void (NCollection_IndexedMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedMap::Swap,\n R\"#(Swaps two elements with the given indices.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n .def(\"RemoveLast\",\n- (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast,\n+ (void (NCollection_IndexedMap::*)() ) &NCollection_IndexedMap::RemoveLast,\n R\"#(RemoveLast)#\" )\n .def(\"RemoveFromIndex\",\n- (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex,\n+ (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::RemoveFromIndex,\n R\"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theIndex\"))\n .def(\"RemoveKey\",\n- (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey,\n+ (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::RemoveKey,\n R\"#(Remove the given key. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theKey1\"))\n .def(\"FindKey\",\n- ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey,\n+ ( const TheKeyType & (NCollection_IndexedMap::*)( const Standard_Integer ) const) &NCollection_IndexedMap::FindKey,\n R\"#(FindKey)#\" ,py::arg(\"theIndex\"))\n- .def(\"FindFromIndex\",\n- ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex,\n- R\"#(FindFromIndex)#\" ,py::arg(\"theIndex\"))\n- .def(\"ChangeFromIndex\",\n- (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex,\n- R\"#(ChangeFromIndex)#\" ,py::arg(\"theIndex\"))\n .def(\"FindIndex\",\n- (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex,\n+ (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::FindIndex,\n R\"#(FindIndex)#\" ,py::arg(\"theKey1\"))\n- .def(\"FindFromKey\",\n- ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey,\n- R\"#(FindFromKey)#\" ,py::arg(\"theKey1\"))\n- .def(\"ChangeFromKey\",\n- (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey,\n- R\"#(ChangeFromKey)#\" ,py::arg(\"theKey1\"))\n+ .def(\"Clear\",\n+ (void (NCollection_IndexedMap::*)( const Standard_Boolean ) ) &NCollection_IndexedMap::Clear,\n+ 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))\n+ .def(\"Clear\",\n+ (void (NCollection_IndexedMap::*)( const handle & ) ) &NCollection_IndexedMap::Clear,\n+ R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::Size,\n+ R\"#(Size)#\" )\n+ .def(\"__iter__\",[](const NCollection_IndexedMap &self)\n+ { return py::make_iterator(self.cbegin(), self.cend()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_IndexedMap &self)\n+ { return self.Size(); }\n+ )\n+ ;\n+};\n+\n+template ,typename Hasher2=NCollection_DefaultHasher>\n+void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template ,typename Hasher2=NCollection_DefaultHasher>\n+void register_template_NCollection_DoubleMap(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n+ .def(py::init< const NCollection_DoubleMap & >() ,py::arg(\"theOther\") )\n+ .def(\"Exchange\",\n+ (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange,\n+ R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n+ .def(\"Assign\",\n+ (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign,\n+ R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ .def(\"ReSize\",\n+ (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize,\n+ R\"#(ReSize)#\" ,py::arg(\"N\"))\n+ .def(\"Bind\",\n+ (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind,\n+ R\"#(Bind)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n+ .def(\"AreBound\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound,\n+ R\"#(* AreBound)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n+ .def(\"IsBound1\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1,\n+ R\"#(IsBound1)#\" ,py::arg(\"theKey1\"))\n+ .def(\"IsBound2\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2,\n+ R\"#(IsBound2)#\" ,py::arg(\"theKey2\"))\n+ .def(\"UnBind1\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1,\n+ R\"#(UnBind1)#\" ,py::arg(\"theKey1\"))\n+ .def(\"UnBind2\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2,\n+ R\"#(UnBind2)#\" ,py::arg(\"theKey2\"))\n+ .def(\"Find1\",\n+ ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1,\n+ R\"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#\" ,py::arg(\"theKey1\"))\n+ .def(\"Find1\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1,\n+ R\"#(Find the Key1 and return Key2 value (by copying its value).)#\" ,py::arg(\"theKey1\"), py::arg(\"theKey2\"))\n+ .def(\"Seek1\",\n+ ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1,\n+ R\"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#\" ,py::arg(\"theKey1\"))\n+ .def(\"Find2\",\n+ ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2,\n+ R\"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#\" ,py::arg(\"theKey2\"))\n+ .def(\"Find2\",\n+ (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2,\n+ R\"#(Find the Key2 and return Key1 value (by copying its value).)#\" ,py::arg(\"theKey2\"), py::arg(\"theKey1\"))\n+ .def(\"Seek2\",\n+ ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2,\n+ R\"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#\" ,py::arg(\"theKey2\"))\n+ .def(\"Clear\",\n+ (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear,\n+ 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))\n+ .def(\"Clear\",\n+ (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear,\n+ R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size,\n+ R\"#(Size)#\" )\n+ .def(\"__len__\",[](const NCollection_DoubleMap &self)\n+ { return self.Size(); }\n+ )\n+ ;\n+};\n+\n+template >\n+void preregister_template_NCollection_DataMap(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template >\n+void register_template_NCollection_DataMap(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n+ .def(py::init< const NCollection_DataMap & >() ,py::arg(\"theOther\") )\n+ .def(\"begin\",\n+ (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::begin,\n+ R\"#(Returns an iterator pointing to the first element in the map.)#\" )\n+ .def(\"end\",\n+ (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::end,\n+ R\"#(Returns an iterator referring to the past-the-end element in the map.)#\" )\n+ .def(\"cbegin\",\n+ (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cbegin,\n+ R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n+ .def(\"cend\",\n+ (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cend,\n+ R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n+ .def(\"Exchange\",\n+ (void (NCollection_DataMap::*)( NCollection_DataMap & ) ) &NCollection_DataMap::Exchange,\n+ R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n+ .def(\"Assign\",\n+ (NCollection_DataMap & (NCollection_DataMap::*)( const NCollection_DataMap & ) ) &NCollection_DataMap::Assign,\n+ R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ .def(\"ReSize\",\n+ (void (NCollection_DataMap::*)( const Standard_Integer ) ) &NCollection_DataMap::ReSize,\n+ R\"#(ReSize)#\" ,py::arg(\"N\"))\n+ .def(\"Bind\",\n+ (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bind,\n+ R\"#(Bind binds Item to Key in map.)#\" ,py::arg(\"theKey\"), py::arg(\"theItem\"))\n+ .def(\"Bound\",\n+ (TheItemType * (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bound,\n+ R\"#(Bound binds Item to Key in map.)#\" ,py::arg(\"theKey\"), py::arg(\"theItem\"))\n+ .def(\"IsBound\",\n+ (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::IsBound,\n+ R\"#(IsBound)#\" ,py::arg(\"theKey\"))\n+ .def(\"UnBind\",\n+ (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::UnBind,\n+ R\"#(UnBind removes Item Key pair from map)#\" ,py::arg(\"theKey\"))\n .def(\"Seek\",\n- ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek,\n- R\"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#\" ,py::arg(\"theKey1\"))\n+ ( const TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Seek,\n+ R\"#(Seek returns pointer to Item by Key. Returns NULL is Key was not bound.)#\" ,py::arg(\"theKey\"))\n+ .def(\"Find\",\n+ ( const TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Find,\n+ R\"#(Find returns the Item for Key. Raises if Key was not bound)#\" ,py::arg(\"theKey\"))\n+ .def(\"Find\",\n+ (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_DataMap::Find,\n+ R\"#(Find Item for key with copying.)#\" ,py::arg(\"theKey\"), py::arg(\"theValue\"))\n .def(\"ChangeSeek\",\n- (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek,\n- R\"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#\" ,py::arg(\"theKey1\"))\n- .def(\"FindFromKey\",\n- (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey,\n- R\"#(Find value for key with copying.)#\" ,py::arg(\"theKey1\"), py::arg(\"theValue\"))\n+ (TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeSeek,\n+ R\"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL is Key was not bound.)#\" ,py::arg(\"theKey\"))\n+ .def(\"ChangeFind\",\n+ (TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeFind,\n+ R\"#(ChangeFind returns mofifiable Item by Key. Raises if Key was not bound)#\" ,py::arg(\"theKey\"))\n .def(\"Clear\",\n- (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear,\n+ (void (NCollection_DataMap::*)( const Standard_Boolean ) ) &NCollection_DataMap::Clear,\n 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))\n .def(\"Clear\",\n- (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear,\n+ (void (NCollection_DataMap::*)( const handle & ) ) &NCollection_DataMap::Clear,\n R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n .def(\"Size\",\n- (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size,\n+ (Standard_Integer (NCollection_DataMap::*)() const) &NCollection_DataMap::Size,\n R\"#(Size)#\" )\n- .def(\"__iter__\",[](const NCollection_IndexedDataMap &self)\n+ .def(\"__iter__\",[](const NCollection_DataMap &self)\n { return py::make_iterator(self.begin(), self.end()); },\n py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_IndexedDataMap &self)\n+ .def(\"__len__\",[](const NCollection_DataMap &self)\n { return self.Size(); }\n )\n ;\n };\n \n+template \n+void preregister_template_NCollection_AliasedArray(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Defines an array of values of configurable size. For instance, this class allows defining an array of 32-bit or 64-bit integer values with bitness determined in runtime. The element size in bytes (stride) should be specified at construction time. Indexation starts from 0 index. As actual type of element varies at runtime, element accessors are defined as templates. Memory for array is allocated with the given alignment (template parameter).)#\");\n+}\n+\n+template \n+void register_template_NCollection_AliasedArray(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< Standard_Integer >() ,py::arg(\"theStride\") )\n+ .def(py::init< Standard_Integer,Standard_Integer >() ,py::arg(\"theStride\"), py::arg(\"theLength\") )\n+ .def(py::init< const NCollection_AliasedArray & >() ,py::arg(\"theOther\") )\n+ .def(\"Stride\",\n+ (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Stride,\n+ R\"#(Returns an element size in bytes.)#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Size,\n+ R\"#(Size query)#\" )\n+ .def(\"Length\",\n+ (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Length,\n+ R\"#(Length query (the same as Size()))#\" )\n+ .def(\"IsEmpty\",\n+ (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsEmpty,\n+ R\"#(Return TRUE if array has zero length.)#\" )\n+ .def(\"Lower\",\n+ (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Lower,\n+ R\"#(Lower bound)#\" )\n+ .def(\"Upper\",\n+ (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Upper,\n+ R\"#(Upper bound)#\" )\n+ .def(\"IsDeletable\",\n+ (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsDeletable,\n+ R\"#(myDeletable flag)#\" )\n+ .def(\"IsAllocated\",\n+ (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsAllocated,\n+ R\"#(IsAllocated flag - for naming compatibility)#\" )\n+ .def(\"SizeBytes\",\n+ (Standard_Size (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::SizeBytes,\n+ R\"#(Return buffer size in bytes.)#\" )\n+ .def(\"Assign\",\n+ (NCollection_AliasedArray & (NCollection_AliasedArray::*)( const NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Assign,\n+ 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\"))\n+ .def(\"Move\",\n+ (NCollection_AliasedArray & (NCollection_AliasedArray::*)( NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Move,\n+ R\"#(Move assignment. This array will borrow all the data from theOther. The moved object will keep pointer to the memory buffer and range, but it will not free the buffer on destruction.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Resize\",\n+ (void (NCollection_AliasedArray::*)( Standard_Integer , Standard_Boolean ) ) &NCollection_AliasedArray::Resize,\n+ 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(\"theLength\"), py::arg(\"theToCopyData\"))\n+ .def(\"value\",\n+ ( const Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) const) &NCollection_AliasedArray::value,\n+ R\"#(Access raw bytes of specified element.)#\" ,py::arg(\"theIndex\"))\n+ .def(\"changeValue\",\n+ (Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) ) &NCollection_AliasedArray::changeValue,\n+ R\"#(Access raw bytes of specified element.)#\" ,py::arg(\"theIndex\"))\n+ .def(\"__len__\",[](const NCollection_AliasedArray &self)\n+ { return self.Size(); }\n+ )\n+ .def(\"__bool__\",[](const NCollection_AliasedArray &self)\n+ { return self.IsEmpty(); }\n+ )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_UtfIterator(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Template class for Unicode strings support.)#\");\n+}\n+\n+template \n+void register_template_NCollection_UtfIterator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Type * >() ,py::arg(\"theString\") )\n+ .def(\"Init\",\n+ (void (NCollection_UtfIterator::*)( const Type * ) ) &NCollection_UtfIterator::Init,\n+ R\"#(Initialize iterator within specified NULL-terminated string.)#\" ,py::arg(\"theString\"))\n+ .def(\"IsValid\",\n+ (bool (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::IsValid,\n+ R\"#(Return true if Unicode symbol is within valid range.)#\" )\n+ .def(\"BufferHere\",\n+ ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferHere,\n+ R\"#(Buffer-fetching getter.)#\" )\n+ .def(\"ChangeBufferHere\",\n+ (Type * (NCollection_UtfIterator::*)() ) &NCollection_UtfIterator::ChangeBufferHere,\n+ R\"#(Buffer-fetching getter. Dangerous! Iterator should be reinitialized on buffer change.)#\" )\n+ .def(\"BufferNext\",\n+ ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferNext,\n+ R\"#(Buffer-fetching getter.)#\" )\n+ .def(\"Index\",\n+ (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::Index,\n+ R\"#(Returns the index displacement from iterator initialization (first symbol has index 0))#\" )\n+ .def(\"AdvanceBytesUtf8\",\n+ (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf8,\n+ R\"#(Returns the advance in bytes to store current symbol in UTF-8. 0 means an invalid symbol; 1-4 bytes are valid range.)#\" )\n+ .def(\"AdvanceBytesUtf16\",\n+ (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf16,\n+ R\"#(Returns the advance in bytes to store current symbol in UTF-16. 0 means an invalid symbol; 2 bytes is a general case; 4 bytes for surrogate pair.)#\" )\n+ .def(\"AdvanceCodeUnitsUtf16\",\n+ (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceCodeUnitsUtf16,\n+ R\"#(Returns the advance in bytes to store current symbol in UTF-16. 0 means an invalid symbol; 1 16-bit code unit is a general case; 2 16-bit code units for surrogate pair.)#\" )\n+ .def(\"AdvanceBytesUtf32\",\n+ (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf32,\n+ R\"#(Returns the advance in bytes to store current symbol in UTF-32. Always 4 bytes (method for consistency).)#\" )\n+ .def(\"GetUtf8\",\n+ (Standard_Utf8Char * (NCollection_UtfIterator::*)( Standard_Utf8Char * ) const) &NCollection_UtfIterator::GetUtf8,\n+ R\"#(Fill the UTF-8 buffer within current Unicode symbol. Use method AdvanceUtf8() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n+ .def(\"GetUtf8\",\n+ (Standard_Utf8UChar * (NCollection_UtfIterator::*)( Standard_Utf8UChar * ) const) &NCollection_UtfIterator::GetUtf8,\n+ R\"#()#\" ,py::arg(\"theBuffer\"))\n+ .def(\"GetUtf16\",\n+ (Standard_Utf16Char * (NCollection_UtfIterator::*)( Standard_Utf16Char * ) const) &NCollection_UtfIterator::GetUtf16,\n+ R\"#(Fill the UTF-16 buffer within current Unicode symbol. Use method AdvanceUtf16() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n+ .def(\"GetUtf32\",\n+ (Standard_Utf32Char * (NCollection_UtfIterator::*)( Standard_Utf32Char * ) const) &NCollection_UtfIterator::GetUtf32,\n+ R\"#(Fill the UTF-32 buffer within current Unicode symbol. Use method AdvanceUtf32() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n+ .def(\"__mul__\",\n+ (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*,\n+ py::is_operator(),\n+ R\"#(Dereference operator.)#\" )\n+ .def(\"__rmul__\",\n+ (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*,\n+ py::is_operator(),\n+ R\"#(Dereference operator.)#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_Iterator(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_Iterator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const NCollection_Iterator & >() ,py::arg(\"theOther\") )\n+ .def(py::init< const Container & >() ,py::arg(\"theList\") )\n+ .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg(\"theList\"), py::arg(\"theOther\") )\n+ .def(\"Init\",\n+ (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init,\n+ R\"#()#\" ,py::arg(\"theList\"))\n+ .def(\"Init\",\n+ (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init,\n+ R\"#()#\" ,py::arg(\"theList\"))\n+ .def(\"More\",\n+ (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More,\n+ R\"#()#\" )\n+ .def(\"Initialize\",\n+ (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize,\n+ R\"#()#\" ,py::arg(\"theList\"))\n+ .def(\"Initialize\",\n+ (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize,\n+ R\"#()#\" ,py::arg(\"theList\"))\n+ .def(\"ValueIter\",\n+ ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter,\n+ R\"#()#\" )\n+ .def(\"ChangeValueIter\",\n+ (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter,\n+ R\"#()#\" )\n+ .def(\"EndIter\",\n+ ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter,\n+ R\"#()#\" )\n+ .def(\"ChangeEndIter\",\n+ (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter,\n+ R\"#()#\" )\n+ .def(\"Next\",\n+ (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next,\n+ R\"#()#\" )\n+ .def(\"Value\",\n+ ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value,\n+ R\"#()#\" )\n+ .def(\"ChangeValue\",\n+ ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue,\n+ R\"#()#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_TListIterator(py::object &m, const char *name){\n+ 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)#\");\n+}\n+\n+template \n+void register_template_NCollection_TListIterator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const NCollection_BaseList & >() ,py::arg(\"theList\") )\n+ .def(\"More\",\n+ (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More,\n+ R\"#(Check end)#\" )\n+ .def(\"Next\",\n+ (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next,\n+ R\"#(Make step)#\" )\n+ .def(\"Value\",\n+ ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value,\n+ R\"#(Constant Value access)#\" )\n+ .def(\"Value\",\n+ (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value,\n+ R\"#(Non-const Value access)#\" )\n+ .def(\"ChangeValue\",\n+ (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue,\n+ R\"#(Non-const Value access)#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_Mat4(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_Mat4(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(\"GetValue\",\n+ (Element_t (NCollection_Mat4::*)( const size_t , const size_t ) const) &NCollection_Mat4::GetValue,\n+ R\"#(Get element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+ .def(\"ChangeValue\",\n+ (Element_t & (NCollection_Mat4::*)( const size_t , const size_t ) ) &NCollection_Mat4::ChangeValue,\n+ R\"#(Access element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+ .def(\"SetValue\",\n+ (void (NCollection_Mat4::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat4::SetValue,\n+ R\"#(Set value for the element specified by row and columns.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"), py::arg(\"theValue\"))\n+ .def(\"GetRow\",\n+ (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetRow,\n+ R\"#(Get vector of elements for the specified row.)#\" ,py::arg(\"theRow\"))\n+ .def(\"SetRow\",\n+ (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetRow,\n+ R\"#(Change first 3 row values by the passed vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n+ .def(\"SetRow\",\n+ (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetRow,\n+ R\"#(Set row values by the passed 4 element vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n+ .def(\"GetColumn\",\n+ (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetColumn,\n+ R\"#(Get vector of elements for the specified column.)#\" ,py::arg(\"theCol\"))\n+ .def(\"SetColumn\",\n+ (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetColumn,\n+ R\"#(Change first 3 column values by the passed vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n+ .def(\"SetColumn\",\n+ (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetColumn,\n+ R\"#(Set column values by the passed 4 element vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n+ .def(\"GetDiagonal\",\n+ (NCollection_Vec4 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetDiagonal,\n+ R\"#(Get vector of diagonal elements.)#\" )\n+ .def(\"SetDiagonal\",\n+ (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::SetDiagonal,\n+ R\"#(Change first 3 elements of the diagonal matrix.)#\" ,py::arg(\"theVec\"))\n+ .def(\"SetDiagonal\",\n+ (void (NCollection_Mat4::*)( const NCollection_Vec4 & ) ) &NCollection_Mat4::SetDiagonal,\n+ R\"#(Set diagonal elements of the matrix by the passed vector.)#\" ,py::arg(\"theVec\"))\n+ .def(\"GetMat3\",\n+ (NCollection_Mat3 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetMat3,\n+ R\"#(Return 3x3 sub-matrix.)#\" )\n+ .def(\"InitZero\",\n+ (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitZero,\n+ R\"#(Initialize the zero matrix.)#\" )\n+ .def(\"IsZero\",\n+ (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsZero,\n+ R\"#(Checks the matrix for zero (without tolerance).)#\" )\n+ .def(\"InitIdentity\",\n+ (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitIdentity,\n+ R\"#(Initialize the identity matrix.)#\" )\n+ .def(\"IsIdentity\",\n+ (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsIdentity,\n+ R\"#(Checks the matrix for identity (without tolerance).)#\" )\n+ .def(\"IsEqual\",\n+ (bool (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::IsEqual,\n+ R\"#(Check this matrix for equality with another matrix (without tolerance!).)#\" ,py::arg(\"theOther\"))\n+ .def(\"GetData\",\n+ ( const Element_t * (NCollection_Mat4::*)() const) &NCollection_Mat4::GetData,\n+ R\"#(Raw access to the data (for OpenGL exchange); the data is returned in column-major order.)#\" )\n+ .def(\"ChangeData\",\n+ (Element_t * (NCollection_Mat4::*)() ) &NCollection_Mat4::ChangeData,\n+ R\"#()#\" )\n+ .def(\"Multiply\",\n+ (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply,\n+ R\"#(Compute matrix multiplication.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Multiplied\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Multiplied,\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Multiply\",\n+ (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Multiply,\n+ R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Multiplied\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Multiplied,\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Divide\",\n+ (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Divide,\n+ R\"#(Compute per-component division.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"Divided\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Divided,\n+ R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"Add\",\n+ (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Add,\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Subtract\",\n+ (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Subtract,\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Added\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Added,\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Subtracted\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Subtracted,\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"Negated\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Negated,\n+ R\"#(Returns matrix with all components negated.)#\" )\n+ .def(\"Translate\",\n+ (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::Translate,\n+ R\"#(Translate the matrix on the passed vector.)#\" ,py::arg(\"theVec\"))\n+ .def(\"Transposed\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Transposed,\n+ R\"#(Transpose the matrix.)#\" )\n+ .def(\"Transpose\",\n+ (void (NCollection_Mat4::*)() ) &NCollection_Mat4::Transpose,\n+ R\"#(Transpose the matrix.)#\" )\n+ .def(\"Inverted\",\n+ (bool (NCollection_Mat4::*)( NCollection_Mat4 & , Element_t & ) const) &NCollection_Mat4::Inverted,\n+ R\"#(Compute inverted matrix.)#\" ,py::arg(\"theOutMx\"), py::arg(\"theDet\"))\n+ .def(\"Inverted\",\n+ (bool (NCollection_Mat4::*)( NCollection_Mat4 & ) const) &NCollection_Mat4::Inverted,\n+ R\"#(Compute inverted matrix.)#\" ,py::arg(\"theOutMx\"))\n+ .def(\"Inverted\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Inverted,\n+ R\"#(Return inverted matrix.)#\" )\n+ .def(\"DeterminantMat3\",\n+ (Element_t (NCollection_Mat4::*)() const) &NCollection_Mat4::DeterminantMat3,\n+ R\"#(Return determinant of the 3x3 sub-matrix.)#\" )\n+ .def(\"Adjoint\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Adjoint,\n+ R\"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#\" )\n+ .def(\"DumpJson\",\n+ (void (NCollection_Mat4::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat4::DumpJson,\n+ R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"arg\"))\n+ .def_static(\"Rows_s\",\n+ (size_t (*)() ) &NCollection_Mat4::Rows,\n+ R\"#(Get number of rows.)#\" )\n+ .def_static(\"Cols_s\",\n+ (size_t (*)() ) &NCollection_Mat4::Cols,\n+ R\"#(Get number of columns.)#\" )\n+ .def_static(\"Identity_s\",\n+ (NCollection_Mat4 (*)() ) &NCollection_Mat4::Identity,\n+ R\"#(Return identity matrix.)#\" )\n+ .def_static(\"Zero_s\",\n+ (NCollection_Mat4 (*)() ) &NCollection_Mat4::Zero,\n+ R\"#(Return zero matrix.)#\" )\n+ .def_static(\"Multiply_s\",\n+ (NCollection_Mat4 (*)( const NCollection_Mat4 & , const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply,\n+ R\"#(Compute matrix multiplication product: A * B.)#\" ,py::arg(\"theMatA\"), py::arg(\"theMatB\"))\n+ .def_static(\"Map_s\",\n+ (NCollection_Mat4 & (*)( Element_t * ) ) &NCollection_Mat4::Map,\n+ R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n+ .def_static(\"Map_s\",\n+ ( const NCollection_Mat4 & (*)( const Element_t * ) ) &NCollection_Mat4::Map,\n+ R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n+ .def(\"__mul__\",\n+ (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n+ .def(\"__imul__\",\n+ (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator*=,\n+ py::is_operator(),\n+ R\"#(Multiply by the another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__mul__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__imul__\",\n+ (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator*=,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__mul__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__rmul__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*,\n+ py::is_operator(),\n+ R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__itruediv__\",\n+ (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator/=,\n+ py::is_operator(),\n+ R\"#(Per-component division.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"__truediv__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator/,\n+ py::is_operator(),\n+ R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"__iadd__\",\n+ (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator+=,\n+ py::is_operator(),\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__isub__\",\n+ (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator-=,\n+ py::is_operator(),\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__add__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator+,\n+ py::is_operator(),\n+ R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__sub__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator-,\n+ py::is_operator(),\n+ R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n+ .def(\"__sub__\",\n+ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::operator-,\n+ py::is_operator(),\n+ R\"#(Returns matrix with all components negated.)#\" )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_StlIterator(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_StlIterator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const BaseIterator & >() ,py::arg(\"theIterator\") )\n+ .def(py::init< const NCollection_StlIterator & >() ,py::arg(\"theIterator\") )\n+ .def(\"Iterator\",\n+ ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator,\n+ R\"#(Access to NCollection iterator instance)#\" )\n+ .def(\"ChangeIterator\",\n+ (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator,\n+ R\"#(Access to NCollection iterator instance)#\" )\n+ .def(\"__mul__\",\n+ (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*,\n+ py::is_operator(),\n+ R\"#(Get reference to current item)#\" )\n+ .def(\"__rmul__\",\n+ (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*,\n+ py::is_operator(),\n+ R\"#(Get reference to current item)#\" )\n+ .def(\"__iadd__\",\n+ (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=,\n+ py::is_operator(),\n+ R\"#(Move forward)#\" ,py::arg(\"theOffset\"))\n+ .def(\"__add__\",\n+ (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+,\n+ py::is_operator(),\n+ R\"#(Addition)#\" ,py::arg(\"theOffset\"))\n+ .def(\"__isub__\",\n+ (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=,\n+ py::is_operator(),\n+ R\"#(Move backward)#\" ,py::arg(\"theOffset\"))\n+ .def(\"__sub__\",\n+ (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-,\n+ py::is_operator(),\n+ R\"#(Decrease)#\" ,py::arg(\"theOffset\"))\n+ .def(\"__sub__\",\n+ (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-,\n+ py::is_operator(),\n+ R\"#(Difference)#\" ,py::arg(\"theOther\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_OccAllocator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle & >() ,py::arg(\"theAlloc\") )\n+ .def(py::init< const NCollection_OccAllocator & >() ,py::arg(\"theOther\") )\n+ .def(\"SetAllocator\",\n+ (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator,\n+ R\"#()#\" ,py::arg(\"theAlloc\"))\n+ .def(\"Allocator\",\n+ ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator,\n+ R\"#()#\" )\n+ .def(\"address\",\n+ (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address,\n+ R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n+ .def(\"address\",\n+ (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address,\n+ R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n+ .def(\"max_size\",\n+ (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size,\n+ R\"#(Estimate maximum array size)#\" )\n+ ;\n+};\n+\n template \n void preregister_template_NCollection_Vec3(py::object &m, const char *name){\n 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.).)#\");\n }\n \n template \n void register_template_NCollection_Vec3(py::object &m, const char *name){\n@@ -761,337 +1794,14 @@\n (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator/,\n py::is_operator(),\n R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n ;\n };\n \n template \n-void preregister_template_NCollection_Vec2(py::object &m, const char *name){\n- 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.).)#\");\n-}\n-\n-template \n-void register_template_NCollection_Vec2(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const Element_t >() ,py::arg(\"theXY\") )\n- .def(py::init< const Element_t, const Element_t >() ,py::arg(\"theX\"), py::arg(\"theY\") )\n- .def(\"SetValues\",\n- (void (NCollection_Vec2::*)( const Element_t , const Element_t ) ) &NCollection_Vec2::SetValues,\n- R\"#(Assign new values to the vector.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"))\n- .def(\"x\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::x,\n- R\"#(Alias to 1st component as X coordinate in XY.)#\" )\n- .def(\"y\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::y,\n- R\"#(Alias to 2nd component as Y coordinate in XY.)#\" )\n- .def(\"xy\",\n- ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::xy,\n- R\"#(Returns 2 components by their names in specified order (in GLSL-style))#\" )\n- .def(\"yx\",\n- ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::yx,\n- R\"#(Returns 2 components by their names in specified order (in GLSL-style))#\" )\n- .def(\"x\",\n- (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::x,\n- R\"#(Alias to 1st component as X coordinate in XY.)#\" )\n- .def(\"y\",\n- (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::y,\n- R\"#(Alias to 2nd component as Y coordinate in XY.)#\" )\n- .def(\"IsEqual\",\n- (bool (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::IsEqual,\n- R\"#(Check this vector with another vector for equality (without tolerance!).)#\" ,py::arg(\"theOther\"))\n- .def(\"GetData\",\n- ( const Element_t * (NCollection_Vec2::*)() const) &NCollection_Vec2::GetData,\n- R\"#(Raw access to the data (for OpenGL exchange).)#\" )\n- .def(\"ChangeData\",\n- (Element_t * (NCollection_Vec2::*)() ) &NCollection_Vec2::ChangeData,\n- R\"#()#\" )\n- .def(\"Multiply\",\n- (void (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::Multiply,\n- R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Multiplied\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::Multiplied,\n- R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n- .def(\"cwiseMin\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMin,\n- R\"#(Compute component-wise minimum of two vectors.)#\" ,py::arg(\"theVec\"))\n- .def(\"cwiseMax\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMax,\n- R\"#(Compute component-wise maximum of two vectors.)#\" ,py::arg(\"theVec\"))\n- .def(\"cwiseAbs\",\n- (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::cwiseAbs,\n- R\"#(Compute component-wise modulus of the vector.)#\" )\n- .def(\"maxComp\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::maxComp,\n- R\"#(Compute maximum component of the vector.)#\" )\n- .def(\"minComp\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::minComp,\n- R\"#(Compute minimum component of the vector.)#\" )\n- .def(\"Dot\",\n- (Element_t (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::Dot,\n- R\"#(Computes the dot product.)#\" ,py::arg(\"theOther\"))\n- .def(\"Modulus\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::Modulus,\n- R\"#(Computes the vector modulus (magnitude, length).)#\" )\n- .def(\"SquareModulus\",\n- (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::SquareModulus,\n- R\"#(Computes the square of vector modulus (magnitude, length). This method may be used for performance tricks.)#\" )\n- .def(\"DumpJson\",\n- (void (NCollection_Vec2::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec2::DumpJson,\n- R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"theDepth\")=static_cast(- 1))\n- .def_static(\"Length_s\",\n- (int (*)() ) &NCollection_Vec2::Length,\n- R\"#(Returns the number of components.)#\" )\n- .def_static(\"DX_s\",\n- (NCollection_Vec2 (*)() ) &NCollection_Vec2::DX,\n- R\"#(Construct DX unit vector.)#\" )\n- .def_static(\"DY_s\",\n- (NCollection_Vec2 (*)() ) &NCollection_Vec2::DY,\n- R\"#(Construct DY unit vector.)#\" )\n- .def(\"__iadd__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator+=,\n- py::is_operator(),\n- R\"#(Compute per-component summary.)#\" ,py::arg(\"theAdd\"))\n- .def(\"__isub__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator-=,\n- py::is_operator(),\n- R\"#(Compute per-component subtraction.)#\" ,py::arg(\"theDec\"))\n- .def(\"__sub__\",\n- (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::operator-,\n- py::is_operator(),\n- R\"#(Unary -.)#\" )\n- .def(\"__imul__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator*=,\n- py::is_operator(),\n- R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theRight\"))\n- .def(\"__imul__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator*=,\n- py::is_operator(),\n- R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__itruediv__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator/=,\n- py::is_operator(),\n- R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n- .def(\"__itruediv__\",\n- (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator/=,\n- py::is_operator(),\n- R\"#(Compute per-component division.)#\" ,py::arg(\"theRight\"))\n- .def(\"__mul__\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*,\n- py::is_operator(),\n- R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__rmul__\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*,\n- py::is_operator(),\n- R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__truediv__\",\n- (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator/,\n- py::is_operator(),\n- R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_Lerp(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_Lerp(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const T &, const T & >() ,py::arg(\"theStart\"), py::arg(\"theEnd\") )\n- .def(\"Init\",\n- (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init,\n- R\"#(Initialize values.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"))\n- .def(\"Interpolate\",\n- (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate,\n- R\"#(Compute interpolated value between two values.)#\" ,py::arg(\"theT\"), py::arg(\"theResult\"))\n- .def_static(\"Interpolate_s\",\n- (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate,\n- R\"#(Compute interpolated value between two values.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"), py::arg(\"theT\"))\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_List(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_List(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n- .def(py::init< const NCollection_List & >() ,py::arg(\"theOther\") )\n- .def(\"begin\",\n- (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin,\n- R\"#(Returns an iterator pointing to the first element in the list.)#\" )\n- .def(\"end\",\n- (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end,\n- R\"#(Returns an iterator referring to the past-the-end element in the list.)#\" )\n- .def(\"cbegin\",\n- (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin,\n- R\"#(Returns a const iterator pointing to the first element in the list.)#\" )\n- .def(\"cend\",\n- (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend,\n- R\"#(Returns a const iterator referring to the past-the-end element in the list.)#\" )\n- .def(\"Size\",\n- (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size,\n- R\"#(Size - Number of items)#\" )\n- .def(\"Assign\",\n- (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign,\n- R\"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n- .def(\"Clear\",\n- (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear,\n- R\"#(Clear this list)#\" ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L))\n- .def(\"First\",\n- ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First,\n- R\"#(First item)#\" )\n- .def(\"First\",\n- (TheItemType & (NCollection_List::*)() ) &NCollection_List::First,\n- R\"#(First item (non-const))#\" )\n- .def(\"Last\",\n- ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last,\n- R\"#(Last item)#\" )\n- .def(\"Last\",\n- (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last,\n- R\"#(Last item (non-const))#\" )\n- .def(\"Append\",\n- (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append,\n- R\"#(Append one item at the end)#\" ,py::arg(\"theItem\"))\n- .def(\"Append\",\n- (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append,\n- R\"#(Append one item at the end and output iterator pointing at the appended item)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n- .def(\"Append\",\n- (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append,\n- R\"#(Append another list at the end. After this operation, theOther list will be cleared.)#\" ,py::arg(\"theOther\"))\n- .def(\"Prepend\",\n- (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend,\n- R\"#(Prepend one item at the beginning)#\" ,py::arg(\"theItem\"))\n- .def(\"Prepend\",\n- (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend,\n- R\"#(Prepend another list at the beginning)#\" ,py::arg(\"theOther\"))\n- .def(\"RemoveFirst\",\n- (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst,\n- R\"#(RemoveFirst item)#\" )\n- .def(\"Remove\",\n- (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove,\n- R\"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#\" ,py::arg(\"theIter\"))\n- .def(\"InsertBefore\",\n- (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore,\n- R\"#(InsertBefore)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n- .def(\"InsertBefore\",\n- (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore,\n- R\"#(InsertBefore)#\" ,py::arg(\"theOther\"), py::arg(\"theIter\"))\n- .def(\"InsertAfter\",\n- (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter,\n- R\"#(InsertAfter)#\" ,py::arg(\"theItem\"), py::arg(\"theIter\"))\n- .def(\"InsertAfter\",\n- (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter,\n- R\"#(InsertAfter)#\" ,py::arg(\"theOther\"), py::arg(\"theIter\"))\n- .def(\"Reverse\",\n- (void (NCollection_List::*)() ) &NCollection_List::Reverse,\n- R\"#(Reverse the list)#\" )\n- .def(\"__iter__\",[](const NCollection_List &self)\n- { return py::make_iterator(self.begin(), self.end()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_List &self)\n- { return self.Size(); }\n- )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_AliasedArray(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Defines an array of values of configurable size. For instance, this class allows defining an array of 32-bit or 64-bit integer values with bitness determined in runtime. The element size in bytes (stride) should be specified at construction time. Indexation starts from 0 index. As actual type of element varies at runtime, element accessors are defined as templates. Memory for array is allocated with the given alignment (template parameter).)#\");\n-}\n-\n-template \n-void register_template_NCollection_AliasedArray(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< Standard_Integer >() ,py::arg(\"theStride\") )\n- .def(py::init< Standard_Integer,Standard_Integer >() ,py::arg(\"theStride\"), py::arg(\"theLength\") )\n- .def(py::init< const NCollection_AliasedArray & >() ,py::arg(\"theOther\") )\n- .def(\"Stride\",\n- (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Stride,\n- R\"#(Returns an element size in bytes.)#\" )\n- .def(\"Size\",\n- (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Size,\n- R\"#(Size query)#\" )\n- .def(\"Length\",\n- (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Length,\n- R\"#(Length query (the same as Size()))#\" )\n- .def(\"IsEmpty\",\n- (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsEmpty,\n- R\"#(Return TRUE if array has zero length.)#\" )\n- .def(\"Lower\",\n- (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Lower,\n- R\"#(Lower bound)#\" )\n- .def(\"Upper\",\n- (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Upper,\n- R\"#(Upper bound)#\" )\n- .def(\"IsDeletable\",\n- (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsDeletable,\n- R\"#(myDeletable flag)#\" )\n- .def(\"IsAllocated\",\n- (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsAllocated,\n- R\"#(IsAllocated flag - for naming compatibility)#\" )\n- .def(\"SizeBytes\",\n- (Standard_Size (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::SizeBytes,\n- R\"#(Return buffer size in bytes.)#\" )\n- .def(\"Assign\",\n- (NCollection_AliasedArray & (NCollection_AliasedArray::*)( const NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Assign,\n- 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\"))\n- .def(\"Move\",\n- (NCollection_AliasedArray & (NCollection_AliasedArray::*)( NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Move,\n- R\"#(Move assignment. This array will borrow all the data from theOther. The moved object will keep pointer to the memory buffer and range, but it will not free the buffer on destruction.)#\" ,py::arg(\"theOther\"))\n- .def(\"Resize\",\n- (void (NCollection_AliasedArray::*)( Standard_Integer , Standard_Boolean ) ) &NCollection_AliasedArray::Resize,\n- 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(\"theLength\"), py::arg(\"theToCopyData\"))\n- .def(\"value\",\n- ( const Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) const) &NCollection_AliasedArray::value,\n- R\"#(Access raw bytes of specified element.)#\" ,py::arg(\"theIndex\"))\n- .def(\"changeValue\",\n- (Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) ) &NCollection_AliasedArray::changeValue,\n- R\"#(Access raw bytes of specified element.)#\" ,py::arg(\"theIndex\"))\n- .def(\"__len__\",[](const NCollection_AliasedArray &self)\n- { return self.Size(); }\n- )\n- .def(\"__bool__\",[](const NCollection_AliasedArray &self)\n- { return self.IsEmpty(); }\n- )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n- .def(\"Add\",\n- (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add,\n- R\"#(Adds a pair (theObj, theBnd) to my sequence)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n- .def(\"Fill\",\n- (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill,\n- 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.)#\" )\n- .def(\"Reset\",\n- (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset,\n- 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.)#\" )\n- .def(\"CheckTree\",\n- (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree,\n- R\"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#\" ,py::arg(\"theStream\"))\n- ;\n-};\n-\n-template \n void preregister_template_NCollection_Vec4(py::object &m, const char *name){\n 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.)#\");\n }\n \n template \n void register_template_NCollection_Vec4(py::object &m, const char *name){\n static_cast , shared_ptr> >>(m.attr(name))\n@@ -1358,114 +2068,14 @@\n .def(\"__truediv__\",\n (NCollection_Vec4 (NCollection_Vec4::*)( const Element_t ) ) &NCollection_Vec4::operator/,\n py::is_operator(),\n R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n ;\n };\n \n-template \n-void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_DefaultHasher(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- ;\n-};\n-\n-template >\n-void preregister_template_NCollection_Map(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template >\n-void register_template_NCollection_Map(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(py::init< const NCollection_Map & >() ,py::arg(\"theOther\") )\n- .def(\"cbegin\",\n- (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin,\n- R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n- .def(\"cend\",\n- (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend,\n- R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n- .def(\"Exchange\",\n- (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange,\n- R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n- .def(\"Assign\",\n- (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign,\n- R\"#(Assign. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n- .def(\"ReSize\",\n- (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize,\n- R\"#(ReSize)#\" ,py::arg(\"N\"))\n- .def(\"Add\",\n- (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add,\n- R\"#(Add)#\" ,py::arg(\"theKey\"))\n- .def(\"Added\",\n- ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added,\n- 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\"))\n- .def(\"Contains\",\n- (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains,\n- R\"#(Contains)#\" ,py::arg(\"theKey\"))\n- .def(\"Remove\",\n- (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove,\n- R\"#(Remove)#\" ,py::arg(\"K\"))\n- .def(\"Clear\",\n- (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear,\n- 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))\n- .def(\"Clear\",\n- (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear,\n- R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n- .def(\"Size\",\n- (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size,\n- R\"#(Size)#\" )\n- .def(\"IsEqual\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual,\n- R\"#(Returns true if two maps contains exactly the same keys)#\" ,py::arg(\"theOther\"))\n- .def(\"Contains\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains,\n- R\"#(Returns true if this map contains ALL keys of another map.)#\" ,py::arg(\"theOther\"))\n- .def(\"Union\",\n- (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union,\n- 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\"))\n- .def(\"Unite\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite,\n- 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\"))\n- .def(\"HasIntersection\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection,\n- R\"#(Returns true if this and theMap have common elements.)#\" ,py::arg(\"theMap\"))\n- .def(\"Intersection\",\n- (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection,\n- 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\"))\n- .def(\"Intersect\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect,\n- 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\"))\n- .def(\"Subtraction\",\n- (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction,\n- 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\"))\n- .def(\"Subtract\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract,\n- 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\"))\n- .def(\"Difference\",\n- (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference,\n- 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\"))\n- .def(\"Differ\",\n- (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ,\n- 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\"))\n- .def(\"__iter__\",[](const NCollection_Map &self)\n- { return py::make_iterator(self.cbegin(), self.cend()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_Map &self)\n- { return self.Size(); }\n- )\n- ;\n-};\n-\n template \n void preregister_template_NCollection_TListNode(py::object &m, const char *name){\n py::class_ , shared_ptr> >(m,name,R\"#(Purpose: Abstract list node class. Used by BaseList Remark: Internal class)#\");\n }\n \n template \n void register_template_NCollection_TListNode(py::object &m, const char *name){\n@@ -1479,538 +2089,22 @@\n R\"#(Variable value access)#\" )\n .def_static(\"delNode_s\",\n (void (*)( NCollection_ListNode * , handle & ) ) &NCollection_TListNode::delNode,\n R\"#(Static deleter to be passed to BaseList)#\" ,py::arg(\"theNode\"), py::arg(\"theAl\"))\n ;\n };\n \n-template \n-void preregister_template_NCollection_CellFilter(py::object &m, const char *name){\n- 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).)#\");\n-}\n-\n-template \n-void register_template_NCollection_CellFilter(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .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) )\n- .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) )\n- .def(\"Reset\",\n- (void (NCollection_CellFilter::*)( Standard_Real , const handle & ) ) &NCollection_CellFilter::Reset,\n- R\"#(Clear the data structures, set new cell size and allocator)#\" ,py::arg(\"theCellSize\"), py::arg(\"theAlloc\")=static_cast< const handle &>(0))\n- .def(\"Reset\",\n- (void (NCollection_CellFilter::*)( NCollection_Array1 & , const handle & ) ) &NCollection_CellFilter::Reset,\n- R\"#(Clear the data structures and set new cell sizes and allocator)#\" ,py::arg(\"theCellSize\"), py::arg(\"theAlloc\")=static_cast< const handle &>(0))\n- .def(\"Add\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add,\n- R\"#(Adds a target object for further search at a point (into only one cell))#\" ,py::arg(\"theTarget\"), py::arg(\"thePnt\"))\n- .def(\"Add\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Add,\n- 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\"))\n- .def(\"Remove\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove,\n- 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\"))\n- .def(\"Remove\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Target & , const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & ) ) &NCollection_CellFilter::Remove,\n- 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\"))\n- .def(\"Inspect\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect,\n- R\"#(Inspect all targets in the cell corresponding to the given point)#\" ,py::arg(\"thePnt\"), py::arg(\"theInspector\"))\n- .def(\"Inspect\",\n- (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect,\n- 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\"))\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_TListIterator(py::object &m, const char *name){\n- 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)#\");\n-}\n-\n-template \n-void register_template_NCollection_TListIterator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const NCollection_BaseList & >() ,py::arg(\"theList\") )\n- .def(\"More\",\n- (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More,\n- R\"#(Check end)#\" )\n- .def(\"Next\",\n- (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next,\n- R\"#(Make step)#\" )\n- .def(\"Value\",\n- ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value,\n- R\"#(Constant Value access)#\" )\n- .def(\"Value\",\n- (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value,\n- R\"#(Non-const Value access)#\" )\n- .def(\"ChangeValue\",\n- (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue,\n- R\"#(Non-const Value access)#\" )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_EBTree(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_EBTree(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const handle & >() ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(\"Add\",\n- (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_EBTree::Add,\n- R\"#(Updates the tree with a new object and its bounding box. Extends the functionality of the parent method by maintaining the map myObjNodeMap. Redefined virtual method.)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n- .def(\"Remove\",\n- (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & ) ) &NCollection_EBTree::Remove,\n- R\"#(Removes the given object and updates the tree.)#\" ,py::arg(\"theObj\"))\n- .def(\"Contains\",\n- (Standard_Boolean (NCollection_EBTree::*)( const TheObjType & ) const) &NCollection_EBTree::Contains,\n- R\"#(Returns True if the tree contains the object.)#\" ,py::arg(\"theObj\"))\n- .def(\"FindNode\",\n- ( const typename NCollection_EBTree::TreeNode & (NCollection_EBTree::*)( const TheObjType & ) const) &NCollection_EBTree::FindNode,\n- R\"#(Returns The leaf node containing the object.)#\" ,py::arg(\"theObj\"))\n- .def(\"Clear\",\n- (void (NCollection_EBTree::*)( const handle & ) ) &NCollection_EBTree::Clear,\n- R\"#(Clears the contents of the tree. Redefined virtual method)#\" ,py::arg(\"aNewAlloc\")=static_cast< const handle &>(0L))\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_OccAllocator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle & >() ,py::arg(\"theAlloc\") )\n- .def(py::init< const NCollection_OccAllocator & >() ,py::arg(\"theOther\") )\n- .def(\"SetAllocator\",\n- (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator,\n- R\"#()#\" ,py::arg(\"theAlloc\"))\n- .def(\"Allocator\",\n- ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator,\n- R\"#()#\" )\n- .def(\"address\",\n- (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address,\n- R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n- .def(\"address\",\n- (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address,\n- R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n- .def(\"max_size\",\n- (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size,\n- R\"#(Estimate maximum array size)#\" )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_Handle(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type.)#\");\n-}\n-\n-template \n-void register_template_NCollection_Handle(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< T * >() ,py::arg(\"theObject\") )\n- .def(\"get\",\n- (T * (NCollection_Handle::*)() ) &NCollection_Handle::get,\n- R\"#(Cast handle to contained type)#\" )\n- .def(\"get\",\n- ( const T * (NCollection_Handle::*)() const) &NCollection_Handle::get,\n- R\"#(Cast handle to contained type)#\" )\n- .def_static(\"DownCast_s\",\n- (NCollection_Handle (*)( const handle & ) ) &NCollection_Handle::DownCast,\n- R\"#(Downcast arbitrary Handle to the argument type if contained object is Handle for this type; returns null otherwise)#\" ,py::arg(\"theOther\"))\n- .def(\"__mul__\",\n- (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*,\n- py::is_operator(),\n- R\"#(Cast handle to contained type)#\" )\n- .def(\"__rmul__\",\n- (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*,\n- py::is_operator(),\n- R\"#(Cast handle to contained type)#\" )\n- .def(\"__mul__\",\n- ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*,\n- py::is_operator(),\n- R\"#(Cast handle to contained type)#\" )\n- .def(\"__rmul__\",\n- ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*,\n- py::is_operator(),\n- R\"#(Cast handle to contained type)#\" )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_Iterator(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_Iterator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const NCollection_Iterator & >() ,py::arg(\"theOther\") )\n- .def(py::init< const Container & >() ,py::arg(\"theList\") )\n- .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg(\"theList\"), py::arg(\"theOther\") )\n- .def(\"Init\",\n- (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init,\n- R\"#()#\" ,py::arg(\"theList\"))\n- .def(\"Init\",\n- (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init,\n- R\"#()#\" ,py::arg(\"theList\"))\n- .def(\"More\",\n- (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More,\n- R\"#()#\" )\n- .def(\"Initialize\",\n- (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize,\n- R\"#()#\" ,py::arg(\"theList\"))\n- .def(\"Initialize\",\n- (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize,\n- R\"#()#\" ,py::arg(\"theList\"))\n- .def(\"ValueIter\",\n- ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter,\n- R\"#()#\" )\n- .def(\"ChangeValueIter\",\n- (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter,\n- R\"#()#\" )\n- .def(\"EndIter\",\n- ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter,\n- R\"#()#\" )\n- .def(\"ChangeEndIter\",\n- (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter,\n- R\"#()#\" )\n- .def(\"Next\",\n- (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next,\n- R\"#()#\" )\n- .def(\"Value\",\n- ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value,\n- R\"#()#\" )\n- .def(\"ChangeValue\",\n- ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue,\n- R\"#()#\" )\n- ;\n-};\n-\n-template >\n-void preregister_template_NCollection_IndexedMap(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template >\n-void register_template_NCollection_IndexedMap(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(py::init< const NCollection_IndexedMap & >() ,py::arg(\"theOther\") )\n- .def(\"cbegin\",\n- (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cbegin,\n- R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n- .def(\"cend\",\n- (typename NCollection_IndexedMap::const_iterator (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::cend,\n- R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n- .def(\"Exchange\",\n- (void (NCollection_IndexedMap::*)( NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Exchange,\n- R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n- .def(\"Assign\",\n- (NCollection_IndexedMap & (NCollection_IndexedMap::*)( const NCollection_IndexedMap & ) ) &NCollection_IndexedMap::Assign,\n- R\"#(Assign. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n- .def(\"ReSize\",\n- (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::ReSize,\n- R\"#(ReSize)#\" ,py::arg(\"theExtent\"))\n- .def(\"Add\",\n- (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::Add,\n- R\"#(Add)#\" ,py::arg(\"theKey1\"))\n- .def(\"Contains\",\n- (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::Contains,\n- R\"#(Contains)#\" ,py::arg(\"theKey1\"))\n- .def(\"Substitute\",\n- (void (NCollection_IndexedMap::*)( const Standard_Integer , const TheKeyType & ) ) &NCollection_IndexedMap::Substitute,\n- R\"#(Substitute)#\" ,py::arg(\"theIndex\"), py::arg(\"theKey1\"))\n- .def(\"Swap\",\n- (void (NCollection_IndexedMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedMap::Swap,\n- R\"#(Swaps two elements with the given indices.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n- .def(\"RemoveLast\",\n- (void (NCollection_IndexedMap::*)() ) &NCollection_IndexedMap::RemoveLast,\n- R\"#(RemoveLast)#\" )\n- .def(\"RemoveFromIndex\",\n- (void (NCollection_IndexedMap::*)( const Standard_Integer ) ) &NCollection_IndexedMap::RemoveFromIndex,\n- R\"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theIndex\"))\n- .def(\"RemoveKey\",\n- (Standard_Boolean (NCollection_IndexedMap::*)( const TheKeyType & ) ) &NCollection_IndexedMap::RemoveKey,\n- R\"#(Remove the given key. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theKey1\"))\n- .def(\"FindKey\",\n- ( const TheKeyType & (NCollection_IndexedMap::*)( const Standard_Integer ) const) &NCollection_IndexedMap::FindKey,\n- R\"#(FindKey)#\" ,py::arg(\"theIndex\"))\n- .def(\"FindIndex\",\n- (Standard_Integer (NCollection_IndexedMap::*)( const TheKeyType & ) const) &NCollection_IndexedMap::FindIndex,\n- R\"#(FindIndex)#\" ,py::arg(\"theKey1\"))\n- .def(\"Clear\",\n- (void (NCollection_IndexedMap::*)( const Standard_Boolean ) ) &NCollection_IndexedMap::Clear,\n- 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))\n- .def(\"Clear\",\n- (void (NCollection_IndexedMap::*)( const handle & ) ) &NCollection_IndexedMap::Clear,\n- R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n- .def(\"Size\",\n- (Standard_Integer (NCollection_IndexedMap::*)() const) &NCollection_IndexedMap::Size,\n- R\"#(Size)#\" )\n- .def(\"__iter__\",[](const NCollection_IndexedMap &self)\n- { return py::make_iterator(self.cbegin(), self.cend()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_IndexedMap &self)\n- { return self.Size(); }\n- )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_Sequence(py::object &m, const char *name){\n- 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)#\");\n-}\n-\n-template \n-void register_template_NCollection_Sequence(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n- .def(py::init< const NCollection_Sequence & >() ,py::arg(\"theOther\") )\n- .def(\"begin\",\n- (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin,\n- R\"#(Returns an iterator pointing to the first element in the sequence.)#\" )\n- .def(\"end\",\n- (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end,\n- R\"#(Returns an iterator referring to the past-the-end element in the sequence.)#\" )\n- .def(\"cbegin\",\n- (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin,\n- R\"#(Returns a const iterator pointing to the first element in the sequence.)#\" )\n- .def(\"cend\",\n- (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend,\n- R\"#(Returns a const iterator referring to the past-the-end element in the sequence.)#\" )\n- .def(\"Size\",\n- (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size,\n- R\"#(Number of items)#\" )\n- .def(\"Length\",\n- (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length,\n- R\"#(Number of items)#\" )\n- .def(\"Lower\",\n- (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower,\n- R\"#(Method for consistency with other collections.)#\" )\n- .def(\"Upper\",\n- (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper,\n- R\"#(Method for consistency with other collections.)#\" )\n- .def(\"IsEmpty\",\n- (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty,\n- R\"#(Empty query)#\" )\n- .def(\"Reverse\",\n- (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse,\n- R\"#(Reverse sequence)#\" )\n- .def(\"Exchange\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange,\n- R\"#(Exchange two members)#\" ,py::arg(\"I\"), py::arg(\"J\"))\n- .def(\"Clear\",\n- (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear,\n- R\"#(Clear the items out, take a new allocator if non null)#\" ,py::arg(\"theAllocator\")=static_cast< const handle &>(0L))\n- .def(\"Assign\",\n- (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign,\n- R\"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n- .def(\"Remove\",\n- (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove,\n- R\"#(Remove one item)#\" ,py::arg(\"theIndex\"))\n- .def(\"Remove\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove,\n- R\"#(Remove range of items)#\" ,py::arg(\"theFromIndex\"), py::arg(\"theToIndex\"))\n- .def(\"Append\",\n- (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append,\n- R\"#(Append one item)#\" ,py::arg(\"theItem\"))\n- .def(\"Append\",\n- (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append,\n- R\"#(Append another sequence (making it empty))#\" ,py::arg(\"theSeq\"))\n- .def(\"Prepend\",\n- (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend,\n- R\"#(Prepend one item)#\" ,py::arg(\"theItem\"))\n- .def(\"Prepend\",\n- (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend,\n- R\"#(Prepend another sequence (making it empty))#\" ,py::arg(\"theSeq\"))\n- .def(\"InsertBefore\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore,\n- R\"#(InsertBefore theIndex theItem)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n- .def(\"InsertBefore\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore,\n- R\"#(InsertBefore theIndex another sequence (making it empty))#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n- .def(\"InsertAfter\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter,\n- R\"#(InsertAfter theIndex another sequence (making it empty))#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n- .def(\"InsertAfter\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter,\n- R\"#(InsertAfter theIndex theItem)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n- .def(\"Split\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split,\n- R\"#(Split in two sequences)#\" ,py::arg(\"theIndex\"), py::arg(\"theSeq\"))\n- .def(\"First\",\n- ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First,\n- R\"#(First item access)#\" )\n- .def(\"ChangeFirst\",\n- (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst,\n- R\"#(First item access)#\" )\n- .def(\"Last\",\n- ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last,\n- R\"#(Last item access)#\" )\n- .def(\"ChangeLast\",\n- (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast,\n- R\"#(Last item access)#\" )\n- .def(\"Value\",\n- ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value,\n- R\"#(Constant item access by theIndex)#\" ,py::arg(\"theIndex\"))\n- .def(\"ChangeValue\",\n- (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue,\n- R\"#(Variable item access by theIndex)#\" ,py::arg(\"theIndex\"))\n- .def(\"SetValue\",\n- (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue,\n- R\"#(Set item value by theIndex)#\" ,py::arg(\"theIndex\"), py::arg(\"theItem\"))\n- .def_static(\"delNode_s\",\n- (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode,\n- R\"#(Static deleter to be passed to BaseSequence)#\" ,py::arg(\"theNode\"), py::arg(\"theAl\"))\n- .def(\"__iter__\",[](const NCollection_Sequence &self)\n- { return py::make_iterator(self.begin(), self.end()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_Sequence &self)\n- { return self.Size(); }\n- )\n- .def(\"__bool__\",[](const NCollection_Sequence &self)\n- { return self.IsEmpty(); }\n- )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_UBTree(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#\");\n-}\n-\n-template \n-void register_template_NCollection_UBTree(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle & >() ,py::arg(\"theAllocator\") )\n- .def(\"Add\",\n- (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add,\n- R\"#(Update the tree with a new object and its bounding box.)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n- .def(\"Clear\",\n- (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear,\n- R\"#(Clears the contents of the tree.)#\" ,py::arg(\"aNewAlloc\")=static_cast< const handle &>(0L))\n- .def(\"IsEmpty\",\n- (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty,\n- R\"#()#\" )\n- .def(\"Allocator\",\n- ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator,\n- R\"#(Recommended to be used only in sub-classes.)#\" )\n- .def(\"__bool__\",[](const NCollection_UBTree &self)\n- { return self.IsEmpty(); }\n- )\n- ;\n-};\n-\n-template \n-void preregister_template_NCollection_Allocator(py::object &m, const char *name){\n- 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.)#\");\n-}\n-\n-template \n-void register_template_NCollection_Allocator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const handle & >() ,py::arg(\"arg\") )\n- .def(\"address\",\n- (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address,\n- R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n- .def(\"address\",\n- (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address,\n- R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n- .def(\"destroy\",\n- (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy,\n- R\"#(Destroys the object. Uses the object destructor.)#\" ,py::arg(\"thePnt\"))\n- ;\n-};\n-\n-template >\n-void preregister_template_NCollection_DataMap(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template >\n-void register_template_NCollection_DataMap(py::object &m, const char *name){\n- static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n- .def(py::init< >() )\n- .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n- .def(py::init< const NCollection_DataMap & >() ,py::arg(\"theOther\") )\n- .def(\"begin\",\n- (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::begin,\n- R\"#(Returns an iterator pointing to the first element in the map.)#\" )\n- .def(\"end\",\n- (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::end,\n- R\"#(Returns an iterator referring to the past-the-end element in the map.)#\" )\n- .def(\"cbegin\",\n- (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cbegin,\n- R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n- .def(\"cend\",\n- (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cend,\n- R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n- .def(\"Exchange\",\n- (void (NCollection_DataMap::*)( NCollection_DataMap & ) ) &NCollection_DataMap::Exchange,\n- R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n- .def(\"Assign\",\n- (NCollection_DataMap & (NCollection_DataMap::*)( const NCollection_DataMap & ) ) &NCollection_DataMap::Assign,\n- R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n- .def(\"ReSize\",\n- (void (NCollection_DataMap::*)( const Standard_Integer ) ) &NCollection_DataMap::ReSize,\n- R\"#(ReSize)#\" ,py::arg(\"N\"))\n- .def(\"Bind\",\n- (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bind,\n- R\"#(Bind binds Item to Key in map.)#\" ,py::arg(\"theKey\"), py::arg(\"theItem\"))\n- .def(\"Bound\",\n- (TheItemType * (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bound,\n- R\"#(Bound binds Item to Key in map.)#\" ,py::arg(\"theKey\"), py::arg(\"theItem\"))\n- .def(\"IsBound\",\n- (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::IsBound,\n- R\"#(IsBound)#\" ,py::arg(\"theKey\"))\n- .def(\"UnBind\",\n- (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::UnBind,\n- R\"#(UnBind removes Item Key pair from map)#\" ,py::arg(\"theKey\"))\n- .def(\"Seek\",\n- ( const TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Seek,\n- R\"#(Seek returns pointer to Item by Key. Returns NULL is Key was not bound.)#\" ,py::arg(\"theKey\"))\n- .def(\"Find\",\n- ( const TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Find,\n- R\"#(Find returns the Item for Key. Raises if Key was not bound)#\" ,py::arg(\"theKey\"))\n- .def(\"Find\",\n- (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_DataMap::Find,\n- R\"#(Find Item for key with copying.)#\" ,py::arg(\"theKey\"), py::arg(\"theValue\"))\n- .def(\"ChangeSeek\",\n- (TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeSeek,\n- R\"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL is Key was not bound.)#\" ,py::arg(\"theKey\"))\n- .def(\"ChangeFind\",\n- (TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeFind,\n- R\"#(ChangeFind returns mofifiable Item by Key. Raises if Key was not bound)#\" ,py::arg(\"theKey\"))\n- .def(\"Clear\",\n- (void (NCollection_DataMap::*)( const Standard_Boolean ) ) &NCollection_DataMap::Clear,\n- 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))\n- .def(\"Clear\",\n- (void (NCollection_DataMap::*)( const handle & ) ) &NCollection_DataMap::Clear,\n- R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n- .def(\"Size\",\n- (Standard_Integer (NCollection_DataMap::*)() const) &NCollection_DataMap::Size,\n- R\"#(Size)#\" )\n- .def(\"__iter__\",[](const NCollection_DataMap &self)\n- { return py::make_iterator(self.begin(), self.end()); },\n- py::keep_alive<0, 1>())\n- .def(\"__len__\",[](const NCollection_DataMap &self)\n- { return self.Size(); }\n- )\n+template \n+void register_template_NCollection_DefaultHasher(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n void preregister_template_NCollection_Array2(py::object &m, const char *name){\n 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.)#\");\n }\n@@ -2079,606 +2173,512 @@\n R\"#()#\" ,py::arg(\"theRowLower\"), py::arg(\"theRowUpper\"), py::arg(\"theColLower\"), py::arg(\"theColUpper\"))\n .def(\"__len__\",[](const NCollection_Array2 &self)\n { return self.Size(); }\n )\n ;\n };\n \n-template \n-void preregister_template_NCollection_UtfIterator(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Template class for Unicode strings support.)#\");\n+template \n+void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Class NCollection_DynamicArray (dynamic array of objects))#\");\n }\n \n-template \n-void register_template_NCollection_UtfIterator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Type * >() ,py::arg(\"theString\") )\n- .def(\"Init\",\n- (void (NCollection_UtfIterator::*)( const Type * ) ) &NCollection_UtfIterator::Init,\n- R\"#(Initialize iterator within specified NULL-terminated string.)#\" ,py::arg(\"theString\"))\n- .def(\"IsValid\",\n- (bool (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::IsValid,\n- R\"#(Return true if Unicode symbol is within valid range.)#\" )\n- .def(\"BufferHere\",\n- ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferHere,\n- R\"#(Buffer-fetching getter.)#\" )\n- .def(\"ChangeBufferHere\",\n- (Type * (NCollection_UtfIterator::*)() ) &NCollection_UtfIterator::ChangeBufferHere,\n- R\"#(Buffer-fetching getter. Dangerous! Iterator should be reinitialized on buffer change.)#\" )\n- .def(\"BufferNext\",\n- ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferNext,\n- R\"#(Buffer-fetching getter.)#\" )\n- .def(\"Index\",\n- (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::Index,\n- R\"#(Returns the index displacement from iterator initialization (first symbol has index 0))#\" )\n- .def(\"AdvanceBytesUtf8\",\n- (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf8,\n- R\"#(Returns the advance in bytes to store current symbol in UTF-8. 0 means an invalid symbol; 1-4 bytes are valid range.)#\" )\n- .def(\"AdvanceBytesUtf16\",\n- (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf16,\n- R\"#(Returns the advance in bytes to store current symbol in UTF-16. 0 means an invalid symbol; 2 bytes is a general case; 4 bytes for surrogate pair.)#\" )\n- .def(\"AdvanceCodeUnitsUtf16\",\n- (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceCodeUnitsUtf16,\n- R\"#(Returns the advance in bytes to store current symbol in UTF-16. 0 means an invalid symbol; 1 16-bit code unit is a general case; 2 16-bit code units for surrogate pair.)#\" )\n- .def(\"AdvanceBytesUtf32\",\n- (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf32,\n- R\"#(Returns the advance in bytes to store current symbol in UTF-32. Always 4 bytes (method for consistency).)#\" )\n- .def(\"GetUtf8\",\n- (Standard_Utf8Char * (NCollection_UtfIterator::*)( Standard_Utf8Char * ) const) &NCollection_UtfIterator::GetUtf8,\n- R\"#(Fill the UTF-8 buffer within current Unicode symbol. Use method AdvanceUtf8() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n- .def(\"GetUtf8\",\n- (Standard_Utf8UChar * (NCollection_UtfIterator::*)( Standard_Utf8UChar * ) const) &NCollection_UtfIterator::GetUtf8,\n- R\"#()#\" ,py::arg(\"theBuffer\"))\n- .def(\"GetUtf16\",\n- (Standard_Utf16Char * (NCollection_UtfIterator::*)( Standard_Utf16Char * ) const) &NCollection_UtfIterator::GetUtf16,\n- R\"#(Fill the UTF-16 buffer within current Unicode symbol. Use method AdvanceUtf16() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n- .def(\"GetUtf32\",\n- (Standard_Utf32Char * (NCollection_UtfIterator::*)( Standard_Utf32Char * ) const) &NCollection_UtfIterator::GetUtf32,\n- R\"#(Fill the UTF-32 buffer within current Unicode symbol. Use method AdvanceUtf32() to allocate buffer with enough size.)#\" ,py::arg(\"theBuffer\"))\n- .def(\"__mul__\",\n- (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*,\n- py::is_operator(),\n- R\"#(Dereference operator.)#\" )\n- .def(\"__rmul__\",\n- (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*,\n- py::is_operator(),\n- R\"#(Dereference operator.)#\" )\n+template \n+void register_template_NCollection_DynamicArray(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Standard_Integer >() ,py::arg(\"theIncrement\")=static_cast< const Standard_Integer>(256) )\n+ .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theIncrement\"), py::arg(\"theAllocator\") )\n+ .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg(\"theIncrement\"), py::arg(\"theAllocator\") )\n+ .def(py::init< const NCollection_DynamicArray & >() ,py::arg(\"theOther\") )\n+ .def(\"begin\",\n+ (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin,\n+ R\"#()#\" )\n+ .def(\"begin\",\n+ (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin,\n+ R\"#()#\" )\n+ .def(\"cbegin\",\n+ (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin,\n+ R\"#()#\" )\n+ .def(\"end\",\n+ (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end,\n+ R\"#()#\" )\n+ .def(\"end\",\n+ (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end,\n+ R\"#()#\" )\n+ .def(\"cend\",\n+ (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend,\n+ R\"#()#\" )\n+ .def(\"Length\",\n+ (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length,\n+ R\"#(Total number of items)#\" )\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size,\n+ R\"#(Total number of items in the vector)#\" )\n+ .def(\"Lower\",\n+ (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower,\n+ R\"#(Method for consistency with other collections.)#\" )\n+ .def(\"Upper\",\n+ (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper,\n+ R\"#(Method for consistency with other collections.)#\" )\n+ .def(\"IsEmpty\",\n+ (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty,\n+ R\"#(Empty query)#\" )\n+ .def(\"Assign\",\n+ (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign,\n+ R\"#(Assignment to the collection of the same type)#\" ,py::arg(\"theOther\"), py::arg(\"theOwnAllocator\")=static_cast< const bool>(true))\n+ .def(\"Append\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append,\n+ R\"#(Append)#\" ,py::arg(\"theValue\"))\n+ .def(\"EraseLast\",\n+ (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast,\n+ R\"#()#\" )\n+ .def(\"Appended\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended,\n+ R\"#(Appends an empty value and returns the reference to it)#\" )\n+ .def(\"Value\",\n+ (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value,\n+ R\"#()#\" ,py::arg(\"theIndex\"))\n+ .def(\"First\",\n+ (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First,\n+ R\"#(Returns first element)#\" )\n+ .def(\"ChangeFirst\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst,\n+ R\"#(Returns first element)#\" )\n+ .def(\"Last\",\n+ (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last,\n+ R\"#(Returns last element)#\" )\n+ .def(\"ChangeLast\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast,\n+ R\"#(Returns last element)#\" )\n+ .def(\"ChangeValue\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue,\n+ R\"#()#\" ,py::arg(\"theIndex\"))\n+ .def(\"SetValue\",\n+ (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue,\n+ R\"#(SetValue () - set or append a value)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n+ .def(\"Clear\",\n+ (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear,\n+ R\"#()#\" ,py::arg(\"theReleaseMemory\")=static_cast< const bool>(false))\n+ .def(\"SetIncrement\",\n+ (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement,\n+ R\"#()#\" ,py::arg(\"theIncrement\"))\n+ .def(\"__iter__\",[](const NCollection_DynamicArray &self)\n+ { return py::make_iterator(self.begin(), self.end()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_DynamicArray &self)\n+ { return self.Size(); }\n+ )\n+ .def(\"__bool__\",[](const NCollection_DynamicArray &self)\n+ { return self.IsEmpty(); }\n+ )\n ;\n };\n \n-template \n-void preregister_template_NCollection_UtfString(py::object &m, const char *name){\n- 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.)#\");\n+template >\n+void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){\n+ 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.)#\");\n }\n \n-template \n-void register_template_NCollection_UtfString(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template >\n+void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name))\n .def(py::init< >() )\n- .def(py::init< const NCollection_UtfString & >() ,py::arg(\"theCopy\") )\n- .def(py::init< const char *, const Standard_Integer >() ,py::arg(\"theCopyUtf8\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n- .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg(\"theCopyUtf16\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n- .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg(\"theCopyUtf32\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n- .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg(\"theCopyUtfWide\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1) )\n- .def(\"Iterator\",\n- (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator,\n- R\"#()#\" )\n- .def(\"Size\",\n- (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size,\n- R\"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#\" )\n- .def(\"Length\",\n- (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length,\n- R\"#(Returns the length of the string in Unicode symbols)#\" )\n- .def(\"GetChar\",\n- (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar,\n- R\"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#\" ,py::arg(\"theCharIndex\"))\n- .def(\"GetCharBuffer\",\n- ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer,\n- R\"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#\" ,py::arg(\"theCharIndex\"))\n- .def(\"FromLocale\",\n- (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale,\n- R\"#(Copy from multibyte string in current system locale.)#\" ,py::arg(\"theString\"), py::arg(\"theLength\")=static_cast< const Standard_Integer>(- 1))\n- .def(\"IsEqual\",\n- (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual,\n- R\"#(Compares this string with another one.)#\" ,py::arg(\"theCompare\"))\n- .def(\"SubString\",\n- (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString,\n- R\"#(Returns the substring.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"))\n- .def(\"ToCString\",\n- ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString,\n- R\"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#\" )\n- .def(\"ToUtf8\",\n- ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8,\n- R\"#(Returns copy in UTF-8 format)#\" )\n- .def(\"ToUtf16\",\n- ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16,\n- R\"#(Returns copy in UTF-16 format)#\" )\n- .def(\"ToUtf32\",\n- ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32,\n- R\"#(Returns copy in UTF-32 format)#\" )\n- .def(\"ToUtfWide\",\n- ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide,\n- R\"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#\" )\n- .def(\"ToLocale\",\n- (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale,\n- R\"#(Converts the string into string in the current system locale.)#\" ,py::arg(\"theBuffer\"), py::arg(\"theSizeBytes\"))\n- .def(\"IsEmpty\",\n- (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty,\n- R\"#(Returns true if string is empty)#\" )\n- .def(\"Clear\",\n- (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear,\n- R\"#(Zero string.)#\" )\n+ .def(py::init< const Standard_Integer, const handle & >() ,py::arg(\"theNbBuckets\"), py::arg(\"theAllocator\")=static_cast< const handle &>(0L) )\n+ .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg(\"theOther\") )\n+ .def(\"begin\",\n+ (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin,\n+ R\"#(Returns an iterator pointing to the first element in the map.)#\" )\n+ .def(\"end\",\n+ (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end,\n+ R\"#(Returns an iterator referring to the past-the-end element in the map.)#\" )\n+ .def(\"cbegin\",\n+ (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin,\n+ R\"#(Returns a const iterator pointing to the first element in the map.)#\" )\n+ .def(\"cend\",\n+ (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend,\n+ R\"#(Returns a const iterator referring to the past-the-end element in the map.)#\" )\n+ .def(\"Exchange\",\n+ (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange,\n+ R\"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#\" ,py::arg(\"theOther\"))\n .def(\"Assign\",\n- ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign,\n- R\"#(Copy from another string.)#\" ,py::arg(\"theOther\"))\n+ (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign,\n+ R\"#(Assignment. This method does not change the internal allocator.)#\" ,py::arg(\"theOther\"))\n+ .def(\"ReSize\",\n+ (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize,\n+ R\"#(ReSize)#\" ,py::arg(\"N\"))\n+ .def(\"Add\",\n+ (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add,\n+ R\"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#\" ,py::arg(\"theKey1\"), py::arg(\"theItem\"))\n+ .def(\"Contains\",\n+ (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains,\n+ R\"#(Contains)#\" ,py::arg(\"theKey1\"))\n+ .def(\"Substitute\",\n+ (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute,\n+ R\"#(Substitute)#\" ,py::arg(\"theIndex\"), py::arg(\"theKey1\"), py::arg(\"theItem\"))\n .def(\"Swap\",\n- (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap,\n- R\"#(Exchange the data of two strings (without reallocating memory).)#\" ,py::arg(\"theOther\"))\n- .def(\"__iadd__\",\n- (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=,\n- py::is_operator(),\n- R\"#(Join strings.)#\" ,py::arg(\"theAppend\"))\n- .def(\"__len__\",[](const NCollection_UtfString &self)\n+ (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap,\n+ R\"#(Swaps two elements with the given indices.)#\" ,py::arg(\"theIndex1\"), py::arg(\"theIndex2\"))\n+ .def(\"RemoveLast\",\n+ (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast,\n+ R\"#(RemoveLast)#\" )\n+ .def(\"RemoveFromIndex\",\n+ (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex,\n+ R\"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theIndex\"))\n+ .def(\"RemoveKey\",\n+ (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey,\n+ R\"#(Remove the given key. Caution! The index of the last key can be changed.)#\" ,py::arg(\"theKey1\"))\n+ .def(\"FindKey\",\n+ ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey,\n+ R\"#(FindKey)#\" ,py::arg(\"theIndex\"))\n+ .def(\"FindFromIndex\",\n+ ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex,\n+ R\"#(FindFromIndex)#\" ,py::arg(\"theIndex\"))\n+ .def(\"ChangeFromIndex\",\n+ (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex,\n+ R\"#(ChangeFromIndex)#\" ,py::arg(\"theIndex\"))\n+ .def(\"FindIndex\",\n+ (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex,\n+ R\"#(FindIndex)#\" ,py::arg(\"theKey1\"))\n+ .def(\"FindFromKey\",\n+ ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey,\n+ R\"#(FindFromKey)#\" ,py::arg(\"theKey1\"))\n+ .def(\"ChangeFromKey\",\n+ (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey,\n+ R\"#(ChangeFromKey)#\" ,py::arg(\"theKey1\"))\n+ .def(\"Seek\",\n+ ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek,\n+ R\"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#\" ,py::arg(\"theKey1\"))\n+ .def(\"ChangeSeek\",\n+ (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek,\n+ R\"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#\" ,py::arg(\"theKey1\"))\n+ .def(\"FindFromKey\",\n+ (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey,\n+ R\"#(Find value for key with copying.)#\" ,py::arg(\"theKey1\"), py::arg(\"theValue\"))\n+ .def(\"Clear\",\n+ (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear,\n+ 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))\n+ .def(\"Clear\",\n+ (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear,\n+ R\"#(Clear data and reset allocator)#\" ,py::arg(\"theAllocator\"))\n+ .def(\"Size\",\n+ (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size,\n+ R\"#(Size)#\" )\n+ .def(\"__iter__\",[](const NCollection_IndexedDataMap &self)\n+ { return py::make_iterator(self.begin(), self.end()); },\n+ py::keep_alive<0, 1>())\n+ .def(\"__len__\",[](const NCollection_IndexedDataMap &self)\n { return self.Size(); }\n )\n- .def(\"__bool__\",[](const NCollection_UtfString &self)\n- { return self.IsEmpty(); }\n- )\n ;\n };\n \n-template \n-void preregister_template_NCollection_StlIterator(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_NCollection_Handle(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type.)#\");\n }\n \n-template \n-void register_template_NCollection_StlIterator(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_NCollection_Handle(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(py::init< const BaseIterator & >() ,py::arg(\"theIterator\") )\n- .def(py::init< const NCollection_StlIterator & >() ,py::arg(\"theIterator\") )\n- .def(\"Iterator\",\n- ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator,\n- R\"#(Access to NCollection iterator instance)#\" )\n- .def(\"ChangeIterator\",\n- (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator,\n- R\"#(Access to NCollection iterator instance)#\" )\n+ .def(py::init< T * >() ,py::arg(\"theObject\") )\n+ .def(\"get\",\n+ (T * (NCollection_Handle::*)() ) &NCollection_Handle::get,\n+ R\"#(Cast handle to contained type)#\" )\n+ .def(\"get\",\n+ ( const T * (NCollection_Handle::*)() const) &NCollection_Handle::get,\n+ R\"#(Cast handle to contained type)#\" )\n+ .def_static(\"DownCast_s\",\n+ (NCollection_Handle (*)( const handle & ) ) &NCollection_Handle::DownCast,\n+ R\"#(Downcast arbitrary Handle to the argument type if contained object is Handle for this type; returns null otherwise)#\" ,py::arg(\"theOther\"))\n .def(\"__mul__\",\n- (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*,\n+ (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*,\n py::is_operator(),\n- R\"#(Get reference to current item)#\" )\n+ R\"#(Cast handle to contained type)#\" )\n .def(\"__rmul__\",\n- (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*,\n- py::is_operator(),\n- R\"#(Get reference to current item)#\" )\n- .def(\"__iadd__\",\n- (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=,\n- py::is_operator(),\n- R\"#(Move forward)#\" ,py::arg(\"theOffset\"))\n- .def(\"__add__\",\n- (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+,\n- py::is_operator(),\n- R\"#(Addition)#\" ,py::arg(\"theOffset\"))\n- .def(\"__isub__\",\n- (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=,\n+ (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*,\n py::is_operator(),\n- R\"#(Move backward)#\" ,py::arg(\"theOffset\"))\n- .def(\"__sub__\",\n- (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-,\n+ R\"#(Cast handle to contained type)#\" )\n+ .def(\"__mul__\",\n+ ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*,\n py::is_operator(),\n- R\"#(Decrease)#\" ,py::arg(\"theOffset\"))\n- .def(\"__sub__\",\n- (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-,\n+ R\"#(Cast handle to contained type)#\" )\n+ .def(\"__rmul__\",\n+ ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*,\n py::is_operator(),\n- R\"#(Difference)#\" ,py::arg(\"theOther\"))\n+ R\"#(Cast handle to contained type)#\" )\n ;\n };\n \n template \n-void preregister_template_NCollection_Mat3(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#\");\n+void preregister_template_NCollection_Vec2(py::object &m, const char *name){\n+ 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.).)#\");\n }\n \n template \n-void register_template_NCollection_Mat3(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_NCollection_Vec2(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n .def(py::init< >() )\n- .def(\"GetValue\",\n- (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue,\n- R\"#(Get element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n- .def(\"ChangeValue\",\n- (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue,\n- R\"#(Access element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n- .def(\"SetValue\",\n- (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue,\n- R\"#(Set value for the element specified by row and columns.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"), py::arg(\"theValue\"))\n- .def(\"GetRow\",\n- (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow,\n- R\"#(Return the row.)#\" ,py::arg(\"theRow\"))\n- .def(\"SetRow\",\n- (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow,\n- R\"#(Change first 3 row values by the passed vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n- .def(\"GetColumn\",\n- (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn,\n- R\"#(Return the column.)#\" ,py::arg(\"theCol\"))\n- .def(\"SetColumn\",\n- (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn,\n- R\"#(Change first 3 column values by the passed vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n- .def(\"GetDiagonal\",\n- (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal,\n- R\"#(Get vector of diagonal elements.)#\" )\n- .def(\"SetDiagonal\",\n- (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal,\n- R\"#(Change first 3 elements of the diagonal matrix.)#\" ,py::arg(\"theVec\"))\n- .def(\"InitZero\",\n- (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero,\n- R\"#(Initialize the zero matrix.)#\" )\n- .def(\"IsZero\",\n- (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero,\n- R\"#(Checks the matrix for zero (without tolerance).)#\" )\n- .def(\"InitIdentity\",\n- (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity,\n- R\"#(Initialize the identity matrix.)#\" )\n- .def(\"IsIdentity\",\n- (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity,\n- R\"#(Checks the matrix for identity (without tolerance).)#\" )\n+ .def(py::init< const Element_t >() ,py::arg(\"theXY\") )\n+ .def(py::init< const Element_t, const Element_t >() ,py::arg(\"theX\"), py::arg(\"theY\") )\n+ .def(\"SetValues\",\n+ (void (NCollection_Vec2::*)( const Element_t , const Element_t ) ) &NCollection_Vec2::SetValues,\n+ R\"#(Assign new values to the vector.)#\" ,py::arg(\"theX\"), py::arg(\"theY\"))\n+ .def(\"x\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::x,\n+ R\"#(Alias to 1st component as X coordinate in XY.)#\" )\n+ .def(\"y\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::y,\n+ R\"#(Alias to 2nd component as Y coordinate in XY.)#\" )\n+ .def(\"xy\",\n+ ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::xy,\n+ R\"#(Returns 2 components by their names in specified order (in GLSL-style))#\" )\n+ .def(\"yx\",\n+ ( const NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::yx,\n+ R\"#(Returns 2 components by their names in specified order (in GLSL-style))#\" )\n+ .def(\"x\",\n+ (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::x,\n+ R\"#(Alias to 1st component as X coordinate in XY.)#\" )\n+ .def(\"y\",\n+ (Element_t & (NCollection_Vec2::*)() ) &NCollection_Vec2::y,\n+ R\"#(Alias to 2nd component as Y coordinate in XY.)#\" )\n .def(\"IsEqual\",\n- (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual,\n- R\"#(Check this matrix for equality with another matrix (without tolerance!).)#\" ,py::arg(\"theOther\"))\n+ (bool (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::IsEqual,\n+ R\"#(Check this vector with another vector for equality (without tolerance!).)#\" ,py::arg(\"theOther\"))\n .def(\"GetData\",\n- ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData,\n- R\"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#\" )\n+ ( const Element_t * (NCollection_Vec2::*)() const) &NCollection_Vec2::GetData,\n+ R\"#(Raw access to the data (for OpenGL exchange).)#\" )\n .def(\"ChangeData\",\n- (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData,\n+ (Element_t * (NCollection_Vec2::*)() ) &NCollection_Vec2::ChangeData,\n R\"#()#\" )\n .def(\"Multiply\",\n- (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply,\n- R\"#(Compute matrix multiplication.)#\" ,py::arg(\"theMat\"))\n- .def(\"Multiplied\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied,\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"Multiply\",\n- (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply,\n- R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theFactor\"))\n+ (void (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::Multiply,\n+ R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n .def(\"Multiplied\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied,\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Divide\",\n- (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide,\n- R\"#(Compute per-component division.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Divided\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided,\n- R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n- .def(\"Add\",\n- (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add,\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Subtract\",\n- (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract,\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Added\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added,\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Subtracted\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted,\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Negated\",\n- (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated,\n- R\"#(Returns matrix with all components negated.)#\" )\n- .def(\"Transposed\",\n- (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed,\n- R\"#(Transpose the matrix.)#\" )\n- .def(\"Transpose\",\n- (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose,\n- R\"#(Transpose the matrix.)#\" )\n- .def(\"Determinant\",\n- (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant,\n- R\"#(Return determinant of the matrix.)#\" )\n- .def(\"Adjoint\",\n- (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint,\n- R\"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#\" )\n- .def(\"Inverted\",\n- (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted,\n- R\"#(Compute inverted matrix.)#\" ,py::arg(\"theInv\"), py::arg(\"theDet\"))\n- .def(\"Inverted\",\n- (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted,\n- R\"#(Compute inverted matrix.)#\" ,py::arg(\"theInv\"))\n- .def(\"Inverted\",\n- (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted,\n- R\"#(Return inverted matrix.)#\" )\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::Multiplied,\n+ R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"cwiseMin\",\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMin,\n+ R\"#(Compute component-wise minimum of two vectors.)#\" ,py::arg(\"theVec\"))\n+ .def(\"cwiseMax\",\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::cwiseMax,\n+ R\"#(Compute component-wise maximum of two vectors.)#\" ,py::arg(\"theVec\"))\n+ .def(\"cwiseAbs\",\n+ (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::cwiseAbs,\n+ R\"#(Compute component-wise modulus of the vector.)#\" )\n+ .def(\"maxComp\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::maxComp,\n+ R\"#(Compute maximum component of the vector.)#\" )\n+ .def(\"minComp\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::minComp,\n+ R\"#(Compute minimum component of the vector.)#\" )\n+ .def(\"Dot\",\n+ (Element_t (NCollection_Vec2::*)( const NCollection_Vec2 & ) const) &NCollection_Vec2::Dot,\n+ R\"#(Computes the dot product.)#\" ,py::arg(\"theOther\"))\n+ .def(\"Modulus\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::Modulus,\n+ R\"#(Computes the vector modulus (magnitude, length).)#\" )\n+ .def(\"SquareModulus\",\n+ (Element_t (NCollection_Vec2::*)() const) &NCollection_Vec2::SquareModulus,\n+ R\"#(Computes the square of vector modulus (magnitude, length). This method may be used for performance tricks.)#\" )\n .def(\"DumpJson\",\n- (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson,\n- R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"arg\"))\n- .def_static(\"Identity_s\",\n- (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity,\n- R\"#(Return identity matrix.)#\" )\n- .def_static(\"Zero_s\",\n- (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero,\n- R\"#(Return zero matrix.)#\" )\n- .def_static(\"Multiply_s\",\n- (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply,\n- R\"#(Compute matrix multiplication product: A * B.)#\" ,py::arg(\"theMatA\"), py::arg(\"theMatB\"))\n- .def_static(\"Map_s\",\n- (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map,\n- R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n- .def_static(\"Map_s\",\n- ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map,\n- R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n- .def(\"__mul__\",\n- (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*,\n+ (void (NCollection_Vec2::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Vec2::DumpJson,\n+ R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"theDepth\")=static_cast(- 1))\n+ .def_static(\"Length_s\",\n+ (int (*)() ) &NCollection_Vec2::Length,\n+ R\"#(Returns the number of components.)#\" )\n+ .def_static(\"DX_s\",\n+ (NCollection_Vec2 (*)() ) &NCollection_Vec2::DX,\n+ R\"#(Construct DX unit vector.)#\" )\n+ .def_static(\"DY_s\",\n+ (NCollection_Vec2 (*)() ) &NCollection_Vec2::DY,\n+ R\"#(Construct DY unit vector.)#\" )\n+ .def(\"__iadd__\",\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator+=,\n py::is_operator(),\n- R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n- .def(\"__rmul__\",\n- (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*,\n+ R\"#(Compute per-component summary.)#\" ,py::arg(\"theAdd\"))\n+ .def(\"__isub__\",\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator-=,\n py::is_operator(),\n- R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n+ R\"#(Compute per-component subtraction.)#\" ,py::arg(\"theDec\"))\n+ .def(\"__sub__\",\n+ (NCollection_Vec2 (NCollection_Vec2::*)() const) &NCollection_Vec2::operator-,\n+ py::is_operator(),\n+ R\"#(Unary -.)#\" )\n .def(\"__imul__\",\n- (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=,\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator*=,\n py::is_operator(),\n- R\"#(Multiply by the another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__mul__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*,\n+ R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theRight\"))\n+ .def(\"__imul__\",\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator*=,\n py::is_operator(),\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"__rmul__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*,\n+ R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n+ .def(\"__itruediv__\",\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const Element_t ) ) &NCollection_Vec2::operator/=,\n py::is_operator(),\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"__imul__\",\n- (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=,\n+ R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n+ .def(\"__itruediv__\",\n+ (NCollection_Vec2 & (NCollection_Vec2::*)( const NCollection_Vec2 & ) ) &NCollection_Vec2::operator/=,\n py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ R\"#(Compute per-component division.)#\" ,py::arg(\"theRight\"))\n .def(\"__mul__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*,\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*,\n py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n+ R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n .def(\"__rmul__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*,\n- py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__itruediv__\",\n- (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=,\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator*,\n py::is_operator(),\n- R\"#(Per-component division.)#\" ,py::arg(\"theScalar\"))\n+ R\"#(Compute per-component multiplication by scale factor.)#\" ,py::arg(\"theFactor\"))\n .def(\"__truediv__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/,\n- py::is_operator(),\n- R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n- .def(\"__iadd__\",\n- (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=,\n- py::is_operator(),\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__isub__\",\n- (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=,\n- py::is_operator(),\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__add__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+,\n- py::is_operator(),\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__sub__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-,\n- py::is_operator(),\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__sub__\",\n- (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-,\n+ (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator/,\n py::is_operator(),\n- R\"#(Returns matrix with all components negated.)#\" )\n+ R\"#(Compute per-component division by scale factor.)#\" ,py::arg(\"theInvFactor\"))\n ;\n };\n \n-template \n-void preregister_template_NCollection_Mat4(py::object &m, const char *name){\n- 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.)#\");\n+template \n+void preregister_template_NCollection_SparseArray(py::object &m, const char *name){\n+ py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R\"#(Dynamically resizable sparse array of objects)#\");\n }\n \n-template \n-void register_template_NCollection_Mat4(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< >() )\n- .def(\"GetValue\",\n- (Element_t (NCollection_Mat4::*)( const size_t , const size_t ) const) &NCollection_Mat4::GetValue,\n- R\"#(Get element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+template \n+void register_template_NCollection_SparseArray(py::object &m, const char *name){\n+ static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name))\n+ .def(py::init< Standard_Size >() ,py::arg(\"theIncrement\") )\n+ .def(\"Assign\",\n+ (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign,\n+ R\"#(Explicit assignment operator)#\" ,py::arg(\"theOther\"))\n+ .def(\"Exchange\",\n+ (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange,\n+ 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\"))\n+ .def(\"Value\",\n+ ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value,\n+ R\"#(Direct const access to the item)#\" ,py::arg(\"theIndex\"))\n .def(\"ChangeValue\",\n- (Element_t & (NCollection_Mat4::*)( const size_t , const size_t ) ) &NCollection_Mat4::ChangeValue,\n- R\"#(Access element at the specified row and column.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"))\n+ (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue,\n+ R\"#(Modification access to the item)#\" ,py::arg(\"theIndex\"))\n .def(\"SetValue\",\n- (void (NCollection_Mat4::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat4::SetValue,\n- R\"#(Set value for the element specified by row and columns.)#\" ,py::arg(\"theRow\"), py::arg(\"theCol\"), py::arg(\"theValue\"))\n- .def(\"GetRow\",\n- (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetRow,\n- R\"#(Get vector of elements for the specified row.)#\" ,py::arg(\"theRow\"))\n- .def(\"SetRow\",\n- (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetRow,\n- R\"#(Change first 3 row values by the passed vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n- .def(\"SetRow\",\n- (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetRow,\n- R\"#(Set row values by the passed 4 element vector.)#\" ,py::arg(\"theRow\"), py::arg(\"theVec\"))\n- .def(\"GetColumn\",\n- (NCollection_Vec4 (NCollection_Mat4::*)( const size_t ) const) &NCollection_Mat4::GetColumn,\n- R\"#(Get vector of elements for the specified column.)#\" ,py::arg(\"theCol\"))\n- .def(\"SetColumn\",\n- (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat4::SetColumn,\n- R\"#(Change first 3 column values by the passed vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n- .def(\"SetColumn\",\n- (void (NCollection_Mat4::*)( const size_t , const NCollection_Vec4 & ) ) &NCollection_Mat4::SetColumn,\n- R\"#(Set column values by the passed 4 element vector.)#\" ,py::arg(\"theCol\"), py::arg(\"theVec\"))\n- .def(\"GetDiagonal\",\n- (NCollection_Vec4 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetDiagonal,\n- R\"#(Get vector of diagonal elements.)#\" )\n- .def(\"SetDiagonal\",\n- (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::SetDiagonal,\n- R\"#(Change first 3 elements of the diagonal matrix.)#\" ,py::arg(\"theVec\"))\n- .def(\"SetDiagonal\",\n- (void (NCollection_Mat4::*)( const NCollection_Vec4 & ) ) &NCollection_Mat4::SetDiagonal,\n- R\"#(Set diagonal elements of the matrix by the passed vector.)#\" ,py::arg(\"theVec\"))\n- .def(\"GetMat3\",\n- (NCollection_Mat3 (NCollection_Mat4::*)() const) &NCollection_Mat4::GetMat3,\n- R\"#(Return 3x3 sub-matrix.)#\" )\n- .def(\"InitZero\",\n- (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitZero,\n- R\"#(Initialize the zero matrix.)#\" )\n- .def(\"IsZero\",\n- (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsZero,\n- R\"#(Checks the matrix for zero (without tolerance).)#\" )\n- .def(\"InitIdentity\",\n- (void (NCollection_Mat4::*)() ) &NCollection_Mat4::InitIdentity,\n- R\"#(Initialize the identity matrix.)#\" )\n- .def(\"IsIdentity\",\n- (bool (NCollection_Mat4::*)() const) &NCollection_Mat4::IsIdentity,\n- R\"#(Checks the matrix for identity (without tolerance).)#\" )\n- .def(\"IsEqual\",\n- (bool (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::IsEqual,\n- R\"#(Check this matrix for equality with another matrix (without tolerance!).)#\" ,py::arg(\"theOther\"))\n- .def(\"GetData\",\n- ( const Element_t * (NCollection_Mat4::*)() const) &NCollection_Mat4::GetData,\n- R\"#(Raw access to the data (for OpenGL exchange); the data is returned in column-major order.)#\" )\n- .def(\"ChangeData\",\n- (Element_t * (NCollection_Mat4::*)() ) &NCollection_Mat4::ChangeData,\n+ (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue,\n+ R\"#(Set a value at specified index method)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n+ .def(\"Extent\",\n+ (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent,\n+ R\"#(Returns number of items in the array)#\" )\n+ .def(\"IsEmpty\",\n+ (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty,\n+ R\"#(Returns True if array is empty)#\" )\n+ .def(\"Find\",\n+ ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find,\n+ R\"#(Direct const access to the item)#\" ,py::arg(\"theIndex\"))\n+ .def(\"ChangeFind\",\n+ (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind,\n+ R\"#(Modification access to the item)#\" ,py::arg(\"theIndex\"))\n+ .def(\"Bind\",\n+ (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind,\n+ R\"#(Set a value as explicit method)#\" ,py::arg(\"theIndex\"), py::arg(\"theValue\"))\n+ .def(\"IsBound\",\n+ (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound,\n+ R\"#(Returns True if the item is defined)#\" ,py::arg(\"theIndex\"))\n+ .def(\"UnBind\",\n+ (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind,\n+ R\"#(Remove the item from array)#\" ,py::arg(\"theIndex\"))\n+ .def(\"__len__\",[](const NCollection_SparseArray &self)\n+ { return self.Extent(); }\n+ )\n+ .def(\"__bool__\",[](const NCollection_SparseArray &self)\n+ { return self.IsEmpty(); }\n+ )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_Lerp(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_Lerp(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const T &, const T & >() ,py::arg(\"theStart\"), py::arg(\"theEnd\") )\n+ .def(\"Init\",\n+ (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init,\n+ R\"#(Initialize values.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"))\n+ .def(\"Interpolate\",\n+ (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate,\n+ R\"#(Compute interpolated value between two values.)#\" ,py::arg(\"theT\"), py::arg(\"theResult\"))\n+ .def_static(\"Interpolate_s\",\n+ (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate,\n+ R\"#(Compute interpolated value between two values.)#\" ,py::arg(\"theStart\"), py::arg(\"theEnd\"), py::arg(\"theT\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_LocalArray(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#\");\n+}\n+\n+template \n+void register_template_NCollection_LocalArray(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const size_t >() ,py::arg(\"theSize\") )\n+ .def(py::init< >() )\n+ .def(\"Allocate\",\n+ (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate,\n+ R\"#()#\" ,py::arg(\"theSize\"))\n+ .def(\"Size\",\n+ (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size,\n R\"#()#\" )\n- .def(\"Multiply\",\n- (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply,\n- R\"#(Compute matrix multiplication.)#\" ,py::arg(\"theMat\"))\n- .def(\"Multiplied\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Multiplied,\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"Multiply\",\n- (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Multiply,\n- R\"#(Compute per-component multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Multiplied\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Multiplied,\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Divide\",\n- (void (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::Divide,\n- R\"#(Compute per-component division.)#\" ,py::arg(\"theFactor\"))\n- .def(\"Divided\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::Divided,\n- R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n+ .def(\"__len__\",[](const NCollection_LocalArray &self)\n+ { return self.Size(); }\n+ )\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_Allocator(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_Allocator(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< >() )\n+ .def(py::init< const handle & >() ,py::arg(\"arg\") )\n+ .def(\"address\",\n+ (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address,\n+ R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n+ .def(\"address\",\n+ (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address,\n+ R\"#(Returns an object address.)#\" ,py::arg(\"theItem\"))\n+ .def(\"destroy\",\n+ (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy,\n+ R\"#(Destroys the object. Uses the object destructor.)#\" ,py::arg(\"thePnt\"))\n+ ;\n+};\n+\n+template \n+void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){\n+ 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.)#\");\n+}\n+\n+template \n+void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .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) )\n .def(\"Add\",\n- (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Add,\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Subtract\",\n- (void (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::Subtract,\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Added\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Added,\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Subtracted\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::Subtracted,\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"Negated\",\n- (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Negated,\n- R\"#(Returns matrix with all components negated.)#\" )\n- .def(\"Translate\",\n- (void (NCollection_Mat4::*)( const NCollection_Vec3 & ) ) &NCollection_Mat4::Translate,\n- R\"#(Translate the matrix on the passed vector.)#\" ,py::arg(\"theVec\"))\n- .def(\"Transposed\",\n- (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Transposed,\n- R\"#(Transpose the matrix.)#\" )\n- .def(\"Transpose\",\n- (void (NCollection_Mat4::*)() ) &NCollection_Mat4::Transpose,\n- R\"#(Transpose the matrix.)#\" )\n- .def(\"Inverted\",\n- (bool (NCollection_Mat4::*)( NCollection_Mat4 & , Element_t & ) const) &NCollection_Mat4::Inverted,\n- R\"#(Compute inverted matrix.)#\" ,py::arg(\"theOutMx\"), py::arg(\"theDet\"))\n- .def(\"Inverted\",\n- (bool (NCollection_Mat4::*)( NCollection_Mat4 & ) const) &NCollection_Mat4::Inverted,\n- R\"#(Compute inverted matrix.)#\" ,py::arg(\"theOutMx\"))\n- .def(\"Inverted\",\n- (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Inverted,\n- R\"#(Return inverted matrix.)#\" )\n- .def(\"DeterminantMat3\",\n- (Element_t (NCollection_Mat4::*)() const) &NCollection_Mat4::DeterminantMat3,\n- R\"#(Return determinant of the 3x3 sub-matrix.)#\" )\n- .def(\"Adjoint\",\n- (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::Adjoint,\n- R\"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#\" )\n- .def(\"DumpJson\",\n- (void (NCollection_Mat4::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat4::DumpJson,\n- R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"arg\"))\n- .def_static(\"Rows_s\",\n- (size_t (*)() ) &NCollection_Mat4::Rows,\n- R\"#(Get number of rows.)#\" )\n- .def_static(\"Cols_s\",\n- (size_t (*)() ) &NCollection_Mat4::Cols,\n- R\"#(Get number of columns.)#\" )\n- .def_static(\"Identity_s\",\n- (NCollection_Mat4 (*)() ) &NCollection_Mat4::Identity,\n- R\"#(Return identity matrix.)#\" )\n- .def_static(\"Zero_s\",\n- (NCollection_Mat4 (*)() ) &NCollection_Mat4::Zero,\n- R\"#(Return zero matrix.)#\" )\n- .def_static(\"Multiply_s\",\n- (NCollection_Mat4 (*)( const NCollection_Mat4 & , const NCollection_Mat4 & ) ) &NCollection_Mat4::Multiply,\n- R\"#(Compute matrix multiplication product: A * B.)#\" ,py::arg(\"theMatA\"), py::arg(\"theMatB\"))\n- .def_static(\"Map_s\",\n- (NCollection_Mat4 & (*)( Element_t * ) ) &NCollection_Mat4::Map,\n- R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n- .def_static(\"Map_s\",\n- ( const NCollection_Mat4 & (*)( const Element_t * ) ) &NCollection_Mat4::Map,\n- R\"#(Maps plain C array to matrix type.)#\" ,py::arg(\"theData\"))\n- .def(\"__mul__\",\n- (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n- .def(\"__rmul__\",\n- (NCollection_Vec4 (NCollection_Mat4::*)( const NCollection_Vec4 & ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Multiply by the vector (M * V).)#\" ,py::arg(\"theVec\"))\n- .def(\"__imul__\",\n- (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator*=,\n- py::is_operator(),\n- R\"#(Multiply by the another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__mul__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"__rmul__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Compute matrix multiplication product.)#\" ,py::arg(\"theMat\"))\n- .def(\"__imul__\",\n- (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator*=,\n- py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__mul__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__rmul__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator*,\n- py::is_operator(),\n- R\"#(Compute per-element multiplication.)#\" ,py::arg(\"theFactor\"))\n- .def(\"__itruediv__\",\n- (NCollection_Mat4 & (NCollection_Mat4::*)( const Element_t ) ) &NCollection_Mat4::operator/=,\n- py::is_operator(),\n- R\"#(Per-component division.)#\" ,py::arg(\"theScalar\"))\n- .def(\"__truediv__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const Element_t ) const) &NCollection_Mat4::operator/,\n- py::is_operator(),\n- R\"#(Divides all the coefficients of the matrix by scalar.)#\" ,py::arg(\"theScalar\"))\n- .def(\"__iadd__\",\n- (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator+=,\n- py::is_operator(),\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__isub__\",\n- (NCollection_Mat4 & (NCollection_Mat4::*)( const NCollection_Mat4 & ) ) &NCollection_Mat4::operator-=,\n- py::is_operator(),\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__add__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator+,\n- py::is_operator(),\n- R\"#(Per-component addition of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__sub__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)( const NCollection_Mat4 & ) const) &NCollection_Mat4::operator-,\n- py::is_operator(),\n- R\"#(Per-component subtraction of another matrix.)#\" ,py::arg(\"theMat\"))\n- .def(\"__sub__\",\n- (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::operator-,\n- py::is_operator(),\n- R\"#(Returns matrix with all components negated.)#\" )\n+ (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add,\n+ R\"#(Adds a pair (theObj, theBnd) to my sequence)#\" ,py::arg(\"theObj\"), py::arg(\"theBnd\"))\n+ .def(\"Fill\",\n+ (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill,\n+ 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.)#\" )\n+ .def(\"Reset\",\n+ (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset,\n+ 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.)#\" )\n+ .def(\"CheckTree\",\n+ (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree,\n+ R\"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#\" ,py::arg(\"theStream\"))\n ;\n };\n \n \n // user-defined post\n \n"}, {"source1": "./usr/share/libocp/OCP/OSD_pre.cpp", "source2": "./usr/share/libocp/OCP/OSD_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -105,80 +105,70 @@\n py::module m = main_module.def_submodule(\"OSD\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"OSD_LoadMode\",R\"#(This enumeration is used to load shareable libraries.)#\")\n- .value(\"OSD_RTLD_LAZY\",OSD_LoadMode::OSD_RTLD_LAZY)\n- .value(\"OSD_RTLD_NOW\",OSD_LoadMode::OSD_RTLD_NOW).export_values();\n py::enum_(m, \"OSD_OEMType\",R\"#(This is set of possible machine types used in OSD_Host::MachineType)#\")\n .value(\"OSD_Unavailable\",OSD_OEMType::OSD_Unavailable)\n .value(\"OSD_SUN\",OSD_OEMType::OSD_SUN)\n .value(\"OSD_DEC\",OSD_OEMType::OSD_DEC)\n .value(\"OSD_SGI\",OSD_OEMType::OSD_SGI)\n .value(\"OSD_NEC\",OSD_OEMType::OSD_NEC)\n .value(\"OSD_MAC\",OSD_OEMType::OSD_MAC)\n .value(\"OSD_PC\",OSD_OEMType::OSD_PC)\n .value(\"OSD_HP\",OSD_OEMType::OSD_HP)\n .value(\"OSD_IBM\",OSD_OEMType::OSD_IBM)\n .value(\"OSD_VAX\",OSD_OEMType::OSD_VAX)\n .value(\"OSD_LIN\",OSD_OEMType::OSD_LIN)\n .value(\"OSD_AIX\",OSD_OEMType::OSD_AIX).export_values();\n- py::enum_(m, \"OSD_SignalMode\",R\"#(Mode of operation for OSD::SetSignal() function)#\")\n- .value(\"OSD_SignalMode_AsIs\",OSD_SignalMode::OSD_SignalMode_AsIs)\n- .value(\"OSD_SignalMode_Set\",OSD_SignalMode::OSD_SignalMode_Set)\n- .value(\"OSD_SignalMode_SetUnhandled\",OSD_SignalMode::OSD_SignalMode_SetUnhandled)\n- .value(\"OSD_SignalMode_Unset\",OSD_SignalMode::OSD_SignalMode_Unset).export_values();\n- 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.)#\")\n- .value(\"OSD_None\",OSD_SingleProtection::OSD_None)\n- .value(\"OSD_R\",OSD_SingleProtection::OSD_R)\n- .value(\"OSD_W\",OSD_SingleProtection::OSD_W)\n- .value(\"OSD_RW\",OSD_SingleProtection::OSD_RW)\n- .value(\"OSD_X\",OSD_SingleProtection::OSD_X)\n- .value(\"OSD_RX\",OSD_SingleProtection::OSD_RX)\n- .value(\"OSD_WX\",OSD_SingleProtection::OSD_WX)\n- .value(\"OSD_RWX\",OSD_SingleProtection::OSD_RWX)\n- .value(\"OSD_D\",OSD_SingleProtection::OSD_D)\n- .value(\"OSD_RD\",OSD_SingleProtection::OSD_RD)\n- .value(\"OSD_WD\",OSD_SingleProtection::OSD_WD)\n- .value(\"OSD_RWD\",OSD_SingleProtection::OSD_RWD)\n- .value(\"OSD_XD\",OSD_SingleProtection::OSD_XD)\n- .value(\"OSD_RXD\",OSD_SingleProtection::OSD_RXD)\n- .value(\"OSD_WXD\",OSD_SingleProtection::OSD_WXD)\n- .value(\"OSD_RWXD\",OSD_SingleProtection::OSD_RWXD).export_values();\n- py::enum_(m, \"OSD_KindFile\",R\"#(Specifies the type of files.)#\")\n- .value(\"OSD_FILE\",OSD_KindFile::OSD_FILE)\n- .value(\"OSD_DIRECTORY\",OSD_KindFile::OSD_DIRECTORY)\n- .value(\"OSD_LINK\",OSD_KindFile::OSD_LINK)\n- .value(\"OSD_SOCKET\",OSD_KindFile::OSD_SOCKET)\n- .value(\"OSD_UNKNOWN\",OSD_KindFile::OSD_UNKNOWN).export_values();\n- py::enum_(m, \"OSD_OpenMode\",R\"#(Specifies the file open mode.)#\")\n- .value(\"OSD_ReadOnly\",OSD_OpenMode::OSD_ReadOnly)\n- .value(\"OSD_WriteOnly\",OSD_OpenMode::OSD_WriteOnly)\n- .value(\"OSD_ReadWrite\",OSD_OpenMode::OSD_ReadWrite).export_values();\n py::enum_(m, \"OSD_LockType\",R\"#(locks for files. NoLock is the default value when opening a file.)#\")\n .value(\"OSD_NoLock\",OSD_LockType::OSD_NoLock)\n .value(\"OSD_ReadLock\",OSD_LockType::OSD_ReadLock)\n .value(\"OSD_WriteLock\",OSD_LockType::OSD_WriteLock)\n .value(\"OSD_ExclusiveLock\",OSD_LockType::OSD_ExclusiveLock).export_values();\n+ py::enum_(m, \"OSD_FromWhere\",R\"#(Used by OSD_File in the method Seek.)#\")\n+ .value(\"OSD_FromBeginning\",OSD_FromWhere::OSD_FromBeginning)\n+ .value(\"OSD_FromHere\",OSD_FromWhere::OSD_FromHere)\n+ .value(\"OSD_FromEnd\",OSD_FromWhere::OSD_FromEnd).export_values();\n+ py::enum_(m, \"OSD_OpenMode\",R\"#(Specifies the file open mode.)#\")\n+ .value(\"OSD_ReadOnly\",OSD_OpenMode::OSD_ReadOnly)\n+ .value(\"OSD_WriteOnly\",OSD_OpenMode::OSD_WriteOnly)\n+ .value(\"OSD_ReadWrite\",OSD_OpenMode::OSD_ReadWrite).export_values();\n 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.)#\")\n .value(\"OSD_Unknown\",OSD_SysType::OSD_Unknown)\n .value(\"OSD_Default\",OSD_SysType::OSD_Default)\n .value(\"OSD_UnixBSD\",OSD_SysType::OSD_UnixBSD)\n .value(\"OSD_UnixSystemV\",OSD_SysType::OSD_UnixSystemV)\n .value(\"OSD_VMS\",OSD_SysType::OSD_VMS)\n .value(\"OSD_OS2\",OSD_SysType::OSD_OS2)\n .value(\"OSD_OSF\",OSD_SysType::OSD_OSF)\n .value(\"OSD_MacOs\",OSD_SysType::OSD_MacOs)\n .value(\"OSD_Taligent\",OSD_SysType::OSD_Taligent)\n .value(\"OSD_WindowsNT\",OSD_SysType::OSD_WindowsNT)\n .value(\"OSD_LinuxREDHAT\",OSD_SysType::OSD_LinuxREDHAT)\n .value(\"OSD_Aix\",OSD_SysType::OSD_Aix).export_values();\n+ 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.)#\")\n+ .value(\"OSD_None\",OSD_SingleProtection::OSD_None)\n+ .value(\"OSD_R\",OSD_SingleProtection::OSD_R)\n+ .value(\"OSD_W\",OSD_SingleProtection::OSD_W)\n+ .value(\"OSD_RW\",OSD_SingleProtection::OSD_RW)\n+ .value(\"OSD_X\",OSD_SingleProtection::OSD_X)\n+ .value(\"OSD_RX\",OSD_SingleProtection::OSD_RX)\n+ .value(\"OSD_WX\",OSD_SingleProtection::OSD_WX)\n+ .value(\"OSD_RWX\",OSD_SingleProtection::OSD_RWX)\n+ .value(\"OSD_D\",OSD_SingleProtection::OSD_D)\n+ .value(\"OSD_RD\",OSD_SingleProtection::OSD_RD)\n+ .value(\"OSD_WD\",OSD_SingleProtection::OSD_WD)\n+ .value(\"OSD_RWD\",OSD_SingleProtection::OSD_RWD)\n+ .value(\"OSD_XD\",OSD_SingleProtection::OSD_XD)\n+ .value(\"OSD_RXD\",OSD_SingleProtection::OSD_RXD)\n+ .value(\"OSD_WXD\",OSD_SingleProtection::OSD_WXD)\n+ .value(\"OSD_RWXD\",OSD_SingleProtection::OSD_RWXD).export_values();\n py::enum_(m, \"OSD_WhoAmI\",R\"#(Allows great accuracy for error management. This is private.)#\")\n .value(\"OSD_WDirectory\",OSD_WhoAmI::OSD_WDirectory)\n .value(\"OSD_WDirectoryIterator\",OSD_WhoAmI::OSD_WDirectoryIterator)\n .value(\"OSD_WEnvironment\",OSD_WhoAmI::OSD_WEnvironment)\n .value(\"OSD_WFile\",OSD_WhoAmI::OSD_WFile)\n .value(\"OSD_WFileNode\",OSD_WhoAmI::OSD_WFileNode)\n .value(\"OSD_WFileIterator\",OSD_WhoAmI::OSD_WFileIterator)\n@@ -187,18 +177,28 @@\n .value(\"OSD_WProtection\",OSD_WhoAmI::OSD_WProtection)\n .value(\"OSD_WHost\",OSD_WhoAmI::OSD_WHost)\n .value(\"OSD_WDisk\",OSD_WhoAmI::OSD_WDisk)\n .value(\"OSD_WChronometer\",OSD_WhoAmI::OSD_WChronometer)\n .value(\"OSD_WTimer\",OSD_WhoAmI::OSD_WTimer)\n .value(\"OSD_WPackage\",OSD_WhoAmI::OSD_WPackage)\n .value(\"OSD_WEnvironmentIterator\",OSD_WhoAmI::OSD_WEnvironmentIterator).export_values();\n- py::enum_(m, \"OSD_FromWhere\",R\"#(Used by OSD_File in the method Seek.)#\")\n- .value(\"OSD_FromBeginning\",OSD_FromWhere::OSD_FromBeginning)\n- .value(\"OSD_FromHere\",OSD_FromWhere::OSD_FromHere)\n- .value(\"OSD_FromEnd\",OSD_FromWhere::OSD_FromEnd).export_values();\n+ py::enum_(m, \"OSD_SignalMode\",R\"#(Mode of operation for OSD::SetSignal() function)#\")\n+ .value(\"OSD_SignalMode_AsIs\",OSD_SignalMode::OSD_SignalMode_AsIs)\n+ .value(\"OSD_SignalMode_Set\",OSD_SignalMode::OSD_SignalMode_Set)\n+ .value(\"OSD_SignalMode_SetUnhandled\",OSD_SignalMode::OSD_SignalMode_SetUnhandled)\n+ .value(\"OSD_SignalMode_Unset\",OSD_SignalMode::OSD_SignalMode_Unset).export_values();\n+ py::enum_(m, \"OSD_KindFile\",R\"#(Specifies the type of files.)#\")\n+ .value(\"OSD_FILE\",OSD_KindFile::OSD_FILE)\n+ .value(\"OSD_DIRECTORY\",OSD_KindFile::OSD_DIRECTORY)\n+ .value(\"OSD_LINK\",OSD_KindFile::OSD_LINK)\n+ .value(\"OSD_SOCKET\",OSD_KindFile::OSD_SOCKET)\n+ .value(\"OSD_UNKNOWN\",OSD_KindFile::OSD_UNKNOWN).export_values();\n+ py::enum_(m, \"OSD_LoadMode\",R\"#(This enumeration is used to load shareable libraries.)#\")\n+ .value(\"OSD_RTLD_LAZY\",OSD_LoadMode::OSD_RTLD_LAZY)\n+ .value(\"OSD_RTLD_NOW\",OSD_LoadMode::OSD_RTLD_NOW).export_values();\n \n //Python trampoline classes\n class Py_OSD_FileSystem : public OSD_FileSystem{\n public:\n using OSD_FileSystem::OSD_FileSystem;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/OpenGl.cpp", "source2": "./usr/share/libocp/OCP/OpenGl.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -6632,18 +6632,18 @@\n ( const handle & (OpenGl_PointSprite::*)() const) static_cast< const handle & (OpenGl_PointSprite::*)() const>(&OpenGl_PointSprite::DynamicType),\n R\"#()#\"\n \n )\n ;\n \n // functions\n-auto mopencascade = static_cast(m.attr(\"opencascade\"));\n auto mOpenGl_HashMapInitializer = static_cast(m.attr(\"OpenGl_HashMapInitializer\"));\n auto mOpenGl_Raytrace = static_cast(m.attr(\"OpenGl_Raytrace\"));\n auto mOpenGl = static_cast(m.attr(\"OpenGl\"));\n+auto mopencascade = static_cast(m.attr(\"opencascade\"));\n \n // /usr/include/opencascade/OpenGl_ArbDbg.hxx\n // /usr/include/opencascade/OpenGl_ArbFBO.hxx\n // /usr/include/opencascade/OpenGl_ArbIns.hxx\n // /usr/include/opencascade/OpenGl_ArbSamplerObject.hxx\n // /usr/include/opencascade/OpenGl_ArbTBO.hxx\n // /usr/include/opencascade/OpenGl_ArbTexBindless.hxx\n"}, {"source1": "./usr/share/libocp/OCP/OpenGl_pre.cpp", "source2": "./usr/share/libocp/OCP/OpenGl_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -238,33 +238,42 @@\n // Module definiiton\n void register_OpenGl_enums(py::module &main_module) {\n \n \n py::module m = main_module.def_submodule(\"OpenGl\", R\"#()#\");\n \n // add namespaces as submodules\n-m.def_submodule(\"opencascade\");\n m.def_submodule(\"OpenGl_HashMapInitializer\");\n m.def_submodule(\"OpenGl_Raytrace\");\n m.def_submodule(\"OpenGl\");\n+m.def_submodule(\"opencascade\");\n \n // user-defined inclusion per module in the body\n py::class_(m, \"NSOpenGLContext\");\n \n // enums\n- py::enum_(m, \"OpenGl_MaterialFlag\",R\"#(Material flag)#\")\n- .value(\"OpenGl_MaterialFlag_Front\",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front)\n- .value(\"OpenGl_MaterialFlag_Back\",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values();\n py::enum_(m, \"OpenGl_RenderFilter\",R\"#(Filter for rendering elements.)#\")\n .value(\"OpenGl_RenderFilter_Empty\",OpenGl_RenderFilter::OpenGl_RenderFilter_Empty)\n .value(\"OpenGl_RenderFilter_OpaqueOnly\",OpenGl_RenderFilter::OpenGl_RenderFilter_OpaqueOnly)\n .value(\"OpenGl_RenderFilter_TransparentOnly\",OpenGl_RenderFilter::OpenGl_RenderFilter_TransparentOnly)\n .value(\"OpenGl_RenderFilter_NonRaytraceableOnly\",OpenGl_RenderFilter::OpenGl_RenderFilter_NonRaytraceableOnly)\n .value(\"OpenGl_RenderFilter_FillModeOnly\",OpenGl_RenderFilter::OpenGl_RenderFilter_FillModeOnly)\n .value(\"OpenGl_RenderFilter_SkipTrsfPersistence\",OpenGl_RenderFilter::OpenGl_RenderFilter_SkipTrsfPersistence).export_values();\n+ py::enum_(m, \"OpenGl_LayerFilter\",R\"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#\")\n+ .value(\"OpenGl_LF_All\",OpenGl_LayerFilter::OpenGl_LF_All)\n+ .value(\"OpenGl_LF_Upper\",OpenGl_LayerFilter::OpenGl_LF_Upper)\n+ .value(\"OpenGl_LF_Bottom\",OpenGl_LayerFilter::OpenGl_LF_Bottom)\n+ .value(\"OpenGl_LF_RayTracable\",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values();\n+ py::enum_(m, \"OpenGl_ShaderProgramDumpLevel\",R\"#(Definition of shader programs source code dump levels.)#\")\n+ .value(\"OpenGl_ShaderProgramDumpLevel_Off\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off)\n+ .value(\"OpenGl_ShaderProgramDumpLevel_Short\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short)\n+ .value(\"OpenGl_ShaderProgramDumpLevel_Full\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values();\n+ py::enum_(m, \"OpenGl_MaterialFlag\",R\"#(Material flag)#\")\n+ .value(\"OpenGl_MaterialFlag_Front\",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front)\n+ .value(\"OpenGl_MaterialFlag_Back\",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values();\n py::enum_(m, \"OpenGl_StateVariable\",R\"#(The enumeration of OCCT-specific OpenGL/GLSL variables.)#\")\n .value(\"OpenGl_OCC_MODEL_WORLD_MATRIX\",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX)\n .value(\"OpenGl_OCC_WORLD_VIEW_MATRIX\",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX)\n .value(\"OpenGl_OCC_PROJECTION_MATRIX\",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX)\n .value(\"OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE\",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE)\n .value(\"OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE\",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE)\n .value(\"OpenGl_OCC_PROJECTION_MATRIX_INVERSE\",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX_INVERSE)\n@@ -311,27 +320,18 @@\n .value(\"OpenGl_MODEL_WORLD_STATE\",OpenGl_UniformStateType::OpenGl_MODEL_WORLD_STATE)\n .value(\"OpenGl_WORLD_VIEW_STATE\",OpenGl_UniformStateType::OpenGl_WORLD_VIEW_STATE)\n .value(\"OpenGl_PROJECTION_STATE\",OpenGl_UniformStateType::OpenGl_PROJECTION_STATE)\n .value(\"OpenGl_MATERIAL_STATE\",OpenGl_UniformStateType::OpenGl_MATERIAL_STATE)\n .value(\"OpenGl_SURF_DETAIL_STATE\",OpenGl_UniformStateType::OpenGl_SURF_DETAIL_STATE)\n .value(\"OpenGL_OIT_STATE\",OpenGl_UniformStateType::OpenGL_OIT_STATE)\n .value(\"OpenGl_UniformStateType_NB\",OpenGl_UniformStateType::OpenGl_UniformStateType_NB).export_values();\n- py::enum_(m, \"OpenGl_ShaderProgramDumpLevel\",R\"#(Definition of shader programs source code dump levels.)#\")\n- .value(\"OpenGl_ShaderProgramDumpLevel_Off\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off)\n- .value(\"OpenGl_ShaderProgramDumpLevel_Short\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short)\n- .value(\"OpenGl_ShaderProgramDumpLevel_Full\",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values();\n py::enum_(m, \"OpenGl_FeatureFlag\",R\"#()#\")\n .value(\"OpenGl_FeatureNotAvailable\",OpenGl_FeatureFlag::OpenGl_FeatureNotAvailable)\n .value(\"OpenGl_FeatureInExtensions\",OpenGl_FeatureFlag::OpenGl_FeatureInExtensions)\n .value(\"OpenGl_FeatureInCore\",OpenGl_FeatureFlag::OpenGl_FeatureInCore).export_values();\n- py::enum_(m, \"OpenGl_LayerFilter\",R\"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#\")\n- .value(\"OpenGl_LF_All\",OpenGl_LayerFilter::OpenGl_LF_All)\n- .value(\"OpenGl_LF_Upper\",OpenGl_LayerFilter::OpenGl_LF_Upper)\n- .value(\"OpenGl_LF_Bottom\",OpenGl_LayerFilter::OpenGl_LF_Bottom)\n- .value(\"OpenGl_LF_RayTracable\",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values();\n \n //Python trampoline classes\n class Py_OpenGl_Element : public OpenGl_Element{\n public:\n using OpenGl_Element::OpenGl_Element;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/OpenGl_tmpl.hxx", "source2": "./usr/share/libocp/OCP/OpenGl_tmpl.hxx", "comments": ["Ordering differences only"], "unified_diff": "@@ -213,36 +213,32 @@\n \n // user-defined pre\n #include \"OCP_specific.inc\"\n \n // Class template handling functions\n \n template \n-void preregister_template_OpenGl_VariableSetter(py::object &m, const char *name){\n- py::class_ , shared_ptr> , OpenGl_SetterInterface >(m,name,R\"#()#\");\n+void preregister_template_VectorType(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool class for selecting appropriate vector type.)#\");\n }\n \n template \n-void register_template_OpenGl_VariableSetter(py::object &m, const char *name){\n- static_cast , shared_ptr> , OpenGl_SetterInterface >>(m.attr(name))\n- .def(\"Set\",\n- (void (OpenGl_VariableSetter::*)( const handle & , const handle & , OpenGl_ShaderProgram * ) ) &OpenGl_VariableSetter::Set,\n- R\"#()#\" ,py::arg(\"theCtx\"), py::arg(\"theVariable\"), py::arg(\"theProgram\"))\n+void register_template_VectorType(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n-template \n-void preregister_template_MapListOfType(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#()#\");\n+template \n+void preregister_template_MatrixType(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Tool class for selecting appropriate matrix type.)#\");\n }\n \n-template \n-void register_template_MapListOfType(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< K,V >() ,py::arg(\"theKey\"), py::arg(\"theValue\") )\n+template \n+void register_template_MatrixType(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n template \n void preregister_template_OpenGl_BufferCompatT(py::object &m, const char *name){\n 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).)#\");\n }\n@@ -277,50 +273,37 @@\n R\"#(Update part of the buffer with new data.)#\" ,py::arg(\"theGlCtx\"), py::arg(\"theElemFrom\"), py::arg(\"theElemsNb\"), py::arg(\"theData\"), py::arg(\"theDataType\"))\n .def(\"getSubData\",\n (bool (OpenGl_BufferCompatT::*)( const handle & , const Standard_Integer , const Standard_Integer , void * , const unsigned int ) ) &OpenGl_BufferCompatT::getSubData,\n R\"#(Read back buffer sub-range.)#\" ,py::arg(\"theGlCtx\"), py::arg(\"theElemFrom\"), py::arg(\"theElemsNb\"), py::arg(\"theData\"), py::arg(\"theDataType\"))\n ;\n };\n \n-template \n-void preregister_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary class to iteratively modify data of existing VBO. It provides iteration interface with delayed CPU->GPU memory transfer to avoid slow per-element data transfer. User should explicitly call Flush() method to ensure that all data is transferred to VBO. Temporary buffer on CPU side can be initialized with lesser capacity than VBO to allow re-usage of shared buffer with fixed size between VBOs.)#\");\n+template \n+void preregister_template_OpenGl_VariableSetter(py::object &m, const char *name){\n+ py::class_ , shared_ptr> , OpenGl_SetterInterface >(m,name,R\"#()#\");\n }\n \n-template \n-void register_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n- .def(py::init< const Standard_Integer >() ,py::arg(\"theTmpBufferLength\")=static_cast< const Standard_Integer>(0) )\n- .def(py::init< theVec_t *, const Standard_Integer >() ,py::arg(\"theTmpBuffer\"), py::arg(\"theTmpBufferLength\") )\n- .def(\"Init\",\n- (Standard_Boolean (OpenGl_VertexBufferEditor::*)( const handle & , const handle & ) ) &OpenGl_VertexBufferEditor::Init,\n- R\"#(Initialize editor for specified buffer object. theGlCtx [in] bound OpenGL context to edit buffer object theVbo [in] buffer to edit)#\" ,py::arg(\"theGlCtx\"), py::arg(\"theVbo\"))\n- .def(\"Value\",\n- (theVec_t & (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Value,\n- R\"#(Modify current element in VBO.)#\" )\n- .def(\"Next\",\n- (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Next,\n- R\"#(Move to the next position in VBO.)#\" )\n- .def(\"Flush\",\n- (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Flush,\n- R\"#(Push current data from local buffer to VBO.)#\" )\n- .def(\"GetVBO\",\n- ( const handle & (OpenGl_VertexBufferEditor::*)() const) &OpenGl_VertexBufferEditor::GetVBO,\n- R\"#(Returns assigned VBO)#\" )\n+template \n+void register_template_OpenGl_VariableSetter(py::object &m, const char *name){\n+ static_cast , shared_ptr> , OpenGl_SetterInterface >>(m.attr(name))\n+ .def(\"Set\",\n+ (void (OpenGl_VariableSetter::*)( const handle & , const handle & , OpenGl_ShaderProgram * ) ) &OpenGl_VariableSetter::Set,\n+ R\"#()#\" ,py::arg(\"theCtx\"), py::arg(\"theVariable\"), py::arg(\"theProgram\"))\n ;\n };\n \n-template \n-void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Selects preferable texture format for specified parameters.)#\");\n+template \n+void preregister_template_MapListOfType(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#()#\");\n }\n \n-template \n-void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_MapListOfType(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< K,V >() ,py::arg(\"theKey\"), py::arg(\"theValue\") )\n ;\n };\n \n template \n void preregister_template_OpenGl_MatrixState(py::object &m, const char *name){\n py::class_ , shared_ptr> >(m,name,R\"#(Software implementation for OpenGL matrix stack.)#\");\n }\n@@ -349,32 +332,49 @@\n R\"#(Sets current matrix to identity.)#\" )\n .def(\"DumpJson\",\n (void (OpenGl_MatrixState::*)( Standard_OStream & , Standard_Integer ) const) &OpenGl_MatrixState::DumpJson,\n R\"#(Dumps the content of me into the stream)#\" ,py::arg(\"theOStream\"), py::arg(\"theDepth\")=static_cast(- 1))\n ;\n };\n \n-template \n-void preregister_template_VectorType(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool class for selecting appropriate vector type.)#\");\n+template \n+void preregister_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Auxiliary class to iteratively modify data of existing VBO. It provides iteration interface with delayed CPU->GPU memory transfer to avoid slow per-element data transfer. User should explicitly call Flush() method to ensure that all data is transferred to VBO. Temporary buffer on CPU side can be initialized with lesser capacity than VBO to allow re-usage of shared buffer with fixed size between VBOs.)#\");\n }\n \n-template \n-void register_template_VectorType(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+template \n+void register_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n+ .def(py::init< const Standard_Integer >() ,py::arg(\"theTmpBufferLength\")=static_cast< const Standard_Integer>(0) )\n+ .def(py::init< theVec_t *, const Standard_Integer >() ,py::arg(\"theTmpBuffer\"), py::arg(\"theTmpBufferLength\") )\n+ .def(\"Init\",\n+ (Standard_Boolean (OpenGl_VertexBufferEditor::*)( const handle & , const handle & ) ) &OpenGl_VertexBufferEditor::Init,\n+ R\"#(Initialize editor for specified buffer object. theGlCtx [in] bound OpenGL context to edit buffer object theVbo [in] buffer to edit)#\" ,py::arg(\"theGlCtx\"), py::arg(\"theVbo\"))\n+ .def(\"Value\",\n+ (theVec_t & (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Value,\n+ R\"#(Modify current element in VBO.)#\" )\n+ .def(\"Next\",\n+ (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Next,\n+ R\"#(Move to the next position in VBO.)#\" )\n+ .def(\"Flush\",\n+ (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Flush,\n+ R\"#(Push current data from local buffer to VBO.)#\" )\n+ .def(\"GetVBO\",\n+ ( const handle & (OpenGl_VertexBufferEditor::*)() const) &OpenGl_VertexBufferEditor::GetVBO,\n+ R\"#(Returns assigned VBO)#\" )\n ;\n };\n \n template \n-void preregister_template_MatrixType(py::object &m, const char *name){\n- py::class_ , shared_ptr> >(m,name,R\"#(Tool class for selecting appropriate matrix type.)#\");\n+void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){\n+ py::class_ , shared_ptr> >(m,name,R\"#(Selects preferable texture format for specified parameters.)#\");\n }\n \n template \n-void register_template_MatrixType(py::object &m, const char *name){\n- static_cast , shared_ptr> >>(m.attr(name))\n+void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){\n+ static_cast , shared_ptr> >>(m.attr(name))\n ;\n };\n \n \n // user-defined post\n \n"}, {"source1": "./usr/share/libocp/OCP/PCDM_pre.cpp", "source2": "./usr/share/libocp/OCP/PCDM_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -73,14 +73,19 @@\n py::module m = main_module.def_submodule(\"PCDM\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"PCDM_TypeOfFileDriver\",R\"#()#\")\n+ .value(\"PCDM_TOFD_File\",PCDM_TypeOfFileDriver::PCDM_TOFD_File)\n+ .value(\"PCDM_TOFD_CmpFile\",PCDM_TypeOfFileDriver::PCDM_TOFD_CmpFile)\n+ .value(\"PCDM_TOFD_XmlFile\",PCDM_TypeOfFileDriver::PCDM_TOFD_XmlFile)\n+ .value(\"PCDM_TOFD_Unknown\",PCDM_TypeOfFileDriver::PCDM_TOFD_Unknown).export_values();\n 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;)#\")\n .value(\"PCDM_RS_OK\",PCDM_ReaderStatus::PCDM_RS_OK)\n .value(\"PCDM_RS_NoDriver\",PCDM_ReaderStatus::PCDM_RS_NoDriver)\n .value(\"PCDM_RS_UnknownFileDriver\",PCDM_ReaderStatus::PCDM_RS_UnknownFileDriver)\n .value(\"PCDM_RS_OpenError\",PCDM_ReaderStatus::PCDM_RS_OpenError)\n .value(\"PCDM_RS_NoVersion\",PCDM_ReaderStatus::PCDM_RS_NoVersion)\n .value(\"PCDM_RS_NoSchema\",PCDM_ReaderStatus::PCDM_RS_NoSchema)\n@@ -97,19 +102,14 @@\n .value(\"PCDM_RS_AlreadyRetrievedAndModified\",PCDM_ReaderStatus::PCDM_RS_AlreadyRetrievedAndModified)\n .value(\"PCDM_RS_AlreadyRetrieved\",PCDM_ReaderStatus::PCDM_RS_AlreadyRetrieved)\n .value(\"PCDM_RS_UnknownDocument\",PCDM_ReaderStatus::PCDM_RS_UnknownDocument)\n .value(\"PCDM_RS_WrongResource\",PCDM_ReaderStatus::PCDM_RS_WrongResource)\n .value(\"PCDM_RS_ReaderException\",PCDM_ReaderStatus::PCDM_RS_ReaderException)\n .value(\"PCDM_RS_NoModel\",PCDM_ReaderStatus::PCDM_RS_NoModel)\n .value(\"PCDM_RS_UserBreak\",PCDM_ReaderStatus::PCDM_RS_UserBreak).export_values();\n- py::enum_(m, \"PCDM_TypeOfFileDriver\",R\"#()#\")\n- .value(\"PCDM_TOFD_File\",PCDM_TypeOfFileDriver::PCDM_TOFD_File)\n- .value(\"PCDM_TOFD_CmpFile\",PCDM_TypeOfFileDriver::PCDM_TOFD_CmpFile)\n- .value(\"PCDM_TOFD_XmlFile\",PCDM_TypeOfFileDriver::PCDM_TOFD_XmlFile)\n- .value(\"PCDM_TOFD_Unknown\",PCDM_TypeOfFileDriver::PCDM_TOFD_Unknown).export_values();\n 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.)#\")\n .value(\"PCDM_SS_OK\",PCDM_StoreStatus::PCDM_SS_OK)\n .value(\"PCDM_SS_DriverFailure\",PCDM_StoreStatus::PCDM_SS_DriverFailure)\n .value(\"PCDM_SS_WriteFailure\",PCDM_StoreStatus::PCDM_SS_WriteFailure)\n .value(\"PCDM_SS_Failure\",PCDM_StoreStatus::PCDM_SS_Failure)\n .value(\"PCDM_SS_Doc_IsNull\",PCDM_StoreStatus::PCDM_SS_Doc_IsNull)\n .value(\"PCDM_SS_No_Obj\",PCDM_StoreStatus::PCDM_SS_No_Obj)\n"}, {"source1": "./usr/share/libocp/OCP/Prs3d_pre.cpp", "source2": "./usr/share/libocp/OCP/Prs3d_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -84,26 +84,30 @@\n py::module m = main_module.def_submodule(\"Prs3d\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Prs3d_TypeOfHighlight\",R\"#(Type of highlighting to apply specific style.)#\")\n- .value(\"Prs3d_TypeOfHighlight_None\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None)\n- .value(\"Prs3d_TypeOfHighlight_Selected\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected)\n- .value(\"Prs3d_TypeOfHighlight_Dynamic\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic)\n- .value(\"Prs3d_TypeOfHighlight_LocalSelected\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected)\n- .value(\"Prs3d_TypeOfHighlight_LocalDynamic\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic)\n- .value(\"Prs3d_TypeOfHighlight_SubIntensity\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity)\n- .value(\"Prs3d_TypeOfHighlight_NB\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values();\n- 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)#\")\n- .value(\"Prs3d_DAO_Internal\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Internal)\n- .value(\"Prs3d_DAO_External\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_External)\n- .value(\"Prs3d_DAO_Fit\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Fit).export_values();\n+ py::enum_(m, \"Prs3d_DatumMode\",R\"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#\")\n+ .value(\"Prs3d_DM_WireFrame\",Prs3d_DatumMode::Prs3d_DM_WireFrame)\n+ .value(\"Prs3d_DM_Shaded\",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values();\n+ 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.)#\")\n+ .value(\"Prs3d_DTVP_Above\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above)\n+ .value(\"Prs3d_DTVP_Below\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below)\n+ .value(\"Prs3d_DTVP_Center\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values();\n+ 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.)#\")\n+ .value(\"Prs3d_DTHP_Left\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left)\n+ .value(\"Prs3d_DTHP_Right\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right)\n+ .value(\"Prs3d_DTHP_Center\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center)\n+ .value(\"Prs3d_DTHP_Fit\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values();\n+ 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.)#\")\n+ .value(\"Prs3d_VDM_Isolated\",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated)\n+ .value(\"Prs3d_VDM_All\",Prs3d_VertexDrawMode::Prs3d_VDM_All)\n+ .value(\"Prs3d_VDM_Inherited\",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values();\n py::enum_(m, \"Prs3d_DatumParts\",R\"#(Enumeration defining a part of datum aspect, see Prs3d_Datum.)#\")\n .value(\"Prs3d_DatumParts_Origin\",Prs3d_DatumParts::Prs3d_DatumParts_Origin)\n .value(\"Prs3d_DatumParts_XAxis\",Prs3d_DatumParts::Prs3d_DatumParts_XAxis)\n .value(\"Prs3d_DatumParts_YAxis\",Prs3d_DatumParts::Prs3d_DatumParts_YAxis)\n .value(\"Prs3d_DatumParts_ZAxis\",Prs3d_DatumParts::Prs3d_DatumParts_ZAxis)\n .value(\"Prs3d_DatumParts_XArrow\",Prs3d_DatumParts::Prs3d_DatumParts_XArrow)\n .value(\"Prs3d_DatumParts_YArrow\",Prs3d_DatumParts::Prs3d_DatumParts_YArrow)\n@@ -120,18 +124,18 @@\n .value(\"Prs3d_DP_YArrow\",Prs3d_DatumParts::Prs3d_DP_YArrow)\n .value(\"Prs3d_DP_ZArrow\",Prs3d_DatumParts::Prs3d_DP_ZArrow)\n .value(\"Prs3d_DP_XOYAxis\",Prs3d_DatumParts::Prs3d_DP_XOYAxis)\n .value(\"Prs3d_DP_YOZAxis\",Prs3d_DatumParts::Prs3d_DP_YOZAxis)\n .value(\"Prs3d_DP_XOZAxis\",Prs3d_DatumParts::Prs3d_DP_XOZAxis)\n .value(\"Prs3d_DP_None\",Prs3d_DatumParts::Prs3d_DP_None).export_values();\n m.attr(\"Prs3d_DatumParts_NB\") = py::cast(int(Prs3d_DatumParts_NB));\n- 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.)#\")\n- .value(\"Prs3d_VDM_Isolated\",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated)\n- .value(\"Prs3d_VDM_All\",Prs3d_VertexDrawMode::Prs3d_VDM_All)\n- .value(\"Prs3d_VDM_Inherited\",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values();\n+ 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.)#\")\n+ .value(\"Prs3d_TOH_NotSet\",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet)\n+ .value(\"Prs3d_TOH_PolyAlgo\",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo)\n+ .value(\"Prs3d_TOH_Algo\",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values();\n py::enum_(m, \"Prs3d_DatumAttribute\",R\"#(Enumeration defining a datum attribute, see Prs3d_Datum.)#\")\n .value(\"Prs3d_DatumAttribute_XAxisLength\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_XAxisLength)\n .value(\"Prs3d_DatumAttribute_YAxisLength\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_YAxisLength)\n .value(\"Prs3d_DatumAttribute_ZAxisLength\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ZAxisLength)\n .value(\"Prs3d_DatumAttribute_ShadingTubeRadiusPercent\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingTubeRadiusPercent)\n .value(\"Prs3d_DatumAttribute_ShadingConeRadiusPercent\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeRadiusPercent)\n .value(\"Prs3d_DatumAttribute_ShadingConeLengthPercent\",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeLengthPercent)\n@@ -142,25 +146,22 @@\n .value(\"Prs3d_DA_ZAxisLength\",Prs3d_DatumAttribute::Prs3d_DA_ZAxisLength)\n .value(\"Prs3d_DP_ShadingTubeRadiusPercent\",Prs3d_DatumAttribute::Prs3d_DP_ShadingTubeRadiusPercent)\n .value(\"Prs3d_DP_ShadingConeRadiusPercent\",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeRadiusPercent)\n .value(\"Prs3d_DP_ShadingConeLengthPercent\",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeLengthPercent)\n .value(\"Prs3d_DP_ShadingOriginRadiusPercent\",Prs3d_DatumAttribute::Prs3d_DP_ShadingOriginRadiusPercent)\n .value(\"Prs3d_DP_ShadingNumberOfFacettes\",Prs3d_DatumAttribute::Prs3d_DP_ShadingNumberOfFacettes).export_values();\n m.attr(\"Prs3d_DatumAttribute_NB\") = py::cast(int(Prs3d_DatumAttribute_NB));\n- 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.)#\")\n- .value(\"Prs3d_DTHP_Left\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left)\n- .value(\"Prs3d_DTHP_Right\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right)\n- .value(\"Prs3d_DTHP_Center\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center)\n- .value(\"Prs3d_DTHP_Fit\",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values();\n- py::enum_(m, \"Prs3d_DatumMode\",R\"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#\")\n- .value(\"Prs3d_DM_WireFrame\",Prs3d_DatumMode::Prs3d_DM_WireFrame)\n- .value(\"Prs3d_DM_Shaded\",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values();\n- py::enum_(m, \"Prs3d_TypeOfLinePicking\",R\"#()#\")\n- .value(\"Prs3d_TOLP_Point\",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Point)\n- .value(\"Prs3d_TOLP_Segment\",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Segment).export_values();\n+ py::enum_(m, \"Prs3d_TypeOfHighlight\",R\"#(Type of highlighting to apply specific style.)#\")\n+ .value(\"Prs3d_TypeOfHighlight_None\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None)\n+ .value(\"Prs3d_TypeOfHighlight_Selected\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected)\n+ .value(\"Prs3d_TypeOfHighlight_Dynamic\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic)\n+ .value(\"Prs3d_TypeOfHighlight_LocalSelected\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected)\n+ .value(\"Prs3d_TypeOfHighlight_LocalDynamic\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic)\n+ .value(\"Prs3d_TypeOfHighlight_SubIntensity\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity)\n+ .value(\"Prs3d_TypeOfHighlight_NB\",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values();\n py::enum_(m, \"Prs3d_DatumAxes\",R\"#(Enumeration defining axes used in datum aspect, see Prs3d_Datum.)#\")\n .value(\"Prs3d_DatumAxes_XAxis\",Prs3d_DatumAxes::Prs3d_DatumAxes_XAxis)\n .value(\"Prs3d_DatumAxes_YAxis\",Prs3d_DatumAxes::Prs3d_DatumAxes_YAxis)\n .value(\"Prs3d_DatumAxes_ZAxis\",Prs3d_DatumAxes::Prs3d_DatumAxes_ZAxis)\n .value(\"Prs3d_DatumAxes_XYAxes\",Prs3d_DatumAxes::Prs3d_DatumAxes_XYAxes)\n .value(\"Prs3d_DatumAxes_YZAxes\",Prs3d_DatumAxes::Prs3d_DatumAxes_YZAxes)\n .value(\"Prs3d_DatumAxes_XZAxes\",Prs3d_DatumAxes::Prs3d_DatumAxes_XZAxes)\n@@ -168,22 +169,21 @@\n .value(\"Prs3d_DA_XAxis\",Prs3d_DatumAxes::Prs3d_DA_XAxis)\n .value(\"Prs3d_DA_YAxis\",Prs3d_DatumAxes::Prs3d_DA_YAxis)\n .value(\"Prs3d_DA_ZAxis\",Prs3d_DatumAxes::Prs3d_DA_ZAxis)\n .value(\"Prs3d_DA_XYAxis\",Prs3d_DatumAxes::Prs3d_DA_XYAxis)\n .value(\"Prs3d_DA_YZAxis\",Prs3d_DatumAxes::Prs3d_DA_YZAxis)\n .value(\"Prs3d_DA_XZAxis\",Prs3d_DatumAxes::Prs3d_DA_XZAxis)\n .value(\"Prs3d_DA_XYZAxis\",Prs3d_DatumAxes::Prs3d_DA_XYZAxis).export_values();\n- 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.)#\")\n- .value(\"Prs3d_TOH_NotSet\",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet)\n- .value(\"Prs3d_TOH_PolyAlgo\",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo)\n- .value(\"Prs3d_TOH_Algo\",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values();\n- 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.)#\")\n- .value(\"Prs3d_DTVP_Above\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above)\n- .value(\"Prs3d_DTVP_Below\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below)\n- .value(\"Prs3d_DTVP_Center\",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values();\n+ py::enum_(m, \"Prs3d_TypeOfLinePicking\",R\"#()#\")\n+ .value(\"Prs3d_TOLP_Point\",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Point)\n+ .value(\"Prs3d_TOLP_Segment\",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Segment).export_values();\n+ 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)#\")\n+ .value(\"Prs3d_DAO_Internal\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Internal)\n+ .value(\"Prs3d_DAO_External\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_External)\n+ .value(\"Prs3d_DAO_Fit\",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Fit).export_values();\n \n //Python trampoline classes\n class Py_Prs3d_BasicAspect : public Prs3d_BasicAspect{\n public:\n using Prs3d_BasicAspect::Prs3d_BasicAspect;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/PrsMgr_pre.cpp", "source2": "./usr/share/libocp/OCP/PrsMgr_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -56,24 +56,24 @@\n py::module m = main_module.def_submodule(\"PrsMgr\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"PrsMgr_TypeOfPresentation3d\",R\"#(The type of presentation.)#\")\n+ .value(\"PrsMgr_TOP_AllView\",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_AllView)\n+ .value(\"PrsMgr_TOP_ProjectorDependent\",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_ProjectorDependent).export_values();\n py::enum_(m, \"PrsMgr_DisplayStatus\",R\"#(To give the display status of an Interactive Object.)#\")\n .value(\"PrsMgr_DisplayStatus_Displayed\",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_Displayed)\n .value(\"PrsMgr_DisplayStatus_Erased\",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_Erased)\n .value(\"PrsMgr_DisplayStatus_None\",PrsMgr_DisplayStatus::PrsMgr_DisplayStatus_None)\n .value(\"AIS_DS_Displayed\",PrsMgr_DisplayStatus::AIS_DS_Displayed)\n .value(\"AIS_DS_Erased\",PrsMgr_DisplayStatus::AIS_DS_Erased)\n .value(\"AIS_DS_None\",PrsMgr_DisplayStatus::AIS_DS_None).export_values();\n- py::enum_(m, \"PrsMgr_TypeOfPresentation3d\",R\"#(The type of presentation.)#\")\n- .value(\"PrsMgr_TOP_AllView\",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_AllView)\n- .value(\"PrsMgr_TOP_ProjectorDependent\",PrsMgr_TypeOfPresentation3d::PrsMgr_TOP_ProjectorDependent).export_values();\n \n //Python trampoline classes\n class Py_PrsMgr_PresentableObject : public PrsMgr_PresentableObject{\n public:\n using PrsMgr_PresentableObject::PrsMgr_PresentableObject;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Quantity_pre.cpp", "source2": "./usr/share/libocp/OCP/Quantity_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -44,14 +44,20 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"Quantity_TypeOfColor\",R\"#(Identifies color definition systems.)#\")\n+ .value(\"Quantity_TOC_RGB\",Quantity_TypeOfColor::Quantity_TOC_RGB)\n+ .value(\"Quantity_TOC_sRGB\",Quantity_TypeOfColor::Quantity_TOC_sRGB)\n+ .value(\"Quantity_TOC_HLS\",Quantity_TypeOfColor::Quantity_TOC_HLS)\n+ .value(\"Quantity_TOC_CIELab\",Quantity_TypeOfColor::Quantity_TOC_CIELab)\n+ .value(\"Quantity_TOC_CIELch\",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values();\n py::enum_(m, \"Quantity_NameOfColor\",R\"#(Definition of names of known colors. The names come (mostly) from the X11 specification.)#\")\n .value(\"Quantity_NOC_BLACK\",Quantity_NameOfColor::Quantity_NOC_BLACK)\n .value(\"Quantity_NOC_MATRABLUE\",Quantity_NameOfColor::Quantity_NOC_MATRABLUE)\n .value(\"Quantity_NOC_MATRAGRAY\",Quantity_NameOfColor::Quantity_NOC_MATRAGRAY)\n .value(\"Quantity_NOC_ALICEBLUE\",Quantity_NameOfColor::Quantity_NOC_ALICEBLUE)\n .value(\"Quantity_NOC_ANTIQUEWHITE\",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE)\n .value(\"Quantity_NOC_ANTIQUEWHITE1\",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE1)\n@@ -566,20 +572,14 @@\n .value(\"Quantity_NOC_YELLOW\",Quantity_NameOfColor::Quantity_NOC_YELLOW)\n .value(\"Quantity_NOC_YELLOW1\",Quantity_NameOfColor::Quantity_NOC_YELLOW1)\n .value(\"Quantity_NOC_YELLOW2\",Quantity_NameOfColor::Quantity_NOC_YELLOW2)\n .value(\"Quantity_NOC_YELLOW3\",Quantity_NameOfColor::Quantity_NOC_YELLOW3)\n .value(\"Quantity_NOC_YELLOW4\",Quantity_NameOfColor::Quantity_NOC_YELLOW4)\n .value(\"Quantity_NOC_YELLOWGREEN\",Quantity_NameOfColor::Quantity_NOC_YELLOWGREEN)\n .value(\"Quantity_NOC_WHITE\",Quantity_NameOfColor::Quantity_NOC_WHITE).export_values();\n- py::enum_(m, \"Quantity_TypeOfColor\",R\"#(Identifies color definition systems.)#\")\n- .value(\"Quantity_TOC_RGB\",Quantity_TypeOfColor::Quantity_TOC_RGB)\n- .value(\"Quantity_TOC_sRGB\",Quantity_TypeOfColor::Quantity_TOC_sRGB)\n- .value(\"Quantity_TOC_HLS\",Quantity_TypeOfColor::Quantity_TOC_HLS)\n- .value(\"Quantity_TOC_CIELab\",Quantity_TypeOfColor::Quantity_TOC_CIELab)\n- .value(\"Quantity_TOC_CIELch\",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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).)#\");\n py::class_ >(m,\"Quantity_ColorRGBA\",R\"#(The pair of Quantity_Color and Alpha component (1.0 opaque, 0.0 transparent).)#\");\n 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.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/SelectMgr_pre.cpp", "source2": "./usr/share/libocp/OCP/SelectMgr_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -107,44 +107,44 @@\n \n // add namespaces as submodules\n m.def_submodule(\"SelectMgr_MatOp\");\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"SelectMgr_PickingStrategy\",R\"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#\")\n+ .value(\"SelectMgr_PickingStrategy_FirstAcceptable\",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable)\n+ .value(\"SelectMgr_PickingStrategy_OnlyTopmost\",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values();\n+ py::enum_(m, \"SelectMgr_TypeOfUpdate\",R\"#(Provides values for types of update, including - full - partial - none.)#\")\n+ .value(\"SelectMgr_TOU_Full\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Full)\n+ .value(\"SelectMgr_TOU_Partial\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Partial)\n+ .value(\"SelectMgr_TOU_None\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_None).export_values();\n py::enum_(m, \"SelectMgr_SelectionType\",R\"#(Possible selection types)#\")\n .value(\"SelectMgr_SelectionType_Unknown\",SelectMgr_SelectionType::SelectMgr_SelectionType_Unknown)\n .value(\"SelectMgr_SelectionType_Point\",SelectMgr_SelectionType::SelectMgr_SelectionType_Point)\n .value(\"SelectMgr_SelectionType_Box\",SelectMgr_SelectionType::SelectMgr_SelectionType_Box)\n .value(\"SelectMgr_SelectionType_Polyline\",SelectMgr_SelectionType::SelectMgr_SelectionType_Polyline).export_values();\n+ py::enum_(m, \"SelectMgr_FilterType\",R\"#(Enumeration defines the filter type.)#\")\n+ .value(\"SelectMgr_FilterType_AND\",SelectMgr_FilterType::SelectMgr_FilterType_AND)\n+ .value(\"SelectMgr_FilterType_OR\",SelectMgr_FilterType::SelectMgr_FilterType_OR).export_values();\n+ 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).)#\")\n+ .value(\"SelectMgr_TypeOfDepthTolerance_Uniform\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform)\n+ .value(\"SelectMgr_TypeOfDepthTolerance_UniformPixels\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels)\n+ .value(\"SelectMgr_TypeOfDepthTolerance_SensitivityFactor\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values();\n py::enum_(m, \"SelectMgr_StateOfSelection\",R\"#(different state of a Selection in a ViewerSelector...)#\")\n .value(\"SelectMgr_SOS_Any\",SelectMgr_StateOfSelection::SelectMgr_SOS_Any)\n .value(\"SelectMgr_SOS_Unknown\",SelectMgr_StateOfSelection::SelectMgr_SOS_Unknown)\n .value(\"SelectMgr_SOS_Deactivated\",SelectMgr_StateOfSelection::SelectMgr_SOS_Deactivated)\n .value(\"SelectMgr_SOS_Activated\",SelectMgr_StateOfSelection::SelectMgr_SOS_Activated).export_values();\n- 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).)#\")\n- .value(\"SelectMgr_TypeOfDepthTolerance_Uniform\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform)\n- .value(\"SelectMgr_TypeOfDepthTolerance_UniformPixels\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels)\n- .value(\"SelectMgr_TypeOfDepthTolerance_SensitivityFactor\",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values();\n 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.)#\")\n .value(\"SelectMgr_TBU_Add\",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Add)\n .value(\"SelectMgr_TBU_Remove\",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Remove)\n .value(\"SelectMgr_TBU_Renew\",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Renew)\n .value(\"SelectMgr_TBU_Invalidate\",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Invalidate)\n .value(\"SelectMgr_TBU_None\",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_None).export_values();\n- py::enum_(m, \"SelectMgr_PickingStrategy\",R\"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#\")\n- .value(\"SelectMgr_PickingStrategy_FirstAcceptable\",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable)\n- .value(\"SelectMgr_PickingStrategy_OnlyTopmost\",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values();\n- py::enum_(m, \"SelectMgr_FilterType\",R\"#(Enumeration defines the filter type.)#\")\n- .value(\"SelectMgr_FilterType_AND\",SelectMgr_FilterType::SelectMgr_FilterType_AND)\n- .value(\"SelectMgr_FilterType_OR\",SelectMgr_FilterType::SelectMgr_FilterType_OR).export_values();\n- py::enum_(m, \"SelectMgr_TypeOfUpdate\",R\"#(Provides values for types of update, including - full - partial - none.)#\")\n- .value(\"SelectMgr_TOU_Full\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Full)\n- .value(\"SelectMgr_TOU_Partial\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Partial)\n- .value(\"SelectMgr_TOU_None\",SelectMgr_TypeOfUpdate::SelectMgr_TOU_None).export_values();\n \n //Python trampoline classes\n class Py_SelectMgr_BaseIntersector : public SelectMgr_BaseIntersector{\n public:\n using SelectMgr_BaseIntersector::SelectMgr_BaseIntersector;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/ShapeExtend_pre.cpp", "source2": "./usr/share/libocp/OCP/ShapeExtend_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -60,14 +60,18 @@\n py::module m = main_module.def_submodule(\"ShapeExtend\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ 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])#\")\n+ .value(\"ShapeExtend_Natural\",ShapeExtend_Parametrisation::ShapeExtend_Natural)\n+ .value(\"ShapeExtend_Uniform\",ShapeExtend_Parametrisation::ShapeExtend_Uniform)\n+ .value(\"ShapeExtend_Unitary\",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values();\n 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))#\")\n .value(\"ShapeExtend_OK\",ShapeExtend_Status::ShapeExtend_OK)\n .value(\"ShapeExtend_DONE1\",ShapeExtend_Status::ShapeExtend_DONE1)\n .value(\"ShapeExtend_DONE2\",ShapeExtend_Status::ShapeExtend_DONE2)\n .value(\"ShapeExtend_DONE3\",ShapeExtend_Status::ShapeExtend_DONE3)\n .value(\"ShapeExtend_DONE4\",ShapeExtend_Status::ShapeExtend_DONE4)\n .value(\"ShapeExtend_DONE5\",ShapeExtend_Status::ShapeExtend_DONE5)\n@@ -80,18 +84,14 @@\n .value(\"ShapeExtend_FAIL3\",ShapeExtend_Status::ShapeExtend_FAIL3)\n .value(\"ShapeExtend_FAIL4\",ShapeExtend_Status::ShapeExtend_FAIL4)\n .value(\"ShapeExtend_FAIL5\",ShapeExtend_Status::ShapeExtend_FAIL5)\n .value(\"ShapeExtend_FAIL6\",ShapeExtend_Status::ShapeExtend_FAIL6)\n .value(\"ShapeExtend_FAIL7\",ShapeExtend_Status::ShapeExtend_FAIL7)\n .value(\"ShapeExtend_FAIL8\",ShapeExtend_Status::ShapeExtend_FAIL8)\n .value(\"ShapeExtend_FAIL\",ShapeExtend_Status::ShapeExtend_FAIL).export_values();\n- 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])#\")\n- .value(\"ShapeExtend_Natural\",ShapeExtend_Parametrisation::ShapeExtend_Natural)\n- .value(\"ShapeExtend_Uniform\",ShapeExtend_Parametrisation::ShapeExtend_Uniform)\n- .value(\"ShapeExtend_Unitary\",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values();\n \n //Python trampoline classes\n class Py_ShapeExtend_ComplexCurve : public ShapeExtend_ComplexCurve{\n public:\n using ShapeExtend_ComplexCurve::ShapeExtend_ComplexCurve;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/Standard.cpp", "source2": "./usr/share/libocp/OCP/Standard.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -905,19 +905,19 @@\n ( const handle & (Standard_Type::*)() const) static_cast< const handle & (Standard_Type::*)() const>(&Standard_Type::DynamicType),\n R\"#()#\"\n \n )\n ;\n \n // functions\n+auto mMurmurHash = static_cast(m.attr(\"MurmurHash\"));\n+auto mstd = static_cast(m.attr(\"std\"));\n+auto mFNVHash = static_cast(m.attr(\"FNVHash\"));\n auto mopencascade = static_cast(m.attr(\"opencascade\"));\n auto mMurmurHashUtils = static_cast(m.attr(\"MurmurHashUtils\"));\n-auto mFNVHash = static_cast(m.attr(\"FNVHash\"));\n-auto mstd = static_cast(m.attr(\"std\"));\n-auto mMurmurHash = static_cast(m.attr(\"MurmurHash\"));\n \n // /usr/include/opencascade/Standard.hxx\n // /usr/include/opencascade/Standard_AbortiveTransaction.hxx\n // /usr/include/opencascade/Standard_ArrayStreamBuffer.hxx\n // /usr/include/opencascade/Standard_Assert.hxx\n m.def(\"Standard_ASSERT_DO_NOTHING\",\n (void (*)()) static_cast(&Standard_ASSERT_DO_NOTHING),\n"}, {"source1": "./usr/share/libocp/OCP/Standard_pre.cpp", "source2": "./usr/share/libocp/OCP/Standard_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -107,36 +107,36 @@\n // Module definiiton\n void register_Standard_enums(py::module &main_module) {\n \n \n py::module m = main_module.def_submodule(\"Standard\", R\"#()#\");\n \n // add namespaces as submodules\n+m.def_submodule(\"MurmurHash\");\n+m.def_submodule(\"std\");\n+m.def_submodule(\"FNVHash\");\n m.def_submodule(\"opencascade\");\n m.def_submodule(\"MurmurHashUtils\");\n-m.def_submodule(\"FNVHash\");\n-m.def_submodule(\"std\");\n-m.def_submodule(\"MurmurHash\");\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Standard_HandlerStatus\",R\"#()#\")\n- .value(\"Standard_HandlerVoid\",Standard_HandlerStatus::Standard_HandlerVoid)\n- .value(\"Standard_HandlerJumped\",Standard_HandlerStatus::Standard_HandlerJumped)\n- .value(\"Standard_HandlerProcessed\",Standard_HandlerStatus::Standard_HandlerProcessed).export_values();\n py::enum_(m, \"Standard_JsonKey\",R\"#(Kind of key in Json string)#\")\n .value(\"Standard_JsonKey_None\",Standard_JsonKey::Standard_JsonKey_None)\n .value(\"Standard_JsonKey_OpenChild\",Standard_JsonKey::Standard_JsonKey_OpenChild)\n .value(\"Standard_JsonKey_CloseChild\",Standard_JsonKey::Standard_JsonKey_CloseChild)\n .value(\"Standard_JsonKey_OpenContainer\",Standard_JsonKey::Standard_JsonKey_OpenContainer)\n .value(\"Standard_JsonKey_CloseContainer\",Standard_JsonKey::Standard_JsonKey_CloseContainer)\n .value(\"Standard_JsonKey_Quote\",Standard_JsonKey::Standard_JsonKey_Quote)\n .value(\"Standard_JsonKey_SeparatorKeyToValue\",Standard_JsonKey::Standard_JsonKey_SeparatorKeyToValue)\n .value(\"Standard_JsonKey_SeparatorValueToValue\",Standard_JsonKey::Standard_JsonKey_SeparatorValueToValue).export_values();\n+ py::enum_(m, \"Standard_HandlerStatus\",R\"#()#\")\n+ .value(\"Standard_HandlerVoid\",Standard_HandlerStatus::Standard_HandlerVoid)\n+ .value(\"Standard_HandlerJumped\",Standard_HandlerStatus::Standard_HandlerJumped)\n+ .value(\"Standard_HandlerProcessed\",Standard_HandlerStatus::Standard_HandlerProcessed).export_values();\n \n //Python trampoline classes\n class Py_Standard_MMgrRoot : public Standard_MMgrRoot{\n public:\n using Standard_MMgrRoot::Standard_MMgrRoot;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/StdSelect_pre.cpp", "source2": "./usr/share/libocp/OCP/StdSelect_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -47,36 +47,36 @@\n py::module m = main_module.def_submodule(\"StdSelect\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ 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.)#\")\n+ .value(\"StdSelect_AnyFace\",StdSelect_TypeOfFace::StdSelect_AnyFace)\n+ .value(\"StdSelect_Plane\",StdSelect_TypeOfFace::StdSelect_Plane)\n+ .value(\"StdSelect_Cylinder\",StdSelect_TypeOfFace::StdSelect_Cylinder)\n+ .value(\"StdSelect_Sphere\",StdSelect_TypeOfFace::StdSelect_Sphere)\n+ .value(\"StdSelect_Torus\",StdSelect_TypeOfFace::StdSelect_Torus)\n+ .value(\"StdSelect_Revol\",StdSelect_TypeOfFace::StdSelect_Revol)\n+ .value(\"StdSelect_Cone\",StdSelect_TypeOfFace::StdSelect_Cone).export_values();\n py::enum_(m, \"StdSelect_TypeOfSelectionImage\",R\"#(Type of output selection image.)#\")\n .value(\"StdSelect_TypeOfSelectionImage_NormalizedDepth\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepth)\n .value(\"StdSelect_TypeOfSelectionImage_NormalizedDepthInverted\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepthInverted)\n .value(\"StdSelect_TypeOfSelectionImage_UnnormalizedDepth\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_UnnormalizedDepth)\n .value(\"StdSelect_TypeOfSelectionImage_ColoredDetectedObject\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredDetectedObject)\n .value(\"StdSelect_TypeOfSelectionImage_ColoredEntity\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntity)\n .value(\"StdSelect_TypeOfSelectionImage_ColoredEntityType\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntityType)\n .value(\"StdSelect_TypeOfSelectionImage_ColoredOwner\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredOwner)\n .value(\"StdSelect_TypeOfSelectionImage_ColoredSelectionMode\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredSelectionMode)\n .value(\"StdSelect_TypeOfSelectionImage_SurfaceNormal\",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_SurfaceNormal).export_values();\n 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.)#\")\n .value(\"StdSelect_AnyEdge\",StdSelect_TypeOfEdge::StdSelect_AnyEdge)\n .value(\"StdSelect_Line\",StdSelect_TypeOfEdge::StdSelect_Line)\n .value(\"StdSelect_Circle\",StdSelect_TypeOfEdge::StdSelect_Circle).export_values();\n- 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.)#\")\n- .value(\"StdSelect_AnyFace\",StdSelect_TypeOfFace::StdSelect_AnyFace)\n- .value(\"StdSelect_Plane\",StdSelect_TypeOfFace::StdSelect_Plane)\n- .value(\"StdSelect_Cylinder\",StdSelect_TypeOfFace::StdSelect_Cylinder)\n- .value(\"StdSelect_Sphere\",StdSelect_TypeOfFace::StdSelect_Sphere)\n- .value(\"StdSelect_Torus\",StdSelect_TypeOfFace::StdSelect_Torus)\n- .value(\"StdSelect_Revol\",StdSelect_TypeOfFace::StdSelect_Revol)\n- .value(\"StdSelect_Cone\",StdSelect_TypeOfFace::StdSelect_Cone).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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:)#\");\n 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.)#\");\n 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.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/StepDimTol_pre.cpp", "source2": "./usr/share/libocp/OCP/StepDimTol_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -199,38 +199,39 @@\n py::module m = main_module.def_submodule(\"StepDimTol\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"StepDimTol_LimitCondition\",R\"#()#\")\n- .value(\"StepDimTol_MaximumMaterialCondition\",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition)\n- .value(\"StepDimTol_LeastMaterialCondition\",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition)\n- .value(\"StepDimTol_RegardlessOfFeatureSize\",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values();\n py::enum_(m, \"StepDimTol_AreaUnitType\",R\"#()#\")\n .value(\"StepDimTol_Circular\",StepDimTol_AreaUnitType::StepDimTol_Circular)\n .value(\"StepDimTol_Rectangular\",StepDimTol_AreaUnitType::StepDimTol_Rectangular)\n .value(\"StepDimTol_Square\",StepDimTol_AreaUnitType::StepDimTol_Square).export_values();\n- py::enum_(m, \"StepDimTol_GeometricToleranceModifier\",R\"#()#\")\n- .value(\"StepDimTol_GTMAnyCrossSection\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMAnyCrossSection)\n- .value(\"StepDimTol_GTMCommonZone\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMCommonZone)\n- .value(\"StepDimTol_GTMEachRadialElement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMEachRadialElement)\n- .value(\"StepDimTol_GTMFreeState\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMFreeState)\n- .value(\"StepDimTol_GTMLeastMaterialRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLeastMaterialRequirement)\n- .value(\"StepDimTol_GTMLineElement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLineElement)\n- .value(\"StepDimTol_GTMMajorDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMajorDiameter)\n- .value(\"StepDimTol_GTMMaximumMaterialRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMaximumMaterialRequirement)\n- .value(\"StepDimTol_GTMMinorDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMinorDiameter)\n- .value(\"StepDimTol_GTMNotConvex\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMNotConvex)\n- .value(\"StepDimTol_GTMPitchDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMPitchDiameter)\n- .value(\"StepDimTol_GTMReciprocityRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMReciprocityRequirement)\n- .value(\"StepDimTol_GTMSeparateRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMSeparateRequirement)\n- .value(\"StepDimTol_GTMStatisticalTolerance\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMStatisticalTolerance)\n- .value(\"StepDimTol_GTMTangentPlane\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMTangentPlane).export_values();\n+ py::enum_(m, \"StepDimTol_DatumReferenceModifierType\",R\"#()#\")\n+ .value(\"StepDimTol_CircularOrCylindrical\",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical)\n+ .value(\"StepDimTol_Distance\",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance)\n+ .value(\"StepDimTol_Projected\",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected)\n+ .value(\"StepDimTol_Spherical\",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values();\n+ py::enum_(m, \"StepDimTol_GeometricToleranceType\",R\"#()#\")\n+ .value(\"StepDimTol_GTTAngularityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTAngularityTolerance)\n+ .value(\"StepDimTol_GTTCircularRunoutTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCircularRunoutTolerance)\n+ .value(\"StepDimTol_GTTCoaxialityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCoaxialityTolerance)\n+ .value(\"StepDimTol_GTTConcentricityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTConcentricityTolerance)\n+ .value(\"StepDimTol_GTTCylindricityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCylindricityTolerance)\n+ .value(\"StepDimTol_GTTFlatnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTFlatnessTolerance)\n+ .value(\"StepDimTol_GTTLineProfileTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTLineProfileTolerance)\n+ .value(\"StepDimTol_GTTParallelismTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTParallelismTolerance)\n+ .value(\"StepDimTol_GTTPerpendicularityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTPerpendicularityTolerance)\n+ .value(\"StepDimTol_GTTPositionTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTPositionTolerance)\n+ .value(\"StepDimTol_GTTRoundnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTRoundnessTolerance)\n+ .value(\"StepDimTol_GTTStraightnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTStraightnessTolerance)\n+ .value(\"StepDimTol_GTTSurfaceProfileTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTSurfaceProfileTolerance)\n+ .value(\"StepDimTol_GTTSymmetryTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTSymmetryTolerance)\n+ .value(\"StepDimTol_GTTTotalRunoutTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTTotalRunoutTolerance).export_values();\n py::enum_(m, \"StepDimTol_SimpleDatumReferenceModifier\",R\"#()#\")\n .value(\"StepDimTol_SDRMAnyCrossSection\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMAnyCrossSection)\n .value(\"StepDimTol_SDRMAnyLongitudinalSection\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMAnyLongitudinalSection)\n .value(\"StepDimTol_SDRMBasic\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMBasic)\n .value(\"StepDimTol_SDRMContactingFeature\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMContactingFeature)\n .value(\"StepDimTol_SDRMDegreeOfFreedomConstraintU\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMDegreeOfFreedomConstraintU)\n .value(\"StepDimTol_SDRMDegreeOfFreedomConstraintV\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMDegreeOfFreedomConstraintV)\n@@ -246,35 +247,34 @@\n .value(\"StepDimTol_SDRMMaximumMaterialRequirement\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMaximumMaterialRequirement)\n .value(\"StepDimTol_SDRMMinorDiameter\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMinorDiameter)\n .value(\"StepDimTol_SDRMOrientation\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMOrientation)\n .value(\"StepDimTol_SDRMPitchDiameter\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPitchDiameter)\n .value(\"StepDimTol_SDRMPlane\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPlane)\n .value(\"StepDimTol_SDRMPoint\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPoint)\n .value(\"StepDimTol_SDRMTranslation\",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMTranslation).export_values();\n- py::enum_(m, \"StepDimTol_DatumReferenceModifierType\",R\"#()#\")\n- .value(\"StepDimTol_CircularOrCylindrical\",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical)\n- .value(\"StepDimTol_Distance\",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance)\n- .value(\"StepDimTol_Projected\",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected)\n- .value(\"StepDimTol_Spherical\",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values();\n- py::enum_(m, \"StepDimTol_GeometricToleranceType\",R\"#()#\")\n- .value(\"StepDimTol_GTTAngularityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTAngularityTolerance)\n- .value(\"StepDimTol_GTTCircularRunoutTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCircularRunoutTolerance)\n- .value(\"StepDimTol_GTTCoaxialityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCoaxialityTolerance)\n- .value(\"StepDimTol_GTTConcentricityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTConcentricityTolerance)\n- .value(\"StepDimTol_GTTCylindricityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTCylindricityTolerance)\n- .value(\"StepDimTol_GTTFlatnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTFlatnessTolerance)\n- .value(\"StepDimTol_GTTLineProfileTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTLineProfileTolerance)\n- .value(\"StepDimTol_GTTParallelismTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTParallelismTolerance)\n- .value(\"StepDimTol_GTTPerpendicularityTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTPerpendicularityTolerance)\n- .value(\"StepDimTol_GTTPositionTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTPositionTolerance)\n- .value(\"StepDimTol_GTTRoundnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTRoundnessTolerance)\n- .value(\"StepDimTol_GTTStraightnessTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTStraightnessTolerance)\n- .value(\"StepDimTol_GTTSurfaceProfileTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTSurfaceProfileTolerance)\n- .value(\"StepDimTol_GTTSymmetryTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTSymmetryTolerance)\n- .value(\"StepDimTol_GTTTotalRunoutTolerance\",StepDimTol_GeometricToleranceType::StepDimTol_GTTTotalRunoutTolerance).export_values();\n+ py::enum_(m, \"StepDimTol_LimitCondition\",R\"#()#\")\n+ .value(\"StepDimTol_MaximumMaterialCondition\",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition)\n+ .value(\"StepDimTol_LeastMaterialCondition\",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition)\n+ .value(\"StepDimTol_RegardlessOfFeatureSize\",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values();\n+ py::enum_(m, \"StepDimTol_GeometricToleranceModifier\",R\"#()#\")\n+ .value(\"StepDimTol_GTMAnyCrossSection\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMAnyCrossSection)\n+ .value(\"StepDimTol_GTMCommonZone\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMCommonZone)\n+ .value(\"StepDimTol_GTMEachRadialElement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMEachRadialElement)\n+ .value(\"StepDimTol_GTMFreeState\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMFreeState)\n+ .value(\"StepDimTol_GTMLeastMaterialRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLeastMaterialRequirement)\n+ .value(\"StepDimTol_GTMLineElement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLineElement)\n+ .value(\"StepDimTol_GTMMajorDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMajorDiameter)\n+ .value(\"StepDimTol_GTMMaximumMaterialRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMaximumMaterialRequirement)\n+ .value(\"StepDimTol_GTMMinorDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMMinorDiameter)\n+ .value(\"StepDimTol_GTMNotConvex\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMNotConvex)\n+ .value(\"StepDimTol_GTMPitchDiameter\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMPitchDiameter)\n+ .value(\"StepDimTol_GTMReciprocityRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMReciprocityRequirement)\n+ .value(\"StepDimTol_GTMSeparateRequirement\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMSeparateRequirement)\n+ .value(\"StepDimTol_GTMStatisticalTolerance\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMStatisticalTolerance)\n+ .value(\"StepDimTol_GTMTangentPlane\",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMTangentPlane).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n preregister_template_NCollection_Array1>(m,\"StepDimTol_Array1OfDatumReference\");\n preregister_template_NCollection_Array1>(m,\"StepDimTol_Array1OfDatumReferenceCompartment\");\n preregister_template_NCollection_Array1>(m,\"StepDimTol_Array1OfDatumReferenceElement\");\n"}, {"source1": "./usr/share/libocp/OCP/StepElement_pre.cpp", "source2": "./usr/share/libocp/OCP/StepElement_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -150,57 +150,57 @@\n py::module m = main_module.def_submodule(\"StepElement\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"StepElement_CurveEdge\",R\"#()#\")\n+ .value(\"StepElement_ElementEdge\",StepElement_CurveEdge::StepElement_ElementEdge).export_values();\n py::enum_(m, \"StepElement_ElementVolume\",R\"#()#\")\n .value(\"StepElement_Volume\",StepElement_ElementVolume::StepElement_Volume).export_values();\n- py::enum_(m, \"StepElement_UnspecifiedValue\",R\"#()#\")\n- .value(\"StepElement_Unspecified\",StepElement_UnspecifiedValue::StepElement_Unspecified).export_values();\n- py::enum_(m, \"StepElement_EnumeratedCurveElementPurpose\",R\"#()#\")\n- .value(\"StepElement_Axial\",StepElement_EnumeratedCurveElementPurpose::StepElement_Axial)\n- .value(\"StepElement_YYBending\",StepElement_EnumeratedCurveElementPurpose::StepElement_YYBending)\n- .value(\"StepElement_ZZBending\",StepElement_EnumeratedCurveElementPurpose::StepElement_ZZBending)\n- .value(\"StepElement_Torsion\",StepElement_EnumeratedCurveElementPurpose::StepElement_Torsion)\n- .value(\"StepElement_XYShear\",StepElement_EnumeratedCurveElementPurpose::StepElement_XYShear)\n- .value(\"StepElement_XZShear\",StepElement_EnumeratedCurveElementPurpose::StepElement_XZShear)\n- .value(\"StepElement_Warping\",StepElement_EnumeratedCurveElementPurpose::StepElement_Warping).export_values();\n- py::enum_(m, \"StepElement_EnumeratedVolumeElementPurpose\",R\"#()#\")\n- .value(\"StepElement_StressDisplacement\",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values();\n+ py::enum_(m, \"StepElement_ElementOrder\",R\"#()#\")\n+ .value(\"StepElement_Linear\",StepElement_ElementOrder::StepElement_Linear)\n+ .value(\"StepElement_Quadratic\",StepElement_ElementOrder::StepElement_Quadratic)\n+ .value(\"StepElement_Cubic\",StepElement_ElementOrder::StepElement_Cubic).export_values();\n py::enum_(m, \"StepElement_Volume3dElementShape\",R\"#()#\")\n .value(\"StepElement_Hexahedron\",StepElement_Volume3dElementShape::StepElement_Hexahedron)\n .value(\"StepElement_Wedge\",StepElement_Volume3dElementShape::StepElement_Wedge)\n .value(\"StepElement_Tetrahedron\",StepElement_Volume3dElementShape::StepElement_Tetrahedron)\n .value(\"StepElement_Pyramid\",StepElement_Volume3dElementShape::StepElement_Pyramid).export_values();\n- py::enum_(m, \"StepElement_ElementOrder\",R\"#()#\")\n- .value(\"StepElement_Linear\",StepElement_ElementOrder::StepElement_Linear)\n- .value(\"StepElement_Quadratic\",StepElement_ElementOrder::StepElement_Quadratic)\n- .value(\"StepElement_Cubic\",StepElement_ElementOrder::StepElement_Cubic).export_values();\n+ py::enum_(m, \"StepElement_Element2dShape\",R\"#()#\")\n+ .value(\"StepElement_Quadrilateral\",StepElement_Element2dShape::StepElement_Quadrilateral)\n+ .value(\"StepElement_Triangle\",StepElement_Element2dShape::StepElement_Triangle).export_values();\n+ py::enum_(m, \"StepElement_UnspecifiedValue\",R\"#()#\")\n+ .value(\"StepElement_Unspecified\",StepElement_UnspecifiedValue::StepElement_Unspecified).export_values();\n py::enum_(m, \"StepElement_EnumeratedCurveElementFreedom\",R\"#()#\")\n .value(\"StepElement_XTranslation\",StepElement_EnumeratedCurveElementFreedom::StepElement_XTranslation)\n .value(\"StepElement_YTranslation\",StepElement_EnumeratedCurveElementFreedom::StepElement_YTranslation)\n .value(\"StepElement_ZTranslation\",StepElement_EnumeratedCurveElementFreedom::StepElement_ZTranslation)\n .value(\"StepElement_XRotation\",StepElement_EnumeratedCurveElementFreedom::StepElement_XRotation)\n .value(\"StepElement_YRotation\",StepElement_EnumeratedCurveElementFreedom::StepElement_YRotation)\n .value(\"StepElement_ZRotation\",StepElement_EnumeratedCurveElementFreedom::StepElement_ZRotation)\n .value(\"StepElement_Warp\",StepElement_EnumeratedCurveElementFreedom::StepElement_Warp)\n .value(\"StepElement_None\",StepElement_EnumeratedCurveElementFreedom::StepElement_None).export_values();\n- py::enum_(m, \"StepElement_Element2dShape\",R\"#()#\")\n- .value(\"StepElement_Quadrilateral\",StepElement_Element2dShape::StepElement_Quadrilateral)\n- .value(\"StepElement_Triangle\",StepElement_Element2dShape::StepElement_Triangle).export_values();\n- py::enum_(m, \"StepElement_CurveEdge\",R\"#()#\")\n- .value(\"StepElement_ElementEdge\",StepElement_CurveEdge::StepElement_ElementEdge).export_values();\n py::enum_(m, \"StepElement_EnumeratedSurfaceElementPurpose\",R\"#()#\")\n .value(\"StepElement_MembraneDirect\",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneDirect)\n .value(\"StepElement_MembraneShear\",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneShear)\n .value(\"StepElement_BendingDirect\",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingDirect)\n .value(\"StepElement_BendingTorsion\",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingTorsion)\n .value(\"StepElement_NormalToPlaneShear\",StepElement_EnumeratedSurfaceElementPurpose::StepElement_NormalToPlaneShear).export_values();\n+ py::enum_(m, \"StepElement_EnumeratedVolumeElementPurpose\",R\"#()#\")\n+ .value(\"StepElement_StressDisplacement\",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values();\n+ py::enum_(m, \"StepElement_EnumeratedCurveElementPurpose\",R\"#()#\")\n+ .value(\"StepElement_Axial\",StepElement_EnumeratedCurveElementPurpose::StepElement_Axial)\n+ .value(\"StepElement_YYBending\",StepElement_EnumeratedCurveElementPurpose::StepElement_YYBending)\n+ .value(\"StepElement_ZZBending\",StepElement_EnumeratedCurveElementPurpose::StepElement_ZZBending)\n+ .value(\"StepElement_Torsion\",StepElement_EnumeratedCurveElementPurpose::StepElement_Torsion)\n+ .value(\"StepElement_XYShear\",StepElement_EnumeratedCurveElementPurpose::StepElement_XYShear)\n+ .value(\"StepElement_XZShear\",StepElement_EnumeratedCurveElementPurpose::StepElement_XZShear)\n+ .value(\"StepElement_Warping\",StepElement_EnumeratedCurveElementPurpose::StepElement_Warping).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ , Standard_Transient >(m,\"StepElement_AnalysisItemWithinRepresentation\",R\"#(Representation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentation)#\");\n preregister_template_NCollection_Array1>(m,\"StepElement_Array1OfCurveElementEndReleasePacket\");\n preregister_template_NCollection_Array1>(m,\"StepElement_Array1OfCurveElementSectionDefinition\");\n"}, {"source1": "./usr/share/libocp/OCP/StepFEA_pre.cpp", "source2": "./usr/share/libocp/OCP/StepFEA_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -217,32 +217,32 @@\n py::module m = main_module.def_submodule(\"StepFEA\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"StepFEA_CoordinateSystemType\",R\"#()#\")\n- .value(\"StepFEA_Cartesian\",StepFEA_CoordinateSystemType::StepFEA_Cartesian)\n- .value(\"StepFEA_Cylindrical\",StepFEA_CoordinateSystemType::StepFEA_Cylindrical)\n- .value(\"StepFEA_Spherical\",StepFEA_CoordinateSystemType::StepFEA_Spherical).export_values();\n py::enum_(m, \"StepFEA_ElementVolume\",R\"#()#\")\n .value(\"StepFEA_Volume\",StepFEA_ElementVolume::StepFEA_Volume).export_values();\n+ py::enum_(m, \"StepFEA_CurveEdge\",R\"#()#\")\n+ .value(\"StepFEA_ElementEdge\",StepFEA_CurveEdge::StepFEA_ElementEdge).export_values();\n+ py::enum_(m, \"StepFEA_UnspecifiedValue\",R\"#()#\")\n+ .value(\"StepFEA_Unspecified\",StepFEA_UnspecifiedValue::StepFEA_Unspecified).export_values();\n py::enum_(m, \"StepFEA_EnumeratedDegreeOfFreedom\",R\"#()#\")\n .value(\"StepFEA_XTranslation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XTranslation)\n .value(\"StepFEA_YTranslation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YTranslation)\n .value(\"StepFEA_ZTranslation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZTranslation)\n .value(\"StepFEA_XRotation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XRotation)\n .value(\"StepFEA_YRotation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YRotation)\n .value(\"StepFEA_ZRotation\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZRotation)\n .value(\"StepFEA_Warp\",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_Warp).export_values();\n- py::enum_(m, \"StepFEA_CurveEdge\",R\"#()#\")\n- .value(\"StepFEA_ElementEdge\",StepFEA_CurveEdge::StepFEA_ElementEdge).export_values();\n- py::enum_(m, \"StepFEA_UnspecifiedValue\",R\"#()#\")\n- .value(\"StepFEA_Unspecified\",StepFEA_UnspecifiedValue::StepFEA_Unspecified).export_values();\n+ py::enum_(m, \"StepFEA_CoordinateSystemType\",R\"#()#\")\n+ .value(\"StepFEA_Cartesian\",StepFEA_CoordinateSystemType::StepFEA_Cartesian)\n+ .value(\"StepFEA_Cylindrical\",StepFEA_CoordinateSystemType::StepFEA_Cylindrical)\n+ .value(\"StepFEA_Spherical\",StepFEA_CoordinateSystemType::StepFEA_Spherical).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n preregister_template_NCollection_Array1>(m,\"StepFEA_Array1OfCurveElementEndOffset\");\n preregister_template_NCollection_Array1>(m,\"StepFEA_Array1OfCurveElementEndRelease\");\n preregister_template_NCollection_Array1>(m,\"StepFEA_Array1OfCurveElementInterval\");\n"}, {"source1": "./usr/share/libocp/OCP/StepGeom_pre.cpp", "source2": "./usr/share/libocp/OCP/StepGeom_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -306,46 +306,46 @@\n \n // enums\n py::enum_(m, \"StepGeom_KnotType\",R\"#()#\")\n .value(\"StepGeom_ktUniformKnots\",StepGeom_KnotType::StepGeom_ktUniformKnots)\n .value(\"StepGeom_ktUnspecified\",StepGeom_KnotType::StepGeom_ktUnspecified)\n .value(\"StepGeom_ktQuasiUniformKnots\",StepGeom_KnotType::StepGeom_ktQuasiUniformKnots)\n .value(\"StepGeom_ktPiecewiseBezierKnots\",StepGeom_KnotType::StepGeom_ktPiecewiseBezierKnots).export_values();\n+ py::enum_(m, \"StepGeom_PreferredSurfaceCurveRepresentation\",R\"#()#\")\n+ .value(\"StepGeom_pscrCurve3d\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrCurve3d)\n+ .value(\"StepGeom_pscrPcurveS1\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS1)\n+ .value(\"StepGeom_pscrPcurveS2\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS2).export_values();\n py::enum_(m, \"StepGeom_TrimmingPreference\",R\"#()#\")\n .value(\"StepGeom_tpCartesian\",StepGeom_TrimmingPreference::StepGeom_tpCartesian)\n .value(\"StepGeom_tpParameter\",StepGeom_TrimmingPreference::StepGeom_tpParameter)\n .value(\"StepGeom_tpUnspecified\",StepGeom_TrimmingPreference::StepGeom_tpUnspecified).export_values();\n+ py::enum_(m, \"StepGeom_TransitionCode\",R\"#()#\")\n+ .value(\"StepGeom_tcDiscontinuous\",StepGeom_TransitionCode::StepGeom_tcDiscontinuous)\n+ .value(\"StepGeom_tcContinuous\",StepGeom_TransitionCode::StepGeom_tcContinuous)\n+ .value(\"StepGeom_tcContSameGradient\",StepGeom_TransitionCode::StepGeom_tcContSameGradient)\n+ .value(\"StepGeom_tcContSameGradientSameCurvature\",StepGeom_TransitionCode::StepGeom_tcContSameGradientSameCurvature).export_values();\n py::enum_(m, \"StepGeom_BSplineSurfaceForm\",R\"#()#\")\n .value(\"StepGeom_bssfPlaneSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfPlaneSurf)\n .value(\"StepGeom_bssfCylindricalSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfCylindricalSurf)\n .value(\"StepGeom_bssfConicalSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfConicalSurf)\n .value(\"StepGeom_bssfSphericalSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfSphericalSurf)\n .value(\"StepGeom_bssfToroidalSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfToroidalSurf)\n .value(\"StepGeom_bssfSurfOfRevolution\",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfRevolution)\n .value(\"StepGeom_bssfRuledSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfRuledSurf)\n .value(\"StepGeom_bssfGeneralisedCone\",StepGeom_BSplineSurfaceForm::StepGeom_bssfGeneralisedCone)\n .value(\"StepGeom_bssfQuadricSurf\",StepGeom_BSplineSurfaceForm::StepGeom_bssfQuadricSurf)\n .value(\"StepGeom_bssfSurfOfLinearExtrusion\",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfLinearExtrusion)\n .value(\"StepGeom_bssfUnspecified\",StepGeom_BSplineSurfaceForm::StepGeom_bssfUnspecified).export_values();\n- py::enum_(m, \"StepGeom_PreferredSurfaceCurveRepresentation\",R\"#()#\")\n- .value(\"StepGeom_pscrCurve3d\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrCurve3d)\n- .value(\"StepGeom_pscrPcurveS1\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS1)\n- .value(\"StepGeom_pscrPcurveS2\",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS2).export_values();\n py::enum_(m, \"StepGeom_BSplineCurveForm\",R\"#()#\")\n .value(\"StepGeom_bscfPolylineForm\",StepGeom_BSplineCurveForm::StepGeom_bscfPolylineForm)\n .value(\"StepGeom_bscfCircularArc\",StepGeom_BSplineCurveForm::StepGeom_bscfCircularArc)\n .value(\"StepGeom_bscfEllipticArc\",StepGeom_BSplineCurveForm::StepGeom_bscfEllipticArc)\n .value(\"StepGeom_bscfParabolicArc\",StepGeom_BSplineCurveForm::StepGeom_bscfParabolicArc)\n .value(\"StepGeom_bscfHyperbolicArc\",StepGeom_BSplineCurveForm::StepGeom_bscfHyperbolicArc)\n .value(\"StepGeom_bscfUnspecified\",StepGeom_BSplineCurveForm::StepGeom_bscfUnspecified).export_values();\n- py::enum_(m, \"StepGeom_TransitionCode\",R\"#()#\")\n- .value(\"StepGeom_tcDiscontinuous\",StepGeom_TransitionCode::StepGeom_tcDiscontinuous)\n- .value(\"StepGeom_tcContinuous\",StepGeom_TransitionCode::StepGeom_tcContinuous)\n- .value(\"StepGeom_tcContSameGradient\",StepGeom_TransitionCode::StepGeom_tcContSameGradient)\n- .value(\"StepGeom_tcContSameGradientSameCurvature\",StepGeom_TransitionCode::StepGeom_tcContSameGradientSameCurvature).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n preregister_template_NCollection_Array1>(m,\"StepGeom_Array1OfBoundaryCurve\");\n preregister_template_NCollection_Array1>(m,\"StepGeom_Array1OfCartesianPoint\");\n preregister_template_NCollection_Array1>(m,\"StepGeom_Array1OfCompositeCurveSegment\");\n"}, {"source1": "./usr/share/libocp/OCP/StepShape_pre.cpp", "source2": "./usr/share/libocp/OCP/StepShape_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -315,22 +315,22 @@\n py::module m = main_module.def_submodule(\"StepShape\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"StepShape_AngleRelator\",R\"#()#\")\n- .value(\"StepShape_Equal\",StepShape_AngleRelator::StepShape_Equal)\n- .value(\"StepShape_Large\",StepShape_AngleRelator::StepShape_Large)\n- .value(\"StepShape_Small\",StepShape_AngleRelator::StepShape_Small).export_values();\n py::enum_(m, \"StepShape_BooleanOperator\",R\"#()#\")\n .value(\"StepShape_boDifference\",StepShape_BooleanOperator::StepShape_boDifference)\n .value(\"StepShape_boIntersection\",StepShape_BooleanOperator::StepShape_boIntersection)\n .value(\"StepShape_boUnion\",StepShape_BooleanOperator::StepShape_boUnion).export_values();\n+ py::enum_(m, \"StepShape_AngleRelator\",R\"#()#\")\n+ .value(\"StepShape_Equal\",StepShape_AngleRelator::StepShape_Equal)\n+ .value(\"StepShape_Large\",StepShape_AngleRelator::StepShape_Large)\n+ .value(\"StepShape_Small\",StepShape_AngleRelator::StepShape_Small).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"StepShape_BooleanOperand\",R\"#()#\");\n py::class_ >(m,\"StepShape_CsgSelect\",R\"#()#\");\n preregister_template_NCollection_Array1>(m,\"StepShape_Array1OfConnectedEdgeSet\");\n"}, {"source1": "./usr/share/libocp/OCP/StepToTopoDS_pre.cpp", "source2": "./usr/share/libocp/OCP/StepToTopoDS_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -168,48 +168,48 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"StepToTopoDS_TranslateEdgeLoopError\",R\"#()#\")\n+ .value(\"StepToTopoDS_TranslateEdgeLoopDone\",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone)\n+ .value(\"StepToTopoDS_TranslateEdgeLoopOther\",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values();\n py::enum_(m, \"StepToTopoDS_TranslateVertexError\",R\"#()#\")\n .value(\"StepToTopoDS_TranslateVertexDone\",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexDone)\n .value(\"StepToTopoDS_TranslateVertexOther\",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexOther).export_values();\n- py::enum_(m, \"StepToTopoDS_TranslateSolidError\",R\"#()#\")\n- .value(\"StepToTopoDS_TranslateSolidDone\",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidDone)\n- .value(\"StepToTopoDS_TranslateSolidOther\",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidOther).export_values();\n- py::enum_(m, \"StepToTopoDS_TranslateVertexLoopError\",R\"#()#\")\n- .value(\"StepToTopoDS_TranslateVertexLoopDone\",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopDone)\n- .value(\"StepToTopoDS_TranslateVertexLoopOther\",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopOther).export_values();\n+ py::enum_(m, \"StepToTopoDS_GeometricToolError\",R\"#()#\")\n+ .value(\"StepToTopoDS_GeometricToolDone\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolDone)\n+ .value(\"StepToTopoDS_GeometricToolIsDegenerated\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolIsDegenerated)\n+ .value(\"StepToTopoDS_GeometricToolHasNoPCurve\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolHasNoPCurve)\n+ .value(\"StepToTopoDS_GeometricToolWrong3dParameters\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolWrong3dParameters)\n+ .value(\"StepToTopoDS_GeometricToolNoProjectiOnCurve\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolNoProjectiOnCurve)\n+ .value(\"StepToTopoDS_GeometricToolOther\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolOther).export_values();\n py::enum_(m, \"StepToTopoDS_TranslateShellError\",R\"#()#\")\n .value(\"StepToTopoDS_TranslateShellDone\",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellDone)\n .value(\"StepToTopoDS_TranslateShellOther\",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellOther).export_values();\n- py::enum_(m, \"StepToTopoDS_BuilderError\",R\"#()#\")\n- .value(\"StepToTopoDS_BuilderDone\",StepToTopoDS_BuilderError::StepToTopoDS_BuilderDone)\n- .value(\"StepToTopoDS_BuilderOther\",StepToTopoDS_BuilderError::StepToTopoDS_BuilderOther).export_values();\n+ py::enum_(m, \"StepToTopoDS_TranslateVertexLoopError\",R\"#()#\")\n+ .value(\"StepToTopoDS_TranslateVertexLoopDone\",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopDone)\n+ .value(\"StepToTopoDS_TranslateVertexLoopOther\",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopOther).export_values();\n py::enum_(m, \"StepToTopoDS_TranslateFaceError\",R\"#()#\")\n .value(\"StepToTopoDS_TranslateFaceDone\",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceDone)\n .value(\"StepToTopoDS_TranslateFaceOther\",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceOther).export_values();\n- py::enum_(m, \"StepToTopoDS_TranslatePolyLoopError\",R\"#()#\")\n- .value(\"StepToTopoDS_TranslatePolyLoopDone\",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopDone)\n- .value(\"StepToTopoDS_TranslatePolyLoopOther\",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopOther).export_values();\n+ py::enum_(m, \"StepToTopoDS_BuilderError\",R\"#()#\")\n+ .value(\"StepToTopoDS_BuilderDone\",StepToTopoDS_BuilderError::StepToTopoDS_BuilderDone)\n+ .value(\"StepToTopoDS_BuilderOther\",StepToTopoDS_BuilderError::StepToTopoDS_BuilderOther).export_values();\n py::enum_(m, \"StepToTopoDS_TranslateEdgeError\",R\"#()#\")\n .value(\"StepToTopoDS_TranslateEdgeDone\",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeDone)\n .value(\"StepToTopoDS_TranslateEdgeOther\",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeOther).export_values();\n- py::enum_(m, \"StepToTopoDS_TranslateEdgeLoopError\",R\"#()#\")\n- .value(\"StepToTopoDS_TranslateEdgeLoopDone\",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone)\n- .value(\"StepToTopoDS_TranslateEdgeLoopOther\",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values();\n- py::enum_(m, \"StepToTopoDS_GeometricToolError\",R\"#()#\")\n- .value(\"StepToTopoDS_GeometricToolDone\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolDone)\n- .value(\"StepToTopoDS_GeometricToolIsDegenerated\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolIsDegenerated)\n- .value(\"StepToTopoDS_GeometricToolHasNoPCurve\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolHasNoPCurve)\n- .value(\"StepToTopoDS_GeometricToolWrong3dParameters\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolWrong3dParameters)\n- .value(\"StepToTopoDS_GeometricToolNoProjectiOnCurve\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolNoProjectiOnCurve)\n- .value(\"StepToTopoDS_GeometricToolOther\",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolOther).export_values();\n+ py::enum_(m, \"StepToTopoDS_TranslatePolyLoopError\",R\"#()#\")\n+ .value(\"StepToTopoDS_TranslatePolyLoopDone\",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopDone)\n+ .value(\"StepToTopoDS_TranslatePolyLoopOther\",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopOther).export_values();\n+ py::enum_(m, \"StepToTopoDS_TranslateSolidError\",R\"#()#\")\n+ .value(\"StepToTopoDS_TranslateSolidDone\",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidDone)\n+ .value(\"StepToTopoDS_TranslateSolidOther\",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidOther).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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))#\");\n py::class_ >(m,\"StepToTopoDS_GeometricTool\",R\"#(This class contains some algorithmic services specific to the mapping STEP to CAS.CADE)#\");\n py::class_ >(m,\"StepToTopoDS_NMTool\",R\"#(Provides data to process non-manifold topology when reading from STEP.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/StepVisual_pre.cpp", "source2": "./usr/share/libocp/OCP/StepVisual_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -366,41 +366,41 @@\n py::module m = main_module.def_submodule(\"StepVisual\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"StepVisual_CentralOrParallel\",R\"#()#\")\n- .value(\"StepVisual_copCentral\",StepVisual_CentralOrParallel::StepVisual_copCentral)\n- .value(\"StepVisual_copParallel\",StepVisual_CentralOrParallel::StepVisual_copParallel).export_values();\n+ py::enum_(m, \"StepVisual_NullStyle\",R\"#()#\")\n+ .value(\"StepVisual_Null\",StepVisual_NullStyle::StepVisual_Null).export_values();\n+ py::enum_(m, \"StepVisual_TextPath\",R\"#()#\")\n+ .value(\"StepVisual_tpUp\",StepVisual_TextPath::StepVisual_tpUp)\n+ .value(\"StepVisual_tpRight\",StepVisual_TextPath::StepVisual_tpRight)\n+ .value(\"StepVisual_tpDown\",StepVisual_TextPath::StepVisual_tpDown)\n+ .value(\"StepVisual_tpLeft\",StepVisual_TextPath::StepVisual_tpLeft).export_values();\n+ py::enum_(m, \"StepVisual_SurfaceSide\",R\"#()#\")\n+ .value(\"StepVisual_ssNegative\",StepVisual_SurfaceSide::StepVisual_ssNegative)\n+ .value(\"StepVisual_ssPositive\",StepVisual_SurfaceSide::StepVisual_ssPositive)\n+ .value(\"StepVisual_ssBoth\",StepVisual_SurfaceSide::StepVisual_ssBoth).export_values();\n py::enum_(m, \"StepVisual_MarkerType\",R\"#()#\")\n .value(\"StepVisual_mtDot\",StepVisual_MarkerType::StepVisual_mtDot)\n .value(\"StepVisual_mtX\",StepVisual_MarkerType::StepVisual_mtX)\n .value(\"StepVisual_mtPlus\",StepVisual_MarkerType::StepVisual_mtPlus)\n .value(\"StepVisual_mtAsterisk\",StepVisual_MarkerType::StepVisual_mtAsterisk)\n .value(\"StepVisual_mtRing\",StepVisual_MarkerType::StepVisual_mtRing)\n .value(\"StepVisual_mtSquare\",StepVisual_MarkerType::StepVisual_mtSquare)\n .value(\"StepVisual_mtTriangle\",StepVisual_MarkerType::StepVisual_mtTriangle).export_values();\n- py::enum_(m, \"StepVisual_SurfaceSide\",R\"#()#\")\n- .value(\"StepVisual_ssNegative\",StepVisual_SurfaceSide::StepVisual_ssNegative)\n- .value(\"StepVisual_ssPositive\",StepVisual_SurfaceSide::StepVisual_ssPositive)\n- .value(\"StepVisual_ssBoth\",StepVisual_SurfaceSide::StepVisual_ssBoth).export_values();\n- py::enum_(m, \"StepVisual_TextPath\",R\"#()#\")\n- .value(\"StepVisual_tpUp\",StepVisual_TextPath::StepVisual_tpUp)\n- .value(\"StepVisual_tpRight\",StepVisual_TextPath::StepVisual_tpRight)\n- .value(\"StepVisual_tpDown\",StepVisual_TextPath::StepVisual_tpDown)\n- .value(\"StepVisual_tpLeft\",StepVisual_TextPath::StepVisual_tpLeft).export_values();\n- py::enum_(m, \"StepVisual_NullStyle\",R\"#()#\")\n- .value(\"StepVisual_Null\",StepVisual_NullStyle::StepVisual_Null).export_values();\n py::enum_(m, \"StepVisual_ShadingSurfaceMethod\",R\"#()#\")\n .value(\"StepVisual_ssmConstantShading\",StepVisual_ShadingSurfaceMethod::StepVisual_ssmConstantShading)\n .value(\"StepVisual_ssmColourShading\",StepVisual_ShadingSurfaceMethod::StepVisual_ssmColourShading)\n .value(\"StepVisual_ssmDotShading\",StepVisual_ShadingSurfaceMethod::StepVisual_ssmDotShading)\n .value(\"StepVisual_ssmNormalShading\",StepVisual_ShadingSurfaceMethod::StepVisual_ssmNormalShading).export_values();\n+ py::enum_(m, \"StepVisual_CentralOrParallel\",R\"#()#\")\n+ .value(\"StepVisual_copCentral\",StepVisual_CentralOrParallel::StepVisual_copCentral)\n+ .value(\"StepVisual_copParallel\",StepVisual_CentralOrParallel::StepVisual_copParallel).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"StepVisual_BoxCharacteristicSelect\",R\"#()#\");\n py::class_ >(m,\"StepVisual_DirectionCountSelect\",R\"#()#\");\n py::class_ , StepShape_GeometricCurveSet >(m,\"StepVisual_AnnotationFillArea\",R\"#()#\");\n"}, {"source1": "./usr/share/libocp/OCP/Storage_pre.cpp", "source2": "./usr/share/libocp/OCP/Storage_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -99,23 +99,14 @@\n py::module m = main_module.def_submodule(\"Storage\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"Storage_SolveMode\",R\"#()#\")\n- .value(\"Storage_AddSolve\",Storage_SolveMode::Storage_AddSolve)\n- .value(\"Storage_WriteSolve\",Storage_SolveMode::Storage_WriteSolve)\n- .value(\"Storage_ReadSolve\",Storage_SolveMode::Storage_ReadSolve).export_values();\n- 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.)#\")\n- .value(\"Storage_VSNone\",Storage_OpenMode::Storage_VSNone)\n- .value(\"Storage_VSRead\",Storage_OpenMode::Storage_VSRead)\n- .value(\"Storage_VSWrite\",Storage_OpenMode::Storage_VSWrite)\n- .value(\"Storage_VSReadWrite\",Storage_OpenMode::Storage_VSReadWrite).export_values();\n 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)#\")\n .value(\"Storage_VSOk\",Storage_Error::Storage_VSOk)\n .value(\"Storage_VSOpenError\",Storage_Error::Storage_VSOpenError)\n .value(\"Storage_VSModeError\",Storage_Error::Storage_VSModeError)\n .value(\"Storage_VSCloseError\",Storage_Error::Storage_VSCloseError)\n .value(\"Storage_VSAlreadyOpen\",Storage_Error::Storage_VSAlreadyOpen)\n .value(\"Storage_VSNotOpen\",Storage_Error::Storage_VSNotOpen)\n@@ -123,14 +114,23 @@\n .value(\"Storage_VSWriteError\",Storage_Error::Storage_VSWriteError)\n .value(\"Storage_VSFormatError\",Storage_Error::Storage_VSFormatError)\n .value(\"Storage_VSUnknownType\",Storage_Error::Storage_VSUnknownType)\n .value(\"Storage_VSTypeMismatch\",Storage_Error::Storage_VSTypeMismatch)\n .value(\"Storage_VSInternalError\",Storage_Error::Storage_VSInternalError)\n .value(\"Storage_VSExtCharParityError\",Storage_Error::Storage_VSExtCharParityError)\n .value(\"Storage_VSWrongFileDriver\",Storage_Error::Storage_VSWrongFileDriver).export_values();\n+ py::enum_(m, \"Storage_SolveMode\",R\"#()#\")\n+ .value(\"Storage_AddSolve\",Storage_SolveMode::Storage_AddSolve)\n+ .value(\"Storage_WriteSolve\",Storage_SolveMode::Storage_WriteSolve)\n+ .value(\"Storage_ReadSolve\",Storage_SolveMode::Storage_ReadSolve).export_values();\n+ 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.)#\")\n+ .value(\"Storage_VSNone\",Storage_OpenMode::Storage_VSNone)\n+ .value(\"Storage_VSRead\",Storage_OpenMode::Storage_VSRead)\n+ .value(\"Storage_VSWrite\",Storage_OpenMode::Storage_VSWrite)\n+ .value(\"Storage_VSReadWrite\",Storage_OpenMode::Storage_VSReadWrite).export_values();\n \n //Python trampoline classes\n class Py_Storage_BaseDriver : public Storage_BaseDriver{\n public:\n using Storage_BaseDriver::Storage_BaseDriver;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/TDataXtd_pre.cpp", "source2": "./usr/share/libocp/OCP/TDataXtd_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -90,14 +90,23 @@\n py::module m = main_module.def_submodule(\"TDataXtd\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"TDataXtd_GeometryEnum\",R\"#(The terms of this enumeration define the types of geometric shapes available.)#\")\n+ .value(\"TDataXtd_ANY_GEOM\",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM)\n+ .value(\"TDataXtd_POINT\",TDataXtd_GeometryEnum::TDataXtd_POINT)\n+ .value(\"TDataXtd_LINE\",TDataXtd_GeometryEnum::TDataXtd_LINE)\n+ .value(\"TDataXtd_CIRCLE\",TDataXtd_GeometryEnum::TDataXtd_CIRCLE)\n+ .value(\"TDataXtd_ELLIPSE\",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE)\n+ .value(\"TDataXtd_SPLINE\",TDataXtd_GeometryEnum::TDataXtd_SPLINE)\n+ .value(\"TDataXtd_PLANE\",TDataXtd_GeometryEnum::TDataXtd_PLANE)\n+ .value(\"TDataXtd_CYLINDER\",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values();\n py::enum_(m, \"TDataXtd_ConstraintEnum\",R\"#(The terms of this enumeration define the types of available constraint. ==================)#\")\n .value(\"TDataXtd_RADIUS\",TDataXtd_ConstraintEnum::TDataXtd_RADIUS)\n .value(\"TDataXtd_DIAMETER\",TDataXtd_ConstraintEnum::TDataXtd_DIAMETER)\n .value(\"TDataXtd_MINOR_RADIUS\",TDataXtd_ConstraintEnum::TDataXtd_MINOR_RADIUS)\n .value(\"TDataXtd_MAJOR_RADIUS\",TDataXtd_ConstraintEnum::TDataXtd_MAJOR_RADIUS)\n .value(\"TDataXtd_TANGENT\",TDataXtd_ConstraintEnum::TDataXtd_TANGENT)\n .value(\"TDataXtd_PARALLEL\",TDataXtd_ConstraintEnum::TDataXtd_PARALLEL)\n@@ -117,23 +126,14 @@\n .value(\"TDataXtd_MATE\",TDataXtd_ConstraintEnum::TDataXtd_MATE)\n .value(\"TDataXtd_ALIGN_FACES\",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_FACES)\n .value(\"TDataXtd_ALIGN_AXES\",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_AXES)\n .value(\"TDataXtd_AXES_ANGLE\",TDataXtd_ConstraintEnum::TDataXtd_AXES_ANGLE)\n .value(\"TDataXtd_FACES_ANGLE\",TDataXtd_ConstraintEnum::TDataXtd_FACES_ANGLE)\n .value(\"TDataXtd_ROUND\",TDataXtd_ConstraintEnum::TDataXtd_ROUND)\n .value(\"TDataXtd_OFFSET\",TDataXtd_ConstraintEnum::TDataXtd_OFFSET).export_values();\n- py::enum_(m, \"TDataXtd_GeometryEnum\",R\"#(The terms of this enumeration define the types of geometric shapes available.)#\")\n- .value(\"TDataXtd_ANY_GEOM\",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM)\n- .value(\"TDataXtd_POINT\",TDataXtd_GeometryEnum::TDataXtd_POINT)\n- .value(\"TDataXtd_LINE\",TDataXtd_GeometryEnum::TDataXtd_LINE)\n- .value(\"TDataXtd_CIRCLE\",TDataXtd_GeometryEnum::TDataXtd_CIRCLE)\n- .value(\"TDataXtd_ELLIPSE\",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE)\n- .value(\"TDataXtd_SPLINE\",TDataXtd_GeometryEnum::TDataXtd_SPLINE)\n- .value(\"TDataXtd_PLANE\",TDataXtd_GeometryEnum::TDataXtd_PLANE)\n- .value(\"TDataXtd_CYLINDER\",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values();\n \n //Python trampoline classes\n class Py_TDataXtd_Pattern : public TDataXtd_Pattern{\n public:\n using TDataXtd_Pattern::TDataXtd_Pattern;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/TopAbs_pre.cpp", "source2": "./usr/share/libocp/OCP/TopAbs_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -44,24 +44,24 @@\n .value(\"TopAbs_SOLID\",TopAbs_ShapeEnum::TopAbs_SOLID)\n .value(\"TopAbs_SHELL\",TopAbs_ShapeEnum::TopAbs_SHELL)\n .value(\"TopAbs_FACE\",TopAbs_ShapeEnum::TopAbs_FACE)\n .value(\"TopAbs_WIRE\",TopAbs_ShapeEnum::TopAbs_WIRE)\n .value(\"TopAbs_EDGE\",TopAbs_ShapeEnum::TopAbs_EDGE)\n .value(\"TopAbs_VERTEX\",TopAbs_ShapeEnum::TopAbs_VERTEX)\n .value(\"TopAbs_SHAPE\",TopAbs_ShapeEnum::TopAbs_SHAPE).export_values();\n- 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.)#\")\n- .value(\"TopAbs_FORWARD\",TopAbs_Orientation::TopAbs_FORWARD)\n- .value(\"TopAbs_REVERSED\",TopAbs_Orientation::TopAbs_REVERSED)\n- .value(\"TopAbs_INTERNAL\",TopAbs_Orientation::TopAbs_INTERNAL)\n- .value(\"TopAbs_EXTERNAL\",TopAbs_Orientation::TopAbs_EXTERNAL).export_values();\n 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.)#\")\n .value(\"TopAbs_IN\",TopAbs_State::TopAbs_IN)\n .value(\"TopAbs_OUT\",TopAbs_State::TopAbs_OUT)\n .value(\"TopAbs_ON\",TopAbs_State::TopAbs_ON)\n .value(\"TopAbs_UNKNOWN\",TopAbs_State::TopAbs_UNKNOWN).export_values();\n+ 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.)#\")\n+ .value(\"TopAbs_FORWARD\",TopAbs_Orientation::TopAbs_FORWARD)\n+ .value(\"TopAbs_REVERSED\",TopAbs_Orientation::TopAbs_REVERSED)\n+ .value(\"TopAbs_INTERNAL\",TopAbs_Orientation::TopAbs_INTERNAL)\n+ .value(\"TopAbs_EXTERNAL\",TopAbs_Orientation::TopAbs_EXTERNAL).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"TopAbs\",R\"#(This package gives resources for Topology oriented applications such as : Topological Data Structure, Topological Algorithms.)#\");\n \n };\n"}, {"source1": "./usr/share/libocp/OCP/TopOpeBRepDS_pre.cpp", "source2": "./usr/share/libocp/OCP/TopOpeBRepDS_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -202,34 +202,34 @@\n py::module m = main_module.def_submodule(\"TopOpeBRepDS\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"TopOpeBRepDS_Config\",R\"#()#\")\n- .value(\"TopOpeBRepDS_UNSHGEOMETRY\",TopOpeBRepDS_Config::TopOpeBRepDS_UNSHGEOMETRY)\n- .value(\"TopOpeBRepDS_SAMEORIENTED\",TopOpeBRepDS_Config::TopOpeBRepDS_SAMEORIENTED)\n- .value(\"TopOpeBRepDS_DIFFORIENTED\",TopOpeBRepDS_Config::TopOpeBRepDS_DIFFORIENTED).export_values();\n+ py::enum_(m, \"TopOpeBRepDS_CheckStatus\",R\"#()#\")\n+ .value(\"TopOpeBRepDS_OK\",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK)\n+ .value(\"TopOpeBRepDS_NOK\",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values();\n py::enum_(m, \"TopOpeBRepDS_Kind\",R\"#(different types of objects in DataStructure)#\")\n .value(\"TopOpeBRepDS_POINT\",TopOpeBRepDS_Kind::TopOpeBRepDS_POINT)\n .value(\"TopOpeBRepDS_CURVE\",TopOpeBRepDS_Kind::TopOpeBRepDS_CURVE)\n .value(\"TopOpeBRepDS_SURFACE\",TopOpeBRepDS_Kind::TopOpeBRepDS_SURFACE)\n .value(\"TopOpeBRepDS_VERTEX\",TopOpeBRepDS_Kind::TopOpeBRepDS_VERTEX)\n .value(\"TopOpeBRepDS_EDGE\",TopOpeBRepDS_Kind::TopOpeBRepDS_EDGE)\n .value(\"TopOpeBRepDS_WIRE\",TopOpeBRepDS_Kind::TopOpeBRepDS_WIRE)\n .value(\"TopOpeBRepDS_FACE\",TopOpeBRepDS_Kind::TopOpeBRepDS_FACE)\n .value(\"TopOpeBRepDS_SHELL\",TopOpeBRepDS_Kind::TopOpeBRepDS_SHELL)\n .value(\"TopOpeBRepDS_SOLID\",TopOpeBRepDS_Kind::TopOpeBRepDS_SOLID)\n .value(\"TopOpeBRepDS_COMPSOLID\",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPSOLID)\n .value(\"TopOpeBRepDS_COMPOUND\",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPOUND)\n .value(\"TopOpeBRepDS_UNKNOWN\",TopOpeBRepDS_Kind::TopOpeBRepDS_UNKNOWN).export_values();\n- py::enum_(m, \"TopOpeBRepDS_CheckStatus\",R\"#()#\")\n- .value(\"TopOpeBRepDS_OK\",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK)\n- .value(\"TopOpeBRepDS_NOK\",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values();\n+ py::enum_(m, \"TopOpeBRepDS_Config\",R\"#()#\")\n+ .value(\"TopOpeBRepDS_UNSHGEOMETRY\",TopOpeBRepDS_Config::TopOpeBRepDS_UNSHGEOMETRY)\n+ .value(\"TopOpeBRepDS_SAMEORIENTED\",TopOpeBRepDS_Config::TopOpeBRepDS_SAMEORIENTED)\n+ .value(\"TopOpeBRepDS_DIFFORIENTED\",TopOpeBRepDS_Config::TopOpeBRepDS_DIFFORIENTED).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"TopOpeBRepDS\",R\"#(This package provides services used by the TopOpeBRepBuild package performing topological operations on the BRep data structure.)#\");\n py::class_ >(m,\"TopOpeBRepDS_BuildTool\",R\"#(Provides a Tool to build topologies. Used to instantiate the Builder algorithm.)#\");\n py::class_ >(m,\"TopOpeBRepDS_Curve\",R\"#(A Geom curve and a tolerance.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/TopOpeBRep_pre.cpp", "source2": "./usr/share/libocp/OCP/TopOpeBRep_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -146,30 +146,30 @@\n py::module m = main_module.def_submodule(\"TopOpeBRep\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"TopOpeBRep_P2Dstatus\",R\"#()#\")\n+ .value(\"TopOpeBRep_P2DUNK\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DUNK)\n+ .value(\"TopOpeBRep_P2DINT\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DINT)\n+ .value(\"TopOpeBRep_P2DSGF\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGF)\n+ .value(\"TopOpeBRep_P2DSGL\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGL)\n+ .value(\"TopOpeBRep_P2DNEW\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DNEW).export_values();\n py::enum_(m, \"TopOpeBRep_TypeLineCurve\",R\"#()#\")\n .value(\"TopOpeBRep_ANALYTIC\",TopOpeBRep_TypeLineCurve::TopOpeBRep_ANALYTIC)\n .value(\"TopOpeBRep_RESTRICTION\",TopOpeBRep_TypeLineCurve::TopOpeBRep_RESTRICTION)\n .value(\"TopOpeBRep_WALKING\",TopOpeBRep_TypeLineCurve::TopOpeBRep_WALKING)\n .value(\"TopOpeBRep_LINE\",TopOpeBRep_TypeLineCurve::TopOpeBRep_LINE)\n .value(\"TopOpeBRep_CIRCLE\",TopOpeBRep_TypeLineCurve::TopOpeBRep_CIRCLE)\n .value(\"TopOpeBRep_ELLIPSE\",TopOpeBRep_TypeLineCurve::TopOpeBRep_ELLIPSE)\n .value(\"TopOpeBRep_PARABOLA\",TopOpeBRep_TypeLineCurve::TopOpeBRep_PARABOLA)\n .value(\"TopOpeBRep_HYPERBOLA\",TopOpeBRep_TypeLineCurve::TopOpeBRep_HYPERBOLA)\n .value(\"TopOpeBRep_OTHERTYPE\",TopOpeBRep_TypeLineCurve::TopOpeBRep_OTHERTYPE).export_values();\n- py::enum_(m, \"TopOpeBRep_P2Dstatus\",R\"#()#\")\n- .value(\"TopOpeBRep_P2DUNK\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DUNK)\n- .value(\"TopOpeBRep_P2DINT\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DINT)\n- .value(\"TopOpeBRep_P2DSGF\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGF)\n- .value(\"TopOpeBRep_P2DSGL\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DSGL)\n- .value(\"TopOpeBRep_P2DNEW\",TopOpeBRep_P2Dstatus::TopOpeBRep_P2DNEW).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"TopOpeBRep\",R\"#(This package provides the topological operations on the BRep data structure.)#\");\n py::class_ >(m,\"TopOpeBRep_Bipoint\",R\"#()#\");\n py::class_ >(m,\"TopOpeBRep_DSFiller\",R\"#(Provides class methods to fill a datastructure with results of intersections.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/TopoDSToStep_pre.cpp", "source2": "./usr/share/libocp/OCP/TopoDSToStep_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -122,39 +122,39 @@\n py::module m = main_module.def_submodule(\"TopoDSToStep\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"TopoDSToStep_BuilderError\",R\"#()#\")\n- .value(\"TopoDSToStep_BuilderDone\",TopoDSToStep_BuilderError::TopoDSToStep_BuilderDone)\n- .value(\"TopoDSToStep_NoFaceMapped\",TopoDSToStep_BuilderError::TopoDSToStep_NoFaceMapped)\n- .value(\"TopoDSToStep_BuilderOther\",TopoDSToStep_BuilderError::TopoDSToStep_BuilderOther).export_values();\n- py::enum_(m, \"TopoDSToStep_MakeVertexError\",R\"#()#\")\n- .value(\"TopoDSToStep_VertexDone\",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone)\n- .value(\"TopoDSToStep_VertexOther\",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values();\n py::enum_(m, \"TopoDSToStep_MakeWireError\",R\"#()#\")\n .value(\"TopoDSToStep_WireDone\",TopoDSToStep_MakeWireError::TopoDSToStep_WireDone)\n .value(\"TopoDSToStep_NonManifoldWire\",TopoDSToStep_MakeWireError::TopoDSToStep_NonManifoldWire)\n .value(\"TopoDSToStep_WireOther\",TopoDSToStep_MakeWireError::TopoDSToStep_WireOther).export_values();\n- py::enum_(m, \"TopoDSToStep_FacetedError\",R\"#()#\")\n- .value(\"TopoDSToStep_FacetedDone\",TopoDSToStep_FacetedError::TopoDSToStep_FacetedDone)\n- .value(\"TopoDSToStep_SurfaceNotPlane\",TopoDSToStep_FacetedError::TopoDSToStep_SurfaceNotPlane)\n- .value(\"TopoDSToStep_PCurveNotLinear\",TopoDSToStep_FacetedError::TopoDSToStep_PCurveNotLinear).export_values();\n py::enum_(m, \"TopoDSToStep_MakeEdgeError\",R\"#()#\")\n .value(\"TopoDSToStep_EdgeDone\",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeDone)\n .value(\"TopoDSToStep_NonManifoldEdge\",TopoDSToStep_MakeEdgeError::TopoDSToStep_NonManifoldEdge)\n .value(\"TopoDSToStep_EdgeOther\",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeOther).export_values();\n+ py::enum_(m, \"TopoDSToStep_BuilderError\",R\"#()#\")\n+ .value(\"TopoDSToStep_BuilderDone\",TopoDSToStep_BuilderError::TopoDSToStep_BuilderDone)\n+ .value(\"TopoDSToStep_NoFaceMapped\",TopoDSToStep_BuilderError::TopoDSToStep_NoFaceMapped)\n+ .value(\"TopoDSToStep_BuilderOther\",TopoDSToStep_BuilderError::TopoDSToStep_BuilderOther).export_values();\n+ py::enum_(m, \"TopoDSToStep_MakeVertexError\",R\"#()#\")\n+ .value(\"TopoDSToStep_VertexDone\",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone)\n+ .value(\"TopoDSToStep_VertexOther\",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values();\n py::enum_(m, \"TopoDSToStep_MakeFaceError\",R\"#()#\")\n .value(\"TopoDSToStep_FaceDone\",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceDone)\n .value(\"TopoDSToStep_InfiniteFace\",TopoDSToStep_MakeFaceError::TopoDSToStep_InfiniteFace)\n .value(\"TopoDSToStep_NonManifoldFace\",TopoDSToStep_MakeFaceError::TopoDSToStep_NonManifoldFace)\n .value(\"TopoDSToStep_NoWireMapped\",TopoDSToStep_MakeFaceError::TopoDSToStep_NoWireMapped)\n .value(\"TopoDSToStep_FaceOther\",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceOther).export_values();\n+ py::enum_(m, \"TopoDSToStep_FacetedError\",R\"#()#\")\n+ .value(\"TopoDSToStep_FacetedDone\",TopoDSToStep_FacetedError::TopoDSToStep_FacetedDone)\n+ .value(\"TopoDSToStep_SurfaceNotPlane\",TopoDSToStep_FacetedError::TopoDSToStep_SurfaceNotPlane)\n+ .value(\"TopoDSToStep_PCurveNotLinear\",TopoDSToStep_FacetedError::TopoDSToStep_PCurveNotLinear).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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))#\");\n py::class_ >(m,\"TopoDSToStep_FacetedTool\",R\"#(This Tool Class provides Information about Faceted Shapes to be mapped to STEP.)#\");\n py::class_ >(m,\"TopoDSToStep_Root\",R\"#(This class implements the common services for all classes of TopoDSToStep which report error.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/Transfer_pre.cpp", "source2": "./usr/share/libocp/OCP/Transfer_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -144,24 +144,24 @@\n \n // enums\n py::enum_(m, \"Transfer_UndefMode\",R\"#(used on processing Undefined Entities (see TransferOutput))#\")\n .value(\"Transfer_UndefIgnore\",Transfer_UndefMode::Transfer_UndefIgnore)\n .value(\"Transfer_UndefFailure\",Transfer_UndefMode::Transfer_UndefFailure)\n .value(\"Transfer_UndefContent\",Transfer_UndefMode::Transfer_UndefContent)\n .value(\"Transfer_UndefUser\",Transfer_UndefMode::Transfer_UndefUser).export_values();\n- py::enum_(m, \"Transfer_StatusResult\",R\"#(result status of transferring an entity (see Transcriptor))#\")\n- .value(\"Transfer_StatusVoid\",Transfer_StatusResult::Transfer_StatusVoid)\n- .value(\"Transfer_StatusDefined\",Transfer_StatusResult::Transfer_StatusDefined)\n- .value(\"Transfer_StatusUsed\",Transfer_StatusResult::Transfer_StatusUsed).export_values();\n py::enum_(m, \"Transfer_StatusExec\",R\"#(execution status of an individual transfer (see Transcriptor))#\")\n .value(\"Transfer_StatusInitial\",Transfer_StatusExec::Transfer_StatusInitial)\n .value(\"Transfer_StatusRun\",Transfer_StatusExec::Transfer_StatusRun)\n .value(\"Transfer_StatusDone\",Transfer_StatusExec::Transfer_StatusDone)\n .value(\"Transfer_StatusError\",Transfer_StatusExec::Transfer_StatusError)\n .value(\"Transfer_StatusLoop\",Transfer_StatusExec::Transfer_StatusLoop).export_values();\n+ py::enum_(m, \"Transfer_StatusResult\",R\"#(result status of transferring an entity (see Transcriptor))#\")\n+ .value(\"Transfer_StatusVoid\",Transfer_StatusResult::Transfer_StatusVoid)\n+ .value(\"Transfer_StatusDefined\",Transfer_StatusResult::Transfer_StatusDefined)\n+ .value(\"Transfer_StatusUsed\",Transfer_StatusResult::Transfer_StatusUsed).export_values();\n \n //Python trampoline classes\n class Py_Transfer_Binder : public Transfer_Binder{\n public:\n using Transfer_Binder::Transfer_Binder;\n \n \n"}, {"source1": "./usr/share/libocp/OCP/V3d_pre.cpp", "source2": "./usr/share/libocp/OCP/V3d_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -78,21 +78,14 @@\n py::module m = main_module.def_submodule(\"V3d\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n- py::enum_(m, \"V3d_TypeOfVisualization\",R\"#(Determines the type of visualization in the view, either WIREFRAME or ZBUFFER (shading).)#\")\n- .value(\"V3d_WIREFRAME\",V3d_TypeOfVisualization::V3d_WIREFRAME)\n- .value(\"V3d_ZBUFFER\",V3d_TypeOfVisualization::V3d_ZBUFFER).export_values();\n- py::enum_(m, \"V3d_TypeOfAxe\",R\"#(Determines the axis type through the coordinates X, Y, Z.)#\")\n- .value(\"V3d_X\",V3d_TypeOfAxe::V3d_X)\n- .value(\"V3d_Y\",V3d_TypeOfAxe::V3d_Y)\n- .value(\"V3d_Z\",V3d_TypeOfAxe::V3d_Z).export_values();\n 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.)#\")\n .value(\"V3d_Xpos\",V3d_TypeOfOrientation::V3d_Xpos)\n .value(\"V3d_Ypos\",V3d_TypeOfOrientation::V3d_Ypos)\n .value(\"V3d_Zpos\",V3d_TypeOfOrientation::V3d_Zpos)\n .value(\"V3d_Xneg\",V3d_TypeOfOrientation::V3d_Xneg)\n .value(\"V3d_Yneg\",V3d_TypeOfOrientation::V3d_Yneg)\n .value(\"V3d_Zneg\",V3d_TypeOfOrientation::V3d_Zneg)\n@@ -128,22 +121,29 @@\n .value(\"V3d_TypeOfOrientation_Yup_AxoRight\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_AxoRight)\n .value(\"V3d_TypeOfOrientation_Yup_Front\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Front)\n .value(\"V3d_TypeOfOrientation_Yup_Back\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Back)\n .value(\"V3d_TypeOfOrientation_Yup_Top\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Top)\n .value(\"V3d_TypeOfOrientation_Yup_Bottom\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Bottom)\n .value(\"V3d_TypeOfOrientation_Yup_Left\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Left)\n .value(\"V3d_TypeOfOrientation_Yup_Right\",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Right).export_values();\n+ py::enum_(m, \"V3d_TypeOfView\",R\"#(Defines the type of projection of the view.)#\")\n+ .value(\"V3d_ORTHOGRAPHIC\",V3d_TypeOfView::V3d_ORTHOGRAPHIC)\n+ .value(\"V3d_PERSPECTIVE\",V3d_TypeOfView::V3d_PERSPECTIVE).export_values();\n+ py::enum_(m, \"V3d_TypeOfVisualization\",R\"#(Determines the type of visualization in the view, either WIREFRAME or ZBUFFER (shading).)#\")\n+ .value(\"V3d_WIREFRAME\",V3d_TypeOfVisualization::V3d_WIREFRAME)\n+ .value(\"V3d_ZBUFFER\",V3d_TypeOfVisualization::V3d_ZBUFFER).export_values();\n 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.)#\")\n .value(\"V3d_SDO_MONO\",V3d_StereoDumpOptions::V3d_SDO_MONO)\n .value(\"V3d_SDO_LEFT_EYE\",V3d_StereoDumpOptions::V3d_SDO_LEFT_EYE)\n .value(\"V3d_SDO_RIGHT_EYE\",V3d_StereoDumpOptions::V3d_SDO_RIGHT_EYE)\n .value(\"V3d_SDO_BLENDED\",V3d_StereoDumpOptions::V3d_SDO_BLENDED).export_values();\n- py::enum_(m, \"V3d_TypeOfView\",R\"#(Defines the type of projection of the view.)#\")\n- .value(\"V3d_ORTHOGRAPHIC\",V3d_TypeOfView::V3d_ORTHOGRAPHIC)\n- .value(\"V3d_PERSPECTIVE\",V3d_TypeOfView::V3d_PERSPECTIVE).export_values();\n+ py::enum_(m, \"V3d_TypeOfAxe\",R\"#(Determines the axis type through the coordinates X, Y, Z.)#\")\n+ .value(\"V3d_X\",V3d_TypeOfAxe::V3d_X)\n+ .value(\"V3d_Y\",V3d_TypeOfAxe::V3d_Y)\n+ .value(\"V3d_Z\",V3d_TypeOfAxe::V3d_Z).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n 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.)#\");\n py::class_ >(m,\"V3d_ImageDumpOptions\",R\"#(The structure defines options for image dump functionality.)#\");\n 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.)#\");\n"}, {"source1": "./usr/share/libocp/OCP/XCAFDimTolObjects_pre.cpp", "source2": "./usr/share/libocp/OCP/XCAFDimTolObjects_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -71,14 +71,44 @@\n py::module m = main_module.def_submodule(\"XCAFDimTolObjects\", R\"#()#\");\n \n // add namespaces as submodules\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"XCAFDimTolObjects_GeomToleranceZoneModif\",R\"#(Defines types of zone)#\")\n+ .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_None\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None)\n+ .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_Projected\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected)\n+ .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_Runout\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout)\n+ .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_DimensionGrade\",R\"#(Defines value of grade)#\")\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT01\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT01)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT0\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT0)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT1\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT1)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT2\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT2)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT3\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT3)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT4\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT4)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT5\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT5)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT6\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT6)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT7\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT7)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT8\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT8)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT9\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT9)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT10\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT10)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT11\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT11)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT12\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT12)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT13\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT13)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT14\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT14)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT15\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT15)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT16\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT16)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT17\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT17)\n+ .value(\"XCAFDimTolObjects_DimensionGrade_IT18\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT18).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_ToleranceZoneAffectedPlane\",R\"#(Defines types of tolerance zone affected plane)#\")\n+ .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_None\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None)\n+ .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection)\n+ .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values();\n py::enum_(m, \"XCAFDimTolObjects_DimensionFormVariance\",R\"#(Defines value of form variance)#\")\n .value(\"XCAFDimTolObjects_DimensionFormVariance_None\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_None)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_A\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_A)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_B\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_B)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_C\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_C)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_CD\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_CD)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_D\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_D)\n@@ -101,14 +131,47 @@\n .value(\"XCAFDimTolObjects_DimensionFormVariance_V\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_V)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_X\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_X)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_Y\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Y)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_Z\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Z)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_ZA\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZA)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_ZB\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZB)\n .value(\"XCAFDimTolObjects_DimensionFormVariance_ZC\",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZC).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_DimensionType\",R\"#(Defines types of dimension)#\")\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_None\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_None)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_CurvedDistance\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_CurvedDistance)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_Angular\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Angular)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_Oriented\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Oriented)\n+ .value(\"XCAFDimTolObjects_DimensionType_Location_WithPath\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_WithPath)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_CurveLength\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_CurveLength)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_Diameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Diameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_SphericalDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalDiameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_Radius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Radius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_SphericalRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalRadius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_Thickness\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Thickness)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_Angular\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Angular)\n+ .value(\"XCAFDimTolObjects_DimensionType_Size_WithPath\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_WithPath)\n+ .value(\"XCAFDimTolObjects_DimensionType_CommonLabel\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_CommonLabel)\n+ .value(\"XCAFDimTolObjects_DimensionType_DimensionPresentation\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_DimensionPresentation).export_values();\n py::enum_(m, \"XCAFDimTolObjects_DatumSingleModif\",R\"#(Defines modifirs)#\")\n .value(\"XCAFDimTolObjects_DatumSingleModif_AnyCrossSection\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_AnyCrossSection)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Basic\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Basic)\n .value(\"XCAFDimTolObjects_DatumSingleModif_ContactingFeature\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_ContactingFeature)\n .value(\"XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU)\n .value(\"XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV)\n@@ -124,19 +187,29 @@\n .value(\"XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement)\n .value(\"XCAFDimTolObjects_DatumSingleModif_MinorDiameter\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MinorDiameter)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Orientation\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Orientation)\n .value(\"XCAFDimTolObjects_DatumSingleModif_PitchDiameter\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_PitchDiameter)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Plane\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Plane)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Point\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Point)\n .value(\"XCAFDimTolObjects_DatumSingleModif_Translation\",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Translation).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_GeomToleranceZoneModif\",R\"#(Defines types of zone)#\")\n- .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_None\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None)\n- .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_Projected\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected)\n- .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_Runout\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout)\n- .value(\"XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform\",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_DatumTargetType\",R\"#(Defines types of dimension)#\")\n+ .value(\"XCAFDimTolObjects_DatumTargetType_Point\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point)\n+ .value(\"XCAFDimTolObjects_DatumTargetType_Line\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line)\n+ .value(\"XCAFDimTolObjects_DatumTargetType_Rectangle\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle)\n+ .value(\"XCAFDimTolObjects_DatumTargetType_Circle\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle)\n+ .value(\"XCAFDimTolObjects_DatumTargetType_Area\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_GeomToleranceMatReqModif\",R\"#(Defines types of material requirement)#\")\n+ .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_None\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None)\n+ .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_M\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M)\n+ .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_L\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_AngularQualifier\",R\"#(Defines types of qualifier for angular dimensions)#\")\n+ .value(\"XCAFDimTolObjects_AngularQualifier_None\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_None)\n+ .value(\"XCAFDimTolObjects_AngularQualifier_Small\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Small)\n+ .value(\"XCAFDimTolObjects_AngularQualifier_Large\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Large)\n+ .value(\"XCAFDimTolObjects_AngularQualifier_Equal\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Equal).export_values();\n py::enum_(m, \"XCAFDimTolObjects_GeomToleranceModif\",R\"#(Defines modifirs)#\")\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Common_Zone\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Common_Zone)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Free_State\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Free_State)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Line_Element\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Line_Element)\n@@ -147,47 +220,19 @@\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_All_Around\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Around)\n .value(\"XCAFDimTolObjects_GeomToleranceModif_All_Over\",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Over).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_GeomToleranceType\",R\"#(Defines types of geom tolerance)#\")\n- .value(\"XCAFDimTolObjects_GeomToleranceType_None\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_None)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Angularity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Angularity)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_CircularRunout\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularRunout)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Coaxiality\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Coaxiality)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Concentricity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Concentricity)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Cylindricity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Cylindricity)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Flatness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Flatness)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Parallelism\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Parallelism)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Perpendicularity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Perpendicularity)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Position\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Position)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_ProfileOfLine\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfLine)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Straightness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Straightness)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_Symmetry\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Symmetry)\n- .value(\"XCAFDimTolObjects_GeomToleranceType_TotalRunout\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_TotalRunout).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_AngularQualifier\",R\"#(Defines types of qualifier for angular dimensions)#\")\n- .value(\"XCAFDimTolObjects_AngularQualifier_None\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_None)\n- .value(\"XCAFDimTolObjects_AngularQualifier_Small\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Small)\n- .value(\"XCAFDimTolObjects_AngularQualifier_Large\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Large)\n- .value(\"XCAFDimTolObjects_AngularQualifier_Equal\",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Equal).export_values();\n py::enum_(m, \"XCAFDimTolObjects_DimensionQualifier\",R\"#(Defines types of qualifier)#\")\n .value(\"XCAFDimTolObjects_DimensionQualifier_None\",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_None)\n .value(\"XCAFDimTolObjects_DimensionQualifier_Min\",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Min)\n .value(\"XCAFDimTolObjects_DimensionQualifier_Max\",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Max)\n .value(\"XCAFDimTolObjects_DimensionQualifier_Avg\",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Avg).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_DatumModifWithValue\",R\"#(Defines modifirs)#\")\n- .value(\"XCAFDimTolObjects_DatumModifWithValue_None\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None)\n- .value(\"XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical)\n- .value(\"XCAFDimTolObjects_DatumModifWithValue_Distance\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance)\n- .value(\"XCAFDimTolObjects_DatumModifWithValue_Projected\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected)\n- .value(\"XCAFDimTolObjects_DatumModifWithValue_Spherical\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values();\n py::enum_(m, \"XCAFDimTolObjects_DimensionModif\",R\"#(Defines modifirs)#\")\n .value(\"XCAFDimTolObjects_DimensionModif_ControlledRadius\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ControlledRadius)\n .value(\"XCAFDimTolObjects_DimensionModif_Square\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Square)\n .value(\"XCAFDimTolObjects_DimensionModif_StatisticalTolerance\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_StatisticalTolerance)\n .value(\"XCAFDimTolObjects_DimensionModif_ContinuousFeature\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ContinuousFeature)\n .value(\"XCAFDimTolObjects_DimensionModif_TwoPointSize\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_TwoPointSize)\n .value(\"XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere)\n@@ -205,86 +250,41 @@\n .value(\"XCAFDimTolObjects_DimensionModif_RangeOfSizes\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_RangeOfSizes)\n .value(\"XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature)\n .value(\"XCAFDimTolObjects_DimensionModif_AnyCrossSection\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyCrossSection)\n .value(\"XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection)\n .value(\"XCAFDimTolObjects_DimensionModif_CommonTolerance\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_CommonTolerance)\n .value(\"XCAFDimTolObjects_DimensionModif_FreeStateCondition\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_FreeStateCondition)\n .value(\"XCAFDimTolObjects_DimensionModif_Between\",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Between).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_DatumTargetType\",R\"#(Defines types of dimension)#\")\n- .value(\"XCAFDimTolObjects_DatumTargetType_Point\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point)\n- .value(\"XCAFDimTolObjects_DatumTargetType_Line\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line)\n- .value(\"XCAFDimTolObjects_DatumTargetType_Rectangle\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle)\n- .value(\"XCAFDimTolObjects_DatumTargetType_Circle\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle)\n- .value(\"XCAFDimTolObjects_DatumTargetType_Area\",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_ToleranceZoneAffectedPlane\",R\"#(Defines types of tolerance zone affected plane)#\")\n- .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_None\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None)\n- .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection)\n- .value(\"XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation\",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_DimensionType\",R\"#(Defines types of dimension)#\")\n- .value(\"XCAFDimTolObjects_DimensionType_Location_None\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_None)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_CurvedDistance\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_CurvedDistance)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_Angular\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Angular)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_Oriented\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Oriented)\n- .value(\"XCAFDimTolObjects_DimensionType_Location_WithPath\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_WithPath)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_CurveLength\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_CurveLength)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_Diameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Diameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_SphericalDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalDiameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_Radius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Radius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_SphericalRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalRadius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_Thickness\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Thickness)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_Angular\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Angular)\n- .value(\"XCAFDimTolObjects_DimensionType_Size_WithPath\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_WithPath)\n- .value(\"XCAFDimTolObjects_DimensionType_CommonLabel\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_CommonLabel)\n- .value(\"XCAFDimTolObjects_DimensionType_DimensionPresentation\",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_DimensionPresentation).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_DimensionGrade\",R\"#(Defines value of grade)#\")\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT01\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT01)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT0\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT0)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT1\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT1)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT2\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT2)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT3\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT3)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT4\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT4)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT5\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT5)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT6\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT6)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT7\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT7)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT8\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT8)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT9\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT9)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT10\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT10)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT11\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT11)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT12\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT12)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT13\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT13)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT14\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT14)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT15\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT15)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT16\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT16)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT17\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT17)\n- .value(\"XCAFDimTolObjects_DimensionGrade_IT18\",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT18).export_values();\n- py::enum_(m, \"XCAFDimTolObjects_GeomToleranceMatReqModif\",R\"#(Defines types of material requirement)#\")\n- .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_None\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None)\n- .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_M\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M)\n- .value(\"XCAFDimTolObjects_GeomToleranceMatReqModif_L\",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_GeomToleranceType\",R\"#(Defines types of geom tolerance)#\")\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_None\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_None)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Angularity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Angularity)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_CircularRunout\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularRunout)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Coaxiality\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Coaxiality)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Concentricity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Concentricity)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Cylindricity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Cylindricity)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Flatness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Flatness)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Parallelism\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Parallelism)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Perpendicularity\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Perpendicularity)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Position\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Position)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_ProfileOfLine\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfLine)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Straightness\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Straightness)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_Symmetry\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Symmetry)\n+ .value(\"XCAFDimTolObjects_GeomToleranceType_TotalRunout\",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_TotalRunout).export_values();\n py::enum_(m, \"XCAFDimTolObjects_GeomToleranceTypeValue\",R\"#(Defines types of value of tolerane)#\")\n .value(\"XCAFDimTolObjects_GeomToleranceTypeValue_None\",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_None)\n .value(\"XCAFDimTolObjects_GeomToleranceTypeValue_Diameter\",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_Diameter)\n .value(\"XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter\",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter).export_values();\n+ py::enum_(m, \"XCAFDimTolObjects_DatumModifWithValue\",R\"#(Defines modifirs)#\")\n+ .value(\"XCAFDimTolObjects_DatumModifWithValue_None\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None)\n+ .value(\"XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical)\n+ .value(\"XCAFDimTolObjects_DatumModifWithValue_Distance\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance)\n+ .value(\"XCAFDimTolObjects_DatumModifWithValue_Projected\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected)\n+ .value(\"XCAFDimTolObjects_DatumModifWithValue_Spherical\",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ >(m,\"XCAFDimTolObjects_Tool\",R\"#()#\");\n preregister_template_NCollection_Sequence(m,\"XCAFDimTolObjects_DatumModifiersSequence\");\n py::class_ , Standard_Transient >(m,\"XCAFDimTolObjects_DatumObject\",R\"#(Access object to store datumAccess object to store datumAccess object to store datum)#\");\n"}, {"source1": "./usr/share/libocp/OCP/gp.cpp", "source2": "./usr/share/libocp/OCP/gp.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -7623,30 +7623,14 @@\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theV\"));\n m.def(\"__rmul__\",\n (gp_Vec2d (*)( const Standard_Real , const gp_Vec2d & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theV\"));\n m.def(\"__mul__\",\n- (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*),\n- py::is_operator(),\n- R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n- m.def(\"__rmul__\",\n- (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*),\n- py::is_operator(),\n- R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n- m.def(\"__mul__\",\n- (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*),\n- py::is_operator(),\n- R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theCoord1\"));\n- m.def(\"__rmul__\",\n- (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*),\n- py::is_operator(),\n- R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theCoord1\"));\n- m.def(\"__mul__\",\n (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theMat3D\"));\n m.def(\"__rmul__\",\n (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theMat3D\"));\n@@ -7655,14 +7639,30 @@\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theMat2D\"));\n m.def(\"__rmul__\",\n (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theMat2D\"));\n m.def(\"__mul__\",\n+ (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*),\n+ py::is_operator(),\n+ R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n+ m.def(\"__rmul__\",\n+ (gp_XY (*)( const gp_Mat2d & , const gp_XY & )) static_cast(&operator*),\n+ py::is_operator(),\n+ R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n+ m.def(\"__mul__\",\n+ (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*),\n+ py::is_operator(),\n+ R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theCoord1\"));\n+ m.def(\"__rmul__\",\n+ (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*),\n+ py::is_operator(),\n+ R\"#()#\" , py::arg(\"theScalar\"), py::arg(\"theCoord1\"));\n+ m.def(\"__mul__\",\n (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n m.def(\"__rmul__\",\n (gp_XYZ (*)( const gp_Mat & , const gp_XYZ & )) static_cast(&operator*),\n py::is_operator(),\n R\"#()#\" , py::arg(\"theMatrix\"), py::arg(\"theCoord1\"));\n"}, {"source1": "./usr/share/libocp/OCP/gp_pre.cpp", "source2": "./usr/share/libocp/OCP/gp_pre.cpp", "comments": ["Ordering differences only"], "unified_diff": "@@ -99,14 +99,24 @@\n \n // add namespaces as submodules\n m.def_submodule(\"std\");\n \n // user-defined inclusion per module in the body\n \n // enums\n+ py::enum_(m, \"gp_TrsfForm\",R\"#(Identifies the type of a geometric transformation.)#\")\n+ .value(\"gp_Identity\",gp_TrsfForm::gp_Identity)\n+ .value(\"gp_Rotation\",gp_TrsfForm::gp_Rotation)\n+ .value(\"gp_Translation\",gp_TrsfForm::gp_Translation)\n+ .value(\"gp_PntMirror\",gp_TrsfForm::gp_PntMirror)\n+ .value(\"gp_Ax1Mirror\",gp_TrsfForm::gp_Ax1Mirror)\n+ .value(\"gp_Ax2Mirror\",gp_TrsfForm::gp_Ax2Mirror)\n+ .value(\"gp_Scale\",gp_TrsfForm::gp_Scale)\n+ .value(\"gp_CompoundTrsf\",gp_TrsfForm::gp_CompoundTrsf)\n+ .value(\"gp_Other\",gp_TrsfForm::gp_Other).export_values();\n 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.)#\")\n .value(\"gp_EulerAngles\",gp_EulerSequence::gp_EulerAngles)\n .value(\"gp_YawPitchRoll\",gp_EulerSequence::gp_YawPitchRoll)\n .value(\"gp_Extrinsic_XYZ\",gp_EulerSequence::gp_Extrinsic_XYZ)\n .value(\"gp_Extrinsic_XZY\",gp_EulerSequence::gp_Extrinsic_XZY)\n .value(\"gp_Extrinsic_YZX\",gp_EulerSequence::gp_Extrinsic_YZX)\n .value(\"gp_Extrinsic_YXZ\",gp_EulerSequence::gp_Extrinsic_YXZ)\n@@ -126,24 +136,14 @@\n .value(\"gp_Extrinsic_ZXZ\",gp_EulerSequence::gp_Extrinsic_ZXZ)\n .value(\"gp_Intrinsic_XYX\",gp_EulerSequence::gp_Intrinsic_XYX)\n .value(\"gp_Intrinsic_XZX\",gp_EulerSequence::gp_Intrinsic_XZX)\n .value(\"gp_Intrinsic_YZY\",gp_EulerSequence::gp_Intrinsic_YZY)\n .value(\"gp_Intrinsic_YXY\",gp_EulerSequence::gp_Intrinsic_YXY)\n .value(\"gp_Intrinsic_ZXZ\",gp_EulerSequence::gp_Intrinsic_ZXZ)\n .value(\"gp_Intrinsic_ZYZ\",gp_EulerSequence::gp_Intrinsic_ZYZ).export_values();\n- py::enum_(m, \"gp_TrsfForm\",R\"#(Identifies the type of a geometric transformation.)#\")\n- .value(\"gp_Identity\",gp_TrsfForm::gp_Identity)\n- .value(\"gp_Rotation\",gp_TrsfForm::gp_Rotation)\n- .value(\"gp_Translation\",gp_TrsfForm::gp_Translation)\n- .value(\"gp_PntMirror\",gp_TrsfForm::gp_PntMirror)\n- .value(\"gp_Ax1Mirror\",gp_TrsfForm::gp_Ax1Mirror)\n- .value(\"gp_Ax2Mirror\",gp_TrsfForm::gp_Ax2Mirror)\n- .value(\"gp_Scale\",gp_TrsfForm::gp_Scale)\n- .value(\"gp_CompoundTrsf\",gp_TrsfForm::gp_CompoundTrsf)\n- .value(\"gp_Other\",gp_TrsfForm::gp_Other).export_values();\n \n //Python trampoline classes\n \n // pre-register typdefs+classes (topologically sorted)\n py::class_ , shared_ptr> >(m,\"NCollection_Lerp_gp_Trsf\",R\"#(Linear interpolation tool for transformation defined by gp_Trsf.)#\");\n 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.)#\");\n 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.)#\");\n"}]}]}]}]}