--- /srv/rebuilderd/tmp/rebuilderdseyLcA/inputs/python3-opencascade-pywrap_0.0~git20251205135501.e4d7570-3_all.deb +++ /srv/rebuilderd/tmp/rebuilderdseyLcA/out/python3-opencascade-pywrap_0.0~git20251205135501.e4d7570-3_all.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2026-02-28 16:20:44.000000 debian-binary │ -rw-r--r-- 0 0 0 21140 2026-02-28 16:20:44.000000 control.tar.xz │ --rw-r--r-- 0 0 0 2333348 2026-02-28 16:20:44.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 2333352 2026-02-28 16:20:44.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── ./usr/share/libocp/OCP/AIS_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -197,41 +197,87 @@ │ │ │ py::class_(m,"AIS_Manipulator_OptionsForAttach"); │ │ │ │ │ │ // enums │ │ │ py::enum_(m, "AIS_SelectStatus",R"#()#") │ │ │ .value("AIS_SS_Added",AIS_SelectStatus::AIS_SS_Added) │ │ │ .value("AIS_SS_Removed",AIS_SelectStatus::AIS_SS_Removed) │ │ │ .value("AIS_SS_NotDone",AIS_SelectStatus::AIS_SS_NotDone).export_values(); │ │ │ + py::enum_(m, "AIS_SelectionScheme",R"#(Sets selection schemes for interactive contexts.)#") │ │ │ + .value("AIS_SelectionScheme_UNKNOWN",AIS_SelectionScheme::AIS_SelectionScheme_UNKNOWN) │ │ │ + .value("AIS_SelectionScheme_Replace",AIS_SelectionScheme::AIS_SelectionScheme_Replace) │ │ │ + .value("AIS_SelectionScheme_Add",AIS_SelectionScheme::AIS_SelectionScheme_Add) │ │ │ + .value("AIS_SelectionScheme_Remove",AIS_SelectionScheme::AIS_SelectionScheme_Remove) │ │ │ + .value("AIS_SelectionScheme_XOR",AIS_SelectionScheme::AIS_SelectionScheme_XOR) │ │ │ + .value("AIS_SelectionScheme_Clear",AIS_SelectionScheme::AIS_SelectionScheme_Clear) │ │ │ + .value("AIS_SelectionScheme_ReplaceExtra",AIS_SelectionScheme::AIS_SelectionScheme_ReplaceExtra).export_values(); │ │ │ + py::enum_(m, "AIS_ViewSelectionTool",R"#(Selection mode)#") │ │ │ + .value("AIS_ViewSelectionTool_Picking",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Picking) │ │ │ + .value("AIS_ViewSelectionTool_RubberBand",AIS_ViewSelectionTool::AIS_ViewSelectionTool_RubberBand) │ │ │ + .value("AIS_ViewSelectionTool_Polygon",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Polygon) │ │ │ + .value("AIS_ViewSelectionTool_ZoomWindow",AIS_ViewSelectionTool::AIS_ViewSelectionTool_ZoomWindow).export_values(); │ │ │ + py::enum_(m, "AIS_ViewInputBufferType",R"#(Input buffer type.)#") │ │ │ + .value("AIS_ViewInputBufferType_UI",AIS_ViewInputBufferType::AIS_ViewInputBufferType_UI) │ │ │ + .value("AIS_ViewInputBufferType_GL",AIS_ViewInputBufferType::AIS_ViewInputBufferType_GL).export_values(); │ │ │ + py::enum_(m, "AIS_TypeOfIso",R"#(Declares the type of isoparameter displayed.)#") │ │ │ + .value("AIS_TOI_IsoU",AIS_TypeOfIso::AIS_TOI_IsoU) │ │ │ + .value("AIS_TOI_IsoV",AIS_TypeOfIso::AIS_TOI_IsoV) │ │ │ + .value("AIS_TOI_Both",AIS_TypeOfIso::AIS_TOI_Both).export_values(); │ │ │ py::enum_(m, "AIS_DragAction",R"#(Dragging action.)#") │ │ │ .value("AIS_DragAction_Start",AIS_DragAction::AIS_DragAction_Start) │ │ │ .value("AIS_DragAction_Confirmed",AIS_DragAction::AIS_DragAction_Confirmed) │ │ │ .value("AIS_DragAction_Update",AIS_DragAction::AIS_DragAction_Update) │ │ │ .value("AIS_DragAction_Stop",AIS_DragAction::AIS_DragAction_Stop) │ │ │ .value("AIS_DragAction_Abort",AIS_DragAction::AIS_DragAction_Abort).export_values(); │ │ │ - py::enum_(m, "AIS_ManipulatorMode",R"#(Mode to make definite kind of transformations with AIS_Manipulator object.)#") │ │ │ - .value("AIS_MM_None",AIS_ManipulatorMode::AIS_MM_None) │ │ │ - .value("AIS_MM_Translation",AIS_ManipulatorMode::AIS_MM_Translation) │ │ │ - .value("AIS_MM_Rotation",AIS_ManipulatorMode::AIS_MM_Rotation) │ │ │ - .value("AIS_MM_Scaling",AIS_ManipulatorMode::AIS_MM_Scaling) │ │ │ - .value("AIS_MM_TranslationPlane",AIS_ManipulatorMode::AIS_MM_TranslationPlane).export_values(); │ │ │ py::enum_(m, "AIS_MouseGesture",R"#(Mouse gesture - only one can be active at one moment.)#") │ │ │ .value("AIS_MouseGesture_NONE",AIS_MouseGesture::AIS_MouseGesture_NONE) │ │ │ .value("AIS_MouseGesture_SelectRectangle",AIS_MouseGesture::AIS_MouseGesture_SelectRectangle) │ │ │ .value("AIS_MouseGesture_SelectLasso",AIS_MouseGesture::AIS_MouseGesture_SelectLasso) │ │ │ .value("AIS_MouseGesture_Zoom",AIS_MouseGesture::AIS_MouseGesture_Zoom) │ │ │ .value("AIS_MouseGesture_ZoomVertical",AIS_MouseGesture::AIS_MouseGesture_ZoomVertical) │ │ │ .value("AIS_MouseGesture_ZoomWindow",AIS_MouseGesture::AIS_MouseGesture_ZoomWindow) │ │ │ .value("AIS_MouseGesture_Pan",AIS_MouseGesture::AIS_MouseGesture_Pan) │ │ │ .value("AIS_MouseGesture_RotateOrbit",AIS_MouseGesture::AIS_MouseGesture_RotateOrbit) │ │ │ .value("AIS_MouseGesture_RotateView",AIS_MouseGesture::AIS_MouseGesture_RotateView) │ │ │ .value("AIS_MouseGesture_Drag",AIS_MouseGesture::AIS_MouseGesture_Drag).export_values(); │ │ │ - py::enum_(m, "AIS_TypeOfIso",R"#(Declares the type of isoparameter displayed.)#") │ │ │ - .value("AIS_TOI_IsoU",AIS_TypeOfIso::AIS_TOI_IsoU) │ │ │ - .value("AIS_TOI_IsoV",AIS_TypeOfIso::AIS_TOI_IsoV) │ │ │ - .value("AIS_TOI_Both",AIS_TypeOfIso::AIS_TOI_Both).export_values(); │ │ │ + py::enum_(m, "AIS_TypeOfAxis",R"#(Declares the type of axis.)#") │ │ │ + .value("AIS_TOAX_Unknown",AIS_TypeOfAxis::AIS_TOAX_Unknown) │ │ │ + .value("AIS_TOAX_XAxis",AIS_TypeOfAxis::AIS_TOAX_XAxis) │ │ │ + .value("AIS_TOAX_YAxis",AIS_TypeOfAxis::AIS_TOAX_YAxis) │ │ │ + .value("AIS_TOAX_ZAxis",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values(); │ │ │ + py::enum_(m, "AIS_TrihedronSelectionMode",R"#(Enumeration defining selection modes supported by AIS_Trihedron.)#") │ │ │ + .value("AIS_TrihedronSelectionMode_EntireObject",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject) │ │ │ + .value("AIS_TrihedronSelectionMode_Origin",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin) │ │ │ + .value("AIS_TrihedronSelectionMode_Axes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes) │ │ │ + .value("AIS_TrihedronSelectionMode_MainPlanes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values(); │ │ │ + py::enum_(m, "AIS_StatusOfDetection",R"#()#") │ │ │ + .value("AIS_SOD_Error",AIS_StatusOfDetection::AIS_SOD_Error) │ │ │ + .value("AIS_SOD_Nothing",AIS_StatusOfDetection::AIS_SOD_Nothing) │ │ │ + .value("AIS_SOD_AllBad",AIS_StatusOfDetection::AIS_SOD_AllBad) │ │ │ + .value("AIS_SOD_Selected",AIS_StatusOfDetection::AIS_SOD_Selected) │ │ │ + .value("AIS_SOD_OnlyOneDetected",AIS_StatusOfDetection::AIS_SOD_OnlyOneDetected) │ │ │ + .value("AIS_SOD_OnlyOneGood",AIS_StatusOfDetection::AIS_SOD_OnlyOneGood) │ │ │ + .value("AIS_SOD_SeveralGood",AIS_StatusOfDetection::AIS_SOD_SeveralGood).export_values(); │ │ │ + py::enum_(m, "AIS_SelectionModesConcurrency",R"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#") │ │ │ + .value("AIS_SelectionModesConcurrency_Single",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single) │ │ │ + .value("AIS_SelectionModesConcurrency_GlobalOrLocal",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal) │ │ │ + .value("AIS_SelectionModesConcurrency_Multiple",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values(); │ │ │ + py::enum_(m, "AIS_RotationMode",R"#(Camera rotation mode.)#") │ │ │ + .value("AIS_RotationMode_BndBoxActive",AIS_RotationMode::AIS_RotationMode_BndBoxActive) │ │ │ + .value("AIS_RotationMode_PickLast",AIS_RotationMode::AIS_RotationMode_PickLast) │ │ │ + .value("AIS_RotationMode_PickCenter",AIS_RotationMode::AIS_RotationMode_PickCenter) │ │ │ + .value("AIS_RotationMode_CameraAt",AIS_RotationMode::AIS_RotationMode_CameraAt) │ │ │ + .value("AIS_RotationMode_BndBoxScene",AIS_RotationMode::AIS_RotationMode_BndBoxScene).export_values(); │ │ │ + m.attr("AIS_RotationMode_LOWER") = py::cast(int(AIS_RotationMode_LOWER)); │ │ │ + m.attr("AIS_RotationMode_UPPER") = py::cast(int(AIS_RotationMode_UPPER)); │ │ │ + py::enum_(m, "AIS_ManipulatorMode",R"#(Mode to make definite kind of transformations with AIS_Manipulator object.)#") │ │ │ + .value("AIS_MM_None",AIS_ManipulatorMode::AIS_MM_None) │ │ │ + .value("AIS_MM_Translation",AIS_ManipulatorMode::AIS_MM_Translation) │ │ │ + .value("AIS_MM_Rotation",AIS_ManipulatorMode::AIS_MM_Rotation) │ │ │ + .value("AIS_MM_Scaling",AIS_ManipulatorMode::AIS_MM_Scaling) │ │ │ + .value("AIS_MM_TranslationPlane",AIS_ManipulatorMode::AIS_MM_TranslationPlane).export_values(); │ │ │ py::enum_(m, "AIS_TypeOfAttribute",R"#()#") │ │ │ .value("AIS_TOA_Line",AIS_TypeOfAttribute::AIS_TOA_Line) │ │ │ .value("AIS_TOA_Dimension",AIS_TypeOfAttribute::AIS_TOA_Dimension) │ │ │ .value("AIS_TOA_Wire",AIS_TypeOfAttribute::AIS_TOA_Wire) │ │ │ .value("AIS_TOA_Plane",AIS_TypeOfAttribute::AIS_TOA_Plane) │ │ │ .value("AIS_TOA_Vector",AIS_TypeOfAttribute::AIS_TOA_Vector) │ │ │ .value("AIS_TOA_UIso",AIS_TypeOfAttribute::AIS_TOA_UIso) │ │ │ @@ -246,97 +292,51 @@ │ │ │ .value("AIS_TOA_SecondAxis",AIS_TypeOfAttribute::AIS_TOA_SecondAxis) │ │ │ .value("AIS_TOA_ThirdAxis",AIS_TypeOfAttribute::AIS_TOA_ThirdAxis).export_values(); │ │ │ py::enum_(m, "AIS_TypeOfPlane",R"#(Declares the type of plane.)#") │ │ │ .value("AIS_TOPL_Unknown",AIS_TypeOfPlane::AIS_TOPL_Unknown) │ │ │ .value("AIS_TOPL_XYPlane",AIS_TypeOfPlane::AIS_TOPL_XYPlane) │ │ │ .value("AIS_TOPL_XZPlane",AIS_TypeOfPlane::AIS_TOPL_XZPlane) │ │ │ .value("AIS_TOPL_YZPlane",AIS_TypeOfPlane::AIS_TOPL_YZPlane).export_values(); │ │ │ - py::enum_(m, "AIS_DisplayMode",R"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#") │ │ │ - .value("AIS_WireFrame",AIS_DisplayMode::AIS_WireFrame) │ │ │ - .value("AIS_Shaded",AIS_DisplayMode::AIS_Shaded).export_values(); │ │ │ - py::enum_(m, "AIS_ViewSelectionTool",R"#(Selection mode)#") │ │ │ - .value("AIS_ViewSelectionTool_Picking",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Picking) │ │ │ - .value("AIS_ViewSelectionTool_RubberBand",AIS_ViewSelectionTool::AIS_ViewSelectionTool_RubberBand) │ │ │ - .value("AIS_ViewSelectionTool_Polygon",AIS_ViewSelectionTool::AIS_ViewSelectionTool_Polygon) │ │ │ - .value("AIS_ViewSelectionTool_ZoomWindow",AIS_ViewSelectionTool::AIS_ViewSelectionTool_ZoomWindow).export_values(); │ │ │ - py::enum_(m, "AIS_ViewInputBufferType",R"#(Input buffer type.)#") │ │ │ - .value("AIS_ViewInputBufferType_UI",AIS_ViewInputBufferType::AIS_ViewInputBufferType_UI) │ │ │ - .value("AIS_ViewInputBufferType_GL",AIS_ViewInputBufferType::AIS_ViewInputBufferType_GL).export_values(); │ │ │ - py::enum_(m, "AIS_SelectionModesConcurrency",R"#(The mode specifying how multiple active Selection Modes should be treated during activation of new one.)#") │ │ │ - .value("AIS_SelectionModesConcurrency_Single",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Single) │ │ │ - .value("AIS_SelectionModesConcurrency_GlobalOrLocal",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_GlobalOrLocal) │ │ │ - .value("AIS_SelectionModesConcurrency_Multiple",AIS_SelectionModesConcurrency::AIS_SelectionModesConcurrency_Multiple).export_values(); │ │ │ - py::enum_(m, "AIS_StatusOfDetection",R"#()#") │ │ │ - .value("AIS_SOD_Error",AIS_StatusOfDetection::AIS_SOD_Error) │ │ │ - .value("AIS_SOD_Nothing",AIS_StatusOfDetection::AIS_SOD_Nothing) │ │ │ - .value("AIS_SOD_AllBad",AIS_StatusOfDetection::AIS_SOD_AllBad) │ │ │ - .value("AIS_SOD_Selected",AIS_StatusOfDetection::AIS_SOD_Selected) │ │ │ - .value("AIS_SOD_OnlyOneDetected",AIS_StatusOfDetection::AIS_SOD_OnlyOneDetected) │ │ │ - .value("AIS_SOD_OnlyOneGood",AIS_StatusOfDetection::AIS_SOD_OnlyOneGood) │ │ │ - .value("AIS_SOD_SeveralGood",AIS_StatusOfDetection::AIS_SOD_SeveralGood).export_values(); │ │ │ - py::enum_(m, "AIS_SelectionScheme",R"#(Sets selection schemes for interactive contexts.)#") │ │ │ - .value("AIS_SelectionScheme_UNKNOWN",AIS_SelectionScheme::AIS_SelectionScheme_UNKNOWN) │ │ │ - .value("AIS_SelectionScheme_Replace",AIS_SelectionScheme::AIS_SelectionScheme_Replace) │ │ │ - .value("AIS_SelectionScheme_Add",AIS_SelectionScheme::AIS_SelectionScheme_Add) │ │ │ - .value("AIS_SelectionScheme_Remove",AIS_SelectionScheme::AIS_SelectionScheme_Remove) │ │ │ - .value("AIS_SelectionScheme_XOR",AIS_SelectionScheme::AIS_SelectionScheme_XOR) │ │ │ - .value("AIS_SelectionScheme_Clear",AIS_SelectionScheme::AIS_SelectionScheme_Clear) │ │ │ - .value("AIS_SelectionScheme_ReplaceExtra",AIS_SelectionScheme::AIS_SelectionScheme_ReplaceExtra).export_values(); │ │ │ - py::enum_(m, "AIS_StatusOfPick",R"#()#") │ │ │ - .value("AIS_SOP_Error",AIS_StatusOfPick::AIS_SOP_Error) │ │ │ - .value("AIS_SOP_NothingSelected",AIS_StatusOfPick::AIS_SOP_NothingSelected) │ │ │ - .value("AIS_SOP_Removed",AIS_StatusOfPick::AIS_SOP_Removed) │ │ │ - .value("AIS_SOP_OneSelected",AIS_StatusOfPick::AIS_SOP_OneSelected) │ │ │ - .value("AIS_SOP_SeveralSelected",AIS_StatusOfPick::AIS_SOP_SeveralSelected).export_values(); │ │ │ - py::enum_(m, "AIS_TrihedronSelectionMode",R"#(Enumeration defining selection modes supported by AIS_Trihedron.)#") │ │ │ - .value("AIS_TrihedronSelectionMode_EntireObject",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_EntireObject) │ │ │ - .value("AIS_TrihedronSelectionMode_Origin",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Origin) │ │ │ - .value("AIS_TrihedronSelectionMode_Axes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_Axes) │ │ │ - .value("AIS_TrihedronSelectionMode_MainPlanes",AIS_TrihedronSelectionMode::AIS_TrihedronSelectionMode_MainPlanes).export_values(); │ │ │ - py::enum_(m, "AIS_KindOfInteractive",R"#(Declares the type of Interactive Object. This type can be used for fast pre-filtering of objects of specific group.)#") │ │ │ - .value("AIS_KindOfInteractive_None",AIS_KindOfInteractive::AIS_KindOfInteractive_None) │ │ │ - .value("AIS_KindOfInteractive_Datum",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum) │ │ │ - .value("AIS_KindOfInteractive_Shape",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape) │ │ │ - .value("AIS_KindOfInteractive_Object",AIS_KindOfInteractive::AIS_KindOfInteractive_Object) │ │ │ - .value("AIS_KindOfInteractive_Relation",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation) │ │ │ - .value("AIS_KindOfInteractive_Dimension",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension) │ │ │ - .value("AIS_KindOfInteractive_LightSource",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource) │ │ │ - .value("AIS_KOI_None",AIS_KindOfInteractive::AIS_KOI_None) │ │ │ - .value("AIS_KOI_Datum",AIS_KindOfInteractive::AIS_KOI_Datum) │ │ │ - .value("AIS_KOI_Shape",AIS_KindOfInteractive::AIS_KOI_Shape) │ │ │ - .value("AIS_KOI_Object",AIS_KindOfInteractive::AIS_KOI_Object) │ │ │ - .value("AIS_KOI_Relation",AIS_KindOfInteractive::AIS_KOI_Relation) │ │ │ - .value("AIS_KOI_Dimension",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values(); │ │ │ - py::enum_(m, "AIS_TypeOfAxis",R"#(Declares the type of axis.)#") │ │ │ - .value("AIS_TOAX_Unknown",AIS_TypeOfAxis::AIS_TOAX_Unknown) │ │ │ - .value("AIS_TOAX_XAxis",AIS_TypeOfAxis::AIS_TOAX_XAxis) │ │ │ - .value("AIS_TOAX_YAxis",AIS_TypeOfAxis::AIS_TOAX_YAxis) │ │ │ - .value("AIS_TOAX_ZAxis",AIS_TypeOfAxis::AIS_TOAX_ZAxis).export_values(); │ │ │ py::enum_(m, "AIS_WalkTranslation",R"#(Walking translation components.)#") │ │ │ .value("AIS_WalkTranslation_Forward",AIS_WalkTranslation::AIS_WalkTranslation_Forward) │ │ │ .value("AIS_WalkTranslation_Side",AIS_WalkTranslation::AIS_WalkTranslation_Side) │ │ │ .value("AIS_WalkTranslation_Up",AIS_WalkTranslation::AIS_WalkTranslation_Up).export_values(); │ │ │ py::enum_(m, "AIS_WalkRotation",R"#(Walking rotation components.)#") │ │ │ .value("AIS_WalkRotation_Yaw",AIS_WalkRotation::AIS_WalkRotation_Yaw) │ │ │ .value("AIS_WalkRotation_Pitch",AIS_WalkRotation::AIS_WalkRotation_Pitch) │ │ │ .value("AIS_WalkRotation_Roll",AIS_WalkRotation::AIS_WalkRotation_Roll).export_values(); │ │ │ - py::enum_(m, "AIS_RotationMode",R"#(Camera rotation mode.)#") │ │ │ - .value("AIS_RotationMode_BndBoxActive",AIS_RotationMode::AIS_RotationMode_BndBoxActive) │ │ │ - .value("AIS_RotationMode_PickLast",AIS_RotationMode::AIS_RotationMode_PickLast) │ │ │ - .value("AIS_RotationMode_PickCenter",AIS_RotationMode::AIS_RotationMode_PickCenter) │ │ │ - .value("AIS_RotationMode_CameraAt",AIS_RotationMode::AIS_RotationMode_CameraAt) │ │ │ - .value("AIS_RotationMode_BndBoxScene",AIS_RotationMode::AIS_RotationMode_BndBoxScene).export_values(); │ │ │ - m.attr("AIS_RotationMode_LOWER") = py::cast(int(AIS_RotationMode_LOWER)); │ │ │ - m.attr("AIS_RotationMode_UPPER") = py::cast(int(AIS_RotationMode_UPPER)); │ │ │ py::enum_(m, "AIS_NavigationMode",R"#(Camera navigation mode.)#") │ │ │ .value("AIS_NavigationMode_Orbit",AIS_NavigationMode::AIS_NavigationMode_Orbit) │ │ │ .value("AIS_NavigationMode_FirstPersonFlight",AIS_NavigationMode::AIS_NavigationMode_FirstPersonFlight) │ │ │ .value("AIS_NavigationMode_FirstPersonWalk",AIS_NavigationMode::AIS_NavigationMode_FirstPersonWalk).export_values(); │ │ │ m.attr("AIS_NavigationMode_LOWER") = py::cast(int(AIS_NavigationMode_LOWER)); │ │ │ m.attr("AIS_NavigationMode_UPPER") = py::cast(int(AIS_NavigationMode_UPPER)); │ │ │ + py::enum_(m, "AIS_KindOfInteractive",R"#(Declares the type of Interactive Object. This type can be used for fast pre-filtering of objects of specific group.)#") │ │ │ + .value("AIS_KindOfInteractive_None",AIS_KindOfInteractive::AIS_KindOfInteractive_None) │ │ │ + .value("AIS_KindOfInteractive_Datum",AIS_KindOfInteractive::AIS_KindOfInteractive_Datum) │ │ │ + .value("AIS_KindOfInteractive_Shape",AIS_KindOfInteractive::AIS_KindOfInteractive_Shape) │ │ │ + .value("AIS_KindOfInteractive_Object",AIS_KindOfInteractive::AIS_KindOfInteractive_Object) │ │ │ + .value("AIS_KindOfInteractive_Relation",AIS_KindOfInteractive::AIS_KindOfInteractive_Relation) │ │ │ + .value("AIS_KindOfInteractive_Dimension",AIS_KindOfInteractive::AIS_KindOfInteractive_Dimension) │ │ │ + .value("AIS_KindOfInteractive_LightSource",AIS_KindOfInteractive::AIS_KindOfInteractive_LightSource) │ │ │ + .value("AIS_KOI_None",AIS_KindOfInteractive::AIS_KOI_None) │ │ │ + .value("AIS_KOI_Datum",AIS_KindOfInteractive::AIS_KOI_Datum) │ │ │ + .value("AIS_KOI_Shape",AIS_KindOfInteractive::AIS_KOI_Shape) │ │ │ + .value("AIS_KOI_Object",AIS_KindOfInteractive::AIS_KOI_Object) │ │ │ + .value("AIS_KOI_Relation",AIS_KindOfInteractive::AIS_KOI_Relation) │ │ │ + .value("AIS_KOI_Dimension",AIS_KindOfInteractive::AIS_KOI_Dimension).export_values(); │ │ │ + py::enum_(m, "AIS_StatusOfPick",R"#()#") │ │ │ + .value("AIS_SOP_Error",AIS_StatusOfPick::AIS_SOP_Error) │ │ │ + .value("AIS_SOP_NothingSelected",AIS_StatusOfPick::AIS_SOP_NothingSelected) │ │ │ + .value("AIS_SOP_Removed",AIS_StatusOfPick::AIS_SOP_Removed) │ │ │ + .value("AIS_SOP_OneSelected",AIS_StatusOfPick::AIS_SOP_OneSelected) │ │ │ + .value("AIS_SOP_SeveralSelected",AIS_StatusOfPick::AIS_SOP_SeveralSelected).export_values(); │ │ │ + py::enum_(m, "AIS_DisplayMode",R"#(Sets display modes other than neutral point ones, for interactive objects. The possibilities include: - wireframe, - shaded,)#") │ │ │ + .value("AIS_WireFrame",AIS_DisplayMode::AIS_WireFrame) │ │ │ + .value("AIS_Shaded",AIS_DisplayMode::AIS_Shaded).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_AIS_InteractiveObject : public AIS_InteractiveObject{ │ │ │ public: │ │ │ using AIS_InteractiveObject::AIS_InteractiveObject; │ │ ├── ./usr/share/libocp/OCP/AdvApp2Var_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -72,20 +72,20 @@ │ │ │ py::module m = main_module.def_submodule("AdvApp2Var", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "AdvApp2Var_CriterionRepartition",R"#(way of cutting process//! all new cutting points at each step of cutting process : (a+i(b-a)/N)i at step N, (a+i(b-a)/(N+1))i at step N+1,... where (a,b) is the global interval//! add one new cutting point at each step of cutting process)#") │ │ │ - .value("AdvApp2Var_Regular",AdvApp2Var_CriterionRepartition::AdvApp2Var_Regular) │ │ │ - .value("AdvApp2Var_Incremental",AdvApp2Var_CriterionRepartition::AdvApp2Var_Incremental).export_values(); │ │ │ py::enum_(m, "AdvApp2Var_CriterionType",R"#(influence of the criterion on cutting process cutting when criterion is not satisfied deactivation of the compute of the error max cutting when error max is not good or if error max is good and criterion is not satisfied)#") │ │ │ .value("AdvApp2Var_Absolute",AdvApp2Var_CriterionType::AdvApp2Var_Absolute) │ │ │ .value("AdvApp2Var_Relative",AdvApp2Var_CriterionType::AdvApp2Var_Relative).export_values(); │ │ │ + py::enum_(m, "AdvApp2Var_CriterionRepartition",R"#(way of cutting process//! all new cutting points at each step of cutting process : (a+i(b-a)/N)i at step N, (a+i(b-a)/(N+1))i at step N+1,... where (a,b) is the global interval//! add one new cutting point at each step of cutting process)#") │ │ │ + .value("AdvApp2Var_Regular",AdvApp2Var_CriterionRepartition::AdvApp2Var_Regular) │ │ │ + .value("AdvApp2Var_Incremental",AdvApp2Var_CriterionRepartition::AdvApp2Var_Incremental).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_AdvApp2Var_Criterion : public AdvApp2Var_Criterion{ │ │ │ public: │ │ │ using AdvApp2Var_Criterion::AdvApp2Var_Criterion; │ │ ├── ./usr/share/libocp/OCP/Approx_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -61,22 +61,22 @@ │ │ │ py::module m = main_module.def_submodule("Approx", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Approx_Status",R"#(It is an auxiliary flag being used in inner computations)#") │ │ │ - .value("Approx_PointsAdded",Approx_Status::Approx_PointsAdded) │ │ │ - .value("Approx_NoPointsAdded",Approx_Status::Approx_NoPointsAdded) │ │ │ - .value("Approx_NoApproximation",Approx_Status::Approx_NoApproximation).export_values(); │ │ │ py::enum_(m, "Approx_ParametrizationType",R"#()#") │ │ │ .value("Approx_ChordLength",Approx_ParametrizationType::Approx_ChordLength) │ │ │ .value("Approx_Centripetal",Approx_ParametrizationType::Approx_Centripetal) │ │ │ .value("Approx_IsoParametric",Approx_ParametrizationType::Approx_IsoParametric).export_values(); │ │ │ + py::enum_(m, "Approx_Status",R"#(It is an auxiliary flag being used in inner computations)#") │ │ │ + .value("Approx_PointsAdded",Approx_Status::Approx_PointsAdded) │ │ │ + .value("Approx_NoPointsAdded",Approx_Status::Approx_NoPointsAdded) │ │ │ + .value("Approx_NoApproximation",Approx_Status::Approx_NoApproximation).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Approx_SweepFunction : public Approx_SweepFunction{ │ │ │ public: │ │ │ using Approx_SweepFunction::Approx_SweepFunction; │ │ ├── ./usr/share/libocp/OCP/Aspect_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -113,34 +113,134 @@ │ │ │ py::module m = main_module.def_submodule("Aspect", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "Aspect_TypeOfDisplayText",R"#(Define the display type of the text.)#") │ │ │ + .value("Aspect_TODT_NORMAL",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL) │ │ │ + .value("Aspect_TODT_SUBTITLE",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE) │ │ │ + .value("Aspect_TODT_DEKALE",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE) │ │ │ + .value("Aspect_TODT_BLEND",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND) │ │ │ + .value("Aspect_TODT_DIMENSION",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION) │ │ │ + .value("Aspect_TODT_SHADOW",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfColorScaleOrientation",R"#(Defines the type of color scale orientation)#") │ │ │ + .value("Aspect_TOCSO_NONE",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE) │ │ │ + .value("Aspect_TOCSO_LEFT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT) │ │ │ + .value("Aspect_TOCSO_RIGHT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT) │ │ │ + .value("Aspect_TOCSO_CENTER",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values(); │ │ │ + py::enum_(m, "Aspect_ColorSpace",R"#(Texture color spaces accepted by XR composer.)#") │ │ │ + .value("Aspect_ColorSpace_sRGB",Aspect_ColorSpace::Aspect_ColorSpace_sRGB) │ │ │ + .value("Aspect_ColorSpace_Linear",Aspect_ColorSpace::Aspect_ColorSpace_Linear).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfMarker",R"#(Definition of types of markers)#") │ │ │ + .value("Aspect_TOM_EMPTY",Aspect_TypeOfMarker::Aspect_TOM_EMPTY) │ │ │ + .value("Aspect_TOM_POINT",Aspect_TypeOfMarker::Aspect_TOM_POINT) │ │ │ + .value("Aspect_TOM_PLUS",Aspect_TypeOfMarker::Aspect_TOM_PLUS) │ │ │ + .value("Aspect_TOM_STAR",Aspect_TypeOfMarker::Aspect_TOM_STAR) │ │ │ + .value("Aspect_TOM_X",Aspect_TypeOfMarker::Aspect_TOM_X) │ │ │ + .value("Aspect_TOM_O",Aspect_TypeOfMarker::Aspect_TOM_O) │ │ │ + .value("Aspect_TOM_O_POINT",Aspect_TypeOfMarker::Aspect_TOM_O_POINT) │ │ │ + .value("Aspect_TOM_O_PLUS",Aspect_TypeOfMarker::Aspect_TOM_O_PLUS) │ │ │ + .value("Aspect_TOM_O_STAR",Aspect_TypeOfMarker::Aspect_TOM_O_STAR) │ │ │ + .value("Aspect_TOM_O_X",Aspect_TypeOfMarker::Aspect_TOM_O_X) │ │ │ + .value("Aspect_TOM_RING1",Aspect_TypeOfMarker::Aspect_TOM_RING1) │ │ │ + .value("Aspect_TOM_RING2",Aspect_TypeOfMarker::Aspect_TOM_RING2) │ │ │ + .value("Aspect_TOM_RING3",Aspect_TypeOfMarker::Aspect_TOM_RING3) │ │ │ + .value("Aspect_TOM_BALL",Aspect_TypeOfMarker::Aspect_TOM_BALL) │ │ │ + .value("Aspect_TOM_USERDEFINED",Aspect_TypeOfMarker::Aspect_TOM_USERDEFINED).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfColorScalePosition",R"#(Defines the type of position for color scale labels)#") │ │ │ + .value("Aspect_TOCSP_NONE",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE) │ │ │ + .value("Aspect_TOCSP_LEFT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT) │ │ │ + .value("Aspect_TOCSP_RIGHT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT) │ │ │ + .value("Aspect_TOCSP_CENTER",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values(); │ │ │ + py::enum_(m, "Aspect_PolygonOffsetMode",R"#()#") │ │ │ + .value("Aspect_POM_Off",Aspect_PolygonOffsetMode::Aspect_POM_Off) │ │ │ + .value("Aspect_POM_Fill",Aspect_PolygonOffsetMode::Aspect_POM_Fill) │ │ │ + .value("Aspect_POM_Line",Aspect_PolygonOffsetMode::Aspect_POM_Line) │ │ │ + .value("Aspect_POM_Point",Aspect_PolygonOffsetMode::Aspect_POM_Point) │ │ │ + .value("Aspect_POM_All",Aspect_PolygonOffsetMode::Aspect_POM_All) │ │ │ + .value("Aspect_POM_None",Aspect_PolygonOffsetMode::Aspect_POM_None) │ │ │ + .value("Aspect_POM_Mask",Aspect_PolygonOffsetMode::Aspect_POM_Mask).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfTriedronPosition",R"#(Definition of the Trihedron position in the views. It is defined as a bitmask to simplify handling vertical and horizontal alignment independently.)#") │ │ │ + .value("Aspect_TOTP_CENTER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER) │ │ │ + .value("Aspect_TOTP_TOP",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP) │ │ │ + .value("Aspect_TOTP_BOTTOM",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM) │ │ │ + .value("Aspect_TOTP_LEFT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT) │ │ │ + .value("Aspect_TOTP_RIGHT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT) │ │ │ + .value("Aspect_TOTP_LEFT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER) │ │ │ + .value("Aspect_TOTP_LEFT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER) │ │ │ + .value("Aspect_TOTP_RIGHT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER) │ │ │ + .value("Aspect_TOTP_RIGHT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values(); │ │ │ + py::enum_(m, "Aspect_XRGenericAction",R"#(Generic XR action.)#") │ │ │ + .value("Aspect_XRGenericAction_IsHeadsetOn",Aspect_XRGenericAction::Aspect_XRGenericAction_IsHeadsetOn) │ │ │ + .value("Aspect_XRGenericAction_InputAppMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputAppMenu) │ │ │ + .value("Aspect_XRGenericAction_InputSysMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputSysMenu) │ │ │ + .value("Aspect_XRGenericAction_InputTriggerPull",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerPull) │ │ │ + .value("Aspect_XRGenericAction_InputTriggerClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerClick) │ │ │ + .value("Aspect_XRGenericAction_InputGripClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputGripClick) │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadPosition) │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadTouch) │ │ │ + .value("Aspect_XRGenericAction_InputTrackPadClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadClick) │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickPosition) │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickTouch) │ │ │ + .value("Aspect_XRGenericAction_InputThumbstickClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickClick) │ │ │ + .value("Aspect_XRGenericAction_InputPoseBase",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseBase) │ │ │ + .value("Aspect_XRGenericAction_InputPoseFront",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFront) │ │ │ + .value("Aspect_XRGenericAction_InputPoseHandGrip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseHandGrip) │ │ │ + .value("Aspect_XRGenericAction_InputPoseFingerTip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFingerTip) │ │ │ + .value("Aspect_XRGenericAction_OutputHaptic",Aspect_XRGenericAction::Aspect_XRGenericAction_OutputHaptic).export_values(); │ │ │ + m.attr("Aspect_XRGenericAction_NB") = py::cast(int(Aspect_XRGenericAction_NB)); │ │ │ + py::enum_(m, "Aspect_WidthOfLine",R"#(Definition of line types)#") │ │ │ + .value("Aspect_WOL_THIN",Aspect_WidthOfLine::Aspect_WOL_THIN) │ │ │ + .value("Aspect_WOL_MEDIUM",Aspect_WidthOfLine::Aspect_WOL_MEDIUM) │ │ │ + .value("Aspect_WOL_THICK",Aspect_WidthOfLine::Aspect_WOL_THICK) │ │ │ + .value("Aspect_WOL_VERYTHICK",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK) │ │ │ + .value("Aspect_WOL_USERDEFINED",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values(); │ │ │ + py::enum_(m, "Aspect_InteriorStyle",R"#(Interior types for primitive faces.)#") │ │ │ + .value("Aspect_IS_EMPTY",Aspect_InteriorStyle::Aspect_IS_EMPTY) │ │ │ + .value("Aspect_IS_SOLID",Aspect_InteriorStyle::Aspect_IS_SOLID) │ │ │ + .value("Aspect_IS_HATCH",Aspect_InteriorStyle::Aspect_IS_HATCH) │ │ │ + .value("Aspect_IS_HIDDENLINE",Aspect_InteriorStyle::Aspect_IS_HIDDENLINE) │ │ │ + .value("Aspect_IS_POINT",Aspect_InteriorStyle::Aspect_IS_POINT) │ │ │ + .value("Aspect_IS_HOLLOW",Aspect_InteriorStyle::Aspect_IS_HOLLOW).export_values(); │ │ │ + m.attr("Aspect_VKeyFlags_NONE") = py::cast(int(Aspect_VKeyFlags_NONE)); │ │ │ + m.attr("Aspect_VKeyFlags_SHIFT") = py::cast(int(Aspect_VKeyFlags_SHIFT)); │ │ │ + m.attr("Aspect_VKeyFlags_CTRL") = py::cast(int(Aspect_VKeyFlags_CTRL)); │ │ │ + m.attr("Aspect_VKeyFlags_ALT") = py::cast(int(Aspect_VKeyFlags_ALT)); │ │ │ + m.attr("Aspect_VKeyFlags_MENU") = py::cast(int(Aspect_VKeyFlags_MENU)); │ │ │ + m.attr("Aspect_VKeyFlags_META") = py::cast(int(Aspect_VKeyFlags_META)); │ │ │ + m.attr("Aspect_VKeyFlags_ALL") = py::cast(int(Aspect_VKeyFlags_ALL)); │ │ │ + m.attr("Aspect_VKeyMouse_NONE") = py::cast(int(Aspect_VKeyMouse_NONE)); │ │ │ + m.attr("Aspect_VKeyMouse_LeftButton") = py::cast(int(Aspect_VKeyMouse_LeftButton)); │ │ │ + m.attr("Aspect_VKeyMouse_MiddleButton") = py::cast(int(Aspect_VKeyMouse_MiddleButton)); │ │ │ + m.attr("Aspect_VKeyMouse_RightButton") = py::cast(int(Aspect_VKeyMouse_RightButton)); │ │ │ + m.attr("Aspect_VKeyMouse_MainButtons") = py::cast(int(Aspect_VKeyMouse_MainButtons)); │ │ │ + py::enum_(m, "Aspect_XRActionType",R"#(XR action type.)#") │ │ │ + .value("Aspect_XRActionType_InputDigital",Aspect_XRActionType::Aspect_XRActionType_InputDigital) │ │ │ + .value("Aspect_XRActionType_InputAnalog",Aspect_XRActionType::Aspect_XRActionType_InputAnalog) │ │ │ + .value("Aspect_XRActionType_InputPose",Aspect_XRActionType::Aspect_XRActionType_InputPose) │ │ │ + .value("Aspect_XRActionType_InputSkeletal",Aspect_XRActionType::Aspect_XRActionType_InputSkeletal) │ │ │ + .value("Aspect_XRActionType_OutputHaptic",Aspect_XRActionType::Aspect_XRActionType_OutputHaptic).export_values(); │ │ │ + py::enum_(m, "Aspect_FillMethod",R"#(Defines the fill methods to write bitmaps in a window.)#") │ │ │ + .value("Aspect_FM_NONE",Aspect_FillMethod::Aspect_FM_NONE) │ │ │ + .value("Aspect_FM_CENTERED",Aspect_FillMethod::Aspect_FM_CENTERED) │ │ │ + .value("Aspect_FM_TILED",Aspect_FillMethod::Aspect_FM_TILED) │ │ │ + .value("Aspect_FM_STRETCH",Aspect_FillMethod::Aspect_FM_STRETCH).export_values(); │ │ │ py::enum_(m, "Aspect_TypeOfResize",R"#(Defines the type of Resize Window method applied by the user.)#") │ │ │ .value("Aspect_TOR_UNKNOWN",Aspect_TypeOfResize::Aspect_TOR_UNKNOWN) │ │ │ .value("Aspect_TOR_NO_BORDER",Aspect_TypeOfResize::Aspect_TOR_NO_BORDER) │ │ │ .value("Aspect_TOR_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_BORDER) │ │ │ .value("Aspect_TOR_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_BORDER) │ │ │ .value("Aspect_TOR_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_BORDER) │ │ │ .value("Aspect_TOR_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_BORDER) │ │ │ .value("Aspect_TOR_TOP_AND_RIGHT_BORDER",Aspect_TypeOfResize::Aspect_TOR_TOP_AND_RIGHT_BORDER) │ │ │ .value("Aspect_TOR_RIGHT_AND_BOTTOM_BORDER",Aspect_TypeOfResize::Aspect_TOR_RIGHT_AND_BOTTOM_BORDER) │ │ │ .value("Aspect_TOR_BOTTOM_AND_LEFT_BORDER",Aspect_TypeOfResize::Aspect_TOR_BOTTOM_AND_LEFT_BORDER) │ │ │ .value("Aspect_TOR_LEFT_AND_TOP_BORDER",Aspect_TypeOfResize::Aspect_TOR_LEFT_AND_TOP_BORDER).export_values(); │ │ │ - py::enum_(m, "Aspect_GraphicsLibrary",R"#(Graphics API enumeration.)#") │ │ │ - .value("Aspect_GraphicsLibrary_OpenGL",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL) │ │ │ - .value("Aspect_GraphicsLibrary_OpenGLES",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfColorScaleData",R"#(Defines the using type of colors and labels)#") │ │ │ - .value("Aspect_TOCSD_AUTO",Aspect_TypeOfColorScaleData::Aspect_TOCSD_AUTO) │ │ │ - .value("Aspect_TOCSD_USER",Aspect_TypeOfColorScaleData::Aspect_TOCSD_USER).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfDeflection",R"#(Defines if the maximal chordial deflection used when drawing an object is absolute or relative to the size of the object.)#") │ │ │ - .value("Aspect_TOD_RELATIVE",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE) │ │ │ - .value("Aspect_TOD_ABSOLUTE",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values(); │ │ │ py::enum_(m, "Aspect_HatchStyle",R"#(Definition of all available hatch styles.)#") │ │ │ .value("Aspect_HS_SOLID",Aspect_HatchStyle::Aspect_HS_SOLID) │ │ │ .value("Aspect_HS_HORIZONTAL",Aspect_HatchStyle::Aspect_HS_HORIZONTAL) │ │ │ .value("Aspect_HS_HORIZONTAL_WIDE",Aspect_HatchStyle::Aspect_HS_HORIZONTAL_WIDE) │ │ │ .value("Aspect_HS_VERTICAL",Aspect_HatchStyle::Aspect_HS_VERTICAL) │ │ │ .value("Aspect_HS_VERTICAL_WIDE",Aspect_HatchStyle::Aspect_HS_VERTICAL_WIDE) │ │ │ .value("Aspect_HS_DIAGONAL_45",Aspect_HatchStyle::Aspect_HS_DIAGONAL_45) │ │ │ @@ -148,36 +248,14 @@ │ │ │ .value("Aspect_HS_DIAGONAL_135",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135) │ │ │ .value("Aspect_HS_DIAGONAL_135_WIDE",Aspect_HatchStyle::Aspect_HS_DIAGONAL_135_WIDE) │ │ │ .value("Aspect_HS_GRID",Aspect_HatchStyle::Aspect_HS_GRID) │ │ │ .value("Aspect_HS_GRID_WIDE",Aspect_HatchStyle::Aspect_HS_GRID_WIDE) │ │ │ .value("Aspect_HS_GRID_DIAGONAL",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL) │ │ │ .value("Aspect_HS_GRID_DIAGONAL_WIDE",Aspect_HatchStyle::Aspect_HS_GRID_DIAGONAL_WIDE) │ │ │ .value("Aspect_HS_NB",Aspect_HatchStyle::Aspect_HS_NB).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfMarker",R"#(Definition of types of markers)#") │ │ │ - .value("Aspect_TOM_EMPTY",Aspect_TypeOfMarker::Aspect_TOM_EMPTY) │ │ │ - .value("Aspect_TOM_POINT",Aspect_TypeOfMarker::Aspect_TOM_POINT) │ │ │ - .value("Aspect_TOM_PLUS",Aspect_TypeOfMarker::Aspect_TOM_PLUS) │ │ │ - .value("Aspect_TOM_STAR",Aspect_TypeOfMarker::Aspect_TOM_STAR) │ │ │ - .value("Aspect_TOM_X",Aspect_TypeOfMarker::Aspect_TOM_X) │ │ │ - .value("Aspect_TOM_O",Aspect_TypeOfMarker::Aspect_TOM_O) │ │ │ - .value("Aspect_TOM_O_POINT",Aspect_TypeOfMarker::Aspect_TOM_O_POINT) │ │ │ - .value("Aspect_TOM_O_PLUS",Aspect_TypeOfMarker::Aspect_TOM_O_PLUS) │ │ │ - .value("Aspect_TOM_O_STAR",Aspect_TypeOfMarker::Aspect_TOM_O_STAR) │ │ │ - .value("Aspect_TOM_O_X",Aspect_TypeOfMarker::Aspect_TOM_O_X) │ │ │ - .value("Aspect_TOM_RING1",Aspect_TypeOfMarker::Aspect_TOM_RING1) │ │ │ - .value("Aspect_TOM_RING2",Aspect_TypeOfMarker::Aspect_TOM_RING2) │ │ │ - .value("Aspect_TOM_RING3",Aspect_TypeOfMarker::Aspect_TOM_RING3) │ │ │ - .value("Aspect_TOM_BALL",Aspect_TypeOfMarker::Aspect_TOM_BALL) │ │ │ - .value("Aspect_TOM_USERDEFINED",Aspect_TypeOfMarker::Aspect_TOM_USERDEFINED).export_values(); │ │ │ - py::enum_(m, "Aspect_WidthOfLine",R"#(Definition of line types)#") │ │ │ - .value("Aspect_WOL_THIN",Aspect_WidthOfLine::Aspect_WOL_THIN) │ │ │ - .value("Aspect_WOL_MEDIUM",Aspect_WidthOfLine::Aspect_WOL_MEDIUM) │ │ │ - .value("Aspect_WOL_THICK",Aspect_WidthOfLine::Aspect_WOL_THICK) │ │ │ - .value("Aspect_WOL_VERYTHICK",Aspect_WidthOfLine::Aspect_WOL_VERYTHICK) │ │ │ - .value("Aspect_WOL_USERDEFINED",Aspect_WidthOfLine::Aspect_WOL_USERDEFINED).export_values(); │ │ │ py::enum_(m, "Aspect_GradientFillMethod",R"#(Defines the fill methods to write gradient background in a window.)#") │ │ │ .value("Aspect_GradientFillMethod_None",Aspect_GradientFillMethod::Aspect_GradientFillMethod_None) │ │ │ .value("Aspect_GradientFillMethod_Horizontal",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Horizontal) │ │ │ .value("Aspect_GradientFillMethod_Vertical",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Vertical) │ │ │ .value("Aspect_GradientFillMethod_Diagonal1",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal1) │ │ │ .value("Aspect_GradientFillMethod_Diagonal2",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Diagonal2) │ │ │ .value("Aspect_GradientFillMethod_Corner1",Aspect_GradientFillMethod::Aspect_GradientFillMethod_Corner1) │ │ │ @@ -190,113 +268,58 @@ │ │ │ .value("Aspect_GFM_VER",Aspect_GradientFillMethod::Aspect_GFM_VER) │ │ │ .value("Aspect_GFM_DIAG1",Aspect_GradientFillMethod::Aspect_GFM_DIAG1) │ │ │ .value("Aspect_GFM_DIAG2",Aspect_GradientFillMethod::Aspect_GFM_DIAG2) │ │ │ .value("Aspect_GFM_CORNER1",Aspect_GradientFillMethod::Aspect_GFM_CORNER1) │ │ │ .value("Aspect_GFM_CORNER2",Aspect_GradientFillMethod::Aspect_GFM_CORNER2) │ │ │ .value("Aspect_GFM_CORNER3",Aspect_GradientFillMethod::Aspect_GFM_CORNER3) │ │ │ .value("Aspect_GFM_CORNER4",Aspect_GradientFillMethod::Aspect_GFM_CORNER4).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfTriedronPosition",R"#(Definition of the Trihedron position in the views. It is defined as a bitmask to simplify handling vertical and horizontal alignment independently.)#") │ │ │ - .value("Aspect_TOTP_CENTER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_CENTER) │ │ │ - .value("Aspect_TOTP_TOP",Aspect_TypeOfTriedronPosition::Aspect_TOTP_TOP) │ │ │ - .value("Aspect_TOTP_BOTTOM",Aspect_TypeOfTriedronPosition::Aspect_TOTP_BOTTOM) │ │ │ - .value("Aspect_TOTP_LEFT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT) │ │ │ - .value("Aspect_TOTP_RIGHT",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT) │ │ │ - .value("Aspect_TOTP_LEFT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_LOWER) │ │ │ - .value("Aspect_TOTP_LEFT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_LEFT_UPPER) │ │ │ - .value("Aspect_TOTP_RIGHT_LOWER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_LOWER) │ │ │ - .value("Aspect_TOTP_RIGHT_UPPER",Aspect_TypeOfTriedronPosition::Aspect_TOTP_RIGHT_UPPER).export_values(); │ │ │ - py::enum_(m, "Aspect_InteriorStyle",R"#(Interior types for primitive faces.)#") │ │ │ - .value("Aspect_IS_EMPTY",Aspect_InteriorStyle::Aspect_IS_EMPTY) │ │ │ - .value("Aspect_IS_SOLID",Aspect_InteriorStyle::Aspect_IS_SOLID) │ │ │ - .value("Aspect_IS_HATCH",Aspect_InteriorStyle::Aspect_IS_HATCH) │ │ │ - .value("Aspect_IS_HIDDENLINE",Aspect_InteriorStyle::Aspect_IS_HIDDENLINE) │ │ │ - .value("Aspect_IS_POINT",Aspect_InteriorStyle::Aspect_IS_POINT) │ │ │ - .value("Aspect_IS_HOLLOW",Aspect_InteriorStyle::Aspect_IS_HOLLOW).export_values(); │ │ │ + py::enum_(m, "Aspect_GridDrawMode",R"#(Defines the grid draw mode. The grid may be drawn by using lines or points.)#") │ │ │ + .value("Aspect_GDM_Lines",Aspect_GridDrawMode::Aspect_GDM_Lines) │ │ │ + .value("Aspect_GDM_Points",Aspect_GridDrawMode::Aspect_GDM_Points) │ │ │ + .value("Aspect_GDM_None",Aspect_GridDrawMode::Aspect_GDM_None).export_values(); │ │ │ py::enum_(m, "Aspect_TypeOfHighlightMethod",R"#(Definition of a highlight method)#") │ │ │ .value("Aspect_TOHM_COLOR",Aspect_TypeOfHighlightMethod::Aspect_TOHM_COLOR) │ │ │ .value("Aspect_TOHM_BOUNDBOX",Aspect_TypeOfHighlightMethod::Aspect_TOHM_BOUNDBOX).export_values(); │ │ │ + py::enum_(m, "Aspect_Eye",R"#(Camera eye index within stereoscopic pair.)#") │ │ │ + .value("Aspect_Eye_Left",Aspect_Eye::Aspect_Eye_Left) │ │ │ + .value("Aspect_Eye_Right",Aspect_Eye::Aspect_Eye_Right).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfFacingModel",R"#()#") │ │ │ + .value("Aspect_TOFM_BOTH_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE) │ │ │ + .value("Aspect_TOFM_BACK_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE) │ │ │ + .value("Aspect_TOFM_FRONT_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfColorScaleData",R"#(Defines the using type of colors and labels)#") │ │ │ + .value("Aspect_TOCSD_AUTO",Aspect_TypeOfColorScaleData::Aspect_TOCSD_AUTO) │ │ │ + .value("Aspect_TOCSD_USER",Aspect_TypeOfColorScaleData::Aspect_TOCSD_USER).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfStyleText",R"#(Define the style of the text.)#") │ │ │ + .value("Aspect_TOST_NORMAL",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL) │ │ │ + .value("Aspect_TOST_ANNOTATION",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values(); │ │ │ + py::enum_(m, "Aspect_GridType",R"#(Defines the grid type : Rectangular or Circular.)#") │ │ │ + .value("Aspect_GT_Rectangular",Aspect_GridType::Aspect_GT_Rectangular) │ │ │ + .value("Aspect_GT_Circular",Aspect_GridType::Aspect_GT_Circular).export_values(); │ │ │ py::enum_(m, "Aspect_TypeOfLine",R"#(Definition of line types)#") │ │ │ .value("Aspect_TOL_EMPTY",Aspect_TypeOfLine::Aspect_TOL_EMPTY) │ │ │ .value("Aspect_TOL_SOLID",Aspect_TypeOfLine::Aspect_TOL_SOLID) │ │ │ .value("Aspect_TOL_DASH",Aspect_TypeOfLine::Aspect_TOL_DASH) │ │ │ .value("Aspect_TOL_DOT",Aspect_TypeOfLine::Aspect_TOL_DOT) │ │ │ .value("Aspect_TOL_DOTDASH",Aspect_TypeOfLine::Aspect_TOL_DOTDASH) │ │ │ .value("Aspect_TOL_USERDEFINED",Aspect_TypeOfLine::Aspect_TOL_USERDEFINED).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfColorScalePosition",R"#(Defines the type of position for color scale labels)#") │ │ │ - .value("Aspect_TOCSP_NONE",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_NONE) │ │ │ - .value("Aspect_TOCSP_LEFT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_LEFT) │ │ │ - .value("Aspect_TOCSP_RIGHT",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_RIGHT) │ │ │ - .value("Aspect_TOCSP_CENTER",Aspect_TypeOfColorScalePosition::Aspect_TOCSP_CENTER).export_values(); │ │ │ - m.attr("Aspect_VKeyFlags_NONE") = py::cast(int(Aspect_VKeyFlags_NONE)); │ │ │ - m.attr("Aspect_VKeyFlags_SHIFT") = py::cast(int(Aspect_VKeyFlags_SHIFT)); │ │ │ - m.attr("Aspect_VKeyFlags_CTRL") = py::cast(int(Aspect_VKeyFlags_CTRL)); │ │ │ - m.attr("Aspect_VKeyFlags_ALT") = py::cast(int(Aspect_VKeyFlags_ALT)); │ │ │ - m.attr("Aspect_VKeyFlags_MENU") = py::cast(int(Aspect_VKeyFlags_MENU)); │ │ │ - m.attr("Aspect_VKeyFlags_META") = py::cast(int(Aspect_VKeyFlags_META)); │ │ │ - m.attr("Aspect_VKeyFlags_ALL") = py::cast(int(Aspect_VKeyFlags_ALL)); │ │ │ - m.attr("Aspect_VKeyMouse_NONE") = py::cast(int(Aspect_VKeyMouse_NONE)); │ │ │ - m.attr("Aspect_VKeyMouse_LeftButton") = py::cast(int(Aspect_VKeyMouse_LeftButton)); │ │ │ - m.attr("Aspect_VKeyMouse_MiddleButton") = py::cast(int(Aspect_VKeyMouse_MiddleButton)); │ │ │ - m.attr("Aspect_VKeyMouse_RightButton") = py::cast(int(Aspect_VKeyMouse_RightButton)); │ │ │ - m.attr("Aspect_VKeyMouse_MainButtons") = py::cast(int(Aspect_VKeyMouse_MainButtons)); │ │ │ - py::enum_(m, "Aspect_PolygonOffsetMode",R"#()#") │ │ │ - .value("Aspect_POM_Off",Aspect_PolygonOffsetMode::Aspect_POM_Off) │ │ │ - .value("Aspect_POM_Fill",Aspect_PolygonOffsetMode::Aspect_POM_Fill) │ │ │ - .value("Aspect_POM_Line",Aspect_PolygonOffsetMode::Aspect_POM_Line) │ │ │ - .value("Aspect_POM_Point",Aspect_PolygonOffsetMode::Aspect_POM_Point) │ │ │ - .value("Aspect_POM_All",Aspect_PolygonOffsetMode::Aspect_POM_All) │ │ │ - .value("Aspect_POM_None",Aspect_PolygonOffsetMode::Aspect_POM_None) │ │ │ - .value("Aspect_POM_Mask",Aspect_PolygonOffsetMode::Aspect_POM_Mask).export_values(); │ │ │ + py::enum_(m, "Aspect_XAtom",R"#(Defines custom identifiers(atoms) for X window custom named properties)#") │ │ │ + .value("Aspect_XA_DELETE_WINDOW",Aspect_XAtom::Aspect_XA_DELETE_WINDOW).export_values(); │ │ │ py::enum_(m, "Aspect_XRTrackedDeviceRole",R"#(Predefined tracked devices.)#") │ │ │ .value("Aspect_XRTrackedDeviceRole_Head",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Head) │ │ │ .value("Aspect_XRTrackedDeviceRole_LeftHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_LeftHand) │ │ │ .value("Aspect_XRTrackedDeviceRole_RightHand",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_RightHand) │ │ │ .value("Aspect_XRTrackedDeviceRole_Other",Aspect_XRTrackedDeviceRole::Aspect_XRTrackedDeviceRole_Other).export_values(); │ │ │ m.attr("Aspect_XRTrackedDeviceRole_NB") = py::cast(int(Aspect_XRTrackedDeviceRole_NB)); │ │ │ - py::enum_(m, "Aspect_TypeOfColorScaleOrientation",R"#(Defines the type of color scale orientation)#") │ │ │ - .value("Aspect_TOCSO_NONE",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_NONE) │ │ │ - .value("Aspect_TOCSO_LEFT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_LEFT) │ │ │ - .value("Aspect_TOCSO_RIGHT",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_RIGHT) │ │ │ - .value("Aspect_TOCSO_CENTER",Aspect_TypeOfColorScaleOrientation::Aspect_TOCSO_CENTER).export_values(); │ │ │ - py::enum_(m, "Aspect_XRActionType",R"#(XR action type.)#") │ │ │ - .value("Aspect_XRActionType_InputDigital",Aspect_XRActionType::Aspect_XRActionType_InputDigital) │ │ │ - .value("Aspect_XRActionType_InputAnalog",Aspect_XRActionType::Aspect_XRActionType_InputAnalog) │ │ │ - .value("Aspect_XRActionType_InputPose",Aspect_XRActionType::Aspect_XRActionType_InputPose) │ │ │ - .value("Aspect_XRActionType_InputSkeletal",Aspect_XRActionType::Aspect_XRActionType_InputSkeletal) │ │ │ - .value("Aspect_XRActionType_OutputHaptic",Aspect_XRActionType::Aspect_XRActionType_OutputHaptic).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfStyleText",R"#(Define the style of the text.)#") │ │ │ - .value("Aspect_TOST_NORMAL",Aspect_TypeOfStyleText::Aspect_TOST_NORMAL) │ │ │ - .value("Aspect_TOST_ANNOTATION",Aspect_TypeOfStyleText::Aspect_TOST_ANNOTATION).export_values(); │ │ │ - py::enum_(m, "Aspect_GridDrawMode",R"#(Defines the grid draw mode. The grid may be drawn by using lines or points.)#") │ │ │ - .value("Aspect_GDM_Lines",Aspect_GridDrawMode::Aspect_GDM_Lines) │ │ │ - .value("Aspect_GDM_Points",Aspect_GridDrawMode::Aspect_GDM_Points) │ │ │ - .value("Aspect_GDM_None",Aspect_GridDrawMode::Aspect_GDM_None).export_values(); │ │ │ - py::enum_(m, "Aspect_FillMethod",R"#(Defines the fill methods to write bitmaps in a window.)#") │ │ │ - .value("Aspect_FM_NONE",Aspect_FillMethod::Aspect_FM_NONE) │ │ │ - .value("Aspect_FM_CENTERED",Aspect_FillMethod::Aspect_FM_CENTERED) │ │ │ - .value("Aspect_FM_TILED",Aspect_FillMethod::Aspect_FM_TILED) │ │ │ - .value("Aspect_FM_STRETCH",Aspect_FillMethod::Aspect_FM_STRETCH).export_values(); │ │ │ - py::enum_(m, "Aspect_ColorSpace",R"#(Texture color spaces accepted by XR composer.)#") │ │ │ - .value("Aspect_ColorSpace_sRGB",Aspect_ColorSpace::Aspect_ColorSpace_sRGB) │ │ │ - .value("Aspect_ColorSpace_Linear",Aspect_ColorSpace::Aspect_ColorSpace_Linear).export_values(); │ │ │ - py::enum_(m, "Aspect_GridType",R"#(Defines the grid type : Rectangular or Circular.)#") │ │ │ - .value("Aspect_GT_Rectangular",Aspect_GridType::Aspect_GT_Rectangular) │ │ │ - .value("Aspect_GT_Circular",Aspect_GridType::Aspect_GT_Circular).export_values(); │ │ │ - py::enum_(m, "Aspect_TypeOfDisplayText",R"#(Define the display type of the text.)#") │ │ │ - .value("Aspect_TODT_NORMAL",Aspect_TypeOfDisplayText::Aspect_TODT_NORMAL) │ │ │ - .value("Aspect_TODT_SUBTITLE",Aspect_TypeOfDisplayText::Aspect_TODT_SUBTITLE) │ │ │ - .value("Aspect_TODT_DEKALE",Aspect_TypeOfDisplayText::Aspect_TODT_DEKALE) │ │ │ - .value("Aspect_TODT_BLEND",Aspect_TypeOfDisplayText::Aspect_TODT_BLEND) │ │ │ - .value("Aspect_TODT_DIMENSION",Aspect_TypeOfDisplayText::Aspect_TODT_DIMENSION) │ │ │ - .value("Aspect_TODT_SHADOW",Aspect_TypeOfDisplayText::Aspect_TODT_SHADOW).export_values(); │ │ │ - py::enum_(m, "Aspect_Eye",R"#(Camera eye index within stereoscopic pair.)#") │ │ │ - .value("Aspect_Eye_Left",Aspect_Eye::Aspect_Eye_Left) │ │ │ - .value("Aspect_Eye_Right",Aspect_Eye::Aspect_Eye_Right).export_values(); │ │ │ - py::enum_(m, "Aspect_XAtom",R"#(Defines custom identifiers(atoms) for X window custom named properties)#") │ │ │ - .value("Aspect_XA_DELETE_WINDOW",Aspect_XAtom::Aspect_XA_DELETE_WINDOW).export_values(); │ │ │ + py::enum_(m, "Aspect_GraphicsLibrary",R"#(Graphics API enumeration.)#") │ │ │ + .value("Aspect_GraphicsLibrary_OpenGL",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGL) │ │ │ + .value("Aspect_GraphicsLibrary_OpenGLES",Aspect_GraphicsLibrary::Aspect_GraphicsLibrary_OpenGLES).export_values(); │ │ │ + py::enum_(m, "Aspect_TypeOfDeflection",R"#(Defines if the maximal chordial deflection used when drawing an object is absolute or relative to the size of the object.)#") │ │ │ + .value("Aspect_TOD_RELATIVE",Aspect_TypeOfDeflection::Aspect_TOD_RELATIVE) │ │ │ + .value("Aspect_TOD_ABSOLUTE",Aspect_TypeOfDeflection::Aspect_TOD_ABSOLUTE).export_values(); │ │ │ py::enum_(m, "Aspect_VKeyBasic",R"#(Enumeration defining virtual keys irrelevant to current keyboard layout for simplified hot-keys management logic.)#") │ │ │ .value("Aspect_VKey_UNKNOWN",Aspect_VKeyBasic::Aspect_VKey_UNKNOWN) │ │ │ .value("Aspect_VKey_A",Aspect_VKeyBasic::Aspect_VKey_A) │ │ │ .value("Aspect_VKey_B",Aspect_VKeyBasic::Aspect_VKey_B) │ │ │ .value("Aspect_VKey_C",Aspect_VKeyBasic::Aspect_VKey_C) │ │ │ .value("Aspect_VKey_D",Aspect_VKeyBasic::Aspect_VKey_D) │ │ │ .value("Aspect_VKey_E",Aspect_VKeyBasic::Aspect_VKey_E) │ │ │ @@ -441,37 +464,14 @@ │ │ │ m.attr("Aspect_VKey_ModifiersLower") = py::cast(int(Aspect_VKey_ModifiersLower)); │ │ │ m.attr("Aspect_VKey_ModifiersUpper") = py::cast(int(Aspect_VKey_ModifiersUpper)); │ │ │ m.attr("Aspect_VKey_NavigationKeysLower") = py::cast(int(Aspect_VKey_NavigationKeysLower)); │ │ │ m.attr("Aspect_VKey_NavigationKeysUpper") = py::cast(int(Aspect_VKey_NavigationKeysUpper)); │ │ │ m.attr("Aspect_VKey_Upper") = py::cast(int(Aspect_VKey_Upper)); │ │ │ m.attr("Aspect_VKey_NB") = py::cast(int(Aspect_VKey_NB)); │ │ │ m.attr("Aspect_VKey_MAX") = py::cast(int(Aspect_VKey_MAX)); │ │ │ - py::enum_(m, "Aspect_TypeOfFacingModel",R"#()#") │ │ │ - .value("Aspect_TOFM_BOTH_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BOTH_SIDE) │ │ │ - .value("Aspect_TOFM_BACK_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_BACK_SIDE) │ │ │ - .value("Aspect_TOFM_FRONT_SIDE",Aspect_TypeOfFacingModel::Aspect_TOFM_FRONT_SIDE).export_values(); │ │ │ - py::enum_(m, "Aspect_XRGenericAction",R"#(Generic XR action.)#") │ │ │ - .value("Aspect_XRGenericAction_IsHeadsetOn",Aspect_XRGenericAction::Aspect_XRGenericAction_IsHeadsetOn) │ │ │ - .value("Aspect_XRGenericAction_InputAppMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputAppMenu) │ │ │ - .value("Aspect_XRGenericAction_InputSysMenu",Aspect_XRGenericAction::Aspect_XRGenericAction_InputSysMenu) │ │ │ - .value("Aspect_XRGenericAction_InputTriggerPull",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerPull) │ │ │ - .value("Aspect_XRGenericAction_InputTriggerClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTriggerClick) │ │ │ - .value("Aspect_XRGenericAction_InputGripClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputGripClick) │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadPosition) │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadTouch) │ │ │ - .value("Aspect_XRGenericAction_InputTrackPadClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputTrackPadClick) │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickPosition",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickPosition) │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickTouch",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickTouch) │ │ │ - .value("Aspect_XRGenericAction_InputThumbstickClick",Aspect_XRGenericAction::Aspect_XRGenericAction_InputThumbstickClick) │ │ │ - .value("Aspect_XRGenericAction_InputPoseBase",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseBase) │ │ │ - .value("Aspect_XRGenericAction_InputPoseFront",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFront) │ │ │ - .value("Aspect_XRGenericAction_InputPoseHandGrip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseHandGrip) │ │ │ - .value("Aspect_XRGenericAction_InputPoseFingerTip",Aspect_XRGenericAction::Aspect_XRGenericAction_InputPoseFingerTip) │ │ │ - .value("Aspect_XRGenericAction_OutputHaptic",Aspect_XRGenericAction::Aspect_XRGenericAction_OutputHaptic).export_values(); │ │ │ - m.attr("Aspect_XRGenericAction_NB") = py::cast(int(Aspect_XRGenericAction_NB)); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Aspect_Grid : public Aspect_Grid{ │ │ │ public: │ │ │ using Aspect_Grid::Aspect_Grid; │ │ ├── ./usr/share/libocp/OCP/BOPAlgo_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -89,38 +89,38 @@ │ │ │ py::module m = main_module.def_submodule("BOPAlgo", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "BOPAlgo_Operation",R"#()#") │ │ │ - .value("BOPAlgo_COMMON",BOPAlgo_Operation::BOPAlgo_COMMON) │ │ │ - .value("BOPAlgo_FUSE",BOPAlgo_Operation::BOPAlgo_FUSE) │ │ │ - .value("BOPAlgo_CUT",BOPAlgo_Operation::BOPAlgo_CUT) │ │ │ - .value("BOPAlgo_CUT21",BOPAlgo_Operation::BOPAlgo_CUT21) │ │ │ - .value("BOPAlgo_SECTION",BOPAlgo_Operation::BOPAlgo_SECTION) │ │ │ - .value("BOPAlgo_UNKNOWN",BOPAlgo_Operation::BOPAlgo_UNKNOWN).export_values(); │ │ │ - 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.)#") │ │ │ - .value("BOPAlgo_GlueOff",BOPAlgo_GlueEnum::BOPAlgo_GlueOff) │ │ │ - .value("BOPAlgo_GlueShift",BOPAlgo_GlueEnum::BOPAlgo_GlueShift) │ │ │ - .value("BOPAlgo_GlueFull",BOPAlgo_GlueEnum::BOPAlgo_GlueFull).export_values(); │ │ │ py::enum_(m, "BOPAlgo_CheckStatus",R"#()#") │ │ │ .value("BOPAlgo_CheckUnknown",BOPAlgo_CheckStatus::BOPAlgo_CheckUnknown) │ │ │ .value("BOPAlgo_BadType",BOPAlgo_CheckStatus::BOPAlgo_BadType) │ │ │ .value("BOPAlgo_SelfIntersect",BOPAlgo_CheckStatus::BOPAlgo_SelfIntersect) │ │ │ .value("BOPAlgo_TooSmallEdge",BOPAlgo_CheckStatus::BOPAlgo_TooSmallEdge) │ │ │ .value("BOPAlgo_NonRecoverableFace",BOPAlgo_CheckStatus::BOPAlgo_NonRecoverableFace) │ │ │ .value("BOPAlgo_IncompatibilityOfVertex",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfVertex) │ │ │ .value("BOPAlgo_IncompatibilityOfEdge",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfEdge) │ │ │ .value("BOPAlgo_IncompatibilityOfFace",BOPAlgo_CheckStatus::BOPAlgo_IncompatibilityOfFace) │ │ │ .value("BOPAlgo_OperationAborted",BOPAlgo_CheckStatus::BOPAlgo_OperationAborted) │ │ │ .value("BOPAlgo_GeomAbs_C0",BOPAlgo_CheckStatus::BOPAlgo_GeomAbs_C0) │ │ │ .value("BOPAlgo_InvalidCurveOnSurface",BOPAlgo_CheckStatus::BOPAlgo_InvalidCurveOnSurface) │ │ │ .value("BOPAlgo_NotValid",BOPAlgo_CheckStatus::BOPAlgo_NotValid).export_values(); │ │ │ + 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.)#") │ │ │ + .value("BOPAlgo_GlueOff",BOPAlgo_GlueEnum::BOPAlgo_GlueOff) │ │ │ + .value("BOPAlgo_GlueShift",BOPAlgo_GlueEnum::BOPAlgo_GlueShift) │ │ │ + .value("BOPAlgo_GlueFull",BOPAlgo_GlueEnum::BOPAlgo_GlueFull).export_values(); │ │ │ + py::enum_(m, "BOPAlgo_Operation",R"#()#") │ │ │ + .value("BOPAlgo_COMMON",BOPAlgo_Operation::BOPAlgo_COMMON) │ │ │ + .value("BOPAlgo_FUSE",BOPAlgo_Operation::BOPAlgo_FUSE) │ │ │ + .value("BOPAlgo_CUT",BOPAlgo_Operation::BOPAlgo_CUT) │ │ │ + .value("BOPAlgo_CUT21",BOPAlgo_Operation::BOPAlgo_CUT21) │ │ │ + .value("BOPAlgo_SECTION",BOPAlgo_Operation::BOPAlgo_SECTION) │ │ │ + .value("BOPAlgo_UNKNOWN",BOPAlgo_Operation::BOPAlgo_UNKNOWN).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_BOPAlgo_Algo : public BOPAlgo_Algo{ │ │ │ public: │ │ │ using BOPAlgo_Algo::BOPAlgo_Algo; │ │ ├── ./usr/share/libocp/OCP/BOPTools_tmpl.hxx │ │ │┄ Ordering differences only │ │ │ @@ -54,26 +54,14 @@ │ │ │ #include │ │ │ │ │ │ // user-defined pre │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ -template │ │ │ -void preregister_template_BOPTools_BoxSet(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Redefines BoxSet to use the Linear builder by default)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BOPTools_BoxSet(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_BOPTools_BoxSelector(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Template Selector for elements selection from BVH tree.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_BOPTools_BoxSelector(py::object &m, const char *name){ │ │ │ @@ -99,10 +87,22 @@ │ │ │ R"#(Checks if the metric of the node may be accepted)#" ,py::arg("theIsInside")) │ │ │ .def("Accept", │ │ │ (Standard_Boolean (BOPTools_BoxSelector::*)( const Standard_Integer , const Standard_Boolean & ) ) &BOPTools_BoxSelector::Accept, │ │ │ R"#(Accepts the element with the index in BVH tree)#" ,py::arg("theIndex"), py::arg("theIsInside")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ +template │ │ │ +void preregister_template_BOPTools_BoxSet(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Redefines BoxSet to use the Linear builder by default)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BOPTools_BoxSet(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ │ │ │ // user-defined post │ │ ├── ./usr/share/libocp/OCP/BRepBuilderAPI_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -106,53 +106,53 @@ │ │ │ py::module m = main_module.def_submodule("BRepBuilderAPI", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "BRepBuilderAPI_TransitionMode",R"#(Option to manage discontinuities in Sweep)#") │ │ │ - .value("BRepBuilderAPI_Transformed",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed) │ │ │ - .value("BRepBuilderAPI_RightCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner) │ │ │ - .value("BRepBuilderAPI_RoundCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values(); │ │ │ py::enum_(m, "BRepBuilderAPI_PipeError",R"#(Errors that can occur at (shell)pipe construction.)#") │ │ │ .value("BRepBuilderAPI_PipeDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeDone) │ │ │ .value("BRepBuilderAPI_PipeNotDone",BRepBuilderAPI_PipeError::BRepBuilderAPI_PipeNotDone) │ │ │ .value("BRepBuilderAPI_PlaneNotIntersectGuide",BRepBuilderAPI_PipeError::BRepBuilderAPI_PlaneNotIntersectGuide) │ │ │ .value("BRepBuilderAPI_ImpossibleContact",BRepBuilderAPI_PipeError::BRepBuilderAPI_ImpossibleContact).export_values(); │ │ │ py::enum_(m, "BRepBuilderAPI_ShellError",R"#(Indicates the outcome of the construction of a face, i.e. whether it is successful or not, as explained below: - BRepBuilderAPI_ShellDone No error occurred. The shell is correctly built. - BRepBuilderAPI_EmptyShell No initialization of the algorithm: only an empty constructor was used. - BRepBuilderAPI_DisconnectedShell not yet used - BRepBuilderAPI_ShellParametersOutOfRange The parameters given to limit the surface are out of its bounds.)#") │ │ │ .value("BRepBuilderAPI_ShellDone",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellDone) │ │ │ .value("BRepBuilderAPI_EmptyShell",BRepBuilderAPI_ShellError::BRepBuilderAPI_EmptyShell) │ │ │ .value("BRepBuilderAPI_DisconnectedShell",BRepBuilderAPI_ShellError::BRepBuilderAPI_DisconnectedShell) │ │ │ .value("BRepBuilderAPI_ShellParametersOutOfRange",BRepBuilderAPI_ShellError::BRepBuilderAPI_ShellParametersOutOfRange).export_values(); │ │ │ - py::enum_(m, "BRepBuilderAPI_FaceError",R"#(Indicates the outcome of the construction of a face, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_FaceDone No error occurred. The face is correctly built. - BRepBuilderAPI_NoFace No initialization of the algorithm; only an empty constructor was used. - BRepBuilderAPI_NotPlanar No surface was given and the wire was not planar. - BRepBuilderAPI_CurveProjectionFailed Not used so far. - BRepBuilderAPI_ParametersOutOfRange The parameters given to limit the surface are out of its bounds.)#") │ │ │ - .value("BRepBuilderAPI_FaceDone",BRepBuilderAPI_FaceError::BRepBuilderAPI_FaceDone) │ │ │ - .value("BRepBuilderAPI_NoFace",BRepBuilderAPI_FaceError::BRepBuilderAPI_NoFace) │ │ │ - .value("BRepBuilderAPI_NotPlanar",BRepBuilderAPI_FaceError::BRepBuilderAPI_NotPlanar) │ │ │ - .value("BRepBuilderAPI_CurveProjectionFailed",BRepBuilderAPI_FaceError::BRepBuilderAPI_CurveProjectionFailed) │ │ │ - .value("BRepBuilderAPI_ParametersOutOfRange",BRepBuilderAPI_FaceError::BRepBuilderAPI_ParametersOutOfRange).export_values(); │ │ │ py::enum_(m, "BRepBuilderAPI_ShapeModification",R"#(Lists the possible types of modification to a shape following a topological operation: Preserved, Deleted, Trimmed, Merged or BoundaryModified. This enumeration enables you to assign a "state" to the different shapes that are on the list of operands for each API function. The MakeShape class then uses this to determine what has happened to the shapes which constitute the list of operands.)#") │ │ │ .value("BRepBuilderAPI_Preserved",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Preserved) │ │ │ .value("BRepBuilderAPI_Deleted",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Deleted) │ │ │ .value("BRepBuilderAPI_Trimmed",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Trimmed) │ │ │ .value("BRepBuilderAPI_Merged",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_Merged) │ │ │ .value("BRepBuilderAPI_BoundaryModified",BRepBuilderAPI_ShapeModification::BRepBuilderAPI_BoundaryModified).export_values(); │ │ │ + py::enum_(m, "BRepBuilderAPI_FaceError",R"#(Indicates the outcome of the construction of a face, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_FaceDone No error occurred. The face is correctly built. - BRepBuilderAPI_NoFace No initialization of the algorithm; only an empty constructor was used. - BRepBuilderAPI_NotPlanar No surface was given and the wire was not planar. - BRepBuilderAPI_CurveProjectionFailed Not used so far. - BRepBuilderAPI_ParametersOutOfRange The parameters given to limit the surface are out of its bounds.)#") │ │ │ + .value("BRepBuilderAPI_FaceDone",BRepBuilderAPI_FaceError::BRepBuilderAPI_FaceDone) │ │ │ + .value("BRepBuilderAPI_NoFace",BRepBuilderAPI_FaceError::BRepBuilderAPI_NoFace) │ │ │ + .value("BRepBuilderAPI_NotPlanar",BRepBuilderAPI_FaceError::BRepBuilderAPI_NotPlanar) │ │ │ + .value("BRepBuilderAPI_CurveProjectionFailed",BRepBuilderAPI_FaceError::BRepBuilderAPI_CurveProjectionFailed) │ │ │ + .value("BRepBuilderAPI_ParametersOutOfRange",BRepBuilderAPI_FaceError::BRepBuilderAPI_ParametersOutOfRange).export_values(); │ │ │ py::enum_(m, "BRepBuilderAPI_WireError",R"#(Indicates the outcome of wire construction, i.e. whether it is successful or not, as explained below: - BRepBuilderAPI_WireDone No error occurred. The wire is correctly built. - BRepBuilderAPI_EmptyWire No initialization of the algorithm. Only an empty constructor was used. - BRepBuilderAPI_DisconnectedWire The last edge which you attempted to add was not connected to the wire. - BRepBuilderAPI_NonManifoldWire The wire with some singularity.)#") │ │ │ .value("BRepBuilderAPI_WireDone",BRepBuilderAPI_WireError::BRepBuilderAPI_WireDone) │ │ │ .value("BRepBuilderAPI_EmptyWire",BRepBuilderAPI_WireError::BRepBuilderAPI_EmptyWire) │ │ │ .value("BRepBuilderAPI_DisconnectedWire",BRepBuilderAPI_WireError::BRepBuilderAPI_DisconnectedWire) │ │ │ .value("BRepBuilderAPI_NonManifoldWire",BRepBuilderAPI_WireError::BRepBuilderAPI_NonManifoldWire).export_values(); │ │ │ py::enum_(m, "BRepBuilderAPI_EdgeError",R"#(Indicates the outcome of the construction of an edge, i.e. whether it has been successful or not, as explained below: - BRepBuilderAPI_EdgeDone No error occurred; The edge is correctly built. - BRepBuilderAPI_PointProjectionFailed No parameters were given but the projection of the 3D points on the curve failed. This happens when the point distance to the curve is greater than the precision value. - BRepBuilderAPI_ParameterOutOfRange The given parameters are not in the parametric range C->FirstParameter(), C->LastParameter() - BRepBuilderAPI_DifferentPointsOnClosedCurve The two vertices or points are the extremities of a closed curve but have different locations. - BRepBuilderAPI_PointWithInfiniteParameter A finite coordinate point was associated with an infinite parameter (see the Precision package for a definition of infinite values). - BRepBuilderAPI_DifferentsPointAndParameter The distance between the 3D point and the point evaluated on the curve with the parameter is greater than the precision. - BRepBuilderAPI_LineThroughIdenticPoints Two identical points were given to define a line (construction of an edge without curve); gp::Resolution is used for the confusion test.)#") │ │ │ .value("BRepBuilderAPI_EdgeDone",BRepBuilderAPI_EdgeError::BRepBuilderAPI_EdgeDone) │ │ │ .value("BRepBuilderAPI_PointProjectionFailed",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointProjectionFailed) │ │ │ .value("BRepBuilderAPI_ParameterOutOfRange",BRepBuilderAPI_EdgeError::BRepBuilderAPI_ParameterOutOfRange) │ │ │ .value("BRepBuilderAPI_DifferentPointsOnClosedCurve",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentPointsOnClosedCurve) │ │ │ .value("BRepBuilderAPI_PointWithInfiniteParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_PointWithInfiniteParameter) │ │ │ .value("BRepBuilderAPI_DifferentsPointAndParameter",BRepBuilderAPI_EdgeError::BRepBuilderAPI_DifferentsPointAndParameter) │ │ │ .value("BRepBuilderAPI_LineThroughIdenticPoints",BRepBuilderAPI_EdgeError::BRepBuilderAPI_LineThroughIdenticPoints).export_values(); │ │ │ + py::enum_(m, "BRepBuilderAPI_TransitionMode",R"#(Option to manage discontinuities in Sweep)#") │ │ │ + .value("BRepBuilderAPI_Transformed",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_Transformed) │ │ │ + .value("BRepBuilderAPI_RightCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RightCorner) │ │ │ + .value("BRepBuilderAPI_RoundCorner",BRepBuilderAPI_TransitionMode::BRepBuilderAPI_RoundCorner).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"BRepBuilderAPI",R"#(The BRepBuilderAPI package provides an Application Programming Interface for the BRep topology data structure.)#"); │ │ │ py::class_ >(m,"BRepBuilderAPI_Collect",R"#()#"); │ │ │ py::class_ >(m,"BRepBuilderAPI_Command",R"#(Root class for all commands in BRepBuilderAPI.)#"); │ │ ├── ./usr/share/libocp/OCP/BRepFeat_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -80,20 +80,14 @@ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ py::enum_(m, "BRepFeat_Status",R"#()#") │ │ │ .value("BRepFeat_NoError",BRepFeat_Status::BRepFeat_NoError) │ │ │ .value("BRepFeat_InvalidPlacement",BRepFeat_Status::BRepFeat_InvalidPlacement) │ │ │ .value("BRepFeat_HoleTooLong",BRepFeat_Status::BRepFeat_HoleTooLong).export_values(); │ │ │ - py::enum_(m, "BRepFeat_PerfSelection",R"#(To declare the type of selection semantics for local operation Perform methods - NoSelection - SelectionFU - selection of a face up to which a local operation will be performed - SelectionU - selection of a point up to which a local operation will be performed - SelectionSh - selection of a shape on which a local operation will be performed - SelectionShU - selection of a shape up to which a local operation will be performed.)#") │ │ │ - .value("BRepFeat_NoSelection",BRepFeat_PerfSelection::BRepFeat_NoSelection) │ │ │ - .value("BRepFeat_SelectionFU",BRepFeat_PerfSelection::BRepFeat_SelectionFU) │ │ │ - .value("BRepFeat_SelectionU",BRepFeat_PerfSelection::BRepFeat_SelectionU) │ │ │ - .value("BRepFeat_SelectionSh",BRepFeat_PerfSelection::BRepFeat_SelectionSh) │ │ │ - .value("BRepFeat_SelectionShU",BRepFeat_PerfSelection::BRepFeat_SelectionShU).export_values(); │ │ │ py::enum_(m, "BRepFeat_StatusError",R"#(Describes the error.)#") │ │ │ .value("BRepFeat_OK",BRepFeat_StatusError::BRepFeat_OK) │ │ │ .value("BRepFeat_BadDirect",BRepFeat_StatusError::BRepFeat_BadDirect) │ │ │ .value("BRepFeat_BadIntersect",BRepFeat_StatusError::BRepFeat_BadIntersect) │ │ │ .value("BRepFeat_EmptyBaryCurve",BRepFeat_StatusError::BRepFeat_EmptyBaryCurve) │ │ │ .value("BRepFeat_EmptyCutResult",BRepFeat_StatusError::BRepFeat_EmptyCutResult) │ │ │ .value("BRepFeat_FalseSide",BRepFeat_StatusError::BRepFeat_FalseSide) │ │ │ @@ -115,14 +109,20 @@ │ │ │ .value("BRepFeat_NoParts",BRepFeat_StatusError::BRepFeat_NoParts) │ │ │ .value("BRepFeat_NoProjPt",BRepFeat_StatusError::BRepFeat_NoProjPt) │ │ │ .value("BRepFeat_NotInitialized",BRepFeat_StatusError::BRepFeat_NotInitialized) │ │ │ .value("BRepFeat_NotYetImplemented",BRepFeat_StatusError::BRepFeat_NotYetImplemented) │ │ │ .value("BRepFeat_NullRealTool",BRepFeat_StatusError::BRepFeat_NullRealTool) │ │ │ .value("BRepFeat_NullToolF",BRepFeat_StatusError::BRepFeat_NullToolF) │ │ │ .value("BRepFeat_NullToolU",BRepFeat_StatusError::BRepFeat_NullToolU).export_values(); │ │ │ + py::enum_(m, "BRepFeat_PerfSelection",R"#(To declare the type of selection semantics for local operation Perform methods - NoSelection - SelectionFU - selection of a face up to which a local operation will be performed - SelectionU - selection of a point up to which a local operation will be performed - SelectionSh - selection of a shape on which a local operation will be performed - SelectionShU - selection of a shape up to which a local operation will be performed.)#") │ │ │ + .value("BRepFeat_NoSelection",BRepFeat_PerfSelection::BRepFeat_NoSelection) │ │ │ + .value("BRepFeat_SelectionFU",BRepFeat_PerfSelection::BRepFeat_SelectionFU) │ │ │ + .value("BRepFeat_SelectionU",BRepFeat_PerfSelection::BRepFeat_SelectionU) │ │ │ + .value("BRepFeat_SelectionSh",BRepFeat_PerfSelection::BRepFeat_SelectionSh) │ │ │ + .value("BRepFeat_SelectionShU",BRepFeat_PerfSelection::BRepFeat_SelectionShU).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_BRepFeat_Form : public BRepFeat_Form{ │ │ │ public: │ │ │ using BRepFeat_Form::BRepFeat_Form; │ │ ├── ./usr/share/libocp/OCP/BRepFill_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -160,30 +160,30 @@ │ │ │ py::module m = main_module.def_submodule("BRepFill", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "BRepFill_TransitionStyle",R"#()#") │ │ │ - .value("BRepFill_Modified",BRepFill_TransitionStyle::BRepFill_Modified) │ │ │ - .value("BRepFill_Right",BRepFill_TransitionStyle::BRepFill_Right) │ │ │ - .value("BRepFill_Round",BRepFill_TransitionStyle::BRepFill_Round).export_values(); │ │ │ py::enum_(m, "BRepFill_TypeOfContact",R"#(A pair of bound shapes with the result.)#") │ │ │ .value("BRepFill_NoContact",BRepFill_TypeOfContact::BRepFill_NoContact) │ │ │ .value("BRepFill_Contact",BRepFill_TypeOfContact::BRepFill_Contact) │ │ │ .value("BRepFill_ContactOnBorder",BRepFill_TypeOfContact::BRepFill_ContactOnBorder).export_values(); │ │ │ py::enum_(m, "BRepFill_ThruSectionErrorStatus",R"#(Errors that can occur at thrusection algorithm.)#") │ │ │ .value("BRepFill_ThruSectionErrorStatus_Done",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Done) │ │ │ .value("BRepFill_ThruSectionErrorStatus_NotDone",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotDone) │ │ │ .value("BRepFill_ThruSectionErrorStatus_NotSameTopology",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_NotSameTopology) │ │ │ .value("BRepFill_ThruSectionErrorStatus_ProfilesInconsistent",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_ProfilesInconsistent) │ │ │ .value("BRepFill_ThruSectionErrorStatus_WrongUsage",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_WrongUsage) │ │ │ .value("BRepFill_ThruSectionErrorStatus_Null3DCurve",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Null3DCurve) │ │ │ .value("BRepFill_ThruSectionErrorStatus_Failed",BRepFill_ThruSectionErrorStatus::BRepFill_ThruSectionErrorStatus_Failed).export_values(); │ │ │ + py::enum_(m, "BRepFill_TransitionStyle",R"#()#") │ │ │ + .value("BRepFill_Modified",BRepFill_TransitionStyle::BRepFill_Modified) │ │ │ + .value("BRepFill_Right",BRepFill_TransitionStyle::BRepFill_Right) │ │ │ + .value("BRepFill_Round",BRepFill_TransitionStyle::BRepFill_Round).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_BRepFill_SectionLaw : public BRepFill_SectionLaw{ │ │ │ public: │ │ │ using BRepFill_SectionLaw::BRepFill_SectionLaw; │ │ ├── ./usr/share/libocp/OCP/BRepLib_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -100,44 +100,44 @@ │ │ │ py::module m = main_module.def_submodule("BRepLib", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "BRepLib_WireError",R"#(Errors that can occur at wire construction. no error)#") │ │ │ - .value("BRepLib_WireDone",BRepLib_WireError::BRepLib_WireDone) │ │ │ - .value("BRepLib_EmptyWire",BRepLib_WireError::BRepLib_EmptyWire) │ │ │ - .value("BRepLib_DisconnectedWire",BRepLib_WireError::BRepLib_DisconnectedWire) │ │ │ - .value("BRepLib_NonManifoldWire",BRepLib_WireError::BRepLib_NonManifoldWire).export_values(); │ │ │ - py::enum_(m, "BRepLib_ShellError",R"#(Errors that can occur at shell construction.)#") │ │ │ - .value("BRepLib_ShellDone",BRepLib_ShellError::BRepLib_ShellDone) │ │ │ - .value("BRepLib_EmptyShell",BRepLib_ShellError::BRepLib_EmptyShell) │ │ │ - .value("BRepLib_DisconnectedShell",BRepLib_ShellError::BRepLib_DisconnectedShell) │ │ │ - .value("BRepLib_ShellParametersOutOfRange",BRepLib_ShellError::BRepLib_ShellParametersOutOfRange).export_values(); │ │ │ + py::enum_(m, "BRepLib_FaceError",R"#(Errors that can occur at face construction. no error not initialised)#") │ │ │ + .value("BRepLib_FaceDone",BRepLib_FaceError::BRepLib_FaceDone) │ │ │ + .value("BRepLib_NoFace",BRepLib_FaceError::BRepLib_NoFace) │ │ │ + .value("BRepLib_NotPlanar",BRepLib_FaceError::BRepLib_NotPlanar) │ │ │ + .value("BRepLib_CurveProjectionFailed",BRepLib_FaceError::BRepLib_CurveProjectionFailed) │ │ │ + .value("BRepLib_ParametersOutOfRange",BRepLib_FaceError::BRepLib_ParametersOutOfRange).export_values(); │ │ │ py::enum_(m, "BRepLib_ShapeModification",R"#(Modification type after a topologic operation.)#") │ │ │ .value("BRepLib_Preserved",BRepLib_ShapeModification::BRepLib_Preserved) │ │ │ .value("BRepLib_Deleted",BRepLib_ShapeModification::BRepLib_Deleted) │ │ │ .value("BRepLib_Trimmed",BRepLib_ShapeModification::BRepLib_Trimmed) │ │ │ .value("BRepLib_Merged",BRepLib_ShapeModification::BRepLib_Merged) │ │ │ .value("BRepLib_BoundaryModified",BRepLib_ShapeModification::BRepLib_BoundaryModified).export_values(); │ │ │ + py::enum_(m, "BRepLib_WireError",R"#(Errors that can occur at wire construction. no error)#") │ │ │ + .value("BRepLib_WireDone",BRepLib_WireError::BRepLib_WireDone) │ │ │ + .value("BRepLib_EmptyWire",BRepLib_WireError::BRepLib_EmptyWire) │ │ │ + .value("BRepLib_DisconnectedWire",BRepLib_WireError::BRepLib_DisconnectedWire) │ │ │ + .value("BRepLib_NonManifoldWire",BRepLib_WireError::BRepLib_NonManifoldWire).export_values(); │ │ │ py::enum_(m, "BRepLib_EdgeError",R"#(Errors that can occur at edge construction. no error)#") │ │ │ .value("BRepLib_EdgeDone",BRepLib_EdgeError::BRepLib_EdgeDone) │ │ │ .value("BRepLib_PointProjectionFailed",BRepLib_EdgeError::BRepLib_PointProjectionFailed) │ │ │ .value("BRepLib_ParameterOutOfRange",BRepLib_EdgeError::BRepLib_ParameterOutOfRange) │ │ │ .value("BRepLib_DifferentPointsOnClosedCurve",BRepLib_EdgeError::BRepLib_DifferentPointsOnClosedCurve) │ │ │ .value("BRepLib_PointWithInfiniteParameter",BRepLib_EdgeError::BRepLib_PointWithInfiniteParameter) │ │ │ .value("BRepLib_DifferentsPointAndParameter",BRepLib_EdgeError::BRepLib_DifferentsPointAndParameter) │ │ │ .value("BRepLib_LineThroughIdenticPoints",BRepLib_EdgeError::BRepLib_LineThroughIdenticPoints).export_values(); │ │ │ - py::enum_(m, "BRepLib_FaceError",R"#(Errors that can occur at face construction. no error not initialised)#") │ │ │ - .value("BRepLib_FaceDone",BRepLib_FaceError::BRepLib_FaceDone) │ │ │ - .value("BRepLib_NoFace",BRepLib_FaceError::BRepLib_NoFace) │ │ │ - .value("BRepLib_NotPlanar",BRepLib_FaceError::BRepLib_NotPlanar) │ │ │ - .value("BRepLib_CurveProjectionFailed",BRepLib_FaceError::BRepLib_CurveProjectionFailed) │ │ │ - .value("BRepLib_ParametersOutOfRange",BRepLib_FaceError::BRepLib_ParametersOutOfRange).export_values(); │ │ │ + py::enum_(m, "BRepLib_ShellError",R"#(Errors that can occur at shell construction.)#") │ │ │ + .value("BRepLib_ShellDone",BRepLib_ShellError::BRepLib_ShellDone) │ │ │ + .value("BRepLib_EmptyShell",BRepLib_ShellError::BRepLib_EmptyShell) │ │ │ + .value("BRepLib_DisconnectedShell",BRepLib_ShellError::BRepLib_DisconnectedShell) │ │ │ + .value("BRepLib_ShellParametersOutOfRange",BRepLib_ShellError::BRepLib_ShellParametersOutOfRange).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_BRepLib_PointCloudShape : public BRepLib_PointCloudShape{ │ │ │ public: │ │ │ using BRepLib_PointCloudShape::BRepLib_PointCloudShape; │ │ ├── ./usr/share/libocp/OCP/BRepOffset_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -94,33 +94,33 @@ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ py::enum_(m, "BRepOffset_Mode",R"#(Lists the offset modes. These are the following: - BRepOffset_Skin which describes the offset along the surface of a solid, used to obtain a manifold topological space, - BRepOffset_Pipe which describes the offset of a curve, used to obtain a pre-surface, - BRepOffset_RectoVerso which describes the offset of a given surface shell along both sides of the surface.)#") │ │ │ .value("BRepOffset_Skin",BRepOffset_Mode::BRepOffset_Skin) │ │ │ .value("BRepOffset_Pipe",BRepOffset_Mode::BRepOffset_Pipe) │ │ │ .value("BRepOffset_RectoVerso",BRepOffset_Mode::BRepOffset_RectoVerso).export_values(); │ │ │ + py::enum_(m, "BRepOffsetSimple_Status",R"#()#") │ │ │ + .value("BRepOffsetSimple_OK",BRepOffsetSimple_Status::BRepOffsetSimple_OK) │ │ │ + .value("BRepOffsetSimple_NullInputShape",BRepOffsetSimple_Status::BRepOffsetSimple_NullInputShape) │ │ │ + .value("BRepOffsetSimple_ErrorOffsetComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorOffsetComputation) │ │ │ + .value("BRepOffsetSimple_ErrorWallFaceComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorWallFaceComputation) │ │ │ + .value("BRepOffsetSimple_ErrorInvalidNbShells",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorInvalidNbShells) │ │ │ + .value("BRepOffsetSimple_ErrorNonClosedShell",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorNonClosedShell).export_values(); │ │ │ py::enum_(m, "BRepOffset_Error",R"#()#") │ │ │ .value("BRepOffset_NoError",BRepOffset_Error::BRepOffset_NoError) │ │ │ .value("BRepOffset_UnknownError",BRepOffset_Error::BRepOffset_UnknownError) │ │ │ .value("BRepOffset_BadNormalsOnGeometry",BRepOffset_Error::BRepOffset_BadNormalsOnGeometry) │ │ │ .value("BRepOffset_C0Geometry",BRepOffset_Error::BRepOffset_C0Geometry) │ │ │ .value("BRepOffset_NullOffset",BRepOffset_Error::BRepOffset_NullOffset) │ │ │ .value("BRepOffset_NotConnectedShell",BRepOffset_Error::BRepOffset_NotConnectedShell) │ │ │ .value("BRepOffset_CannotTrimEdges",BRepOffset_Error::BRepOffset_CannotTrimEdges) │ │ │ .value("BRepOffset_CannotFuseVertices",BRepOffset_Error::BRepOffset_CannotFuseVertices) │ │ │ .value("BRepOffset_CannotExtentEdge",BRepOffset_Error::BRepOffset_CannotExtentEdge) │ │ │ .value("BRepOffset_UserBreak",BRepOffset_Error::BRepOffset_UserBreak) │ │ │ .value("BRepOffset_MixedConnectivity",BRepOffset_Error::BRepOffset_MixedConnectivity).export_values(); │ │ │ - py::enum_(m, "BRepOffsetSimple_Status",R"#()#") │ │ │ - .value("BRepOffsetSimple_OK",BRepOffsetSimple_Status::BRepOffsetSimple_OK) │ │ │ - .value("BRepOffsetSimple_NullInputShape",BRepOffsetSimple_Status::BRepOffsetSimple_NullInputShape) │ │ │ - .value("BRepOffsetSimple_ErrorOffsetComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorOffsetComputation) │ │ │ - .value("BRepOffsetSimple_ErrorWallFaceComputation",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorWallFaceComputation) │ │ │ - .value("BRepOffsetSimple_ErrorInvalidNbShells",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorInvalidNbShells) │ │ │ - .value("BRepOffsetSimple_ErrorNonClosedShell",BRepOffsetSimple_Status::BRepOffsetSimple_ErrorNonClosedShell).export_values(); │ │ │ py::enum_(m, "BRepOffset_Status",R"#(status of an offset face Good : Reversed : e.g. Offset > Radius of a cylinder Degenerated : e.g. Offset = Radius of a cylinder Unknown : e.g. for a Beziersurf)#") │ │ │ .value("BRepOffset_Good",BRepOffset_Status::BRepOffset_Good) │ │ │ .value("BRepOffset_Reversed",BRepOffset_Status::BRepOffset_Reversed) │ │ │ .value("BRepOffset_Degenerated",BRepOffset_Status::BRepOffset_Degenerated) │ │ │ .value("BRepOffset_Unknown",BRepOffset_Status::BRepOffset_Unknown).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ ├── ./usr/share/libocp/OCP/BSplCLib_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -37,21 +37,21 @@ │ │ │ py::module m = main_module.def_submodule("BSplCLib", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - 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 )#") │ │ │ - .value("BSplCLib_NonUniform",BSplCLib_KnotDistribution::BSplCLib_NonUniform) │ │ │ - .value("BSplCLib_Uniform",BSplCLib_KnotDistribution::BSplCLib_Uniform).export_values(); │ │ │ py::enum_(m, "BSplCLib_MultDistribution",R"#(This enumeration describes the form of the sequence of mutiplicities. MultDistribution is :)#") │ │ │ .value("BSplCLib_NonConstant",BSplCLib_MultDistribution::BSplCLib_NonConstant) │ │ │ .value("BSplCLib_Constant",BSplCLib_MultDistribution::BSplCLib_Constant) │ │ │ .value("BSplCLib_QuasiConstant",BSplCLib_MultDistribution::BSplCLib_QuasiConstant).export_values(); │ │ │ + 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 )#") │ │ │ + .value("BSplCLib_NonUniform",BSplCLib_KnotDistribution::BSplCLib_NonUniform) │ │ │ + .value("BSplCLib_Uniform",BSplCLib_KnotDistribution::BSplCLib_Uniform).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_BSplCLib_EvaluatorFunction : public BSplCLib_EvaluatorFunction{ │ │ │ public: │ │ │ using BSplCLib_EvaluatorFunction::BSplCLib_EvaluatorFunction; │ │ ├── ./usr/share/libocp/OCP/BVH_tmpl.hxx │ │ │┄ Ordering differences only │ │ │ @@ -47,82 +47,52 @@ │ │ │ #include │ │ │ │ │ │ // user-defined pre │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_Object(py::object &m, const char *name){ │ │ │ - py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R"#(Abstract geometric object bounded by BVH box.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_Object(py::object &m, const char *name){ │ │ │ - static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def("Box", │ │ │ - (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box, │ │ │ - R"#(Returns AABB of the geometric object.)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_Set(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Set of abstract entities (bounded by BVH boxes). This is the minimal geometry interface needed to construct BVH.)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements easy to use interfaces for adding the elements into BVH tree and its following construction. To make it more effective it is better to set the number of elements that are going to be added into BVH tree. For better efficiency on heavy data types it is recommended to use either BHV_IndexedBoxSet which uses indirect indexing for accessing the elements and their boxes or set the element to be an index of the real element in the application's internal data structures.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_Set(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +template │ │ │ +void register_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + .def("SetSize", │ │ │ + (void (BVH_BoxSet::*)( const Standard_Size ) ) &BVH_BoxSet::SetSize, │ │ │ + R"#(Sets the expected size of BVH tree)#" ,py::arg("theSize")) │ │ │ + .def("Add", │ │ │ + (void (BVH_BoxSet::*)( const DataType & , const BVH_Box & ) ) &BVH_BoxSet::Add, │ │ │ + R"#(Adds the element into BVH)#" ,py::arg("theElement"), py::arg("theBox")) │ │ │ + .def("Build", │ │ │ + (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Build, │ │ │ + R"#(BVH construction)#" ) │ │ │ + .def("Clear", │ │ │ + (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Clear, │ │ │ + R"#(Clears the vectors of elements and boxes)#" ) │ │ │ .def("Box", │ │ │ - (BVH_Box (BVH_Set::*)() const) &BVH_Set::Box, │ │ │ - R"#(Returns AABB of the entire set of objects.)#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (BVH_Set::*)() const) &BVH_Set::Size, │ │ │ - R"#(Returns total number of objects.)#" ) │ │ │ - .def("Box", │ │ │ - (BVH_Box (BVH_Set::*)( const Standard_Integer ) const) &BVH_Set::Box, │ │ │ - R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ + (BVH_Box (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Box, │ │ │ + R"#(Returns the bounding box with the given index.)#" ,py::arg("theIndex")) │ │ │ .def("Center", │ │ │ - (T (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Set::Center, │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ - .def("Swap", │ │ │ - (void (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Set::Swap, │ │ │ - R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("__len__",[](const BVH_Set &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Triangulation as an example of BVH primitive set.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + (Standard_Real (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_BoxSet::Center, │ │ │ + R"#(Returns centroid position along specified axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ .def("Size", │ │ │ - (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size, │ │ │ - R"#(Returns total number of triangles.)#" ) │ │ │ - .def("Box", │ │ │ - (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box, │ │ │ - R"#(Returns AABB of the given triangle.)#" ,py::arg("theIndex")) │ │ │ - .def("Center", │ │ │ - (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center, │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ + (Standard_Integer (BVH_BoxSet::*)() const) &BVH_BoxSet::Size, │ │ │ + R"#(Returns the number of boxes.)#" ) │ │ │ .def("Swap", │ │ │ - (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap, │ │ │ - R"#(Performs transposing the two given triangles in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("__len__",[](const BVH_Triangulation &self) │ │ │ + (void (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_BoxSet::Swap, │ │ │ + R"#(Swaps indices of two specified boxes.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("Element", │ │ │ + (DataType (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Element, │ │ │ + R"#(Returns the Element with the index theIndex.)#" ,py::arg("theIndex")) │ │ │ + .def("__len__",[](const BVH_BoxSet &self) │ │ │ { return self.Size(); } │ │ │ ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ void preregister_template_BVH_PairDistance(py::object &m, const char *name){ │ │ │ @@ -154,63 +124,41 @@ │ │ │ .def("Stop", │ │ │ (Standard_Boolean (BVH_PairDistance::*)() const) &BVH_PairDistance::Stop, │ │ │ R"#(Returns the flag controlling the tree descend)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract BVH builder based on the concept of work queue. Queue based BVH builders support parallelization with a fixed number of threads (maximum efficiency is achieved by setting the number of threads equal to the number of CPU cores plus one). Note that to support parallel mode, a corresponding BVH primitive set should provide thread safe implementations of interface functions (e.g., Swap, Box, Center). Otherwise, the results will be undefined.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads") ) │ │ │ - .def("Build", │ │ │ - (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build, │ │ │ - R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort -- O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 3M triangles per second).)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth") ) │ │ │ - .def("Build", │ │ │ - (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build, │ │ │ - R"#(Builds BVH.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BoundData(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BoundData(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Task for parallel bounds updating.)#"); │ │ │ +void preregister_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Boolean >() ,py::arg("isParallel") ) │ │ │ +void register_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + .def("IsDirty", │ │ │ + (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty, │ │ │ + R"#(Returns TRUE if geometry state should be updated.)#" ) │ │ │ + .def("MarkDirty", │ │ │ + (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty, │ │ │ + R"#(Marks geometry as outdated.)#" ) │ │ │ + .def("Box", │ │ │ + (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box, │ │ │ + R"#(Returns AABB of the whole geometry.)#" ) │ │ │ + .def("BVH", │ │ │ + ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH, │ │ │ + R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ + .def("Builder", │ │ │ + ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder, │ │ │ + R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ + .def("SetBuilder", │ │ │ + (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder, │ │ │ + R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ void preregister_template_BVH_Transform(py::object &m, const char *name){ │ │ │ py::class_ , opencascade::handle> , BVH_Properties >(m,name,R"#(Stores transform properties of geometric object.)#"); │ │ │ } │ │ │ @@ -254,120 +202,125 @@ │ │ │ template │ │ │ void register_template_UnitVector(py::object &m, const char *name){ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Tools(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Defines a set of static methods operating with points and bounding boxes.)#"); │ │ │ +void preregister_template_BVH_Ray(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Describes a ray based on BVH vectors.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Tools(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def_static("BoxBoxSquareDistance_s", │ │ │ - (T (*)( const BVH_Box & , const BVH_Box & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ - R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theBox1"), py::arg("theBox2")) │ │ │ - .def_static("BoxBoxSquareDistance_s", │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ - R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theCMin1"), py::arg("theCMax1"), py::arg("theCMin2"), py::arg("theCMax2")) │ │ │ - .def_static("PointBoxSquareDistance_s", │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ - R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ - .def_static("PointBoxSquareDistance_s", │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ - R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ - .def_static("PointBoxProjection_s", │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxProjection, │ │ │ - R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ - .def_static("PointBoxProjection_s", │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxProjection, │ │ │ - R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ - .def_static("PointTriangleProjection_s", │ │ │ - (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , typename BVH_Tools::BVH_PrjStateInTriangle * , Standard_Integer * , Standard_Integer * ) ) &BVH_Tools::PointTriangleProjection, │ │ │ - R"#(Find nearest point on a triangle for the given point)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2"), py::arg("thePrjState"), py::arg("theNumberOfFirstNode"), py::arg("theNumberOfLastNode")) │ │ │ - .def_static("PointTriangleSquareDistance_s", │ │ │ - (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointTriangleSquareDistance, │ │ │ - R"#(Computes square distance between point and triangle)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2")) │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ - (Standard_Boolean (*)( const BVH_Ray & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ - (Standard_Boolean (*)( const BVH_Ray & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ - (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ - .def_static("RayBoxIntersection_s", │ │ │ - (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ - R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ +void register_template_BVH_Ray(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const int &, const int & >() ,py::arg("theOrigin"), py::arg("theDirect") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Tool object to sort abstract primitive set.)#"); │ │ │ +void preregister_template_BVH_Bin(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Stores parameters of single bin (slice of AABB).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_BVH_Bin(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("Perform", │ │ │ - (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform, │ │ │ - R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ - .def("Perform", │ │ │ - (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform, │ │ │ - R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ - .def("IsParallel", │ │ │ - (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel, │ │ │ - R"#(Returns parallel flag.)#" ) │ │ │ - .def("SetParallel", │ │ │ - (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel, │ │ │ - R"#(Set parallel flag controlling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theDoMainSplits"), py::arg("theNumOfThreads") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Builder(py::object &m, const char *name){ │ │ │ - py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#"); │ │ │ +void preregister_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Builder(py::object &m, const char *name){ │ │ │ - static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name)) │ │ │ +void register_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def_static("MainAxis_s", │ │ │ + (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis, │ │ │ + R"#()#" ,py::arg("theSize")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract BVH builder based on the concept of work queue. Queue based BVH builders support parallelization with a fixed number of threads (maximum efficiency is achieved by setting the number of threads equal to the number of CPU cores plus one). Note that to support parallel mode, a corresponding BVH primitive set should provide thread safe implementations of interface functions (e.g., Swap, Box, Center). Otherwise, the results will be undefined.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_QueueBuilder(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads") ) │ │ │ .def("Build", │ │ │ - (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build, │ │ │ + (void (BVH_QueueBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_QueueBuilder::Build, │ │ │ R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Set of abstract geometric primitives organized with bounding volume hierarchy (BVH). Unlike an object set, this collection is designed for storing structural elements of a single object (such as triangles in the object triangulation). Because there may be a large number of such elements, the implementations of this interface should be sufficiently optimized.)#"); │ │ │ +void preregister_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort -- O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 3M triangles per second).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ - .def("Box", │ │ │ - (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box, │ │ │ - R"#(Returns AABB of primitive set.)#" ) │ │ │ - .def("BVH", │ │ │ - ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH, │ │ │ - R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ - .def("Builder", │ │ │ - ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder, │ │ │ - R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ - .def("SetBuilder", │ │ │ - (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder, │ │ │ - R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ +void register_template_BVH_LinearBuilder(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth") ) │ │ │ + .def("Build", │ │ │ + (void (BVH_LinearBuilder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_LinearBuilder::Build, │ │ │ + R"#(Builds BVH.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BoundData(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BoundData(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Task for parallel bounds updating.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_UpdateBoundTask(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Boolean >() ,py::arg("isParallel") ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using sweep plane SAH algorithm.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ void preregister_template_BVH_Distance(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Abstract class for computation of the min distance between some Object and elements of BVH tree. To use this class it is required to define two methods: - *RejectNode* to compute distance from the object to bounding box - *Accept* to compute distance from the object to the element of tree)#"); │ │ │ } │ │ │ @@ -521,301 +474,257 @@ │ │ │ .def_static("CwiseMax_s", │ │ │ (void (*)( typename BVH::BoxMinMax::BVH_VecNt & , const typename BVH::BoxMinMax::BVH_VecNt & ) ) &BoxMinMax::CwiseMax, │ │ │ R"#()#" ,py::arg("theVec1"), py::arg("theVec2")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs centroid-based sorting of abstract set along the given axis (X - 0, Y - 1, Z - 2) using quick sort.)#"); │ │ │ +void preregister_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer >() ,py::arg("theAxis") ) │ │ │ - .def("Perform", │ │ │ - (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform, │ │ │ - R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ - .def("Perform", │ │ │ - (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform, │ │ │ - R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr_nodelete> >(m,name,R"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr_nodelete> >>(m.attr(name)) │ │ │ - .def("IsMetricBetter", │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter, │ │ │ - R"#(Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise.)#" ,py::arg("arg"), py::arg("arg")) │ │ │ - .def("RejectMetric", │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric, │ │ │ - R"#(Rejects the node by the metric)#" ,py::arg("arg")) │ │ │ - .def("Stop", │ │ │ - (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop, │ │ │ - R"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the traverse of the single binary tree. Selection of the data from the tree is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("SetBVHSet", │ │ │ - (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet, │ │ │ - R"#(Sets the BVH Set containing the BVH tree)#" ,py::arg("theBVHSet")) │ │ │ - .def("AcceptMetric", │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric, │ │ │ - R"#(Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise.)#" ,py::arg("arg")) │ │ │ - .def("RejectNode", │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode, │ │ │ - R"#(Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise.)#" ,py::arg("theCornerMin"), py::arg("theCornerMax"), py::arg("theMetric")) │ │ │ - .def("Accept", │ │ │ - (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept, │ │ │ - R"#(Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise.)#" ,py::arg("theIndex"), py::arg("theMetric")) │ │ │ - .def("Select", │ │ │ - (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select, │ │ │ - R"#(Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements.)#" ) │ │ │ - .def("Select", │ │ │ - (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select, │ │ │ - R"#(Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.)#" ,py::arg("theBVH")) │ │ │ + .def("Clear", │ │ │ + (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear, │ │ │ + R"#(Removes all geometric objects.)#" ) │ │ │ + .def("Objects", │ │ │ + (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects, │ │ │ + R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ + .def("Objects", │ │ │ + ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects, │ │ │ + R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size, │ │ │ + R"#(Return total number of objects.)#" ) │ │ │ + .def("Box", │ │ │ + (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box, │ │ │ + R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ + .def("Center", │ │ │ + (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center, │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ + .def("Swap", │ │ │ + (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap, │ │ │ + R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("__len__",[](const BVH_ObjectSet &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Set of abstract geometric primitives organized with bounding volume hierarchy (BVH). Unlike an object set, this collection is designed for storing structural elements of a single object (such as triangles in the object triangulation). Because there may be a large number of such elements, the implementations of this interface should be sufficiently optimized.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +template │ │ │ +void register_template_BVH_PrimitiveSet(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("SetBVHSets", │ │ │ - (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets, │ │ │ - R"#(Sets the BVH Sets containing the BVH trees)#" ,py::arg("theBVHSet1"), py::arg("theBVHSet2")) │ │ │ - .def("RejectNode", │ │ │ - (Standard_Boolean (BVH_PairTraverse::*)( const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , MetricType & ) const) &BVH_PairTraverse::RejectNode, │ │ │ - R"#(Rejection of the pair of nodes by bounding boxes. Metric is computed to choose the best branch. Returns true if the pair of nodes should be rejected, false otherwise.)#" ,py::arg("theCornerMin1"), py::arg("theCornerMax1"), py::arg("theCornerMin2"), py::arg("theCornerMax2"), py::arg("theMetric")) │ │ │ - .def("Accept", │ │ │ - (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept, │ │ │ - R"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("Select", │ │ │ - (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select, │ │ │ - R"#(Selection of the pairs of elements of two BVH trees by the rules defined in Accept/Reject methods. The method requires the BVHSets containing BVH trees to be set. Returns the number of accepted pairs of elements.)#" ) │ │ │ - .def("Select", │ │ │ - (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select, │ │ │ - R"#(Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements.)#" ,py::arg("theBVH1"), py::arg("theBVH2")) │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + .def("Box", │ │ │ + (BVH_Box (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Box, │ │ │ + R"#(Returns AABB of primitive set.)#" ) │ │ │ + .def("BVH", │ │ │ + ( const handle> & (BVH_PrimitiveSet::*)() ) &BVH_PrimitiveSet::BVH, │ │ │ + R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ + .def("Builder", │ │ │ + ( const handle> & (BVH_PrimitiveSet::*)() const) &BVH_PrimitiveSet::Builder, │ │ │ + R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ + .def("SetBuilder", │ │ │ + (void (BVH_PrimitiveSet::*)( const handle> & ) ) &BVH_PrimitiveSet::SetBuilder, │ │ │ + R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the nodes to process)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Performs centroid-based sorting of abstract set along the given axis (X - 0, Y - 1, Z - 2) using quick sort.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const MetricType & >() ,py::arg("theNodeID"), py::arg("theMetric") ) │ │ │ +template │ │ │ +void register_template_BVH_QuickSorter(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer >() ,py::arg("theAxis") ) │ │ │ + .def("Perform", │ │ │ + (void (BVH_QuickSorter::*)( BVH_Set * ) ) &BVH_QuickSorter::Perform, │ │ │ + R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ + .def("Perform", │ │ │ + (void (BVH_QuickSorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_QuickSorter::Perform, │ │ │ + R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the pair of nodes to process)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_Builder(py::object &m, const char *name){ │ │ │ + py::class_ , opencascade::handle> , BVH_BuilderTransient >(m,name,R"#(Performs construction of BVH tree using bounding boxes (AABBs) of abstract objects.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const MetricType & >() ,py::arg("theNodeID1"), py::arg("theNodeID2"), py::arg("theMetric") ) │ │ │ +template │ │ │ +void register_template_BVH_Builder(py::object &m, const char *name){ │ │ │ + static_cast , opencascade::handle> , BVH_BuilderTransient >>(m.attr(name)) │ │ │ + .def("Build", │ │ │ + (void (BVH_Builder::*)( BVH_Set * , BVH_Tree * , const BVH_Box & ) const) &BVH_Builder::Build, │ │ │ + R"#(Builds BVH using specific algorithm.)#" ,py::arg("theSet"), py::arg("theBVH"), py::arg("theBox")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements easy to use interfaces for adding the elements into BVH tree and its following construction. To make it more effective it is better to set the number of elements that are going to be added into BVH tree. For better efficiency on heavy data types it is recommended to use either BHV_IndexedBoxSet which uses indirect indexing for accessing the elements and their boxes or set the element to be an index of the real element in the application's internal data structures.)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Triangulation as an example of BVH primitive set.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_BoxSet(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +template │ │ │ +void register_template_BVH_Triangulation(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ - .def("SetSize", │ │ │ - (void (BVH_BoxSet::*)( const Standard_Size ) ) &BVH_BoxSet::SetSize, │ │ │ - R"#(Sets the expected size of BVH tree)#" ,py::arg("theSize")) │ │ │ - .def("Add", │ │ │ - (void (BVH_BoxSet::*)( const DataType & , const BVH_Box & ) ) &BVH_BoxSet::Add, │ │ │ - R"#(Adds the element into BVH)#" ,py::arg("theElement"), py::arg("theBox")) │ │ │ - .def("Build", │ │ │ - (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Build, │ │ │ - R"#(BVH construction)#" ) │ │ │ - .def("Clear", │ │ │ - (void (BVH_BoxSet::*)() ) &BVH_BoxSet::Clear, │ │ │ - R"#(Clears the vectors of elements and boxes)#" ) │ │ │ + .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (BVH_Triangulation::*)() const) &BVH_Triangulation::Size, │ │ │ + R"#(Returns total number of triangles.)#" ) │ │ │ .def("Box", │ │ │ - (BVH_Box (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Box, │ │ │ - R"#(Returns the bounding box with the given index.)#" ,py::arg("theIndex")) │ │ │ + (BVH_Box (BVH_Triangulation::*)( const Standard_Integer ) const) &BVH_Triangulation::Box, │ │ │ + R"#(Returns AABB of the given triangle.)#" ,py::arg("theIndex")) │ │ │ .def("Center", │ │ │ - (Standard_Real (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_BoxSet::Center, │ │ │ - R"#(Returns centroid position along specified axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (BVH_BoxSet::*)() const) &BVH_BoxSet::Size, │ │ │ - R"#(Returns the number of boxes.)#" ) │ │ │ + (T (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Triangulation::Center, │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ .def("Swap", │ │ │ - (void (BVH_BoxSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_BoxSet::Swap, │ │ │ - R"#(Swaps indices of two specified boxes.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("Element", │ │ │ - (DataType (BVH_BoxSet::*)( const Standard_Integer ) const) &BVH_BoxSet::Element, │ │ │ - R"#(Returns the Element with the index theIndex.)#" ,py::arg("theIndex")) │ │ │ - .def("__len__",[](const BVH_BoxSet &self) │ │ │ + (void (BVH_Triangulation::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Triangulation::Swap, │ │ │ + R"#(Performs transposing the two given triangles in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("__len__",[](const BVH_Triangulation &self) │ │ │ { return self.Size(); } │ │ │ ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Ray(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Describes a ray based on BVH vectors.)#"); │ │ │ +void preregister_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Tool object for parallel construction of distance field (uses Intel TBB).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Ray(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const int &, const int & >() ,py::arg("theOrigin"), py::arg("theDirect") ) │ │ │ +void register_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< BVH_DistanceField *,BVH_Geometry * >() ,py::arg("theOutField"), py::arg("theGeometry") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Bin(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Stores parameters of single bin (slice of AABB).)#"); │ │ │ +void preregister_template_BVH_DistanceField(py::object &m, const char *name){ │ │ │ + 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).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Bin(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_BVH_BinnedBuilder(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theDoMainSplits"), py::arg("theNumOfThreads") ) │ │ │ +void register_template_BVH_DistanceField(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Boolean >() ,py::arg("theMaximumSize"), py::arg("theComputeSign") ) │ │ │ + .def("Build", │ │ │ + (Standard_Boolean (BVH_DistanceField::*)( BVH_Geometry & ) ) &BVH_DistanceField::Build, │ │ │ + R"#(Builds 3D distance field from BVH geometry.)#" ,py::arg("theGeometry")) │ │ │ + .def("IsParallel", │ │ │ + (Standard_Boolean (BVH_DistanceField::*)() const) &BVH_DistanceField::IsParallel, │ │ │ + R"#(Returns parallel flag.)#" ) │ │ │ + .def("SetParallel", │ │ │ + (void (BVH_DistanceField::*)( const Standard_Boolean ) ) &BVH_DistanceField::SetParallel, │ │ │ + R"#(Set parallel flag controlling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ + .def("PackedData", │ │ │ + ( const T * (BVH_DistanceField::*)() const) &BVH_DistanceField::PackedData, │ │ │ + R"#(Returns packed voxel data.)#" ) │ │ │ + .def("Voxel", │ │ │ + (T & (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) ) &BVH_DistanceField::Voxel, │ │ │ + R"#(Returns distance value for the given voxel.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ + .def("Voxel", │ │ │ + (T (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) const) &BVH_DistanceField::Voxel, │ │ │ + R"#(Returns distance value for the given voxel.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ + .def("DimensionX", │ │ │ + (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionX, │ │ │ + R"#(Returns size of voxel grid in X dimension.)#" ) │ │ │ + .def("DimensionY", │ │ │ + (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionY, │ │ │ + R"#(Returns size of voxel grid in Y dimension.)#" ) │ │ │ + .def("DimensionZ", │ │ │ + (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionZ, │ │ │ + R"#(Returns size of voxel grid in Z dimension.)#" ) │ │ │ + .def("VoxelSize", │ │ │ + ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::VoxelSize, │ │ │ + R"#(Returns size of single voxel.)#" ) │ │ │ + .def("CornerMin", │ │ │ + ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMin, │ │ │ + R"#(Returns minimum corner of voxel grid.)#" ) │ │ │ + .def("CornerMax", │ │ │ + ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMax, │ │ │ + R"#(Returns maximum corner of voxel grid.)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +template │ │ │ +void preregister_template_SquareDistanceToPoint(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_AxisSelector(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def_static("MainAxis_s", │ │ │ - (Standard_Integer (*)( const typename BVH::BVH_AxisSelector::BVH_VecNt & ) ) &BVH_AxisSelector::MainAxis, │ │ │ - R"#()#" ,py::arg("theSize")) │ │ │ +template │ │ │ +void register_template_SquareDistanceToPoint(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def("IsOutside", │ │ │ + (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::IsOutside, │ │ │ + R"#(IsOutside)#" ) │ │ │ + .def("RejectNode", │ │ │ + (Standard_Boolean (SquareDistanceToPoint::*)( const typename BVH::SquareDistanceToPoint::BVH_VecNt & , const typename BVH::SquareDistanceToPoint::BVH_VecNt & , T & ) const) &SquareDistanceToPoint::RejectNode, │ │ │ + R"#(Defines the rules for node rejection)#" ,py::arg("theCMin"), py::arg("theCMax"), py::arg("theMetric")) │ │ │ + .def("Stop", │ │ │ + (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::Stop, │ │ │ + R"#(Redefine the Stop to never stop the selection)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Performs building of BVH tree using sweep plane SAH algorithm.)#"); │ │ │ +void preregister_template_PointTriangulationSquareDistance(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_SweepPlaneBuilder(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Integer >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theNumOfThreads") ) │ │ │ +void register_template_PointTriangulationSquareDistance(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def("Accept", │ │ │ + (Standard_Boolean (PointTriangulationSquareDistance::*)( const Standard_Integer , const T & ) ) &PointTriangulationSquareDistance::Accept, │ │ │ + R"#()#" ,py::arg("theIndex"), py::arg("arg")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(BVH geometry as a set of abstract geometric objects organized with bounding volume hierarchy (BVH).)#"); │ │ │ +void preregister_template_PointGeometrySquareDistance(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_Geometry(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_PointGeometrySquareDistance(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def(py::init< const handle> & >() ,py::arg("theBuilder") ) │ │ │ - .def("IsDirty", │ │ │ - (Standard_Boolean (BVH_Geometry::*)() const) &BVH_Geometry::IsDirty, │ │ │ - R"#(Returns TRUE if geometry state should be updated.)#" ) │ │ │ - .def("MarkDirty", │ │ │ - (void (BVH_Geometry::*)() ) &BVH_Geometry::MarkDirty, │ │ │ - R"#(Marks geometry as outdated.)#" ) │ │ │ - .def("Box", │ │ │ - (BVH_Box (BVH_Geometry::*)() const) &BVH_Geometry::Box, │ │ │ - R"#(Returns AABB of the whole geometry.)#" ) │ │ │ - .def("BVH", │ │ │ - ( const handle> & (BVH_Geometry::*)() ) &BVH_Geometry::BVH, │ │ │ - R"#(Returns BVH tree (and builds it if necessary).)#" ) │ │ │ - .def("Builder", │ │ │ - ( const handle> & (BVH_Geometry::*)() const) &BVH_Geometry::Builder, │ │ │ - R"#(Returns the method (builder) used to construct BVH.)#" ) │ │ │ - .def("SetBuilder", │ │ │ - (void (BVH_Geometry::*)( const handle> & ) ) &BVH_Geometry::SetBuilder, │ │ │ - R"#(Sets the method (builder) used to construct BVH.)#" ,py::arg("theBuilder")) │ │ │ + .def("Accept", │ │ │ + (Standard_Boolean (PointGeometrySquareDistance::*)( const Standard_Integer , const T & ) ) &PointGeometrySquareDistance::Accept, │ │ │ + R"#()#" ,py::arg("theIndex"), py::arg("arg")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Array of abstract entities (bounded by BVH boxes) to built BVH.)#"); │ │ │ +void preregister_template_BVH_Object(py::object &m, const char *name){ │ │ │ + py::class_ , opencascade::handle> , BVH_ObjectTransient >(m,name,R"#(Abstract geometric object bounded by BVH box.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_BVH_ObjectSet(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_BVH_Object(py::object &m, const char *name){ │ │ │ + static_cast , opencascade::handle> , BVH_ObjectTransient >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("Clear", │ │ │ - (void (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Clear, │ │ │ - R"#(Removes all geometric objects.)#" ) │ │ │ - .def("Objects", │ │ │ - (typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() ) &BVH_ObjectSet::Objects, │ │ │ - R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ - .def("Objects", │ │ │ - ( const typename BVH_ObjectSet::BVH_ObjectList & (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Objects, │ │ │ - R"#(Returns reference to the array of geometric objects.)#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (BVH_ObjectSet::*)() const) &BVH_ObjectSet::Size, │ │ │ - R"#(Return total number of objects.)#" ) │ │ │ .def("Box", │ │ │ - (BVH_Box (BVH_ObjectSet::*)( const Standard_Integer ) const) &BVH_ObjectSet::Box, │ │ │ - R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ - .def("Center", │ │ │ - (T (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_ObjectSet::Center, │ │ │ - R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ - .def("Swap", │ │ │ - (void (BVH_ObjectSet::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_ObjectSet::Swap, │ │ │ - R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("__len__",[](const BVH_ObjectSet &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ + (BVH_Box (BVH_Object::*)() const) &BVH_Object::Box, │ │ │ + R"#(Returns AABB of the geometric object.)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ void preregister_template_BVH_TreeBase(py::object &m, const char *name){ │ │ │ py::class_ , opencascade::handle> , BVH_TreeBaseTransient >(m,name,R"#(Stores parameters of bounding volume hierarchy (BVH). Bounding volume hierarchy (BVH) organizes geometric objects in the tree based on spatial relationships. Each node in the tree contains an axis-aligned bounding box of all the objects below it. Bounding volume hierarchies are used in many algorithms to support efficient operations on the sets of geometric objects, such as collision detection, ray-tracing, searching of nearest objects, and view frustum culling.)#"); │ │ │ } │ │ │ @@ -912,121 +821,212 @@ │ │ │ template │ │ │ void register_template_BVH_SpatialMedianBuilder(py::object &m, const char *name){ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< const Standard_Integer, const Standard_Integer, const Standard_Boolean >() ,py::arg("theLeafNodeSize"), py::arg("theMaxTreeDepth"), py::arg("theToUseMainAxis") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Tool object for parallel construction of distance field (uses Intel TBB).)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr_nodelete> >(m,name,R"#(Abstract class implementing the base Traverse interface required for selection of the elements from BVH tree.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_ParallelDistanceFieldBuilder(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< BVH_DistanceField *,BVH_Geometry * >() ,py::arg("theOutField"), py::arg("theGeometry") ) │ │ │ +template │ │ │ +void register_template_BVH_BaseTraverse(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr_nodelete> >>(m.attr(name)) │ │ │ + .def("IsMetricBetter", │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & , const MetricType & ) const) &BVH_BaseTraverse::IsMetricBetter, │ │ │ + R"#(Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise.)#" ,py::arg("arg"), py::arg("arg")) │ │ │ + .def("RejectMetric", │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)( const MetricType & ) const) &BVH_BaseTraverse::RejectMetric, │ │ │ + R"#(Rejects the node by the metric)#" ,py::arg("arg")) │ │ │ + .def("Stop", │ │ │ + (Standard_Boolean (BVH_BaseTraverse::*)() const) &BVH_BaseTraverse::Stop, │ │ │ + R"#(Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped.)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_BVH_DistanceField(py::object &m, const char *name){ │ │ │ - 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).)#"); │ │ │ +template │ │ │ +void preregister_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the traverse of the single binary tree. Selection of the data from the tree is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_BVH_DistanceField(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Boolean >() ,py::arg("theMaximumSize"), py::arg("theComputeSign") ) │ │ │ - .def("Build", │ │ │ - (Standard_Boolean (BVH_DistanceField::*)( BVH_Geometry & ) ) &BVH_DistanceField::Build, │ │ │ - R"#(Builds 3D distance field from BVH geometry.)#" ,py::arg("theGeometry")) │ │ │ - .def("IsParallel", │ │ │ - (Standard_Boolean (BVH_DistanceField::*)() const) &BVH_DistanceField::IsParallel, │ │ │ - R"#(Returns parallel flag.)#" ) │ │ │ - .def("SetParallel", │ │ │ - (void (BVH_DistanceField::*)( const Standard_Boolean ) ) &BVH_DistanceField::SetParallel, │ │ │ - R"#(Set parallel flag controlling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ - .def("PackedData", │ │ │ - ( const T * (BVH_DistanceField::*)() const) &BVH_DistanceField::PackedData, │ │ │ - R"#(Returns packed voxel data.)#" ) │ │ │ - .def("Voxel", │ │ │ - (T & (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) ) &BVH_DistanceField::Voxel, │ │ │ - R"#(Returns distance value for the given voxel.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ - .def("Voxel", │ │ │ - (T (BVH_DistanceField::*)( const Standard_Integer , const Standard_Integer , const Standard_Integer ) const) &BVH_DistanceField::Voxel, │ │ │ - R"#(Returns distance value for the given voxel.)#" ,py::arg("theX"), py::arg("theY"), py::arg("theZ")) │ │ │ - .def("DimensionX", │ │ │ - (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionX, │ │ │ - R"#(Returns size of voxel grid in X dimension.)#" ) │ │ │ - .def("DimensionY", │ │ │ - (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionY, │ │ │ - R"#(Returns size of voxel grid in Y dimension.)#" ) │ │ │ - .def("DimensionZ", │ │ │ - (Standard_Integer (BVH_DistanceField::*)() const) &BVH_DistanceField::DimensionZ, │ │ │ - R"#(Returns size of voxel grid in Z dimension.)#" ) │ │ │ - .def("VoxelSize", │ │ │ - ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::VoxelSize, │ │ │ - R"#(Returns size of single voxel.)#" ) │ │ │ - .def("CornerMin", │ │ │ - ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMin, │ │ │ - R"#(Returns minimum corner of voxel grid.)#" ) │ │ │ - .def("CornerMax", │ │ │ - ( const typename BVH_DistanceField::BVH_VecNt & (BVH_DistanceField::*)() const) &BVH_DistanceField::CornerMax, │ │ │ - R"#(Returns maximum corner of voxel grid.)#" ) │ │ │ +template │ │ │ +void register_template_BVH_Traverse(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def("SetBVHSet", │ │ │ + (void (BVH_Traverse::*)( BVHSetType * ) ) &BVH_Traverse::SetBVHSet, │ │ │ + R"#(Sets the BVH Set containing the BVH tree)#" ,py::arg("theBVHSet")) │ │ │ + .def("AcceptMetric", │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const MetricType & ) const) &BVH_Traverse::AcceptMetric, │ │ │ + R"#(Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise.)#" ,py::arg("arg")) │ │ │ + .def("RejectNode", │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const typename BVH_Traverse::BVH_VecNt & , const typename BVH_Traverse::BVH_VecNt & , MetricType & ) const) &BVH_Traverse::RejectNode, │ │ │ + R"#(Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise.)#" ,py::arg("theCornerMin"), py::arg("theCornerMax"), py::arg("theMetric")) │ │ │ + .def("Accept", │ │ │ + (Standard_Boolean (BVH_Traverse::*)( const Standard_Integer , const MetricType & ) ) &BVH_Traverse::Accept, │ │ │ + R"#(Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise.)#" ,py::arg("theIndex"), py::arg("theMetric")) │ │ │ + .def("Select", │ │ │ + (Standard_Integer (BVH_Traverse::*)() ) &BVH_Traverse::Select, │ │ │ + R"#(Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements.)#" ) │ │ │ + .def("Select", │ │ │ + (Standard_Integer (BVH_Traverse::*)( const handle> & ) ) &BVH_Traverse::Select, │ │ │ + R"#(Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.)#" ,py::arg("theBVH")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_SquareDistanceToPoint(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +template │ │ │ +void preregister_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.)#"); │ │ │ } │ │ │ │ │ │ -template │ │ │ -void register_template_SquareDistanceToPoint(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +template │ │ │ +void register_template_BVH_PairTraverse(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("IsOutside", │ │ │ - (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::IsOutside, │ │ │ - R"#(IsOutside)#" ) │ │ │ + .def("SetBVHSets", │ │ │ + (void (BVH_PairTraverse::*)( BVHSetType * , BVHSetType * ) ) &BVH_PairTraverse::SetBVHSets, │ │ │ + R"#(Sets the BVH Sets containing the BVH trees)#" ,py::arg("theBVHSet1"), py::arg("theBVHSet2")) │ │ │ .def("RejectNode", │ │ │ - (Standard_Boolean (SquareDistanceToPoint::*)( const typename BVH::SquareDistanceToPoint::BVH_VecNt & , const typename BVH::SquareDistanceToPoint::BVH_VecNt & , T & ) const) &SquareDistanceToPoint::RejectNode, │ │ │ - R"#(Defines the rules for node rejection)#" ,py::arg("theCMin"), py::arg("theCMax"), py::arg("theMetric")) │ │ │ - .def("Stop", │ │ │ - (Standard_Boolean (SquareDistanceToPoint::*)() const) &SquareDistanceToPoint::Stop, │ │ │ - R"#(Redefine the Stop to never stop the selection)#" ) │ │ │ + (Standard_Boolean (BVH_PairTraverse::*)( const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , const typename BVH_PairTraverse::BVH_VecNt & , MetricType & ) const) &BVH_PairTraverse::RejectNode, │ │ │ + R"#(Rejection of the pair of nodes by bounding boxes. Metric is computed to choose the best branch. Returns true if the pair of nodes should be rejected, false otherwise.)#" ,py::arg("theCornerMin1"), py::arg("theCornerMax1"), py::arg("theCornerMin2"), py::arg("theCornerMax2"), py::arg("theMetric")) │ │ │ + .def("Accept", │ │ │ + (Standard_Boolean (BVH_PairTraverse::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_PairTraverse::Accept, │ │ │ + R"#(Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("Select", │ │ │ + (Standard_Integer (BVH_PairTraverse::*)() ) &BVH_PairTraverse::Select, │ │ │ + R"#(Selection of the pairs of elements of two BVH trees by the rules defined in Accept/Reject methods. The method requires the BVHSets containing BVH trees to be set. Returns the number of accepted pairs of elements.)#" ) │ │ │ + .def("Select", │ │ │ + (Standard_Integer (BVH_PairTraverse::*)( const handle> & , const handle> & ) ) &BVH_PairTraverse::Select, │ │ │ + R"#(Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements.)#" ,py::arg("theBVH1"), py::arg("theBVH2")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the nodes to process)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_NodeInStack(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const MetricType & >() ,py::arg("theNodeID"), py::arg("theMetric") ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary structure for keeping the pair of nodes to process)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_PairNodesInStack(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer, const MetricType & >() ,py::arg("theNodeID1"), py::arg("theNodeID2"), py::arg("theMetric") ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_PointTriangulationSquareDistance(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +void preregister_template_BVH_Tools(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Defines a set of static methods operating with points and bounding boxes.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_PointTriangulationSquareDistance(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_BVH_Tools(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def_static("BoxBoxSquareDistance_s", │ │ │ + (T (*)( const BVH_Box & , const BVH_Box & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ + R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theBox1"), py::arg("theBox2")) │ │ │ + .def_static("BoxBoxSquareDistance_s", │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::BoxBoxSquareDistance, │ │ │ + R"#(Computes Square distance between Axis aligned bounding boxes)#" ,py::arg("theCMin1"), py::arg("theCMax1"), py::arg("theCMin2"), py::arg("theCMax2")) │ │ │ + .def_static("PointBoxSquareDistance_s", │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ + R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ + .def_static("PointBoxSquareDistance_s", │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxSquareDistance, │ │ │ + R"#(Computes square distance between point and bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ + .def_static("PointBoxProjection_s", │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const BVH_Box & ) ) &BVH_Tools::PointBoxProjection, │ │ │ + R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theBox")) │ │ │ + .def_static("PointBoxProjection_s", │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointBoxProjection, │ │ │ + R"#(Computes projection of point on bounding box)#" ,py::arg("thePoint"), py::arg("theCMin"), py::arg("theCMax")) │ │ │ + .def_static("PointTriangleProjection_s", │ │ │ + (typename BVH_Tools::BVH_VecNt (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , typename BVH_Tools::BVH_PrjStateInTriangle * , Standard_Integer * , Standard_Integer * ) ) &BVH_Tools::PointTriangleProjection, │ │ │ + R"#(Find nearest point on a triangle for the given point)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2"), py::arg("thePrjState"), py::arg("theNumberOfFirstNode"), py::arg("theNumberOfLastNode")) │ │ │ + .def_static("PointTriangleSquareDistance_s", │ │ │ + (T (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & ) ) &BVH_Tools::PointTriangleSquareDistance, │ │ │ + R"#(Computes square distance between point and triangle)#" ,py::arg("thePoint"), py::arg("theNode0"), py::arg("theNode1"), py::arg("theNode2")) │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ + (Standard_Boolean (*)( const BVH_Ray & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ + (Standard_Boolean (*)( const BVH_Ray & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRay"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ + (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const BVH_Box & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBox"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ + .def_static("RayBoxIntersection_s", │ │ │ + (Standard_Boolean (*)( const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , const typename BVH_Tools::BVH_VecNt & , T & , T & ) ) &BVH_Tools::RayBoxIntersection, │ │ │ + R"#(Computes hit time of ray-box intersection)#" ,py::arg("theRayOrigin"), py::arg("theRayDirection"), py::arg("theBoxCMin"), py::arg("theBoxCMax"), py::arg("theTimeEnter"), py::arg("theTimeLeave")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_BVH_Set(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Set of abstract entities (bounded by BVH boxes). This is the minimal geometry interface needed to construct BVH.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_BVH_Set(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("Accept", │ │ │ - (Standard_Boolean (PointTriangulationSquareDistance::*)( const Standard_Integer , const T & ) ) &PointTriangulationSquareDistance::Accept, │ │ │ - R"#()#" ,py::arg("theIndex"), py::arg("arg")) │ │ │ + .def("Box", │ │ │ + (BVH_Box (BVH_Set::*)() const) &BVH_Set::Box, │ │ │ + R"#(Returns AABB of the entire set of objects.)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (BVH_Set::*)() const) &BVH_Set::Size, │ │ │ + R"#(Returns total number of objects.)#" ) │ │ │ + .def("Box", │ │ │ + (BVH_Box (BVH_Set::*)( const Standard_Integer ) const) &BVH_Set::Box, │ │ │ + R"#(Returns AABB of the given object.)#" ,py::arg("theIndex")) │ │ │ + .def("Center", │ │ │ + (T (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) const) &BVH_Set::Center, │ │ │ + R"#(Returns centroid position along the given axis.)#" ,py::arg("theIndex"), py::arg("theAxis")) │ │ │ + .def("Swap", │ │ │ + (void (BVH_Set::*)( const Standard_Integer , const Standard_Integer ) ) &BVH_Set::Swap, │ │ │ + R"#(Performs transposing the two given objects in the set.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("__len__",[](const BVH_Set &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_PointGeometrySquareDistance(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +void preregister_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Tool object to sort abstract primitive set.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_PointGeometrySquareDistance(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ +void register_template_BVH_Sorter(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def("Accept", │ │ │ - (Standard_Boolean (PointGeometrySquareDistance::*)( const Standard_Integer , const T & ) ) &PointGeometrySquareDistance::Accept, │ │ │ - R"#()#" ,py::arg("theIndex"), py::arg("arg")) │ │ │ + .def("Perform", │ │ │ + (void (BVH_Sorter::*)( BVH_Set * ) ) &BVH_Sorter::Perform, │ │ │ + R"#(Sorts the set.)#" ,py::arg("theSet")) │ │ │ + .def("Perform", │ │ │ + (void (BVH_Sorter::*)( BVH_Set * , const Standard_Integer , const Standard_Integer ) ) &BVH_Sorter::Perform, │ │ │ + R"#(Sorts the given (inclusive) range in the set.)#" ,py::arg("theSet"), py::arg("theStart"), py::arg("theFinal")) │ │ │ + .def("IsParallel", │ │ │ + (Standard_Boolean (BVH_Sorter::*)() const) &BVH_Sorter::IsParallel, │ │ │ + R"#(Returns parallel flag.)#" ) │ │ │ + .def("SetParallel", │ │ │ + (void (BVH_Sorter::*)( const Standard_Boolean ) ) &BVH_Sorter::SetParallel, │ │ │ + R"#(Set parallel flag controlling possibility of parallel execution.)#" ,py::arg("isParallel")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ │ │ │ // user-defined post │ │ ├── ./usr/share/libocp/OCP/BinTools_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -63,14 +63,22 @@ │ │ │ py::module m = main_module.def_submodule("BinTools", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "BinTools_FormatVersion",R"#(Defined BinTools format version)#") │ │ │ + .value("BinTools_FormatVersion_VERSION_1",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_1) │ │ │ + .value("BinTools_FormatVersion_VERSION_2",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_2) │ │ │ + .value("BinTools_FormatVersion_VERSION_3",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_3) │ │ │ + .value("BinTools_FormatVersion_VERSION_4",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_4) │ │ │ + .value("BinTools_FormatVersion_CURRENT",BinTools_FormatVersion::BinTools_FormatVersion_CURRENT).export_values(); │ │ │ + m.attr("BinTools_FormatVersion_LOWER") = py::cast(int(BinTools_FormatVersion_LOWER)); │ │ │ + m.attr("BinTools_FormatVersion_UPPER") = py::cast(int(BinTools_FormatVersion_UPPER)); │ │ │ py::enum_(m, "BinTools_ObjectType",R"#(Enumeration defining objects identifiers in the shape read/write format.)#") │ │ │ .value("BinTools_ObjectType_Unknown",BinTools_ObjectType::BinTools_ObjectType_Unknown) │ │ │ .value("BinTools_ObjectType_Reference8",BinTools_ObjectType::BinTools_ObjectType_Reference8) │ │ │ .value("BinTools_ObjectType_Reference16",BinTools_ObjectType::BinTools_ObjectType_Reference16) │ │ │ .value("BinTools_ObjectType_Reference32",BinTools_ObjectType::BinTools_ObjectType_Reference32) │ │ │ .value("BinTools_ObjectType_Reference64",BinTools_ObjectType::BinTools_ObjectType_Reference64) │ │ │ .value("BinTools_ObjectType_Location",BinTools_ObjectType::BinTools_ObjectType_Location) │ │ │ @@ -87,22 +95,14 @@ │ │ │ .value("BinTools_ObjectType_EmptyPolygon3d",BinTools_ObjectType::BinTools_ObjectType_EmptyPolygon3d) │ │ │ .value("BinTools_ObjectType_PolygonOnTriangulation",BinTools_ObjectType::BinTools_ObjectType_PolygonOnTriangulation) │ │ │ .value("BinTools_ObjectType_EmptyPolygonOnTriangulation",BinTools_ObjectType::BinTools_ObjectType_EmptyPolygonOnTriangulation) │ │ │ .value("BinTools_ObjectType_Triangulation",BinTools_ObjectType::BinTools_ObjectType_Triangulation) │ │ │ .value("BinTools_ObjectType_EmptyTriangulation",BinTools_ObjectType::BinTools_ObjectType_EmptyTriangulation) │ │ │ .value("BinTools_ObjectType_EmptyShape",BinTools_ObjectType::BinTools_ObjectType_EmptyShape) │ │ │ .value("BinTools_ObjectType_EndShape",BinTools_ObjectType::BinTools_ObjectType_EndShape).export_values(); │ │ │ - py::enum_(m, "BinTools_FormatVersion",R"#(Defined BinTools format version)#") │ │ │ - .value("BinTools_FormatVersion_VERSION_1",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_1) │ │ │ - .value("BinTools_FormatVersion_VERSION_2",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_2) │ │ │ - .value("BinTools_FormatVersion_VERSION_3",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_3) │ │ │ - .value("BinTools_FormatVersion_VERSION_4",BinTools_FormatVersion::BinTools_FormatVersion_VERSION_4) │ │ │ - .value("BinTools_FormatVersion_CURRENT",BinTools_FormatVersion::BinTools_FormatVersion_CURRENT).export_values(); │ │ │ - m.attr("BinTools_FormatVersion_LOWER") = py::cast(int(BinTools_FormatVersion_LOWER)); │ │ │ - m.attr("BinTools_FormatVersion_UPPER") = py::cast(int(BinTools_FormatVersion_UPPER)); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"BinTools",R"#(Tool to keep shapes in binary format)#"); │ │ │ py::class_ >(m,"BinTools_Curve2dSet",R"#(Stores a set of Curves from Geom2d in binary format)#"); │ │ │ py::class_ >(m,"BinTools_CurveSet",R"#(Stores a set of Curves from Geom in binary format.)#"); │ │ ├── ./usr/share/libocp/OCP/Blend_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -52,28 +52,28 @@ │ │ │ py::module m = main_module.def_submodule("Blend", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "Blend_DecrochStatus",R"#()#") │ │ │ + .value("Blend_NoDecroch",Blend_DecrochStatus::Blend_NoDecroch) │ │ │ + .value("Blend_DecrochRst1",Blend_DecrochStatus::Blend_DecrochRst1) │ │ │ + .value("Blend_DecrochRst2",Blend_DecrochStatus::Blend_DecrochRst2) │ │ │ + .value("Blend_DecrochBoth",Blend_DecrochStatus::Blend_DecrochBoth).export_values(); │ │ │ py::enum_(m, "Blend_Status",R"#()#") │ │ │ .value("Blend_StepTooLarge",Blend_Status::Blend_StepTooLarge) │ │ │ .value("Blend_StepTooSmall",Blend_Status::Blend_StepTooSmall) │ │ │ .value("Blend_Backward",Blend_Status::Blend_Backward) │ │ │ .value("Blend_SamePoints",Blend_Status::Blend_SamePoints) │ │ │ .value("Blend_OnRst1",Blend_Status::Blend_OnRst1) │ │ │ .value("Blend_OnRst2",Blend_Status::Blend_OnRst2) │ │ │ .value("Blend_OnRst12",Blend_Status::Blend_OnRst12) │ │ │ .value("Blend_OK",Blend_Status::Blend_OK).export_values(); │ │ │ - py::enum_(m, "Blend_DecrochStatus",R"#()#") │ │ │ - .value("Blend_NoDecroch",Blend_DecrochStatus::Blend_NoDecroch) │ │ │ - .value("Blend_DecrochRst1",Blend_DecrochStatus::Blend_DecrochRst1) │ │ │ - .value("Blend_DecrochRst2",Blend_DecrochStatus::Blend_DecrochRst2) │ │ │ - .value("Blend_DecrochBoth",Blend_DecrochStatus::Blend_DecrochBoth).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Blend_AppFunction : public Blend_AppFunction{ │ │ │ public: │ │ │ using Blend_AppFunction::Blend_AppFunction; │ │ ├── ./usr/share/libocp/OCP/CDF_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -62,32 +62,32 @@ │ │ │ py::module m = main_module.def_submodule("CDF", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "CDF_TryStoreStatus",R"#()#") │ │ │ - .value("CDF_TS_OK",CDF_TryStoreStatus::CDF_TS_OK) │ │ │ - .value("CDF_TS_NoCurrentDocument",CDF_TryStoreStatus::CDF_TS_NoCurrentDocument) │ │ │ - .value("CDF_TS_NoDriver",CDF_TryStoreStatus::CDF_TS_NoDriver) │ │ │ - .value("CDF_TS_NoSubComponentDriver",CDF_TryStoreStatus::CDF_TS_NoSubComponentDriver).export_values(); │ │ │ - py::enum_(m, "CDF_StoreSetNameStatus",R"#()#") │ │ │ - .value("CDF_SSNS_OK",CDF_StoreSetNameStatus::CDF_SSNS_OK) │ │ │ - .value("CDF_SSNS_ReplacingAnExistentDocument",CDF_StoreSetNameStatus::CDF_SSNS_ReplacingAnExistentDocument) │ │ │ - .value("CDF_SSNS_OpenDocument",CDF_StoreSetNameStatus::CDF_SSNS_OpenDocument).export_values(); │ │ │ py::enum_(m, "CDF_TypeOfActivation",R"#()#") │ │ │ .value("CDF_TOA_New",CDF_TypeOfActivation::CDF_TOA_New) │ │ │ .value("CDF_TOA_Modified",CDF_TypeOfActivation::CDF_TOA_Modified) │ │ │ .value("CDF_TOA_Unchanged",CDF_TypeOfActivation::CDF_TOA_Unchanged).export_values(); │ │ │ py::enum_(m, "CDF_SubComponentStatus",R"#()#") │ │ │ .value("CDF_SCS_Consistent",CDF_SubComponentStatus::CDF_SCS_Consistent) │ │ │ .value("CDF_SCS_Unconsistent",CDF_SubComponentStatus::CDF_SCS_Unconsistent) │ │ │ .value("CDF_SCS_Stored",CDF_SubComponentStatus::CDF_SCS_Stored) │ │ │ .value("CDF_SCS_Modified",CDF_SubComponentStatus::CDF_SCS_Modified).export_values(); │ │ │ + py::enum_(m, "CDF_TryStoreStatus",R"#()#") │ │ │ + .value("CDF_TS_OK",CDF_TryStoreStatus::CDF_TS_OK) │ │ │ + .value("CDF_TS_NoCurrentDocument",CDF_TryStoreStatus::CDF_TS_NoCurrentDocument) │ │ │ + .value("CDF_TS_NoDriver",CDF_TryStoreStatus::CDF_TS_NoDriver) │ │ │ + .value("CDF_TS_NoSubComponentDriver",CDF_TryStoreStatus::CDF_TS_NoSubComponentDriver).export_values(); │ │ │ + py::enum_(m, "CDF_StoreSetNameStatus",R"#()#") │ │ │ + .value("CDF_SSNS_OK",CDF_StoreSetNameStatus::CDF_SSNS_OK) │ │ │ + .value("CDF_SSNS_ReplacingAnExistentDocument",CDF_StoreSetNameStatus::CDF_SSNS_ReplacingAnExistentDocument) │ │ │ + .value("CDF_SSNS_OpenDocument",CDF_StoreSetNameStatus::CDF_SSNS_OpenDocument).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_CDF_Application : public CDF_Application{ │ │ │ public: │ │ │ using CDF_Application::CDF_Application; │ │ ├── ./usr/share/libocp/OCP/ChFiDS_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -85,43 +85,43 @@ │ │ │ py::module m = main_module.def_submodule("ChFiDS", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "ChFiDS_ChamfMode",R"#(this enumeration defines several modes of chamfer)#") │ │ │ - .value("ChFiDS_ClassicChamfer",ChFiDS_ChamfMode::ChFiDS_ClassicChamfer) │ │ │ - .value("ChFiDS_ConstThroatChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatChamfer) │ │ │ - .value("ChFiDS_ConstThroatWithPenetrationChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatWithPenetrationChamfer).export_values(); │ │ │ - py::enum_(m, "ChFiDS_State",R"#(This enum describe the different kinds of extremities of a fillet. OnSame, Ondiff and AllSame are particular cases of BreakPoint for a corner with 3 edges and three faces : - AllSame means that the three concavities are on the same side of the Shape, - OnDiff means that the edge of the fillet has a concave side different than the two other edges, - OnSame means that the edge of the fillet has a concave side different than one of the two other edges and identical to the third edge.)#") │ │ │ - .value("ChFiDS_OnSame",ChFiDS_State::ChFiDS_OnSame) │ │ │ - .value("ChFiDS_OnDiff",ChFiDS_State::ChFiDS_OnDiff) │ │ │ - .value("ChFiDS_AllSame",ChFiDS_State::ChFiDS_AllSame) │ │ │ - .value("ChFiDS_BreakPoint",ChFiDS_State::ChFiDS_BreakPoint) │ │ │ - .value("ChFiDS_FreeBoundary",ChFiDS_State::ChFiDS_FreeBoundary) │ │ │ - .value("ChFiDS_Closed",ChFiDS_State::ChFiDS_Closed) │ │ │ - .value("ChFiDS_Tangent",ChFiDS_State::ChFiDS_Tangent).export_values(); │ │ │ - py::enum_(m, "ChFiDS_ChamfMethod",R"#()#") │ │ │ - .value("ChFiDS_Sym",ChFiDS_ChamfMethod::ChFiDS_Sym) │ │ │ - .value("ChFiDS_TwoDist",ChFiDS_ChamfMethod::ChFiDS_TwoDist) │ │ │ - .value("ChFiDS_DistAngle",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values(); │ │ │ py::enum_(m, "ChFiDS_ErrorStatus",R"#(--- Purpose statuts concernant la cause de l'erreur)#") │ │ │ .value("ChFiDS_Ok",ChFiDS_ErrorStatus::ChFiDS_Ok) │ │ │ .value("ChFiDS_Error",ChFiDS_ErrorStatus::ChFiDS_Error) │ │ │ .value("ChFiDS_WalkingFailure",ChFiDS_ErrorStatus::ChFiDS_WalkingFailure) │ │ │ .value("ChFiDS_StartsolFailure",ChFiDS_ErrorStatus::ChFiDS_StartsolFailure) │ │ │ .value("ChFiDS_TwistedSurface",ChFiDS_ErrorStatus::ChFiDS_TwistedSurface).export_values(); │ │ │ py::enum_(m, "ChFiDS_TypeOfConcavity",R"#()#") │ │ │ .value("ChFiDS_Concave",ChFiDS_TypeOfConcavity::ChFiDS_Concave) │ │ │ .value("ChFiDS_Convex",ChFiDS_TypeOfConcavity::ChFiDS_Convex) │ │ │ .value("ChFiDS_Tangential",ChFiDS_TypeOfConcavity::ChFiDS_Tangential) │ │ │ .value("ChFiDS_FreeBound",ChFiDS_TypeOfConcavity::ChFiDS_FreeBound) │ │ │ .value("ChFiDS_Other",ChFiDS_TypeOfConcavity::ChFiDS_Other) │ │ │ .value("ChFiDS_Mixed",ChFiDS_TypeOfConcavity::ChFiDS_Mixed).export_values(); │ │ │ + py::enum_(m, "ChFiDS_ChamfMethod",R"#()#") │ │ │ + .value("ChFiDS_Sym",ChFiDS_ChamfMethod::ChFiDS_Sym) │ │ │ + .value("ChFiDS_TwoDist",ChFiDS_ChamfMethod::ChFiDS_TwoDist) │ │ │ + .value("ChFiDS_DistAngle",ChFiDS_ChamfMethod::ChFiDS_DistAngle).export_values(); │ │ │ + py::enum_(m, "ChFiDS_ChamfMode",R"#(this enumeration defines several modes of chamfer)#") │ │ │ + .value("ChFiDS_ClassicChamfer",ChFiDS_ChamfMode::ChFiDS_ClassicChamfer) │ │ │ + .value("ChFiDS_ConstThroatChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatChamfer) │ │ │ + .value("ChFiDS_ConstThroatWithPenetrationChamfer",ChFiDS_ChamfMode::ChFiDS_ConstThroatWithPenetrationChamfer).export_values(); │ │ │ + py::enum_(m, "ChFiDS_State",R"#(This enum describe the different kinds of extremities of a fillet. OnSame, Ondiff and AllSame are particular cases of BreakPoint for a corner with 3 edges and three faces : - AllSame means that the three concavities are on the same side of the Shape, - OnDiff means that the edge of the fillet has a concave side different than the two other edges, - OnSame means that the edge of the fillet has a concave side different than one of the two other edges and identical to the third edge.)#") │ │ │ + .value("ChFiDS_OnSame",ChFiDS_State::ChFiDS_OnSame) │ │ │ + .value("ChFiDS_OnDiff",ChFiDS_State::ChFiDS_OnDiff) │ │ │ + .value("ChFiDS_AllSame",ChFiDS_State::ChFiDS_AllSame) │ │ │ + .value("ChFiDS_BreakPoint",ChFiDS_State::ChFiDS_BreakPoint) │ │ │ + .value("ChFiDS_FreeBoundary",ChFiDS_State::ChFiDS_FreeBoundary) │ │ │ + .value("ChFiDS_Closed",ChFiDS_State::ChFiDS_Closed) │ │ │ + .value("ChFiDS_Tangent",ChFiDS_State::ChFiDS_Tangent).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"ChFiDS_CircSection",R"#(A Section of fillet.)#"); │ │ │ py::class_ >(m,"ChFiDS_CommonPoint",R"#(point start/end of fillet common to 2 adjacent filets and to an edge on one of 2 faces participating in the construction of the fillet)#"); │ │ │ py::class_ >(m,"ChFiDS_FaceInterference",R"#(interference face/fillet)#"); │ │ ├── ./usr/share/libocp/OCP/Contap_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -85,24 +85,24 @@ │ │ │ py::module m = main_module.def_submodule("Contap", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Contap_TFunction",R"#()#") │ │ │ - .value("Contap_ContourStd",Contap_TFunction::Contap_ContourStd) │ │ │ - .value("Contap_ContourPrs",Contap_TFunction::Contap_ContourPrs) │ │ │ - .value("Contap_DraftStd",Contap_TFunction::Contap_DraftStd) │ │ │ - .value("Contap_DraftPrs",Contap_TFunction::Contap_DraftPrs).export_values(); │ │ │ py::enum_(m, "Contap_IType",R"#()#") │ │ │ .value("Contap_Lin",Contap_IType::Contap_Lin) │ │ │ .value("Contap_Circle",Contap_IType::Contap_Circle) │ │ │ .value("Contap_Walking",Contap_IType::Contap_Walking) │ │ │ .value("Contap_Restriction",Contap_IType::Contap_Restriction).export_values(); │ │ │ + py::enum_(m, "Contap_TFunction",R"#()#") │ │ │ + .value("Contap_ContourStd",Contap_TFunction::Contap_ContourStd) │ │ │ + .value("Contap_ContourPrs",Contap_TFunction::Contap_ContourPrs) │ │ │ + .value("Contap_DraftStd",Contap_TFunction::Contap_DraftStd) │ │ │ + .value("Contap_DraftPrs",Contap_TFunction::Contap_DraftPrs).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"Contap_ContAna",R"#(This class provides the computation of the contours for quadric surfaces.)#"); │ │ │ py::class_ >(m,"Contap_Contour",R"#()#"); │ │ │ py::class_ >(m,"Contap_HContTool",R"#(Tool for the intersection between 2 surfaces. Regroupe pour l instant les methodes hors Adaptor3d...)#"); │ │ ├── ./usr/share/libocp/OCP/Extrema_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -265,26 +265,26 @@ │ │ │ py::module m = main_module.def_submodule("Extrema", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "Extrema_ExtFlag",R"#()#") │ │ │ + .value("Extrema_ExtFlag_MIN",Extrema_ExtFlag::Extrema_ExtFlag_MIN) │ │ │ + .value("Extrema_ExtFlag_MAX",Extrema_ExtFlag::Extrema_ExtFlag_MAX) │ │ │ + .value("Extrema_ExtFlag_MINMAX",Extrema_ExtFlag::Extrema_ExtFlag_MINMAX).export_values(); │ │ │ py::enum_(m, "Extrema_ExtAlgo",R"#()#") │ │ │ .value("Extrema_ExtAlgo_Grad",Extrema_ExtAlgo::Extrema_ExtAlgo_Grad) │ │ │ .value("Extrema_ExtAlgo_Tree",Extrema_ExtAlgo::Extrema_ExtAlgo_Tree).export_values(); │ │ │ py::enum_(m, "Extrema_ElementType",R"#()#") │ │ │ .value("Extrema_Node",Extrema_ElementType::Extrema_Node) │ │ │ .value("Extrema_UIsoEdge",Extrema_ElementType::Extrema_UIsoEdge) │ │ │ .value("Extrema_VIsoEdge",Extrema_ElementType::Extrema_VIsoEdge) │ │ │ .value("Extrema_Face",Extrema_ElementType::Extrema_Face).export_values(); │ │ │ - py::enum_(m, "Extrema_ExtFlag",R"#()#") │ │ │ - .value("Extrema_ExtFlag_MIN",Extrema_ExtFlag::Extrema_ExtFlag_MIN) │ │ │ - .value("Extrema_ExtFlag_MAX",Extrema_ExtFlag::Extrema_ExtFlag_MAX) │ │ │ - .value("Extrema_ExtFlag_MINMAX",Extrema_ExtFlag::Extrema_ExtFlag_MINMAX).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"Extrema_Curve2dTool",R"#()#"); │ │ │ py::class_ >(m,"Extrema_CurveTool",R"#()#"); │ │ │ py::class_ >(m,"Extrema_ECC",R"#()#"); │ │ ├── ./usr/share/libocp/OCP/Font_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -57,24 +57,24 @@ │ │ │ // enums │ │ │ py::enum_(m, "Font_UnicodeSubset",R"#(Enumeration defining Unicode subsets.)#") │ │ │ .value("Font_UnicodeSubset_Western",Font_UnicodeSubset::Font_UnicodeSubset_Western) │ │ │ .value("Font_UnicodeSubset_Korean",Font_UnicodeSubset::Font_UnicodeSubset_Korean) │ │ │ .value("Font_UnicodeSubset_CJK",Font_UnicodeSubset::Font_UnicodeSubset_CJK) │ │ │ .value("Font_UnicodeSubset_Arabic",Font_UnicodeSubset::Font_UnicodeSubset_Arabic).export_values(); │ │ │ m.attr("Font_UnicodeSubset_NB") = py::cast(int(Font_UnicodeSubset_NB)); │ │ │ - py::enum_(m, "Font_StrictLevel",R"#(Enumeration defining font search restrictions.)#") │ │ │ - .value("Font_StrictLevel_Strict",Font_StrictLevel::Font_StrictLevel_Strict) │ │ │ - .value("Font_StrictLevel_Aliases",Font_StrictLevel::Font_StrictLevel_Aliases) │ │ │ - .value("Font_StrictLevel_Any",Font_StrictLevel::Font_StrictLevel_Any).export_values(); │ │ │ py::enum_(m, "Font_Hinting",R"#(Enumeration defining font hinting options.)#") │ │ │ .value("Font_Hinting_Off",Font_Hinting::Font_Hinting_Off) │ │ │ .value("Font_Hinting_Normal",Font_Hinting::Font_Hinting_Normal) │ │ │ .value("Font_Hinting_Light",Font_Hinting::Font_Hinting_Light) │ │ │ .value("Font_Hinting_ForceAutohint",Font_Hinting::Font_Hinting_ForceAutohint) │ │ │ .value("Font_Hinting_NoAutohint",Font_Hinting::Font_Hinting_NoAutohint).export_values(); │ │ │ + py::enum_(m, "Font_StrictLevel",R"#(Enumeration defining font search restrictions.)#") │ │ │ + .value("Font_StrictLevel_Strict",Font_StrictLevel::Font_StrictLevel_Strict) │ │ │ + .value("Font_StrictLevel_Aliases",Font_StrictLevel::Font_StrictLevel_Aliases) │ │ │ + .value("Font_StrictLevel_Any",Font_StrictLevel::Font_StrictLevel_Any).export_values(); │ │ │ py::enum_(m, "Font_FontAspect",R"#(Specifies aspect of system font.)#") │ │ │ .value("Font_FontAspect_UNDEFINED",Font_FontAspect::Font_FontAspect_UNDEFINED) │ │ │ .value("Font_FontAspect_Regular",Font_FontAspect::Font_FontAspect_Regular) │ │ │ .value("Font_FontAspect_Bold",Font_FontAspect::Font_FontAspect_Bold) │ │ │ .value("Font_FontAspect_Italic",Font_FontAspect::Font_FontAspect_Italic) │ │ │ .value("Font_FontAspect_BoldItalic",Font_FontAspect::Font_FontAspect_BoldItalic) │ │ │ .value("Font_FA_Undefined",Font_FontAspect::Font_FA_Undefined) │ │ ├── ./usr/share/libocp/OCP/Geom2dGcc_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -112,21 +112,14 @@ │ │ │ py::module m = main_module.def_submodule("Geom2dGcc", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Geom2dGcc_Type1",R"#()#") │ │ │ - .value("Geom2dGcc_CuCuCu",Geom2dGcc_Type1::Geom2dGcc_CuCuCu) │ │ │ - .value("Geom2dGcc_CiCuCu",Geom2dGcc_Type1::Geom2dGcc_CiCuCu) │ │ │ - .value("Geom2dGcc_CiCiCu",Geom2dGcc_Type1::Geom2dGcc_CiCiCu) │ │ │ - .value("Geom2dGcc_CiLiCu",Geom2dGcc_Type1::Geom2dGcc_CiLiCu) │ │ │ - .value("Geom2dGcc_LiLiCu",Geom2dGcc_Type1::Geom2dGcc_LiLiCu) │ │ │ - .value("Geom2dGcc_LiCuCu",Geom2dGcc_Type1::Geom2dGcc_LiCuCu).export_values(); │ │ │ py::enum_(m, "Geom2dGcc_Type2",R"#()#") │ │ │ .value("Geom2dGcc_CuCuOnCu",Geom2dGcc_Type2::Geom2dGcc_CuCuOnCu) │ │ │ .value("Geom2dGcc_CiCuOnCu",Geom2dGcc_Type2::Geom2dGcc_CiCuOnCu) │ │ │ .value("Geom2dGcc_LiCuOnCu",Geom2dGcc_Type2::Geom2dGcc_LiCuOnCu) │ │ │ .value("Geom2dGcc_CuPtOnCu",Geom2dGcc_Type2::Geom2dGcc_CuPtOnCu) │ │ │ .value("Geom2dGcc_CuCuOnLi",Geom2dGcc_Type2::Geom2dGcc_CuCuOnLi) │ │ │ .value("Geom2dGcc_CiCuOnLi",Geom2dGcc_Type2::Geom2dGcc_CiCuOnLi) │ │ │ @@ -135,14 +128,21 @@ │ │ │ .value("Geom2dGcc_CuCuOnCi",Geom2dGcc_Type2::Geom2dGcc_CuCuOnCi) │ │ │ .value("Geom2dGcc_CiCuOnCi",Geom2dGcc_Type2::Geom2dGcc_CiCuOnCi) │ │ │ .value("Geom2dGcc_LiCuOnCi",Geom2dGcc_Type2::Geom2dGcc_LiCuOnCi) │ │ │ .value("Geom2dGcc_CuPtOnCi",Geom2dGcc_Type2::Geom2dGcc_CuPtOnCi).export_values(); │ │ │ py::enum_(m, "Geom2dGcc_Type3",R"#()#") │ │ │ .value("Geom2dGcc_CuCu",Geom2dGcc_Type3::Geom2dGcc_CuCu) │ │ │ .value("Geom2dGcc_CiCu",Geom2dGcc_Type3::Geom2dGcc_CiCu).export_values(); │ │ │ + py::enum_(m, "Geom2dGcc_Type1",R"#()#") │ │ │ + .value("Geom2dGcc_CuCuCu",Geom2dGcc_Type1::Geom2dGcc_CuCuCu) │ │ │ + .value("Geom2dGcc_CiCuCu",Geom2dGcc_Type1::Geom2dGcc_CiCuCu) │ │ │ + .value("Geom2dGcc_CiCiCu",Geom2dGcc_Type1::Geom2dGcc_CiCiCu) │ │ │ + .value("Geom2dGcc_CiLiCu",Geom2dGcc_Type1::Geom2dGcc_CiLiCu) │ │ │ + .value("Geom2dGcc_LiLiCu",Geom2dGcc_Type1::Geom2dGcc_LiLiCu) │ │ │ + .value("Geom2dGcc_LiCuCu",Geom2dGcc_Type1::Geom2dGcc_LiCuCu).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ 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.)#"); │ │ │ 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.)#"); │ │ │ 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.)#"); │ │ ├── ./usr/share/libocp/OCP/GeomAbs_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -36,53 +36,53 @@ │ │ │ py::module m = main_module.def_submodule("GeomAbs", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "GeomAbs_CurveType",R"#(Identifies the type of a curve.)#") │ │ │ + .value("GeomAbs_Line",GeomAbs_CurveType::GeomAbs_Line) │ │ │ + .value("GeomAbs_Circle",GeomAbs_CurveType::GeomAbs_Circle) │ │ │ + .value("GeomAbs_Ellipse",GeomAbs_CurveType::GeomAbs_Ellipse) │ │ │ + .value("GeomAbs_Hyperbola",GeomAbs_CurveType::GeomAbs_Hyperbola) │ │ │ + .value("GeomAbs_Parabola",GeomAbs_CurveType::GeomAbs_Parabola) │ │ │ + .value("GeomAbs_BezierCurve",GeomAbs_CurveType::GeomAbs_BezierCurve) │ │ │ + .value("GeomAbs_BSplineCurve",GeomAbs_CurveType::GeomAbs_BSplineCurve) │ │ │ + .value("GeomAbs_OffsetCurve",GeomAbs_CurveType::GeomAbs_OffsetCurve) │ │ │ + .value("GeomAbs_OtherCurve",GeomAbs_CurveType::GeomAbs_OtherCurve).export_values(); │ │ │ + py::enum_(m, "GeomAbs_IsoType",R"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#") │ │ │ + .value("GeomAbs_IsoU",GeomAbs_IsoType::GeomAbs_IsoU) │ │ │ + .value("GeomAbs_IsoV",GeomAbs_IsoType::GeomAbs_IsoV) │ │ │ + .value("GeomAbs_NoneIso",GeomAbs_IsoType::GeomAbs_NoneIso).export_values(); │ │ │ + py::enum_(m, "GeomAbs_BSplKnotDistribution",R"#(This enumeration is used in the classes BSplineCurve and BSplineSurface to describe the repartition of set of knots. (comments in classes BSplineCurve and BSplineSurface))#") │ │ │ + .value("GeomAbs_NonUniform",GeomAbs_BSplKnotDistribution::GeomAbs_NonUniform) │ │ │ + .value("GeomAbs_Uniform",GeomAbs_BSplKnotDistribution::GeomAbs_Uniform) │ │ │ + .value("GeomAbs_QuasiUniform",GeomAbs_BSplKnotDistribution::GeomAbs_QuasiUniform) │ │ │ + .value("GeomAbs_PiecewiseBezier",GeomAbs_BSplKnotDistribution::GeomAbs_PiecewiseBezier).export_values(); │ │ │ py::enum_(m, "GeomAbs_SurfaceType",R"#()#") │ │ │ .value("GeomAbs_Plane",GeomAbs_SurfaceType::GeomAbs_Plane) │ │ │ .value("GeomAbs_Cylinder",GeomAbs_SurfaceType::GeomAbs_Cylinder) │ │ │ .value("GeomAbs_Cone",GeomAbs_SurfaceType::GeomAbs_Cone) │ │ │ .value("GeomAbs_Sphere",GeomAbs_SurfaceType::GeomAbs_Sphere) │ │ │ .value("GeomAbs_Torus",GeomAbs_SurfaceType::GeomAbs_Torus) │ │ │ .value("GeomAbs_BezierSurface",GeomAbs_SurfaceType::GeomAbs_BezierSurface) │ │ │ .value("GeomAbs_BSplineSurface",GeomAbs_SurfaceType::GeomAbs_BSplineSurface) │ │ │ .value("GeomAbs_SurfaceOfRevolution",GeomAbs_SurfaceType::GeomAbs_SurfaceOfRevolution) │ │ │ .value("GeomAbs_SurfaceOfExtrusion",GeomAbs_SurfaceType::GeomAbs_SurfaceOfExtrusion) │ │ │ .value("GeomAbs_OffsetSurface",GeomAbs_SurfaceType::GeomAbs_OffsetSurface) │ │ │ .value("GeomAbs_OtherSurface",GeomAbs_SurfaceType::GeomAbs_OtherSurface).export_values(); │ │ │ - py::enum_(m, "GeomAbs_CurveType",R"#(Identifies the type of a curve.)#") │ │ │ - .value("GeomAbs_Line",GeomAbs_CurveType::GeomAbs_Line) │ │ │ - .value("GeomAbs_Circle",GeomAbs_CurveType::GeomAbs_Circle) │ │ │ - .value("GeomAbs_Ellipse",GeomAbs_CurveType::GeomAbs_Ellipse) │ │ │ - .value("GeomAbs_Hyperbola",GeomAbs_CurveType::GeomAbs_Hyperbola) │ │ │ - .value("GeomAbs_Parabola",GeomAbs_CurveType::GeomAbs_Parabola) │ │ │ - .value("GeomAbs_BezierCurve",GeomAbs_CurveType::GeomAbs_BezierCurve) │ │ │ - .value("GeomAbs_BSplineCurve",GeomAbs_CurveType::GeomAbs_BSplineCurve) │ │ │ - .value("GeomAbs_OffsetCurve",GeomAbs_CurveType::GeomAbs_OffsetCurve) │ │ │ - .value("GeomAbs_OtherCurve",GeomAbs_CurveType::GeomAbs_OtherCurve).export_values(); │ │ │ py::enum_(m, "GeomAbs_Shape",R"#(Provides information about the continuity of a curve: - C0: only geometric continuity. - G1: for each point on the curve, the tangent vectors "on the right" and "on the left" are collinear with the same orientation. - C1: continuity of the first derivative. The "C1" curve is also "G1" but, in addition, the tangent vectors " on the right" and "on the left" are equal. - G2: for each point on the curve, the normalized normal vectors "on the right" and "on the left" are equal. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of the N-th derivative, whatever is the value given for N (infinite order of continuity). Also provides information about the continuity of a surface: - C0: only geometric continuity. - C1: continuity of the first derivatives; any isoparametric (in U or V) of a surface "C1" is also "C1". - G2: for BSpline curves only; "on the right" and "on the left" of a knot the computation of the "main curvature radii" and the "main directions" (when they exist) gives the same result. - C2: continuity of the second derivative. - C3: continuity of the third derivative. - CN: continuity of any N-th derivative, whatever is the value given for N (infinite order of continuity). We may also say that a surface is "Ci" in u, and "Cj" in v to indicate the continuity of its derivatives up to the order i in the u parametric direction, and j in the v parametric direction.)#") │ │ │ .value("GeomAbs_C0",GeomAbs_Shape::GeomAbs_C0) │ │ │ .value("GeomAbs_G1",GeomAbs_Shape::GeomAbs_G1) │ │ │ .value("GeomAbs_C1",GeomAbs_Shape::GeomAbs_C1) │ │ │ .value("GeomAbs_G2",GeomAbs_Shape::GeomAbs_G2) │ │ │ .value("GeomAbs_C2",GeomAbs_Shape::GeomAbs_C2) │ │ │ .value("GeomAbs_C3",GeomAbs_Shape::GeomAbs_C3) │ │ │ .value("GeomAbs_CN",GeomAbs_Shape::GeomAbs_CN).export_values(); │ │ │ - py::enum_(m, "GeomAbs_IsoType",R"#(this enumeration describes if a curve is an U isoparaetric or V isoparametric)#") │ │ │ - .value("GeomAbs_IsoU",GeomAbs_IsoType::GeomAbs_IsoU) │ │ │ - .value("GeomAbs_IsoV",GeomAbs_IsoType::GeomAbs_IsoV) │ │ │ - .value("GeomAbs_NoneIso",GeomAbs_IsoType::GeomAbs_NoneIso).export_values(); │ │ │ - py::enum_(m, "GeomAbs_BSplKnotDistribution",R"#(This enumeration is used in the classes BSplineCurve and BSplineSurface to describe the repartition of set of knots. (comments in classes BSplineCurve and BSplineSurface))#") │ │ │ - .value("GeomAbs_NonUniform",GeomAbs_BSplKnotDistribution::GeomAbs_NonUniform) │ │ │ - .value("GeomAbs_Uniform",GeomAbs_BSplKnotDistribution::GeomAbs_Uniform) │ │ │ - .value("GeomAbs_QuasiUniform",GeomAbs_BSplKnotDistribution::GeomAbs_QuasiUniform) │ │ │ - .value("GeomAbs_PiecewiseBezier",GeomAbs_BSplKnotDistribution::GeomAbs_PiecewiseBezier).export_values(); │ │ │ py::enum_(m, "GeomAbs_JoinType",R"#(Characterizes the type of a join, built by an algorithm for constructing parallel curves, between two consecutive arcs of a contour parallel to a given contour.)#") │ │ │ .value("GeomAbs_Arc",GeomAbs_JoinType::GeomAbs_Arc) │ │ │ .value("GeomAbs_Tangent",GeomAbs_JoinType::GeomAbs_Tangent) │ │ │ .value("GeomAbs_Intersection",GeomAbs_JoinType::GeomAbs_Intersection).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ ├── ./usr/share/libocp/OCP/GeomFill_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -173,14 +173,17 @@ │ │ │ py::module m = main_module.def_submodule("GeomFill", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "GeomFill_ApproxStyle",R"#()#") │ │ │ + .value("GeomFill_Section",GeomFill_ApproxStyle::GeomFill_Section) │ │ │ + .value("GeomFill_Location",GeomFill_ApproxStyle::GeomFill_Location).export_values(); │ │ │ py::enum_(m, "GeomFill_FillingStyle",R"#(Defines the three filling styles used in this package - GeomFill_Stretch - the style with the flattest patches - GeomFill_Coons - a rounded style of patch with less depth than those of Curved - GeomFill_Curved - the style with the most rounded patches.)#") │ │ │ .value("GeomFill_StretchStyle",GeomFill_FillingStyle::GeomFill_StretchStyle) │ │ │ .value("GeomFill_CoonsStyle",GeomFill_FillingStyle::GeomFill_CoonsStyle) │ │ │ .value("GeomFill_CurvedStyle",GeomFill_FillingStyle::GeomFill_CurvedStyle).export_values(); │ │ │ py::enum_(m, "GeomFill_Trihedron",R"#()#") │ │ │ .value("GeomFill_IsCorrectedFrenet",GeomFill_Trihedron::GeomFill_IsCorrectedFrenet) │ │ │ .value("GeomFill_IsFixed",GeomFill_Trihedron::GeomFill_IsFixed) │ │ │ @@ -188,17 +191,14 @@ │ │ │ .value("GeomFill_IsConstantNormal",GeomFill_Trihedron::GeomFill_IsConstantNormal) │ │ │ .value("GeomFill_IsDarboux",GeomFill_Trihedron::GeomFill_IsDarboux) │ │ │ .value("GeomFill_IsGuideAC",GeomFill_Trihedron::GeomFill_IsGuideAC) │ │ │ .value("GeomFill_IsGuidePlan",GeomFill_Trihedron::GeomFill_IsGuidePlan) │ │ │ .value("GeomFill_IsGuideACWithContact",GeomFill_Trihedron::GeomFill_IsGuideACWithContact) │ │ │ .value("GeomFill_IsGuidePlanWithContact",GeomFill_Trihedron::GeomFill_IsGuidePlanWithContact) │ │ │ .value("GeomFill_IsDiscreteTrihedron",GeomFill_Trihedron::GeomFill_IsDiscreteTrihedron).export_values(); │ │ │ - py::enum_(m, "GeomFill_ApproxStyle",R"#()#") │ │ │ - .value("GeomFill_Section",GeomFill_ApproxStyle::GeomFill_Section) │ │ │ - .value("GeomFill_Location",GeomFill_ApproxStyle::GeomFill_Location).export_values(); │ │ │ py::enum_(m, "GeomFill_PipeError",R"#()#") │ │ │ .value("GeomFill_PipeOk",GeomFill_PipeError::GeomFill_PipeOk) │ │ │ .value("GeomFill_PipeNotOk",GeomFill_PipeError::GeomFill_PipeNotOk) │ │ │ .value("GeomFill_PlaneNotIntersectGuide",GeomFill_PipeError::GeomFill_PlaneNotIntersectGuide) │ │ │ .value("GeomFill_ImpossibleContact",GeomFill_PipeError::GeomFill_ImpossibleContact).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ ├── ./usr/share/libocp/OCP/Graphic3d_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -284,154 +284,283 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("Graphic3d_TransformUtils"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Graphic3d_TypeOfStructure",R"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#") │ │ │ - .value("Graphic3d_TOS_WIREFRAME",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME) │ │ │ - .value("Graphic3d_TOS_SHADING",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING) │ │ │ - .value("Graphic3d_TOS_COMPUTED",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED) │ │ │ - .value("Graphic3d_TOS_ALL",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfAttribute",R"#(Type of attribute in Vertex Buffer)#") │ │ │ - .value("Graphic3d_TOA_POS",Graphic3d_TypeOfAttribute::Graphic3d_TOA_POS) │ │ │ - .value("Graphic3d_TOA_NORM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_NORM) │ │ │ - .value("Graphic3d_TOA_UV",Graphic3d_TypeOfAttribute::Graphic3d_TOA_UV) │ │ │ - .value("Graphic3d_TOA_COLOR",Graphic3d_TypeOfAttribute::Graphic3d_TOA_COLOR) │ │ │ - .value("Graphic3d_TOA_CUSTOM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_CUSTOM).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfData",R"#(Type of the element in Vertex or Index Buffer)#") │ │ │ - .value("Graphic3d_TOD_USHORT",Graphic3d_TypeOfData::Graphic3d_TOD_USHORT) │ │ │ - .value("Graphic3d_TOD_UINT",Graphic3d_TypeOfData::Graphic3d_TOD_UINT) │ │ │ - .value("Graphic3d_TOD_VEC2",Graphic3d_TypeOfData::Graphic3d_TOD_VEC2) │ │ │ - .value("Graphic3d_TOD_VEC3",Graphic3d_TypeOfData::Graphic3d_TOD_VEC3) │ │ │ - .value("Graphic3d_TOD_VEC4",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4) │ │ │ - .value("Graphic3d_TOD_VEC4UB",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4UB) │ │ │ - .value("Graphic3d_TOD_FLOAT",Graphic3d_TypeOfData::Graphic3d_TOD_FLOAT).export_values(); │ │ │ py::enum_(m, "Graphic3d_StereoMode",R"#(This enumeration defines the list of stereoscopic output modes.)#") │ │ │ .value("Graphic3d_StereoMode_QuadBuffer",Graphic3d_StereoMode::Graphic3d_StereoMode_QuadBuffer) │ │ │ .value("Graphic3d_StereoMode_Anaglyph",Graphic3d_StereoMode::Graphic3d_StereoMode_Anaglyph) │ │ │ .value("Graphic3d_StereoMode_RowInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_RowInterlaced) │ │ │ .value("Graphic3d_StereoMode_ColumnInterlaced",Graphic3d_StereoMode::Graphic3d_StereoMode_ColumnInterlaced) │ │ │ .value("Graphic3d_StereoMode_ChessBoard",Graphic3d_StereoMode::Graphic3d_StereoMode_ChessBoard) │ │ │ .value("Graphic3d_StereoMode_SideBySide",Graphic3d_StereoMode::Graphic3d_StereoMode_SideBySide) │ │ │ .value("Graphic3d_StereoMode_OverUnder",Graphic3d_StereoMode::Graphic3d_StereoMode_OverUnder) │ │ │ .value("Graphic3d_StereoMode_SoftPageFlip",Graphic3d_StereoMode::Graphic3d_StereoMode_SoftPageFlip) │ │ │ .value("Graphic3d_StereoMode_OpenVR",Graphic3d_StereoMode::Graphic3d_StereoMode_OpenVR).export_values(); │ │ │ m.attr("Graphic3d_StereoMode_NB") = py::cast(int(Graphic3d_StereoMode_NB)); │ │ │ + py::enum_(m, "Graphic3d_NameOfTextureEnv",R"#(Types of standard textures.)#") │ │ │ + .value("Graphic3d_NOT_ENV_CLOUDS",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CLOUDS) │ │ │ + .value("Graphic3d_NOT_ENV_CV",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CV) │ │ │ + .value("Graphic3d_NOT_ENV_MEDIT",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_MEDIT) │ │ │ + .value("Graphic3d_NOT_ENV_PEARL",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_PEARL) │ │ │ + .value("Graphic3d_NOT_ENV_SKY1",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY1) │ │ │ + .value("Graphic3d_NOT_ENV_SKY2",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY2) │ │ │ + .value("Graphic3d_NOT_ENV_LINES",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_LINES) │ │ │ + .value("Graphic3d_NOT_ENV_ROAD",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_ROAD) │ │ │ + .value("Graphic3d_NOT_ENV_UNKNOWN",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_UNKNOWN).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfVisualization",R"#(Modes of visualisation of objects in a view)#") │ │ │ + .value("Graphic3d_TOV_WIREFRAME",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME) │ │ │ + .value("Graphic3d_TOV_SHADING",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values(); │ │ │ py::enum_(m, "Graphic3d_TypeOfLightSource",R"#(Definition of all the type of light source.)#") │ │ │ .value("Graphic3d_TypeOfLightSource_Ambient",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Ambient) │ │ │ .value("Graphic3d_TypeOfLightSource_Directional",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Directional) │ │ │ .value("Graphic3d_TypeOfLightSource_Positional",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Positional) │ │ │ .value("Graphic3d_TypeOfLightSource_Spot",Graphic3d_TypeOfLightSource::Graphic3d_TypeOfLightSource_Spot) │ │ │ .value("Graphic3d_TOLS_AMBIENT",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_AMBIENT) │ │ │ .value("Graphic3d_TOLS_DIRECTIONAL",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_DIRECTIONAL) │ │ │ .value("Graphic3d_TOLS_POSITIONAL",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_POSITIONAL) │ │ │ .value("Graphic3d_TOLS_SPOT",Graphic3d_TypeOfLightSource::Graphic3d_TOLS_SPOT) │ │ │ .value("V3d_AMBIENT",Graphic3d_TypeOfLightSource::V3d_AMBIENT) │ │ │ .value("V3d_DIRECTIONAL",Graphic3d_TypeOfLightSource::V3d_DIRECTIONAL) │ │ │ .value("V3d_POSITIONAL",Graphic3d_TypeOfLightSource::V3d_POSITIONAL) │ │ │ .value("V3d_SPOT",Graphic3d_TypeOfLightSource::V3d_SPOT).export_values(); │ │ │ m.attr("Graphic3d_TypeOfLightSource_NB") = py::cast(int(Graphic3d_TypeOfLightSource_NB)); │ │ │ - py::enum_(m, "Graphic3d_FrameStatsCounter",R"#(Stats counter.)#") │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayers",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructs",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs) │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesGeom",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom) │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesFbos",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos) │ │ │ - .value("Graphic3d_FrameStatsCounter_EstimatedBytesTextures",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayersNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbGroupsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsFillNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsLineNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsPointNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsTextNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbTrianglesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLinesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbPointsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLayersImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbStructsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbGroupsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsFillImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsLineImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsPointImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbElemsTextImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbTrianglesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbLinesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate) │ │ │ - .value("Graphic3d_FrameStatsCounter_NbPointsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values(); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_NB") = py::cast(int(Graphic3d_FrameStatsCounter_NB)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_SCENE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_SCENE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_RENDERED_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_RENDERED_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER)); │ │ │ - m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER)); │ │ │ - py::enum_(m, "Graphic3d_TypeOfPrimitiveArray",R"#(The type of primitive array in a group in a structure.)#") │ │ │ - .value("Graphic3d_TOPA_UNDEFINED",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED) │ │ │ - .value("Graphic3d_TOPA_POINTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS) │ │ │ - .value("Graphic3d_TOPA_SEGMENTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS) │ │ │ - .value("Graphic3d_TOPA_POLYLINES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES) │ │ │ - .value("Graphic3d_TOPA_TRIANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES) │ │ │ - .value("Graphic3d_TOPA_TRIANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS) │ │ │ - .value("Graphic3d_TOPA_TRIANGLEFANS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS) │ │ │ - .value("Graphic3d_TOPA_LINES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY) │ │ │ - .value("Graphic3d_TOPA_LINE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY) │ │ │ - .value("Graphic3d_TOPA_TRIANGLES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY) │ │ │ - .value("Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY) │ │ │ - .value("Graphic3d_TOPA_QUADRANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES) │ │ │ - .value("Graphic3d_TOPA_QUADRANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS) │ │ │ - .value("Graphic3d_TOPA_POLYGONS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values(); │ │ │ + py::enum_(m, "Graphic3d_GroupAspect",R"#(Identifies primitives aspects defined per group. - ASPECT_LINE: aspect for line primitives; - ASPECT_TEXT: aspect for text primitives; - ASPECT_MARKER: aspect for marker primitives; - ASPECT_FILL_AREA: aspect for face primitives.)#") │ │ │ + .value("Graphic3d_ASPECT_LINE",Graphic3d_GroupAspect::Graphic3d_ASPECT_LINE) │ │ │ + .value("Graphic3d_ASPECT_TEXT",Graphic3d_GroupAspect::Graphic3d_ASPECT_TEXT) │ │ │ + .value("Graphic3d_ASPECT_MARKER",Graphic3d_GroupAspect::Graphic3d_ASPECT_MARKER) │ │ │ + .value("Graphic3d_ASPECT_FILL_AREA",Graphic3d_GroupAspect::Graphic3d_ASPECT_FILL_AREA).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfLimit",R"#(Type of graphic resource limit.)#") │ │ │ + .value("Graphic3d_TypeOfLimit_MaxNbLights",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbLights) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxNbClipPlanes",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbClipPlanes) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxNbViews",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbViews) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxTextureSize",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxTextureSize) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeX",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeX) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeY",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeY) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxCombinedTextureUnits",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxCombinedTextureUnits) │ │ │ + .value("Graphic3d_TypeOfLimit_MaxMsaa",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxMsaa) │ │ │ + .value("Graphic3d_TypeOfLimit_HasPBR",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasPBR) │ │ │ + .value("Graphic3d_TypeOfLimit_HasRayTracing",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracing) │ │ │ + .value("Graphic3d_TypeOfLimit_HasRayTracingTextures",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingTextures) │ │ │ + .value("Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling) │ │ │ + .value("Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic) │ │ │ + .value("Graphic3d_TypeOfLimit_HasSRGB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasSRGB) │ │ │ + .value("Graphic3d_TypeOfLimit_HasBlendedOit",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOit) │ │ │ + .value("Graphic3d_TypeOfLimit_HasBlendedOitMsaa",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOitMsaa) │ │ │ + .value("Graphic3d_TypeOfLimit_HasFlatShading",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasFlatShading) │ │ │ + .value("Graphic3d_TypeOfLimit_HasMeshEdges",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasMeshEdges) │ │ │ + .value("Graphic3d_TypeOfLimit_IsWorkaroundFBO",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_IsWorkaroundFBO) │ │ │ + .value("Graphic3d_TypeOfLimit_NB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_NB).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfConnection",R"#(To manage the connections between the structures.)#") │ │ │ + .value("Graphic3d_TOC_ANCESTOR",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR) │ │ │ + .value("Graphic3d_TOC_DESCENDANT",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values(); │ │ │ + py::enum_(m, "Graphic3d_CappingFlags",R"#(Enumeration of capping flags.)#") │ │ │ + .value("Graphic3d_CappingFlags_None",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None) │ │ │ + .value("Graphic3d_CappingFlags_ObjectMaterial",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial) │ │ │ + .value("Graphic3d_CappingFlags_ObjectTexture",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture) │ │ │ + .value("Graphic3d_CappingFlags_ObjectShader",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader) │ │ │ + .value("Graphic3d_CappingFlags_ObjectAspect",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values(); │ │ │ + py::enum_(m, "Graphic3d_DisplayPriority",R"#(Structure priority - range (do not change this range!). Values are between 0 and 10, with 5 used by default. A structure of priority 10 is displayed the last and appears over the others (considering depth test).)#") │ │ │ + .value("Graphic3d_DisplayPriority_INVALID",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID) │ │ │ + .value("Graphic3d_DisplayPriority_Bottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom) │ │ │ + .value("Graphic3d_DisplayPriority_AlmostBottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom) │ │ │ + .value("Graphic3d_DisplayPriority_Below2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2) │ │ │ + .value("Graphic3d_DisplayPriority_Below1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1) │ │ │ + .value("Graphic3d_DisplayPriority_Below",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below) │ │ │ + .value("Graphic3d_DisplayPriority_Normal",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal) │ │ │ + .value("Graphic3d_DisplayPriority_Above",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above) │ │ │ + .value("Graphic3d_DisplayPriority_Above1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1) │ │ │ + .value("Graphic3d_DisplayPriority_Above2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2) │ │ │ + .value("Graphic3d_DisplayPriority_Highlight",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight) │ │ │ + .value("Graphic3d_DisplayPriority_Topmost",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values(); │ │ │ + m.attr("Graphic3d_DisplayPriority_NB") = py::cast(int(Graphic3d_DisplayPriority_NB)); │ │ │ + py::enum_(m, "Graphic3d_NameOfTexture1D",R"#(Types of standard textures.)#") │ │ │ + .value("Graphic3d_NOT_1D_ELEVATION",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION) │ │ │ + .value("Graphic3d_NOT_1D_UNKNOWN",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values(); │ │ │ + py::enum_(m, "Graphic3d_LevelOfTextureAnisotropy",R"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#") │ │ │ + .value("Graphic3d_LOTA_OFF",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF) │ │ │ + .value("Graphic3d_LOTA_FAST",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST) │ │ │ + .value("Graphic3d_LOTA_MIDDLE",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE) │ │ │ + .value("Graphic3d_LOTA_QUALITY",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfShadingModel",R"#(Definition of the color shading model.)#") │ │ │ + .value("Graphic3d_TypeOfShadingModel_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT) │ │ │ + .value("Graphic3d_TypeOfShadingModel_Unlit",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit) │ │ │ + .value("Graphic3d_TypeOfShadingModel_PhongFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet) │ │ │ + .value("Graphic3d_TypeOfShadingModel_Gouraud",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud) │ │ │ + .value("Graphic3d_TypeOfShadingModel_Phong",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong) │ │ │ + .value("Graphic3d_TypeOfShadingModel_Pbr",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr) │ │ │ + .value("Graphic3d_TypeOfShadingModel_PbrFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet) │ │ │ + .value("Graphic3d_TOSM_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT) │ │ │ + .value("Graphic3d_TOSM_UNLIT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT) │ │ │ + .value("Graphic3d_TOSM_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET) │ │ │ + .value("Graphic3d_TOSM_VERTEX",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX) │ │ │ + .value("Graphic3d_TOSM_FRAGMENT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT) │ │ │ + .value("Graphic3d_TOSM_PBR",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR) │ │ │ + .value("Graphic3d_TOSM_PBR_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET) │ │ │ + .value("Graphic3d_TOSM_NONE",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE) │ │ │ + .value("V3d_COLOR",Graphic3d_TypeOfShadingModel::V3d_COLOR) │ │ │ + .value("V3d_FLAT",Graphic3d_TypeOfShadingModel::V3d_FLAT) │ │ │ + .value("V3d_GOURAUD",Graphic3d_TypeOfShadingModel::V3d_GOURAUD) │ │ │ + .value("V3d_PHONG",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values(); │ │ │ + m.attr("Graphic3d_TypeOfShadingModel_NB") = py::cast(int(Graphic3d_TypeOfShadingModel_NB)); │ │ │ + py::enum_(m, "Graphic3d_RenderingMode",R"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#") │ │ │ + .value("Graphic3d_RM_RASTERIZATION",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION) │ │ │ + .value("Graphic3d_RM_RAYTRACING",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values(); │ │ │ + py::enum_(m, "Graphic3d_DiagnosticInfo",R"#(Diagnostic info categories bit flags.)#") │ │ │ + .value("Graphic3d_DiagnosticInfo_Device",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device) │ │ │ + .value("Graphic3d_DiagnosticInfo_FrameBuffer",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer) │ │ │ + .value("Graphic3d_DiagnosticInfo_Limits",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits) │ │ │ + .value("Graphic3d_DiagnosticInfo_Memory",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory) │ │ │ + .value("Graphic3d_DiagnosticInfo_NativePlatform",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform) │ │ │ + .value("Graphic3d_DiagnosticInfo_Extensions",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions) │ │ │ + .value("Graphic3d_DiagnosticInfo_Short",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short) │ │ │ + .value("Graphic3d_DiagnosticInfo_Basic",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic) │ │ │ + .value("Graphic3d_DiagnosticInfo_Complete",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values(); │ │ │ + py::enum_(m, "Graphic3d_GlslExtension",R"#(GLSL syntax extensions.)#") │ │ │ + .value("Graphic3d_GlslExtension_GL_OES_standard_derivatives",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives) │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_shader_texture_lod",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod) │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_frag_depth",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth) │ │ │ + .value("Graphic3d_GlslExtension_GL_EXT_gpu_shader4",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values(); │ │ │ + m.attr("Graphic3d_GlslExtension_NB") = py::cast(int(Graphic3d_GlslExtension_NB)); │ │ │ + py::enum_(m, "Graphic3d_TextureSetBits",R"#(Standard texture units combination bits.)#") │ │ │ + .value("Graphic3d_TextureSetBits_NONE",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_NONE) │ │ │ + .value("Graphic3d_TextureSetBits_BaseColor",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_BaseColor) │ │ │ + .value("Graphic3d_TextureSetBits_Emissive",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Emissive) │ │ │ + .value("Graphic3d_TextureSetBits_Occlusion",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Occlusion) │ │ │ + .value("Graphic3d_TextureSetBits_Normal",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Normal) │ │ │ + .value("Graphic3d_TextureSetBits_MetallicRoughness",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_MetallicRoughness).export_values(); │ │ │ + py::enum_(m, "Graphic3d_NameOfTexture2D",R"#(Types of standard textures.)#") │ │ │ + .value("Graphic3d_NOT_2D_MATRA",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MATRA) │ │ │ + .value("Graphic3d_NOT_2D_ALIENSKIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALIENSKIN) │ │ │ + .value("Graphic3d_NOT_2D_BLUE_ROCK",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUE_ROCK) │ │ │ + .value("Graphic3d_NOT_2D_BLUEWHITE_PAPER",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUEWHITE_PAPER) │ │ │ + .value("Graphic3d_NOT_2D_BRUSHED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BRUSHED) │ │ │ + .value("Graphic3d_NOT_2D_BUBBLES",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUBBLES) │ │ │ + .value("Graphic3d_NOT_2D_BUMP",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUMP) │ │ │ + .value("Graphic3d_NOT_2D_CAST",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CAST) │ │ │ + .value("Graphic3d_NOT_2D_CHIPBD",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHIPBD) │ │ │ + .value("Graphic3d_NOT_2D_CLOUDS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CLOUDS) │ │ │ + .value("Graphic3d_NOT_2D_FLESH",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLESH) │ │ │ + .value("Graphic3d_NOT_2D_FLOOR",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLOOR) │ │ │ + .value("Graphic3d_NOT_2D_GALVNISD",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GALVNISD) │ │ │ + .value("Graphic3d_NOT_2D_GRASS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GRASS) │ │ │ + .value("Graphic3d_NOT_2D_ALUMINUM",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALUMINUM) │ │ │ + .value("Graphic3d_NOT_2D_ROCK",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ROCK) │ │ │ + .value("Graphic3d_NOT_2D_KNURL",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_KNURL) │ │ │ + .value("Graphic3d_NOT_2D_MAPLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MAPLE) │ │ │ + .value("Graphic3d_NOT_2D_MARBLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MARBLE) │ │ │ + .value("Graphic3d_NOT_2D_MOTTLED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MOTTLED) │ │ │ + .value("Graphic3d_NOT_2D_RAIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_RAIN) │ │ │ + .value("Graphic3d_NOT_2D_CHESS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHESS) │ │ │ + .value("Graphic3d_NOT_2D_UNKNOWN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_UNKNOWN).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfAnswer",R"#(The answer of the method AcceptDisplay AcceptDisplay means is it possible to display the specified structure in the specified view ? TOA_YES yes TOA_NO no TOA_COMPUTE yes but we have to compute the representation)#") │ │ │ + .value("Graphic3d_TOA_YES",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES) │ │ │ + .value("Graphic3d_TOA_NO",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO) │ │ │ + .value("Graphic3d_TOA_COMPUTE",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values(); │ │ │ py::enum_(m, "Graphic3d_TransModeFlags",R"#(Transform Persistence Mode defining whether to lock in object position, rotation and / or zooming relative to camera position.)#") │ │ │ .value("Graphic3d_TMF_None",Graphic3d_TransModeFlags::Graphic3d_TMF_None) │ │ │ .value("Graphic3d_TMF_ZoomPers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomPers) │ │ │ .value("Graphic3d_TMF_RotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_RotatePers) │ │ │ .value("Graphic3d_TMF_TriedronPers",Graphic3d_TransModeFlags::Graphic3d_TMF_TriedronPers) │ │ │ .value("Graphic3d_TMF_2d",Graphic3d_TransModeFlags::Graphic3d_TMF_2d) │ │ │ .value("Graphic3d_TMF_CameraPers",Graphic3d_TransModeFlags::Graphic3d_TMF_CameraPers) │ │ │ .value("Graphic3d_TMF_OrthoPers",Graphic3d_TransModeFlags::Graphic3d_TMF_OrthoPers) │ │ │ .value("Graphic3d_TMF_AxialScalePers",Graphic3d_TransModeFlags::Graphic3d_TMF_AxialScalePers) │ │ │ .value("Graphic3d_TMF_ZoomRotatePers",Graphic3d_TransModeFlags::Graphic3d_TMF_ZoomRotatePers) │ │ │ .value("Graphic3d_TMF_AxialZoomPers",Graphic3d_TransModeFlags::Graphic3d_TMF_AxialZoomPers).export_values(); │ │ │ + py::enum_(m, "Graphic3d_FresnelModel",R"#(Type of the Fresnel model.)#") │ │ │ + .value("Graphic3d_FM_SCHLICK",Graphic3d_FresnelModel::Graphic3d_FM_SCHLICK) │ │ │ + .value("Graphic3d_FM_CONSTANT",Graphic3d_FresnelModel::Graphic3d_FM_CONSTANT) │ │ │ + .value("Graphic3d_FM_CONDUCTOR",Graphic3d_FresnelModel::Graphic3d_FM_CONDUCTOR) │ │ │ + .value("Graphic3d_FM_DIELECTRIC",Graphic3d_FresnelModel::Graphic3d_FM_DIELECTRIC).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfTextureFilter",R"#(Type of the texture filter. Notice that for textures without mipmaps linear interpolation will be used instead of TOTF_BILINEAR and TOTF_TRILINEAR.)#") │ │ │ + .value("Graphic3d_TOTF_NEAREST",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST) │ │ │ + .value("Graphic3d_TOTF_BILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR) │ │ │ + .value("Graphic3d_TOTF_TRILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values(); │ │ │ + m.attr("Graphic3d_ZLayerId_UNKNOWN") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN)); │ │ │ + m.attr("Graphic3d_ZLayerId_Default") = py::cast(int(Graphic3d_ZLayerId_Default)); │ │ │ + m.attr("Graphic3d_ZLayerId_Top") = py::cast(int(Graphic3d_ZLayerId_Top)); │ │ │ + m.attr("Graphic3d_ZLayerId_Topmost") = py::cast(int(Graphic3d_ZLayerId_Topmost)); │ │ │ + m.attr("Graphic3d_ZLayerId_TopOSD") = py::cast(int(Graphic3d_ZLayerId_TopOSD)); │ │ │ + m.attr("Graphic3d_ZLayerId_BotOSD") = py::cast(int(Graphic3d_ZLayerId_BotOSD)); │ │ │ + py::enum_(m, "Graphic3d_CubeMapSide",R"#(Sides of cubemap in order of OpenGL rules)#") │ │ │ + .value("Graphic3d_CMS_POS_X",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_X) │ │ │ + .value("Graphic3d_CMS_NEG_X",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_X) │ │ │ + .value("Graphic3d_CMS_POS_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Y) │ │ │ + .value("Graphic3d_CMS_NEG_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Y) │ │ │ + .value("Graphic3d_CMS_POS_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Z) │ │ │ + .value("Graphic3d_CMS_NEG_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Z).export_values(); │ │ │ py::enum_(m, "Graphic3d_VerticalTextAlignment",R"#(Defines the vertical position of the text relative to its anchor.)#") │ │ │ .value("Graphic3d_VTA_BOTTOM",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_BOTTOM) │ │ │ .value("Graphic3d_VTA_CENTER",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_CENTER) │ │ │ .value("Graphic3d_VTA_TOP",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOP) │ │ │ .value("Graphic3d_VTA_TOPFIRSTLINE",Graphic3d_VerticalTextAlignment::Graphic3d_VTA_TOPFIRSTLINE).export_values(); │ │ │ - py::enum_(m, "Graphic3d_RenderTransparentMethod",R"#(Enumerates transparency rendering methods supported by rasterization mode.)#") │ │ │ - .value("Graphic3d_RTM_BLEND_UNORDERED",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_UNORDERED) │ │ │ - .value("Graphic3d_RTM_BLEND_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_OIT) │ │ │ - .value("Graphic3d_RTM_DEPTH_PEELING_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_DEPTH_PEELING_OIT).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfBackground",R"#(Describes type of view background.)#") │ │ │ - .value("Graphic3d_TOB_NONE",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE) │ │ │ - .value("Graphic3d_TOB_GRADIENT",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT) │ │ │ - .value("Graphic3d_TOB_TEXTURE",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE) │ │ │ - .value("Graphic3d_TOB_CUBEMAP",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values(); │ │ │ - m.attr("Graphic3d_TypeOfBackground_NB") = py::cast(int(Graphic3d_TypeOfBackground_NB)); │ │ │ - py::enum_(m, "Graphic3d_TypeOfTextureMode",R"#(Type of the texture projection.)#") │ │ │ - .value("Graphic3d_TOTM_OBJECT",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_OBJECT) │ │ │ - .value("Graphic3d_TOTM_SPHERE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPHERE) │ │ │ - .value("Graphic3d_TOTM_EYE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_EYE) │ │ │ - .value("Graphic3d_TOTM_MANUAL",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_MANUAL) │ │ │ - .value("Graphic3d_TOTM_SPRITE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPRITE).export_values(); │ │ │ py::enum_(m, "Graphic3d_FrameStatsTimer",R"#(Timers for collecting frame performance statistics.)#") │ │ │ .value("Graphic3d_FrameStatsTimer_ElapsedFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_ElapsedFrame) │ │ │ .value("Graphic3d_FrameStatsTimer_CpuFrame",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuFrame) │ │ │ .value("Graphic3d_FrameStatsTimer_CpuCulling",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuCulling) │ │ │ .value("Graphic3d_FrameStatsTimer_CpuPicking",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuPicking) │ │ │ .value("Graphic3d_FrameStatsTimer_CpuDynamics",Graphic3d_FrameStatsTimer::Graphic3d_FrameStatsTimer_CpuDynamics).export_values(); │ │ │ m.attr("Graphic3d_FrameStatsTimer_NB") = py::cast(int(Graphic3d_FrameStatsTimer_NB)); │ │ │ - py::enum_(m, "Graphic3d_TextureSetBits",R"#(Standard texture units combination bits.)#") │ │ │ - .value("Graphic3d_TextureSetBits_NONE",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_NONE) │ │ │ - .value("Graphic3d_TextureSetBits_BaseColor",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_BaseColor) │ │ │ - .value("Graphic3d_TextureSetBits_Emissive",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Emissive) │ │ │ - .value("Graphic3d_TextureSetBits_Occlusion",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Occlusion) │ │ │ - .value("Graphic3d_TextureSetBits_Normal",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_Normal) │ │ │ - .value("Graphic3d_TextureSetBits_MetallicRoughness",Graphic3d_TextureSetBits::Graphic3d_TextureSetBits_MetallicRoughness).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfStructure",R"#(Structural attribute indicating if it can be displayed in wireframe, shadow mode, or both.)#") │ │ │ + .value("Graphic3d_TOS_WIREFRAME",Graphic3d_TypeOfStructure::Graphic3d_TOS_WIREFRAME) │ │ │ + .value("Graphic3d_TOS_SHADING",Graphic3d_TypeOfStructure::Graphic3d_TOS_SHADING) │ │ │ + .value("Graphic3d_TOS_COMPUTED",Graphic3d_TypeOfStructure::Graphic3d_TOS_COMPUTED) │ │ │ + .value("Graphic3d_TOS_ALL",Graphic3d_TypeOfStructure::Graphic3d_TOS_ALL).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfMaterial",R"#(Types of materials specifies if a material can change color.)#") │ │ │ + .value("Graphic3d_MATERIAL_ASPECT",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT) │ │ │ + .value("Graphic3d_MATERIAL_PHYSIC",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values(); │ │ │ + py::enum_(m, "Graphic3d_NameOfTexturePlane",R"#(Type of the texture projection plane for both S and T texture coordinate.)#") │ │ │ + .value("Graphic3d_NOTP_XY",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_XY) │ │ │ + .value("Graphic3d_NOTP_YZ",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_YZ) │ │ │ + .value("Graphic3d_NOTP_ZX",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_ZX) │ │ │ + .value("Graphic3d_NOTP_UNKNOWN",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_UNKNOWN).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TextPath",R"#(Direction in which text is displayed.)#") │ │ │ + .value("Graphic3d_TP_UP",Graphic3d_TextPath::Graphic3d_TP_UP) │ │ │ + .value("Graphic3d_TP_DOWN",Graphic3d_TextPath::Graphic3d_TP_DOWN) │ │ │ + .value("Graphic3d_TP_LEFT",Graphic3d_TextPath::Graphic3d_TP_LEFT) │ │ │ + .value("Graphic3d_TP_RIGHT",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values(); │ │ │ + py::enum_(m, "Graphic3d_ShaderFlags",R"#(Standard GLSL program combination bits.)#") │ │ │ + .value("Graphic3d_ShaderFlags_VertColor",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor) │ │ │ + .value("Graphic3d_ShaderFlags_TextureRGB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB) │ │ │ + .value("Graphic3d_ShaderFlags_TextureEnv",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv) │ │ │ + .value("Graphic3d_ShaderFlags_TextureNormal",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal) │ │ │ + .value("Graphic3d_ShaderFlags_PointSimple",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple) │ │ │ + .value("Graphic3d_ShaderFlags_PointSprite",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite) │ │ │ + .value("Graphic3d_ShaderFlags_PointSpriteA",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA) │ │ │ + .value("Graphic3d_ShaderFlags_StippleLine",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine) │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanes1",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1) │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanes2",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2) │ │ │ + .value("Graphic3d_ShaderFlags_ClipPlanesN",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN) │ │ │ + .value("Graphic3d_ShaderFlags_ClipChains",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains) │ │ │ + .value("Graphic3d_ShaderFlags_MeshEdges",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges) │ │ │ + .value("Graphic3d_ShaderFlags_AlphaTest",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest) │ │ │ + .value("Graphic3d_ShaderFlags_WriteOit",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit) │ │ │ + .value("Graphic3d_ShaderFlags_OitDepthPeeling",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling) │ │ │ + .value("Graphic3d_ShaderFlags_NB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB) │ │ │ + .value("Graphic3d_ShaderFlags_IsPoint",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint) │ │ │ + .value("Graphic3d_ShaderFlags_HasTextures",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures) │ │ │ + .value("Graphic3d_ShaderFlags_NeedsGeomShader",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfBackfacingModel",R"#(Modes of display of back faces in the view.)#") │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_Auto",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_Auto) │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_DoubleSided",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_DoubleSided) │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_BackCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_BackCulled) │ │ │ + .value("Graphic3d_TypeOfBackfacingModel_FrontCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_FrontCulled) │ │ │ + .value("Graphic3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_AUTOMATIC) │ │ │ + .value("Graphic3d_TOBM_FORCE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_FORCE) │ │ │ + .value("Graphic3d_TOBM_DISABLE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_DISABLE) │ │ │ + .value("V3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_AUTOMATIC) │ │ │ + .value("V3d_TOBM_ALWAYS_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_ALWAYS_DISPLAYED) │ │ │ + .value("V3d_TOBM_NEVER_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_NEVER_DISPLAYED).export_values(); │ │ │ + py::enum_(m, "Graphic3d_RenderTransparentMethod",R"#(Enumerates transparency rendering methods supported by rasterization mode.)#") │ │ │ + .value("Graphic3d_RTM_BLEND_UNORDERED",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_UNORDERED) │ │ │ + .value("Graphic3d_RTM_BLEND_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_BLEND_OIT) │ │ │ + .value("Graphic3d_RTM_DEPTH_PEELING_OIT",Graphic3d_RenderTransparentMethod::Graphic3d_RTM_DEPTH_PEELING_OIT).export_values(); │ │ │ py::enum_(m, "Graphic3d_NameOfMaterial",R"#(List of named materials (predefined presets). Each preset defines either physical (having natural color) or generic (mutable color) material ()#") │ │ │ .value("Graphic3d_NameOfMaterial_Brass",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Brass) │ │ │ .value("Graphic3d_NameOfMaterial_Bronze",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Bronze) │ │ │ .value("Graphic3d_NameOfMaterial_Copper",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Copper) │ │ │ .value("Graphic3d_NameOfMaterial_Gold",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Gold) │ │ │ .value("Graphic3d_NameOfMaterial_Pewter",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Pewter) │ │ │ .value("Graphic3d_NameOfMaterial_Plastered",Graphic3d_NameOfMaterial::Graphic3d_NameOfMaterial_Plastered) │ │ │ @@ -477,81 +606,37 @@ │ │ │ .value("Graphic3d_NOM_CHARCOAL",Graphic3d_NameOfMaterial::Graphic3d_NOM_CHARCOAL) │ │ │ .value("Graphic3d_NOM_WATER",Graphic3d_NameOfMaterial::Graphic3d_NOM_WATER) │ │ │ .value("Graphic3d_NOM_GLASS",Graphic3d_NameOfMaterial::Graphic3d_NOM_GLASS) │ │ │ .value("Graphic3d_NOM_DIAMOND",Graphic3d_NameOfMaterial::Graphic3d_NOM_DIAMOND) │ │ │ .value("Graphic3d_NOM_TRANSPARENT",Graphic3d_NameOfMaterial::Graphic3d_NOM_TRANSPARENT) │ │ │ .value("Graphic3d_NOM_DEFAULT",Graphic3d_NameOfMaterial::Graphic3d_NOM_DEFAULT) │ │ │ .value("Graphic3d_NOM_UserDefined",Graphic3d_NameOfMaterial::Graphic3d_NOM_UserDefined).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfBackfacingModel",R"#(Modes of display of back faces in the view.)#") │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_Auto",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_Auto) │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_DoubleSided",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_DoubleSided) │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_BackCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_BackCulled) │ │ │ - .value("Graphic3d_TypeOfBackfacingModel_FrontCulled",Graphic3d_TypeOfBackfacingModel::Graphic3d_TypeOfBackfacingModel_FrontCulled) │ │ │ - .value("Graphic3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_AUTOMATIC) │ │ │ - .value("Graphic3d_TOBM_FORCE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_FORCE) │ │ │ - .value("Graphic3d_TOBM_DISABLE",Graphic3d_TypeOfBackfacingModel::Graphic3d_TOBM_DISABLE) │ │ │ - .value("V3d_TOBM_AUTOMATIC",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_AUTOMATIC) │ │ │ - .value("V3d_TOBM_ALWAYS_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_ALWAYS_DISPLAYED) │ │ │ - .value("V3d_TOBM_NEVER_DISPLAYED",Graphic3d_TypeOfBackfacingModel::V3d_TOBM_NEVER_DISPLAYED).export_values(); │ │ │ - py::enum_(m, "Graphic3d_NameOfTexture1D",R"#(Types of standard textures.)#") │ │ │ - .value("Graphic3d_NOT_1D_ELEVATION",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_ELEVATION) │ │ │ - .value("Graphic3d_NOT_1D_UNKNOWN",Graphic3d_NameOfTexture1D::Graphic3d_NOT_1D_UNKNOWN).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfVisualization",R"#(Modes of visualisation of objects in a view)#") │ │ │ - .value("Graphic3d_TOV_WIREFRAME",Graphic3d_TypeOfVisualization::Graphic3d_TOV_WIREFRAME) │ │ │ - .value("Graphic3d_TOV_SHADING",Graphic3d_TypeOfVisualization::Graphic3d_TOV_SHADING).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfShadingModel",R"#(Definition of the color shading model.)#") │ │ │ - .value("Graphic3d_TypeOfShadingModel_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_DEFAULT) │ │ │ - .value("Graphic3d_TypeOfShadingModel_Unlit",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Unlit) │ │ │ - .value("Graphic3d_TypeOfShadingModel_PhongFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PhongFacet) │ │ │ - .value("Graphic3d_TypeOfShadingModel_Gouraud",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Gouraud) │ │ │ - .value("Graphic3d_TypeOfShadingModel_Phong",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Phong) │ │ │ - .value("Graphic3d_TypeOfShadingModel_Pbr",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_Pbr) │ │ │ - .value("Graphic3d_TypeOfShadingModel_PbrFacet",Graphic3d_TypeOfShadingModel::Graphic3d_TypeOfShadingModel_PbrFacet) │ │ │ - .value("Graphic3d_TOSM_DEFAULT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_DEFAULT) │ │ │ - .value("Graphic3d_TOSM_UNLIT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_UNLIT) │ │ │ - .value("Graphic3d_TOSM_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FACET) │ │ │ - .value("Graphic3d_TOSM_VERTEX",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_VERTEX) │ │ │ - .value("Graphic3d_TOSM_FRAGMENT",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_FRAGMENT) │ │ │ - .value("Graphic3d_TOSM_PBR",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR) │ │ │ - .value("Graphic3d_TOSM_PBR_FACET",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_PBR_FACET) │ │ │ - .value("Graphic3d_TOSM_NONE",Graphic3d_TypeOfShadingModel::Graphic3d_TOSM_NONE) │ │ │ - .value("V3d_COLOR",Graphic3d_TypeOfShadingModel::V3d_COLOR) │ │ │ - .value("V3d_FLAT",Graphic3d_TypeOfShadingModel::V3d_FLAT) │ │ │ - .value("V3d_GOURAUD",Graphic3d_TypeOfShadingModel::V3d_GOURAUD) │ │ │ - .value("V3d_PHONG",Graphic3d_TypeOfShadingModel::V3d_PHONG).export_values(); │ │ │ - m.attr("Graphic3d_TypeOfShadingModel_NB") = py::cast(int(Graphic3d_TypeOfShadingModel_NB)); │ │ │ - py::enum_(m, "Graphic3d_TypeOfTexture",R"#(Type of the texture file format.)#") │ │ │ - .value("Graphic3d_TypeOfTexture_1D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_1D) │ │ │ - .value("Graphic3d_TypeOfTexture_2D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_2D) │ │ │ - .value("Graphic3d_TypeOfTexture_3D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_3D) │ │ │ - .value("Graphic3d_TypeOfTexture_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_CUBEMAP) │ │ │ - .value("Graphic3d_TOT_2D_MIPMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D_MIPMAP) │ │ │ - .value("Graphic3d_TOT_1D",Graphic3d_TypeOfTexture::Graphic3d_TOT_1D) │ │ │ - .value("Graphic3d_TOT_2D",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D) │ │ │ - .value("Graphic3d_TOT_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_CUBEMAP).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfReflection",R"#(Nature of the reflection of a material.)#") │ │ │ - .value("Graphic3d_TOR_AMBIENT",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT) │ │ │ - .value("Graphic3d_TOR_DIFFUSE",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE) │ │ │ - .value("Graphic3d_TOR_SPECULAR",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR) │ │ │ - .value("Graphic3d_TOR_EMISSION",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values(); │ │ │ - m.attr("Graphic3d_TypeOfReflection_NB") = py::cast(int(Graphic3d_TypeOfReflection_NB)); │ │ │ - py::enum_(m, "Graphic3d_HorizontalTextAlignment",R"#(Defines the horizontal position of the text relative to its anchor.)#") │ │ │ - .value("Graphic3d_HTA_LEFT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT) │ │ │ - .value("Graphic3d_HTA_CENTER",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER) │ │ │ - .value("Graphic3d_HTA_RIGHT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values(); │ │ │ - py::enum_(m, "Graphic3d_GlslExtension",R"#(GLSL syntax extensions.)#") │ │ │ - .value("Graphic3d_GlslExtension_GL_OES_standard_derivatives",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_OES_standard_derivatives) │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_shader_texture_lod",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_shader_texture_lod) │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_frag_depth",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_frag_depth) │ │ │ - .value("Graphic3d_GlslExtension_GL_EXT_gpu_shader4",Graphic3d_GlslExtension::Graphic3d_GlslExtension_GL_EXT_gpu_shader4).export_values(); │ │ │ - m.attr("Graphic3d_GlslExtension_NB") = py::cast(int(Graphic3d_GlslExtension_NB)); │ │ │ - py::enum_(m, "Graphic3d_TypeOfTextureFilter",R"#(Type of the texture filter. Notice that for textures without mipmaps linear interpolation will be used instead of TOTF_BILINEAR and TOTF_TRILINEAR.)#") │ │ │ - .value("Graphic3d_TOTF_NEAREST",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_NEAREST) │ │ │ - .value("Graphic3d_TOTF_BILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_BILINEAR) │ │ │ - .value("Graphic3d_TOTF_TRILINEAR",Graphic3d_TypeOfTextureFilter::Graphic3d_TOTF_TRILINEAR).export_values(); │ │ │ + m.attr("Graphic3d_ArrayFlags_None") = py::cast(int(Graphic3d_ArrayFlags_None)); │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexNormal") = py::cast(int(Graphic3d_ArrayFlags_VertexNormal)); │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexColor") = py::cast(int(Graphic3d_ArrayFlags_VertexColor)); │ │ │ + m.attr("Graphic3d_ArrayFlags_VertexTexel") = py::cast(int(Graphic3d_ArrayFlags_VertexTexel)); │ │ │ + m.attr("Graphic3d_ArrayFlags_BoundColor") = py::cast(int(Graphic3d_ArrayFlags_BoundColor)); │ │ │ + m.attr("Graphic3d_ArrayFlags_AttribsMutable") = py::cast(int(Graphic3d_ArrayFlags_AttribsMutable)); │ │ │ + m.attr("Graphic3d_ArrayFlags_AttribsDeinterleaved") = py::cast(int(Graphic3d_ArrayFlags_AttribsDeinterleaved)); │ │ │ + m.attr("Graphic3d_ArrayFlags_IndexesMutable") = py::cast(int(Graphic3d_ArrayFlags_IndexesMutable)); │ │ │ + py::enum_(m, "Graphic3d_TypeOfPrimitiveArray",R"#(The type of primitive array in a group in a structure.)#") │ │ │ + .value("Graphic3d_TOPA_UNDEFINED",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_UNDEFINED) │ │ │ + .value("Graphic3d_TOPA_POINTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POINTS) │ │ │ + .value("Graphic3d_TOPA_SEGMENTS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_SEGMENTS) │ │ │ + .value("Graphic3d_TOPA_POLYLINES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYLINES) │ │ │ + .value("Graphic3d_TOPA_TRIANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES) │ │ │ + .value("Graphic3d_TOPA_TRIANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLESTRIPS) │ │ │ + .value("Graphic3d_TOPA_TRIANGLEFANS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLEFANS) │ │ │ + .value("Graphic3d_TOPA_LINES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINES_ADJACENCY) │ │ │ + .value("Graphic3d_TOPA_LINE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_LINE_STRIP_ADJACENCY) │ │ │ + .value("Graphic3d_TOPA_TRIANGLES_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLES_ADJACENCY) │ │ │ + .value("Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_TRIANGLE_STRIP_ADJACENCY) │ │ │ + .value("Graphic3d_TOPA_QUADRANGLES",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLES) │ │ │ + .value("Graphic3d_TOPA_QUADRANGLESTRIPS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_QUADRANGLESTRIPS) │ │ │ + .value("Graphic3d_TOPA_POLYGONS",Graphic3d_TypeOfPrimitiveArray::Graphic3d_TOPA_POLYGONS).export_values(); │ │ │ py::enum_(m, "Graphic3d_TextureUnit",R"#(Texture unit.)#") │ │ │ .value("Graphic3d_TextureUnit_0",Graphic3d_TextureUnit::Graphic3d_TextureUnit_0) │ │ │ .value("Graphic3d_TextureUnit_1",Graphic3d_TextureUnit::Graphic3d_TextureUnit_1) │ │ │ .value("Graphic3d_TextureUnit_2",Graphic3d_TextureUnit::Graphic3d_TextureUnit_2) │ │ │ .value("Graphic3d_TextureUnit_3",Graphic3d_TextureUnit::Graphic3d_TextureUnit_3) │ │ │ .value("Graphic3d_TextureUnit_4",Graphic3d_TextureUnit::Graphic3d_TextureUnit_4) │ │ │ .value("Graphic3d_TextureUnit_5",Graphic3d_TextureUnit::Graphic3d_TextureUnit_5) │ │ │ @@ -575,206 +660,121 @@ │ │ │ .value("Graphic3d_TextureUnit_DepthPeelingDepth",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingDepth) │ │ │ .value("Graphic3d_TextureUnit_DepthPeelingFrontColor",Graphic3d_TextureUnit::Graphic3d_TextureUnit_DepthPeelingFrontColor) │ │ │ .value("Graphic3d_TextureUnit_ShadowMap",Graphic3d_TextureUnit::Graphic3d_TextureUnit_ShadowMap) │ │ │ .value("Graphic3d_TextureUnit_PbrEnvironmentLUT",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrEnvironmentLUT) │ │ │ .value("Graphic3d_TextureUnit_PbrIblDiffuseSH",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblDiffuseSH) │ │ │ .value("Graphic3d_TextureUnit_PbrIblSpecular",Graphic3d_TextureUnit::Graphic3d_TextureUnit_PbrIblSpecular).export_values(); │ │ │ m.attr("Graphic3d_TextureUnit_NB") = py::cast(int(Graphic3d_TextureUnit_NB)); │ │ │ - py::enum_(m, "Graphic3d_NameOfTextureEnv",R"#(Types of standard textures.)#") │ │ │ - .value("Graphic3d_NOT_ENV_CLOUDS",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CLOUDS) │ │ │ - .value("Graphic3d_NOT_ENV_CV",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_CV) │ │ │ - .value("Graphic3d_NOT_ENV_MEDIT",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_MEDIT) │ │ │ - .value("Graphic3d_NOT_ENV_PEARL",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_PEARL) │ │ │ - .value("Graphic3d_NOT_ENV_SKY1",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY1) │ │ │ - .value("Graphic3d_NOT_ENV_SKY2",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_SKY2) │ │ │ - .value("Graphic3d_NOT_ENV_LINES",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_LINES) │ │ │ - .value("Graphic3d_NOT_ENV_ROAD",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_ROAD) │ │ │ - .value("Graphic3d_NOT_ENV_UNKNOWN",Graphic3d_NameOfTextureEnv::Graphic3d_NOT_ENV_UNKNOWN).export_values(); │ │ │ - py::enum_(m, "Graphic3d_GroupAspect",R"#(Identifies primitives aspects defined per group. - ASPECT_LINE: aspect for line primitives; - ASPECT_TEXT: aspect for text primitives; - ASPECT_MARKER: aspect for marker primitives; - ASPECT_FILL_AREA: aspect for face primitives.)#") │ │ │ - .value("Graphic3d_ASPECT_LINE",Graphic3d_GroupAspect::Graphic3d_ASPECT_LINE) │ │ │ - .value("Graphic3d_ASPECT_TEXT",Graphic3d_GroupAspect::Graphic3d_ASPECT_TEXT) │ │ │ - .value("Graphic3d_ASPECT_MARKER",Graphic3d_GroupAspect::Graphic3d_ASPECT_MARKER) │ │ │ - .value("Graphic3d_ASPECT_FILL_AREA",Graphic3d_GroupAspect::Graphic3d_ASPECT_FILL_AREA).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TextPath",R"#(Direction in which text is displayed.)#") │ │ │ - .value("Graphic3d_TP_UP",Graphic3d_TextPath::Graphic3d_TP_UP) │ │ │ - .value("Graphic3d_TP_DOWN",Graphic3d_TextPath::Graphic3d_TP_DOWN) │ │ │ - .value("Graphic3d_TP_LEFT",Graphic3d_TextPath::Graphic3d_TP_LEFT) │ │ │ - .value("Graphic3d_TP_RIGHT",Graphic3d_TextPath::Graphic3d_TP_RIGHT).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfConnection",R"#(To manage the connections between the structures.)#") │ │ │ - .value("Graphic3d_TOC_ANCESTOR",Graphic3d_TypeOfConnection::Graphic3d_TOC_ANCESTOR) │ │ │ - .value("Graphic3d_TOC_DESCENDANT",Graphic3d_TypeOfConnection::Graphic3d_TOC_DESCENDANT).export_values(); │ │ │ - py::enum_(m, "Graphic3d_FresnelModel",R"#(Type of the Fresnel model.)#") │ │ │ - .value("Graphic3d_FM_SCHLICK",Graphic3d_FresnelModel::Graphic3d_FM_SCHLICK) │ │ │ - .value("Graphic3d_FM_CONSTANT",Graphic3d_FresnelModel::Graphic3d_FM_CONSTANT) │ │ │ - .value("Graphic3d_FM_CONDUCTOR",Graphic3d_FresnelModel::Graphic3d_FM_CONDUCTOR) │ │ │ - .value("Graphic3d_FM_DIELECTRIC",Graphic3d_FresnelModel::Graphic3d_FM_DIELECTRIC).export_values(); │ │ │ - py::enum_(m, "Graphic3d_RenderingMode",R"#(Describes rendering modes. - RM_RASTERIZATION: enables OpenGL rasterization mode; - RM_RAYTRACING: enables GPU ray-tracing mode.)#") │ │ │ - .value("Graphic3d_RM_RASTERIZATION",Graphic3d_RenderingMode::Graphic3d_RM_RASTERIZATION) │ │ │ - .value("Graphic3d_RM_RAYTRACING",Graphic3d_RenderingMode::Graphic3d_RM_RAYTRACING).export_values(); │ │ │ - m.attr("Graphic3d_ZLayerId_UNKNOWN") = py::cast(int(Graphic3d_ZLayerId_UNKNOWN)); │ │ │ - m.attr("Graphic3d_ZLayerId_Default") = py::cast(int(Graphic3d_ZLayerId_Default)); │ │ │ - m.attr("Graphic3d_ZLayerId_Top") = py::cast(int(Graphic3d_ZLayerId_Top)); │ │ │ - m.attr("Graphic3d_ZLayerId_Topmost") = py::cast(int(Graphic3d_ZLayerId_Topmost)); │ │ │ - m.attr("Graphic3d_ZLayerId_TopOSD") = py::cast(int(Graphic3d_ZLayerId_TopOSD)); │ │ │ - m.attr("Graphic3d_ZLayerId_BotOSD") = py::cast(int(Graphic3d_ZLayerId_BotOSD)); │ │ │ - py::enum_(m, "Graphic3d_DiagnosticInfo",R"#(Diagnostic info categories bit flags.)#") │ │ │ - .value("Graphic3d_DiagnosticInfo_Device",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Device) │ │ │ - .value("Graphic3d_DiagnosticInfo_FrameBuffer",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_FrameBuffer) │ │ │ - .value("Graphic3d_DiagnosticInfo_Limits",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Limits) │ │ │ - .value("Graphic3d_DiagnosticInfo_Memory",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Memory) │ │ │ - .value("Graphic3d_DiagnosticInfo_NativePlatform",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_NativePlatform) │ │ │ - .value("Graphic3d_DiagnosticInfo_Extensions",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Extensions) │ │ │ - .value("Graphic3d_DiagnosticInfo_Short",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Short) │ │ │ - .value("Graphic3d_DiagnosticInfo_Basic",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Basic) │ │ │ - .value("Graphic3d_DiagnosticInfo_Complete",Graphic3d_DiagnosticInfo::Graphic3d_DiagnosticInfo_Complete).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfAnswer",R"#(The answer of the method AcceptDisplay AcceptDisplay means is it possible to display the specified structure in the specified view ? TOA_YES yes TOA_NO no TOA_COMPUTE yes but we have to compute the representation)#") │ │ │ - .value("Graphic3d_TOA_YES",Graphic3d_TypeOfAnswer::Graphic3d_TOA_YES) │ │ │ - .value("Graphic3d_TOA_NO",Graphic3d_TypeOfAnswer::Graphic3d_TOA_NO) │ │ │ - .value("Graphic3d_TOA_COMPUTE",Graphic3d_TypeOfAnswer::Graphic3d_TOA_COMPUTE).export_values(); │ │ │ - py::enum_(m, "Graphic3d_CappingFlags",R"#(Enumeration of capping flags.)#") │ │ │ - .value("Graphic3d_CappingFlags_None",Graphic3d_CappingFlags::Graphic3d_CappingFlags_None) │ │ │ - .value("Graphic3d_CappingFlags_ObjectMaterial",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectMaterial) │ │ │ - .value("Graphic3d_CappingFlags_ObjectTexture",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectTexture) │ │ │ - .value("Graphic3d_CappingFlags_ObjectShader",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectShader) │ │ │ - .value("Graphic3d_CappingFlags_ObjectAspect",Graphic3d_CappingFlags::Graphic3d_CappingFlags_ObjectAspect).export_values(); │ │ │ - py::enum_(m, "Graphic3d_DisplayPriority",R"#(Structure priority - range (do not change this range!). Values are between 0 and 10, with 5 used by default. A structure of priority 10 is displayed the last and appears over the others (considering depth test).)#") │ │ │ - .value("Graphic3d_DisplayPriority_INVALID",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_INVALID) │ │ │ - .value("Graphic3d_DisplayPriority_Bottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Bottom) │ │ │ - .value("Graphic3d_DisplayPriority_AlmostBottom",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_AlmostBottom) │ │ │ - .value("Graphic3d_DisplayPriority_Below2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below2) │ │ │ - .value("Graphic3d_DisplayPriority_Below1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below1) │ │ │ - .value("Graphic3d_DisplayPriority_Below",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Below) │ │ │ - .value("Graphic3d_DisplayPriority_Normal",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Normal) │ │ │ - .value("Graphic3d_DisplayPriority_Above",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above) │ │ │ - .value("Graphic3d_DisplayPriority_Above1",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above1) │ │ │ - .value("Graphic3d_DisplayPriority_Above2",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Above2) │ │ │ - .value("Graphic3d_DisplayPriority_Highlight",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Highlight) │ │ │ - .value("Graphic3d_DisplayPriority_Topmost",Graphic3d_DisplayPriority::Graphic3d_DisplayPriority_Topmost).export_values(); │ │ │ - m.attr("Graphic3d_DisplayPriority_NB") = py::cast(int(Graphic3d_DisplayPriority_NB)); │ │ │ - py::enum_(m, "Graphic3d_BufferType",R"#(Define buffers available for dump)#") │ │ │ - .value("Graphic3d_BT_RGB",Graphic3d_BufferType::Graphic3d_BT_RGB) │ │ │ - .value("Graphic3d_BT_RGBA",Graphic3d_BufferType::Graphic3d_BT_RGBA) │ │ │ - .value("Graphic3d_BT_Depth",Graphic3d_BufferType::Graphic3d_BT_Depth) │ │ │ - .value("Graphic3d_BT_RGB_RayTraceHdrLeft",Graphic3d_BufferType::Graphic3d_BT_RGB_RayTraceHdrLeft) │ │ │ - .value("Graphic3d_BT_Red",Graphic3d_BufferType::Graphic3d_BT_Red) │ │ │ - .value("Graphic3d_BT_ShadowMap",Graphic3d_BufferType::Graphic3d_BT_ShadowMap).export_values(); │ │ │ - py::enum_(m, "Graphic3d_LevelOfTextureAnisotropy",R"#(Level of anisotropy filter. Notice that actual quality depends on hardware capabilities!)#") │ │ │ - .value("Graphic3d_LOTA_OFF",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_OFF) │ │ │ - .value("Graphic3d_LOTA_FAST",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_FAST) │ │ │ - .value("Graphic3d_LOTA_MIDDLE",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_MIDDLE) │ │ │ - .value("Graphic3d_LOTA_QUALITY",Graphic3d_LevelOfTextureAnisotropy::Graphic3d_LOTA_QUALITY).export_values(); │ │ │ + py::enum_(m, "Graphic3d_HorizontalTextAlignment",R"#(Defines the horizontal position of the text relative to its anchor.)#") │ │ │ + .value("Graphic3d_HTA_LEFT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_LEFT) │ │ │ + .value("Graphic3d_HTA_CENTER",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_CENTER) │ │ │ + .value("Graphic3d_HTA_RIGHT",Graphic3d_HorizontalTextAlignment::Graphic3d_HTA_RIGHT).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfAttribute",R"#(Type of attribute in Vertex Buffer)#") │ │ │ + .value("Graphic3d_TOA_POS",Graphic3d_TypeOfAttribute::Graphic3d_TOA_POS) │ │ │ + .value("Graphic3d_TOA_NORM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_NORM) │ │ │ + .value("Graphic3d_TOA_UV",Graphic3d_TypeOfAttribute::Graphic3d_TOA_UV) │ │ │ + .value("Graphic3d_TOA_COLOR",Graphic3d_TypeOfAttribute::Graphic3d_TOA_COLOR) │ │ │ + .value("Graphic3d_TOA_CUSTOM",Graphic3d_TypeOfAttribute::Graphic3d_TOA_CUSTOM).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfData",R"#(Type of the element in Vertex or Index Buffer)#") │ │ │ + .value("Graphic3d_TOD_USHORT",Graphic3d_TypeOfData::Graphic3d_TOD_USHORT) │ │ │ + .value("Graphic3d_TOD_UINT",Graphic3d_TypeOfData::Graphic3d_TOD_UINT) │ │ │ + .value("Graphic3d_TOD_VEC2",Graphic3d_TypeOfData::Graphic3d_TOD_VEC2) │ │ │ + .value("Graphic3d_TOD_VEC3",Graphic3d_TypeOfData::Graphic3d_TOD_VEC3) │ │ │ + .value("Graphic3d_TOD_VEC4",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4) │ │ │ + .value("Graphic3d_TOD_VEC4UB",Graphic3d_TypeOfData::Graphic3d_TOD_VEC4UB) │ │ │ + .value("Graphic3d_TOD_FLOAT",Graphic3d_TypeOfData::Graphic3d_TOD_FLOAT).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfTexture",R"#(Type of the texture file format.)#") │ │ │ + .value("Graphic3d_TypeOfTexture_1D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_1D) │ │ │ + .value("Graphic3d_TypeOfTexture_2D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_2D) │ │ │ + .value("Graphic3d_TypeOfTexture_3D",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_3D) │ │ │ + .value("Graphic3d_TypeOfTexture_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TypeOfTexture_CUBEMAP) │ │ │ + .value("Graphic3d_TOT_2D_MIPMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D_MIPMAP) │ │ │ + .value("Graphic3d_TOT_1D",Graphic3d_TypeOfTexture::Graphic3d_TOT_1D) │ │ │ + .value("Graphic3d_TOT_2D",Graphic3d_TypeOfTexture::Graphic3d_TOT_2D) │ │ │ + .value("Graphic3d_TOT_CUBEMAP",Graphic3d_TypeOfTexture::Graphic3d_TOT_CUBEMAP).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfTextureMode",R"#(Type of the texture projection.)#") │ │ │ + .value("Graphic3d_TOTM_OBJECT",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_OBJECT) │ │ │ + .value("Graphic3d_TOTM_SPHERE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPHERE) │ │ │ + .value("Graphic3d_TOTM_EYE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_EYE) │ │ │ + .value("Graphic3d_TOTM_MANUAL",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_MANUAL) │ │ │ + .value("Graphic3d_TOTM_SPRITE",Graphic3d_TypeOfTextureMode::Graphic3d_TOTM_SPRITE).export_values(); │ │ │ + py::enum_(m, "Graphic3d_FrameStatsCounter",R"#(Stats counter.)#") │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayers",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayers) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructs",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructs) │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesGeom",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesGeom) │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesFbos",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesFbos) │ │ │ + .value("Graphic3d_FrameStatsCounter_EstimatedBytesTextures",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_EstimatedBytesTextures) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayersNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbGroupsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsFillNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsLineNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsPointNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsTextNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbTrianglesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLinesNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbPointsNotCulled",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsNotCulled) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLayersImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLayersImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbStructsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbStructsImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbGroupsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbGroupsImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsFillImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsFillImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsLineImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsLineImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsPointImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsPointImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbElemsTextImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbElemsTextImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbTrianglesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbTrianglesImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbLinesImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbLinesImmediate) │ │ │ + .value("Graphic3d_FrameStatsCounter_NbPointsImmediate",Graphic3d_FrameStatsCounter::Graphic3d_FrameStatsCounter_NbPointsImmediate).export_values(); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_NB") = py::cast(int(Graphic3d_FrameStatsCounter_NB)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_SCENE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_LOWER)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_SCENE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_SCENE_UPPER)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_RENDERED_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_LOWER)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_RENDERED_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_RENDERED_UPPER)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_LOWER)); │ │ │ + m.attr("Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER") = py::cast(int(Graphic3d_FrameStatsCounter_IMMEDIATE_UPPER)); │ │ │ + py::enum_(m, "Graphic3d_TypeOfReflection",R"#(Nature of the reflection of a material.)#") │ │ │ + .value("Graphic3d_TOR_AMBIENT",Graphic3d_TypeOfReflection::Graphic3d_TOR_AMBIENT) │ │ │ + .value("Graphic3d_TOR_DIFFUSE",Graphic3d_TypeOfReflection::Graphic3d_TOR_DIFFUSE) │ │ │ + .value("Graphic3d_TOR_SPECULAR",Graphic3d_TypeOfReflection::Graphic3d_TOR_SPECULAR) │ │ │ + .value("Graphic3d_TOR_EMISSION",Graphic3d_TypeOfReflection::Graphic3d_TOR_EMISSION).export_values(); │ │ │ + m.attr("Graphic3d_TypeOfReflection_NB") = py::cast(int(Graphic3d_TypeOfReflection_NB)); │ │ │ + py::enum_(m, "Graphic3d_ToneMappingMethod",R"#(Enumerates tone mapping methods.)#") │ │ │ + .value("Graphic3d_ToneMappingMethod_Disabled",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled) │ │ │ + .value("Graphic3d_ToneMappingMethod_Filmic",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values(); │ │ │ py::enum_(m, "Graphic3d_TypeOfShaderObject",R"#(Type of the shader object.)#") │ │ │ .value("Graphic3d_TOS_VERTEX",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_VERTEX) │ │ │ .value("Graphic3d_TOS_TESS_CONTROL",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_CONTROL) │ │ │ .value("Graphic3d_TOS_TESS_EVALUATION",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_TESS_EVALUATION) │ │ │ .value("Graphic3d_TOS_GEOMETRY",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_GEOMETRY) │ │ │ .value("Graphic3d_TOS_FRAGMENT",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_FRAGMENT) │ │ │ .value("Graphic3d_TOS_COMPUTE",Graphic3d_TypeOfShaderObject::Graphic3d_TOS_COMPUTE).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfLimit",R"#(Type of graphic resource limit.)#") │ │ │ - .value("Graphic3d_TypeOfLimit_MaxNbLights",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbLights) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxNbClipPlanes",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbClipPlanes) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxNbViews",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxNbViews) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxTextureSize",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxTextureSize) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeX",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeX) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxViewDumpSizeY",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxViewDumpSizeY) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxCombinedTextureUnits",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxCombinedTextureUnits) │ │ │ - .value("Graphic3d_TypeOfLimit_MaxMsaa",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_MaxMsaa) │ │ │ - .value("Graphic3d_TypeOfLimit_HasPBR",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasPBR) │ │ │ - .value("Graphic3d_TypeOfLimit_HasRayTracing",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracing) │ │ │ - .value("Graphic3d_TypeOfLimit_HasRayTracingTextures",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingTextures) │ │ │ - .value("Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSampling) │ │ │ - .value("Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasRayTracingAdaptiveSamplingAtomic) │ │ │ - .value("Graphic3d_TypeOfLimit_HasSRGB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasSRGB) │ │ │ - .value("Graphic3d_TypeOfLimit_HasBlendedOit",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOit) │ │ │ - .value("Graphic3d_TypeOfLimit_HasBlendedOitMsaa",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasBlendedOitMsaa) │ │ │ - .value("Graphic3d_TypeOfLimit_HasFlatShading",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasFlatShading) │ │ │ - .value("Graphic3d_TypeOfLimit_HasMeshEdges",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_HasMeshEdges) │ │ │ - .value("Graphic3d_TypeOfLimit_IsWorkaroundFBO",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_IsWorkaroundFBO) │ │ │ - .value("Graphic3d_TypeOfLimit_NB",Graphic3d_TypeOfLimit::Graphic3d_TypeOfLimit_NB).export_values(); │ │ │ - py::enum_(m, "Graphic3d_NameOfTexturePlane",R"#(Type of the texture projection plane for both S and T texture coordinate.)#") │ │ │ - .value("Graphic3d_NOTP_XY",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_XY) │ │ │ - .value("Graphic3d_NOTP_YZ",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_YZ) │ │ │ - .value("Graphic3d_NOTP_ZX",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_ZX) │ │ │ - .value("Graphic3d_NOTP_UNKNOWN",Graphic3d_NameOfTexturePlane::Graphic3d_NOTP_UNKNOWN).export_values(); │ │ │ - py::enum_(m, "Graphic3d_NameOfTexture2D",R"#(Types of standard textures.)#") │ │ │ - .value("Graphic3d_NOT_2D_MATRA",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MATRA) │ │ │ - .value("Graphic3d_NOT_2D_ALIENSKIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALIENSKIN) │ │ │ - .value("Graphic3d_NOT_2D_BLUE_ROCK",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUE_ROCK) │ │ │ - .value("Graphic3d_NOT_2D_BLUEWHITE_PAPER",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BLUEWHITE_PAPER) │ │ │ - .value("Graphic3d_NOT_2D_BRUSHED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BRUSHED) │ │ │ - .value("Graphic3d_NOT_2D_BUBBLES",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUBBLES) │ │ │ - .value("Graphic3d_NOT_2D_BUMP",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_BUMP) │ │ │ - .value("Graphic3d_NOT_2D_CAST",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CAST) │ │ │ - .value("Graphic3d_NOT_2D_CHIPBD",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHIPBD) │ │ │ - .value("Graphic3d_NOT_2D_CLOUDS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CLOUDS) │ │ │ - .value("Graphic3d_NOT_2D_FLESH",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLESH) │ │ │ - .value("Graphic3d_NOT_2D_FLOOR",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_FLOOR) │ │ │ - .value("Graphic3d_NOT_2D_GALVNISD",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GALVNISD) │ │ │ - .value("Graphic3d_NOT_2D_GRASS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_GRASS) │ │ │ - .value("Graphic3d_NOT_2D_ALUMINUM",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ALUMINUM) │ │ │ - .value("Graphic3d_NOT_2D_ROCK",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_ROCK) │ │ │ - .value("Graphic3d_NOT_2D_KNURL",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_KNURL) │ │ │ - .value("Graphic3d_NOT_2D_MAPLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MAPLE) │ │ │ - .value("Graphic3d_NOT_2D_MARBLE",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MARBLE) │ │ │ - .value("Graphic3d_NOT_2D_MOTTLED",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_MOTTLED) │ │ │ - .value("Graphic3d_NOT_2D_RAIN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_RAIN) │ │ │ - .value("Graphic3d_NOT_2D_CHESS",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_CHESS) │ │ │ - .value("Graphic3d_NOT_2D_UNKNOWN",Graphic3d_NameOfTexture2D::Graphic3d_NOT_2D_UNKNOWN).export_values(); │ │ │ py::enum_(m, "Graphic3d_ClipState",R"#(Clipping state.)#") │ │ │ .value("Graphic3d_ClipState_Out",Graphic3d_ClipState::Graphic3d_ClipState_Out) │ │ │ .value("Graphic3d_ClipState_In",Graphic3d_ClipState::Graphic3d_ClipState_In) │ │ │ .value("Graphic3d_ClipState_On",Graphic3d_ClipState::Graphic3d_ClipState_On).export_values(); │ │ │ - py::enum_(m, "Graphic3d_CubeMapSide",R"#(Sides of cubemap in order of OpenGL rules)#") │ │ │ - .value("Graphic3d_CMS_POS_X",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_X) │ │ │ - .value("Graphic3d_CMS_NEG_X",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_X) │ │ │ - .value("Graphic3d_CMS_POS_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Y) │ │ │ - .value("Graphic3d_CMS_NEG_Y",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Y) │ │ │ - .value("Graphic3d_CMS_POS_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_POS_Z) │ │ │ - .value("Graphic3d_CMS_NEG_Z",Graphic3d_CubeMapSide::Graphic3d_CMS_NEG_Z).export_values(); │ │ │ + py::enum_(m, "Graphic3d_TypeOfBackground",R"#(Describes type of view background.)#") │ │ │ + .value("Graphic3d_TOB_NONE",Graphic3d_TypeOfBackground::Graphic3d_TOB_NONE) │ │ │ + .value("Graphic3d_TOB_GRADIENT",Graphic3d_TypeOfBackground::Graphic3d_TOB_GRADIENT) │ │ │ + .value("Graphic3d_TOB_TEXTURE",Graphic3d_TypeOfBackground::Graphic3d_TOB_TEXTURE) │ │ │ + .value("Graphic3d_TOB_CUBEMAP",Graphic3d_TypeOfBackground::Graphic3d_TOB_CUBEMAP).export_values(); │ │ │ + m.attr("Graphic3d_TypeOfBackground_NB") = py::cast(int(Graphic3d_TypeOfBackground_NB)); │ │ │ + py::enum_(m, "Graphic3d_BufferType",R"#(Define buffers available for dump)#") │ │ │ + .value("Graphic3d_BT_RGB",Graphic3d_BufferType::Graphic3d_BT_RGB) │ │ │ + .value("Graphic3d_BT_RGBA",Graphic3d_BufferType::Graphic3d_BT_RGBA) │ │ │ + .value("Graphic3d_BT_Depth",Graphic3d_BufferType::Graphic3d_BT_Depth) │ │ │ + .value("Graphic3d_BT_RGB_RayTraceHdrLeft",Graphic3d_BufferType::Graphic3d_BT_RGB_RayTraceHdrLeft) │ │ │ + .value("Graphic3d_BT_Red",Graphic3d_BufferType::Graphic3d_BT_Red) │ │ │ + .value("Graphic3d_BT_ShadowMap",Graphic3d_BufferType::Graphic3d_BT_ShadowMap).export_values(); │ │ │ py::enum_(m, "Graphic3d_AlphaMode",R"#(Defines how alpha value of base color / texture should be treated.)#") │ │ │ .value("Graphic3d_AlphaMode_Opaque",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Opaque) │ │ │ .value("Graphic3d_AlphaMode_Mask",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Mask) │ │ │ .value("Graphic3d_AlphaMode_Blend",Graphic3d_AlphaMode::Graphic3d_AlphaMode_Blend) │ │ │ .value("Graphic3d_AlphaMode_MaskBlend",Graphic3d_AlphaMode::Graphic3d_AlphaMode_MaskBlend) │ │ │ .value("Graphic3d_AlphaMode_BlendAuto",Graphic3d_AlphaMode::Graphic3d_AlphaMode_BlendAuto).export_values(); │ │ │ - m.attr("Graphic3d_ArrayFlags_None") = py::cast(int(Graphic3d_ArrayFlags_None)); │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexNormal") = py::cast(int(Graphic3d_ArrayFlags_VertexNormal)); │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexColor") = py::cast(int(Graphic3d_ArrayFlags_VertexColor)); │ │ │ - m.attr("Graphic3d_ArrayFlags_VertexTexel") = py::cast(int(Graphic3d_ArrayFlags_VertexTexel)); │ │ │ - m.attr("Graphic3d_ArrayFlags_BoundColor") = py::cast(int(Graphic3d_ArrayFlags_BoundColor)); │ │ │ - m.attr("Graphic3d_ArrayFlags_AttribsMutable") = py::cast(int(Graphic3d_ArrayFlags_AttribsMutable)); │ │ │ - m.attr("Graphic3d_ArrayFlags_AttribsDeinterleaved") = py::cast(int(Graphic3d_ArrayFlags_AttribsDeinterleaved)); │ │ │ - m.attr("Graphic3d_ArrayFlags_IndexesMutable") = py::cast(int(Graphic3d_ArrayFlags_IndexesMutable)); │ │ │ - py::enum_(m, "Graphic3d_ToneMappingMethod",R"#(Enumerates tone mapping methods.)#") │ │ │ - .value("Graphic3d_ToneMappingMethod_Disabled",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Disabled) │ │ │ - .value("Graphic3d_ToneMappingMethod_Filmic",Graphic3d_ToneMappingMethod::Graphic3d_ToneMappingMethod_Filmic).export_values(); │ │ │ - py::enum_(m, "Graphic3d_ShaderFlags",R"#(Standard GLSL program combination bits.)#") │ │ │ - .value("Graphic3d_ShaderFlags_VertColor",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_VertColor) │ │ │ - .value("Graphic3d_ShaderFlags_TextureRGB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureRGB) │ │ │ - .value("Graphic3d_ShaderFlags_TextureEnv",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureEnv) │ │ │ - .value("Graphic3d_ShaderFlags_TextureNormal",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_TextureNormal) │ │ │ - .value("Graphic3d_ShaderFlags_PointSimple",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSimple) │ │ │ - .value("Graphic3d_ShaderFlags_PointSprite",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSprite) │ │ │ - .value("Graphic3d_ShaderFlags_PointSpriteA",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_PointSpriteA) │ │ │ - .value("Graphic3d_ShaderFlags_StippleLine",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_StippleLine) │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanes1",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes1) │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanes2",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanes2) │ │ │ - .value("Graphic3d_ShaderFlags_ClipPlanesN",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipPlanesN) │ │ │ - .value("Graphic3d_ShaderFlags_ClipChains",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_ClipChains) │ │ │ - .value("Graphic3d_ShaderFlags_MeshEdges",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_MeshEdges) │ │ │ - .value("Graphic3d_ShaderFlags_AlphaTest",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_AlphaTest) │ │ │ - .value("Graphic3d_ShaderFlags_WriteOit",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_WriteOit) │ │ │ - .value("Graphic3d_ShaderFlags_OitDepthPeeling",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_OitDepthPeeling) │ │ │ - .value("Graphic3d_ShaderFlags_NB",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NB) │ │ │ - .value("Graphic3d_ShaderFlags_IsPoint",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_IsPoint) │ │ │ - .value("Graphic3d_ShaderFlags_HasTextures",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_HasTextures) │ │ │ - .value("Graphic3d_ShaderFlags_NeedsGeomShader",Graphic3d_ShaderFlags::Graphic3d_ShaderFlags_NeedsGeomShader).export_values(); │ │ │ - py::enum_(m, "Graphic3d_TypeOfMaterial",R"#(Types of materials specifies if a material can change color.)#") │ │ │ - .value("Graphic3d_MATERIAL_ASPECT",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_ASPECT) │ │ │ - .value("Graphic3d_MATERIAL_PHYSIC",Graphic3d_TypeOfMaterial::Graphic3d_MATERIAL_PHYSIC).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Graphic3d_CStructure : public Graphic3d_CStructure{ │ │ │ public: │ │ │ using Graphic3d_CStructure::Graphic3d_CStructure; │ │ ├── ./usr/share/libocp/OCP/HatchGen_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -47,25 +47,25 @@ │ │ │ py::module m = main_module.def_submodule("HatchGen", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "HatchGen_IntersectionType",R"#(Intersection type between the hatching and the element.)#") │ │ │ - .value("HatchGen_TRUE",HatchGen_IntersectionType::HatchGen_TRUE) │ │ │ - .value("HatchGen_TOUCH",HatchGen_IntersectionType::HatchGen_TOUCH) │ │ │ - .value("HatchGen_TANGENT",HatchGen_IntersectionType::HatchGen_TANGENT) │ │ │ - .value("HatchGen_UNDETERMINED",HatchGen_IntersectionType::HatchGen_UNDETERMINED).export_values(); │ │ │ py::enum_(m, "HatchGen_ErrorStatus",R"#(Error status.)#") │ │ │ .value("HatchGen_NoProblem",HatchGen_ErrorStatus::HatchGen_NoProblem) │ │ │ .value("HatchGen_TrimFailure",HatchGen_ErrorStatus::HatchGen_TrimFailure) │ │ │ .value("HatchGen_TransitionFailure",HatchGen_ErrorStatus::HatchGen_TransitionFailure) │ │ │ .value("HatchGen_IncoherentParity",HatchGen_ErrorStatus::HatchGen_IncoherentParity) │ │ │ .value("HatchGen_IncompatibleStates",HatchGen_ErrorStatus::HatchGen_IncompatibleStates).export_values(); │ │ │ + py::enum_(m, "HatchGen_IntersectionType",R"#(Intersection type between the hatching and the element.)#") │ │ │ + .value("HatchGen_TRUE",HatchGen_IntersectionType::HatchGen_TRUE) │ │ │ + .value("HatchGen_TOUCH",HatchGen_IntersectionType::HatchGen_TOUCH) │ │ │ + .value("HatchGen_TANGENT",HatchGen_IntersectionType::HatchGen_TANGENT) │ │ │ + .value("HatchGen_UNDETERMINED",HatchGen_IntersectionType::HatchGen_UNDETERMINED).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_HatchGen_IntersectionPoint : public HatchGen_IntersectionPoint{ │ │ │ public: │ │ │ using HatchGen_IntersectionPoint::HatchGen_IntersectionPoint; │ │ ├── ./usr/share/libocp/OCP/IFSelect_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -367,45 +367,45 @@ │ │ │ py::module m = main_module.def_submodule("IFSelect", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "IFSelect_RemainMode",R"#()#") │ │ │ + .value("IFSelect_RemainForget",IFSelect_RemainMode::IFSelect_RemainForget) │ │ │ + .value("IFSelect_RemainCompute",IFSelect_RemainMode::IFSelect_RemainCompute) │ │ │ + .value("IFSelect_RemainDisplay",IFSelect_RemainMode::IFSelect_RemainDisplay) │ │ │ + .value("IFSelect_RemainUndo",IFSelect_RemainMode::IFSelect_RemainUndo).export_values(); │ │ │ py::enum_(m, "IFSelect_PrintFail",R"#(Indicates whether there will be information on warnings as well as on failures. The terms of this enumeration have the following semantics: - IFSelect_FailOnly gives information on failures only - IFSelect_FailAndWarn gives information on both failures and warnings. used to pilot PrintCheckList)#") │ │ │ .value("IFSelect_FailOnly",IFSelect_PrintFail::IFSelect_FailOnly) │ │ │ .value("IFSelect_FailAndWarn",IFSelect_PrintFail::IFSelect_FailAndWarn).export_values(); │ │ │ - py::enum_(m, "IFSelect_PrintCount",R"#(Lets you choose the manner in which you want to analyze an IGES or STEP file. Your analysis can be either message-oriented or entity-oriented. The specific values are as follows: - ItemsByEntity is a sequential list of all messages per entity of the defined type - CountByItem is the number of entities of the defined type, with their rank number per message - ShortByItem is the number of entities of the defined type, with their types per message; displays the rank numbers of the first five entities of the defined type per message - ListByItem is the number of entities of the defined type per message and the numbers of the entities - EntitiesByItem is the number of entities of the defined type, with their types, rank numbers and Directory Entry numbers per message - GeneralInfo is general information on transfer such as: - number of entities - number of roots - number of resulting Open CASCADE shapes - number of warnings and failures - CountSummary summary statistics for counters and signatures - ResultCount information that contains the number of roots in the IGES file and the number of resulting Open CASCADE shapes. - Mapping of the IGES root entities to the resulting Open CASCADE shape (including type and form of the IGES entity and type of the resulting shape).)#") │ │ │ - .value("IFSelect_ItemsByEntity",IFSelect_PrintCount::IFSelect_ItemsByEntity) │ │ │ - .value("IFSelect_CountByItem",IFSelect_PrintCount::IFSelect_CountByItem) │ │ │ - .value("IFSelect_ShortByItem",IFSelect_PrintCount::IFSelect_ShortByItem) │ │ │ - .value("IFSelect_ListByItem",IFSelect_PrintCount::IFSelect_ListByItem) │ │ │ - .value("IFSelect_EntitiesByItem",IFSelect_PrintCount::IFSelect_EntitiesByItem) │ │ │ - .value("IFSelect_CountSummary",IFSelect_PrintCount::IFSelect_CountSummary) │ │ │ - .value("IFSelect_GeneralInfo",IFSelect_PrintCount::IFSelect_GeneralInfo) │ │ │ - .value("IFSelect_Mapping",IFSelect_PrintCount::IFSelect_Mapping) │ │ │ - .value("IFSelect_ResultCount",IFSelect_PrintCount::IFSelect_ResultCount).export_values(); │ │ │ py::enum_(m, "IFSelect_ReturnStatus",R"#(Qualifies an execution status : RetVoid : normal execution which created nothing, or no data to process RetDone : normal execution with a result RetError : error in command or input data, no execution RetFail : execution was run and has failed RetStop : indicates end or stop (such as Raise))#") │ │ │ .value("IFSelect_RetVoid",IFSelect_ReturnStatus::IFSelect_RetVoid) │ │ │ .value("IFSelect_RetDone",IFSelect_ReturnStatus::IFSelect_RetDone) │ │ │ .value("IFSelect_RetError",IFSelect_ReturnStatus::IFSelect_RetError) │ │ │ .value("IFSelect_RetFail",IFSelect_ReturnStatus::IFSelect_RetFail) │ │ │ .value("IFSelect_RetStop",IFSelect_ReturnStatus::IFSelect_RetStop).export_values(); │ │ │ - py::enum_(m, "IFSelect_RemainMode",R"#()#") │ │ │ - .value("IFSelect_RemainForget",IFSelect_RemainMode::IFSelect_RemainForget) │ │ │ - .value("IFSelect_RemainCompute",IFSelect_RemainMode::IFSelect_RemainCompute) │ │ │ - .value("IFSelect_RemainDisplay",IFSelect_RemainMode::IFSelect_RemainDisplay) │ │ │ - .value("IFSelect_RemainUndo",IFSelect_RemainMode::IFSelect_RemainUndo).export_values(); │ │ │ py::enum_(m, "IFSelect_EditValue",R"#(Controls access on Values by an Editor EditOptional : normal access, in addition may be removed Editable : normal access, must be present EditProtected : access must be validated EditComputed : why write it ? it will be recomputed EditRead : no way to write it, only for read EditDynamic : not a field, only to be displayed)#") │ │ │ .value("IFSelect_Optional",IFSelect_EditValue::IFSelect_Optional) │ │ │ .value("IFSelect_Editable",IFSelect_EditValue::IFSelect_Editable) │ │ │ .value("IFSelect_EditProtected",IFSelect_EditValue::IFSelect_EditProtected) │ │ │ .value("IFSelect_EditComputed",IFSelect_EditValue::IFSelect_EditComputed) │ │ │ .value("IFSelect_EditRead",IFSelect_EditValue::IFSelect_EditRead) │ │ │ .value("IFSelect_EditDynamic",IFSelect_EditValue::IFSelect_EditDynamic).export_values(); │ │ │ + py::enum_(m, "IFSelect_PrintCount",R"#(Lets you choose the manner in which you want to analyze an IGES or STEP file. Your analysis can be either message-oriented or entity-oriented. The specific values are as follows: - ItemsByEntity is a sequential list of all messages per entity of the defined type - CountByItem is the number of entities of the defined type, with their rank number per message - ShortByItem is the number of entities of the defined type, with their types per message; displays the rank numbers of the first five entities of the defined type per message - ListByItem is the number of entities of the defined type per message and the numbers of the entities - EntitiesByItem is the number of entities of the defined type, with their types, rank numbers and Directory Entry numbers per message - GeneralInfo is general information on transfer such as: - number of entities - number of roots - number of resulting Open CASCADE shapes - number of warnings and failures - CountSummary summary statistics for counters and signatures - ResultCount information that contains the number of roots in the IGES file and the number of resulting Open CASCADE shapes. - Mapping of the IGES root entities to the resulting Open CASCADE shape (including type and form of the IGES entity and type of the resulting shape).)#") │ │ │ + .value("IFSelect_ItemsByEntity",IFSelect_PrintCount::IFSelect_ItemsByEntity) │ │ │ + .value("IFSelect_CountByItem",IFSelect_PrintCount::IFSelect_CountByItem) │ │ │ + .value("IFSelect_ShortByItem",IFSelect_PrintCount::IFSelect_ShortByItem) │ │ │ + .value("IFSelect_ListByItem",IFSelect_PrintCount::IFSelect_ListByItem) │ │ │ + .value("IFSelect_EntitiesByItem",IFSelect_PrintCount::IFSelect_EntitiesByItem) │ │ │ + .value("IFSelect_CountSummary",IFSelect_PrintCount::IFSelect_CountSummary) │ │ │ + .value("IFSelect_GeneralInfo",IFSelect_PrintCount::IFSelect_GeneralInfo) │ │ │ + .value("IFSelect_Mapping",IFSelect_PrintCount::IFSelect_Mapping) │ │ │ + .value("IFSelect_ResultCount",IFSelect_PrintCount::IFSelect_ResultCount).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_IFSelect_Activator : public IFSelect_Activator{ │ │ │ public: │ │ │ using IFSelect_Activator::IFSelect_Activator; │ │ ├── ./usr/share/libocp/OCP/IGESData_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -205,38 +205,38 @@ │ │ │ py::module m = main_module.def_submodule("IGESData", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "IGESData_Status",R"#()#") │ │ │ - .value("IGESData_EntityOK",IGESData_Status::IGESData_EntityOK) │ │ │ - .value("IGESData_EntityError",IGESData_Status::IGESData_EntityError) │ │ │ - .value("IGESData_ReferenceError",IGESData_Status::IGESData_ReferenceError) │ │ │ - .value("IGESData_TypeError",IGESData_Status::IGESData_TypeError).export_values(); │ │ │ py::enum_(m, "IGESData_DefList",R"#(Some fields of an IGES entity may be - Undefined - Defined as a single item - Defined as a list of items. A typical example, which presents this kind of variation, is a level number. This enumeration allows you to identify which of the above is the case. The semantics of the terms is as follows: - DefNone indicates that the list is empty (there is not even a single item). - DefOne indicates that the list contains a single item. - DefSeveral indicates that the list contains several items. - ErrorOne indicates that the list contains one item, but that this item is incorrect - ErrorSeveral indicates that the list contains several items, but that at least one of them is incorrect.)#") │ │ │ .value("IGESData_DefNone",IGESData_DefList::IGESData_DefNone) │ │ │ .value("IGESData_DefOne",IGESData_DefList::IGESData_DefOne) │ │ │ .value("IGESData_DefSeveral",IGESData_DefList::IGESData_DefSeveral) │ │ │ .value("IGESData_ErrorOne",IGESData_DefList::IGESData_ErrorOne) │ │ │ .value("IGESData_ErrorSeveral",IGESData_DefList::IGESData_ErrorSeveral).export_values(); │ │ │ + py::enum_(m, "IGESData_Status",R"#()#") │ │ │ + .value("IGESData_EntityOK",IGESData_Status::IGESData_EntityOK) │ │ │ + .value("IGESData_EntityError",IGESData_Status::IGESData_EntityError) │ │ │ + .value("IGESData_ReferenceError",IGESData_Status::IGESData_ReferenceError) │ │ │ + .value("IGESData_TypeError",IGESData_Status::IGESData_TypeError).export_values(); │ │ │ + py::enum_(m, "IGESData_ReadStage",R"#(gives successive stages of reading an entity (see ParamReader))#") │ │ │ + .value("IGESData_ReadDir",IGESData_ReadStage::IGESData_ReadDir) │ │ │ + .value("IGESData_ReadOwn",IGESData_ReadStage::IGESData_ReadOwn) │ │ │ + .value("IGESData_ReadAssocs",IGESData_ReadStage::IGESData_ReadAssocs) │ │ │ + .value("IGESData_ReadProps",IGESData_ReadStage::IGESData_ReadProps) │ │ │ + .value("IGESData_ReadEnd",IGESData_ReadStage::IGESData_ReadEnd).export_values(); │ │ │ py::enum_(m, "IGESData_DefType",R"#(Some fields of an IGES entity may be - Undefined - Defined as a positive integer - Defined as a reference to a specialized entity. A typical example of this kind of variation is color. This enumeration allows you to identify which of the above is the case. The semantics of the terms are as follows: - DefVoid indicates that the item contained in the field is undefined - DefValue indicates that the item is defined as an immediate positive integer value (i.e. not a pointer) - DefReference indicates that the item is defined as an entity - DefAny indicates the item could not be determined - ErrorVal indicates that the item is defined as an integer but its value is incorrect (it could be out of range, for example) - ErrorRef indicates that the item is defined as an entity but is not of the required type.)#") │ │ │ .value("IGESData_DefVoid",IGESData_DefType::IGESData_DefVoid) │ │ │ .value("IGESData_DefValue",IGESData_DefType::IGESData_DefValue) │ │ │ .value("IGESData_DefReference",IGESData_DefType::IGESData_DefReference) │ │ │ .value("IGESData_DefAny",IGESData_DefType::IGESData_DefAny) │ │ │ .value("IGESData_ErrorVal",IGESData_DefType::IGESData_ErrorVal) │ │ │ .value("IGESData_ErrorRef",IGESData_DefType::IGESData_ErrorRef).export_values(); │ │ │ - py::enum_(m, "IGESData_ReadStage",R"#(gives successive stages of reading an entity (see ParamReader))#") │ │ │ - .value("IGESData_ReadDir",IGESData_ReadStage::IGESData_ReadDir) │ │ │ - .value("IGESData_ReadOwn",IGESData_ReadStage::IGESData_ReadOwn) │ │ │ - .value("IGESData_ReadAssocs",IGESData_ReadStage::IGESData_ReadAssocs) │ │ │ - .value("IGESData_ReadProps",IGESData_ReadStage::IGESData_ReadProps) │ │ │ - .value("IGESData_ReadEnd",IGESData_ReadStage::IGESData_ReadEnd).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_IGESData_FileRecognizer : public IGESData_FileRecognizer{ │ │ │ public: │ │ │ using IGESData_FileRecognizer::IGESData_FileRecognizer; │ │ ├── ./usr/share/libocp/OCP/IntPatch_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -128,30 +128,30 @@ │ │ │ py::module m = main_module.def_submodule("IntPatch", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - 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.)#") │ │ │ - .value("IntPatch_SPntNone",IntPatch_SpecPntType::IntPatch_SPntNone) │ │ │ - .value("IntPatch_SPntSeamU",IntPatch_SpecPntType::IntPatch_SPntSeamU) │ │ │ - .value("IntPatch_SPntSeamV",IntPatch_SpecPntType::IntPatch_SPntSeamV) │ │ │ - .value("IntPatch_SPntSeamUV",IntPatch_SpecPntType::IntPatch_SPntSeamUV) │ │ │ - .value("IntPatch_SPntPoleSeamU",IntPatch_SpecPntType::IntPatch_SPntPoleSeamU) │ │ │ - .value("IntPatch_SPntPole",IntPatch_SpecPntType::IntPatch_SPntPole).export_values(); │ │ │ py::enum_(m, "IntPatch_IType",R"#()#") │ │ │ .value("IntPatch_Lin",IntPatch_IType::IntPatch_Lin) │ │ │ .value("IntPatch_Circle",IntPatch_IType::IntPatch_Circle) │ │ │ .value("IntPatch_Ellipse",IntPatch_IType::IntPatch_Ellipse) │ │ │ .value("IntPatch_Parabola",IntPatch_IType::IntPatch_Parabola) │ │ │ .value("IntPatch_Hyperbola",IntPatch_IType::IntPatch_Hyperbola) │ │ │ .value("IntPatch_Analytic",IntPatch_IType::IntPatch_Analytic) │ │ │ .value("IntPatch_Walking",IntPatch_IType::IntPatch_Walking) │ │ │ .value("IntPatch_Restriction",IntPatch_IType::IntPatch_Restriction).export_values(); │ │ │ + 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.)#") │ │ │ + .value("IntPatch_SPntNone",IntPatch_SpecPntType::IntPatch_SPntNone) │ │ │ + .value("IntPatch_SPntSeamU",IntPatch_SpecPntType::IntPatch_SPntSeamU) │ │ │ + .value("IntPatch_SPntSeamV",IntPatch_SpecPntType::IntPatch_SPntSeamV) │ │ │ + .value("IntPatch_SPntSeamUV",IntPatch_SpecPntType::IntPatch_SPntSeamUV) │ │ │ + .value("IntPatch_SPntPoleSeamU",IntPatch_SpecPntType::IntPatch_SPntPoleSeamU) │ │ │ + .value("IntPatch_SPntPole",IntPatch_SpecPntType::IntPatch_SPntPole).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_IntPatch_Polygo : public IntPatch_Polygo{ │ │ │ public: │ │ │ using IntPatch_Polygo::IntPatch_Polygo; │ │ ├── ./usr/share/libocp/OCP/Interface_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -221,26 +221,14 @@ │ │ │ py::module m = main_module.def_submodule("Interface", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Interface_ParamType",R"#()#") │ │ │ - .value("Interface_ParamMisc",Interface_ParamType::Interface_ParamMisc) │ │ │ - .value("Interface_ParamInteger",Interface_ParamType::Interface_ParamInteger) │ │ │ - .value("Interface_ParamReal",Interface_ParamType::Interface_ParamReal) │ │ │ - .value("Interface_ParamIdent",Interface_ParamType::Interface_ParamIdent) │ │ │ - .value("Interface_ParamVoid",Interface_ParamType::Interface_ParamVoid) │ │ │ - .value("Interface_ParamText",Interface_ParamType::Interface_ParamText) │ │ │ - .value("Interface_ParamEnum",Interface_ParamType::Interface_ParamEnum) │ │ │ - .value("Interface_ParamLogical",Interface_ParamType::Interface_ParamLogical) │ │ │ - .value("Interface_ParamSub",Interface_ParamType::Interface_ParamSub) │ │ │ - .value("Interface_ParamHexa",Interface_ParamType::Interface_ParamHexa) │ │ │ - .value("Interface_ParamBinary",Interface_ParamType::Interface_ParamBinary).export_values(); │ │ │ py::enum_(m, "Interface_CheckStatus",R"#(Classifies checks OK : check is empty Warning : Warning, no Fail Fail : Fail Others to query : Any : any status Message : Warning/Fail NoFail : Warning/OK)#") │ │ │ .value("Interface_CheckOK",Interface_CheckStatus::Interface_CheckOK) │ │ │ .value("Interface_CheckWarning",Interface_CheckStatus::Interface_CheckWarning) │ │ │ .value("Interface_CheckFail",Interface_CheckStatus::Interface_CheckFail) │ │ │ .value("Interface_CheckAny",Interface_CheckStatus::Interface_CheckAny) │ │ │ .value("Interface_CheckMessage",Interface_CheckStatus::Interface_CheckMessage) │ │ │ .value("Interface_CheckNoFail",Interface_CheckStatus::Interface_CheckNoFail).export_values(); │ │ │ @@ -248,14 +236,26 @@ │ │ │ .value("Interface_StateOK",Interface_DataState::Interface_StateOK) │ │ │ .value("Interface_LoadWarning",Interface_DataState::Interface_LoadWarning) │ │ │ .value("Interface_LoadFail",Interface_DataState::Interface_LoadFail) │ │ │ .value("Interface_DataWarning",Interface_DataState::Interface_DataWarning) │ │ │ .value("Interface_DataFail",Interface_DataState::Interface_DataFail) │ │ │ .value("Interface_StateUnloaded",Interface_DataState::Interface_StateUnloaded) │ │ │ .value("Interface_StateUnknown",Interface_DataState::Interface_StateUnknown).export_values(); │ │ │ + py::enum_(m, "Interface_ParamType",R"#()#") │ │ │ + .value("Interface_ParamMisc",Interface_ParamType::Interface_ParamMisc) │ │ │ + .value("Interface_ParamInteger",Interface_ParamType::Interface_ParamInteger) │ │ │ + .value("Interface_ParamReal",Interface_ParamType::Interface_ParamReal) │ │ │ + .value("Interface_ParamIdent",Interface_ParamType::Interface_ParamIdent) │ │ │ + .value("Interface_ParamVoid",Interface_ParamType::Interface_ParamVoid) │ │ │ + .value("Interface_ParamText",Interface_ParamType::Interface_ParamText) │ │ │ + .value("Interface_ParamEnum",Interface_ParamType::Interface_ParamEnum) │ │ │ + .value("Interface_ParamLogical",Interface_ParamType::Interface_ParamLogical) │ │ │ + .value("Interface_ParamSub",Interface_ParamType::Interface_ParamSub) │ │ │ + .value("Interface_ParamHexa",Interface_ParamType::Interface_ParamHexa) │ │ │ + .value("Interface_ParamBinary",Interface_ParamType::Interface_ParamBinary).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Interface_CopyControl : public Interface_CopyControl{ │ │ │ public: │ │ │ using Interface_CopyControl::Interface_CopyControl; │ │ ├── ./usr/share/libocp/OCP/LProp_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -40,23 +40,23 @@ │ │ │ py::module m = main_module.def_submodule("LProp", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "LProp_CIType",R"#(Identifies the type of a particular point on a curve: - LProp_Inflection: a point of inflection - LProp_MinCur: a minimum of curvature - LProp_MaxCur: a maximum of curvature.)#") │ │ │ - .value("LProp_Inflection",LProp_CIType::LProp_Inflection) │ │ │ - .value("LProp_MinCur",LProp_CIType::LProp_MinCur) │ │ │ - .value("LProp_MaxCur",LProp_CIType::LProp_MaxCur).export_values(); │ │ │ py::enum_(m, "LProp_Status",R"#()#") │ │ │ .value("LProp_Undecided",LProp_Status::LProp_Undecided) │ │ │ .value("LProp_Undefined",LProp_Status::LProp_Undefined) │ │ │ .value("LProp_Defined",LProp_Status::LProp_Defined) │ │ │ .value("LProp_Computed",LProp_Status::LProp_Computed).export_values(); │ │ │ + py::enum_(m, "LProp_CIType",R"#(Identifies the type of a particular point on a curve: - LProp_Inflection: a point of inflection - LProp_MinCur: a minimum of curvature - LProp_MaxCur: a maximum of curvature.)#") │ │ │ + .value("LProp_Inflection",LProp_CIType::LProp_Inflection) │ │ │ + .value("LProp_MinCur",LProp_CIType::LProp_MinCur) │ │ │ + .value("LProp_MaxCur",LProp_CIType::LProp_MaxCur).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"LProp_AnalyticCurInf",R"#(Computes the locals extremas of curvature of a gp curve Remark : a gp curve has not inflection.)#"); │ │ │ py::class_ >(m,"LProp_CurAndInf",R"#(Stores the parameters of a curve 2d or 3d corresponding to the curvature's extremas and the Inflection's Points.)#"); │ │ │ preregister_template_NCollection_Sequence(m,"LProp_SequenceOfCIType"); │ │ ├── ./usr/share/libocp/OCP/MeshVS_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -153,31 +153,34 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("std"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - m.attr("MeshVS_BP_Mesh") = py::cast(int(MeshVS_BP_Mesh)); │ │ │ - m.attr("MeshVS_BP_NodalColor") = py::cast(int(MeshVS_BP_NodalColor)); │ │ │ - m.attr("MeshVS_BP_ElemColor") = py::cast(int(MeshVS_BP_ElemColor)); │ │ │ - m.attr("MeshVS_BP_Text") = py::cast(int(MeshVS_BP_Text)); │ │ │ - m.attr("MeshVS_BP_Vector") = py::cast(int(MeshVS_BP_Vector)); │ │ │ - m.attr("MeshVS_BP_User") = py::cast(int(MeshVS_BP_User)); │ │ │ - m.attr("MeshVS_BP_Default") = py::cast(int(MeshVS_BP_Default)); │ │ │ - py::enum_(m, "MeshVS_SelectionModeFlags",R"#()#") │ │ │ - .value("MeshVS_SMF_Mesh",MeshVS_SelectionModeFlags::MeshVS_SMF_Mesh) │ │ │ - .value("MeshVS_SMF_Node",MeshVS_SelectionModeFlags::MeshVS_SMF_Node) │ │ │ - .value("MeshVS_SMF_0D",MeshVS_SelectionModeFlags::MeshVS_SMF_0D) │ │ │ - .value("MeshVS_SMF_Link",MeshVS_SelectionModeFlags::MeshVS_SMF_Link) │ │ │ - .value("MeshVS_SMF_Face",MeshVS_SelectionModeFlags::MeshVS_SMF_Face) │ │ │ - .value("MeshVS_SMF_Volume",MeshVS_SelectionModeFlags::MeshVS_SMF_Volume) │ │ │ - .value("MeshVS_SMF_Element",MeshVS_SelectionModeFlags::MeshVS_SMF_Element) │ │ │ - .value("MeshVS_SMF_All",MeshVS_SelectionModeFlags::MeshVS_SMF_All) │ │ │ - .value("MeshVS_SMF_Group",MeshVS_SelectionModeFlags::MeshVS_SMF_Group).export_values(); │ │ │ + py::enum_(m, "MeshVS_MeshSelectionMethod",R"#(this enumeration describe what type of sensitive entity will be built in 0-th selection mode (it means that whole mesh is selected ))#") │ │ │ + .value("MeshVS_MSM_PRECISE",MeshVS_MeshSelectionMethod::MeshVS_MSM_PRECISE) │ │ │ + .value("MeshVS_MSM_NODES",MeshVS_MeshSelectionMethod::MeshVS_MSM_NODES) │ │ │ + .value("MeshVS_MSM_BOX",MeshVS_MeshSelectionMethod::MeshVS_MSM_BOX).export_values(); │ │ │ + m.attr("MeshVS_DMF_WireFrame") = py::cast(int(MeshVS_DMF_WireFrame)); │ │ │ + m.attr("MeshVS_DMF_Shading") = py::cast(int(MeshVS_DMF_Shading)); │ │ │ + m.attr("MeshVS_DMF_Shrink") = py::cast(int(MeshVS_DMF_Shrink)); │ │ │ + m.attr("MeshVS_DMF_OCCMask") = py::cast(int(MeshVS_DMF_OCCMask)); │ │ │ + m.attr("MeshVS_DMF_VectorDataPrs") = py::cast(int(MeshVS_DMF_VectorDataPrs)); │ │ │ + m.attr("MeshVS_DMF_NodalColorDataPrs") = py::cast(int(MeshVS_DMF_NodalColorDataPrs)); │ │ │ + m.attr("MeshVS_DMF_ElementalColorDataPrs") = py::cast(int(MeshVS_DMF_ElementalColorDataPrs)); │ │ │ + m.attr("MeshVS_DMF_TextDataPrs") = py::cast(int(MeshVS_DMF_TextDataPrs)); │ │ │ + m.attr("MeshVS_DMF_EntitiesWithData") = py::cast(int(MeshVS_DMF_EntitiesWithData)); │ │ │ + m.attr("MeshVS_DMF_DeformedPrsWireFrame") = py::cast(int(MeshVS_DMF_DeformedPrsWireFrame)); │ │ │ + m.attr("MeshVS_DMF_DeformedPrsShading") = py::cast(int(MeshVS_DMF_DeformedPrsShading)); │ │ │ + m.attr("MeshVS_DMF_DeformedPrsShrink") = py::cast(int(MeshVS_DMF_DeformedPrsShrink)); │ │ │ + m.attr("MeshVS_DMF_DeformedMask") = py::cast(int(MeshVS_DMF_DeformedMask)); │ │ │ + m.attr("MeshVS_DMF_SelectionPrs") = py::cast(int(MeshVS_DMF_SelectionPrs)); │ │ │ + m.attr("MeshVS_DMF_HilightPrs") = py::cast(int(MeshVS_DMF_HilightPrs)); │ │ │ + m.attr("MeshVS_DMF_User") = py::cast(int(MeshVS_DMF_User)); │ │ │ py::enum_(m, "MeshVS_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.)#") │ │ │ .value("MeshVS_DA_InteriorStyle",MeshVS_DrawerAttribute::MeshVS_DA_InteriorStyle) │ │ │ .value("MeshVS_DA_InteriorColor",MeshVS_DrawerAttribute::MeshVS_DA_InteriorColor) │ │ │ .value("MeshVS_DA_BackInteriorColor",MeshVS_DrawerAttribute::MeshVS_DA_BackInteriorColor) │ │ │ .value("MeshVS_DA_EdgeColor",MeshVS_DrawerAttribute::MeshVS_DA_EdgeColor) │ │ │ .value("MeshVS_DA_EdgeType",MeshVS_DrawerAttribute::MeshVS_DA_EdgeType) │ │ │ .value("MeshVS_DA_EdgeWidth",MeshVS_DrawerAttribute::MeshVS_DA_EdgeWidth) │ │ │ @@ -220,34 +223,31 @@ │ │ │ .value("MeshVS_ET_Node",MeshVS_EntityType::MeshVS_ET_Node) │ │ │ .value("MeshVS_ET_0D",MeshVS_EntityType::MeshVS_ET_0D) │ │ │ .value("MeshVS_ET_Link",MeshVS_EntityType::MeshVS_ET_Link) │ │ │ .value("MeshVS_ET_Face",MeshVS_EntityType::MeshVS_ET_Face) │ │ │ .value("MeshVS_ET_Volume",MeshVS_EntityType::MeshVS_ET_Volume) │ │ │ .value("MeshVS_ET_Element",MeshVS_EntityType::MeshVS_ET_Element) │ │ │ .value("MeshVS_ET_All",MeshVS_EntityType::MeshVS_ET_All).export_values(); │ │ │ - py::enum_(m, "MeshVS_MeshSelectionMethod",R"#(this enumeration describe what type of sensitive entity will be built in 0-th selection mode (it means that whole mesh is selected ))#") │ │ │ - .value("MeshVS_MSM_PRECISE",MeshVS_MeshSelectionMethod::MeshVS_MSM_PRECISE) │ │ │ - .value("MeshVS_MSM_NODES",MeshVS_MeshSelectionMethod::MeshVS_MSM_NODES) │ │ │ - .value("MeshVS_MSM_BOX",MeshVS_MeshSelectionMethod::MeshVS_MSM_BOX).export_values(); │ │ │ - m.attr("MeshVS_DMF_WireFrame") = py::cast(int(MeshVS_DMF_WireFrame)); │ │ │ - m.attr("MeshVS_DMF_Shading") = py::cast(int(MeshVS_DMF_Shading)); │ │ │ - m.attr("MeshVS_DMF_Shrink") = py::cast(int(MeshVS_DMF_Shrink)); │ │ │ - m.attr("MeshVS_DMF_OCCMask") = py::cast(int(MeshVS_DMF_OCCMask)); │ │ │ - m.attr("MeshVS_DMF_VectorDataPrs") = py::cast(int(MeshVS_DMF_VectorDataPrs)); │ │ │ - m.attr("MeshVS_DMF_NodalColorDataPrs") = py::cast(int(MeshVS_DMF_NodalColorDataPrs)); │ │ │ - m.attr("MeshVS_DMF_ElementalColorDataPrs") = py::cast(int(MeshVS_DMF_ElementalColorDataPrs)); │ │ │ - m.attr("MeshVS_DMF_TextDataPrs") = py::cast(int(MeshVS_DMF_TextDataPrs)); │ │ │ - m.attr("MeshVS_DMF_EntitiesWithData") = py::cast(int(MeshVS_DMF_EntitiesWithData)); │ │ │ - m.attr("MeshVS_DMF_DeformedPrsWireFrame") = py::cast(int(MeshVS_DMF_DeformedPrsWireFrame)); │ │ │ - m.attr("MeshVS_DMF_DeformedPrsShading") = py::cast(int(MeshVS_DMF_DeformedPrsShading)); │ │ │ - m.attr("MeshVS_DMF_DeformedPrsShrink") = py::cast(int(MeshVS_DMF_DeformedPrsShrink)); │ │ │ - m.attr("MeshVS_DMF_DeformedMask") = py::cast(int(MeshVS_DMF_DeformedMask)); │ │ │ - m.attr("MeshVS_DMF_SelectionPrs") = py::cast(int(MeshVS_DMF_SelectionPrs)); │ │ │ - m.attr("MeshVS_DMF_HilightPrs") = py::cast(int(MeshVS_DMF_HilightPrs)); │ │ │ - m.attr("MeshVS_DMF_User") = py::cast(int(MeshVS_DMF_User)); │ │ │ + py::enum_(m, "MeshVS_SelectionModeFlags",R"#()#") │ │ │ + .value("MeshVS_SMF_Mesh",MeshVS_SelectionModeFlags::MeshVS_SMF_Mesh) │ │ │ + .value("MeshVS_SMF_Node",MeshVS_SelectionModeFlags::MeshVS_SMF_Node) │ │ │ + .value("MeshVS_SMF_0D",MeshVS_SelectionModeFlags::MeshVS_SMF_0D) │ │ │ + .value("MeshVS_SMF_Link",MeshVS_SelectionModeFlags::MeshVS_SMF_Link) │ │ │ + .value("MeshVS_SMF_Face",MeshVS_SelectionModeFlags::MeshVS_SMF_Face) │ │ │ + .value("MeshVS_SMF_Volume",MeshVS_SelectionModeFlags::MeshVS_SMF_Volume) │ │ │ + .value("MeshVS_SMF_Element",MeshVS_SelectionModeFlags::MeshVS_SMF_Element) │ │ │ + .value("MeshVS_SMF_All",MeshVS_SelectionModeFlags::MeshVS_SMF_All) │ │ │ + .value("MeshVS_SMF_Group",MeshVS_SelectionModeFlags::MeshVS_SMF_Group).export_values(); │ │ │ + m.attr("MeshVS_BP_Mesh") = py::cast(int(MeshVS_BP_Mesh)); │ │ │ + m.attr("MeshVS_BP_NodalColor") = py::cast(int(MeshVS_BP_NodalColor)); │ │ │ + m.attr("MeshVS_BP_ElemColor") = py::cast(int(MeshVS_BP_ElemColor)); │ │ │ + m.attr("MeshVS_BP_Text") = py::cast(int(MeshVS_BP_Text)); │ │ │ + m.attr("MeshVS_BP_Vector") = py::cast(int(MeshVS_BP_Vector)); │ │ │ + m.attr("MeshVS_BP_User") = py::cast(int(MeshVS_BP_User)); │ │ │ + m.attr("MeshVS_BP_Default") = py::cast(int(MeshVS_BP_Default)); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_MeshVS_DataSource : public MeshVS_DataSource{ │ │ │ public: │ │ │ using MeshVS_DataSource::MeshVS_DataSource; │ │ ├── ./usr/share/libocp/OCP/Message_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -85,39 +85,14 @@ │ │ │ py::module m = main_module.def_submodule("Message", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Message_Gravity",R"#(Defines gravity level of messages - Trace: low-level details on algorithm execution (usually for debug purposes) - Info: informative message - Warning: warning message - Alarm: non-critical error - Fail: fatal error)#") │ │ │ - .value("Message_Trace",Message_Gravity::Message_Trace) │ │ │ - .value("Message_Info",Message_Gravity::Message_Info) │ │ │ - .value("Message_Warning",Message_Gravity::Message_Warning) │ │ │ - .value("Message_Alarm",Message_Gravity::Message_Alarm) │ │ │ - .value("Message_Fail",Message_Gravity::Message_Fail).export_values(); │ │ │ - py::enum_(m, "Message_StatusType",R"#(Definition of types of execution status supported by the class Message_ExecStatus)#") │ │ │ - .value("Message_DONE",Message_StatusType::Message_DONE) │ │ │ - .value("Message_WARN",Message_StatusType::Message_WARN) │ │ │ - .value("Message_ALARM",Message_StatusType::Message_ALARM) │ │ │ - .value("Message_FAIL",Message_StatusType::Message_FAIL).export_values(); │ │ │ - py::enum_(m, "Message_MetricType",R"#(Specifies kind of report information to collect)#") │ │ │ - .value("Message_MetricType_None",Message_MetricType::Message_MetricType_None) │ │ │ - .value("Message_MetricType_ThreadCPUUserTime",Message_MetricType::Message_MetricType_ThreadCPUUserTime) │ │ │ - .value("Message_MetricType_ThreadCPUSystemTime",Message_MetricType::Message_MetricType_ThreadCPUSystemTime) │ │ │ - .value("Message_MetricType_ProcessCPUUserTime",Message_MetricType::Message_MetricType_ProcessCPUUserTime) │ │ │ - .value("Message_MetricType_ProcessCPUSystemTime",Message_MetricType::Message_MetricType_ProcessCPUSystemTime) │ │ │ - .value("Message_MetricType_WallClock",Message_MetricType::Message_MetricType_WallClock) │ │ │ - .value("Message_MetricType_MemPrivate",Message_MetricType::Message_MetricType_MemPrivate) │ │ │ - .value("Message_MetricType_MemVirtual",Message_MetricType::Message_MetricType_MemVirtual) │ │ │ - .value("Message_MetricType_MemWorkingSet",Message_MetricType::Message_MetricType_MemWorkingSet) │ │ │ - .value("Message_MetricType_MemWorkingSetPeak",Message_MetricType::Message_MetricType_MemWorkingSetPeak) │ │ │ - .value("Message_MetricType_MemSwapUsage",Message_MetricType::Message_MetricType_MemSwapUsage) │ │ │ - .value("Message_MetricType_MemSwapUsagePeak",Message_MetricType::Message_MetricType_MemSwapUsagePeak) │ │ │ - .value("Message_MetricType_MemHeapUsage",Message_MetricType::Message_MetricType_MemHeapUsage).export_values(); │ │ │ py::enum_(m, "Message_Status",R"#(Enumeration covering all execution statuses supported by the class Message_ExecStatus: 32 statuses per each of 4 types (DONE, WARN, ALARM, FAIL))#") │ │ │ .value("Message_None",Message_Status::Message_None) │ │ │ .value("Message_Done1",Message_Status::Message_Done1) │ │ │ .value("Message_Done2",Message_Status::Message_Done2) │ │ │ .value("Message_Done3",Message_Status::Message_Done3) │ │ │ .value("Message_Done4",Message_Status::Message_Done4) │ │ │ .value("Message_Done5",Message_Status::Message_Done5) │ │ │ @@ -240,24 +215,49 @@ │ │ │ .value("Message_Fail26",Message_Status::Message_Fail26) │ │ │ .value("Message_Fail27",Message_Status::Message_Fail27) │ │ │ .value("Message_Fail28",Message_Status::Message_Fail28) │ │ │ .value("Message_Fail29",Message_Status::Message_Fail29) │ │ │ .value("Message_Fail30",Message_Status::Message_Fail30) │ │ │ .value("Message_Fail31",Message_Status::Message_Fail31) │ │ │ .value("Message_Fail32",Message_Status::Message_Fail32).export_values(); │ │ │ + py::enum_(m, "Message_MetricType",R"#(Specifies kind of report information to collect)#") │ │ │ + .value("Message_MetricType_None",Message_MetricType::Message_MetricType_None) │ │ │ + .value("Message_MetricType_ThreadCPUUserTime",Message_MetricType::Message_MetricType_ThreadCPUUserTime) │ │ │ + .value("Message_MetricType_ThreadCPUSystemTime",Message_MetricType::Message_MetricType_ThreadCPUSystemTime) │ │ │ + .value("Message_MetricType_ProcessCPUUserTime",Message_MetricType::Message_MetricType_ProcessCPUUserTime) │ │ │ + .value("Message_MetricType_ProcessCPUSystemTime",Message_MetricType::Message_MetricType_ProcessCPUSystemTime) │ │ │ + .value("Message_MetricType_WallClock",Message_MetricType::Message_MetricType_WallClock) │ │ │ + .value("Message_MetricType_MemPrivate",Message_MetricType::Message_MetricType_MemPrivate) │ │ │ + .value("Message_MetricType_MemVirtual",Message_MetricType::Message_MetricType_MemVirtual) │ │ │ + .value("Message_MetricType_MemWorkingSet",Message_MetricType::Message_MetricType_MemWorkingSet) │ │ │ + .value("Message_MetricType_MemWorkingSetPeak",Message_MetricType::Message_MetricType_MemWorkingSetPeak) │ │ │ + .value("Message_MetricType_MemSwapUsage",Message_MetricType::Message_MetricType_MemSwapUsage) │ │ │ + .value("Message_MetricType_MemSwapUsagePeak",Message_MetricType::Message_MetricType_MemSwapUsagePeak) │ │ │ + .value("Message_MetricType_MemHeapUsage",Message_MetricType::Message_MetricType_MemHeapUsage).export_values(); │ │ │ + py::enum_(m, "Message_Gravity",R"#(Defines gravity level of messages - Trace: low-level details on algorithm execution (usually for debug purposes) - Info: informative message - Warning: warning message - Alarm: non-critical error - Fail: fatal error)#") │ │ │ + .value("Message_Trace",Message_Gravity::Message_Trace) │ │ │ + .value("Message_Info",Message_Gravity::Message_Info) │ │ │ + .value("Message_Warning",Message_Gravity::Message_Warning) │ │ │ + .value("Message_Alarm",Message_Gravity::Message_Alarm) │ │ │ + .value("Message_Fail",Message_Gravity::Message_Fail).export_values(); │ │ │ py::enum_(m, "Message_ConsoleColor",R"#(Color definition for console/terminal output (limited palette).)#") │ │ │ .value("Message_ConsoleColor_Default",Message_ConsoleColor::Message_ConsoleColor_Default) │ │ │ .value("Message_ConsoleColor_Black",Message_ConsoleColor::Message_ConsoleColor_Black) │ │ │ .value("Message_ConsoleColor_White",Message_ConsoleColor::Message_ConsoleColor_White) │ │ │ .value("Message_ConsoleColor_Red",Message_ConsoleColor::Message_ConsoleColor_Red) │ │ │ .value("Message_ConsoleColor_Blue",Message_ConsoleColor::Message_ConsoleColor_Blue) │ │ │ .value("Message_ConsoleColor_Green",Message_ConsoleColor::Message_ConsoleColor_Green) │ │ │ .value("Message_ConsoleColor_Yellow",Message_ConsoleColor::Message_ConsoleColor_Yellow) │ │ │ .value("Message_ConsoleColor_Cyan",Message_ConsoleColor::Message_ConsoleColor_Cyan) │ │ │ .value("Message_ConsoleColor_Magenta",Message_ConsoleColor::Message_ConsoleColor_Magenta).export_values(); │ │ │ + py::enum_(m, "Message_StatusType",R"#(Definition of types of execution status supported by the class Message_ExecStatus)#") │ │ │ + .value("Message_DONE",Message_StatusType::Message_DONE) │ │ │ + .value("Message_WARN",Message_StatusType::Message_WARN) │ │ │ + .value("Message_ALARM",Message_StatusType::Message_ALARM) │ │ │ + .value("Message_FAIL",Message_StatusType::Message_FAIL).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Message_Printer : public Message_Printer{ │ │ │ public: │ │ │ using Message_Printer::Message_Printer; │ │ ├── ./usr/share/libocp/OCP/NCollection_tmpl.hxx │ │ │┄ Ordering differences only │ │ │ @@ -79,367 +79,14 @@ │ │ │ #include │ │ │ │ │ │ // user-defined pre │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ -template │ │ │ -void preregister_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const size_t >() ,py::arg("theSize") ) │ │ │ - .def(py::init< >() ) │ │ │ - .def("Allocate", │ │ │ - (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate, │ │ │ - R"#()#" ,py::arg("theSize")) │ │ │ - .def("Size", │ │ │ - (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size, │ │ │ - R"#()#" ) │ │ │ - .def("__len__",[](const NCollection_LocalArray &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ -void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DoubleMap is used to bind pairs (Key1,Key2) and retrieve them in linear time.)#"); │ │ │ -} │ │ │ - │ │ │ -template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ -void register_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_DoubleMap & >() ,py::arg("theOther") ) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange, │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ - .def("Assign", │ │ │ - (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign, │ │ │ - R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("ReSize", │ │ │ - (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize, │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ - .def("Bind", │ │ │ - (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind, │ │ │ - R"#(Bind)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ - .def("AreBound", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound, │ │ │ - R"#(* AreBound)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ - .def("IsBound1", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1, │ │ │ - R"#(IsBound1)#" ,py::arg("theKey1")) │ │ │ - .def("IsBound2", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2, │ │ │ - R"#(IsBound2)#" ,py::arg("theKey2")) │ │ │ - .def("UnBind1", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1, │ │ │ - R"#(UnBind1)#" ,py::arg("theKey1")) │ │ │ - .def("UnBind2", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2, │ │ │ - R"#(UnBind2)#" ,py::arg("theKey2")) │ │ │ - .def("Find1", │ │ │ - ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ - R"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#" ,py::arg("theKey1")) │ │ │ - .def("Find1", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ - R"#(Find the Key1 and return Key2 value (by copying its value).)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ - .def("Seek1", │ │ │ - ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1, │ │ │ - R"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#" ,py::arg("theKey1")) │ │ │ - .def("Find2", │ │ │ - ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ - R"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#" ,py::arg("theKey2")) │ │ │ - .def("Find2", │ │ │ - (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ - R"#(Find the Key2 and return Key1 value (by copying its value).)#" ,py::arg("theKey2"), py::arg("theKey1")) │ │ │ - .def("Seek2", │ │ │ - ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2, │ │ │ - R"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#" ,py::arg("theKey2")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear, │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear, │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size, │ │ │ - R"#(Size)#" ) │ │ │ - .def("__len__",[](const NCollection_DoubleMap &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Simple linear interpolation tool (also known as mix() in GLSL). The main purpose of this template class is making interpolation routines more readable.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const T &, const T & >() ,py::arg("theStart"), py::arg("theEnd") ) │ │ │ - .def("Init", │ │ │ - (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init, │ │ │ - R"#(Initialize values.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ - .def("Interpolate", │ │ │ - (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate, │ │ │ - R"#(Compute interpolated value between two values.)#" ,py::arg("theT"), py::arg("theResult")) │ │ │ - .def_static("Interpolate_s", │ │ │ - (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate, │ │ │ - R"#(Compute interpolated value between two values.)#" ,py::arg("theStart"), py::arg("theEnd"), py::arg("theT")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template > │ │ │ -void preregister_template_NCollection_DataMap(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DataMap is a Map to store keys with associated Items. See Map from NCollection for a discussion about the number of buckets.)#"); │ │ │ -} │ │ │ - │ │ │ -template > │ │ │ -void register_template_NCollection_DataMap(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_DataMap & >() ,py::arg("theOther") ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::begin, │ │ │ - R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::end, │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cbegin, │ │ │ - R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cend, │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_DataMap::*)( NCollection_DataMap & ) ) &NCollection_DataMap::Exchange, │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ - .def("Assign", │ │ │ - (NCollection_DataMap & (NCollection_DataMap::*)( const NCollection_DataMap & ) ) &NCollection_DataMap::Assign, │ │ │ - R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("ReSize", │ │ │ - (void (NCollection_DataMap::*)( const Standard_Integer ) ) &NCollection_DataMap::ReSize, │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ - .def("Bind", │ │ │ - (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bind, │ │ │ - R"#(Bind binds Item to Key in map.)#" ,py::arg("theKey"), py::arg("theItem")) │ │ │ - .def("Bound", │ │ │ - (TheItemType * (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bound, │ │ │ - R"#(Bound binds Item to Key in map.)#" ,py::arg("theKey"), py::arg("theItem")) │ │ │ - .def("IsBound", │ │ │ - (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::IsBound, │ │ │ - R"#(IsBound)#" ,py::arg("theKey")) │ │ │ - .def("UnBind", │ │ │ - (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::UnBind, │ │ │ - R"#(UnBind removes Item Key pair from map)#" ,py::arg("theKey")) │ │ │ - .def("Seek", │ │ │ - ( const TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Seek, │ │ │ - R"#(Seek returns pointer to Item by Key. Returns NULL is Key was not bound.)#" ,py::arg("theKey")) │ │ │ - .def("Find", │ │ │ - ( const TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Find, │ │ │ - R"#(Find returns the Item for Key. Raises if Key was not bound)#" ,py::arg("theKey")) │ │ │ - .def("Find", │ │ │ - (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_DataMap::Find, │ │ │ - R"#(Find Item for key with copying.)#" ,py::arg("theKey"), py::arg("theValue")) │ │ │ - .def("ChangeSeek", │ │ │ - (TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeSeek, │ │ │ - R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL is Key was not bound.)#" ,py::arg("theKey")) │ │ │ - .def("ChangeFind", │ │ │ - (TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeFind, │ │ │ - R"#(ChangeFind returns mofifiable Item by Key. Raises if Key was not bound)#" ,py::arg("theKey")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_DataMap::*)( const Standard_Boolean ) ) &NCollection_DataMap::Clear, │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_DataMap::*)( const handle & ) ) &NCollection_DataMap::Clear, │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_DataMap::*)() const) &NCollection_DataMap::Size, │ │ │ - R"#(Size)#" ) │ │ │ - .def("__iter__",[](const NCollection_DataMap &self) │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_DataMap &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const NCollection_Iterator & >() ,py::arg("theOther") ) │ │ │ - .def(py::init< const Container & >() ,py::arg("theList") ) │ │ │ - .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg("theList"), py::arg("theOther") ) │ │ │ - .def("Init", │ │ │ - (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init, │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ - .def("Init", │ │ │ - (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init, │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ - .def("More", │ │ │ - (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More, │ │ │ - R"#()#" ) │ │ │ - .def("Initialize", │ │ │ - (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize, │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ - .def("Initialize", │ │ │ - (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize, │ │ │ - R"#()#" ,py::arg("theList")) │ │ │ - .def("ValueIter", │ │ │ - ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter, │ │ │ - R"#()#" ) │ │ │ - .def("ChangeValueIter", │ │ │ - (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter, │ │ │ - R"#()#" ) │ │ │ - .def("EndIter", │ │ │ - ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter, │ │ │ - R"#()#" ) │ │ │ - .def("ChangeEndIter", │ │ │ - (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter, │ │ │ - R"#()#" ) │ │ │ - .def("Next", │ │ │ - (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next, │ │ │ - R"#()#" ) │ │ │ - .def("Value", │ │ │ - ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value, │ │ │ - R"#()#" ) │ │ │ - .def("ChangeValue", │ │ │ - ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue, │ │ │ - R"#()#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_List(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseList >(m,name,R"#(Purpose: Simple list to link items together keeping the first and the last one. Inherits BaseList, adding the data item to each node.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_List(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_List & >() ,py::arg("theOther") ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin, │ │ │ - R"#(Returns an iterator pointing to the first element in the list.)#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end, │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the list.)#" ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin, │ │ │ - R"#(Returns a const iterator pointing to the first element in the list.)#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend, │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the list.)#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size, │ │ │ - R"#(Size - Number of items)#" ) │ │ │ - .def("Assign", │ │ │ - (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign, │ │ │ - R"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear, │ │ │ - R"#(Clear this list)#" ,py::arg("theAllocator")) │ │ │ - .def("First", │ │ │ - ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First, │ │ │ - R"#(First item)#" ) │ │ │ - .def("First", │ │ │ - (TheItemType & (NCollection_List::*)() ) &NCollection_List::First, │ │ │ - R"#(First item (non-const))#" ) │ │ │ - .def("Last", │ │ │ - ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last, │ │ │ - R"#(Last item)#" ) │ │ │ - .def("Last", │ │ │ - (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last, │ │ │ - R"#(Last item (non-const))#" ) │ │ │ - .def("Append", │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append, │ │ │ - R"#(Append one item at the end)#" ,py::arg("theItem")) │ │ │ - .def("Append", │ │ │ - (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append, │ │ │ - R"#(Append one item at the end and output iterator pointing at the appended item)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ - .def("Append", │ │ │ - (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append, │ │ │ - R"#(Append another list at the end. After this operation, theOther list will be cleared.)#" ,py::arg("theOther")) │ │ │ - .def("Prepend", │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend, │ │ │ - R"#(Prepend one item at the beginning)#" ,py::arg("theItem")) │ │ │ - .def("Prepend", │ │ │ - (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend, │ │ │ - R"#(Prepend another list at the beginning)#" ,py::arg("theOther")) │ │ │ - .def("RemoveFirst", │ │ │ - (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst, │ │ │ - R"#(RemoveFirst item)#" ) │ │ │ - .def("Remove", │ │ │ - (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove, │ │ │ - R"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#" ,py::arg("theIter")) │ │ │ - .def("InsertBefore", │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ - R"#(InsertBefore)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ - .def("InsertBefore", │ │ │ - (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ - R"#(InsertBefore)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ - .def("InsertAfter", │ │ │ - (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ - R"#(InsertAfter)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ - .def("InsertAfter", │ │ │ - (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ - R"#(InsertAfter)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ - .def("Reverse", │ │ │ - (void (NCollection_List::*)() ) &NCollection_List::Reverse, │ │ │ - R"#(Reverse the list)#" ) │ │ │ - .def("__iter__",[](const NCollection_List &self) │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_List &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: Abstract list node class. Used by BaseList Remark: Internal class)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const TheItemType &,NCollection_ListNode * >() ,py::arg("theItem"), py::arg("theNext") ) │ │ │ - .def("Value", │ │ │ - ( const TheItemType & (NCollection_TListNode::*)() const) &NCollection_TListNode::Value, │ │ │ - R"#(Constant value access)#" ) │ │ │ - .def("ChangeValue", │ │ │ - (TheItemType & (NCollection_TListNode::*)() ) &NCollection_TListNode::ChangeValue, │ │ │ - R"#(Variable value access)#" ) │ │ │ - .def_static("delNode_s", │ │ │ - (void (*)( NCollection_ListNode * , handle & ) ) &NCollection_TListNode::delNode, │ │ │ - R"#(Static deleter to be passed to BaseList)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(A data structure for sorting geometric objects (called targets) in n-dimensional space into cells, with associated algorithm for fast checking of coincidence (overlapping, intersection, etc.) with other objects (called here bullets).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_CellFilter(py::object &m, const char *name){ │ │ │ @@ -470,127 +117,108 @@ │ │ │ .def("Inspect", │ │ │ (void (NCollection_CellFilter::*)( const typename NCollection_CellFilter::Point & , const typename NCollection_CellFilter::Point & , Inspector & ) ) &NCollection_CellFilter::Inspect, │ │ │ R"#(Inspect all targets in the cells range limited by two given points (the first point must have all coordinates equal or less than the same coordinate of the second point))#" ,py::arg("thePntMin"), py::arg("thePntMax"), py::arg("theInspector")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseSequence >(m,name,R"#(Purpose: Definition of a sequence of elements indexed by an Integer in range of 1..n)#"); │ │ │ +void preregister_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(The class NCollection_Array1 represents unidimensional arrays of fixed size known at run time. The range of the index is user defined. An array1 can be constructed with a "C array". This functionality is useful to call methods expecting an Array1. It allows to carry the bounds inside the arrays.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ -void register_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name)) │ │ │ +void register_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ .def(py::init< >() ) │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_Sequence & >() ,py::arg("theOther") ) │ │ │ + .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLower"), py::arg("theUpper") ) │ │ │ + .def(py::init< const typename NCollection_Array1::allocator_type &, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theLower"), py::arg("theUpper") ) │ │ │ + .def(py::init< typename NCollection_Array1::const_reference, const Standard_Integer, const Standard_Integer, const bool >() ,py::arg("theBegin"), py::arg("theLower"), py::arg("theUpper"), py::arg("theUseBuffer") ) │ │ │ + .def(py::init< const NCollection_Array1 & >() ,py::arg("theOther") ) │ │ │ .def("begin", │ │ │ - (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin, │ │ │ - R"#(Returns an iterator pointing to the first element in the sequence.)#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end, │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::begin, │ │ │ + R"#()#" ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::begin, │ │ │ + R"#()#" ) │ │ │ .def("cbegin", │ │ │ - (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin, │ │ │ - R"#(Returns a const iterator pointing to the first element in the sequence.)#" ) │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cbegin, │ │ │ + R"#()#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::end, │ │ │ + R"#()#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::end, │ │ │ + R"#()#" ) │ │ │ .def("cend", │ │ │ - (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend, │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ + (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cend, │ │ │ + R"#()#" ) │ │ │ + .def("Init", │ │ │ + (void (NCollection_Array1::*)( typename NCollection_Array1::const_reference ) ) &NCollection_Array1::Init, │ │ │ + R"#(Initialise the items with theValue)#" ,py::arg("theValue")) │ │ │ .def("Size", │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size, │ │ │ - R"#(Number of items)#" ) │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Size, │ │ │ + R"#(Size query)#" ) │ │ │ .def("Length", │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length, │ │ │ - R"#(Number of items)#" ) │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Length, │ │ │ + R"#(Length query (the same))#" ) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_Array1::*)() const) &NCollection_Array1::IsEmpty, │ │ │ + R"#(Return TRUE if array has zero length.)#" ) │ │ │ .def("Lower", │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower, │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Lower, │ │ │ + R"#(Lower bound)#" ) │ │ │ .def("Upper", │ │ │ - (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper, │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty, │ │ │ - R"#(Empty query)#" ) │ │ │ - .def("Reverse", │ │ │ - (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse, │ │ │ - R"#(Reverse sequence)#" ) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange, │ │ │ - R"#(Exchange two members)#" ,py::arg("I"), py::arg("J")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear, │ │ │ - R"#(Clear the items out, take a new allocator if non null)#" ,py::arg("theAllocator")) │ │ │ + (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Upper, │ │ │ + R"#(Upper bound)#" ) │ │ │ .def("Assign", │ │ │ - (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign, │ │ │ - R"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("Remove", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ - R"#(Remove one item)#" ,py::arg("theIndex")) │ │ │ - .def("Remove", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ - R"#(Remove range of items)#" ,py::arg("theFromIndex"), py::arg("theToIndex")) │ │ │ - .def("Append", │ │ │ - (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append, │ │ │ - R"#(Append one item)#" ,py::arg("theItem")) │ │ │ - .def("Append", │ │ │ - (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append, │ │ │ - R"#(Append another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ - .def("Prepend", │ │ │ - (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend, │ │ │ - R"#(Prepend one item)#" ,py::arg("theItem")) │ │ │ - .def("Prepend", │ │ │ - (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend, │ │ │ - R"#(Prepend another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ - .def("InsertBefore", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore, │ │ │ - R"#(InsertBefore theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ - .def("InsertBefore", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore, │ │ │ - R"#(InsertBefore theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ - .def("InsertAfter", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter, │ │ │ - R"#(InsertAfter theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ - .def("InsertAfter", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter, │ │ │ - R"#(InsertAfter theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ - .def("Split", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split, │ │ │ - R"#(Split in two sequences)#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ + (NCollection_Array1 & (NCollection_Array1::*)( const NCollection_Array1 & ) ) &NCollection_Array1::Assign, │ │ │ + R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ + .def("Move", │ │ │ + (NCollection_Array1 & (NCollection_Array1::*)( NCollection_Array1 & ) ) &NCollection_Array1::Move, │ │ │ + R"#()#" ,py::arg("theOther")) │ │ │ .def("First", │ │ │ - ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First, │ │ │ - R"#(First item access)#" ) │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::First, │ │ │ + R"#(Returns first element)#" ) │ │ │ .def("ChangeFirst", │ │ │ - (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst, │ │ │ - R"#(First item access)#" ) │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeFirst, │ │ │ + R"#(Returns first element)#" ) │ │ │ .def("Last", │ │ │ - ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last, │ │ │ - R"#(Last item access)#" ) │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::Last, │ │ │ + R"#(Returns last element)#" ) │ │ │ .def("ChangeLast", │ │ │ - (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast, │ │ │ - R"#(Last item access)#" ) │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeLast, │ │ │ + R"#(Returns last element)#" ) │ │ │ .def("Value", │ │ │ - ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value, │ │ │ - R"#(Constant item access by theIndex)#" ,py::arg("theIndex")) │ │ │ + (typename NCollection_Array1::const_reference (NCollection_Array1::*)( const Standard_Integer ) const) &NCollection_Array1::Value, │ │ │ + R"#(Constant value access)#" ,py::arg("theIndex")) │ │ │ .def("ChangeValue", │ │ │ - (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue, │ │ │ - R"#(Variable item access by theIndex)#" ,py::arg("theIndex")) │ │ │ + (typename NCollection_Array1::reference (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::ChangeValue, │ │ │ + R"#(Variable value access)#" ,py::arg("theIndex")) │ │ │ .def("SetValue", │ │ │ - (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue, │ │ │ - R"#(Set item value by theIndex)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ - .def_static("delNode_s", │ │ │ - (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode, │ │ │ - R"#(Static deleter to be passed to BaseSequence)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ - .def("__iter__",[](const NCollection_Sequence &self) │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer , const typename NCollection_Array1::value_type & ) ) &NCollection_Array1::SetValue, │ │ │ + R"#(Set value)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ + .def("UpdateLowerBound", │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateLowerBound, │ │ │ + R"#(Changes the lowest bound. Do not move data)#" ,py::arg("theLower")) │ │ │ + .def("UpdateUpperBound", │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateUpperBound, │ │ │ + R"#(Changes the upper bound. Do not move data)#" ,py::arg("theUpper")) │ │ │ + .def("Resize", │ │ │ + (void (NCollection_Array1::*)( const Standard_Integer , const Standard_Integer , const Standard_Boolean ) ) &NCollection_Array1::Resize, │ │ │ + R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLower"), py::arg("theUpper"), py::arg("theToCopyData")) │ │ │ + .def("IsDeletable", │ │ │ + (bool (NCollection_Array1::*)() const) &NCollection_Array1::IsDeletable, │ │ │ + R"#()#" ) │ │ │ + .def("__iter__",[](const NCollection_Array1 &self) │ │ │ { return py::make_iterator(self.begin(), self.end()); }, │ │ │ py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_Sequence &self) │ │ │ + .def("__len__",[](const NCollection_Array1 &self) │ │ │ { return self.Size(); } │ │ │ ) │ │ │ - .def("__bool__",[](const NCollection_Sequence &self) │ │ │ + .def("__bool__",[](const NCollection_Array1 &self) │ │ │ { return self.IsEmpty(); } │ │ │ ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template > │ │ │ void preregister_template_NCollection_IndexedMap(py::object &m, const char *name){ │ │ │ @@ -659,47 +287,14 @@ │ │ │ py::keep_alive<0, 1>()) │ │ │ .def("__len__",[](const NCollection_IndexedMap &self) │ │ │ { return self.Size(); } │ │ │ ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: The DefaultHasher is a Hasher that is used by default in NCollection maps. To compute the hash code of the key is used the global function HashCode. To compare two keys is used the global function IsEqual.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle & >() ,py::arg("arg") ) │ │ │ - .def("address", │ │ │ - (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address, │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ - .def("address", │ │ │ - (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address, │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ - .def("destroy", │ │ │ - (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy, │ │ │ - R"#(Destroys the object. Uses the object destructor.)#" ,py::arg("thePnt")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_NCollection_EBTree(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes with the possibility of deleting objects from the tree.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_EBTree(py::object &m, const char *name){ │ │ │ @@ -719,634 +314,14 @@ │ │ │ R"#(Returns The leaf node containing the object.)#" ,py::arg("theObj")) │ │ │ .def("Clear", │ │ │ (void (NCollection_EBTree::*)( const handle & ) ) &NCollection_EBTree::Clear, │ │ │ R"#(Clears the contents of the tree. Redefined virtual method)#" ,py::arg("aNewAlloc")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template > │ │ │ -void preregister_template_NCollection_Map(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: Single hashed Map. This Map is used to store and retrieve keys in linear time.)#"); │ │ │ -} │ │ │ - │ │ │ -template > │ │ │ -void register_template_NCollection_Map(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_Map & >() ,py::arg("theOther") ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin, │ │ │ - R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend, │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange, │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ - .def("Assign", │ │ │ - (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign, │ │ │ - R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("ReSize", │ │ │ - (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize, │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ - .def("Add", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add, │ │ │ - R"#(Add)#" ,py::arg("theKey")) │ │ │ - .def("Added", │ │ │ - ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added, │ │ │ - R"#(Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object)#" ,py::arg("theKey")) │ │ │ - .def("Contains", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains, │ │ │ - R"#(Contains)#" ,py::arg("theKey")) │ │ │ - .def("Remove", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove, │ │ │ - R"#(Remove)#" ,py::arg("K")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear, │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear, │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size, │ │ │ - R"#(Size)#" ) │ │ │ - .def("IsEqual", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual, │ │ │ - R"#(Checks if two maps contain exactly the same keys. This function compares the keys of this map and another map and returns true if they contain exactly the same keys.)#" ,py::arg("theOther")) │ │ │ - .def("Contains", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains, │ │ │ - R"#(Checks if this map contains all keys of another map. This function checks if this map contains all keys of another map.)#" ,py::arg("theOther")) │ │ │ - .def("Union", │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union, │ │ │ - R"#(Sets this Map to be the result of union (aka addition, fuse, merge, boolean OR) operation between two given Maps The new Map contains the values that are contained either in the first map or in the second map or in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be passed as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ - .def("Unite", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite, │ │ │ - R"#(Apply to this Map the boolean operation union (aka addition, fuse, merge, boolean OR) with another (given) Map. The result contains the values that were previously contained in this map or contained in the given (operand) map. This algorithm is similar to method Union(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ - .def("HasIntersection", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection, │ │ │ - R"#(Returns true if this and theMap have common elements.)#" ,py::arg("theMap")) │ │ │ - .def("Intersection", │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection, │ │ │ - R"#(Sets this Map to be the result of intersection (aka multiplication, common, boolean AND) operation between two given Maps. The new Map contains only the values that are contained in both map operands. All previous content of this Map is cleared. This same map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ - .def("Intersect", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect, │ │ │ - R"#(Apply to this Map the intersection operation (aka multiplication, common, boolean AND) with another (given) Map. The result contains only the values that are contained in both this and the given maps. This algorithm is similar to method Intersection(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ - .def("Subtraction", │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction, │ │ │ - R"#(Sets this Map to be the result of subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation between two given Maps. The new Map contains only the values that are contained in the first map operands and not contained in the second one. All previous content of this Map is cleared.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ - .def("Subtract", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract, │ │ │ - R"#(Apply to this Map the subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation with another (given) Map. The result contains only the values that were previously contained in this map and not contained in this map. This algorithm is similar to method Subtract() with two operands. Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ - .def("Difference", │ │ │ - (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference, │ │ │ - R"#(Sets this Map to be the result of symmetric difference (aka exclusive disjunction, boolean XOR) operation between two given Maps. The new Map contains the values that are contained only in the first or the second operand maps but not in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ - .def("Differ", │ │ │ - (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ, │ │ │ - R"#(Apply to this Map the symmetric difference (aka exclusive disjunction, boolean XOR) operation with another (given) Map. The result contains the values that are contained only in this or the operand map, but not in both. This algorithm is similar to method Difference(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ - .def("__iter__",[](const NCollection_Map &self) │ │ │ - { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_Map &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Class NCollection_DynamicArray (dynamic array of objects))#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer >() ,py::arg("theIncrement") ) │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_DynamicArray & >() ,py::arg("theOther") ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin, │ │ │ - R"#()#" ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin, │ │ │ - R"#()#" ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin, │ │ │ - R"#()#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end, │ │ │ - R"#()#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end, │ │ │ - R"#()#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend, │ │ │ - R"#()#" ) │ │ │ - .def("Length", │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length, │ │ │ - R"#(Total number of items)#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size, │ │ │ - R"#(Total number of items in the vector)#" ) │ │ │ - .def("Lower", │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower, │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ - .def("Upper", │ │ │ - (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper, │ │ │ - R"#(Method for consistency with other collections.)#" ) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty, │ │ │ - R"#(Empty query)#" ) │ │ │ - .def("Assign", │ │ │ - (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign, │ │ │ - R"#(Assignment to the collection of the same type)#" ,py::arg("theOther"), py::arg("theOwnAllocator")) │ │ │ - .def("Append", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append, │ │ │ - R"#(Append)#" ,py::arg("theValue")) │ │ │ - .def("EraseLast", │ │ │ - (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast, │ │ │ - R"#()#" ) │ │ │ - .def("Appended", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended, │ │ │ - R"#(Appends an empty value and returns the reference to it)#" ) │ │ │ - .def("Value", │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value, │ │ │ - R"#()#" ,py::arg("theIndex")) │ │ │ - .def("First", │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First, │ │ │ - R"#(Returns first element)#" ) │ │ │ - .def("ChangeFirst", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst, │ │ │ - R"#(Returns first element)#" ) │ │ │ - .def("Last", │ │ │ - (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last, │ │ │ - R"#(Returns last element)#" ) │ │ │ - .def("ChangeLast", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast, │ │ │ - R"#(Returns last element)#" ) │ │ │ - .def("ChangeValue", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue, │ │ │ - R"#()#" ,py::arg("theIndex")) │ │ │ - .def("SetValue", │ │ │ - (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue, │ │ │ - R"#(SetValue () - set or append a value)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear, │ │ │ - R"#()#" ,py::arg("theReleaseMemory")) │ │ │ - .def("SetIncrement", │ │ │ - (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement, │ │ │ - R"#()#" ,py::arg("theIncrement")) │ │ │ - .def("__iter__",[](const NCollection_DynamicArray &self) │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_DynamicArray &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - .def("__bool__",[](const NCollection_DynamicArray &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const NCollection_UtfString & >() ,py::arg("theCopy") ) │ │ │ - .def(py::init< const char *, const Standard_Integer >() ,py::arg("theCopyUtf8"), py::arg("theLength") ) │ │ │ - .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg("theCopyUtf16"), py::arg("theLength") ) │ │ │ - .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg("theCopyUtf32"), py::arg("theLength") ) │ │ │ - .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg("theCopyUtfWide"), py::arg("theLength") ) │ │ │ - .def("Iterator", │ │ │ - (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator, │ │ │ - R"#()#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size, │ │ │ - R"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#" ) │ │ │ - .def("Length", │ │ │ - (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length, │ │ │ - R"#(Returns the length of the string in Unicode symbols)#" ) │ │ │ - .def("GetChar", │ │ │ - (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar, │ │ │ - R"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ - .def("GetCharBuffer", │ │ │ - ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer, │ │ │ - R"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ - .def("FromLocale", │ │ │ - (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale, │ │ │ - R"#(Copy from multibyte string in current system locale.)#" ,py::arg("theString"), py::arg("theLength")) │ │ │ - .def("IsEqual", │ │ │ - (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual, │ │ │ - R"#(Compares this string with another one.)#" ,py::arg("theCompare")) │ │ │ - .def("SubString", │ │ │ - (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString, │ │ │ - R"#(Returns the substring.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ - .def("ToCString", │ │ │ - ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString, │ │ │ - R"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#" ) │ │ │ - .def("ToUtf8", │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8, │ │ │ - R"#(Returns copy in UTF-8 format)#" ) │ │ │ - .def("ToUtf16", │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16, │ │ │ - R"#(Returns copy in UTF-16 format)#" ) │ │ │ - .def("ToUtf32", │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32, │ │ │ - R"#(Returns copy in UTF-32 format)#" ) │ │ │ - .def("ToUtfWide", │ │ │ - ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide, │ │ │ - R"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#" ) │ │ │ - .def("ToLocale", │ │ │ - (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale, │ │ │ - R"#(Converts the string into string in the current system locale.)#" ,py::arg("theBuffer"), py::arg("theSizeBytes")) │ │ │ - .def("IsEmpty", │ │ │ - (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty, │ │ │ - R"#(Returns true if string is empty)#" ) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear, │ │ │ - R"#(Zero string.)#" ) │ │ │ - .def("Assign", │ │ │ - ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign, │ │ │ - R"#(Copy from another string.)#" ,py::arg("theOther")) │ │ │ - .def("Swap", │ │ │ - (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap, │ │ │ - R"#(Exchange the data of two strings (without reallocating memory).)#" ,py::arg("theOther")) │ │ │ - .def("__iadd__", │ │ │ - (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=, │ │ │ - py::is_operator(), │ │ │ - R"#(Join strings.)#" ,py::arg("theAppend")) │ │ │ - .def("__len__",[](const NCollection_UtfString &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - .def("__bool__",[](const NCollection_UtfString &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(The class NCollection_Array1 represents unidimensional arrays of fixed size known at run time. The range of the index is user defined. An array1 can be constructed with a "C array". This functionality is useful to call methods expecting an Array1. It allows to carry the bounds inside the arrays.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Array1(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const Standard_Integer, const Standard_Integer >() ,py::arg("theLower"), py::arg("theUpper") ) │ │ │ - .def(py::init< const typename NCollection_Array1::allocator_type &, const Standard_Integer, const Standard_Integer >() ,py::arg("theAlloc"), py::arg("theLower"), py::arg("theUpper") ) │ │ │ - .def(py::init< typename NCollection_Array1::const_reference, const Standard_Integer, const Standard_Integer, const bool >() ,py::arg("theBegin"), py::arg("theLower"), py::arg("theUpper"), py::arg("theUseBuffer") ) │ │ │ - .def(py::init< const NCollection_Array1 & >() ,py::arg("theOther") ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::begin, │ │ │ - R"#()#" ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::begin, │ │ │ - R"#()#" ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cbegin, │ │ │ - R"#()#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_Array1::iterator (NCollection_Array1::*)() ) &NCollection_Array1::end, │ │ │ - R"#()#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::end, │ │ │ - R"#()#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_Array1::const_iterator (NCollection_Array1::*)() const) &NCollection_Array1::cend, │ │ │ - R"#()#" ) │ │ │ - .def("Init", │ │ │ - (void (NCollection_Array1::*)( typename NCollection_Array1::const_reference ) ) &NCollection_Array1::Init, │ │ │ - R"#(Initialise the items with theValue)#" ,py::arg("theValue")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Size, │ │ │ - R"#(Size query)#" ) │ │ │ - .def("Length", │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Length, │ │ │ - R"#(Length query (the same))#" ) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_Array1::*)() const) &NCollection_Array1::IsEmpty, │ │ │ - R"#(Return TRUE if array has zero length.)#" ) │ │ │ - .def("Lower", │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Lower, │ │ │ - R"#(Lower bound)#" ) │ │ │ - .def("Upper", │ │ │ - (Standard_Integer (NCollection_Array1::*)() const) &NCollection_Array1::Upper, │ │ │ - R"#(Upper bound)#" ) │ │ │ - .def("Assign", │ │ │ - (NCollection_Array1 & (NCollection_Array1::*)( const NCollection_Array1 & ) ) &NCollection_Array1::Assign, │ │ │ - R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ - .def("Move", │ │ │ - (NCollection_Array1 & (NCollection_Array1::*)( NCollection_Array1 & ) ) &NCollection_Array1::Move, │ │ │ - R"#()#" ,py::arg("theOther")) │ │ │ - .def("First", │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::First, │ │ │ - R"#(Returns first element)#" ) │ │ │ - .def("ChangeFirst", │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeFirst, │ │ │ - R"#(Returns first element)#" ) │ │ │ - .def("Last", │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)() const) &NCollection_Array1::Last, │ │ │ - R"#(Returns last element)#" ) │ │ │ - .def("ChangeLast", │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)() ) &NCollection_Array1::ChangeLast, │ │ │ - R"#(Returns last element)#" ) │ │ │ - .def("Value", │ │ │ - (typename NCollection_Array1::const_reference (NCollection_Array1::*)( const Standard_Integer ) const) &NCollection_Array1::Value, │ │ │ - R"#(Constant value access)#" ,py::arg("theIndex")) │ │ │ - .def("ChangeValue", │ │ │ - (typename NCollection_Array1::reference (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::ChangeValue, │ │ │ - R"#(Variable value access)#" ,py::arg("theIndex")) │ │ │ - .def("SetValue", │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer , const typename NCollection_Array1::value_type & ) ) &NCollection_Array1::SetValue, │ │ │ - R"#(Set value)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ - .def("UpdateLowerBound", │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateLowerBound, │ │ │ - R"#(Changes the lowest bound. Do not move data)#" ,py::arg("theLower")) │ │ │ - .def("UpdateUpperBound", │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer ) ) &NCollection_Array1::UpdateUpperBound, │ │ │ - R"#(Changes the upper bound. Do not move data)#" ,py::arg("theUpper")) │ │ │ - .def("Resize", │ │ │ - (void (NCollection_Array1::*)( const Standard_Integer , const Standard_Integer , const Standard_Boolean ) ) &NCollection_Array1::Resize, │ │ │ - R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLower"), py::arg("theUpper"), py::arg("theToCopyData")) │ │ │ - .def("IsDeletable", │ │ │ - (bool (NCollection_Array1::*)() const) &NCollection_Array1::IsDeletable, │ │ │ - R"#()#" ) │ │ │ - .def("__iter__",[](const NCollection_Array1 &self) │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_Array1 &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - .def("__bool__",[](const NCollection_Array1 &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< T * >() ,py::arg("theObject") ) │ │ │ - .def("get", │ │ │ - (T * (NCollection_Handle::*)() ) &NCollection_Handle::get, │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - .def("get", │ │ │ - ( const T * (NCollection_Handle::*)() const) &NCollection_Handle::get, │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - .def_static("DownCast_s", │ │ │ - (NCollection_Handle (*)( const handle & ) ) &NCollection_Handle::DownCast, │ │ │ - R"#(Downcast arbitrary Handle to the argument type if contained object is Handle for this type; returns null otherwise)#" ,py::arg("theOther")) │ │ │ - .def("__mul__", │ │ │ - (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - .def("__rmul__", │ │ │ - (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - .def("__mul__", │ │ │ - ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - .def("__rmul__", │ │ │ - ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Cast handle to contained type)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(This class is used to fill an UBTree in a random order. The quality of a tree is much better (from the point of view of the search time) if objects are added to it in a random order to avoid adding a chain of neerby objects one following each other.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< typename NCollection_UBTreeFiller::UBTree &, const handle &, const Standard_Boolean >() ,py::arg("theTree"), py::arg("theAlloc"), py::arg("isFullRandom") ) │ │ │ - .def("Add", │ │ │ - (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add, │ │ │ - R"#(Adds a pair (theObj, theBnd) to my sequence)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ - .def("Fill", │ │ │ - (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill, │ │ │ - R"#(Fills the tree with the objects from my sequence. This method clears the internal buffer of added items making sure that no item would be added twice.)#" ) │ │ │ - .def("Reset", │ │ │ - (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset, │ │ │ - R"#(Remove all data from Filler, partculary if the Tree no more needed so the destructor of this Filler should not populate the useless Tree.)#" ) │ │ │ - .def("CheckTree", │ │ │ - (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree, │ │ │ - R"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#" ,py::arg("theStream")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_AliasedArray(py::object &m, const char *name){ │ │ │ - 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).)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_AliasedArray(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< Standard_Integer >() ,py::arg("theStride") ) │ │ │ - .def(py::init< Standard_Integer,Standard_Integer >() ,py::arg("theStride"), py::arg("theLength") ) │ │ │ - .def(py::init< const NCollection_AliasedArray & >() ,py::arg("theOther") ) │ │ │ - .def("Stride", │ │ │ - (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Stride, │ │ │ - R"#(Returns an element size in bytes.)#" ) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Size, │ │ │ - R"#(Size query)#" ) │ │ │ - .def("Length", │ │ │ - (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Length, │ │ │ - R"#(Length query (the same as Size()))#" ) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsEmpty, │ │ │ - R"#(Return TRUE if array has zero length.)#" ) │ │ │ - .def("Lower", │ │ │ - (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Lower, │ │ │ - R"#(Lower bound)#" ) │ │ │ - .def("Upper", │ │ │ - (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Upper, │ │ │ - R"#(Upper bound)#" ) │ │ │ - .def("IsDeletable", │ │ │ - (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsDeletable, │ │ │ - R"#(myDeletable flag)#" ) │ │ │ - .def("IsAllocated", │ │ │ - (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsAllocated, │ │ │ - R"#(IsAllocated flag - for naming compatibility)#" ) │ │ │ - .def("SizeBytes", │ │ │ - (Standard_Size (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::SizeBytes, │ │ │ - R"#(Return buffer size in bytes.)#" ) │ │ │ - .def("Assign", │ │ │ - (NCollection_AliasedArray & (NCollection_AliasedArray::*)( const NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Assign, │ │ │ - R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ - .def("Move", │ │ │ - (NCollection_AliasedArray & (NCollection_AliasedArray::*)( NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Move, │ │ │ - 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")) │ │ │ - .def("Resize", │ │ │ - (void (NCollection_AliasedArray::*)( Standard_Integer , Standard_Boolean ) ) &NCollection_AliasedArray::Resize, │ │ │ - R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLength"), py::arg("theToCopyData")) │ │ │ - .def("value", │ │ │ - ( const Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) const) &NCollection_AliasedArray::value, │ │ │ - R"#(Access raw bytes of specified element.)#" ,py::arg("theIndex")) │ │ │ - .def("changeValue", │ │ │ - (Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) ) &NCollection_AliasedArray::changeValue, │ │ │ - R"#(Access raw bytes of specified element.)#" ,py::arg("theIndex")) │ │ │ - .def("__len__",[](const NCollection_AliasedArray &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - .def("__bool__",[](const NCollection_AliasedArray &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R"#(Dynamically resizable sparse array of objects)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name)) │ │ │ - .def(py::init< Standard_Size >() ,py::arg("theIncrement") ) │ │ │ - .def("Assign", │ │ │ - (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign, │ │ │ - R"#(Explicit assignment operator)#" ,py::arg("theOther")) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange, │ │ │ - R"#(Exchange the data of two arrays; can be used primarily to move contents of theOther into the new array in a fast way (without creation of duplicated data))#" ,py::arg("theOther")) │ │ │ - .def("Value", │ │ │ - ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value, │ │ │ - R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ - .def("ChangeValue", │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue, │ │ │ - R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ - .def("SetValue", │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue, │ │ │ - R"#(Set a value at specified index method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ - .def("Extent", │ │ │ - (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent, │ │ │ - R"#(Returns number of items in the array)#" ) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty, │ │ │ - R"#(Returns True if array is empty)#" ) │ │ │ - .def("Find", │ │ │ - ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find, │ │ │ - R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ - .def("ChangeFind", │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind, │ │ │ - R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ - .def("Bind", │ │ │ - (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind, │ │ │ - R"#(Set a value as explicit method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ - .def("IsBound", │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound, │ │ │ - R"#(Returns True if the item is defined)#" ,py::arg("theIndex")) │ │ │ - .def("UnBind", │ │ │ - (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind, │ │ │ - R"#(Remove the item from array)#" ,py::arg("theIndex")) │ │ │ - .def("__len__",[](const NCollection_SparseArray &self) │ │ │ - { return self.Extent(); } │ │ │ - ) │ │ │ - .def("__bool__",[](const NCollection_SparseArray &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const BaseIterator & >() ,py::arg("theIterator") ) │ │ │ - .def(py::init< const NCollection_StlIterator & >() ,py::arg("theIterator") ) │ │ │ - .def("Iterator", │ │ │ - ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator, │ │ │ - R"#(Access to NCollection iterator instance)#" ) │ │ │ - .def("ChangeIterator", │ │ │ - (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator, │ │ │ - R"#(Access to NCollection iterator instance)#" ) │ │ │ - .def("__mul__", │ │ │ - (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Get reference to current item)#" ) │ │ │ - .def("__rmul__", │ │ │ - (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Get reference to current item)#" ) │ │ │ - .def("__iadd__", │ │ │ - (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=, │ │ │ - py::is_operator(), │ │ │ - R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ - .def("__add__", │ │ │ - (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+, │ │ │ - py::is_operator(), │ │ │ - R"#(Addition)#" ,py::arg("theOffset")) │ │ │ - .def("__isub__", │ │ │ - (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=, │ │ │ - py::is_operator(), │ │ │ - R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ - .def("__sub__", │ │ │ - (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ - .def("__sub__", │ │ │ - (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Difference)#" ,py::arg("theOther")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ - .def("Add", │ │ │ - (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add, │ │ │ - R"#(Update the tree with a new object and its bounding box.)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear, │ │ │ - R"#(Clears the contents of the tree.)#" ,py::arg("aNewAlloc")) │ │ │ - .def("IsEmpty", │ │ │ - (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty, │ │ │ - R"#()#" ) │ │ │ - .def("Allocator", │ │ │ - ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator, │ │ │ - R"#(Recommended to be used only in sub-classes.)#" ) │ │ │ - .def("__bool__",[](const NCollection_UBTree &self) │ │ │ - { return self.IsEmpty(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Generic 3-components vector. To be used as RGB color pixel or XYZ 3D-point. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_Vec3(py::object &m, const char *name){ │ │ │ @@ -1538,14 +513,368 @@ │ │ │ .def("__truediv__", │ │ │ (NCollection_Vec3 (NCollection_Vec3::*)( const Element_t ) const) &NCollection_Vec3::operator/, │ │ │ py::is_operator(), │ │ │ R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ +template │ │ │ +void preregister_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(This class is used to fill an UBTree in a random order. The quality of a tree is much better (from the point of view of the search time) if objects are added to it in a random order to avoid adding a chain of neerby objects one following each other.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_UBTreeFiller(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< typename NCollection_UBTreeFiller::UBTree &, const handle &, const Standard_Boolean >() ,py::arg("theTree"), py::arg("theAlloc"), py::arg("isFullRandom") ) │ │ │ + .def("Add", │ │ │ + (void (NCollection_UBTreeFiller::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTreeFiller::Add, │ │ │ + R"#(Adds a pair (theObj, theBnd) to my sequence)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ + .def("Fill", │ │ │ + (Standard_Integer (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Fill, │ │ │ + R"#(Fills the tree with the objects from my sequence. This method clears the internal buffer of added items making sure that no item would be added twice.)#" ) │ │ │ + .def("Reset", │ │ │ + (void (NCollection_UBTreeFiller::*)() ) &NCollection_UBTreeFiller::Reset, │ │ │ + R"#(Remove all data from Filler, partculary if the Tree no more needed so the destructor of this Filler should not populate the useless Tree.)#" ) │ │ │ + .def("CheckTree", │ │ │ + (Standard_Integer (NCollection_UBTreeFiller::*)( Standard_OStream & ) ) &NCollection_UBTreeFiller::CheckTree, │ │ │ + R"#(Check the filled tree for the total number of items and the balance outputting these results to std::ostream.)#" ,py::arg("theStream")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(The algorithm of unbalanced binary tree of overlapped bounding boxes.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_UBTree(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ + .def("Add", │ │ │ + (Standard_Boolean (NCollection_UBTree::*)( const TheObjType & , const TheBndType & ) ) &NCollection_UBTree::Add, │ │ │ + R"#(Update the tree with a new object and its bounding box.)#" ,py::arg("theObj"), py::arg("theBnd")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_UBTree::*)( const handle & ) ) &NCollection_UBTree::Clear, │ │ │ + R"#(Clears the contents of the tree.)#" ,py::arg("aNewAlloc")) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_UBTree::*)() const) &NCollection_UBTree::IsEmpty, │ │ │ + R"#()#" ) │ │ │ + .def("Allocator", │ │ │ + ( const handle & (NCollection_UBTree::*)() const) &NCollection_UBTree::Allocator, │ │ │ + R"#(Recommended to be used only in sub-classes.)#" ) │ │ │ + .def("__bool__",[](const NCollection_UBTree &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Auxiliary class optimizing creation of array buffer (using stack allocation for small arrays).)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_LocalArray(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const size_t >() ,py::arg("theSize") ) │ │ │ + .def(py::init< >() ) │ │ │ + .def("Allocate", │ │ │ + (void (NCollection_LocalArray::*)( const size_t ) ) &NCollection_LocalArray::Allocate, │ │ │ + R"#()#" ,py::arg("theSize")) │ │ │ + .def("Size", │ │ │ + (size_t (NCollection_LocalArray::*)() const) &NCollection_LocalArray::Size, │ │ │ + R"#()#" ) │ │ │ + .def("__len__",[](const NCollection_LocalArray &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Class NCollection_DynamicArray (dynamic array of objects))#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_DynamicArray(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer >() ,py::arg("theIncrement") ) │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const Standard_Integer, const typename NCollection_DynamicArray::allocator_type & >() ,py::arg("theIncrement"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_DynamicArray & >() ,py::arg("theOther") ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::begin, │ │ │ + R"#()#" ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::begin, │ │ │ + R"#()#" ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cbegin, │ │ │ + R"#()#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_DynamicArray::iterator (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::end, │ │ │ + R"#()#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::end, │ │ │ + R"#()#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_DynamicArray::const_iterator (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::cend, │ │ │ + R"#()#" ) │ │ │ + .def("Length", │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Length, │ │ │ + R"#(Total number of items)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Size, │ │ │ + R"#(Total number of items in the vector)#" ) │ │ │ + .def("Lower", │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Lower, │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ + .def("Upper", │ │ │ + (Standard_Integer (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Upper, │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::IsEmpty, │ │ │ + R"#(Empty query)#" ) │ │ │ + .def("Assign", │ │ │ + (NCollection_DynamicArray & (NCollection_DynamicArray::*)( const NCollection_DynamicArray & , const bool ) ) &NCollection_DynamicArray::Assign, │ │ │ + R"#(Assignment to the collection of the same type)#" ,py::arg("theOther"), py::arg("theOwnAllocator")) │ │ │ + .def("Append", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const TheItemType & ) ) &NCollection_DynamicArray::Append, │ │ │ + R"#(Append)#" ,py::arg("theValue")) │ │ │ + .def("EraseLast", │ │ │ + (void (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::EraseLast, │ │ │ + R"#()#" ) │ │ │ + .def("Appended", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::Appended, │ │ │ + R"#(Appends an empty value and returns the reference to it)#" ) │ │ │ + .def("Value", │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)( const Standard_Integer ) const) &NCollection_DynamicArray::Value, │ │ │ + R"#()#" ,py::arg("theIndex")) │ │ │ + .def("First", │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::First, │ │ │ + R"#(Returns first element)#" ) │ │ │ + .def("ChangeFirst", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeFirst, │ │ │ + R"#(Returns first element)#" ) │ │ │ + .def("Last", │ │ │ + (typename NCollection_DynamicArray::const_reference (NCollection_DynamicArray::*)() const) &NCollection_DynamicArray::Last, │ │ │ + R"#(Returns last element)#" ) │ │ │ + .def("ChangeLast", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)() ) &NCollection_DynamicArray::ChangeLast, │ │ │ + R"#(Returns last element)#" ) │ │ │ + .def("ChangeValue", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::ChangeValue, │ │ │ + R"#()#" ,py::arg("theIndex")) │ │ │ + .def("SetValue", │ │ │ + (typename NCollection_DynamicArray::reference (NCollection_DynamicArray::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_DynamicArray::SetValue, │ │ │ + R"#(SetValue () - set or append a value)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_DynamicArray::*)( const bool ) ) &NCollection_DynamicArray::Clear, │ │ │ + R"#()#" ,py::arg("theReleaseMemory")) │ │ │ + .def("SetIncrement", │ │ │ + (void (NCollection_DynamicArray::*)( const Standard_Integer ) ) &NCollection_DynamicArray::SetIncrement, │ │ │ + R"#()#" ,py::arg("theIncrement")) │ │ │ + .def("__iter__",[](const NCollection_DynamicArray &self) │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_DynamicArray &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + .def("__bool__",[](const NCollection_DynamicArray &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: The DefaultHasher is a Hasher that is used by default in NCollection maps. To compute the hash code of the key is used the global function HashCode. To compare two keys is used the global function IsEqual.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_DefaultHasher(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_AliasedArray(py::object &m, const char *name){ │ │ │ + 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).)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_AliasedArray(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< Standard_Integer >() ,py::arg("theStride") ) │ │ │ + .def(py::init< Standard_Integer,Standard_Integer >() ,py::arg("theStride"), py::arg("theLength") ) │ │ │ + .def(py::init< const NCollection_AliasedArray & >() ,py::arg("theOther") ) │ │ │ + .def("Stride", │ │ │ + (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Stride, │ │ │ + R"#(Returns an element size in bytes.)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Size, │ │ │ + R"#(Size query)#" ) │ │ │ + .def("Length", │ │ │ + (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Length, │ │ │ + R"#(Length query (the same as Size()))#" ) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsEmpty, │ │ │ + R"#(Return TRUE if array has zero length.)#" ) │ │ │ + .def("Lower", │ │ │ + (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Lower, │ │ │ + R"#(Lower bound)#" ) │ │ │ + .def("Upper", │ │ │ + (Standard_Integer (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::Upper, │ │ │ + R"#(Upper bound)#" ) │ │ │ + .def("IsDeletable", │ │ │ + (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsDeletable, │ │ │ + R"#(myDeletable flag)#" ) │ │ │ + .def("IsAllocated", │ │ │ + (Standard_Boolean (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::IsAllocated, │ │ │ + R"#(IsAllocated flag - for naming compatibility)#" ) │ │ │ + .def("SizeBytes", │ │ │ + (Standard_Size (NCollection_AliasedArray::*)() const) &NCollection_AliasedArray::SizeBytes, │ │ │ + R"#(Return buffer size in bytes.)#" ) │ │ │ + .def("Assign", │ │ │ + (NCollection_AliasedArray & (NCollection_AliasedArray::*)( const NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Assign, │ │ │ + R"#(Copies data of theOther array to this. This array should be pre-allocated and have the same length as theOther; otherwise exception Standard_DimensionMismatch is thrown.)#" ,py::arg("theOther")) │ │ │ + .def("Move", │ │ │ + (NCollection_AliasedArray & (NCollection_AliasedArray::*)( NCollection_AliasedArray & ) ) &NCollection_AliasedArray::Move, │ │ │ + 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")) │ │ │ + .def("Resize", │ │ │ + (void (NCollection_AliasedArray::*)( Standard_Integer , Standard_Boolean ) ) &NCollection_AliasedArray::Resize, │ │ │ + R"#(Resizes the array to specified bounds. No re-allocation will be done if length of array does not change, but existing values will not be discarded if theToCopyData set to FALSE.)#" ,py::arg("theLength"), py::arg("theToCopyData")) │ │ │ + .def("value", │ │ │ + ( const Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) const) &NCollection_AliasedArray::value, │ │ │ + R"#(Access raw bytes of specified element.)#" ,py::arg("theIndex")) │ │ │ + .def("changeValue", │ │ │ + (Standard_Byte * (NCollection_AliasedArray::*)( Standard_Integer ) ) &NCollection_AliasedArray::changeValue, │ │ │ + R"#(Access raw bytes of specified element.)#" ,py::arg("theIndex")) │ │ │ + .def("__len__",[](const NCollection_AliasedArray &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + .def("__bool__",[](const NCollection_AliasedArray &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_List(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseList >(m,name,R"#(Purpose: Simple list to link items together keeping the first and the last one. Inherits BaseList, adding the data item to each node.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_List(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseList >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_List & >() ,py::arg("theOther") ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::begin, │ │ │ + R"#(Returns an iterator pointing to the first element in the list.)#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_List::iterator (NCollection_List::*)() const) &NCollection_List::end, │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the list.)#" ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cbegin, │ │ │ + R"#(Returns a const iterator pointing to the first element in the list.)#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_List::const_iterator (NCollection_List::*)() const) &NCollection_List::cend, │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the list.)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_List::*)() const) &NCollection_List::Size, │ │ │ + R"#(Size - Number of items)#" ) │ │ │ + .def("Assign", │ │ │ + (NCollection_List & (NCollection_List::*)( const NCollection_List & ) ) &NCollection_List::Assign, │ │ │ + R"#(Replace this list by the items of another list (theOther parameter). This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_List::*)( const handle & ) ) &NCollection_List::Clear, │ │ │ + R"#(Clear this list)#" ,py::arg("theAllocator")) │ │ │ + .def("First", │ │ │ + ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::First, │ │ │ + R"#(First item)#" ) │ │ │ + .def("First", │ │ │ + (TheItemType & (NCollection_List::*)() ) &NCollection_List::First, │ │ │ + R"#(First item (non-const))#" ) │ │ │ + .def("Last", │ │ │ + ( const TheItemType & (NCollection_List::*)() const) &NCollection_List::Last, │ │ │ + R"#(Last item)#" ) │ │ │ + .def("Last", │ │ │ + (TheItemType & (NCollection_List::*)() ) &NCollection_List::Last, │ │ │ + R"#(Last item (non-const))#" ) │ │ │ + .def("Append", │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Append, │ │ │ + R"#(Append one item at the end)#" ,py::arg("theItem")) │ │ │ + .def("Append", │ │ │ + (void (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::Append, │ │ │ + R"#(Append one item at the end and output iterator pointing at the appended item)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ + .def("Append", │ │ │ + (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Append, │ │ │ + R"#(Append another list at the end. After this operation, theOther list will be cleared.)#" ,py::arg("theOther")) │ │ │ + .def("Prepend", │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & ) ) &NCollection_List::Prepend, │ │ │ + R"#(Prepend one item at the beginning)#" ,py::arg("theItem")) │ │ │ + .def("Prepend", │ │ │ + (void (NCollection_List::*)( NCollection_List & ) ) &NCollection_List::Prepend, │ │ │ + R"#(Prepend another list at the beginning)#" ,py::arg("theOther")) │ │ │ + .def("RemoveFirst", │ │ │ + (void (NCollection_List::*)() ) &NCollection_List::RemoveFirst, │ │ │ + R"#(RemoveFirst item)#" ) │ │ │ + .def("Remove", │ │ │ + (void (NCollection_List::*)( typename NCollection_List::Iterator & ) ) &NCollection_List::Remove, │ │ │ + R"#(Remove item pointed by iterator theIter; theIter is then set to the next item)#" ,py::arg("theIter")) │ │ │ + .def("InsertBefore", │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ + R"#(InsertBefore)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ + .def("InsertBefore", │ │ │ + (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertBefore, │ │ │ + R"#(InsertBefore)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ + .def("InsertAfter", │ │ │ + (TheItemType & (NCollection_List::*)( const TheItemType & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ + R"#(InsertAfter)#" ,py::arg("theItem"), py::arg("theIter")) │ │ │ + .def("InsertAfter", │ │ │ + (void (NCollection_List::*)( NCollection_List & , typename NCollection_List::Iterator & ) ) &NCollection_List::InsertAfter, │ │ │ + R"#(InsertAfter)#" ,py::arg("theOther"), py::arg("theIter")) │ │ │ + .def("Reverse", │ │ │ + (void (NCollection_List::*)() ) &NCollection_List::Reverse, │ │ │ + R"#(Reverse the list)#" ) │ │ │ + .def("__iter__",[](const NCollection_List &self) │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_List &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Simple linear interpolation tool (also known as mix() in GLSL). The main purpose of this template class is making interpolation routines more readable.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Lerp(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const T &, const T & >() ,py::arg("theStart"), py::arg("theEnd") ) │ │ │ + .def("Init", │ │ │ + (void (NCollection_Lerp::*)( const T & , const T & ) ) &NCollection_Lerp::Init, │ │ │ + R"#(Initialize values.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ + .def("Interpolate", │ │ │ + (void (NCollection_Lerp::*)( double , T & ) const) &NCollection_Lerp::Interpolate, │ │ │ + R"#(Compute interpolated value between two values.)#" ,py::arg("theT"), py::arg("theResult")) │ │ │ + .def_static("Interpolate_s", │ │ │ + (T (*)( const T & , const T & , double ) ) &NCollection_Lerp::Interpolate, │ │ │ + R"#(Compute interpolated value between two values.)#" ,py::arg("theStart"), py::arg("theEnd"), py::arg("theT")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ template │ │ │ void preregister_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Defines the 2D-vector template. The main target for this class - to handle raw low-level arrays (from/to graphic driver etc.).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_Vec2(py::object &m, const char *name){ │ │ │ @@ -1664,333 +993,14 @@ │ │ │ .def("__truediv__", │ │ │ (NCollection_Vec2 (NCollection_Vec2::*)( const Element_t ) const) &NCollection_Vec2::operator/, │ │ │ py::is_operator(), │ │ │ R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template > │ │ │ -void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1.. Extent. An Item is stored with each key.)#"); │ │ │ -} │ │ │ - │ │ │ -template > │ │ │ -void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ - .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg("theOther") ) │ │ │ - .def("begin", │ │ │ - (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin, │ │ │ - R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ - .def("end", │ │ │ - (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end, │ │ │ - R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ - .def("cbegin", │ │ │ - (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin, │ │ │ - R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ - .def("cend", │ │ │ - (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend, │ │ │ - R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ - .def("Exchange", │ │ │ - (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange, │ │ │ - R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ - .def("Assign", │ │ │ - (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign, │ │ │ - R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ - .def("ReSize", │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize, │ │ │ - R"#(ReSize)#" ,py::arg("N")) │ │ │ - .def("Add", │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add, │ │ │ - R"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#" ,py::arg("theKey1"), py::arg("theItem")) │ │ │ - .def("Contains", │ │ │ - (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains, │ │ │ - R"#(Contains)#" ,py::arg("theKey1")) │ │ │ - .def("Substitute", │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute, │ │ │ - R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1"), py::arg("theItem")) │ │ │ - .def("Swap", │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap, │ │ │ - R"#(Swaps two elements with the given indices.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ - .def("RemoveLast", │ │ │ - (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast, │ │ │ - R"#(RemoveLast)#" ) │ │ │ - .def("RemoveFromIndex", │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex, │ │ │ - R"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#" ,py::arg("theIndex")) │ │ │ - .def("RemoveKey", │ │ │ - (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey, │ │ │ - R"#(Remove the given key. Caution! The index of the last key can be changed.)#" ,py::arg("theKey1")) │ │ │ - .def("FindKey", │ │ │ - ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey, │ │ │ - R"#(FindKey)#" ,py::arg("theIndex")) │ │ │ - .def("FindFromIndex", │ │ │ - ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex, │ │ │ - R"#(FindFromIndex)#" ,py::arg("theIndex")) │ │ │ - .def("ChangeFromIndex", │ │ │ - (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex, │ │ │ - R"#(ChangeFromIndex)#" ,py::arg("theIndex")) │ │ │ - .def("FindIndex", │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex, │ │ │ - R"#(FindIndex)#" ,py::arg("theKey1")) │ │ │ - .def("FindFromKey", │ │ │ - ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ - R"#(FindFromKey)#" ,py::arg("theKey1")) │ │ │ - .def("ChangeFromKey", │ │ │ - (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey, │ │ │ - R"#(ChangeFromKey)#" ,py::arg("theKey1")) │ │ │ - .def("Seek", │ │ │ - ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek, │ │ │ - R"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ - .def("ChangeSeek", │ │ │ - (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek, │ │ │ - R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ - .def("FindFromKey", │ │ │ - (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ - R"#(Find value for key with copying.)#" ,py::arg("theKey1"), py::arg("theValue")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear, │ │ │ - R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ - .def("Clear", │ │ │ - (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear, │ │ │ - R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ - .def("Size", │ │ │ - (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size, │ │ │ - R"#(Size)#" ) │ │ │ - .def("__iter__",[](const NCollection_IndexedDataMap &self) │ │ │ - { return py::make_iterator(self.begin(), self.end()); }, │ │ │ - py::keep_alive<0, 1>()) │ │ │ - .def("__len__",[](const NCollection_IndexedDataMap &self) │ │ │ - { return self.Size(); } │ │ │ - ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const handle & >() ,py::arg("theAlloc") ) │ │ │ - .def(py::init< const NCollection_OccAllocator & >() ,py::arg("theOther") ) │ │ │ - .def("SetAllocator", │ │ │ - (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator, │ │ │ - R"#()#" ,py::arg("theAlloc")) │ │ │ - .def("Allocator", │ │ │ - ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator, │ │ │ - R"#()#" ) │ │ │ - .def("address", │ │ │ - (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address, │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ - .def("address", │ │ │ - (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address, │ │ │ - R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ - .def("max_size", │ │ │ - (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size, │ │ │ - R"#(Estimate maximum array size)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def("GetValue", │ │ │ - (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue, │ │ │ - R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ - .def("ChangeValue", │ │ │ - (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue, │ │ │ - R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ - .def("SetValue", │ │ │ - (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue, │ │ │ - R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ - .def("GetRow", │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow, │ │ │ - R"#(Return the row.)#" ,py::arg("theRow")) │ │ │ - .def("SetRow", │ │ │ - (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow, │ │ │ - R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ - .def("GetColumn", │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn, │ │ │ - R"#(Return the column.)#" ,py::arg("theCol")) │ │ │ - .def("SetColumn", │ │ │ - (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn, │ │ │ - R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ - .def("GetDiagonal", │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal, │ │ │ - R"#(Get vector of diagonal elements.)#" ) │ │ │ - .def("SetDiagonal", │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal, │ │ │ - R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ - .def("InitZero", │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero, │ │ │ - R"#(Initialize the zero matrix.)#" ) │ │ │ - .def("IsZero", │ │ │ - (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero, │ │ │ - R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ - .def("InitIdentity", │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity, │ │ │ - R"#(Initialize the identity matrix.)#" ) │ │ │ - .def("IsIdentity", │ │ │ - (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity, │ │ │ - R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ - .def("IsEqual", │ │ │ - (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual, │ │ │ - R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ - .def("GetData", │ │ │ - ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData, │ │ │ - R"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#" ) │ │ │ - .def("ChangeData", │ │ │ - (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData, │ │ │ - R"#()#" ) │ │ │ - .def("Multiply", │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ - R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ - .def("Multiplied", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied, │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ - .def("Multiply", │ │ │ - (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply, │ │ │ - R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ - .def("Multiplied", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied, │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ - .def("Divide", │ │ │ - (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide, │ │ │ - R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ - .def("Divided", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided, │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ - .def("Add", │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add, │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("Subtract", │ │ │ - (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract, │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("Added", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added, │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("Subtracted", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted, │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("Negated", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated, │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ - .def("Transposed", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed, │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ - .def("Transpose", │ │ │ - (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose, │ │ │ - R"#(Transpose the matrix.)#" ) │ │ │ - .def("Determinant", │ │ │ - (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant, │ │ │ - R"#(Return determinant of the matrix.)#" ) │ │ │ - .def("Adjoint", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint, │ │ │ - R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ - .def("Inverted", │ │ │ - (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted, │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theInv"), py::arg("theDet")) │ │ │ - .def("Inverted", │ │ │ - (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted, │ │ │ - R"#(Compute inverted matrix.)#" ,py::arg("theInv")) │ │ │ - .def("Inverted", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted, │ │ │ - R"#(Return inverted matrix.)#" ) │ │ │ - .def("DumpJson", │ │ │ - (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson, │ │ │ - R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ - .def_static("Identity_s", │ │ │ - (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity, │ │ │ - R"#(Return identity matrix.)#" ) │ │ │ - .def_static("Zero_s", │ │ │ - (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero, │ │ │ - R"#(Return zero matrix.)#" ) │ │ │ - .def_static("Multiply_s", │ │ │ - (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ - R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ - .def_static("Map_s", │ │ │ - (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map, │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ - .def_static("Map_s", │ │ │ - ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map, │ │ │ - R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ - .def("__mul__", │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ - .def("__rmul__", │ │ │ - (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ - .def("__imul__", │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=, │ │ │ - py::is_operator(), │ │ │ - R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("__mul__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ - .def("__rmul__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ - .def("__imul__", │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=, │ │ │ - py::is_operator(), │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ - .def("__mul__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ - .def("__rmul__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ - .def("__itruediv__", │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=, │ │ │ - py::is_operator(), │ │ │ - R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ - .def("__truediv__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/, │ │ │ - py::is_operator(), │ │ │ - R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ - .def("__iadd__", │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=, │ │ │ - py::is_operator(), │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("__isub__", │ │ │ - (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=, │ │ │ - py::is_operator(), │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("__add__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+, │ │ │ - py::is_operator(), │ │ │ - R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("__sub__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ - .def("__sub__", │ │ │ - (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Returns matrix with all components negated.)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_NCollection_Vec4(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Generic 4-components vector. To be used as RGBA color vector or XYZW 3D-point with special W-component for operations with projection / model view matrices. Use this class for 3D-points carefully because declared W-component may results in incorrect results if used without matrices.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_Vec4(py::object &m, const char *name){ │ │ │ @@ -2258,147 +1268,14 @@ │ │ │ .def("__truediv__", │ │ │ (NCollection_Vec4 (NCollection_Vec4::*)( const Element_t ) ) &NCollection_Vec4::operator/, │ │ │ py::is_operator(), │ │ │ R"#(Compute per-component division by scale factor.)#" ,py::arg("theInvFactor")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_NCollection_UtfIterator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Template class for Unicode strings support.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_UtfIterator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Type * >() ,py::arg("theString") ) │ │ │ - .def("Init", │ │ │ - (void (NCollection_UtfIterator::*)( const Type * ) ) &NCollection_UtfIterator::Init, │ │ │ - R"#(Initialize iterator within specified NULL-terminated string.)#" ,py::arg("theString")) │ │ │ - .def("IsValid", │ │ │ - (bool (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::IsValid, │ │ │ - R"#(Return true if Unicode symbol is within valid range.)#" ) │ │ │ - .def("BufferHere", │ │ │ - ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferHere, │ │ │ - R"#(Buffer-fetching getter.)#" ) │ │ │ - .def("ChangeBufferHere", │ │ │ - (Type * (NCollection_UtfIterator::*)() ) &NCollection_UtfIterator::ChangeBufferHere, │ │ │ - R"#(Buffer-fetching getter. Dangerous! Iterator should be reinitialized on buffer change.)#" ) │ │ │ - .def("BufferNext", │ │ │ - ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferNext, │ │ │ - R"#(Buffer-fetching getter.)#" ) │ │ │ - .def("Index", │ │ │ - (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::Index, │ │ │ - R"#(Returns the index displacement from iterator initialization (first symbol has index 0))#" ) │ │ │ - .def("AdvanceBytesUtf8", │ │ │ - (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf8, │ │ │ - R"#(Returns the advance in bytes to store current symbol in UTF-8. 0 means an invalid symbol; 1-4 bytes are valid range.)#" ) │ │ │ - .def("AdvanceBytesUtf16", │ │ │ - (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf16, │ │ │ - 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.)#" ) │ │ │ - .def("AdvanceCodeUnitsUtf16", │ │ │ - (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceCodeUnitsUtf16, │ │ │ - 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.)#" ) │ │ │ - .def("AdvanceBytesUtf32", │ │ │ - (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf32, │ │ │ - R"#(Returns the advance in bytes to store current symbol in UTF-32. Always 4 bytes (method for consistency).)#" ) │ │ │ - .def("GetUtf8", │ │ │ - (Standard_Utf8Char * (NCollection_UtfIterator::*)( Standard_Utf8Char * ) const) &NCollection_UtfIterator::GetUtf8, │ │ │ - R"#(Fill the UTF-8 buffer within current Unicode symbol. Use method AdvanceUtf8() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ - .def("GetUtf8", │ │ │ - (Standard_Utf8UChar * (NCollection_UtfIterator::*)( Standard_Utf8UChar * ) const) &NCollection_UtfIterator::GetUtf8, │ │ │ - R"#()#" ,py::arg("theBuffer")) │ │ │ - .def("GetUtf16", │ │ │ - (Standard_Utf16Char * (NCollection_UtfIterator::*)( Standard_Utf16Char * ) const) &NCollection_UtfIterator::GetUtf16, │ │ │ - R"#(Fill the UTF-16 buffer within current Unicode symbol. Use method AdvanceUtf16() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ - .def("GetUtf32", │ │ │ - (Standard_Utf32Char * (NCollection_UtfIterator::*)( Standard_Utf32Char * ) const) &NCollection_UtfIterator::GetUtf32, │ │ │ - R"#(Fill the UTF-32 buffer within current Unicode symbol. Use method AdvanceUtf32() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ - .def("__mul__", │ │ │ - (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Dereference operator.)#" ) │ │ │ - .def("__rmul__", │ │ │ - (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Dereference operator.)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Purpose: This Iterator class iterates on BaseList of TListNode and is instantiated in List/Set/Queue/Stack Remark: TListIterator is internal class)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const NCollection_BaseList & >() ,py::arg("theList") ) │ │ │ - .def("More", │ │ │ - (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More, │ │ │ - R"#(Check end)#" ) │ │ │ - .def("Next", │ │ │ - (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next, │ │ │ - R"#(Make step)#" ) │ │ │ - .def("Value", │ │ │ - ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value, │ │ │ - R"#(Constant Value access)#" ) │ │ │ - .def("Value", │ │ │ - (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value, │ │ │ - R"#(Non-const Value access)#" ) │ │ │ - .def("ChangeValue", │ │ │ - (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue, │ │ │ - R"#(Non-const Value access)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_NCollection_IndexedIterator(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_NCollection_IndexedIterator(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< >() ) │ │ │ - .def(py::init< const BaseIndexedMap & >() ,py::arg("theMap") ) │ │ │ - .def(py::init< const size_t, const BaseIndexedMap & >() ,py::arg("theIndex"), py::arg("theMap") ) │ │ │ - .def(py::init< const NCollection_IndexedIterator & >() ,py::arg("theOther") ) │ │ │ - .def("__mul__", │ │ │ - (typename NCollection_IndexedIterator::reference (NCollection_IndexedIterator::*)() const) &NCollection_IndexedIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Get reference to current item)#" ) │ │ │ - .def("__rmul__", │ │ │ - (typename NCollection_IndexedIterator::reference (NCollection_IndexedIterator::*)() const) &NCollection_IndexedIterator::operator*, │ │ │ - py::is_operator(), │ │ │ - R"#(Get reference to current item)#" ) │ │ │ - .def("__iadd__", │ │ │ - (NCollection_IndexedIterator & (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) ) &NCollection_IndexedIterator::operator+=, │ │ │ - py::is_operator(), │ │ │ - R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ - .def("__add__", │ │ │ - (NCollection_IndexedIterator (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) const) &NCollection_IndexedIterator::operator+, │ │ │ - py::is_operator(), │ │ │ - R"#(Addition)#" ,py::arg("theOffset")) │ │ │ - .def("__isub__", │ │ │ - (NCollection_IndexedIterator & (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) ) &NCollection_IndexedIterator::operator-=, │ │ │ - py::is_operator(), │ │ │ - R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ - .def("__sub__", │ │ │ - (NCollection_IndexedIterator (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) const) &NCollection_IndexedIterator::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ - .def("__sub__", │ │ │ - (typename NCollection_IndexedIterator::difference_type (NCollection_IndexedIterator::*)( const NCollection_IndexedIterator & ) const) &NCollection_IndexedIterator::operator-, │ │ │ - py::is_operator(), │ │ │ - R"#(Difference)#" ,py::arg("theOther")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ template │ │ │ void preregister_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Purpose: The class Array2 represents bi-dimensional arrays of fixed size known at run time. The ranges of indices are user defined.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_Array2(py::object &m, const char *name){ │ │ │ @@ -2464,14 +1341,732 @@ │ │ │ R"#()#" ,py::arg("theRowLower"), py::arg("theRowUpper"), py::arg("theColLower"), py::arg("theColUpper")) │ │ │ .def("__len__",[](const NCollection_Array2 &self) │ │ │ { return self.Size(); } │ │ │ ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ +template │ │ │ +void preregister_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseSequence >(m,name,R"#(Purpose: Definition of a sequence of elements indexed by an Integer in range of 1..n)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Sequence(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseSequence >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle & >() ,py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_Sequence & >() ,py::arg("theOther") ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::begin, │ │ │ + R"#(Returns an iterator pointing to the first element in the sequence.)#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_Sequence::iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::end, │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cbegin, │ │ │ + R"#(Returns a const iterator pointing to the first element in the sequence.)#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_Sequence::const_iterator (NCollection_Sequence::*)() const) &NCollection_Sequence::cend, │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the sequence.)#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Size, │ │ │ + R"#(Number of items)#" ) │ │ │ + .def("Length", │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Length, │ │ │ + R"#(Number of items)#" ) │ │ │ + .def("Lower", │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Lower, │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ + .def("Upper", │ │ │ + (Standard_Integer (NCollection_Sequence::*)() const) &NCollection_Sequence::Upper, │ │ │ + R"#(Method for consistency with other collections.)#" ) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_Sequence::*)() const) &NCollection_Sequence::IsEmpty, │ │ │ + R"#(Empty query)#" ) │ │ │ + .def("Reverse", │ │ │ + (void (NCollection_Sequence::*)() ) &NCollection_Sequence::Reverse, │ │ │ + R"#(Reverse sequence)#" ) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Exchange, │ │ │ + R"#(Exchange two members)#" ,py::arg("I"), py::arg("J")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_Sequence::*)( const handle & ) ) &NCollection_Sequence::Clear, │ │ │ + R"#(Clear the items out, take a new allocator if non null)#" ,py::arg("theAllocator")) │ │ │ + .def("Assign", │ │ │ + (NCollection_Sequence & (NCollection_Sequence::*)( const NCollection_Sequence & ) ) &NCollection_Sequence::Assign, │ │ │ + R"#(Replace this sequence by the items of theOther. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("Remove", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ + R"#(Remove one item)#" ,py::arg("theIndex")) │ │ │ + .def("Remove", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_Sequence::Remove, │ │ │ + R"#(Remove range of items)#" ,py::arg("theFromIndex"), py::arg("theToIndex")) │ │ │ + .def("Append", │ │ │ + (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Append, │ │ │ + R"#(Append one item)#" ,py::arg("theItem")) │ │ │ + .def("Append", │ │ │ + (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Append, │ │ │ + R"#(Append another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ + .def("Prepend", │ │ │ + (void (NCollection_Sequence::*)( const TheItemType & ) ) &NCollection_Sequence::Prepend, │ │ │ + R"#(Prepend one item)#" ,py::arg("theItem")) │ │ │ + .def("Prepend", │ │ │ + (void (NCollection_Sequence::*)( NCollection_Sequence & ) ) &NCollection_Sequence::Prepend, │ │ │ + R"#(Prepend another sequence (making it empty))#" ,py::arg("theSeq")) │ │ │ + .def("InsertBefore", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertBefore, │ │ │ + R"#(InsertBefore theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ + .def("InsertBefore", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertBefore, │ │ │ + R"#(InsertBefore theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ + .def("InsertAfter", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::InsertAfter, │ │ │ + R"#(InsertAfter theIndex another sequence (making it empty))#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ + .def("InsertAfter", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::InsertAfter, │ │ │ + R"#(InsertAfter theIndex theItem)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ + .def("Split", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , NCollection_Sequence & ) ) &NCollection_Sequence::Split, │ │ │ + R"#(Split in two sequences)#" ,py::arg("theIndex"), py::arg("theSeq")) │ │ │ + .def("First", │ │ │ + ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::First, │ │ │ + R"#(First item access)#" ) │ │ │ + .def("ChangeFirst", │ │ │ + (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeFirst, │ │ │ + R"#(First item access)#" ) │ │ │ + .def("Last", │ │ │ + ( const TheItemType & (NCollection_Sequence::*)() const) &NCollection_Sequence::Last, │ │ │ + R"#(Last item access)#" ) │ │ │ + .def("ChangeLast", │ │ │ + (TheItemType & (NCollection_Sequence::*)() ) &NCollection_Sequence::ChangeLast, │ │ │ + R"#(Last item access)#" ) │ │ │ + .def("Value", │ │ │ + ( const TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) const) &NCollection_Sequence::Value, │ │ │ + R"#(Constant item access by theIndex)#" ,py::arg("theIndex")) │ │ │ + .def("ChangeValue", │ │ │ + (TheItemType & (NCollection_Sequence::*)( const Standard_Integer ) ) &NCollection_Sequence::ChangeValue, │ │ │ + R"#(Variable item access by theIndex)#" ,py::arg("theIndex")) │ │ │ + .def("SetValue", │ │ │ + (void (NCollection_Sequence::*)( const Standard_Integer , const TheItemType & ) ) &NCollection_Sequence::SetValue, │ │ │ + R"#(Set item value by theIndex)#" ,py::arg("theIndex"), py::arg("theItem")) │ │ │ + .def_static("delNode_s", │ │ │ + (void (*)( NCollection_SeqNode * , handle & ) ) &NCollection_Sequence::delNode, │ │ │ + R"#(Static deleter to be passed to BaseSequence)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ + .def("__iter__",[](const NCollection_Sequence &self) │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_Sequence &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + .def("__bool__",[](const NCollection_Sequence &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_SparseArrayBase >(m,name,R"#(Dynamically resizable sparse array of objects)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_SparseArray(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_SparseArrayBase >>(m.attr(name)) │ │ │ + .def(py::init< Standard_Size >() ,py::arg("theIncrement") ) │ │ │ + .def("Assign", │ │ │ + (NCollection_SparseArray & (NCollection_SparseArray::*)( const NCollection_SparseArray & ) ) &NCollection_SparseArray::Assign, │ │ │ + R"#(Explicit assignment operator)#" ,py::arg("theOther")) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_SparseArray::*)( NCollection_SparseArray & ) ) &NCollection_SparseArray::Exchange, │ │ │ + R"#(Exchange the data of two arrays; can be used primarily to move contents of theOther into the new array in a fast way (without creation of duplicated data))#" ,py::arg("theOther")) │ │ │ + .def("Value", │ │ │ + ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Value, │ │ │ + R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ + .def("ChangeValue", │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeValue, │ │ │ + R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ + .def("SetValue", │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::SetValue, │ │ │ + R"#(Set a value at specified index method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ + .def("Extent", │ │ │ + (Standard_Size (NCollection_SparseArray::*)() const) &NCollection_SparseArray::Extent, │ │ │ + R"#(Returns number of items in the array)#" ) │ │ │ + .def("IsEmpty", │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)() const) &NCollection_SparseArray::IsEmpty, │ │ │ + R"#(Returns True if array is empty)#" ) │ │ │ + .def("Find", │ │ │ + ( const TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::Find, │ │ │ + R"#(Direct const access to the item)#" ,py::arg("theIndex")) │ │ │ + .def("ChangeFind", │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::ChangeFind, │ │ │ + R"#(Modification access to the item)#" ,py::arg("theIndex")) │ │ │ + .def("Bind", │ │ │ + (TheItemType & (NCollection_SparseArray::*)( const Standard_Size , const TheItemType & ) ) &NCollection_SparseArray::Bind, │ │ │ + R"#(Set a value as explicit method)#" ,py::arg("theIndex"), py::arg("theValue")) │ │ │ + .def("IsBound", │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) const) &NCollection_SparseArray::IsBound, │ │ │ + R"#(Returns True if the item is defined)#" ,py::arg("theIndex")) │ │ │ + .def("UnBind", │ │ │ + (Standard_Boolean (NCollection_SparseArray::*)( const Standard_Size ) ) &NCollection_SparseArray::UnBind, │ │ │ + R"#(Remove the item from array)#" ,py::arg("theIndex")) │ │ │ + .def("__len__",[](const NCollection_SparseArray &self) │ │ │ + { return self.Extent(); } │ │ │ + ) │ │ │ + .def("__bool__",[](const NCollection_SparseArray &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(3x3 Matrix class. Warning, empty constructor returns an identity matrix.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Mat3(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def("GetValue", │ │ │ + (Element_t (NCollection_Mat3::*)( const size_t , const size_t ) const) &NCollection_Mat3::GetValue, │ │ │ + R"#(Get element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ + .def("ChangeValue", │ │ │ + (Element_t & (NCollection_Mat3::*)( const size_t , const size_t ) ) &NCollection_Mat3::ChangeValue, │ │ │ + R"#(Access element at the specified row and column.)#" ,py::arg("theRow"), py::arg("theCol")) │ │ │ + .def("SetValue", │ │ │ + (void (NCollection_Mat3::*)( const size_t , const size_t , const Element_t ) ) &NCollection_Mat3::SetValue, │ │ │ + R"#(Set value for the element specified by row and columns.)#" ,py::arg("theRow"), py::arg("theCol"), py::arg("theValue")) │ │ │ + .def("GetRow", │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetRow, │ │ │ + R"#(Return the row.)#" ,py::arg("theRow")) │ │ │ + .def("SetRow", │ │ │ + (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetRow, │ │ │ + R"#(Change first 3 row values by the passed vector.)#" ,py::arg("theRow"), py::arg("theVec")) │ │ │ + .def("GetColumn", │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const size_t ) const) &NCollection_Mat3::GetColumn, │ │ │ + R"#(Return the column.)#" ,py::arg("theCol")) │ │ │ + .def("SetColumn", │ │ │ + (void (NCollection_Mat3::*)( const size_t , const NCollection_Vec3 & ) ) &NCollection_Mat3::SetColumn, │ │ │ + R"#(Change first 3 column values by the passed vector.)#" ,py::arg("theCol"), py::arg("theVec")) │ │ │ + .def("GetDiagonal", │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)() const) &NCollection_Mat3::GetDiagonal, │ │ │ + R"#(Get vector of diagonal elements.)#" ) │ │ │ + .def("SetDiagonal", │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Vec3 & ) ) &NCollection_Mat3::SetDiagonal, │ │ │ + R"#(Change first 3 elements of the diagonal matrix.)#" ,py::arg("theVec")) │ │ │ + .def("InitZero", │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitZero, │ │ │ + R"#(Initialize the zero matrix.)#" ) │ │ │ + .def("IsZero", │ │ │ + (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsZero, │ │ │ + R"#(Checks the matrix for zero (without tolerance).)#" ) │ │ │ + .def("InitIdentity", │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::InitIdentity, │ │ │ + R"#(Initialize the identity matrix.)#" ) │ │ │ + .def("IsIdentity", │ │ │ + (bool (NCollection_Mat3::*)() const) &NCollection_Mat3::IsIdentity, │ │ │ + R"#(Checks the matrix for identity (without tolerance).)#" ) │ │ │ + .def("IsEqual", │ │ │ + (bool (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::IsEqual, │ │ │ + R"#(Check this matrix for equality with another matrix (without tolerance!).)#" ,py::arg("theOther")) │ │ │ + .def("GetData", │ │ │ + ( const Element_t * (NCollection_Mat3::*)() const) &NCollection_Mat3::GetData, │ │ │ + R"#(Raw access to the data (for OpenGL exchange). the data is returned in column-major order.)#" ) │ │ │ + .def("ChangeData", │ │ │ + (Element_t * (NCollection_Mat3::*)() ) &NCollection_Mat3::ChangeData, │ │ │ + R"#()#" ) │ │ │ + .def("Multiply", │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ + R"#(Compute matrix multiplication.)#" ,py::arg("theMat")) │ │ │ + .def("Multiplied", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Multiplied, │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ + .def("Multiply", │ │ │ + (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Multiply, │ │ │ + R"#(Compute per-component multiplication.)#" ,py::arg("theFactor")) │ │ │ + .def("Multiplied", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Multiplied, │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ + .def("Divide", │ │ │ + (void (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::Divide, │ │ │ + R"#(Compute per-component division.)#" ,py::arg("theFactor")) │ │ │ + .def("Divided", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::Divided, │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ + .def("Add", │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Add, │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("Subtract", │ │ │ + (void (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::Subtract, │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("Added", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Added, │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("Subtracted", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::Subtracted, │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("Negated", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Negated, │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ + .def("Transposed", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Transposed, │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ + .def("Transpose", │ │ │ + (void (NCollection_Mat3::*)() ) &NCollection_Mat3::Transpose, │ │ │ + R"#(Transpose the matrix.)#" ) │ │ │ + .def("Determinant", │ │ │ + (Element_t (NCollection_Mat3::*)() const) &NCollection_Mat3::Determinant, │ │ │ + R"#(Return determinant of the matrix.)#" ) │ │ │ + .def("Adjoint", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Adjoint, │ │ │ + R"#(Return adjoint (adjugate matrix, e.g. conjugate transpose).)#" ) │ │ │ + .def("Inverted", │ │ │ + (bool (NCollection_Mat3::*)( NCollection_Mat3 & , Element_t & ) const) &NCollection_Mat3::Inverted, │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theInv"), py::arg("theDet")) │ │ │ + .def("Inverted", │ │ │ + (bool (NCollection_Mat3::*)( NCollection_Mat3 & ) const) &NCollection_Mat3::Inverted, │ │ │ + R"#(Compute inverted matrix.)#" ,py::arg("theInv")) │ │ │ + .def("Inverted", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::Inverted, │ │ │ + R"#(Return inverted matrix.)#" ) │ │ │ + .def("DumpJson", │ │ │ + (void (NCollection_Mat3::*)( Standard_OStream & , Standard_Integer ) const) &NCollection_Mat3::DumpJson, │ │ │ + R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("arg")) │ │ │ + .def_static("Identity_s", │ │ │ + (NCollection_Mat3 (*)() ) &NCollection_Mat3::Identity, │ │ │ + R"#(Return identity matrix.)#" ) │ │ │ + .def_static("Zero_s", │ │ │ + (NCollection_Mat3 (*)() ) &NCollection_Mat3::Zero, │ │ │ + R"#(Return zero matrix.)#" ) │ │ │ + .def_static("Multiply_s", │ │ │ + (NCollection_Mat3 (*)( const NCollection_Mat3 & , const NCollection_Mat3 & ) ) &NCollection_Mat3::Multiply, │ │ │ + R"#(Compute matrix multiplication product: A * B.)#" ,py::arg("theMatA"), py::arg("theMatB")) │ │ │ + .def_static("Map_s", │ │ │ + (NCollection_Mat3 & (*)( Element_t * ) ) &NCollection_Mat3::Map, │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ + .def_static("Map_s", │ │ │ + ( const NCollection_Mat3 & (*)( const Element_t * ) ) &NCollection_Mat3::Map, │ │ │ + R"#(Maps plain C array to matrix type.)#" ,py::arg("theData")) │ │ │ + .def("__mul__", │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ + .def("__rmul__", │ │ │ + (NCollection_Vec3 (NCollection_Mat3::*)( const NCollection_Vec3 & ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Multiply by the vector (M * V).)#" ,py::arg("theVec")) │ │ │ + .def("__imul__", │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator*=, │ │ │ + py::is_operator(), │ │ │ + R"#(Multiply by the another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("__mul__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ + .def("__rmul__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Compute matrix multiplication product.)#" ,py::arg("theMat")) │ │ │ + .def("__imul__", │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator*=, │ │ │ + py::is_operator(), │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ + .def("__mul__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ + .def("__rmul__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Compute per-element multiplication.)#" ,py::arg("theFactor")) │ │ │ + .def("__itruediv__", │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const Element_t ) ) &NCollection_Mat3::operator/=, │ │ │ + py::is_operator(), │ │ │ + R"#(Per-component division.)#" ,py::arg("theScalar")) │ │ │ + .def("__truediv__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const Element_t ) const) &NCollection_Mat3::operator/, │ │ │ + py::is_operator(), │ │ │ + R"#(Divides all the coefficients of the matrix by scalar.)#" ,py::arg("theScalar")) │ │ │ + .def("__iadd__", │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator+=, │ │ │ + py::is_operator(), │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("__isub__", │ │ │ + (NCollection_Mat3 & (NCollection_Mat3::*)( const NCollection_Mat3 & ) ) &NCollection_Mat3::operator-=, │ │ │ + py::is_operator(), │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("__add__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator+, │ │ │ + py::is_operator(), │ │ │ + R"#(Per-component addition of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("__sub__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)( const NCollection_Mat3 & ) const) &NCollection_Mat3::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Per-component subtraction of another matrix.)#" ,py::arg("theMat")) │ │ │ + .def("__sub__", │ │ │ + (NCollection_Mat3 (NCollection_Mat3::*)() const) &NCollection_Mat3::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Returns matrix with all components negated.)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(This template class represent constant UTF-* string. String stored in memory continuously, always NULL-terminated and can be used as standard C-string using ToCString() method.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_UtfString(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const NCollection_UtfString & >() ,py::arg("theCopy") ) │ │ │ + .def(py::init< const char *, const Standard_Integer >() ,py::arg("theCopyUtf8"), py::arg("theLength") ) │ │ │ + .def(py::init< const Standard_Utf16Char *, const Standard_Integer >() ,py::arg("theCopyUtf16"), py::arg("theLength") ) │ │ │ + .def(py::init< const Standard_Utf32Char *, const Standard_Integer >() ,py::arg("theCopyUtf32"), py::arg("theLength") ) │ │ │ + .def(py::init< const Standard_WideChar *, const Standard_Integer >() ,py::arg("theCopyUtfWide"), py::arg("theLength") ) │ │ │ + .def("Iterator", │ │ │ + (NCollection_UtfIterator (NCollection_UtfString::*)() const) &NCollection_UtfString::Iterator, │ │ │ + R"#()#" ) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Size, │ │ │ + R"#(Returns the size of the buffer in bytes, excluding NULL-termination symbol)#" ) │ │ │ + .def("Length", │ │ │ + (Standard_Integer (NCollection_UtfString::*)() const) &NCollection_UtfString::Length, │ │ │ + R"#(Returns the length of the string in Unicode symbols)#" ) │ │ │ + .def("GetChar", │ │ │ + (Standard_Utf32Char (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetChar, │ │ │ + R"#(Retrieve Unicode symbol at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ + .def("GetCharBuffer", │ │ │ + ( const Type * (NCollection_UtfString::*)( const Standard_Integer ) const) &NCollection_UtfString::GetCharBuffer, │ │ │ + R"#(Retrieve string buffer at specified position. Warning! This is a slow access. Iterator should be used for consecutive parsing.)#" ,py::arg("theCharIndex")) │ │ │ + .def("FromLocale", │ │ │ + (void (NCollection_UtfString::*)( const char * , const Standard_Integer ) ) &NCollection_UtfString::FromLocale, │ │ │ + R"#(Copy from multibyte string in current system locale.)#" ,py::arg("theString"), py::arg("theLength")) │ │ │ + .def("IsEqual", │ │ │ + (bool (NCollection_UtfString::*)( const NCollection_UtfString & ) const) &NCollection_UtfString::IsEqual, │ │ │ + R"#(Compares this string with another one.)#" ,py::arg("theCompare")) │ │ │ + .def("SubString", │ │ │ + (NCollection_UtfString (NCollection_UtfString::*)( const Standard_Integer , const Standard_Integer ) const) &NCollection_UtfString::SubString, │ │ │ + R"#(Returns the substring.)#" ,py::arg("theStart"), py::arg("theEnd")) │ │ │ + .def("ToCString", │ │ │ + ( const Type * (NCollection_UtfString::*)() const) &NCollection_UtfString::ToCString, │ │ │ + R"#(Returns NULL-terminated Unicode string. Should not be modified or deleted!)#" ) │ │ │ + .def("ToUtf8", │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf8, │ │ │ + R"#(Returns copy in UTF-8 format)#" ) │ │ │ + .def("ToUtf16", │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf16, │ │ │ + R"#(Returns copy in UTF-16 format)#" ) │ │ │ + .def("ToUtf32", │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtf32, │ │ │ + R"#(Returns copy in UTF-32 format)#" ) │ │ │ + .def("ToUtfWide", │ │ │ + ( const NCollection_UtfString (NCollection_UtfString::*)() const) &NCollection_UtfString::ToUtfWide, │ │ │ + R"#(Returns copy in wide format (UTF-16 on Windows and UTF-32 on Linux))#" ) │ │ │ + .def("ToLocale", │ │ │ + (bool (NCollection_UtfString::*)( char * , const Standard_Integer ) const) &NCollection_UtfString::ToLocale, │ │ │ + R"#(Converts the string into string in the current system locale.)#" ,py::arg("theBuffer"), py::arg("theSizeBytes")) │ │ │ + .def("IsEmpty", │ │ │ + (bool (NCollection_UtfString::*)() const) &NCollection_UtfString::IsEmpty, │ │ │ + R"#(Returns true if string is empty)#" ) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_UtfString::*)() ) &NCollection_UtfString::Clear, │ │ │ + R"#(Zero string.)#" ) │ │ │ + .def("Assign", │ │ │ + ( const NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::Assign, │ │ │ + R"#(Copy from another string.)#" ,py::arg("theOther")) │ │ │ + .def("Swap", │ │ │ + (void (NCollection_UtfString::*)( NCollection_UtfString & ) ) &NCollection_UtfString::Swap, │ │ │ + R"#(Exchange the data of two strings (without reallocating memory).)#" ,py::arg("theOther")) │ │ │ + .def("__iadd__", │ │ │ + (NCollection_UtfString & (NCollection_UtfString::*)( const NCollection_UtfString & ) ) &NCollection_UtfString::operator+=, │ │ │ + py::is_operator(), │ │ │ + R"#(Join strings.)#" ,py::arg("theAppend")) │ │ │ + .def("__len__",[](const NCollection_UtfString &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + .def("__bool__",[](const NCollection_UtfString &self) │ │ │ + { return self.IsEmpty(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_StlIterator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const BaseIterator & >() ,py::arg("theIterator") ) │ │ │ + .def(py::init< const NCollection_StlIterator & >() ,py::arg("theIterator") ) │ │ │ + .def("Iterator", │ │ │ + ( const BaseIterator & (NCollection_StlIterator::*)() const) &NCollection_StlIterator::Iterator, │ │ │ + R"#(Access to NCollection iterator instance)#" ) │ │ │ + .def("ChangeIterator", │ │ │ + (BaseIterator & (NCollection_StlIterator::*)() ) &NCollection_StlIterator::ChangeIterator, │ │ │ + R"#(Access to NCollection iterator instance)#" ) │ │ │ + .def("__mul__", │ │ │ + (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Get reference to current item)#" ) │ │ │ + .def("__rmul__", │ │ │ + (typename NCollection_StlIterator::reference (NCollection_StlIterator::*)() const) &NCollection_StlIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Get reference to current item)#" ) │ │ │ + .def("__iadd__", │ │ │ + (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator+=, │ │ │ + py::is_operator(), │ │ │ + R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ + .def("__add__", │ │ │ + (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator+, │ │ │ + py::is_operator(), │ │ │ + R"#(Addition)#" ,py::arg("theOffset")) │ │ │ + .def("__isub__", │ │ │ + (NCollection_StlIterator & (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) ) &NCollection_StlIterator::operator-=, │ │ │ + py::is_operator(), │ │ │ + R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ + .def("__sub__", │ │ │ + (NCollection_StlIterator (NCollection_StlIterator::*)( typename NCollection_StlIterator::difference_type ) const) &NCollection_StlIterator::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ + .def("__sub__", │ │ │ + (typename NCollection_StlIterator::difference_type (NCollection_StlIterator::*)( const NCollection_StlIterator & ) const) &NCollection_StlIterator::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Difference)#" ,py::arg("theOther")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template > │ │ │ +void preregister_template_NCollection_DataMap(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DataMap is a Map to store keys with associated Items. See Map from NCollection for a discussion about the number of buckets.)#"); │ │ │ +} │ │ │ + │ │ │ +template > │ │ │ +void register_template_NCollection_DataMap(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_DataMap & >() ,py::arg("theOther") ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::begin, │ │ │ + R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_DataMap::iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::end, │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cbegin, │ │ │ + R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_DataMap::const_iterator (NCollection_DataMap::*)() const) &NCollection_DataMap::cend, │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_DataMap::*)( NCollection_DataMap & ) ) &NCollection_DataMap::Exchange, │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ + .def("Assign", │ │ │ + (NCollection_DataMap & (NCollection_DataMap::*)( const NCollection_DataMap & ) ) &NCollection_DataMap::Assign, │ │ │ + R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("ReSize", │ │ │ + (void (NCollection_DataMap::*)( const Standard_Integer ) ) &NCollection_DataMap::ReSize, │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ + .def("Bind", │ │ │ + (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bind, │ │ │ + R"#(Bind binds Item to Key in map.)#" ,py::arg("theKey"), py::arg("theItem")) │ │ │ + .def("Bound", │ │ │ + (TheItemType * (NCollection_DataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_DataMap::Bound, │ │ │ + R"#(Bound binds Item to Key in map.)#" ,py::arg("theKey"), py::arg("theItem")) │ │ │ + .def("IsBound", │ │ │ + (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::IsBound, │ │ │ + R"#(IsBound)#" ,py::arg("theKey")) │ │ │ + .def("UnBind", │ │ │ + (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::UnBind, │ │ │ + R"#(UnBind removes Item Key pair from map)#" ,py::arg("theKey")) │ │ │ + .def("Seek", │ │ │ + ( const TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Seek, │ │ │ + R"#(Seek returns pointer to Item by Key. Returns NULL is Key was not bound.)#" ,py::arg("theKey")) │ │ │ + .def("Find", │ │ │ + ( const TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) const) &NCollection_DataMap::Find, │ │ │ + R"#(Find returns the Item for Key. Raises if Key was not bound)#" ,py::arg("theKey")) │ │ │ + .def("Find", │ │ │ + (Standard_Boolean (NCollection_DataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_DataMap::Find, │ │ │ + R"#(Find Item for key with copying.)#" ,py::arg("theKey"), py::arg("theValue")) │ │ │ + .def("ChangeSeek", │ │ │ + (TheItemType * (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeSeek, │ │ │ + R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL is Key was not bound.)#" ,py::arg("theKey")) │ │ │ + .def("ChangeFind", │ │ │ + (TheItemType & (NCollection_DataMap::*)( const TheKeyType & ) ) &NCollection_DataMap::ChangeFind, │ │ │ + R"#(ChangeFind returns mofifiable Item by Key. Raises if Key was not bound)#" ,py::arg("theKey")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_DataMap::*)( const Standard_Boolean ) ) &NCollection_DataMap::Clear, │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_DataMap::*)( const handle & ) ) &NCollection_DataMap::Clear, │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_DataMap::*)() const) &NCollection_DataMap::Size, │ │ │ + R"#(Size)#" ) │ │ │ + .def("__iter__",[](const NCollection_DataMap &self) │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_DataMap &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: This Iterator class iterates on BaseList of TListNode and is instantiated in List/Set/Queue/Stack Remark: TListIterator is internal class)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_TListIterator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const NCollection_BaseList & >() ,py::arg("theList") ) │ │ │ + .def("More", │ │ │ + (Standard_Boolean (NCollection_TListIterator::*)() const) &NCollection_TListIterator::More, │ │ │ + R"#(Check end)#" ) │ │ │ + .def("Next", │ │ │ + (void (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Next, │ │ │ + R"#(Make step)#" ) │ │ │ + .def("Value", │ │ │ + ( const TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::Value, │ │ │ + R"#(Constant Value access)#" ) │ │ │ + .def("Value", │ │ │ + (TheItemType & (NCollection_TListIterator::*)() ) &NCollection_TListIterator::Value, │ │ │ + R"#(Non-const Value access)#" ) │ │ │ + .def("ChangeValue", │ │ │ + (TheItemType & (NCollection_TListIterator::*)() const) &NCollection_TListIterator::ChangeValue, │ │ │ + R"#(Non-const Value access)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template > │ │ │ +void preregister_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: An indexed map is used to store keys and to bind an index to them. Each new key stored in the map gets an index. Index are incremented as keys are stored in the map. A key can be found by the index and an index by the key. No key but the last can be removed so the indices are in the range 1.. Extent. An Item is stored with each key.)#"); │ │ │ +} │ │ │ + │ │ │ +template > │ │ │ +void register_template_NCollection_IndexedDataMap(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_IndexedDataMap & >() ,py::arg("theOther") ) │ │ │ + .def("begin", │ │ │ + (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::begin, │ │ │ + R"#(Returns an iterator pointing to the first element in the map.)#" ) │ │ │ + .def("end", │ │ │ + (typename NCollection_IndexedDataMap::iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::end, │ │ │ + R"#(Returns an iterator referring to the past-the-end element in the map.)#" ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cbegin, │ │ │ + R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_IndexedDataMap::const_iterator (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::cend, │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_IndexedDataMap::*)( NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Exchange, │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ + .def("Assign", │ │ │ + (NCollection_IndexedDataMap & (NCollection_IndexedDataMap::*)( const NCollection_IndexedDataMap & ) ) &NCollection_IndexedDataMap::Assign, │ │ │ + R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("ReSize", │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ReSize, │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ + .def("Add", │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Add, │ │ │ + R"#(Returns the Index of already bound Key or appends new Key with specified Item value.)#" ,py::arg("theKey1"), py::arg("theItem")) │ │ │ + .def("Contains", │ │ │ + (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Contains, │ │ │ + R"#(Contains)#" ,py::arg("theKey1")) │ │ │ + .def("Substitute", │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const TheKeyType & , const TheItemType & ) ) &NCollection_IndexedDataMap::Substitute, │ │ │ + R"#(Substitute)#" ,py::arg("theIndex"), py::arg("theKey1"), py::arg("theItem")) │ │ │ + .def("Swap", │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer , const Standard_Integer ) ) &NCollection_IndexedDataMap::Swap, │ │ │ + R"#(Swaps two elements with the given indices.)#" ,py::arg("theIndex1"), py::arg("theIndex2")) │ │ │ + .def("RemoveLast", │ │ │ + (void (NCollection_IndexedDataMap::*)() ) &NCollection_IndexedDataMap::RemoveLast, │ │ │ + R"#(RemoveLast)#" ) │ │ │ + .def("RemoveFromIndex", │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::RemoveFromIndex, │ │ │ + R"#(Remove the key of the given index. Caution! The index of the last key can be changed.)#" ,py::arg("theIndex")) │ │ │ + .def("RemoveKey", │ │ │ + (void (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::RemoveKey, │ │ │ + R"#(Remove the given key. Caution! The index of the last key can be changed.)#" ,py::arg("theKey1")) │ │ │ + .def("FindKey", │ │ │ + ( const TheKeyType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindKey, │ │ │ + R"#(FindKey)#" ,py::arg("theIndex")) │ │ │ + .def("FindFromIndex", │ │ │ + ( const TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) const) &NCollection_IndexedDataMap::FindFromIndex, │ │ │ + R"#(FindFromIndex)#" ,py::arg("theIndex")) │ │ │ + .def("ChangeFromIndex", │ │ │ + (TheItemType & (NCollection_IndexedDataMap::*)( const Standard_Integer ) ) &NCollection_IndexedDataMap::ChangeFromIndex, │ │ │ + R"#(ChangeFromIndex)#" ,py::arg("theIndex")) │ │ │ + .def("FindIndex", │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindIndex, │ │ │ + R"#(FindIndex)#" ,py::arg("theKey1")) │ │ │ + .def("FindFromKey", │ │ │ + ( const TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ + R"#(FindFromKey)#" ,py::arg("theKey1")) │ │ │ + .def("ChangeFromKey", │ │ │ + (TheItemType & (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeFromKey, │ │ │ + R"#(ChangeFromKey)#" ,py::arg("theKey1")) │ │ │ + .def("Seek", │ │ │ + ( const TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) const) &NCollection_IndexedDataMap::Seek, │ │ │ + R"#(Seek returns pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ + .def("ChangeSeek", │ │ │ + (TheItemType * (NCollection_IndexedDataMap::*)( const TheKeyType & ) ) &NCollection_IndexedDataMap::ChangeSeek, │ │ │ + R"#(ChangeSeek returns modifiable pointer to Item by Key. Returns NULL if Key was not found.)#" ,py::arg("theKey1")) │ │ │ + .def("FindFromKey", │ │ │ + (Standard_Boolean (NCollection_IndexedDataMap::*)( const TheKeyType & , TheItemType & ) const) &NCollection_IndexedDataMap::FindFromKey, │ │ │ + R"#(Find value for key with copying.)#" ,py::arg("theKey1"), py::arg("theValue")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_IndexedDataMap::*)( const Standard_Boolean ) ) &NCollection_IndexedDataMap::Clear, │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_IndexedDataMap::*)( const handle & ) ) &NCollection_IndexedDataMap::Clear, │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_IndexedDataMap::*)() const) &NCollection_IndexedDataMap::Size, │ │ │ + R"#(Size)#" ) │ │ │ + .def("__iter__",[](const NCollection_IndexedDataMap &self) │ │ │ + { return py::make_iterator(self.begin(), self.end()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_IndexedDataMap &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: Abstract list node class. Used by BaseList Remark: Internal class)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_TListNode(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const TheItemType &,NCollection_ListNode * >() ,py::arg("theItem"), py::arg("theNext") ) │ │ │ + .def("Value", │ │ │ + ( const TheItemType & (NCollection_TListNode::*)() const) &NCollection_TListNode::Value, │ │ │ + R"#(Constant value access)#" ) │ │ │ + .def("ChangeValue", │ │ │ + (TheItemType & (NCollection_TListNode::*)() ) &NCollection_TListNode::ChangeValue, │ │ │ + R"#(Variable value access)#" ) │ │ │ + .def_static("delNode_s", │ │ │ + (void (*)( NCollection_ListNode * , handle & ) ) &NCollection_TListNode::delNode, │ │ │ + R"#(Static deleter to be passed to BaseList)#" ,py::arg("theNode"), py::arg("theAl")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ template │ │ │ void preregister_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Generic matrix of 4 x 4 elements. To be used in conjunction with NCollection_Vec4 entities. Originally introduced for 3D space projection and orientation operations. Warning, empty constructor returns an identity matrix.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_NCollection_Mat4(py::object &m, const char *name){ │ │ │ @@ -2677,10 +2272,415 @@ │ │ │ .def("__sub__", │ │ │ (NCollection_Mat4 (NCollection_Mat4::*)() const) &NCollection_Mat4::operator-, │ │ │ py::is_operator(), │ │ │ R"#(Returns matrix with all components negated.)#" ) │ │ │ ; │ │ │ }; │ │ │ │ │ │ +template │ │ │ +void preregister_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Iterator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const NCollection_Iterator & >() ,py::arg("theOther") ) │ │ │ + .def(py::init< const Container & >() ,py::arg("theList") ) │ │ │ + .def(py::init< const Container &, const typename Container::iterator & >() ,py::arg("theList"), py::arg("theOther") ) │ │ │ + .def("Init", │ │ │ + (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Init, │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ + .def("Init", │ │ │ + (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Init, │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ + .def("More", │ │ │ + (bool (NCollection_Iterator::*)() const) &NCollection_Iterator::More, │ │ │ + R"#()#" ) │ │ │ + .def("Initialize", │ │ │ + (void (NCollection_Iterator::*)( Container & ) ) &NCollection_Iterator::Initialize, │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ + .def("Initialize", │ │ │ + (void (NCollection_Iterator::*)( const Container & ) ) &NCollection_Iterator::Initialize, │ │ │ + R"#()#" ,py::arg("theList")) │ │ │ + .def("ValueIter", │ │ │ + ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::ValueIter, │ │ │ + R"#()#" ) │ │ │ + .def("ChangeValueIter", │ │ │ + (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValueIter, │ │ │ + R"#()#" ) │ │ │ + .def("EndIter", │ │ │ + ( const typename Container::iterator & (NCollection_Iterator::*)() const) &NCollection_Iterator::EndIter, │ │ │ + R"#()#" ) │ │ │ + .def("ChangeEndIter", │ │ │ + (typename Container::iterator & (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeEndIter, │ │ │ + R"#()#" ) │ │ │ + .def("Next", │ │ │ + (void (NCollection_Iterator::*)() ) &NCollection_Iterator::Next, │ │ │ + R"#()#" ) │ │ │ + .def("Value", │ │ │ + ( const typename Container::const_reference (NCollection_Iterator::*)() const) &NCollection_Iterator::Value, │ │ │ + R"#()#" ) │ │ │ + .def("ChangeValue", │ │ │ + ( const typename Container::reference (NCollection_Iterator::*)() ) &NCollection_Iterator::ChangeValue, │ │ │ + R"#()#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template > │ │ │ +void preregister_template_NCollection_Map(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: Single hashed Map. This Map is used to store and retrieve keys in linear time.)#"); │ │ │ +} │ │ │ + │ │ │ +template > │ │ │ +void register_template_NCollection_Map(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_Map & >() ,py::arg("theOther") ) │ │ │ + .def("cbegin", │ │ │ + (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cbegin, │ │ │ + R"#(Returns a const iterator pointing to the first element in the map.)#" ) │ │ │ + .def("cend", │ │ │ + (typename NCollection_Map::const_iterator (NCollection_Map::*)() const) &NCollection_Map::cend, │ │ │ + R"#(Returns a const iterator referring to the past-the-end element in the map.)#" ) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_Map::*)( NCollection_Map & ) ) &NCollection_Map::Exchange, │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ + .def("Assign", │ │ │ + (NCollection_Map & (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Assign, │ │ │ + R"#(Assign. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("ReSize", │ │ │ + (void (NCollection_Map::*)( const Standard_Integer ) ) &NCollection_Map::ReSize, │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ + .def("Add", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Add, │ │ │ + R"#(Add)#" ,py::arg("theKey")) │ │ │ + .def("Added", │ │ │ + ( const TheKeyType & (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Added, │ │ │ + R"#(Added: add a new key if not yet in the map, and return reference to either newly added or previously existing object)#" ,py::arg("theKey")) │ │ │ + .def("Contains", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) const) &NCollection_Map::Contains, │ │ │ + R"#(Contains)#" ,py::arg("theKey")) │ │ │ + .def("Remove", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const TheKeyType & ) ) &NCollection_Map::Remove, │ │ │ + R"#(Remove)#" ,py::arg("K")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_Map::*)( const Standard_Boolean ) ) &NCollection_Map::Clear, │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_Map::*)( const handle & ) ) &NCollection_Map::Clear, │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_Map::*)() const) &NCollection_Map::Size, │ │ │ + R"#(Size)#" ) │ │ │ + .def("IsEqual", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::IsEqual, │ │ │ + R"#(Checks if two maps contain exactly the same keys. This function compares the keys of this map and another map and returns true if they contain exactly the same keys.)#" ,py::arg("theOther")) │ │ │ + .def("Contains", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::Contains, │ │ │ + R"#(Checks if this map contains all keys of another map. This function checks if this map contains all keys of another map.)#" ,py::arg("theOther")) │ │ │ + .def("Union", │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Union, │ │ │ + R"#(Sets this Map to be the result of union (aka addition, fuse, merge, boolean OR) operation between two given Maps The new Map contains the values that are contained either in the first map or in the second map or in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be passed as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ + .def("Unite", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Unite, │ │ │ + R"#(Apply to this Map the boolean operation union (aka addition, fuse, merge, boolean OR) with another (given) Map. The result contains the values that were previously contained in this map or contained in the given (operand) map. This algorithm is similar to method Union(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ + .def("HasIntersection", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) const) &NCollection_Map::HasIntersection, │ │ │ + R"#(Returns true if this and theMap have common elements.)#" ,py::arg("theMap")) │ │ │ + .def("Intersection", │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Intersection, │ │ │ + R"#(Sets this Map to be the result of intersection (aka multiplication, common, boolean AND) operation between two given Maps. The new Map contains only the values that are contained in both map operands. All previous content of this Map is cleared. This same map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ + .def("Intersect", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Intersect, │ │ │ + R"#(Apply to this Map the intersection operation (aka multiplication, common, boolean AND) with another (given) Map. The result contains only the values that are contained in both this and the given maps. This algorithm is similar to method Intersection(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ + .def("Subtraction", │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Subtraction, │ │ │ + R"#(Sets this Map to be the result of subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation between two given Maps. The new Map contains only the values that are contained in the first map operands and not contained in the second one. All previous content of this Map is cleared.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ + .def("Subtract", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Subtract, │ │ │ + R"#(Apply to this Map the subtraction (aka set-theoretic difference, relative complement, exclude, cut, boolean NOT) operation with another (given) Map. The result contains only the values that were previously contained in this map and not contained in this map. This algorithm is similar to method Subtract() with two operands. Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ + .def("Difference", │ │ │ + (void (NCollection_Map::*)( const NCollection_Map & , const NCollection_Map & ) ) &NCollection_Map::Difference, │ │ │ + R"#(Sets this Map to be the result of symmetric difference (aka exclusive disjunction, boolean XOR) operation between two given Maps. The new Map contains the values that are contained only in the first or the second operand maps but not in both. All previous content of this Map is cleared. This map (result of the boolean operation) can also be used as one of operands.)#" ,py::arg("theLeft"), py::arg("theRight")) │ │ │ + .def("Differ", │ │ │ + (Standard_Boolean (NCollection_Map::*)( const NCollection_Map & ) ) &NCollection_Map::Differ, │ │ │ + R"#(Apply to this Map the symmetric difference (aka exclusive disjunction, boolean XOR) operation with another (given) Map. The result contains the values that are contained only in this or the operand map, but not in both. This algorithm is similar to method Difference(). Returns True if contents of this map is changed.)#" ,py::arg("theOther")) │ │ │ + .def("__iter__",[](const NCollection_Map &self) │ │ │ + { return py::make_iterator(self.cbegin(), self.cend()); }, │ │ │ + py::keep_alive<0, 1>()) │ │ │ + .def("__len__",[](const NCollection_Map &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_UtfIterator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Template class for Unicode strings support.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_UtfIterator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Type * >() ,py::arg("theString") ) │ │ │ + .def("Init", │ │ │ + (void (NCollection_UtfIterator::*)( const Type * ) ) &NCollection_UtfIterator::Init, │ │ │ + R"#(Initialize iterator within specified NULL-terminated string.)#" ,py::arg("theString")) │ │ │ + .def("IsValid", │ │ │ + (bool (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::IsValid, │ │ │ + R"#(Return true if Unicode symbol is within valid range.)#" ) │ │ │ + .def("BufferHere", │ │ │ + ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferHere, │ │ │ + R"#(Buffer-fetching getter.)#" ) │ │ │ + .def("ChangeBufferHere", │ │ │ + (Type * (NCollection_UtfIterator::*)() ) &NCollection_UtfIterator::ChangeBufferHere, │ │ │ + R"#(Buffer-fetching getter. Dangerous! Iterator should be reinitialized on buffer change.)#" ) │ │ │ + .def("BufferNext", │ │ │ + ( const Type * (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::BufferNext, │ │ │ + R"#(Buffer-fetching getter.)#" ) │ │ │ + .def("Index", │ │ │ + (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::Index, │ │ │ + R"#(Returns the index displacement from iterator initialization (first symbol has index 0))#" ) │ │ │ + .def("AdvanceBytesUtf8", │ │ │ + (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf8, │ │ │ + R"#(Returns the advance in bytes to store current symbol in UTF-8. 0 means an invalid symbol; 1-4 bytes are valid range.)#" ) │ │ │ + .def("AdvanceBytesUtf16", │ │ │ + (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf16, │ │ │ + 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.)#" ) │ │ │ + .def("AdvanceCodeUnitsUtf16", │ │ │ + (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceCodeUnitsUtf16, │ │ │ + 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.)#" ) │ │ │ + .def("AdvanceBytesUtf32", │ │ │ + (Standard_Integer (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::AdvanceBytesUtf32, │ │ │ + R"#(Returns the advance in bytes to store current symbol in UTF-32. Always 4 bytes (method for consistency).)#" ) │ │ │ + .def("GetUtf8", │ │ │ + (Standard_Utf8Char * (NCollection_UtfIterator::*)( Standard_Utf8Char * ) const) &NCollection_UtfIterator::GetUtf8, │ │ │ + R"#(Fill the UTF-8 buffer within current Unicode symbol. Use method AdvanceUtf8() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ + .def("GetUtf8", │ │ │ + (Standard_Utf8UChar * (NCollection_UtfIterator::*)( Standard_Utf8UChar * ) const) &NCollection_UtfIterator::GetUtf8, │ │ │ + R"#()#" ,py::arg("theBuffer")) │ │ │ + .def("GetUtf16", │ │ │ + (Standard_Utf16Char * (NCollection_UtfIterator::*)( Standard_Utf16Char * ) const) &NCollection_UtfIterator::GetUtf16, │ │ │ + R"#(Fill the UTF-16 buffer within current Unicode symbol. Use method AdvanceUtf16() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ + .def("GetUtf32", │ │ │ + (Standard_Utf32Char * (NCollection_UtfIterator::*)( Standard_Utf32Char * ) const) &NCollection_UtfIterator::GetUtf32, │ │ │ + R"#(Fill the UTF-32 buffer within current Unicode symbol. Use method AdvanceUtf32() to allocate buffer with enough size.)#" ,py::arg("theBuffer")) │ │ │ + .def("__mul__", │ │ │ + (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Dereference operator.)#" ) │ │ │ + .def("__rmul__", │ │ │ + (Standard_Utf32Char (NCollection_UtfIterator::*)() const) &NCollection_UtfIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Dereference operator.)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Purpose: This template class is used to define Handle adaptor for allocated dynamically objects of arbitrary type.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Handle(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< T * >() ,py::arg("theObject") ) │ │ │ + .def("get", │ │ │ + (T * (NCollection_Handle::*)() ) &NCollection_Handle::get, │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + .def("get", │ │ │ + ( const T * (NCollection_Handle::*)() const) &NCollection_Handle::get, │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + .def_static("DownCast_s", │ │ │ + (NCollection_Handle (*)( const handle & ) ) &NCollection_Handle::DownCast, │ │ │ + R"#(Downcast arbitrary Handle to the argument type if contained object is Handle for this type; returns null otherwise)#" ,py::arg("theOther")) │ │ │ + .def("__mul__", │ │ │ + (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + .def("__rmul__", │ │ │ + (T & (NCollection_Handle::*)() ) &NCollection_Handle::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + .def("__mul__", │ │ │ + ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + .def("__rmul__", │ │ │ + ( const T & (NCollection_Handle::*)() const) &NCollection_Handle::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Cast handle to contained type)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ +void preregister_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , NCollection_BaseMap >(m,name,R"#(Purpose: The DoubleMap is used to bind pairs (Key1,Key2) and retrieve them in linear time.)#"); │ │ │ +} │ │ │ + │ │ │ +template ,typename Hasher2=NCollection_DefaultHasher> │ │ │ +void register_template_NCollection_DoubleMap(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , NCollection_BaseMap >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const Standard_Integer, const handle & >() ,py::arg("theNbBuckets"), py::arg("theAllocator") ) │ │ │ + .def(py::init< const NCollection_DoubleMap & >() ,py::arg("theOther") ) │ │ │ + .def("Exchange", │ │ │ + (void (NCollection_DoubleMap::*)( NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Exchange, │ │ │ + R"#(Exchange the content of two maps without re-allocations. Notice that allocators will be swapped as well!)#" ,py::arg("theOther")) │ │ │ + .def("Assign", │ │ │ + (NCollection_DoubleMap & (NCollection_DoubleMap::*)( const NCollection_DoubleMap & ) ) &NCollection_DoubleMap::Assign, │ │ │ + R"#(Assignment. This method does not change the internal allocator.)#" ,py::arg("theOther")) │ │ │ + .def("ReSize", │ │ │ + (void (NCollection_DoubleMap::*)( const Standard_Integer ) ) &NCollection_DoubleMap::ReSize, │ │ │ + R"#(ReSize)#" ,py::arg("N")) │ │ │ + .def("Bind", │ │ │ + (void (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) ) &NCollection_DoubleMap::Bind, │ │ │ + R"#(Bind)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ + .def("AreBound", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , const TheKey2Type & ) const) &NCollection_DoubleMap::AreBound, │ │ │ + R"#(* AreBound)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ + .def("IsBound1", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::IsBound1, │ │ │ + R"#(IsBound1)#" ,py::arg("theKey1")) │ │ │ + .def("IsBound2", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::IsBound2, │ │ │ + R"#(IsBound2)#" ,py::arg("theKey2")) │ │ │ + .def("UnBind1", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & ) ) &NCollection_DoubleMap::UnBind1, │ │ │ + R"#(UnBind1)#" ,py::arg("theKey1")) │ │ │ + .def("UnBind2", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & ) ) &NCollection_DoubleMap::UnBind2, │ │ │ + R"#(UnBind2)#" ,py::arg("theKey2")) │ │ │ + .def("Find1", │ │ │ + ( const TheKey2Type & (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ + R"#(Find the Key1 and return Key2 value. Raises an exception if Key1 was not bound.)#" ,py::arg("theKey1")) │ │ │ + .def("Find1", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey1Type & , TheKey2Type & ) const) &NCollection_DoubleMap::Find1, │ │ │ + R"#(Find the Key1 and return Key2 value (by copying its value).)#" ,py::arg("theKey1"), py::arg("theKey2")) │ │ │ + .def("Seek1", │ │ │ + ( const TheKey2Type * (NCollection_DoubleMap::*)( const TheKey1Type & ) const) &NCollection_DoubleMap::Seek1, │ │ │ + R"#(Find the Key1 and return pointer to Key2 or NULL if Key1 is not bound.)#" ,py::arg("theKey1")) │ │ │ + .def("Find2", │ │ │ + ( const TheKey1Type & (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ + R"#(Find the Key2 and return Key1 value. Raises an exception if Key2 was not bound.)#" ,py::arg("theKey2")) │ │ │ + .def("Find2", │ │ │ + (Standard_Boolean (NCollection_DoubleMap::*)( const TheKey2Type & , TheKey1Type & ) const) &NCollection_DoubleMap::Find2, │ │ │ + R"#(Find the Key2 and return Key1 value (by copying its value).)#" ,py::arg("theKey2"), py::arg("theKey1")) │ │ │ + .def("Seek2", │ │ │ + ( const TheKey1Type * (NCollection_DoubleMap::*)( const TheKey2Type & ) const) &NCollection_DoubleMap::Seek2, │ │ │ + R"#(Find the Key2 and return pointer to Key1 or NULL if not bound.)#" ,py::arg("theKey2")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_DoubleMap::*)( const Standard_Boolean ) ) &NCollection_DoubleMap::Clear, │ │ │ + R"#(Clear data. If doReleaseMemory is false then the table of buckets is not released and will be reused.)#" ,py::arg("doReleaseMemory")) │ │ │ + .def("Clear", │ │ │ + (void (NCollection_DoubleMap::*)( const handle & ) ) &NCollection_DoubleMap::Clear, │ │ │ + R"#(Clear data and reset allocator)#" ,py::arg("theAllocator")) │ │ │ + .def("Size", │ │ │ + (Standard_Integer (NCollection_DoubleMap::*)() const) &NCollection_DoubleMap::Size, │ │ │ + R"#(Size)#" ) │ │ │ + .def("__len__",[](const NCollection_DoubleMap &self) │ │ │ + { return self.Size(); } │ │ │ + ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_Allocator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle & >() ,py::arg("arg") ) │ │ │ + .def("address", │ │ │ + (typename NCollection_Allocator::pointer (NCollection_Allocator::*)( typename NCollection_Allocator::reference ) const) &NCollection_Allocator::address, │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ + .def("address", │ │ │ + (typename NCollection_Allocator::const_pointer (NCollection_Allocator::*)( typename NCollection_Allocator::const_reference ) const) &NCollection_Allocator::address, │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ + .def("destroy", │ │ │ + (void (NCollection_Allocator::*)( typename NCollection_Allocator::pointer ) ) &NCollection_Allocator::destroy, │ │ │ + R"#(Destroys the object. Uses the object destructor.)#" ,py::arg("thePnt")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Implements allocator requirements as defined in ISO C++ Standard 2003, section 20.1.5. The allocator uses a standard OCCT mechanism for memory allocation and deallocation. It can be used with standard containers (std::vector, std::map, etc.) to take advantage of OCCT memory optimizations.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_OccAllocator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const handle & >() ,py::arg("theAlloc") ) │ │ │ + .def(py::init< const NCollection_OccAllocator & >() ,py::arg("theOther") ) │ │ │ + .def("SetAllocator", │ │ │ + (void (NCollection_OccAllocator::*)( const handle & ) ) &NCollection_OccAllocator::SetAllocator, │ │ │ + R"#()#" ,py::arg("theAlloc")) │ │ │ + .def("Allocator", │ │ │ + ( const handle & (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::Allocator, │ │ │ + R"#()#" ) │ │ │ + .def("address", │ │ │ + (typename NCollection_OccAllocator::pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::reference ) const) &NCollection_OccAllocator::address, │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ + .def("address", │ │ │ + (typename NCollection_OccAllocator::const_pointer (NCollection_OccAllocator::*)( typename NCollection_OccAllocator::const_reference ) const) &NCollection_OccAllocator::address, │ │ │ + R"#(Returns an object address.)#" ,py::arg("theItem")) │ │ │ + .def("max_size", │ │ │ + (size_t (NCollection_OccAllocator::*)() const) &NCollection_OccAllocator::max_size, │ │ │ + R"#(Estimate maximum array size)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_NCollection_IndexedIterator(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Helper class that allows to use NCollection iterators as STL iterators. NCollection iterator can be extended to STL iterator of any category by adding necessary methods: STL forward iterator requires IsEqual method, STL bidirectional iterator requires Previous method, and STL random access iterator requires Offset and Differ methods. See NCollection_Vector as example of declaring custom STL iterators.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_NCollection_IndexedIterator(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< >() ) │ │ │ + .def(py::init< const BaseIndexedMap & >() ,py::arg("theMap") ) │ │ │ + .def(py::init< const size_t, const BaseIndexedMap & >() ,py::arg("theIndex"), py::arg("theMap") ) │ │ │ + .def(py::init< const NCollection_IndexedIterator & >() ,py::arg("theOther") ) │ │ │ + .def("__mul__", │ │ │ + (typename NCollection_IndexedIterator::reference (NCollection_IndexedIterator::*)() const) &NCollection_IndexedIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Get reference to current item)#" ) │ │ │ + .def("__rmul__", │ │ │ + (typename NCollection_IndexedIterator::reference (NCollection_IndexedIterator::*)() const) &NCollection_IndexedIterator::operator*, │ │ │ + py::is_operator(), │ │ │ + R"#(Get reference to current item)#" ) │ │ │ + .def("__iadd__", │ │ │ + (NCollection_IndexedIterator & (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) ) &NCollection_IndexedIterator::operator+=, │ │ │ + py::is_operator(), │ │ │ + R"#(Move forward)#" ,py::arg("theOffset")) │ │ │ + .def("__add__", │ │ │ + (NCollection_IndexedIterator (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) const) &NCollection_IndexedIterator::operator+, │ │ │ + py::is_operator(), │ │ │ + R"#(Addition)#" ,py::arg("theOffset")) │ │ │ + .def("__isub__", │ │ │ + (NCollection_IndexedIterator & (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) ) &NCollection_IndexedIterator::operator-=, │ │ │ + py::is_operator(), │ │ │ + R"#(Move backward)#" ,py::arg("theOffset")) │ │ │ + .def("__sub__", │ │ │ + (NCollection_IndexedIterator (NCollection_IndexedIterator::*)( typename NCollection_IndexedIterator::difference_type ) const) &NCollection_IndexedIterator::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Decrease)#" ,py::arg("theOffset")) │ │ │ + .def("__sub__", │ │ │ + (typename NCollection_IndexedIterator::difference_type (NCollection_IndexedIterator::*)( const NCollection_IndexedIterator & ) const) &NCollection_IndexedIterator::operator-, │ │ │ + py::is_operator(), │ │ │ + R"#(Difference)#" ,py::arg("theOther")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ │ │ │ // user-defined post │ │ ├── ./usr/share/libocp/OCP/OSD_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -105,14 +105,51 @@ │ │ │ py::module m = main_module.def_submodule("OSD", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "OSD_OpenMode",R"#(Specifies the file open mode.)#") │ │ │ + .value("OSD_ReadOnly",OSD_OpenMode::OSD_ReadOnly) │ │ │ + .value("OSD_WriteOnly",OSD_OpenMode::OSD_WriteOnly) │ │ │ + .value("OSD_ReadWrite",OSD_OpenMode::OSD_ReadWrite).export_values(); │ │ │ + py::enum_(m, "OSD_SingleProtection",R"#(Access rights for files. R means Read, W means Write, X means eXecute and D means Delete. On UNIX, the right to Delete is combined with Write access. So if "W"rite is not set and "D"elete is, "W"rite will be set and if "W" is set, "D" will be too.)#") │ │ │ + .value("OSD_None",OSD_SingleProtection::OSD_None) │ │ │ + .value("OSD_R",OSD_SingleProtection::OSD_R) │ │ │ + .value("OSD_W",OSD_SingleProtection::OSD_W) │ │ │ + .value("OSD_RW",OSD_SingleProtection::OSD_RW) │ │ │ + .value("OSD_X",OSD_SingleProtection::OSD_X) │ │ │ + .value("OSD_RX",OSD_SingleProtection::OSD_RX) │ │ │ + .value("OSD_WX",OSD_SingleProtection::OSD_WX) │ │ │ + .value("OSD_RWX",OSD_SingleProtection::OSD_RWX) │ │ │ + .value("OSD_D",OSD_SingleProtection::OSD_D) │ │ │ + .value("OSD_RD",OSD_SingleProtection::OSD_RD) │ │ │ + .value("OSD_WD",OSD_SingleProtection::OSD_WD) │ │ │ + .value("OSD_RWD",OSD_SingleProtection::OSD_RWD) │ │ │ + .value("OSD_XD",OSD_SingleProtection::OSD_XD) │ │ │ + .value("OSD_RXD",OSD_SingleProtection::OSD_RXD) │ │ │ + .value("OSD_WXD",OSD_SingleProtection::OSD_WXD) │ │ │ + .value("OSD_RWXD",OSD_SingleProtection::OSD_RWXD).export_values(); │ │ │ + py::enum_(m, "OSD_SysType",R"#(Thisd is a set of possible system types. 'Default' means SysType of machine operating this process. This can be used with the Path class. All UNIX-like are grouped under "UnixBSD" or "UnixSystemV". Such systems are Solaris, NexTOS ... A category of systems accept MSDOS-like path such as WindowsNT and OS2.)#") │ │ │ + .value("OSD_Unknown",OSD_SysType::OSD_Unknown) │ │ │ + .value("OSD_Default",OSD_SysType::OSD_Default) │ │ │ + .value("OSD_UnixBSD",OSD_SysType::OSD_UnixBSD) │ │ │ + .value("OSD_UnixSystemV",OSD_SysType::OSD_UnixSystemV) │ │ │ + .value("OSD_VMS",OSD_SysType::OSD_VMS) │ │ │ + .value("OSD_OS2",OSD_SysType::OSD_OS2) │ │ │ + .value("OSD_OSF",OSD_SysType::OSD_OSF) │ │ │ + .value("OSD_MacOs",OSD_SysType::OSD_MacOs) │ │ │ + .value("OSD_Taligent",OSD_SysType::OSD_Taligent) │ │ │ + .value("OSD_WindowsNT",OSD_SysType::OSD_WindowsNT) │ │ │ + .value("OSD_LinuxREDHAT",OSD_SysType::OSD_LinuxREDHAT) │ │ │ + .value("OSD_Aix",OSD_SysType::OSD_Aix).export_values(); │ │ │ + py::enum_(m, "OSD_LoadMode",R"#(This enumeration is used to load shareable libraries.)#") │ │ │ + .value("OSD_RTLD_LAZY",OSD_LoadMode::OSD_RTLD_LAZY) │ │ │ + .value("OSD_RTLD_NOW",OSD_LoadMode::OSD_RTLD_NOW).export_values(); │ │ │ py::enum_(m, "OSD_FromWhere",R"#(Used by OSD_File in the method Seek.)#") │ │ │ .value("OSD_FromBeginning",OSD_FromWhere::OSD_FromBeginning) │ │ │ .value("OSD_FromHere",OSD_FromWhere::OSD_FromHere) │ │ │ .value("OSD_FromEnd",OSD_FromWhere::OSD_FromEnd).export_values(); │ │ │ py::enum_(m, "OSD_LockType",R"#(locks for files. NoLock is the default value when opening a file.)#") │ │ │ .value("OSD_NoLock",OSD_LockType::OSD_NoLock) │ │ │ .value("OSD_ReadLock",OSD_LockType::OSD_ReadLock) │ │ │ @@ -127,14 +164,25 @@ │ │ │ .value("OSD_MAC",OSD_OEMType::OSD_MAC) │ │ │ .value("OSD_PC",OSD_OEMType::OSD_PC) │ │ │ .value("OSD_HP",OSD_OEMType::OSD_HP) │ │ │ .value("OSD_IBM",OSD_OEMType::OSD_IBM) │ │ │ .value("OSD_VAX",OSD_OEMType::OSD_VAX) │ │ │ .value("OSD_LIN",OSD_OEMType::OSD_LIN) │ │ │ .value("OSD_AIX",OSD_OEMType::OSD_AIX).export_values(); │ │ │ + py::enum_(m, "OSD_SignalMode",R"#(Mode of operation for OSD::SetSignal() function)#") │ │ │ + .value("OSD_SignalMode_AsIs",OSD_SignalMode::OSD_SignalMode_AsIs) │ │ │ + .value("OSD_SignalMode_Set",OSD_SignalMode::OSD_SignalMode_Set) │ │ │ + .value("OSD_SignalMode_SetUnhandled",OSD_SignalMode::OSD_SignalMode_SetUnhandled) │ │ │ + .value("OSD_SignalMode_Unset",OSD_SignalMode::OSD_SignalMode_Unset).export_values(); │ │ │ + py::enum_(m, "OSD_KindFile",R"#(Specifies the type of files.)#") │ │ │ + .value("OSD_FILE",OSD_KindFile::OSD_FILE) │ │ │ + .value("OSD_DIRECTORY",OSD_KindFile::OSD_DIRECTORY) │ │ │ + .value("OSD_LINK",OSD_KindFile::OSD_LINK) │ │ │ + .value("OSD_SOCKET",OSD_KindFile::OSD_SOCKET) │ │ │ + .value("OSD_UNKNOWN",OSD_KindFile::OSD_UNKNOWN).export_values(); │ │ │ py::enum_(m, "OSD_WhoAmI",R"#(Allows great accuracy for error management. This is private.)#") │ │ │ .value("OSD_WDirectory",OSD_WhoAmI::OSD_WDirectory) │ │ │ .value("OSD_WDirectoryIterator",OSD_WhoAmI::OSD_WDirectoryIterator) │ │ │ .value("OSD_WEnvironment",OSD_WhoAmI::OSD_WEnvironment) │ │ │ .value("OSD_WFile",OSD_WhoAmI::OSD_WFile) │ │ │ .value("OSD_WFileNode",OSD_WhoAmI::OSD_WFileNode) │ │ │ .value("OSD_WFileIterator",OSD_WhoAmI::OSD_WFileIterator) │ │ │ @@ -143,62 +191,14 @@ │ │ │ .value("OSD_WProtection",OSD_WhoAmI::OSD_WProtection) │ │ │ .value("OSD_WHost",OSD_WhoAmI::OSD_WHost) │ │ │ .value("OSD_WDisk",OSD_WhoAmI::OSD_WDisk) │ │ │ .value("OSD_WChronometer",OSD_WhoAmI::OSD_WChronometer) │ │ │ .value("OSD_WTimer",OSD_WhoAmI::OSD_WTimer) │ │ │ .value("OSD_WPackage",OSD_WhoAmI::OSD_WPackage) │ │ │ .value("OSD_WEnvironmentIterator",OSD_WhoAmI::OSD_WEnvironmentIterator).export_values(); │ │ │ - py::enum_(m, "OSD_LoadMode",R"#(This enumeration is used to load shareable libraries.)#") │ │ │ - .value("OSD_RTLD_LAZY",OSD_LoadMode::OSD_RTLD_LAZY) │ │ │ - .value("OSD_RTLD_NOW",OSD_LoadMode::OSD_RTLD_NOW).export_values(); │ │ │ - py::enum_(m, "OSD_KindFile",R"#(Specifies the type of files.)#") │ │ │ - .value("OSD_FILE",OSD_KindFile::OSD_FILE) │ │ │ - .value("OSD_DIRECTORY",OSD_KindFile::OSD_DIRECTORY) │ │ │ - .value("OSD_LINK",OSD_KindFile::OSD_LINK) │ │ │ - .value("OSD_SOCKET",OSD_KindFile::OSD_SOCKET) │ │ │ - .value("OSD_UNKNOWN",OSD_KindFile::OSD_UNKNOWN).export_values(); │ │ │ - py::enum_(m, "OSD_OpenMode",R"#(Specifies the file open mode.)#") │ │ │ - .value("OSD_ReadOnly",OSD_OpenMode::OSD_ReadOnly) │ │ │ - .value("OSD_WriteOnly",OSD_OpenMode::OSD_WriteOnly) │ │ │ - .value("OSD_ReadWrite",OSD_OpenMode::OSD_ReadWrite).export_values(); │ │ │ - py::enum_(m, "OSD_SysType",R"#(Thisd is a set of possible system types. 'Default' means SysType of machine operating this process. This can be used with the Path class. All UNIX-like are grouped under "UnixBSD" or "UnixSystemV". Such systems are Solaris, NexTOS ... A category of systems accept MSDOS-like path such as WindowsNT and OS2.)#") │ │ │ - .value("OSD_Unknown",OSD_SysType::OSD_Unknown) │ │ │ - .value("OSD_Default",OSD_SysType::OSD_Default) │ │ │ - .value("OSD_UnixBSD",OSD_SysType::OSD_UnixBSD) │ │ │ - .value("OSD_UnixSystemV",OSD_SysType::OSD_UnixSystemV) │ │ │ - .value("OSD_VMS",OSD_SysType::OSD_VMS) │ │ │ - .value("OSD_OS2",OSD_SysType::OSD_OS2) │ │ │ - .value("OSD_OSF",OSD_SysType::OSD_OSF) │ │ │ - .value("OSD_MacOs",OSD_SysType::OSD_MacOs) │ │ │ - .value("OSD_Taligent",OSD_SysType::OSD_Taligent) │ │ │ - .value("OSD_WindowsNT",OSD_SysType::OSD_WindowsNT) │ │ │ - .value("OSD_LinuxREDHAT",OSD_SysType::OSD_LinuxREDHAT) │ │ │ - .value("OSD_Aix",OSD_SysType::OSD_Aix).export_values(); │ │ │ - py::enum_(m, "OSD_SignalMode",R"#(Mode of operation for OSD::SetSignal() function)#") │ │ │ - .value("OSD_SignalMode_AsIs",OSD_SignalMode::OSD_SignalMode_AsIs) │ │ │ - .value("OSD_SignalMode_Set",OSD_SignalMode::OSD_SignalMode_Set) │ │ │ - .value("OSD_SignalMode_SetUnhandled",OSD_SignalMode::OSD_SignalMode_SetUnhandled) │ │ │ - .value("OSD_SignalMode_Unset",OSD_SignalMode::OSD_SignalMode_Unset).export_values(); │ │ │ - py::enum_(m, "OSD_SingleProtection",R"#(Access rights for files. R means Read, W means Write, X means eXecute and D means Delete. On UNIX, the right to Delete is combined with Write access. So if "W"rite is not set and "D"elete is, "W"rite will be set and if "W" is set, "D" will be too.)#") │ │ │ - .value("OSD_None",OSD_SingleProtection::OSD_None) │ │ │ - .value("OSD_R",OSD_SingleProtection::OSD_R) │ │ │ - .value("OSD_W",OSD_SingleProtection::OSD_W) │ │ │ - .value("OSD_RW",OSD_SingleProtection::OSD_RW) │ │ │ - .value("OSD_X",OSD_SingleProtection::OSD_X) │ │ │ - .value("OSD_RX",OSD_SingleProtection::OSD_RX) │ │ │ - .value("OSD_WX",OSD_SingleProtection::OSD_WX) │ │ │ - .value("OSD_RWX",OSD_SingleProtection::OSD_RWX) │ │ │ - .value("OSD_D",OSD_SingleProtection::OSD_D) │ │ │ - .value("OSD_RD",OSD_SingleProtection::OSD_RD) │ │ │ - .value("OSD_WD",OSD_SingleProtection::OSD_WD) │ │ │ - .value("OSD_RWD",OSD_SingleProtection::OSD_RWD) │ │ │ - .value("OSD_XD",OSD_SingleProtection::OSD_XD) │ │ │ - .value("OSD_RXD",OSD_SingleProtection::OSD_RXD) │ │ │ - .value("OSD_WXD",OSD_SingleProtection::OSD_WXD) │ │ │ - .value("OSD_RWXD",OSD_SingleProtection::OSD_RWXD).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_OSD_FileSystem : public OSD_FileSystem{ │ │ │ public: │ │ │ using OSD_FileSystem::OSD_FileSystem; │ │ ├── ./usr/share/libocp/OCP/OpenGl.cpp │ │ │┄ Ordering differences only │ │ │ @@ -6644,18 +6644,18 @@ │ │ │ ( const handle & (OpenGl_PointSprite::*)() const) static_cast< const handle & (OpenGl_PointSprite::*)() const>(&OpenGl_PointSprite::DynamicType), │ │ │ R"#()#" │ │ │ │ │ │ ) │ │ │ ; │ │ │ │ │ │ // functions │ │ │ -auto mOpenGl_HashMapInitializer = static_cast(m.attr("OpenGl_HashMapInitializer")); │ │ │ +auto mOpenGl_Raytrace = static_cast(m.attr("OpenGl_Raytrace")); │ │ │ auto mopencascade = static_cast(m.attr("opencascade")); │ │ │ auto mOpenGl = static_cast(m.attr("OpenGl")); │ │ │ -auto mOpenGl_Raytrace = static_cast(m.attr("OpenGl_Raytrace")); │ │ │ +auto mOpenGl_HashMapInitializer = static_cast(m.attr("OpenGl_HashMapInitializer")); │ │ │ │ │ │ // /usr/include/opencascade/OpenGl_ArbDbg.hxx │ │ │ // /usr/include/opencascade/OpenGl_ArbFBO.hxx │ │ │ // /usr/include/opencascade/OpenGl_ArbIns.hxx │ │ │ // /usr/include/opencascade/OpenGl_ArbSamplerObject.hxx │ │ │ // /usr/include/opencascade/OpenGl_ArbTBO.hxx │ │ │ // /usr/include/opencascade/OpenGl_ArbTexBindless.hxx │ │ ├── ./usr/share/libocp/OCP/OpenGl_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -238,47 +238,34 @@ │ │ │ // Module definiiton │ │ │ void register_OpenGl_enums(py::module &main_module) { │ │ │ │ │ │ │ │ │ py::module m = main_module.def_submodule("OpenGl", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ -m.def_submodule("OpenGl_HashMapInitializer"); │ │ │ +m.def_submodule("OpenGl_Raytrace"); │ │ │ m.def_submodule("opencascade"); │ │ │ m.def_submodule("OpenGl"); │ │ │ -m.def_submodule("OpenGl_Raytrace"); │ │ │ +m.def_submodule("OpenGl_HashMapInitializer"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ py::class_(m, "NSOpenGLContext"); │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "OpenGl_ShaderProgramDumpLevel",R"#(Definition of shader programs source code dump levels.)#") │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Off",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off) │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Short",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short) │ │ │ - .value("OpenGl_ShaderProgramDumpLevel_Full",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values(); │ │ │ - py::enum_(m, "OpenGl_FeatureFlag",R"#()#") │ │ │ - .value("OpenGl_FeatureNotAvailable",OpenGl_FeatureFlag::OpenGl_FeatureNotAvailable) │ │ │ - .value("OpenGl_FeatureInExtensions",OpenGl_FeatureFlag::OpenGl_FeatureInExtensions) │ │ │ - .value("OpenGl_FeatureInCore",OpenGl_FeatureFlag::OpenGl_FeatureInCore).export_values(); │ │ │ - py::enum_(m, "OpenGl_MaterialFlag",R"#(Material flag)#") │ │ │ - .value("OpenGl_MaterialFlag_Front",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front) │ │ │ - .value("OpenGl_MaterialFlag_Back",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values(); │ │ │ - py::enum_(m, "OpenGl_LayerFilter",R"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#") │ │ │ - .value("OpenGl_LF_All",OpenGl_LayerFilter::OpenGl_LF_All) │ │ │ - .value("OpenGl_LF_Upper",OpenGl_LayerFilter::OpenGl_LF_Upper) │ │ │ - .value("OpenGl_LF_Bottom",OpenGl_LayerFilter::OpenGl_LF_Bottom) │ │ │ - .value("OpenGl_LF_Single",OpenGl_LayerFilter::OpenGl_LF_Single) │ │ │ - .value("OpenGl_LF_RayTracable",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values(); │ │ │ py::enum_(m, "OpenGl_RenderFilter",R"#(Filter for rendering elements.)#") │ │ │ .value("OpenGl_RenderFilter_Empty",OpenGl_RenderFilter::OpenGl_RenderFilter_Empty) │ │ │ .value("OpenGl_RenderFilter_OpaqueOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_OpaqueOnly) │ │ │ .value("OpenGl_RenderFilter_TransparentOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_TransparentOnly) │ │ │ .value("OpenGl_RenderFilter_NonRaytraceableOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_NonRaytraceableOnly) │ │ │ .value("OpenGl_RenderFilter_FillModeOnly",OpenGl_RenderFilter::OpenGl_RenderFilter_FillModeOnly) │ │ │ .value("OpenGl_RenderFilter_SkipTrsfPersistence",OpenGl_RenderFilter::OpenGl_RenderFilter_SkipTrsfPersistence).export_values(); │ │ │ + py::enum_(m, "OpenGl_FeatureFlag",R"#()#") │ │ │ + .value("OpenGl_FeatureNotAvailable",OpenGl_FeatureFlag::OpenGl_FeatureNotAvailable) │ │ │ + .value("OpenGl_FeatureInExtensions",OpenGl_FeatureFlag::OpenGl_FeatureInExtensions) │ │ │ + .value("OpenGl_FeatureInCore",OpenGl_FeatureFlag::OpenGl_FeatureInCore).export_values(); │ │ │ py::enum_(m, "OpenGl_StateVariable",R"#(The enumeration of OCCT-specific OpenGL/GLSL variables.)#") │ │ │ .value("OpenGl_OCC_MODEL_WORLD_MATRIX",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX) │ │ │ .value("OpenGl_OCC_WORLD_VIEW_MATRIX",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX) │ │ │ .value("OpenGl_OCC_PROJECTION_MATRIX",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX) │ │ │ .value("OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_MODEL_WORLD_MATRIX_INVERSE) │ │ │ .value("OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_WORLD_VIEW_MATRIX_INVERSE) │ │ │ .value("OpenGl_OCC_PROJECTION_MATRIX_INVERSE",OpenGl_StateVariable::OpenGl_OCC_PROJECTION_MATRIX_INVERSE) │ │ │ @@ -325,14 +312,27 @@ │ │ │ .value("OpenGl_MODEL_WORLD_STATE",OpenGl_UniformStateType::OpenGl_MODEL_WORLD_STATE) │ │ │ .value("OpenGl_WORLD_VIEW_STATE",OpenGl_UniformStateType::OpenGl_WORLD_VIEW_STATE) │ │ │ .value("OpenGl_PROJECTION_STATE",OpenGl_UniformStateType::OpenGl_PROJECTION_STATE) │ │ │ .value("OpenGl_MATERIAL_STATE",OpenGl_UniformStateType::OpenGl_MATERIAL_STATE) │ │ │ .value("OpenGl_SURF_DETAIL_STATE",OpenGl_UniformStateType::OpenGl_SURF_DETAIL_STATE) │ │ │ .value("OpenGL_OIT_STATE",OpenGl_UniformStateType::OpenGL_OIT_STATE) │ │ │ .value("OpenGl_UniformStateType_NB",OpenGl_UniformStateType::OpenGl_UniformStateType_NB).export_values(); │ │ │ + py::enum_(m, "OpenGl_ShaderProgramDumpLevel",R"#(Definition of shader programs source code dump levels.)#") │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Off",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Off) │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Short",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Short) │ │ │ + .value("OpenGl_ShaderProgramDumpLevel_Full",OpenGl_ShaderProgramDumpLevel::OpenGl_ShaderProgramDumpLevel_Full).export_values(); │ │ │ + py::enum_(m, "OpenGl_MaterialFlag",R"#(Material flag)#") │ │ │ + .value("OpenGl_MaterialFlag_Front",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Front) │ │ │ + .value("OpenGl_MaterialFlag_Back",OpenGl_MaterialFlag::OpenGl_MaterialFlag_Back).export_values(); │ │ │ + py::enum_(m, "OpenGl_LayerFilter",R"#(Tool object to specify processed OpenGL layers for intermixed rendering of raytracable and non-raytracable layers.)#") │ │ │ + .value("OpenGl_LF_All",OpenGl_LayerFilter::OpenGl_LF_All) │ │ │ + .value("OpenGl_LF_Upper",OpenGl_LayerFilter::OpenGl_LF_Upper) │ │ │ + .value("OpenGl_LF_Bottom",OpenGl_LayerFilter::OpenGl_LF_Bottom) │ │ │ + .value("OpenGl_LF_Single",OpenGl_LayerFilter::OpenGl_LF_Single) │ │ │ + .value("OpenGl_LF_RayTracable",OpenGl_LayerFilter::OpenGl_LF_RayTracable).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_OpenGl_Element : public OpenGl_Element{ │ │ │ public: │ │ │ using OpenGl_Element::OpenGl_Element; │ │ ├── ./usr/share/libocp/OCP/OpenGl_tmpl.hxx │ │ │┄ Ordering differences only │ │ │ @@ -212,14 +212,25 @@ │ │ │ #include │ │ │ │ │ │ // user-defined pre │ │ │ #include "OCP_specific.inc" │ │ │ │ │ │ // Class template handling functions │ │ │ │ │ │ +template │ │ │ +void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#(Selects preferable texture format for specified parameters.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ template │ │ │ void preregister_template_OpenGl_BufferCompatT(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Compatibility layer for old OpenGL without VBO. Make sure to pass pointer from GetDataOffset() instead of NULL. Method GetDataOffset() returns pointer to real data in this class (while base class OpenGl_VertexBuffer always return NULL).)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_OpenGl_BufferCompatT(py::object &m, const char *name){ │ │ │ @@ -251,14 +262,68 @@ │ │ │ R"#(Update part of the buffer with new data.)#" ,py::arg("theGlCtx"), py::arg("theElemFrom"), py::arg("theElemsNb"), py::arg("theData"), py::arg("theDataType")) │ │ │ .def("getSubData", │ │ │ (bool (OpenGl_BufferCompatT::*)( const handle & , const Standard_Integer , const Standard_Integer , void * , const unsigned int ) ) &OpenGl_BufferCompatT::getSubData, │ │ │ R"#(Read back buffer sub-range.)#" ,py::arg("theGlCtx"), py::arg("theElemFrom"), py::arg("theElemsNb"), py::arg("theData"), py::arg("theDataType")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ +template │ │ │ +void preregister_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){ │ │ │ + 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.)#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< const Standard_Integer >() ,py::arg("theTmpBufferLength") ) │ │ │ + .def(py::init< theVec_t *, const Standard_Integer >() ,py::arg("theTmpBuffer"), py::arg("theTmpBufferLength") ) │ │ │ + .def("Init", │ │ │ + (Standard_Boolean (OpenGl_VertexBufferEditor::*)( const handle & , const handle & ) ) &OpenGl_VertexBufferEditor::Init, │ │ │ + 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")) │ │ │ + .def("Value", │ │ │ + (theVec_t & (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Value, │ │ │ + R"#(Modify current element in VBO.)#" ) │ │ │ + .def("Next", │ │ │ + (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Next, │ │ │ + R"#(Move to the next position in VBO.)#" ) │ │ │ + .def("Flush", │ │ │ + (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Flush, │ │ │ + R"#(Push current data from local buffer to VBO.)#" ) │ │ │ + .def("GetVBO", │ │ │ + ( const handle & (OpenGl_VertexBufferEditor::*)() const) &OpenGl_VertexBufferEditor::GetVBO, │ │ │ + R"#(Returns assigned VBO)#" ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> , OpenGl_SetterInterface >(m,name,R"#()#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> , OpenGl_SetterInterface >>(m.attr(name)) │ │ │ + .def("Set", │ │ │ + (void (OpenGl_VariableSetter::*)( const handle & , const handle & , OpenGl_ShaderProgram * ) ) &OpenGl_VariableSetter::Set, │ │ │ + R"#()#" ,py::arg("theCtx"), py::arg("theVariable"), py::arg("theProgram")) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ +template │ │ │ +void preregister_template_MapListOfType(py::object &m, const char *name){ │ │ │ + py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ +} │ │ │ + │ │ │ +template │ │ │ +void register_template_MapListOfType(py::object &m, const char *name){ │ │ │ + static_cast , shared_ptr> >>(m.attr(name)) │ │ │ + .def(py::init< K,V >() ,py::arg("theKey"), py::arg("theValue") ) │ │ │ + ; │ │ │ +}; │ │ │ + │ │ │ template │ │ │ void preregister_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Software implementation for OpenGL matrix stack.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_OpenGl_MatrixState(py::object &m, const char *name){ │ │ │ @@ -285,25 +350,14 @@ │ │ │ .def("DumpJson", │ │ │ (void (OpenGl_MatrixState::*)( Standard_OStream & , Standard_Integer ) const) &OpenGl_MatrixState::DumpJson, │ │ │ R"#(Dumps the content of me into the stream)#" ,py::arg("theOStream"), py::arg("theDepth")) │ │ │ ; │ │ │ }; │ │ │ │ │ │ template │ │ │ -void preregister_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#(Selects preferable texture format for specified parameters.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_OpenGl_TextureFormatSelector(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ void preregister_template_VectorType(py::object &m, const char *name){ │ │ │ py::class_ , shared_ptr> >(m,name,R"#(Tool class for selecting appropriate vector type.)#"); │ │ │ } │ │ │ │ │ │ template │ │ │ void register_template_VectorType(py::object &m, const char *name){ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ @@ -317,64 +371,10 @@ │ │ │ │ │ │ template │ │ │ void register_template_MatrixType(py::object &m, const char *name){ │ │ │ static_cast , shared_ptr> >>(m.attr(name)) │ │ │ ; │ │ │ }; │ │ │ │ │ │ -template │ │ │ -void preregister_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){ │ │ │ - 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.)#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_OpenGl_VertexBufferEditor(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< const Standard_Integer >() ,py::arg("theTmpBufferLength") ) │ │ │ - .def(py::init< theVec_t *, const Standard_Integer >() ,py::arg("theTmpBuffer"), py::arg("theTmpBufferLength") ) │ │ │ - .def("Init", │ │ │ - (Standard_Boolean (OpenGl_VertexBufferEditor::*)( const handle & , const handle & ) ) &OpenGl_VertexBufferEditor::Init, │ │ │ - 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")) │ │ │ - .def("Value", │ │ │ - (theVec_t & (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Value, │ │ │ - R"#(Modify current element in VBO.)#" ) │ │ │ - .def("Next", │ │ │ - (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Next, │ │ │ - R"#(Move to the next position in VBO.)#" ) │ │ │ - .def("Flush", │ │ │ - (Standard_Boolean (OpenGl_VertexBufferEditor::*)() ) &OpenGl_VertexBufferEditor::Flush, │ │ │ - R"#(Push current data from local buffer to VBO.)#" ) │ │ │ - .def("GetVBO", │ │ │ - ( const handle & (OpenGl_VertexBufferEditor::*)() const) &OpenGl_VertexBufferEditor::GetVBO, │ │ │ - R"#(Returns assigned VBO)#" ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> , OpenGl_SetterInterface >(m,name,R"#()#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_OpenGl_VariableSetter(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> , OpenGl_SetterInterface >>(m.attr(name)) │ │ │ - .def("Set", │ │ │ - (void (OpenGl_VariableSetter::*)( const handle & , const handle & , OpenGl_ShaderProgram * ) ) &OpenGl_VariableSetter::Set, │ │ │ - R"#()#" ,py::arg("theCtx"), py::arg("theVariable"), py::arg("theProgram")) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ -template │ │ │ -void preregister_template_MapListOfType(py::object &m, const char *name){ │ │ │ - py::class_ , shared_ptr> >(m,name,R"#()#"); │ │ │ -} │ │ │ - │ │ │ -template │ │ │ -void register_template_MapListOfType(py::object &m, const char *name){ │ │ │ - static_cast , shared_ptr> >>(m.attr(name)) │ │ │ - .def(py::init< K,V >() ,py::arg("theKey"), py::arg("theValue") ) │ │ │ - ; │ │ │ -}; │ │ │ - │ │ │ │ │ │ // user-defined post │ │ ├── ./usr/share/libocp/OCP/PCDM_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -73,29 +73,29 @@ │ │ │ py::module m = main_module.def_submodule("PCDM", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "PCDM_TypeOfFileDriver",R"#()#") │ │ │ + .value("PCDM_TOFD_File",PCDM_TypeOfFileDriver::PCDM_TOFD_File) │ │ │ + .value("PCDM_TOFD_CmpFile",PCDM_TypeOfFileDriver::PCDM_TOFD_CmpFile) │ │ │ + .value("PCDM_TOFD_XmlFile",PCDM_TypeOfFileDriver::PCDM_TOFD_XmlFile) │ │ │ + .value("PCDM_TOFD_Unknown",PCDM_TypeOfFileDriver::PCDM_TOFD_Unknown).export_values(); │ │ │ py::enum_(m, "PCDM_StoreStatus",R"#(Status of storage of a document on disk. If it is PCDM_SS_OK, the document is successfully saved on disk. Else - there is an error.)#") │ │ │ .value("PCDM_SS_OK",PCDM_StoreStatus::PCDM_SS_OK) │ │ │ .value("PCDM_SS_DriverFailure",PCDM_StoreStatus::PCDM_SS_DriverFailure) │ │ │ .value("PCDM_SS_WriteFailure",PCDM_StoreStatus::PCDM_SS_WriteFailure) │ │ │ .value("PCDM_SS_Failure",PCDM_StoreStatus::PCDM_SS_Failure) │ │ │ .value("PCDM_SS_Doc_IsNull",PCDM_StoreStatus::PCDM_SS_Doc_IsNull) │ │ │ .value("PCDM_SS_No_Obj",PCDM_StoreStatus::PCDM_SS_No_Obj) │ │ │ .value("PCDM_SS_Info_Section_Error",PCDM_StoreStatus::PCDM_SS_Info_Section_Error) │ │ │ .value("PCDM_SS_UserBreak",PCDM_StoreStatus::PCDM_SS_UserBreak) │ │ │ .value("PCDM_SS_UnrecognizedFormat",PCDM_StoreStatus::PCDM_SS_UnrecognizedFormat).export_values(); │ │ │ - py::enum_(m, "PCDM_TypeOfFileDriver",R"#()#") │ │ │ - .value("PCDM_TOFD_File",PCDM_TypeOfFileDriver::PCDM_TOFD_File) │ │ │ - .value("PCDM_TOFD_CmpFile",PCDM_TypeOfFileDriver::PCDM_TOFD_CmpFile) │ │ │ - .value("PCDM_TOFD_XmlFile",PCDM_TypeOfFileDriver::PCDM_TOFD_XmlFile) │ │ │ - .value("PCDM_TOFD_Unknown",PCDM_TypeOfFileDriver::PCDM_TOFD_Unknown).export_values(); │ │ │ py::enum_(m, "PCDM_ReaderStatus",R"#(Status of reading of a document. The following values are accessible: - PCDM_RS_OK: the document was successfully read; - PCDM_RS_NoDriver: driver is not found for the defined file format; - PCDM_RS_UnknownFileDriver: check of the file failed (file doesn't exist, for example); - PCDM_RS_OpenError: attempt to open the file failed; - PCDM_RS_NoVersion: document version of the file is out of scope; - PCDM_RS_NoSchema: NOT USED; - PCDM_RS_NoDocument: document is empty (failed to be read correctly); - PCDM_RS_ExtensionFailure: NOT USED; - PCDM_RS_WrongStreamMode: file is not open for reading (a mistaken mode); - PCDM_RS_FormatFailure: mistake in document data structure; - PCDM_RS_TypeFailure: data type is unknown; - PCDM_RS_TypeNotFoundInSchema: data type is not found in schema (STD file format); - PCDM_RS_UnrecognizedFileFormat: document data structure is wrong (binary file format); - PCDM_RS_MakeFailure: conversion of data from persistent to transient attributes failed (XML file format); - PCDM_RS_PermissionDenied: file can't be opened because permission is denied; - PCDM_RS_DriverFailure: something went wrong (a general mistake of reading of a document); - PCDM_RS_AlreadyRetrievedAndModified: document is already retrieved and modified in current session; - PCDM_RS_AlreadyRetrieved: document is already in current session (already retrieved); - PCDM_RS_UnknownDocument: file doesn't exist on disk; - PCDM_RS_WrongResource: wrong resource file (.RetrievalPlugin); - PCDM_RS_ReaderException: no shape section in the document file (binary file format); - PCDM_RS_NoModel: NOT USED; - PCDM_RS_UserBreak: user stopped reading of the document;)#") │ │ │ .value("PCDM_RS_OK",PCDM_ReaderStatus::PCDM_RS_OK) │ │ │ .value("PCDM_RS_NoDriver",PCDM_ReaderStatus::PCDM_RS_NoDriver) │ │ │ .value("PCDM_RS_UnknownFileDriver",PCDM_ReaderStatus::PCDM_RS_UnknownFileDriver) │ │ │ .value("PCDM_RS_OpenError",PCDM_ReaderStatus::PCDM_RS_OpenError) │ │ │ .value("PCDM_RS_NoVersion",PCDM_ReaderStatus::PCDM_RS_NoVersion) │ │ │ .value("PCDM_RS_NoSchema",PCDM_ReaderStatus::PCDM_RS_NoSchema) │ │ ├── ./usr/share/libocp/OCP/Prs3d_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -84,28 +84,37 @@ │ │ │ py::module m = main_module.def_submodule("Prs3d", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "Prs3d_DatumMode",R"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#") │ │ │ - .value("Prs3d_DM_WireFrame",Prs3d_DatumMode::Prs3d_DM_WireFrame) │ │ │ - .value("Prs3d_DM_Shaded",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values(); │ │ │ py::enum_(m, "Prs3d_TypeOfLinePicking",R"#()#") │ │ │ .value("Prs3d_TOLP_Point",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Point) │ │ │ .value("Prs3d_TOLP_Segment",Prs3d_TypeOfLinePicking::Prs3d_TOLP_Segment).export_values(); │ │ │ - py::enum_(m, "Prs3d_TypeOfHLR",R"#(Declares types of hidden line removal algorithm. TOH_Algo enables using of exact HLR algorithm. TOH_PolyAlgo enables using of polygonal HLR algorithm. TOH_NotSet is used by Prs3d_Drawer class, it means that the drawer should return the global value. For more details see Prs3d_Drawer class, AIS_Shape::Compute() method and HLRAlgo package from TKHLR toolkit.)#") │ │ │ - .value("Prs3d_TOH_NotSet",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet) │ │ │ - .value("Prs3d_TOH_PolyAlgo",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo) │ │ │ - .value("Prs3d_TOH_Algo",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values(); │ │ │ py::enum_(m, "Prs3d_DimensionArrowOrientation",R"#(Specifies dimension arrow location and orientation. DAO_Internal - arrows "inside", pointing outwards. DAO_External - arrows "outside", pointing inwards. DAO_Fit - arrows oriented inside if value label with arrowtips fit the dimension line, otherwise - externally)#") │ │ │ .value("Prs3d_DAO_Internal",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Internal) │ │ │ .value("Prs3d_DAO_External",Prs3d_DimensionArrowOrientation::Prs3d_DAO_External) │ │ │ .value("Prs3d_DAO_Fit",Prs3d_DimensionArrowOrientation::Prs3d_DAO_Fit).export_values(); │ │ │ + py::enum_(m, "Prs3d_TypeOfHighlight",R"#(Type of highlighting to apply specific style.)#") │ │ │ + .value("Prs3d_TypeOfHighlight_None",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None) │ │ │ + .value("Prs3d_TypeOfHighlight_Selected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected) │ │ │ + .value("Prs3d_TypeOfHighlight_Dynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic) │ │ │ + .value("Prs3d_TypeOfHighlight_LocalSelected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected) │ │ │ + .value("Prs3d_TypeOfHighlight_LocalDynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic) │ │ │ + .value("Prs3d_TypeOfHighlight_SubIntensity",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity) │ │ │ + .value("Prs3d_TypeOfHighlight_NB",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values(); │ │ │ + py::enum_(m, "Prs3d_TypeOfHLR",R"#(Declares types of hidden line removal algorithm. TOH_Algo enables using of exact HLR algorithm. TOH_PolyAlgo enables using of polygonal HLR algorithm. TOH_NotSet is used by Prs3d_Drawer class, it means that the drawer should return the global value. For more details see Prs3d_Drawer class, AIS_Shape::Compute() method and HLRAlgo package from TKHLR toolkit.)#") │ │ │ + .value("Prs3d_TOH_NotSet",Prs3d_TypeOfHLR::Prs3d_TOH_NotSet) │ │ │ + .value("Prs3d_TOH_PolyAlgo",Prs3d_TypeOfHLR::Prs3d_TOH_PolyAlgo) │ │ │ + .value("Prs3d_TOH_Algo",Prs3d_TypeOfHLR::Prs3d_TOH_Algo).export_values(); │ │ │ + py::enum_(m, "Prs3d_DimensionTextVerticalPosition",R"#(Specifies options for positioning dimension value label in vertical direction with respect to dimension (extension) line. DTVP_Above - text label is located above the dimension or extension line. DTVP_Below - text label is located below the dimension or extension line. DTVP_Center - the text label middle-point is in line with dimension or extension line.)#") │ │ │ + .value("Prs3d_DTVP_Above",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above) │ │ │ + .value("Prs3d_DTVP_Below",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below) │ │ │ + .value("Prs3d_DTVP_Center",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values(); │ │ │ py::enum_(m, "Prs3d_DatumAttribute",R"#(Enumeration defining a datum attribute, see Prs3d_Datum.)#") │ │ │ .value("Prs3d_DatumAttribute_XAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_XAxisLength) │ │ │ .value("Prs3d_DatumAttribute_YAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_YAxisLength) │ │ │ .value("Prs3d_DatumAttribute_ZAxisLength",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ZAxisLength) │ │ │ .value("Prs3d_DatumAttribute_ShadingTubeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingTubeRadiusPercent) │ │ │ .value("Prs3d_DatumAttribute_ShadingConeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeRadiusPercent) │ │ │ .value("Prs3d_DatumAttribute_ShadingConeLengthPercent",Prs3d_DatumAttribute::Prs3d_DatumAttribute_ShadingConeLengthPercent) │ │ │ @@ -116,18 +125,18 @@ │ │ │ .value("Prs3d_DA_ZAxisLength",Prs3d_DatumAttribute::Prs3d_DA_ZAxisLength) │ │ │ .value("Prs3d_DP_ShadingTubeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingTubeRadiusPercent) │ │ │ .value("Prs3d_DP_ShadingConeRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeRadiusPercent) │ │ │ .value("Prs3d_DP_ShadingConeLengthPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingConeLengthPercent) │ │ │ .value("Prs3d_DP_ShadingOriginRadiusPercent",Prs3d_DatumAttribute::Prs3d_DP_ShadingOriginRadiusPercent) │ │ │ .value("Prs3d_DP_ShadingNumberOfFacettes",Prs3d_DatumAttribute::Prs3d_DP_ShadingNumberOfFacettes).export_values(); │ │ │ m.attr("Prs3d_DatumAttribute_NB") = py::cast(int(Prs3d_DatumAttribute_NB)); │ │ │ - py::enum_(m, "Prs3d_DimensionTextVerticalPosition",R"#(Specifies options for positioning dimension value label in vertical direction with respect to dimension (extension) line. DTVP_Above - text label is located above the dimension or extension line. DTVP_Below - text label is located below the dimension or extension line. DTVP_Center - the text label middle-point is in line with dimension or extension line.)#") │ │ │ - .value("Prs3d_DTVP_Above",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Above) │ │ │ - .value("Prs3d_DTVP_Below",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Below) │ │ │ - .value("Prs3d_DTVP_Center",Prs3d_DimensionTextVerticalPosition::Prs3d_DTVP_Center).export_values(); │ │ │ + py::enum_(m, "Prs3d_VertexDrawMode",R"#(Describes supported modes of visualization of the shape's vertices: VDM_Isolated - only isolated vertices (not belonging to a face) are displayed. VDM_All - all vertices of the shape are displayed. VDM_Inherited - the global settings are inherited and applied to the shape's presentation.)#") │ │ │ + .value("Prs3d_VDM_Isolated",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated) │ │ │ + .value("Prs3d_VDM_All",Prs3d_VertexDrawMode::Prs3d_VDM_All) │ │ │ + .value("Prs3d_VDM_Inherited",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values(); │ │ │ py::enum_(m, "Prs3d_DatumAxes",R"#(Enumeration defining axes used in datum aspect, see Prs3d_Datum.)#") │ │ │ .value("Prs3d_DatumAxes_XAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_XAxis) │ │ │ .value("Prs3d_DatumAxes_YAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_YAxis) │ │ │ .value("Prs3d_DatumAxes_ZAxis",Prs3d_DatumAxes::Prs3d_DatumAxes_ZAxis) │ │ │ .value("Prs3d_DatumAxes_XYAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_XYAxes) │ │ │ .value("Prs3d_DatumAxes_YZAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_YZAxes) │ │ │ .value("Prs3d_DatumAxes_XZAxes",Prs3d_DatumAxes::Prs3d_DatumAxes_XZAxes) │ │ │ @@ -135,31 +144,17 @@ │ │ │ .value("Prs3d_DA_XAxis",Prs3d_DatumAxes::Prs3d_DA_XAxis) │ │ │ .value("Prs3d_DA_YAxis",Prs3d_DatumAxes::Prs3d_DA_YAxis) │ │ │ .value("Prs3d_DA_ZAxis",Prs3d_DatumAxes::Prs3d_DA_ZAxis) │ │ │ .value("Prs3d_DA_XYAxis",Prs3d_DatumAxes::Prs3d_DA_XYAxis) │ │ │ .value("Prs3d_DA_YZAxis",Prs3d_DatumAxes::Prs3d_DA_YZAxis) │ │ │ .value("Prs3d_DA_XZAxis",Prs3d_DatumAxes::Prs3d_DA_XZAxis) │ │ │ .value("Prs3d_DA_XYZAxis",Prs3d_DatumAxes::Prs3d_DA_XYZAxis).export_values(); │ │ │ - py::enum_(m, "Prs3d_TypeOfHighlight",R"#(Type of highlighting to apply specific style.)#") │ │ │ - .value("Prs3d_TypeOfHighlight_None",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_None) │ │ │ - .value("Prs3d_TypeOfHighlight_Selected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Selected) │ │ │ - .value("Prs3d_TypeOfHighlight_Dynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_Dynamic) │ │ │ - .value("Prs3d_TypeOfHighlight_LocalSelected",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalSelected) │ │ │ - .value("Prs3d_TypeOfHighlight_LocalDynamic",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_LocalDynamic) │ │ │ - .value("Prs3d_TypeOfHighlight_SubIntensity",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_SubIntensity) │ │ │ - .value("Prs3d_TypeOfHighlight_NB",Prs3d_TypeOfHighlight::Prs3d_TypeOfHighlight_NB).export_values(); │ │ │ - py::enum_(m, "Prs3d_VertexDrawMode",R"#(Describes supported modes of visualization of the shape's vertices: VDM_Isolated - only isolated vertices (not belonging to a face) are displayed. VDM_All - all vertices of the shape are displayed. VDM_Inherited - the global settings are inherited and applied to the shape's presentation.)#") │ │ │ - .value("Prs3d_VDM_Isolated",Prs3d_VertexDrawMode::Prs3d_VDM_Isolated) │ │ │ - .value("Prs3d_VDM_All",Prs3d_VertexDrawMode::Prs3d_VDM_All) │ │ │ - .value("Prs3d_VDM_Inherited",Prs3d_VertexDrawMode::Prs3d_VDM_Inherited).export_values(); │ │ │ - py::enum_(m, "Prs3d_DimensionTextHorizontalPosition",R"#(Specifies options for positioning dimension value label in horizontal direction. DTHP_Left - value label located at left side on dimension extension. DTHP_Right - value label located at right side on dimension extension. DTHP_Center - value label located at center of dimension line. DTHP_Fit - value label located automatically at left side if does not fits the dimension space, otherwise the value label is placed at center.)#") │ │ │ - .value("Prs3d_DTHP_Left",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left) │ │ │ - .value("Prs3d_DTHP_Right",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right) │ │ │ - .value("Prs3d_DTHP_Center",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center) │ │ │ - .value("Prs3d_DTHP_Fit",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values(); │ │ │ + py::enum_(m, "Prs3d_DatumMode",R"#(Enumeration defining a mode of datum graphic presentation, see Prs3d_Datum.)#") │ │ │ + .value("Prs3d_DM_WireFrame",Prs3d_DatumMode::Prs3d_DM_WireFrame) │ │ │ + .value("Prs3d_DM_Shaded",Prs3d_DatumMode::Prs3d_DM_Shaded).export_values(); │ │ │ py::enum_(m, "Prs3d_DatumParts",R"#(Enumeration defining a part of datum aspect, see Prs3d_Datum.)#") │ │ │ .value("Prs3d_DatumParts_Origin",Prs3d_DatumParts::Prs3d_DatumParts_Origin) │ │ │ .value("Prs3d_DatumParts_XAxis",Prs3d_DatumParts::Prs3d_DatumParts_XAxis) │ │ │ .value("Prs3d_DatumParts_YAxis",Prs3d_DatumParts::Prs3d_DatumParts_YAxis) │ │ │ .value("Prs3d_DatumParts_ZAxis",Prs3d_DatumParts::Prs3d_DatumParts_ZAxis) │ │ │ .value("Prs3d_DatumParts_XArrow",Prs3d_DatumParts::Prs3d_DatumParts_XArrow) │ │ │ .value("Prs3d_DatumParts_YArrow",Prs3d_DatumParts::Prs3d_DatumParts_YArrow) │ │ │ @@ -176,14 +171,19 @@ │ │ │ .value("Prs3d_DP_YArrow",Prs3d_DatumParts::Prs3d_DP_YArrow) │ │ │ .value("Prs3d_DP_ZArrow",Prs3d_DatumParts::Prs3d_DP_ZArrow) │ │ │ .value("Prs3d_DP_XOYAxis",Prs3d_DatumParts::Prs3d_DP_XOYAxis) │ │ │ .value("Prs3d_DP_YOZAxis",Prs3d_DatumParts::Prs3d_DP_YOZAxis) │ │ │ .value("Prs3d_DP_XOZAxis",Prs3d_DatumParts::Prs3d_DP_XOZAxis) │ │ │ .value("Prs3d_DP_None",Prs3d_DatumParts::Prs3d_DP_None).export_values(); │ │ │ m.attr("Prs3d_DatumParts_NB") = py::cast(int(Prs3d_DatumParts_NB)); │ │ │ + py::enum_(m, "Prs3d_DimensionTextHorizontalPosition",R"#(Specifies options for positioning dimension value label in horizontal direction. DTHP_Left - value label located at left side on dimension extension. DTHP_Right - value label located at right side on dimension extension. DTHP_Center - value label located at center of dimension line. DTHP_Fit - value label located automatically at left side if does not fits the dimension space, otherwise the value label is placed at center.)#") │ │ │ + .value("Prs3d_DTHP_Left",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Left) │ │ │ + .value("Prs3d_DTHP_Right",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Right) │ │ │ + .value("Prs3d_DTHP_Center",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Center) │ │ │ + .value("Prs3d_DTHP_Fit",Prs3d_DimensionTextHorizontalPosition::Prs3d_DTHP_Fit).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Prs3d_BasicAspect : public Prs3d_BasicAspect{ │ │ │ public: │ │ │ using Prs3d_BasicAspect::Prs3d_BasicAspect; │ │ ├── ./usr/share/libocp/OCP/Quantity_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -44,14 +44,20 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("std"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "Quantity_TypeOfColor",R"#(Identifies color definition systems.)#") │ │ │ + .value("Quantity_TOC_RGB",Quantity_TypeOfColor::Quantity_TOC_RGB) │ │ │ + .value("Quantity_TOC_sRGB",Quantity_TypeOfColor::Quantity_TOC_sRGB) │ │ │ + .value("Quantity_TOC_HLS",Quantity_TypeOfColor::Quantity_TOC_HLS) │ │ │ + .value("Quantity_TOC_CIELab",Quantity_TypeOfColor::Quantity_TOC_CIELab) │ │ │ + .value("Quantity_TOC_CIELch",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values(); │ │ │ py::enum_(m, "Quantity_NameOfColor",R"#(Definition of names of known colors. The names come (mostly) from the X11 specification.)#") │ │ │ .value("Quantity_NOC_BLACK",Quantity_NameOfColor::Quantity_NOC_BLACK) │ │ │ .value("Quantity_NOC_MATRABLUE",Quantity_NameOfColor::Quantity_NOC_MATRABLUE) │ │ │ .value("Quantity_NOC_MATRAGRAY",Quantity_NameOfColor::Quantity_NOC_MATRAGRAY) │ │ │ .value("Quantity_NOC_ALICEBLUE",Quantity_NameOfColor::Quantity_NOC_ALICEBLUE) │ │ │ .value("Quantity_NOC_ANTIQUEWHITE",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE) │ │ │ .value("Quantity_NOC_ANTIQUEWHITE1",Quantity_NameOfColor::Quantity_NOC_ANTIQUEWHITE1) │ │ │ @@ -566,20 +572,14 @@ │ │ │ .value("Quantity_NOC_YELLOW",Quantity_NameOfColor::Quantity_NOC_YELLOW) │ │ │ .value("Quantity_NOC_YELLOW1",Quantity_NameOfColor::Quantity_NOC_YELLOW1) │ │ │ .value("Quantity_NOC_YELLOW2",Quantity_NameOfColor::Quantity_NOC_YELLOW2) │ │ │ .value("Quantity_NOC_YELLOW3",Quantity_NameOfColor::Quantity_NOC_YELLOW3) │ │ │ .value("Quantity_NOC_YELLOW4",Quantity_NameOfColor::Quantity_NOC_YELLOW4) │ │ │ .value("Quantity_NOC_YELLOWGREEN",Quantity_NameOfColor::Quantity_NOC_YELLOWGREEN) │ │ │ .value("Quantity_NOC_WHITE",Quantity_NameOfColor::Quantity_NOC_WHITE).export_values(); │ │ │ - py::enum_(m, "Quantity_TypeOfColor",R"#(Identifies color definition systems.)#") │ │ │ - .value("Quantity_TOC_RGB",Quantity_TypeOfColor::Quantity_TOC_RGB) │ │ │ - .value("Quantity_TOC_sRGB",Quantity_TypeOfColor::Quantity_TOC_sRGB) │ │ │ - .value("Quantity_TOC_HLS",Quantity_TypeOfColor::Quantity_TOC_HLS) │ │ │ - .value("Quantity_TOC_CIELab",Quantity_TypeOfColor::Quantity_TOC_CIELab) │ │ │ - .value("Quantity_TOC_CIELch",Quantity_TypeOfColor::Quantity_TOC_CIELch).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"Quantity_Color",R"#(This class allows the definition of an RGB color as triplet of 3 normalized floating point values (red, green, blue).)#"); │ │ │ py::class_ >(m,"Quantity_ColorRGBA",R"#(The pair of Quantity_Color and Alpha component (1.0 opaque, 0.0 transparent).)#"); │ │ │ py::class_ >(m,"Quantity_Date",R"#(This class provides services to manage date information. A date represents the following time intervals: year, month, day, hour, minute, second, millisecond and microsecond. Current time is expressed in elapsed seconds and microseconds beginning from 00:00 GMT, January 1, 1979 (zero hour). The valid date can only be later than this one. Note: a Period object gives the interval between two dates.)#"); │ │ ├── ./usr/share/libocp/OCP/SelectMgr_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -107,38 +107,38 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("SelectMgr_MatOp"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "SelectMgr_FilterType",R"#(Enumeration defines the filter type.)#") │ │ │ - .value("SelectMgr_FilterType_AND",SelectMgr_FilterType::SelectMgr_FilterType_AND) │ │ │ - .value("SelectMgr_FilterType_OR",SelectMgr_FilterType::SelectMgr_FilterType_OR).export_values(); │ │ │ py::enum_(m, "SelectMgr_SelectionType",R"#(Possible selection types)#") │ │ │ .value("SelectMgr_SelectionType_Unknown",SelectMgr_SelectionType::SelectMgr_SelectionType_Unknown) │ │ │ .value("SelectMgr_SelectionType_Point",SelectMgr_SelectionType::SelectMgr_SelectionType_Point) │ │ │ .value("SelectMgr_SelectionType_Box",SelectMgr_SelectionType::SelectMgr_SelectionType_Box) │ │ │ .value("SelectMgr_SelectionType_Polyline",SelectMgr_SelectionType::SelectMgr_SelectionType_Polyline).export_values(); │ │ │ + py::enum_(m, "SelectMgr_TypeOfDepthTolerance",R"#(Define the type of depth tolerance for considering picked entities to lie on the same depth (distance from eye to entity).)#") │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_Uniform",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform) │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_UniformPixels",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels) │ │ │ + .value("SelectMgr_TypeOfDepthTolerance_SensitivityFactor",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values(); │ │ │ py::enum_(m, "SelectMgr_StateOfSelection",R"#(different state of a Selection in a ViewerSelector...)#") │ │ │ .value("SelectMgr_SOS_Any",SelectMgr_StateOfSelection::SelectMgr_SOS_Any) │ │ │ .value("SelectMgr_SOS_Unknown",SelectMgr_StateOfSelection::SelectMgr_SOS_Unknown) │ │ │ .value("SelectMgr_SOS_Deactivated",SelectMgr_StateOfSelection::SelectMgr_SOS_Deactivated) │ │ │ .value("SelectMgr_SOS_Activated",SelectMgr_StateOfSelection::SelectMgr_SOS_Activated).export_values(); │ │ │ + py::enum_(m, "SelectMgr_PickingStrategy",R"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#") │ │ │ + .value("SelectMgr_PickingStrategy_FirstAcceptable",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable) │ │ │ + .value("SelectMgr_PickingStrategy_OnlyTopmost",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values(); │ │ │ py::enum_(m, "SelectMgr_TypeOfUpdate",R"#(Provides values for types of update, including - full - partial - none.)#") │ │ │ .value("SelectMgr_TOU_Full",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Full) │ │ │ .value("SelectMgr_TOU_Partial",SelectMgr_TypeOfUpdate::SelectMgr_TOU_Partial) │ │ │ .value("SelectMgr_TOU_None",SelectMgr_TypeOfUpdate::SelectMgr_TOU_None).export_values(); │ │ │ - py::enum_(m, "SelectMgr_TypeOfDepthTolerance",R"#(Define the type of depth tolerance for considering picked entities to lie on the same depth (distance from eye to entity).)#") │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_Uniform",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_Uniform) │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_UniformPixels",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_UniformPixels) │ │ │ - .value("SelectMgr_TypeOfDepthTolerance_SensitivityFactor",SelectMgr_TypeOfDepthTolerance::SelectMgr_TypeOfDepthTolerance_SensitivityFactor).export_values(); │ │ │ - py::enum_(m, "SelectMgr_PickingStrategy",R"#(Enumeration defines picking strategy - which entities detected by picking line will be accepted, considering selection filters.)#") │ │ │ - .value("SelectMgr_PickingStrategy_FirstAcceptable",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_FirstAcceptable) │ │ │ - .value("SelectMgr_PickingStrategy_OnlyTopmost",SelectMgr_PickingStrategy::SelectMgr_PickingStrategy_OnlyTopmost).export_values(); │ │ │ + py::enum_(m, "SelectMgr_FilterType",R"#(Enumeration defines the filter type.)#") │ │ │ + .value("SelectMgr_FilterType_AND",SelectMgr_FilterType::SelectMgr_FilterType_AND) │ │ │ + .value("SelectMgr_FilterType_OR",SelectMgr_FilterType::SelectMgr_FilterType_OR).export_values(); │ │ │ py::enum_(m, "SelectMgr_TypeOfBVHUpdate",R"#(Keeps track for BVH update state for each SelectMgr_Selection entity in a following way: - Add : 2nd level BVH does not contain any of the selection's sensitive entities and they must be added; - Remove : all sensitive entities of the selection must be removed from 2nd level BVH; - Renew : 2nd level BVH already contains sensitives of the selection, but the its complete update and removal is required. Therefore, sensitives of the selection with this type of update must be removed from 2nd level BVH and added after recomputation. - Invalidate : the 2nd level BVH needs to be rebuilt; - None : entities of the selection are up to date.)#") │ │ │ .value("SelectMgr_TBU_Add",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Add) │ │ │ .value("SelectMgr_TBU_Remove",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Remove) │ │ │ .value("SelectMgr_TBU_Renew",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Renew) │ │ │ .value("SelectMgr_TBU_Invalidate",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_Invalidate) │ │ │ .value("SelectMgr_TBU_None",SelectMgr_TypeOfBVHUpdate::SelectMgr_TBU_None).export_values(); │ │ ├── ./usr/share/libocp/OCP/ShapeExtend_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -60,18 +60,14 @@ │ │ │ py::module m = main_module.def_submodule("ShapeExtend", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "ShapeExtend_Parametrisation",R"#(Defines kind of global parametrisation on the composite surface each patch of the 1st row and column adds its range, Ui+1 = Ui + URange(i,1), etc. each patch gives range 1.: Ui = i-1, Vj = j-1 uniform parametrisation with global range [0,1])#") │ │ │ - .value("ShapeExtend_Natural",ShapeExtend_Parametrisation::ShapeExtend_Natural) │ │ │ - .value("ShapeExtend_Uniform",ShapeExtend_Parametrisation::ShapeExtend_Uniform) │ │ │ - .value("ShapeExtend_Unitary",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values(); │ │ │ py::enum_(m, "ShapeExtend_Status",R"#(This enumeration is used in ShapeHealing toolkit for representing flags in the return statuses of class methods. The status is a field of the class which is set by one or several methods of that class. It is used for reporting about errors and other situations encountered during execution of the method. There are defined 8 values for DONE and 8 for FAIL flags: ShapeExtend_DONE1 ... ShapeExtend_DONE8, ShapeExtend_FAIL1 ... ShapeExtend_FAIL8 and also enumerations for representing combinations of flags: ShapeExtend_OK - no flags at all, ShapeExtend_DONE - any of flags DONEi, ShapeExtend_FAIL - any of flags FAILi. The class that uses statuses provides a method(s) which answers whether the flag corresponding to a given enumerative value is (are) set: Standard_Boolean Status(const ShapeExtend_Status test); Note that status can have several flags set simultaneously. Status(ShapeExtend_OK) gives True when no flags are set. Nothing done, everything OK Something was done, case 1 Something was done, case 2 Something was done, case 3 Something was done, case 4 Something was done, case 5 Something was done, case 6 Something was done, case 7 Something was done, case 8 Something was done (any of DONE#) The method failed, case 1 The method failed, case 2 The method failed, case 3 The method failed, case 4 The method failed, case 5 The method failed, case 6 The method failed, case 7 The method failed, case 8 The method failed (any of FAIL# occurred))#") │ │ │ .value("ShapeExtend_OK",ShapeExtend_Status::ShapeExtend_OK) │ │ │ .value("ShapeExtend_DONE1",ShapeExtend_Status::ShapeExtend_DONE1) │ │ │ .value("ShapeExtend_DONE2",ShapeExtend_Status::ShapeExtend_DONE2) │ │ │ .value("ShapeExtend_DONE3",ShapeExtend_Status::ShapeExtend_DONE3) │ │ │ .value("ShapeExtend_DONE4",ShapeExtend_Status::ShapeExtend_DONE4) │ │ │ .value("ShapeExtend_DONE5",ShapeExtend_Status::ShapeExtend_DONE5) │ │ │ @@ -84,14 +80,18 @@ │ │ │ .value("ShapeExtend_FAIL3",ShapeExtend_Status::ShapeExtend_FAIL3) │ │ │ .value("ShapeExtend_FAIL4",ShapeExtend_Status::ShapeExtend_FAIL4) │ │ │ .value("ShapeExtend_FAIL5",ShapeExtend_Status::ShapeExtend_FAIL5) │ │ │ .value("ShapeExtend_FAIL6",ShapeExtend_Status::ShapeExtend_FAIL6) │ │ │ .value("ShapeExtend_FAIL7",ShapeExtend_Status::ShapeExtend_FAIL7) │ │ │ .value("ShapeExtend_FAIL8",ShapeExtend_Status::ShapeExtend_FAIL8) │ │ │ .value("ShapeExtend_FAIL",ShapeExtend_Status::ShapeExtend_FAIL).export_values(); │ │ │ + py::enum_(m, "ShapeExtend_Parametrisation",R"#(Defines kind of global parametrisation on the composite surface each patch of the 1st row and column adds its range, Ui+1 = Ui + URange(i,1), etc. each patch gives range 1.: Ui = i-1, Vj = j-1 uniform parametrisation with global range [0,1])#") │ │ │ + .value("ShapeExtend_Natural",ShapeExtend_Parametrisation::ShapeExtend_Natural) │ │ │ + .value("ShapeExtend_Uniform",ShapeExtend_Parametrisation::ShapeExtend_Uniform) │ │ │ + .value("ShapeExtend_Unitary",ShapeExtend_Parametrisation::ShapeExtend_Unitary).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_ShapeExtend_ComplexCurve : public ShapeExtend_ComplexCurve{ │ │ │ public: │ │ │ using ShapeExtend_ComplexCurve::ShapeExtend_ComplexCurve; │ │ ├── ./usr/share/libocp/OCP/Standard.cpp │ │ │┄ Ordering differences only │ │ │ @@ -881,18 +881,18 @@ │ │ │ ( const handle & (Standard_Type::*)() const) static_cast< const handle & (Standard_Type::*)() const>(&Standard_Type::DynamicType), │ │ │ R"#()#" │ │ │ │ │ │ ) │ │ │ ; │ │ │ │ │ │ // functions │ │ │ -auto mMurmurHash = static_cast(m.attr("MurmurHash")); │ │ │ +auto mFNVHash = static_cast(m.attr("FNVHash")); │ │ │ auto mopencascade = static_cast(m.attr("opencascade")); │ │ │ +auto mMurmurHash = static_cast(m.attr("MurmurHash")); │ │ │ auto mMurmurHashUtils = static_cast(m.attr("MurmurHashUtils")); │ │ │ -auto mFNVHash = static_cast(m.attr("FNVHash")); │ │ │ auto mstd = static_cast(m.attr("std")); │ │ │ │ │ │ // /usr/include/opencascade/Standard.hxx │ │ │ // /usr/include/opencascade/Standard_AbortiveTransaction.hxx │ │ │ // /usr/include/opencascade/Standard_ArrayStreamBuffer.hxx │ │ │ // /usr/include/opencascade/Standard_Assert.hxx │ │ │ m.def("Standard_ASSERT_DO_NOTHING", │ │ ├── ./usr/share/libocp/OCP/Standard_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -108,18 +108,18 @@ │ │ │ // Module definiiton │ │ │ void register_Standard_enums(py::module &main_module) { │ │ │ │ │ │ │ │ │ py::module m = main_module.def_submodule("Standard", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ -m.def_submodule("MurmurHash"); │ │ │ +m.def_submodule("FNVHash"); │ │ │ m.def_submodule("opencascade"); │ │ │ +m.def_submodule("MurmurHash"); │ │ │ m.def_submodule("MurmurHashUtils"); │ │ │ -m.def_submodule("FNVHash"); │ │ │ m.def_submodule("std"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ py::enum_(m, "Standard_HandlerStatus",R"#()#") │ │ │ .value("Standard_HandlerVoid",Standard_HandlerStatus::Standard_HandlerVoid) │ │ ├── ./usr/share/libocp/OCP/StdSelect_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -47,28 +47,28 @@ │ │ │ py::module m = main_module.def_submodule("StdSelect", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "StdSelect_TypeOfEdge",R"#(Provides values for different types of edges. These values are used to filter edges in frameworks inheriting StdSelect_EdgeFilter.)#") │ │ │ + .value("StdSelect_AnyEdge",StdSelect_TypeOfEdge::StdSelect_AnyEdge) │ │ │ + .value("StdSelect_Line",StdSelect_TypeOfEdge::StdSelect_Line) │ │ │ + .value("StdSelect_Circle",StdSelect_TypeOfEdge::StdSelect_Circle).export_values(); │ │ │ py::enum_(m, "StdSelect_TypeOfSelectionImage",R"#(Type of output selection image.)#") │ │ │ .value("StdSelect_TypeOfSelectionImage_NormalizedDepth",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepth) │ │ │ .value("StdSelect_TypeOfSelectionImage_NormalizedDepthInverted",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_NormalizedDepthInverted) │ │ │ .value("StdSelect_TypeOfSelectionImage_UnnormalizedDepth",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_UnnormalizedDepth) │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredDetectedObject",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredDetectedObject) │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredEntity",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntity) │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredEntityType",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredEntityType) │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredOwner",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredOwner) │ │ │ .value("StdSelect_TypeOfSelectionImage_ColoredSelectionMode",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_ColoredSelectionMode) │ │ │ .value("StdSelect_TypeOfSelectionImage_SurfaceNormal",StdSelect_TypeOfSelectionImage::StdSelect_TypeOfSelectionImage_SurfaceNormal).export_values(); │ │ │ - py::enum_(m, "StdSelect_TypeOfEdge",R"#(Provides values for different types of edges. These values are used to filter edges in frameworks inheriting StdSelect_EdgeFilter.)#") │ │ │ - .value("StdSelect_AnyEdge",StdSelect_TypeOfEdge::StdSelect_AnyEdge) │ │ │ - .value("StdSelect_Line",StdSelect_TypeOfEdge::StdSelect_Line) │ │ │ - .value("StdSelect_Circle",StdSelect_TypeOfEdge::StdSelect_Circle).export_values(); │ │ │ py::enum_(m, "StdSelect_TypeOfFace",R"#(Provides values for different types of faces. These values are used to filter faces in frameworks inheriting StdSelect_FaceFilter.)#") │ │ │ .value("StdSelect_AnyFace",StdSelect_TypeOfFace::StdSelect_AnyFace) │ │ │ .value("StdSelect_Plane",StdSelect_TypeOfFace::StdSelect_Plane) │ │ │ .value("StdSelect_Cylinder",StdSelect_TypeOfFace::StdSelect_Cylinder) │ │ │ .value("StdSelect_Sphere",StdSelect_TypeOfFace::StdSelect_Sphere) │ │ │ .value("StdSelect_Torus",StdSelect_TypeOfFace::StdSelect_Torus) │ │ │ .value("StdSelect_Revol",StdSelect_TypeOfFace::StdSelect_Revol) │ │ ├── ./usr/share/libocp/OCP/StepBasic_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -414,18 +414,14 @@ │ │ │ py::module m = main_module.def_submodule("StepBasic", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "StepBasic_AheadOrBehind",R"#()#") │ │ │ - .value("StepBasic_aobAhead",StepBasic_AheadOrBehind::StepBasic_aobAhead) │ │ │ - .value("StepBasic_aobExact",StepBasic_AheadOrBehind::StepBasic_aobExact) │ │ │ - .value("StepBasic_aobBehind",StepBasic_AheadOrBehind::StepBasic_aobBehind).export_values(); │ │ │ py::enum_(m, "StepBasic_SiPrefix",R"#()#") │ │ │ .value("StepBasic_spExa",StepBasic_SiPrefix::StepBasic_spExa) │ │ │ .value("StepBasic_spPeta",StepBasic_SiPrefix::StepBasic_spPeta) │ │ │ .value("StepBasic_spTera",StepBasic_SiPrefix::StepBasic_spTera) │ │ │ .value("StepBasic_spGiga",StepBasic_SiPrefix::StepBasic_spGiga) │ │ │ .value("StepBasic_spMega",StepBasic_SiPrefix::StepBasic_spMega) │ │ │ .value("StepBasic_spKilo",StepBasic_SiPrefix::StepBasic_spKilo) │ │ │ @@ -435,14 +431,18 @@ │ │ │ .value("StepBasic_spCenti",StepBasic_SiPrefix::StepBasic_spCenti) │ │ │ .value("StepBasic_spMilli",StepBasic_SiPrefix::StepBasic_spMilli) │ │ │ .value("StepBasic_spMicro",StepBasic_SiPrefix::StepBasic_spMicro) │ │ │ .value("StepBasic_spNano",StepBasic_SiPrefix::StepBasic_spNano) │ │ │ .value("StepBasic_spPico",StepBasic_SiPrefix::StepBasic_spPico) │ │ │ .value("StepBasic_spFemto",StepBasic_SiPrefix::StepBasic_spFemto) │ │ │ .value("StepBasic_spAtto",StepBasic_SiPrefix::StepBasic_spAtto).export_values(); │ │ │ + py::enum_(m, "StepBasic_AheadOrBehind",R"#()#") │ │ │ + .value("StepBasic_aobAhead",StepBasic_AheadOrBehind::StepBasic_aobAhead) │ │ │ + .value("StepBasic_aobExact",StepBasic_AheadOrBehind::StepBasic_aobExact) │ │ │ + .value("StepBasic_aobBehind",StepBasic_AheadOrBehind::StepBasic_aobBehind).export_values(); │ │ │ py::enum_(m, "StepBasic_Source",R"#()#") │ │ │ .value("StepBasic_sMade",StepBasic_Source::StepBasic_sMade) │ │ │ .value("StepBasic_sBought",StepBasic_Source::StepBasic_sBought) │ │ │ .value("StepBasic_sNotKnown",StepBasic_Source::StepBasic_sNotKnown).export_values(); │ │ │ py::enum_(m, "StepBasic_SiUnitName",R"#()#") │ │ │ .value("StepBasic_sunMetre",StepBasic_SiUnitName::StepBasic_sunMetre) │ │ │ .value("StepBasic_sunGram",StepBasic_SiUnitName::StepBasic_sunGram) │ │ ├── ./usr/share/libocp/OCP/StepDimTol_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -199,14 +199,19 @@ │ │ │ py::module m = main_module.def_submodule("StepDimTol", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "StepDimTol_DatumReferenceModifierType",R"#()#") │ │ │ + .value("StepDimTol_CircularOrCylindrical",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical) │ │ │ + .value("StepDimTol_Distance",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance) │ │ │ + .value("StepDimTol_Projected",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected) │ │ │ + .value("StepDimTol_Spherical",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values(); │ │ │ py::enum_(m, "StepDimTol_GeometricToleranceType",R"#()#") │ │ │ .value("StepDimTol_GTTAngularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTAngularityTolerance) │ │ │ .value("StepDimTol_GTTCircularRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCircularRunoutTolerance) │ │ │ .value("StepDimTol_GTTCoaxialityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCoaxialityTolerance) │ │ │ .value("StepDimTol_GTTConcentricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTConcentricityTolerance) │ │ │ .value("StepDimTol_GTTCylindricityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTCylindricityTolerance) │ │ │ .value("StepDimTol_GTTFlatnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTFlatnessTolerance) │ │ │ @@ -215,27 +220,14 @@ │ │ │ .value("StepDimTol_GTTPerpendicularityTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPerpendicularityTolerance) │ │ │ .value("StepDimTol_GTTPositionTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTPositionTolerance) │ │ │ .value("StepDimTol_GTTRoundnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTRoundnessTolerance) │ │ │ .value("StepDimTol_GTTStraightnessTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTStraightnessTolerance) │ │ │ .value("StepDimTol_GTTSurfaceProfileTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSurfaceProfileTolerance) │ │ │ .value("StepDimTol_GTTSymmetryTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTSymmetryTolerance) │ │ │ .value("StepDimTol_GTTTotalRunoutTolerance",StepDimTol_GeometricToleranceType::StepDimTol_GTTTotalRunoutTolerance).export_values(); │ │ │ - py::enum_(m, "StepDimTol_DatumReferenceModifierType",R"#()#") │ │ │ - .value("StepDimTol_CircularOrCylindrical",StepDimTol_DatumReferenceModifierType::StepDimTol_CircularOrCylindrical) │ │ │ - .value("StepDimTol_Distance",StepDimTol_DatumReferenceModifierType::StepDimTol_Distance) │ │ │ - .value("StepDimTol_Projected",StepDimTol_DatumReferenceModifierType::StepDimTol_Projected) │ │ │ - .value("StepDimTol_Spherical",StepDimTol_DatumReferenceModifierType::StepDimTol_Spherical).export_values(); │ │ │ - py::enum_(m, "StepDimTol_AreaUnitType",R"#()#") │ │ │ - .value("StepDimTol_Circular",StepDimTol_AreaUnitType::StepDimTol_Circular) │ │ │ - .value("StepDimTol_Rectangular",StepDimTol_AreaUnitType::StepDimTol_Rectangular) │ │ │ - .value("StepDimTol_Square",StepDimTol_AreaUnitType::StepDimTol_Square).export_values(); │ │ │ - py::enum_(m, "StepDimTol_LimitCondition",R"#()#") │ │ │ - .value("StepDimTol_MaximumMaterialCondition",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition) │ │ │ - .value("StepDimTol_LeastMaterialCondition",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition) │ │ │ - .value("StepDimTol_RegardlessOfFeatureSize",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values(); │ │ │ py::enum_(m, "StepDimTol_GeometricToleranceModifier",R"#()#") │ │ │ .value("StepDimTol_GTMAnyCrossSection",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMAnyCrossSection) │ │ │ .value("StepDimTol_GTMCommonZone",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMCommonZone) │ │ │ .value("StepDimTol_GTMEachRadialElement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMEachRadialElement) │ │ │ .value("StepDimTol_GTMFreeState",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMFreeState) │ │ │ .value("StepDimTol_GTMLeastMaterialRequirement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLeastMaterialRequirement) │ │ │ .value("StepDimTol_GTMLineElement",StepDimTol_GeometricToleranceModifier::StepDimTol_GTMLineElement) │ │ │ @@ -267,14 +259,22 @@ │ │ │ .value("StepDimTol_SDRMMaximumMaterialRequirement",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMaximumMaterialRequirement) │ │ │ .value("StepDimTol_SDRMMinorDiameter",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMMinorDiameter) │ │ │ .value("StepDimTol_SDRMOrientation",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMOrientation) │ │ │ .value("StepDimTol_SDRMPitchDiameter",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPitchDiameter) │ │ │ .value("StepDimTol_SDRMPlane",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPlane) │ │ │ .value("StepDimTol_SDRMPoint",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMPoint) │ │ │ .value("StepDimTol_SDRMTranslation",StepDimTol_SimpleDatumReferenceModifier::StepDimTol_SDRMTranslation).export_values(); │ │ │ + py::enum_(m, "StepDimTol_AreaUnitType",R"#()#") │ │ │ + .value("StepDimTol_Circular",StepDimTol_AreaUnitType::StepDimTol_Circular) │ │ │ + .value("StepDimTol_Rectangular",StepDimTol_AreaUnitType::StepDimTol_Rectangular) │ │ │ + .value("StepDimTol_Square",StepDimTol_AreaUnitType::StepDimTol_Square).export_values(); │ │ │ + py::enum_(m, "StepDimTol_LimitCondition",R"#()#") │ │ │ + .value("StepDimTol_MaximumMaterialCondition",StepDimTol_LimitCondition::StepDimTol_MaximumMaterialCondition) │ │ │ + .value("StepDimTol_LeastMaterialCondition",StepDimTol_LimitCondition::StepDimTol_LeastMaterialCondition) │ │ │ + .value("StepDimTol_RegardlessOfFeatureSize",StepDimTol_LimitCondition::StepDimTol_RegardlessOfFeatureSize).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReference"); │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReferenceCompartment"); │ │ │ preregister_template_NCollection_Array1>(m,"StepDimTol_Array1OfDatumReferenceElement"); │ │ ├── ./usr/share/libocp/OCP/StepElement_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -150,57 +150,57 @@ │ │ │ py::module m = main_module.def_submodule("StepElement", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "StepElement_EnumeratedSurfaceElementPurpose",R"#()#") │ │ │ - .value("StepElement_MembraneDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneDirect) │ │ │ - .value("StepElement_MembraneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneShear) │ │ │ - .value("StepElement_BendingDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingDirect) │ │ │ - .value("StepElement_BendingTorsion",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingTorsion) │ │ │ - .value("StepElement_NormalToPlaneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_NormalToPlaneShear).export_values(); │ │ │ - py::enum_(m, "StepElement_EnumeratedCurveElementPurpose",R"#()#") │ │ │ - .value("StepElement_Axial",StepElement_EnumeratedCurveElementPurpose::StepElement_Axial) │ │ │ - .value("StepElement_YYBending",StepElement_EnumeratedCurveElementPurpose::StepElement_YYBending) │ │ │ - .value("StepElement_ZZBending",StepElement_EnumeratedCurveElementPurpose::StepElement_ZZBending) │ │ │ - .value("StepElement_Torsion",StepElement_EnumeratedCurveElementPurpose::StepElement_Torsion) │ │ │ - .value("StepElement_XYShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XYShear) │ │ │ - .value("StepElement_XZShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XZShear) │ │ │ - .value("StepElement_Warping",StepElement_EnumeratedCurveElementPurpose::StepElement_Warping).export_values(); │ │ │ + py::enum_(m, "StepElement_Volume3dElementShape",R"#()#") │ │ │ + .value("StepElement_Hexahedron",StepElement_Volume3dElementShape::StepElement_Hexahedron) │ │ │ + .value("StepElement_Wedge",StepElement_Volume3dElementShape::StepElement_Wedge) │ │ │ + .value("StepElement_Tetrahedron",StepElement_Volume3dElementShape::StepElement_Tetrahedron) │ │ │ + .value("StepElement_Pyramid",StepElement_Volume3dElementShape::StepElement_Pyramid).export_values(); │ │ │ + py::enum_(m, "StepElement_ElementVolume",R"#()#") │ │ │ + .value("StepElement_Volume",StepElement_ElementVolume::StepElement_Volume).export_values(); │ │ │ py::enum_(m, "StepElement_EnumeratedCurveElementFreedom",R"#()#") │ │ │ .value("StepElement_XTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_XTranslation) │ │ │ .value("StepElement_YTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_YTranslation) │ │ │ .value("StepElement_ZTranslation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZTranslation) │ │ │ .value("StepElement_XRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_XRotation) │ │ │ .value("StepElement_YRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_YRotation) │ │ │ .value("StepElement_ZRotation",StepElement_EnumeratedCurveElementFreedom::StepElement_ZRotation) │ │ │ .value("StepElement_Warp",StepElement_EnumeratedCurveElementFreedom::StepElement_Warp) │ │ │ .value("StepElement_None",StepElement_EnumeratedCurveElementFreedom::StepElement_None).export_values(); │ │ │ - py::enum_(m, "StepElement_Volume3dElementShape",R"#()#") │ │ │ - .value("StepElement_Hexahedron",StepElement_Volume3dElementShape::StepElement_Hexahedron) │ │ │ - .value("StepElement_Wedge",StepElement_Volume3dElementShape::StepElement_Wedge) │ │ │ - .value("StepElement_Tetrahedron",StepElement_Volume3dElementShape::StepElement_Tetrahedron) │ │ │ - .value("StepElement_Pyramid",StepElement_Volume3dElementShape::StepElement_Pyramid).export_values(); │ │ │ - py::enum_(m, "StepElement_Element2dShape",R"#()#") │ │ │ - .value("StepElement_Quadrilateral",StepElement_Element2dShape::StepElement_Quadrilateral) │ │ │ - .value("StepElement_Triangle",StepElement_Element2dShape::StepElement_Triangle).export_values(); │ │ │ + py::enum_(m, "StepElement_CurveEdge",R"#()#") │ │ │ + .value("StepElement_ElementEdge",StepElement_CurveEdge::StepElement_ElementEdge).export_values(); │ │ │ + py::enum_(m, "StepElement_EnumeratedVolumeElementPurpose",R"#()#") │ │ │ + .value("StepElement_StressDisplacement",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values(); │ │ │ py::enum_(m, "StepElement_ElementOrder",R"#()#") │ │ │ .value("StepElement_Linear",StepElement_ElementOrder::StepElement_Linear) │ │ │ .value("StepElement_Quadratic",StepElement_ElementOrder::StepElement_Quadratic) │ │ │ .value("StepElement_Cubic",StepElement_ElementOrder::StepElement_Cubic).export_values(); │ │ │ - py::enum_(m, "StepElement_ElementVolume",R"#()#") │ │ │ - .value("StepElement_Volume",StepElement_ElementVolume::StepElement_Volume).export_values(); │ │ │ - py::enum_(m, "StepElement_CurveEdge",R"#()#") │ │ │ - .value("StepElement_ElementEdge",StepElement_CurveEdge::StepElement_ElementEdge).export_values(); │ │ │ + py::enum_(m, "StepElement_Element2dShape",R"#()#") │ │ │ + .value("StepElement_Quadrilateral",StepElement_Element2dShape::StepElement_Quadrilateral) │ │ │ + .value("StepElement_Triangle",StepElement_Element2dShape::StepElement_Triangle).export_values(); │ │ │ + py::enum_(m, "StepElement_EnumeratedSurfaceElementPurpose",R"#()#") │ │ │ + .value("StepElement_MembraneDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneDirect) │ │ │ + .value("StepElement_MembraneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_MembraneShear) │ │ │ + .value("StepElement_BendingDirect",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingDirect) │ │ │ + .value("StepElement_BendingTorsion",StepElement_EnumeratedSurfaceElementPurpose::StepElement_BendingTorsion) │ │ │ + .value("StepElement_NormalToPlaneShear",StepElement_EnumeratedSurfaceElementPurpose::StepElement_NormalToPlaneShear).export_values(); │ │ │ py::enum_(m, "StepElement_UnspecifiedValue",R"#()#") │ │ │ .value("StepElement_Unspecified",StepElement_UnspecifiedValue::StepElement_Unspecified).export_values(); │ │ │ - py::enum_(m, "StepElement_EnumeratedVolumeElementPurpose",R"#()#") │ │ │ - .value("StepElement_StressDisplacement",StepElement_EnumeratedVolumeElementPurpose::StepElement_StressDisplacement).export_values(); │ │ │ + py::enum_(m, "StepElement_EnumeratedCurveElementPurpose",R"#()#") │ │ │ + .value("StepElement_Axial",StepElement_EnumeratedCurveElementPurpose::StepElement_Axial) │ │ │ + .value("StepElement_YYBending",StepElement_EnumeratedCurveElementPurpose::StepElement_YYBending) │ │ │ + .value("StepElement_ZZBending",StepElement_EnumeratedCurveElementPurpose::StepElement_ZZBending) │ │ │ + .value("StepElement_Torsion",StepElement_EnumeratedCurveElementPurpose::StepElement_Torsion) │ │ │ + .value("StepElement_XYShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XYShear) │ │ │ + .value("StepElement_XZShear",StepElement_EnumeratedCurveElementPurpose::StepElement_XZShear) │ │ │ + .value("StepElement_Warping",StepElement_EnumeratedCurveElementPurpose::StepElement_Warping).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ , Standard_Transient >(m,"StepElement_AnalysisItemWithinRepresentation",R"#(Representation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentationRepresentation of STEP entity AnalysisItemWithinRepresentation)#"); │ │ │ preregister_template_NCollection_Array1>(m,"StepElement_Array1OfCurveElementEndReleasePacket"); │ │ │ preregister_template_NCollection_Array1>(m,"StepElement_Array1OfCurveElementSectionDefinition"); │ │ ├── ./usr/share/libocp/OCP/StepFEA_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -217,32 +217,32 @@ │ │ │ py::module m = main_module.def_submodule("StepFEA", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "StepFEA_UnspecifiedValue",R"#()#") │ │ │ - .value("StepFEA_Unspecified",StepFEA_UnspecifiedValue::StepFEA_Unspecified).export_values(); │ │ │ py::enum_(m, "StepFEA_CurveEdge",R"#()#") │ │ │ .value("StepFEA_ElementEdge",StepFEA_CurveEdge::StepFEA_ElementEdge).export_values(); │ │ │ + py::enum_(m, "StepFEA_ElementVolume",R"#()#") │ │ │ + .value("StepFEA_Volume",StepFEA_ElementVolume::StepFEA_Volume).export_values(); │ │ │ py::enum_(m, "StepFEA_EnumeratedDegreeOfFreedom",R"#()#") │ │ │ .value("StepFEA_XTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XTranslation) │ │ │ .value("StepFEA_YTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YTranslation) │ │ │ .value("StepFEA_ZTranslation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZTranslation) │ │ │ .value("StepFEA_XRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_XRotation) │ │ │ .value("StepFEA_YRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_YRotation) │ │ │ .value("StepFEA_ZRotation",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_ZRotation) │ │ │ .value("StepFEA_Warp",StepFEA_EnumeratedDegreeOfFreedom::StepFEA_Warp).export_values(); │ │ │ + py::enum_(m, "StepFEA_UnspecifiedValue",R"#()#") │ │ │ + .value("StepFEA_Unspecified",StepFEA_UnspecifiedValue::StepFEA_Unspecified).export_values(); │ │ │ py::enum_(m, "StepFEA_CoordinateSystemType",R"#()#") │ │ │ .value("StepFEA_Cartesian",StepFEA_CoordinateSystemType::StepFEA_Cartesian) │ │ │ .value("StepFEA_Cylindrical",StepFEA_CoordinateSystemType::StepFEA_Cylindrical) │ │ │ .value("StepFEA_Spherical",StepFEA_CoordinateSystemType::StepFEA_Spherical).export_values(); │ │ │ - py::enum_(m, "StepFEA_ElementVolume",R"#()#") │ │ │ - .value("StepFEA_Volume",StepFEA_ElementVolume::StepFEA_Volume).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ preregister_template_NCollection_Array1>(m,"StepFEA_Array1OfCurveElementEndOffset"); │ │ │ preregister_template_NCollection_Array1>(m,"StepFEA_Array1OfCurveElementEndRelease"); │ │ │ preregister_template_NCollection_Array1>(m,"StepFEA_Array1OfCurveElementInterval"); │ │ ├── ./usr/share/libocp/OCP/StepGeom_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -301,26 +301,14 @@ │ │ │ py::module m = main_module.def_submodule("StepGeom", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "StepGeom_BSplineCurveForm",R"#()#") │ │ │ - .value("StepGeom_bscfPolylineForm",StepGeom_BSplineCurveForm::StepGeom_bscfPolylineForm) │ │ │ - .value("StepGeom_bscfCircularArc",StepGeom_BSplineCurveForm::StepGeom_bscfCircularArc) │ │ │ - .value("StepGeom_bscfEllipticArc",StepGeom_BSplineCurveForm::StepGeom_bscfEllipticArc) │ │ │ - .value("StepGeom_bscfParabolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfParabolicArc) │ │ │ - .value("StepGeom_bscfHyperbolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfHyperbolicArc) │ │ │ - .value("StepGeom_bscfUnspecified",StepGeom_BSplineCurveForm::StepGeom_bscfUnspecified).export_values(); │ │ │ - py::enum_(m, "StepGeom_KnotType",R"#()#") │ │ │ - .value("StepGeom_ktUniformKnots",StepGeom_KnotType::StepGeom_ktUniformKnots) │ │ │ - .value("StepGeom_ktUnspecified",StepGeom_KnotType::StepGeom_ktUnspecified) │ │ │ - .value("StepGeom_ktQuasiUniformKnots",StepGeom_KnotType::StepGeom_ktQuasiUniformKnots) │ │ │ - .value("StepGeom_ktPiecewiseBezierKnots",StepGeom_KnotType::StepGeom_ktPiecewiseBezierKnots).export_values(); │ │ │ py::enum_(m, "StepGeom_TrimmingPreference",R"#()#") │ │ │ .value("StepGeom_tpCartesian",StepGeom_TrimmingPreference::StepGeom_tpCartesian) │ │ │ .value("StepGeom_tpParameter",StepGeom_TrimmingPreference::StepGeom_tpParameter) │ │ │ .value("StepGeom_tpUnspecified",StepGeom_TrimmingPreference::StepGeom_tpUnspecified).export_values(); │ │ │ py::enum_(m, "StepGeom_PreferredSurfaceCurveRepresentation",R"#()#") │ │ │ .value("StepGeom_pscrCurve3d",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrCurve3d) │ │ │ .value("StepGeom_pscrPcurveS1",StepGeom_PreferredSurfaceCurveRepresentation::StepGeom_pscrPcurveS1) │ │ │ @@ -338,14 +326,26 @@ │ │ │ .value("StepGeom_bssfToroidalSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfToroidalSurf) │ │ │ .value("StepGeom_bssfSurfOfRevolution",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfRevolution) │ │ │ .value("StepGeom_bssfRuledSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfRuledSurf) │ │ │ .value("StepGeom_bssfGeneralisedCone",StepGeom_BSplineSurfaceForm::StepGeom_bssfGeneralisedCone) │ │ │ .value("StepGeom_bssfQuadricSurf",StepGeom_BSplineSurfaceForm::StepGeom_bssfQuadricSurf) │ │ │ .value("StepGeom_bssfSurfOfLinearExtrusion",StepGeom_BSplineSurfaceForm::StepGeom_bssfSurfOfLinearExtrusion) │ │ │ .value("StepGeom_bssfUnspecified",StepGeom_BSplineSurfaceForm::StepGeom_bssfUnspecified).export_values(); │ │ │ + py::enum_(m, "StepGeom_BSplineCurveForm",R"#()#") │ │ │ + .value("StepGeom_bscfPolylineForm",StepGeom_BSplineCurveForm::StepGeom_bscfPolylineForm) │ │ │ + .value("StepGeom_bscfCircularArc",StepGeom_BSplineCurveForm::StepGeom_bscfCircularArc) │ │ │ + .value("StepGeom_bscfEllipticArc",StepGeom_BSplineCurveForm::StepGeom_bscfEllipticArc) │ │ │ + .value("StepGeom_bscfParabolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfParabolicArc) │ │ │ + .value("StepGeom_bscfHyperbolicArc",StepGeom_BSplineCurveForm::StepGeom_bscfHyperbolicArc) │ │ │ + .value("StepGeom_bscfUnspecified",StepGeom_BSplineCurveForm::StepGeom_bscfUnspecified).export_values(); │ │ │ + py::enum_(m, "StepGeom_KnotType",R"#()#") │ │ │ + .value("StepGeom_ktUniformKnots",StepGeom_KnotType::StepGeom_ktUniformKnots) │ │ │ + .value("StepGeom_ktUnspecified",StepGeom_KnotType::StepGeom_ktUnspecified) │ │ │ + .value("StepGeom_ktQuasiUniformKnots",StepGeom_KnotType::StepGeom_ktQuasiUniformKnots) │ │ │ + .value("StepGeom_ktPiecewiseBezierKnots",StepGeom_KnotType::StepGeom_ktPiecewiseBezierKnots).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfBoundaryCurve"); │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfCartesianPoint"); │ │ │ preregister_template_NCollection_Array1>(m,"StepGeom_Array1OfCompositeCurveSegment"); │ │ ├── ./usr/share/libocp/OCP/StepToTopoDS_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -165,45 +165,45 @@ │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ py::enum_(m, "StepToTopoDS_BuilderError",R"#()#") │ │ │ .value("StepToTopoDS_BuilderDone",StepToTopoDS_BuilderError::StepToTopoDS_BuilderDone) │ │ │ .value("StepToTopoDS_BuilderOther",StepToTopoDS_BuilderError::StepToTopoDS_BuilderOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslateVertexLoopError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslateVertexLoopDone",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopDone) │ │ │ - .value("StepToTopoDS_TranslateVertexLoopOther",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslateEdgeError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslateEdgeDone",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeDone) │ │ │ - .value("StepToTopoDS_TranslateEdgeOther",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslateVertexError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslateVertexDone",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexDone) │ │ │ - .value("StepToTopoDS_TranslateVertexOther",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslateEdgeLoopError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslateEdgeLoopDone",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone) │ │ │ - .value("StepToTopoDS_TranslateEdgeLoopOther",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslateShellError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslateShellDone",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellDone) │ │ │ - .value("StepToTopoDS_TranslateShellOther",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellOther).export_values(); │ │ │ - py::enum_(m, "StepToTopoDS_TranslatePolyLoopError",R"#()#") │ │ │ - .value("StepToTopoDS_TranslatePolyLoopDone",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopDone) │ │ │ - .value("StepToTopoDS_TranslatePolyLoopOther",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopOther).export_values(); │ │ │ py::enum_(m, "StepToTopoDS_TranslateSolidError",R"#()#") │ │ │ .value("StepToTopoDS_TranslateSolidDone",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidDone) │ │ │ .value("StepToTopoDS_TranslateSolidOther",StepToTopoDS_TranslateSolidError::StepToTopoDS_TranslateSolidOther).export_values(); │ │ │ py::enum_(m, "StepToTopoDS_GeometricToolError",R"#()#") │ │ │ .value("StepToTopoDS_GeometricToolDone",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolDone) │ │ │ .value("StepToTopoDS_GeometricToolIsDegenerated",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolIsDegenerated) │ │ │ .value("StepToTopoDS_GeometricToolHasNoPCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolHasNoPCurve) │ │ │ .value("StepToTopoDS_GeometricToolWrong3dParameters",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolWrong3dParameters) │ │ │ .value("StepToTopoDS_GeometricToolNoProjectiOnCurve",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolNoProjectiOnCurve) │ │ │ .value("StepToTopoDS_GeometricToolOther",StepToTopoDS_GeometricToolError::StepToTopoDS_GeometricToolOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslatePolyLoopError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslatePolyLoopDone",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopDone) │ │ │ + .value("StepToTopoDS_TranslatePolyLoopOther",StepToTopoDS_TranslatePolyLoopError::StepToTopoDS_TranslatePolyLoopOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslateShellError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslateShellDone",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellDone) │ │ │ + .value("StepToTopoDS_TranslateShellOther",StepToTopoDS_TranslateShellError::StepToTopoDS_TranslateShellOther).export_values(); │ │ │ py::enum_(m, "StepToTopoDS_TranslateFaceError",R"#()#") │ │ │ .value("StepToTopoDS_TranslateFaceDone",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceDone) │ │ │ .value("StepToTopoDS_TranslateFaceOther",StepToTopoDS_TranslateFaceError::StepToTopoDS_TranslateFaceOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslateEdgeError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslateEdgeDone",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeDone) │ │ │ + .value("StepToTopoDS_TranslateEdgeOther",StepToTopoDS_TranslateEdgeError::StepToTopoDS_TranslateEdgeOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslateVertexError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslateVertexDone",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexDone) │ │ │ + .value("StepToTopoDS_TranslateVertexOther",StepToTopoDS_TranslateVertexError::StepToTopoDS_TranslateVertexOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslateEdgeLoopError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslateEdgeLoopDone",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopDone) │ │ │ + .value("StepToTopoDS_TranslateEdgeLoopOther",StepToTopoDS_TranslateEdgeLoopError::StepToTopoDS_TranslateEdgeLoopOther).export_values(); │ │ │ + py::enum_(m, "StepToTopoDS_TranslateVertexLoopError",R"#()#") │ │ │ + .value("StepToTopoDS_TranslateVertexLoopDone",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopDone) │ │ │ + .value("StepToTopoDS_TranslateVertexLoopOther",StepToTopoDS_TranslateVertexLoopError::StepToTopoDS_TranslateVertexLoopOther).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"StepToTopoDS",R"#(This package implements the mapping between AP214 Shape representation and CAS.CAD Shape Representation. The source schema is Part42 (which is included in AP214))#"); │ │ │ py::class_ >(m,"StepToTopoDS_GeometricTool",R"#(This class contains some algorithmic services specific to the mapping STEP to CAS.CADE)#"); │ │ │ py::class_ >(m,"StepToTopoDS_NMTool",R"#(Provides data to process non-manifold topology when reading from STEP.)#"); │ │ ├── ./usr/share/libocp/OCP/StepVisual_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -366,41 +366,41 @@ │ │ │ py::module m = main_module.def_submodule("StepVisual", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "StepVisual_ShadingSurfaceMethod",R"#()#") │ │ │ - .value("StepVisual_ssmConstantShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmConstantShading) │ │ │ - .value("StepVisual_ssmColourShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmColourShading) │ │ │ - .value("StepVisual_ssmDotShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmDotShading) │ │ │ - .value("StepVisual_ssmNormalShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmNormalShading).export_values(); │ │ │ - py::enum_(m, "StepVisual_SurfaceSide",R"#()#") │ │ │ - .value("StepVisual_ssNegative",StepVisual_SurfaceSide::StepVisual_ssNegative) │ │ │ - .value("StepVisual_ssPositive",StepVisual_SurfaceSide::StepVisual_ssPositive) │ │ │ - .value("StepVisual_ssBoth",StepVisual_SurfaceSide::StepVisual_ssBoth).export_values(); │ │ │ py::enum_(m, "StepVisual_TextPath",R"#()#") │ │ │ .value("StepVisual_tpUp",StepVisual_TextPath::StepVisual_tpUp) │ │ │ .value("StepVisual_tpRight",StepVisual_TextPath::StepVisual_tpRight) │ │ │ .value("StepVisual_tpDown",StepVisual_TextPath::StepVisual_tpDown) │ │ │ .value("StepVisual_tpLeft",StepVisual_TextPath::StepVisual_tpLeft).export_values(); │ │ │ - py::enum_(m, "StepVisual_NullStyle",R"#()#") │ │ │ - .value("StepVisual_Null",StepVisual_NullStyle::StepVisual_Null).export_values(); │ │ │ + py::enum_(m, "StepVisual_ShadingSurfaceMethod",R"#()#") │ │ │ + .value("StepVisual_ssmConstantShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmConstantShading) │ │ │ + .value("StepVisual_ssmColourShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmColourShading) │ │ │ + .value("StepVisual_ssmDotShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmDotShading) │ │ │ + .value("StepVisual_ssmNormalShading",StepVisual_ShadingSurfaceMethod::StepVisual_ssmNormalShading).export_values(); │ │ │ py::enum_(m, "StepVisual_CentralOrParallel",R"#()#") │ │ │ .value("StepVisual_copCentral",StepVisual_CentralOrParallel::StepVisual_copCentral) │ │ │ .value("StepVisual_copParallel",StepVisual_CentralOrParallel::StepVisual_copParallel).export_values(); │ │ │ py::enum_(m, "StepVisual_MarkerType",R"#()#") │ │ │ .value("StepVisual_mtDot",StepVisual_MarkerType::StepVisual_mtDot) │ │ │ .value("StepVisual_mtX",StepVisual_MarkerType::StepVisual_mtX) │ │ │ .value("StepVisual_mtPlus",StepVisual_MarkerType::StepVisual_mtPlus) │ │ │ .value("StepVisual_mtAsterisk",StepVisual_MarkerType::StepVisual_mtAsterisk) │ │ │ .value("StepVisual_mtRing",StepVisual_MarkerType::StepVisual_mtRing) │ │ │ .value("StepVisual_mtSquare",StepVisual_MarkerType::StepVisual_mtSquare) │ │ │ .value("StepVisual_mtTriangle",StepVisual_MarkerType::StepVisual_mtTriangle).export_values(); │ │ │ + py::enum_(m, "StepVisual_NullStyle",R"#()#") │ │ │ + .value("StepVisual_Null",StepVisual_NullStyle::StepVisual_Null).export_values(); │ │ │ + py::enum_(m, "StepVisual_SurfaceSide",R"#()#") │ │ │ + .value("StepVisual_ssNegative",StepVisual_SurfaceSide::StepVisual_ssNegative) │ │ │ + .value("StepVisual_ssPositive",StepVisual_SurfaceSide::StepVisual_ssPositive) │ │ │ + .value("StepVisual_ssBoth",StepVisual_SurfaceSide::StepVisual_ssBoth).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"StepVisual_BoxCharacteristicSelect",R"#()#"); │ │ │ py::class_ >(m,"StepVisual_DirectionCountSelect",R"#()#"); │ │ │ py::class_ , StepShape_GeometricCurveSet >(m,"StepVisual_AnnotationFillArea",R"#()#"); │ │ ├── ./usr/share/libocp/OCP/Storage_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -99,14 +99,23 @@ │ │ │ py::module m = main_module.def_submodule("Storage", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "Storage_SolveMode",R"#()#") │ │ │ + .value("Storage_AddSolve",Storage_SolveMode::Storage_AddSolve) │ │ │ + .value("Storage_WriteSolve",Storage_SolveMode::Storage_WriteSolve) │ │ │ + .value("Storage_ReadSolve",Storage_SolveMode::Storage_ReadSolve).export_values(); │ │ │ + py::enum_(m, "Storage_OpenMode",R"#(Specifies opening modes for a file: - Storage_VSNone : no mode is specified - Storage_VSRead : the file is open for reading operations - Storage_VSWrite : the file is open for writing operations - Storage_VSReadWrite : the file is open for both reading and writing operations.)#") │ │ │ + .value("Storage_VSNone",Storage_OpenMode::Storage_VSNone) │ │ │ + .value("Storage_VSRead",Storage_OpenMode::Storage_VSRead) │ │ │ + .value("Storage_VSWrite",Storage_OpenMode::Storage_VSWrite) │ │ │ + .value("Storage_VSReadWrite",Storage_OpenMode::Storage_VSReadWrite).export_values(); │ │ │ py::enum_(m, "Storage_Error",R"#(Error codes returned by the ErrorStatus function on a Storage_Data set of data during a storage or retrieval operation : - Storage_VSOk : no problem has been detected - Storage_VSOpenError : an error has occurred when opening the driver - Storage_VSModeError : the driver has not been opened in the correct mode - Storage_VSCloseError : an error has occurred when closing the driver - Storage_VSAlreadyOpen : the driver is already open - Storage_VSNotOpen : the driver is not open - Storage_VSSectionNotFound : a section has not been found in the driver - Storage_VSWriteError : an error occurred when writing the driver - Storage_VSFormatError : the file format is wrong - Storage_VSUnknownType : a type is not known from the schema - Storage_VSTypeMismatch : trying to read a wrong type - Storage_VSInternalError : an internal error has been detected - Storage_VSExtCharParityError : an error has occurred while reading 16 bit character)#") │ │ │ .value("Storage_VSOk",Storage_Error::Storage_VSOk) │ │ │ .value("Storage_VSOpenError",Storage_Error::Storage_VSOpenError) │ │ │ .value("Storage_VSModeError",Storage_Error::Storage_VSModeError) │ │ │ .value("Storage_VSCloseError",Storage_Error::Storage_VSCloseError) │ │ │ .value("Storage_VSAlreadyOpen",Storage_Error::Storage_VSAlreadyOpen) │ │ │ .value("Storage_VSNotOpen",Storage_Error::Storage_VSNotOpen) │ │ │ @@ -114,23 +123,14 @@ │ │ │ .value("Storage_VSWriteError",Storage_Error::Storage_VSWriteError) │ │ │ .value("Storage_VSFormatError",Storage_Error::Storage_VSFormatError) │ │ │ .value("Storage_VSUnknownType",Storage_Error::Storage_VSUnknownType) │ │ │ .value("Storage_VSTypeMismatch",Storage_Error::Storage_VSTypeMismatch) │ │ │ .value("Storage_VSInternalError",Storage_Error::Storage_VSInternalError) │ │ │ .value("Storage_VSExtCharParityError",Storage_Error::Storage_VSExtCharParityError) │ │ │ .value("Storage_VSWrongFileDriver",Storage_Error::Storage_VSWrongFileDriver).export_values(); │ │ │ - py::enum_(m, "Storage_SolveMode",R"#()#") │ │ │ - .value("Storage_AddSolve",Storage_SolveMode::Storage_AddSolve) │ │ │ - .value("Storage_WriteSolve",Storage_SolveMode::Storage_WriteSolve) │ │ │ - .value("Storage_ReadSolve",Storage_SolveMode::Storage_ReadSolve).export_values(); │ │ │ - py::enum_(m, "Storage_OpenMode",R"#(Specifies opening modes for a file: - Storage_VSNone : no mode is specified - Storage_VSRead : the file is open for reading operations - Storage_VSWrite : the file is open for writing operations - Storage_VSReadWrite : the file is open for both reading and writing operations.)#") │ │ │ - .value("Storage_VSNone",Storage_OpenMode::Storage_VSNone) │ │ │ - .value("Storage_VSRead",Storage_OpenMode::Storage_VSRead) │ │ │ - .value("Storage_VSWrite",Storage_OpenMode::Storage_VSWrite) │ │ │ - .value("Storage_VSReadWrite",Storage_OpenMode::Storage_VSReadWrite).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Storage_BaseDriver : public Storage_BaseDriver{ │ │ │ public: │ │ │ using Storage_BaseDriver::Storage_BaseDriver; │ │ ├── ./usr/share/libocp/OCP/TDF_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -170,21 +170,21 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("std"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - m.attr("TDF_AttributeValidMsk") = py::cast(int(TDF_AttributeValidMsk)); │ │ │ - m.attr("TDF_AttributeBackupMsk") = py::cast(int(TDF_AttributeBackupMsk)); │ │ │ - m.attr("TDF_AttributeForgottenMsk") = py::cast(int(TDF_AttributeForgottenMsk)); │ │ │ m.attr("TDF_LabelNodeImportMsk") = py::cast(int(TDF_LabelNodeImportMsk)); │ │ │ m.attr("TDF_LabelNodeAttModMsk") = py::cast(int(TDF_LabelNodeAttModMsk)); │ │ │ m.attr("TDF_LabelNodeMayModMsk") = py::cast(int(TDF_LabelNodeMayModMsk)); │ │ │ m.attr("TDF_LabelNodeFlagsMsk") = py::cast(int(TDF_LabelNodeFlagsMsk)); │ │ │ + m.attr("TDF_AttributeValidMsk") = py::cast(int(TDF_AttributeValidMsk)); │ │ │ + m.attr("TDF_AttributeBackupMsk") = py::cast(int(TDF_AttributeBackupMsk)); │ │ │ + m.attr("TDF_AttributeForgottenMsk") = py::cast(int(TDF_AttributeForgottenMsk)); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_TDF_Attribute : public TDF_Attribute{ │ │ │ public: │ │ │ using TDF_Attribute::TDF_Attribute; │ │ ├── ./usr/share/libocp/OCP/TDataXtd_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -90,23 +90,14 @@ │ │ │ py::module m = main_module.def_submodule("TDataXtd", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "TDataXtd_GeometryEnum",R"#(The terms of this enumeration define the types of geometric shapes available.)#") │ │ │ - .value("TDataXtd_ANY_GEOM",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM) │ │ │ - .value("TDataXtd_POINT",TDataXtd_GeometryEnum::TDataXtd_POINT) │ │ │ - .value("TDataXtd_LINE",TDataXtd_GeometryEnum::TDataXtd_LINE) │ │ │ - .value("TDataXtd_CIRCLE",TDataXtd_GeometryEnum::TDataXtd_CIRCLE) │ │ │ - .value("TDataXtd_ELLIPSE",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE) │ │ │ - .value("TDataXtd_SPLINE",TDataXtd_GeometryEnum::TDataXtd_SPLINE) │ │ │ - .value("TDataXtd_PLANE",TDataXtd_GeometryEnum::TDataXtd_PLANE) │ │ │ - .value("TDataXtd_CYLINDER",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values(); │ │ │ py::enum_(m, "TDataXtd_ConstraintEnum",R"#(The terms of this enumeration define the types of available constraint. ==================)#") │ │ │ .value("TDataXtd_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_RADIUS) │ │ │ .value("TDataXtd_DIAMETER",TDataXtd_ConstraintEnum::TDataXtd_DIAMETER) │ │ │ .value("TDataXtd_MINOR_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_MINOR_RADIUS) │ │ │ .value("TDataXtd_MAJOR_RADIUS",TDataXtd_ConstraintEnum::TDataXtd_MAJOR_RADIUS) │ │ │ .value("TDataXtd_TANGENT",TDataXtd_ConstraintEnum::TDataXtd_TANGENT) │ │ │ .value("TDataXtd_PARALLEL",TDataXtd_ConstraintEnum::TDataXtd_PARALLEL) │ │ │ @@ -126,14 +117,23 @@ │ │ │ .value("TDataXtd_MATE",TDataXtd_ConstraintEnum::TDataXtd_MATE) │ │ │ .value("TDataXtd_ALIGN_FACES",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_FACES) │ │ │ .value("TDataXtd_ALIGN_AXES",TDataXtd_ConstraintEnum::TDataXtd_ALIGN_AXES) │ │ │ .value("TDataXtd_AXES_ANGLE",TDataXtd_ConstraintEnum::TDataXtd_AXES_ANGLE) │ │ │ .value("TDataXtd_FACES_ANGLE",TDataXtd_ConstraintEnum::TDataXtd_FACES_ANGLE) │ │ │ .value("TDataXtd_ROUND",TDataXtd_ConstraintEnum::TDataXtd_ROUND) │ │ │ .value("TDataXtd_OFFSET",TDataXtd_ConstraintEnum::TDataXtd_OFFSET).export_values(); │ │ │ + py::enum_(m, "TDataXtd_GeometryEnum",R"#(The terms of this enumeration define the types of geometric shapes available.)#") │ │ │ + .value("TDataXtd_ANY_GEOM",TDataXtd_GeometryEnum::TDataXtd_ANY_GEOM) │ │ │ + .value("TDataXtd_POINT",TDataXtd_GeometryEnum::TDataXtd_POINT) │ │ │ + .value("TDataXtd_LINE",TDataXtd_GeometryEnum::TDataXtd_LINE) │ │ │ + .value("TDataXtd_CIRCLE",TDataXtd_GeometryEnum::TDataXtd_CIRCLE) │ │ │ + .value("TDataXtd_ELLIPSE",TDataXtd_GeometryEnum::TDataXtd_ELLIPSE) │ │ │ + .value("TDataXtd_SPLINE",TDataXtd_GeometryEnum::TDataXtd_SPLINE) │ │ │ + .value("TDataXtd_PLANE",TDataXtd_GeometryEnum::TDataXtd_PLANE) │ │ │ + .value("TDataXtd_CYLINDER",TDataXtd_GeometryEnum::TDataXtd_CYLINDER).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_TDataXtd_Pattern : public TDataXtd_Pattern{ │ │ │ public: │ │ │ using TDataXtd_Pattern::TDataXtd_Pattern; │ │ ├── ./usr/share/libocp/OCP/TNaming_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -166,34 +166,34 @@ │ │ │ py::module m = main_module.def_submodule("TNaming", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "TNaming_Evolution",R"#(Defines the type of evolution in old shape - new shape pairs. The definitions - in the form of the terms of the enumeration - are needed by the TNaming_NamedShape attribute and indicate what entities this attribute records as follows: - PRIMITIVE - New entities; in each pair, old shape is a null shape and new shape is a created entity. - GENERATED - Entities created from other entities; in each pair, old shape is the generator and new shape is the created entity. - MODIFY - Split or merged entities, in each pair, old shape is the entity before the operation and new shape is the new entity after the operation. - DELETE - Deletion of entities; in each pair, old shape is a deleted entity and new shape is null. - SELECTED - Named topological entities; in each pair, the new shape is a named entity and the old shape is not used.)#") │ │ │ - .value("TNaming_PRIMITIVE",TNaming_Evolution::TNaming_PRIMITIVE) │ │ │ - .value("TNaming_GENERATED",TNaming_Evolution::TNaming_GENERATED) │ │ │ - .value("TNaming_MODIFY",TNaming_Evolution::TNaming_MODIFY) │ │ │ - .value("TNaming_DELETE",TNaming_Evolution::TNaming_DELETE) │ │ │ - .value("TNaming_REPLACE",TNaming_Evolution::TNaming_REPLACE) │ │ │ - .value("TNaming_SELECTED",TNaming_Evolution::TNaming_SELECTED).export_values(); │ │ │ py::enum_(m, "TNaming_NameType",R"#(to store naming characteristcs)#") │ │ │ .value("TNaming_UNKNOWN",TNaming_NameType::TNaming_UNKNOWN) │ │ │ .value("TNaming_IDENTITY",TNaming_NameType::TNaming_IDENTITY) │ │ │ .value("TNaming_MODIFUNTIL",TNaming_NameType::TNaming_MODIFUNTIL) │ │ │ .value("TNaming_GENERATION",TNaming_NameType::TNaming_GENERATION) │ │ │ .value("TNaming_INTERSECTION",TNaming_NameType::TNaming_INTERSECTION) │ │ │ .value("TNaming_UNION",TNaming_NameType::TNaming_UNION) │ │ │ .value("TNaming_SUBSTRACTION",TNaming_NameType::TNaming_SUBSTRACTION) │ │ │ .value("TNaming_CONSTSHAPE",TNaming_NameType::TNaming_CONSTSHAPE) │ │ │ .value("TNaming_FILTERBYNEIGHBOURGS",TNaming_NameType::TNaming_FILTERBYNEIGHBOURGS) │ │ │ .value("TNaming_ORIENTATION",TNaming_NameType::TNaming_ORIENTATION) │ │ │ .value("TNaming_WIREIN",TNaming_NameType::TNaming_WIREIN) │ │ │ .value("TNaming_SHELLIN",TNaming_NameType::TNaming_SHELLIN).export_values(); │ │ │ + py::enum_(m, "TNaming_Evolution",R"#(Defines the type of evolution in old shape - new shape pairs. The definitions - in the form of the terms of the enumeration - are needed by the TNaming_NamedShape attribute and indicate what entities this attribute records as follows: - PRIMITIVE - New entities; in each pair, old shape is a null shape and new shape is a created entity. - GENERATED - Entities created from other entities; in each pair, old shape is the generator and new shape is the created entity. - MODIFY - Split or merged entities, in each pair, old shape is the entity before the operation and new shape is the new entity after the operation. - DELETE - Deletion of entities; in each pair, old shape is a deleted entity and new shape is null. - SELECTED - Named topological entities; in each pair, the new shape is a named entity and the old shape is not used.)#") │ │ │ + .value("TNaming_PRIMITIVE",TNaming_Evolution::TNaming_PRIMITIVE) │ │ │ + .value("TNaming_GENERATED",TNaming_Evolution::TNaming_GENERATED) │ │ │ + .value("TNaming_MODIFY",TNaming_Evolution::TNaming_MODIFY) │ │ │ + .value("TNaming_DELETE",TNaming_Evolution::TNaming_DELETE) │ │ │ + .value("TNaming_REPLACE",TNaming_Evolution::TNaming_REPLACE) │ │ │ + .value("TNaming_SELECTED",TNaming_Evolution::TNaming_SELECTED).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"TNaming",R"#(A topological attribute can be seen as a hook into the topological structure. To this hook, data can be attached and references defined. It is used for keeping and access to topological objects and their evolution. All topological objects are stored in the one user-protected TNaming_UsedShapes attribute at the root label of the data framework. This attribute contains map with all topological shapes, used in this document. To all other labels TNaming_NamedShape attribute can be added. This attribute contains references (hooks) to shapes from the TNaming_UsedShapes attribute and evolution of these shapes. TNaming_NamedShape attribute contains a set of pairs of hooks: old shape and new shape (see the figure below). It allows not only get the topological shapes by the labels, but also trace evolution of the shapes and correctly resolve dependent shapes by the changed one. If shape is just-created, then the old shape for accorded named shape is an empty shape. If a shape is deleted, then the new shape in this named shape is empty. Different algorithms may dispose sub-shapes of the result shape at the individual label depending on necessity: - If a sub-shape must have some extra attributes (material of each face or color of each edge). In this case a specific sub-shape is placed to the separate label (usually, sub-label of the result shape label) with all attributes of this sub-shape. - If topological naming is needed, a necessary and sufficient (for selected sub-shapes identification) set of sub-shapes is placed to the child labels of the result shape label. As usual, as far as basic solids and closed shells are concerned, all faces of the shape are disposed. Edges and vertices sub-shapes can be identified as intersection of contiguous faces. Modified/generated shapes may be placed to one named shape and identified as this named shape and source named shape that also can be identified with used algorithms. TNaming_NamedShape may contain a few pairs of hooks with the same evolution. In this case topology shape, which belongs to the named shape, is a compound of new shapes. The data model contains both the topology and the hooks, and functions handle both topological entities and hooks. Consider the case of a box function, which creates a solid with six faces and six hooks. Each hook is attached to a face. If you want, you can also have this function create hooks for edges and vertices as well as for faces. For the sake of simplicity though, let's limit the example. Not all functions can define explicit hooks for all topological entities they create, but all topological entities can be turned into hooks when necessary. This is where topological naming is necessary.)#"); │ │ │ py::class_ >(m,"TNaming_Builder",R"#(A tool to create and maintain topological attributes. Constructor creates an empty TNaming_NamedShape attribute at the given label. It allows adding "old shape" and "new shape" pairs with the specified evolution to this named shape. One evolution type per one builder must be used.)#"); │ │ │ py::class_ >(m,"TNaming_CopyShape",R"#()#"); │ │ ├── ./usr/share/libocp/OCP/TopAbs_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -34,19 +34,14 @@ │ │ │ py::module m = main_module.def_submodule("TopAbs", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "TopAbs_State",R"#(Identifies the position of a vertex or a set of vertices relative to a region of a shape. The figure shown above illustrates the states of vertices found in various parts of the edge relative to the face which it intersects.)#") │ │ │ - .value("TopAbs_IN",TopAbs_State::TopAbs_IN) │ │ │ - .value("TopAbs_OUT",TopAbs_State::TopAbs_OUT) │ │ │ - .value("TopAbs_ON",TopAbs_State::TopAbs_ON) │ │ │ - .value("TopAbs_UNKNOWN",TopAbs_State::TopAbs_UNKNOWN).export_values(); │ │ │ py::enum_(m, "TopAbs_Orientation",R"#(Identifies the orientation of a topological shape. Orientation can represent a relation between two entities, or it can apply to a shape in its own right. When used to describe a relation between two shapes, orientation allows you to use the underlying entity in either direction. For example on a curve which is oriented FORWARD (say from left to right) you can have both a FORWARD and a REVERSED edge. The FORWARD edge will be oriented from left to right, and the REVERSED edge from right to left. In this way, you share the underlying entity. In other words, two faces of a cube can share an edge, and can also be used to build compound shapes. For each case in which an element is used as the boundary of a geometric domain of a higher dimension, this element defines two local regions of which one is arbitrarily considered as the default region. A change in orientation implies a switch of default region. This allows you to apply changes of orientation to the shape as a whole.)#") │ │ │ .value("TopAbs_FORWARD",TopAbs_Orientation::TopAbs_FORWARD) │ │ │ .value("TopAbs_REVERSED",TopAbs_Orientation::TopAbs_REVERSED) │ │ │ .value("TopAbs_INTERNAL",TopAbs_Orientation::TopAbs_INTERNAL) │ │ │ .value("TopAbs_EXTERNAL",TopAbs_Orientation::TopAbs_EXTERNAL).export_values(); │ │ │ py::enum_(m, "TopAbs_ShapeEnum",R"#(Identifies various topological shapes. This enumeration allows you to use dynamic typing of shapes. The values are listed in order of complexity, from the most complex to the most simple i.e. COMPOUND > COMPSOLID > SOLID > .... > VERTEX > SHAPE. Any shape can contain simpler shapes in its definition. Abstract topological data structure describes a basic entity, the shape (present in this enumeration as the SHAPE value), which can be divided into the following component topologies: - COMPOUND: A group of any of the shapes below. - COMPSOLID: A set of solids connected by their faces. This expands the notions of WIRE and SHELL to solids. - SOLID: A part of 3D space bounded by shells. - SHELL: A set of faces connected by some of the edges of their wire boundaries. A shell can be open or closed. - FACE: Part of a plane (in 2D geometry) or a surface (in 3D geometry) bounded by a closed wire. Its geometry is constrained (trimmed) by contours. - WIRE: A sequence of edges connected by their vertices. It can be open or closed depending on whether the edges are linked or not. - EDGE: A single dimensional shape corresponding to a curve, and bound by a vertex at each extremity. - VERTEX: A zero-dimensional shape corresponding to a point in geometry.)#") │ │ │ .value("TopAbs_COMPOUND",TopAbs_ShapeEnum::TopAbs_COMPOUND) │ │ │ @@ -54,14 +49,19 @@ │ │ │ .value("TopAbs_SOLID",TopAbs_ShapeEnum::TopAbs_SOLID) │ │ │ .value("TopAbs_SHELL",TopAbs_ShapeEnum::TopAbs_SHELL) │ │ │ .value("TopAbs_FACE",TopAbs_ShapeEnum::TopAbs_FACE) │ │ │ .value("TopAbs_WIRE",TopAbs_ShapeEnum::TopAbs_WIRE) │ │ │ .value("TopAbs_EDGE",TopAbs_ShapeEnum::TopAbs_EDGE) │ │ │ .value("TopAbs_VERTEX",TopAbs_ShapeEnum::TopAbs_VERTEX) │ │ │ .value("TopAbs_SHAPE",TopAbs_ShapeEnum::TopAbs_SHAPE).export_values(); │ │ │ + py::enum_(m, "TopAbs_State",R"#(Identifies the position of a vertex or a set of vertices relative to a region of a shape. The figure shown above illustrates the states of vertices found in various parts of the edge relative to the face which it intersects.)#") │ │ │ + .value("TopAbs_IN",TopAbs_State::TopAbs_IN) │ │ │ + .value("TopAbs_OUT",TopAbs_State::TopAbs_OUT) │ │ │ + .value("TopAbs_ON",TopAbs_State::TopAbs_ON) │ │ │ + .value("TopAbs_UNKNOWN",TopAbs_State::TopAbs_UNKNOWN).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"TopAbs",R"#(This package gives resources for Topology oriented applications such as : Topological Data Structure, Topological Algorithms.)#"); │ │ │ │ │ │ }; │ │ ├── ./usr/share/libocp/OCP/TopOpeBRepDS_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -202,34 +202,34 @@ │ │ │ py::module m = main_module.def_submodule("TopOpeBRepDS", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "TopOpeBRepDS_CheckStatus",R"#()#") │ │ │ - .value("TopOpeBRepDS_OK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK) │ │ │ - .value("TopOpeBRepDS_NOK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values(); │ │ │ - py::enum_(m, "TopOpeBRepDS_Config",R"#()#") │ │ │ - .value("TopOpeBRepDS_UNSHGEOMETRY",TopOpeBRepDS_Config::TopOpeBRepDS_UNSHGEOMETRY) │ │ │ - .value("TopOpeBRepDS_SAMEORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_SAMEORIENTED) │ │ │ - .value("TopOpeBRepDS_DIFFORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_DIFFORIENTED).export_values(); │ │ │ py::enum_(m, "TopOpeBRepDS_Kind",R"#(different types of objects in DataStructure)#") │ │ │ .value("TopOpeBRepDS_POINT",TopOpeBRepDS_Kind::TopOpeBRepDS_POINT) │ │ │ .value("TopOpeBRepDS_CURVE",TopOpeBRepDS_Kind::TopOpeBRepDS_CURVE) │ │ │ .value("TopOpeBRepDS_SURFACE",TopOpeBRepDS_Kind::TopOpeBRepDS_SURFACE) │ │ │ .value("TopOpeBRepDS_VERTEX",TopOpeBRepDS_Kind::TopOpeBRepDS_VERTEX) │ │ │ .value("TopOpeBRepDS_EDGE",TopOpeBRepDS_Kind::TopOpeBRepDS_EDGE) │ │ │ .value("TopOpeBRepDS_WIRE",TopOpeBRepDS_Kind::TopOpeBRepDS_WIRE) │ │ │ .value("TopOpeBRepDS_FACE",TopOpeBRepDS_Kind::TopOpeBRepDS_FACE) │ │ │ .value("TopOpeBRepDS_SHELL",TopOpeBRepDS_Kind::TopOpeBRepDS_SHELL) │ │ │ .value("TopOpeBRepDS_SOLID",TopOpeBRepDS_Kind::TopOpeBRepDS_SOLID) │ │ │ .value("TopOpeBRepDS_COMPSOLID",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPSOLID) │ │ │ .value("TopOpeBRepDS_COMPOUND",TopOpeBRepDS_Kind::TopOpeBRepDS_COMPOUND) │ │ │ .value("TopOpeBRepDS_UNKNOWN",TopOpeBRepDS_Kind::TopOpeBRepDS_UNKNOWN).export_values(); │ │ │ + py::enum_(m, "TopOpeBRepDS_Config",R"#()#") │ │ │ + .value("TopOpeBRepDS_UNSHGEOMETRY",TopOpeBRepDS_Config::TopOpeBRepDS_UNSHGEOMETRY) │ │ │ + .value("TopOpeBRepDS_SAMEORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_SAMEORIENTED) │ │ │ + .value("TopOpeBRepDS_DIFFORIENTED",TopOpeBRepDS_Config::TopOpeBRepDS_DIFFORIENTED).export_values(); │ │ │ + py::enum_(m, "TopOpeBRepDS_CheckStatus",R"#()#") │ │ │ + .value("TopOpeBRepDS_OK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_OK) │ │ │ + .value("TopOpeBRepDS_NOK",TopOpeBRepDS_CheckStatus::TopOpeBRepDS_NOK).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"TopOpeBRepDS",R"#(This package provides services used by the TopOpeBRepBuild package performing topological operations on the BRep data structure.)#"); │ │ │ py::class_ >(m,"TopOpeBRepDS_BuildTool",R"#(Provides a Tool to build topologies. Used to instantiate the Builder algorithm.)#"); │ │ │ py::class_ >(m,"TopOpeBRepDS_Curve",R"#(A Geom curve and a tolerance.)#"); │ │ ├── ./usr/share/libocp/OCP/TopoDSToStep_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -116,39 +116,39 @@ │ │ │ py::module m = main_module.def_submodule("TopoDSToStep", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "TopoDSToStep_MakeWireError",R"#()#") │ │ │ - .value("TopoDSToStep_WireDone",TopoDSToStep_MakeWireError::TopoDSToStep_WireDone) │ │ │ - .value("TopoDSToStep_NonManifoldWire",TopoDSToStep_MakeWireError::TopoDSToStep_NonManifoldWire) │ │ │ - .value("TopoDSToStep_WireOther",TopoDSToStep_MakeWireError::TopoDSToStep_WireOther).export_values(); │ │ │ + py::enum_(m, "TopoDSToStep_BuilderError",R"#()#") │ │ │ + .value("TopoDSToStep_BuilderDone",TopoDSToStep_BuilderError::TopoDSToStep_BuilderDone) │ │ │ + .value("TopoDSToStep_NoFaceMapped",TopoDSToStep_BuilderError::TopoDSToStep_NoFaceMapped) │ │ │ + .value("TopoDSToStep_BuilderOther",TopoDSToStep_BuilderError::TopoDSToStep_BuilderOther).export_values(); │ │ │ py::enum_(m, "TopoDSToStep_MakeEdgeError",R"#()#") │ │ │ .value("TopoDSToStep_EdgeDone",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeDone) │ │ │ .value("TopoDSToStep_NonManifoldEdge",TopoDSToStep_MakeEdgeError::TopoDSToStep_NonManifoldEdge) │ │ │ .value("TopoDSToStep_EdgeOther",TopoDSToStep_MakeEdgeError::TopoDSToStep_EdgeOther).export_values(); │ │ │ py::enum_(m, "TopoDSToStep_FacetedError",R"#()#") │ │ │ .value("TopoDSToStep_FacetedDone",TopoDSToStep_FacetedError::TopoDSToStep_FacetedDone) │ │ │ .value("TopoDSToStep_SurfaceNotPlane",TopoDSToStep_FacetedError::TopoDSToStep_SurfaceNotPlane) │ │ │ .value("TopoDSToStep_PCurveNotLinear",TopoDSToStep_FacetedError::TopoDSToStep_PCurveNotLinear).export_values(); │ │ │ + py::enum_(m, "TopoDSToStep_MakeWireError",R"#()#") │ │ │ + .value("TopoDSToStep_WireDone",TopoDSToStep_MakeWireError::TopoDSToStep_WireDone) │ │ │ + .value("TopoDSToStep_NonManifoldWire",TopoDSToStep_MakeWireError::TopoDSToStep_NonManifoldWire) │ │ │ + .value("TopoDSToStep_WireOther",TopoDSToStep_MakeWireError::TopoDSToStep_WireOther).export_values(); │ │ │ + py::enum_(m, "TopoDSToStep_MakeVertexError",R"#()#") │ │ │ + .value("TopoDSToStep_VertexDone",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone) │ │ │ + .value("TopoDSToStep_VertexOther",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values(); │ │ │ py::enum_(m, "TopoDSToStep_MakeFaceError",R"#()#") │ │ │ .value("TopoDSToStep_FaceDone",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceDone) │ │ │ .value("TopoDSToStep_InfiniteFace",TopoDSToStep_MakeFaceError::TopoDSToStep_InfiniteFace) │ │ │ .value("TopoDSToStep_NonManifoldFace",TopoDSToStep_MakeFaceError::TopoDSToStep_NonManifoldFace) │ │ │ .value("TopoDSToStep_NoWireMapped",TopoDSToStep_MakeFaceError::TopoDSToStep_NoWireMapped) │ │ │ .value("TopoDSToStep_FaceOther",TopoDSToStep_MakeFaceError::TopoDSToStep_FaceOther).export_values(); │ │ │ - py::enum_(m, "TopoDSToStep_MakeVertexError",R"#()#") │ │ │ - .value("TopoDSToStep_VertexDone",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexDone) │ │ │ - .value("TopoDSToStep_VertexOther",TopoDSToStep_MakeVertexError::TopoDSToStep_VertexOther).export_values(); │ │ │ - py::enum_(m, "TopoDSToStep_BuilderError",R"#()#") │ │ │ - .value("TopoDSToStep_BuilderDone",TopoDSToStep_BuilderError::TopoDSToStep_BuilderDone) │ │ │ - .value("TopoDSToStep_NoFaceMapped",TopoDSToStep_BuilderError::TopoDSToStep_NoFaceMapped) │ │ │ - .value("TopoDSToStep_BuilderOther",TopoDSToStep_BuilderError::TopoDSToStep_BuilderOther).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"TopoDSToStep",R"#(This package implements the mapping between CAS.CAD Shape representation and AP214 Shape Representation. The target schema is pms_c4 (a subset of AP214))#"); │ │ │ py::class_ >(m,"TopoDSToStep_FacetedTool",R"#(This Tool Class provides Information about Faceted Shapes to be mapped to STEP.)#"); │ │ │ py::class_ >(m,"TopoDSToStep_Root",R"#(This class implements the common services for all classes of TopoDSToStep which report error.)#"); │ │ ├── ./usr/share/libocp/OCP/Transfer_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -145,23 +145,23 @@ │ │ │ // enums │ │ │ py::enum_(m, "Transfer_StatusExec",R"#(execution status of an individual transfer (see Transcriptor))#") │ │ │ .value("Transfer_StatusInitial",Transfer_StatusExec::Transfer_StatusInitial) │ │ │ .value("Transfer_StatusRun",Transfer_StatusExec::Transfer_StatusRun) │ │ │ .value("Transfer_StatusDone",Transfer_StatusExec::Transfer_StatusDone) │ │ │ .value("Transfer_StatusError",Transfer_StatusExec::Transfer_StatusError) │ │ │ .value("Transfer_StatusLoop",Transfer_StatusExec::Transfer_StatusLoop).export_values(); │ │ │ + py::enum_(m, "Transfer_StatusResult",R"#(result status of transferring an entity (see Transcriptor))#") │ │ │ + .value("Transfer_StatusVoid",Transfer_StatusResult::Transfer_StatusVoid) │ │ │ + .value("Transfer_StatusDefined",Transfer_StatusResult::Transfer_StatusDefined) │ │ │ + .value("Transfer_StatusUsed",Transfer_StatusResult::Transfer_StatusUsed).export_values(); │ │ │ py::enum_(m, "Transfer_UndefMode",R"#(used on processing Undefined Entities (see TransferOutput))#") │ │ │ .value("Transfer_UndefIgnore",Transfer_UndefMode::Transfer_UndefIgnore) │ │ │ .value("Transfer_UndefFailure",Transfer_UndefMode::Transfer_UndefFailure) │ │ │ .value("Transfer_UndefContent",Transfer_UndefMode::Transfer_UndefContent) │ │ │ .value("Transfer_UndefUser",Transfer_UndefMode::Transfer_UndefUser).export_values(); │ │ │ - py::enum_(m, "Transfer_StatusResult",R"#(result status of transferring an entity (see Transcriptor))#") │ │ │ - .value("Transfer_StatusVoid",Transfer_StatusResult::Transfer_StatusVoid) │ │ │ - .value("Transfer_StatusDefined",Transfer_StatusResult::Transfer_StatusDefined) │ │ │ - .value("Transfer_StatusUsed",Transfer_StatusResult::Transfer_StatusUsed).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ class Py_Transfer_Binder : public Transfer_Binder{ │ │ │ public: │ │ │ using Transfer_Binder::Transfer_Binder; │ │ ├── ./usr/share/libocp/OCP/V3d_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -78,19 +78,14 @@ │ │ │ py::module m = main_module.def_submodule("V3d", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "V3d_StereoDumpOptions",R"#(Options to be used with image dumping. Notice that the value will have no effect with disabled stereo output.)#") │ │ │ - .value("V3d_SDO_MONO",V3d_StereoDumpOptions::V3d_SDO_MONO) │ │ │ - .value("V3d_SDO_LEFT_EYE",V3d_StereoDumpOptions::V3d_SDO_LEFT_EYE) │ │ │ - .value("V3d_SDO_RIGHT_EYE",V3d_StereoDumpOptions::V3d_SDO_RIGHT_EYE) │ │ │ - .value("V3d_SDO_BLENDED",V3d_StereoDumpOptions::V3d_SDO_BLENDED).export_values(); │ │ │ py::enum_(m, "V3d_TypeOfOrientation",R"#(Determines the type of orientation as a combination of standard DX/DY/DZ directions. This enumeration defines a model orientation looking towards the user's eye, which is an opposition to Camera main direction. For example, V3d_Xneg defines +X Camera main direction.)#") │ │ │ .value("V3d_Xpos",V3d_TypeOfOrientation::V3d_Xpos) │ │ │ .value("V3d_Ypos",V3d_TypeOfOrientation::V3d_Ypos) │ │ │ .value("V3d_Zpos",V3d_TypeOfOrientation::V3d_Zpos) │ │ │ .value("V3d_Xneg",V3d_TypeOfOrientation::V3d_Xneg) │ │ │ .value("V3d_Yneg",V3d_TypeOfOrientation::V3d_Yneg) │ │ │ .value("V3d_Zneg",V3d_TypeOfOrientation::V3d_Zneg) │ │ │ @@ -126,21 +121,26 @@ │ │ │ .value("V3d_TypeOfOrientation_Yup_AxoRight",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_AxoRight) │ │ │ .value("V3d_TypeOfOrientation_Yup_Front",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Front) │ │ │ .value("V3d_TypeOfOrientation_Yup_Back",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Back) │ │ │ .value("V3d_TypeOfOrientation_Yup_Top",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Top) │ │ │ .value("V3d_TypeOfOrientation_Yup_Bottom",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Bottom) │ │ │ .value("V3d_TypeOfOrientation_Yup_Left",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Left) │ │ │ .value("V3d_TypeOfOrientation_Yup_Right",V3d_TypeOfOrientation::V3d_TypeOfOrientation_Yup_Right).export_values(); │ │ │ - py::enum_(m, "V3d_TypeOfView",R"#(Defines the type of projection of the view.)#") │ │ │ - .value("V3d_ORTHOGRAPHIC",V3d_TypeOfView::V3d_ORTHOGRAPHIC) │ │ │ - .value("V3d_PERSPECTIVE",V3d_TypeOfView::V3d_PERSPECTIVE).export_values(); │ │ │ + py::enum_(m, "V3d_StereoDumpOptions",R"#(Options to be used with image dumping. Notice that the value will have no effect with disabled stereo output.)#") │ │ │ + .value("V3d_SDO_MONO",V3d_StereoDumpOptions::V3d_SDO_MONO) │ │ │ + .value("V3d_SDO_LEFT_EYE",V3d_StereoDumpOptions::V3d_SDO_LEFT_EYE) │ │ │ + .value("V3d_SDO_RIGHT_EYE",V3d_StereoDumpOptions::V3d_SDO_RIGHT_EYE) │ │ │ + .value("V3d_SDO_BLENDED",V3d_StereoDumpOptions::V3d_SDO_BLENDED).export_values(); │ │ │ py::enum_(m, "V3d_TypeOfAxe",R"#(Determines the axis type through the coordinates X, Y, Z.)#") │ │ │ .value("V3d_X",V3d_TypeOfAxe::V3d_X) │ │ │ .value("V3d_Y",V3d_TypeOfAxe::V3d_Y) │ │ │ .value("V3d_Z",V3d_TypeOfAxe::V3d_Z).export_values(); │ │ │ + py::enum_(m, "V3d_TypeOfView",R"#(Defines the type of projection of the view.)#") │ │ │ + .value("V3d_ORTHOGRAPHIC",V3d_TypeOfView::V3d_ORTHOGRAPHIC) │ │ │ + .value("V3d_PERSPECTIVE",V3d_TypeOfView::V3d_PERSPECTIVE).export_values(); │ │ │ py::enum_(m, "V3d_TypeOfVisualization",R"#(Determines the type of visualization in the view, either WIREFRAME or ZBUFFER (shading).)#") │ │ │ .value("V3d_WIREFRAME",V3d_TypeOfVisualization::V3d_WIREFRAME) │ │ │ .value("V3d_ZBUFFER",V3d_TypeOfVisualization::V3d_ZBUFFER).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ ├── ./usr/share/libocp/OCP/XCAFDimTolObjects_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -71,70 +71,14 @@ │ │ │ py::module m = main_module.def_submodule("XCAFDimTolObjects", R"#()#"); │ │ │ │ │ │ // add namespaces as submodules │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ - py::enum_(m, "XCAFDimTolObjects_DimensionType",R"#(Defines types of dimension)#") │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_None",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_None) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_CurvedDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_CurvedDistance) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_Angular",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Angular) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_Oriented",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Oriented) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Location_WithPath",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_WithPath) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_CurveLength",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_CurveLength) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_Diameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Diameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_SphericalDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalDiameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_Radius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Radius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_SphericalRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalRadius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_Thickness",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Thickness) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_Angular",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Angular) │ │ │ - .value("XCAFDimTolObjects_DimensionType_Size_WithPath",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_WithPath) │ │ │ - .value("XCAFDimTolObjects_DimensionType_CommonLabel",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_CommonLabel) │ │ │ - .value("XCAFDimTolObjects_DimensionType_DimensionPresentation",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_DimensionPresentation).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumSingleModif",R"#(Defines modifirs)#") │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_AnyCrossSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_AnyCrossSection) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Basic",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Basic) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_ContactingFeature",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_ContactingFeature) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_DistanceVariable",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DistanceVariable) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_FreeState",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_FreeState) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Line",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Line) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MajorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MajorDiameter) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_MinorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MinorDiameter) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Orientation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Orientation) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_PitchDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_PitchDiameter) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Plane",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Plane) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Point",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Point) │ │ │ - .value("XCAFDimTolObjects_DatumSingleModif_Translation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Translation).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_GeomToleranceModif",R"#(Defines modifirs)#") │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Any_Cross_Section) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Common_Zone",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Common_Zone) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Each_Radial_Element) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Free_State",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Free_State) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Least_Material_Requirement) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Line_Element",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Line_Element) │ │ │ @@ -145,27 +89,43 @@ │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Pitch_Diameter) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Reciprocity_Requirement) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Separate_Requirement) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Statistical_Tolerance) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_Tangent_Plane) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_All_Around",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Around) │ │ │ .value("XCAFDimTolObjects_GeomToleranceModif_All_Over",XCAFDimTolObjects_GeomToleranceModif::XCAFDimTolObjects_GeomToleranceModif_All_Over).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceMatReqModif",R"#(Defines types of material requirement)#") │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_None",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None) │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_M",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M) │ │ │ - .value("XCAFDimTolObjects_GeomToleranceMatReqModif_L",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_GeomToleranceZoneModif",R"#(Defines types of zone)#") │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_None",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None) │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_Projected",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected) │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_Runout",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout) │ │ │ - .value("XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_GeomToleranceTypeValue",R"#(Defines types of value of tolerane)#") │ │ │ .value("XCAFDimTolObjects_GeomToleranceTypeValue_None",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_None) │ │ │ .value("XCAFDimTolObjects_GeomToleranceTypeValue_Diameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_Diameter) │ │ │ .value("XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter",XCAFDimTolObjects_GeomToleranceTypeValue::XCAFDimTolObjects_GeomToleranceTypeValue_SphericalDiameter).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_DimensionGrade",R"#(Defines value of grade)#") │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT01",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT01) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT0",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT0) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT1",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT1) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT2",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT2) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT3",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT3) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT4",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT4) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT5",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT5) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT6",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT6) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT7",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT7) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT8",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT8) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT9",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT9) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT10",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT10) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT11",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT11) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT12",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT12) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT13",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT13) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT14",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT14) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT15",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT15) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT16",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT16) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT17",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT17) │ │ │ + .value("XCAFDimTolObjects_DimensionGrade_IT18",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT18).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_ToleranceZoneAffectedPlane",R"#(Defines types of tolerance zone affected plane)#") │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_None",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None) │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection) │ │ │ + .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_GeomToleranceType",R"#(Defines types of geom tolerance)#") │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_None",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_None) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Angularity",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Angularity) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_CircularRunout",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularRunout) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_CircularityOrRoundness) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Coaxiality",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Coaxiality) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Concentricity",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Concentricity) │ │ │ @@ -175,14 +135,25 @@ │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Perpendicularity",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Perpendicularity) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Position",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Position) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_ProfileOfLine",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfLine) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_ProfileOfSurface) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Straightness",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Straightness) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_Symmetry",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_Symmetry) │ │ │ .value("XCAFDimTolObjects_GeomToleranceType_TotalRunout",XCAFDimTolObjects_GeomToleranceType::XCAFDimTolObjects_GeomToleranceType_TotalRunout).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumTargetType",R"#(Defines types of dimension)#") │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Point",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point) │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Line",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line) │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Rectangle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle) │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Circle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle) │ │ │ + .value("XCAFDimTolObjects_DatumTargetType_Area",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_AngularQualifier",R"#(Defines types of qualifier for angular dimensions)#") │ │ │ + .value("XCAFDimTolObjects_AngularQualifier_None",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_None) │ │ │ + .value("XCAFDimTolObjects_AngularQualifier_Small",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Small) │ │ │ + .value("XCAFDimTolObjects_AngularQualifier_Large",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Large) │ │ │ + .value("XCAFDimTolObjects_AngularQualifier_Equal",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Equal).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionModif",R"#(Defines modifirs)#") │ │ │ .value("XCAFDimTolObjects_DimensionModif_ControlledRadius",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ControlledRadius) │ │ │ .value("XCAFDimTolObjects_DimensionModif_Square",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Square) │ │ │ .value("XCAFDimTolObjects_DimensionModif_StatisticalTolerance",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_StatisticalTolerance) │ │ │ .value("XCAFDimTolObjects_DimensionModif_ContinuousFeature",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_ContinuousFeature) │ │ │ .value("XCAFDimTolObjects_DimensionModif_TwoPointSize",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_TwoPointSize) │ │ │ .value("XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_LocalSizeDefinedBySphere) │ │ │ @@ -200,61 +171,56 @@ │ │ │ .value("XCAFDimTolObjects_DimensionModif_RangeOfSizes",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_RangeOfSizes) │ │ │ .value("XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyRestrictedPortionOfFeature) │ │ │ .value("XCAFDimTolObjects_DimensionModif_AnyCrossSection",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_AnyCrossSection) │ │ │ .value("XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_SpecificFixedCrossSection) │ │ │ .value("XCAFDimTolObjects_DimensionModif_CommonTolerance",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_CommonTolerance) │ │ │ .value("XCAFDimTolObjects_DimensionModif_FreeStateCondition",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_FreeStateCondition) │ │ │ .value("XCAFDimTolObjects_DimensionModif_Between",XCAFDimTolObjects_DimensionModif::XCAFDimTolObjects_DimensionModif_Between).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumModifWithValue",R"#(Defines modifirs)#") │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_None",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None) │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical) │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Distance",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance) │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Projected",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected) │ │ │ - .value("XCAFDimTolObjects_DatumModifWithValue_Spherical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_DatumTargetType",R"#(Defines types of dimension)#") │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Point",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Point) │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Line",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Line) │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Rectangle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Rectangle) │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Circle",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Circle) │ │ │ - .value("XCAFDimTolObjects_DatumTargetType_Area",XCAFDimTolObjects_DatumTargetType::XCAFDimTolObjects_DatumTargetType_Area).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionQualifier",R"#(Defines types of qualifier)#") │ │ │ .value("XCAFDimTolObjects_DimensionQualifier_None",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_None) │ │ │ .value("XCAFDimTolObjects_DimensionQualifier_Min",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Min) │ │ │ .value("XCAFDimTolObjects_DimensionQualifier_Max",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Max) │ │ │ .value("XCAFDimTolObjects_DimensionQualifier_Avg",XCAFDimTolObjects_DimensionQualifier::XCAFDimTolObjects_DimensionQualifier_Avg).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_DimensionGrade",R"#(Defines value of grade)#") │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT01",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT01) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT0",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT0) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT1",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT1) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT2",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT2) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT3",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT3) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT4",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT4) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT5",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT5) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT6",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT6) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT7",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT7) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT8",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT8) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT9",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT9) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT10",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT10) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT11",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT11) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT12",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT12) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT13",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT13) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT14",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT14) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT15",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT15) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT16",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT16) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT17",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT17) │ │ │ - .value("XCAFDimTolObjects_DimensionGrade_IT18",XCAFDimTolObjects_DimensionGrade::XCAFDimTolObjects_DimensionGrade_IT18).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_ToleranceZoneAffectedPlane",R"#(Defines types of tolerance zone affected plane)#") │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_None",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_None) │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Intersection) │ │ │ - .value("XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation",XCAFDimTolObjects_ToleranceZoneAffectedPlane::XCAFDimTolObjects_ToleranceZoneAffectedPlane_Orientation).export_values(); │ │ │ - py::enum_(m, "XCAFDimTolObjects_AngularQualifier",R"#(Defines types of qualifier for angular dimensions)#") │ │ │ - .value("XCAFDimTolObjects_AngularQualifier_None",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_None) │ │ │ - .value("XCAFDimTolObjects_AngularQualifier_Small",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Small) │ │ │ - .value("XCAFDimTolObjects_AngularQualifier_Large",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Large) │ │ │ - .value("XCAFDimTolObjects_AngularQualifier_Equal",XCAFDimTolObjects_AngularQualifier::XCAFDimTolObjects_AngularQualifier_Equal).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_DimensionType",R"#(Defines types of dimension)#") │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_None",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_None) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_CurvedDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_CurvedDistance) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToOuter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromCenterToInner) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToCenter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToOuter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromOuterToInner) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToCenter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToOuter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_LinearDistance_FromInnerToInner) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_Angular",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Angular) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_Oriented",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_Oriented) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Location_WithPath",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Location_WithPath) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_CurveLength",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_CurveLength) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_Diameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Diameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_SphericalDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalDiameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_Radius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Radius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_SphericalRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_SphericalRadius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorDiameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorDiameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMinorRadius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalMajorRadius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorDiameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorDiameter) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalHighMajorRadius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_Thickness",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Thickness) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_Angular",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_Angular) │ │ │ + .value("XCAFDimTolObjects_DimensionType_Size_WithPath",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_Size_WithPath) │ │ │ + .value("XCAFDimTolObjects_DimensionType_CommonLabel",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_CommonLabel) │ │ │ + .value("XCAFDimTolObjects_DimensionType_DimensionPresentation",XCAFDimTolObjects_DimensionType::XCAFDimTolObjects_DimensionType_DimensionPresentation).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceMatReqModif",R"#(Defines types of material requirement)#") │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_None",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_None) │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_M",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_M) │ │ │ + .value("XCAFDimTolObjects_GeomToleranceMatReqModif_L",XCAFDimTolObjects_GeomToleranceMatReqModif::XCAFDimTolObjects_GeomToleranceMatReqModif_L).export_values(); │ │ │ py::enum_(m, "XCAFDimTolObjects_DimensionFormVariance",R"#(Defines value of form variance)#") │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_None",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_None) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_A",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_A) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_B",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_B) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_C",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_C) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_CD",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_CD) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_D",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_D) │ │ │ @@ -277,14 +243,48 @@ │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_V",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_V) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_X",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_X) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_Y",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Y) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_Z",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_Z) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZA",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZA) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZB",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZB) │ │ │ .value("XCAFDimTolObjects_DimensionFormVariance_ZC",XCAFDimTolObjects_DimensionFormVariance::XCAFDimTolObjects_DimensionFormVariance_ZC).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumModifWithValue",R"#(Defines modifirs)#") │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_None",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_None) │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_CircularOrCylindrical) │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Distance",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Distance) │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Projected",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Projected) │ │ │ + .value("XCAFDimTolObjects_DatumModifWithValue_Spherical",XCAFDimTolObjects_DatumModifWithValue::XCAFDimTolObjects_DatumModifWithValue_Spherical).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_GeomToleranceZoneModif",R"#(Defines types of zone)#") │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_None",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_None) │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_Projected",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Projected) │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_Runout",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_Runout) │ │ │ + .value("XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform",XCAFDimTolObjects_GeomToleranceZoneModif::XCAFDimTolObjects_GeomToleranceZoneModif_NonUniform).export_values(); │ │ │ + py::enum_(m, "XCAFDimTolObjects_DatumSingleModif",R"#(Defines modifirs)#") │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_AnyCrossSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_AnyCrossSection) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Any_LongitudinalSection) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Basic",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Basic) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_ContactingFeature",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_ContactingFeature) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintU) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintV) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintW) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintX) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintY) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DegreeOfFreedomConstraintZ) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_DistanceVariable",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_DistanceVariable) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_FreeState",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_FreeState) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_LeastMaterialRequirement) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Line",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Line) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MajorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MajorDiameter) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MaximumMaterialRequirement) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_MinorDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_MinorDiameter) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Orientation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Orientation) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_PitchDiameter",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_PitchDiameter) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Plane",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Plane) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Point",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Point) │ │ │ + .value("XCAFDimTolObjects_DatumSingleModif_Translation",XCAFDimTolObjects_DatumSingleModif::XCAFDimTolObjects_DatumSingleModif_Translation).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ >(m,"XCAFDimTolObjects_Tool",R"#()#"); │ │ │ preregister_template_NCollection_Sequence(m,"XCAFDimTolObjects_DatumModifiersSequence"); │ │ │ py::class_ , Standard_Transient >(m,"XCAFDimTolObjects_DatumObject",R"#(Access object to store datumAccess object to store datumAccess object to store datum)#"); │ │ ├── ./usr/share/libocp/OCP/gp.cpp │ │ │┄ Ordering differences only │ │ │ @@ -7631,30 +7631,14 @@ │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ m.def("__rmul__", │ │ │ (gp_XYZ (*)( const Standard_Real , const gp_XYZ & )) static_cast(&operator*), │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ m.def("__mul__", │ │ │ - (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ - py::is_operator(), │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ - m.def("__rmul__", │ │ │ - (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ - py::is_operator(), │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ - m.def("__mul__", │ │ │ - (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ - py::is_operator(), │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ - m.def("__rmul__", │ │ │ - (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ - py::is_operator(), │ │ │ - R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ - m.def("__mul__", │ │ │ (gp_Vec (*)( const Standard_Real , const gp_Vec & )) static_cast(&operator*), │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ m.def("__rmul__", │ │ │ (gp_Vec (*)( const Standard_Real , const gp_Vec & )) static_cast(&operator*), │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theV")); │ │ │ @@ -7670,14 +7654,30 @@ │ │ │ (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ m.def("__rmul__", │ │ │ (gp_XY (*)( const Standard_Real , const gp_XY & )) static_cast(&operator*), │ │ │ py::is_operator(), │ │ │ R"#()#" , py::arg("theScalar"), py::arg("theCoord1")); │ │ │ + m.def("__mul__", │ │ │ + (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ + py::is_operator(), │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ + m.def("__rmul__", │ │ │ + (gp_Mat2d (*)( const Standard_Real , const gp_Mat2d & )) static_cast(&operator*), │ │ │ + py::is_operator(), │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat2D")); │ │ │ + m.def("__mul__", │ │ │ + (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ + py::is_operator(), │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ + m.def("__rmul__", │ │ │ + (gp_Mat (*)( const Standard_Real , const gp_Mat & )) static_cast(&operator*), │ │ │ + py::is_operator(), │ │ │ + R"#()#" , py::arg("theScalar"), py::arg("theMat3D")); │ │ │ │ │ │ // register typdefs │ │ │ register_template_NCollection_Vec2(m,"gp_Vec2f"); │ │ │ register_template_NCollection_Vec3(m,"gp_Vec3f"); │ │ │ │ │ │ │ │ │ // exceptions │ │ ├── ./usr/share/libocp/OCP/gp_pre.cpp │ │ │┄ Ordering differences only │ │ │ @@ -99,14 +99,24 @@ │ │ │ │ │ │ // add namespaces as submodules │ │ │ m.def_submodule("std"); │ │ │ │ │ │ // user-defined inclusion per module in the body │ │ │ │ │ │ // enums │ │ │ + py::enum_(m, "gp_TrsfForm",R"#(Identifies the type of a geometric transformation.)#") │ │ │ + .value("gp_Identity",gp_TrsfForm::gp_Identity) │ │ │ + .value("gp_Rotation",gp_TrsfForm::gp_Rotation) │ │ │ + .value("gp_Translation",gp_TrsfForm::gp_Translation) │ │ │ + .value("gp_PntMirror",gp_TrsfForm::gp_PntMirror) │ │ │ + .value("gp_Ax1Mirror",gp_TrsfForm::gp_Ax1Mirror) │ │ │ + .value("gp_Ax2Mirror",gp_TrsfForm::gp_Ax2Mirror) │ │ │ + .value("gp_Scale",gp_TrsfForm::gp_Scale) │ │ │ + .value("gp_CompoundTrsf",gp_TrsfForm::gp_CompoundTrsf) │ │ │ + .value("gp_Other",gp_TrsfForm::gp_Other).export_values(); │ │ │ py::enum_(m, "gp_EulerSequence",R"#(Enumerates all 24 possible variants of generalized Euler angles, defining general 3d rotation by three rotations around main axes of coordinate system, in different possible orders.)#") │ │ │ .value("gp_EulerAngles",gp_EulerSequence::gp_EulerAngles) │ │ │ .value("gp_YawPitchRoll",gp_EulerSequence::gp_YawPitchRoll) │ │ │ .value("gp_Extrinsic_XYZ",gp_EulerSequence::gp_Extrinsic_XYZ) │ │ │ .value("gp_Extrinsic_XZY",gp_EulerSequence::gp_Extrinsic_XZY) │ │ │ .value("gp_Extrinsic_YZX",gp_EulerSequence::gp_Extrinsic_YZX) │ │ │ .value("gp_Extrinsic_YXZ",gp_EulerSequence::gp_Extrinsic_YXZ) │ │ │ @@ -126,24 +136,14 @@ │ │ │ .value("gp_Extrinsic_ZXZ",gp_EulerSequence::gp_Extrinsic_ZXZ) │ │ │ .value("gp_Intrinsic_XYX",gp_EulerSequence::gp_Intrinsic_XYX) │ │ │ .value("gp_Intrinsic_XZX",gp_EulerSequence::gp_Intrinsic_XZX) │ │ │ .value("gp_Intrinsic_YZY",gp_EulerSequence::gp_Intrinsic_YZY) │ │ │ .value("gp_Intrinsic_YXY",gp_EulerSequence::gp_Intrinsic_YXY) │ │ │ .value("gp_Intrinsic_ZXZ",gp_EulerSequence::gp_Intrinsic_ZXZ) │ │ │ .value("gp_Intrinsic_ZYZ",gp_EulerSequence::gp_Intrinsic_ZYZ).export_values(); │ │ │ - py::enum_(m, "gp_TrsfForm",R"#(Identifies the type of a geometric transformation.)#") │ │ │ - .value("gp_Identity",gp_TrsfForm::gp_Identity) │ │ │ - .value("gp_Rotation",gp_TrsfForm::gp_Rotation) │ │ │ - .value("gp_Translation",gp_TrsfForm::gp_Translation) │ │ │ - .value("gp_PntMirror",gp_TrsfForm::gp_PntMirror) │ │ │ - .value("gp_Ax1Mirror",gp_TrsfForm::gp_Ax1Mirror) │ │ │ - .value("gp_Ax2Mirror",gp_TrsfForm::gp_Ax2Mirror) │ │ │ - .value("gp_Scale",gp_TrsfForm::gp_Scale) │ │ │ - .value("gp_CompoundTrsf",gp_TrsfForm::gp_CompoundTrsf) │ │ │ - .value("gp_Other",gp_TrsfForm::gp_Other).export_values(); │ │ │ │ │ │ //Python trampoline classes │ │ │ │ │ │ // pre-register typdefs+classes (topologically sorted) │ │ │ py::class_ , shared_ptr> >(m,"NCollection_Lerp_gp_Trsf",R"#(Linear interpolation tool for transformation defined by gp_Trsf.)#"); │ │ │ py::class_ >(m,"gp",R"#(The geometric processor package, called gp, provides an implementation of entities used : . for algebraic calculation such as "XYZ" coordinates, "Mat" matrix . for basis analytic geometry such as Transformations, point, vector, line, plane, axis placement, conics, and elementary surfaces. These entities are defined in 2d and 3d space. All the classes of this package are non-persistent.)#"); │ │ │ py::class_ >(m,"gp_Ax1",R"#(Describes an axis in 3D space. An axis is defined by: - its origin (also referred to as its "Location point"), and - its unit vector (referred to as its "Direction" or "main Direction"). An axis is used: - to describe 3D geometric entities (for example, the axis of a revolution entity). It serves the same purpose as the STEP function "axis placement one axis", or - to define geometric transformations (axis of symmetry, axis of rotation, and so on). For example, this entity can be used to locate a geometric entity or to define a symmetry axis.)#");