From a15fed9b869099d53b28d35af93f0c6cf7f2115b Mon Sep 17 00:00:00 2001 From: Pasukhin Dmitry Date: Sat, 27 Dec 2025 21:51:28 +0000 Subject: [PATCH] Coding - Temporary remove samples from the repository (#960) - Moved tcl samples to resource folder. - Clean up cmake from samples related settings. - Removed CSharp samples from the repository. - Removed MFC samples from the repository. - Removed Qt samples from the repository. - Removed Inspector samples from the repository. - Removed glwin samples from the repository. - Removed webgl samples from the repository. - Removed xaml samples from the repository. - Removed Java samples from the repository. --- .../actions/build-sample-csharp/action.yml | 57 - .github/actions/build-sample-mfc/action.yml | 54 - .github/actions/build-sample-qt/action.yml | 125 - .github/actions/build-tinspector/action.yml | 111 - .../build-and-test-multiplatform.yml | 96 - .gitignore | 1 - CMakeLists.txt | 163 +- adm/RESOURCES | 1 + adm/SAMPLES | 1 - adm/SAMPLES_RESOURCES | 3 - adm/cmake/occt_doc.cmake | 3 - adm/cmake/occt_gtest.cmake | 1 - adm/cmake/occt_macros.cmake | 1 - adm/cmake/vardescr.cmake | 24 +- adm/templates/DRAWEXE.vcxproj.user.in | 3 - adm/templates/custom.build.bat.in | 1 - adm/templates/custom.build.sh.in | 1 - adm/templates/env.bat | 1 - adm/templates/env.samples.bat.in | 32 - adm/templates/env.samples.sh.in | 24 - adm/templates/env.sh | 1 - adm/templates/sample.bat | 43 - adm/templates/sample.sh | 38 - adm/templates/uwp.toolchain.config.cmake | 5 - dox/build/build_occt/building_occt.md | 1 - dox/samples/draw_scripts.md | 8 +- {samples => resources/samples}/tcl/ANC101.tcl | 0 .../samples}/tcl/DataExchangeDemo.tcl | 0 .../samples}/tcl/MBBGehauseRohteil.tcl | 0 .../samples}/tcl/ModelingDemo.tcl | 0 .../samples}/tcl/Penrose.tcl | 0 {samples => resources/samples}/tcl/Readme.txt | 2 +- .../samples}/tcl/VisualizationDemo.tcl | 0 {samples => resources/samples}/tcl/bottle.tcl | 0 {samples => resources/samples}/tcl/cad.tcl | 0 {samples => resources/samples}/tcl/cpu.tcl | 0 {samples => resources/samples}/tcl/cutter.tcl | 0 .../samples}/tcl/dimensions.tcl | 0 {samples => resources/samples}/tcl/drill.tcl | 0 .../samples}/tcl/logo2019.tcl | 0 .../samples}/tcl/markers.tcl | 0 .../samples}/tcl/materials.tcl | 0 .../samples}/tcl/pathtrace_ball.tcl | 0 .../samples}/tcl/pathtrace_cube.tcl | 0 .../samples}/tcl/pathtrace_materials.tcl | 0 {samples => resources/samples}/tcl/pencil.tcl | 0 .../samples}/tcl/raytrace.tcl | 0 .../samples}/tcl/snowflake.tcl | 0 .../samples}/tcl/spheres.tcl | 0 .../samples}/tcl/vis_pbr_spheres.tcl | 0 {samples => resources/samples}/tcl/xde.tcl | 0 samples/CSharp/CSharp.sln | 45 - samples/CSharp/CSharp_D3D.sln | 35 - samples/CSharp/OCCTProxy/OCCTProxy.cpp | 1052 ---- samples/CSharp/OCCTProxy/OCCTProxy.vcproj | 367 -- samples/CSharp/OCCTProxy/OCCTProxy.vcxproj | 199 - samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp | 989 ---- .../CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcproj | 369 -- .../OCCTProxy_D3D/OCCTProxy_D3D.vcxproj | 201 - samples/CSharp/ReadMe.md | 54 - samples/CSharp/ReadMe_D3D.md | 55 - samples/CSharp/WPF_D3D/About.xaml | 18 - samples/CSharp/WPF_D3D/About.xaml.cs | 40 - samples/CSharp/WPF_D3D/App.xaml | 14 - samples/CSharp/WPF_D3D/App.xaml.cs | 16 - samples/CSharp/WPF_D3D/D3DViewer.cs | 136 - samples/CSharp/WPF_D3D/IECommands.cs | 44 - samples/CSharp/WPF_D3D/IE_WPF_D3D.csproj | 268 - samples/CSharp/WPF_D3D/MainWindow.xaml | 177 - samples/CSharp/WPF_D3D/MainWindow.xaml.cs | 695 --- samples/CSharp/WPF_D3D/MaterialDlg.xaml | 20 - samples/CSharp/WPF_D3D/MaterialDlg.xaml.cs | 101 - samples/CSharp/WPF_D3D/OCCViewer.cs | 665 --- .../CSharp/WPF_D3D/Properties/AssemblyInfo.cs | 55 - .../WPF_D3D/Properties/Resources.Designer.cs | 63 - .../CSharp/WPF_D3D/Properties/Resources.resx | 117 - .../WPF_D3D/Properties/Settings.Designer.cs | 26 - .../WPF_D3D/Properties/Settings.settings | 7 - samples/CSharp/WPF_D3D/Simple Styles.xaml | 1134 ---- samples/CSharp/WPF_D3D/TransparencyDialog.cs | 108 - .../CSharp/WPF_D3D/TransparencyDialog.resx | 206 - samples/CSharp/WPF_D3D/app.config | 3 - samples/CSharp/WPF_D3D/res/MainFrame.ico | Bin 3774 -> 0 bytes samples/CSharp/WPF_D3D/res/document.png | Bin 241 -> 0 bytes samples/CSharp/WPF_D3D/res/help.png | Bin 214 -> 0 bytes samples/CSharp/WPF_D3D/res/lamp.png | Bin 1355 -> 0 bytes samples/CSharp/WPF_D3D/res/new.png | Bin 177 -> 0 bytes samples/CSharp/WPF_D3D/res/occ_logo.bmp | Bin 58456 -> 0 bytes samples/CSharp/WPF_D3D/res/tool_color.png | Bin 283 -> 0 bytes samples/CSharp/WPF_D3D/res/tool_delete.png | Bin 1216 -> 0 bytes samples/CSharp/WPF_D3D/res/tool_material.png | Bin 283 -> 0 bytes samples/CSharp/WPF_D3D/res/tool_shading.png | Bin 256 -> 0 bytes .../CSharp/WPF_D3D/res/tool_transparency.png | Bin 234 -> 0 bytes samples/CSharp/WPF_D3D/res/tool_wireframe.png | Bin 186 -> 0 bytes samples/CSharp/WPF_D3D/res/view_axo.png | Bin 262 -> 0 bytes samples/CSharp/WPF_D3D/res/view_back.png | Bin 233 -> 0 bytes samples/CSharp/WPF_D3D/res/view_bottom.png | Bin 233 -> 0 bytes samples/CSharp/WPF_D3D/res/view_comp_off.png | Bin 199 -> 0 bytes samples/CSharp/WPF_D3D/res/view_comp_on.png | Bin 180 -> 0 bytes samples/CSharp/WPF_D3D/res/view_fitall.png | Bin 231 -> 0 bytes samples/CSharp/WPF_D3D/res/view_fitarea.png | Bin 224 -> 0 bytes samples/CSharp/WPF_D3D/res/view_front.png | Bin 238 -> 0 bytes samples/CSharp/WPF_D3D/res/view_glpan.png | Bin 205 -> 0 bytes samples/CSharp/WPF_D3D/res/view_left.png | Bin 231 -> 0 bytes samples/CSharp/WPF_D3D/res/view_pan.png | Bin 178 -> 0 bytes samples/CSharp/WPF_D3D/res/view_reset.png | Bin 204 -> 0 bytes samples/CSharp/WPF_D3D/res/view_right.png | Bin 230 -> 0 bytes samples/CSharp/WPF_D3D/res/view_rotate.png | Bin 224 -> 0 bytes samples/CSharp/WPF_D3D/res/view_top.png | Bin 235 -> 0 bytes samples/CSharp/WPF_D3D/res/view_zoom.png | Bin 222 -> 0 bytes samples/CSharp/WPF_WinForms/About.xaml | 18 - samples/CSharp/WPF_WinForms/About.xaml.cs | 40 - samples/CSharp/WPF_WinForms/App.xaml | 14 - samples/CSharp/WPF_WinForms/App.xaml.cs | 16 - samples/CSharp/WPF_WinForms/IECommands.cs | 44 - .../WPF_WinForms/IE_WPF_WinForms.csproj | 263 - samples/CSharp/WPF_WinForms/MainWindow.xaml | 169 - .../CSharp/WPF_WinForms/MainWindow.xaml.cs | 614 -- samples/CSharp/WPF_WinForms/MaterialDlg.xaml | 20 - .../CSharp/WPF_WinForms/MaterialDlg.xaml.cs | 101 - samples/CSharp/WPF_WinForms/OCCViewer.cs | 832 --- .../WPF_WinForms/Properties/AssemblyInfo.cs | 55 - .../Properties/Resources.Designer.cs | 63 - .../WPF_WinForms/Properties/Resources.resx | 117 - .../Properties/Settings.Designer.cs | 26 - .../WPF_WinForms/Properties/Settings.settings | 7 - .../CSharp/WPF_WinForms/Simple Styles.xaml | 1134 ---- .../CSharp/WPF_WinForms/TransparencyDialog.cs | 108 - .../WPF_WinForms/TransparencyDialog.resx | 206 - samples/CSharp/WPF_WinForms/app.config | 3 - samples/CSharp/WPF_WinForms/res/MainFrame.ico | Bin 3774 -> 0 bytes samples/CSharp/WPF_WinForms/res/document.png | Bin 241 -> 0 bytes samples/CSharp/WPF_WinForms/res/help.png | Bin 214 -> 0 bytes samples/CSharp/WPF_WinForms/res/lamp.png | Bin 1355 -> 0 bytes samples/CSharp/WPF_WinForms/res/new.png | Bin 177 -> 0 bytes samples/CSharp/WPF_WinForms/res/occ_logo.bmp | Bin 58456 -> 0 bytes .../CSharp/WPF_WinForms/res/tool_color.png | Bin 283 -> 0 bytes .../CSharp/WPF_WinForms/res/tool_delete.png | Bin 1216 -> 0 bytes .../CSharp/WPF_WinForms/res/tool_material.png | Bin 283 -> 0 bytes .../CSharp/WPF_WinForms/res/tool_shading.png | Bin 256 -> 0 bytes .../WPF_WinForms/res/tool_transparency.png | Bin 234 -> 0 bytes .../WPF_WinForms/res/tool_wireframe.png | Bin 186 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_axo.png | Bin 262 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_back.png | Bin 233 -> 0 bytes .../CSharp/WPF_WinForms/res/view_bottom.png | Bin 233 -> 0 bytes .../CSharp/WPF_WinForms/res/view_comp_off.png | Bin 199 -> 0 bytes .../CSharp/WPF_WinForms/res/view_comp_on.png | Bin 180 -> 0 bytes .../CSharp/WPF_WinForms/res/view_fitall.png | Bin 231 -> 0 bytes .../CSharp/WPF_WinForms/res/view_fitarea.png | Bin 224 -> 0 bytes .../CSharp/WPF_WinForms/res/view_front.png | Bin 238 -> 0 bytes .../CSharp/WPF_WinForms/res/view_glpan.png | Bin 205 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_left.png | Bin 231 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_pan.png | Bin 178 -> 0 bytes .../CSharp/WPF_WinForms/res/view_reset.png | Bin 204 -> 0 bytes .../CSharp/WPF_WinForms/res/view_right.png | Bin 230 -> 0 bytes .../CSharp/WPF_WinForms/res/view_rotate.png | Bin 224 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_top.png | Bin 235 -> 0 bytes samples/CSharp/WPF_WinForms/res/view_zoom.png | Bin 222 -> 0 bytes samples/CSharp/WinForms/AboutDialog.cs | 157 - samples/CSharp/WinForms/AboutDialog.resx | 1167 ---- samples/CSharp/WinForms/App.ico | Bin 1078 -> 0 bytes samples/CSharp/WinForms/AssemblyInfo.cs | 58 - samples/CSharp/WinForms/Form1.cs | 1070 ---- samples/CSharp/WinForms/Form1.resx | 660 --- samples/CSharp/WinForms/Form2.cs | 945 --- samples/CSharp/WinForms/Form2.resx | 357 -- samples/CSharp/WinForms/IE_WinForms.csproj | 233 - samples/CSharp/WinForms/MaterialDialog.cs | 248 - samples/CSharp/WinForms/MaterialDialog.resx | 269 - samples/CSharp/WinForms/TransparencyDialog.cs | 108 - .../CSharp/WinForms/TransparencyDialog.resx | 206 - samples/CSharp/WinForms/app.config | 38 - samples/CSharp/env.bat | 11 - samples/CSharp/images/samples_c__ie.png | Bin 38265 -> 0 bytes samples/CSharp/msvc.bat | 19 - samples/CSharp/msvc_D3D.bat | 30 - samples/CSharp/run.bat | 40 - samples/CSharp/run_winforms.bat | 3 - samples/CSharp/run_wpf.bat | 3 - samples/CSharp/run_wpf_D3D.bat | 3 - samples/glfw/CMakeLists.txt | 68 - samples/glfw/GlfwOcctView.cpp | 313 - samples/glfw/GlfwOcctView.h | 112 - samples/glfw/GlfwOcctWindow.cpp | 161 - samples/glfw/GlfwOcctWindow.h | 115 - samples/glfw/adm/cmake/FindOpenCASCADE.cmake | 157 - samples/glfw/main.cpp | 37 - samples/glfw/readme.md | 10 - samples/ios/UIKitSample/ReadMe.md | 21 - .../UIKitSample.xcodeproj/project.pbxproj | 548 -- .../contents.xcworkspacedata | 7 - .../ios/UIKitSample/UIKitSample/AppDelegate.h | 30 - .../UIKitSample/UIKitSample/AppDelegate.mm | 69 - .../AppIcon.appiconset/Contents.json | 62 - .../AppIcon.appiconset/Icon-60@2x.png | Bin 6596 -> 0 bytes .../AppIcon.appiconset/Icon-76.png | Bin 3730 -> 0 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 9112 -> 0 bytes .../AppIcon.appiconset/Icon-Small-40.png | Bin 1672 -> 0 bytes .../AppIcon.appiconset/Icon-Small-40@2x.png | Bin 3936 -> 0 bytes .../AppIcon.appiconset/Icon-Small.png | Bin 1110 -> 0 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 2609 -> 0 bytes .../Base.lproj/LaunchScreen.storyboard | 27 - .../ios/UIKitSample/UIKitSample/CafShapePrs.h | 65 - .../UIKitSample/UIKitSample/CafShapePrs.mm | 31 - samples/ios/UIKitSample/UIKitSample/GLView.h | 50 - samples/ios/UIKitSample/UIKitSample/GLView.mm | 170 - .../UIKitSample/GLViewController.h | 40 - .../UIKitSample/GLViewController.mm | 289 - .../ios/UIKitSample/UIKitSample/Info.plist | 46 - .../UIKitSample/UIKitSample/OcctDocument.h | 49 - .../UIKitSample/UIKitSample/OcctDocument.mm | 86 - .../ios/UIKitSample/UIKitSample/OcctViewer.h | 104 - .../ios/UIKitSample/UIKitSample/OcctViewer.mm | 404 -- .../UIKitSample/UIKitSample/ViewController.h | 26 - .../UIKitSample/UIKitSample/ViewController.m | 42 - samples/ios/UIKitSample/UIKitSample/main.mm | 32 - .../UIKitSample/images/sample_ios_uikit.png | Bin 48744 -> 0 bytes samples/java/jniviewer/.gitattributes | 1 - samples/java/jniviewer/.gitignore | 10 - samples/java/jniviewer/ReadMe.md | 45 - samples/java/jniviewer/app/build.gradle | 48 - .../app/src/main/AndroidManifest.xml | 35 - .../jnisample/OcctJniActivity.java | 861 --- .../jnisample/OcctJniFileDialog.java | 376 -- .../opencascade/jnisample/OcctJniLogger.java | 71 - .../jnisample/OcctJniRenderer.java | 210 - .../opencascade/jnisample/OcctJniView.java | 294 - .../jniviewer/app/src/main/jni/CMakeLists.txt | 43 - .../app/src/main/jni/OcctJni_MsgPrinter.cxx | 71 - .../app/src/main/jni/OcctJni_MsgPrinter.hxx | 53 - .../app/src/main/jni/OcctJni_Viewer.cxx | 834 --- .../app/src/main/jni/OcctJni_Viewer.hxx | 91 - .../src/main/res/drawable-hdpi/close_l.png | Bin 1410 -> 0 bytes .../src/main/res/drawable-hdpi/close_p.png | Bin 1325 -> 0 bytes .../app/src/main/res/drawable-hdpi/fit.png | Bin 1002 -> 0 bytes .../main/res/drawable-hdpi/ic_launcher.png | Bin 2591 -> 0 bytes .../app/src/main/res/drawable-hdpi/info.png | Bin 1660 -> 0 bytes .../src/main/res/drawable-hdpi/info_image.png | Bin 24204 -> 0 bytes .../src/main/res/drawable-hdpi/message.png | Bin 443 -> 0 bytes .../app/src/main/res/drawable-hdpi/open.png | Bin 917 -> 0 bytes .../app/src/main/res/drawable-hdpi/open_l.png | Bin 1415 -> 0 bytes .../app/src/main/res/drawable-hdpi/open_p.png | Bin 1322 -> 0 bytes .../src/main/res/drawable-hdpi/proj_back.png | Bin 1716 -> 0 bytes .../main/res/drawable-hdpi/proj_bottom.png | Bin 1867 -> 0 bytes .../src/main/res/drawable-hdpi/proj_front.png | Bin 1604 -> 0 bytes .../src/main/res/drawable-hdpi/proj_left.png | Bin 1771 -> 0 bytes .../src/main/res/drawable-hdpi/proj_right.png | Bin 1644 -> 0 bytes .../src/main/res/drawable-hdpi/proj_top.png | Bin 1862 -> 0 bytes .../app/src/main/res/drawable-hdpi/view.png | Bin 839 -> 0 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 1609 -> 0 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 3669 -> 0 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 5560 -> 0 bytes .../app/src/main/res/layout/activity_main.xml | 166 - .../jniviewer/app/src/main/res/values/id.xml | 17 - .../app/src/main/res/values/strings.xml | 35 - samples/java/jniviewer/build.gradle | 17 - .../java/jniviewer/gradle.properties.template | 5 - .../images/samples_java_android_occt.jpg | Bin 13697 -> 0 bytes samples/java/jniviewer/settings.gradle | 1 - .../mfc/standard/01_Geometry/CMakeLists.txt | 96 - .../01_Geometry/adm/win/vc10/Geometry.vcxproj | 584 -- .../adm/win/vc10/Geometry.vcxproj.filters | 133 - .../mfc/standard/01_Geometry/res/Geometry.rc | 347 -- .../mfc/standard/01_Geometry/res/Toolbar1.bmp | Bin 3358 -> 0 bytes .../mfc/standard/01_Geometry/res/Toolbar2.bmp | Bin 3358 -> 0 bytes .../mfc/standard/01_Geometry/res/resource.h | 84 - .../mfc/standard/01_Geometry/src/ChildFrm.cpp | 94 - .../mfc/standard/01_Geometry/src/ChildFrm.h | 40 - .../standard/01_Geometry/src/ChildFrm2d.cpp | 89 - .../mfc/standard/01_Geometry/src/ChildFrm2d.h | 46 - .../standard/01_Geometry/src/GeoAlgo_Sol.cxx | 171 - .../standard/01_Geometry/src/GeoAlgo_Sol.hxx | 71 - .../standard/01_Geometry/src/GeomSources.cpp | 4178 -------------- .../standard/01_Geometry/src/GeomSources.h | 136 - .../standard/01_Geometry/src/GeometryApp.cpp | 126 - .../standard/01_Geometry/src/GeometryApp.h | 39 - .../standard/01_Geometry/src/GeometryDoc.cpp | 1608 ------ .../standard/01_Geometry/src/GeometryDoc.h | 243 - .../standard/01_Geometry/src/GeometryView.cpp | 67 - .../standard/01_Geometry/src/GeometryView.h | 68 - .../01_Geometry/src/GeometryView2D.cpp | 65 - .../standard/01_Geometry/src/GeometryView2D.h | 57 - .../src/ISession2D/ISession2D_Curve.cpp | 119 - .../src/ISession2D/ISession2D_Curve.h | 159 - .../src/ISession2D/ISession_Curve.cpp | 36 - .../src/ISession2D/ISession_Curve.h | 27 - .../src/ISession2D/ISession_Direction.cpp | 125 - .../src/ISession2D/ISession_Direction.h | 44 - .../src/ISession2D/ISession_Point.cpp | 57 - .../src/ISession2D/ISession_Point.h | 40 - .../src/ISession2D/ISession_Surface.cpp | 48 - .../src/ISession2D/ISession_Surface.h | 29 - .../mfc/standard/01_Geometry/src/MainFrm.cpp | 118 - .../mfc/standard/01_Geometry/src/MainFrm.h | 54 - .../mfc/standard/01_Geometry/src/StdAfx.cpp | 6 - samples/mfc/standard/01_Geometry/src/StdAfx.h | 283 - .../mfc/standard/02_Modeling/CMakeLists.txt | 67 - .../02_Modeling/adm/win/vc10/Modeling.vcxproj | 323 -- .../adm/win/vc10/Modeling.vcxproj.filters | 67 - .../mfc/standard/02_Modeling/res/Modeling.rc | 386 -- samples/mfc/standard/02_Modeling/res/RCa04828 | Bin 19350 -> 0 bytes .../mfc/standard/02_Modeling/res/Toolbar.bmp | Bin 5958 -> 0 bytes .../mfc/standard/02_Modeling/res/fram2.bmp | Bin 5158 -> 0 bytes .../mfc/standard/02_Modeling/res/resource.h | 73 - .../02_Modeling/src/ISession_Direction.cpp | 53 - .../02_Modeling/src/ISession_Direction.h | 43 - .../standard/02_Modeling/src/ModelingApp.cpp | 88 - .../standard/02_Modeling/src/ModelingApp.h | 36 - .../standard/02_Modeling/src/ModelingDoc.cpp | 5077 ----------------- .../standard/02_Modeling/src/ModelingDoc.h | 99 - samples/mfc/standard/02_Modeling/src/State.h | 6 - .../mfc/standard/02_Modeling/src/StdAfx.cpp | 7 - samples/mfc/standard/02_Modeling/src/StdAfx.h | 142 - .../standard/03_ImportExport/CMakeLists.txt | 65 - .../adm/win/vc10/ImportExport.vcxproj | 360 -- .../adm/win/vc10/ImportExport.vcxproj.filters | 60 - .../03_ImportExport/res/ImportExport.rc | 286 - .../standard/03_ImportExport/res/Toolbar.bmp | Bin 2918 -> 0 bytes .../standard/03_ImportExport/res/resource.h | 25 - .../03_ImportExport/src/ColoredShapes.cpp | 53 - .../03_ImportExport/src/ColoredShapes.h | 33 - .../03_ImportExport/src/ImportExportApp.cpp | 158 - .../03_ImportExport/src/ImportExportApp.h | 38 - .../03_ImportExport/src/ImportExportDoc.cpp | 288 - .../03_ImportExport/src/ImportExportDoc.h | 64 - .../standard/03_ImportExport/src/StdAfx.cpp | 6 - .../mfc/standard/03_ImportExport/src/StdAfx.h | 165 - samples/mfc/standard/04_HLR/CMakeLists.txt | 91 - samples/mfc/standard/04_HLR/README.txt | 12 - .../standard/04_HLR/adm/win/vc10/HLR.vcxproj | 417 -- .../04_HLR/adm/win/vc10/HLR.vcxproj.filters | 142 - samples/mfc/standard/04_HLR/res/AXOVIEWU.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/BACKVIEWD.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/BACKVIEWF.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/BACKVIEWU.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/BOTTOMVIEWD.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/BOTTOMVIEWF.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/BOTTOMVIEWU.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/ChildFrame2D.bmp | Bin 2358 -> 0 bytes .../mfc/standard/04_HLR/res/ChildFrame3D.bmp | Bin 3318 -> 0 bytes .../mfc/standard/04_HLR/res/FRONTVIEWD.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/FRONTVIEWF.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/FRONTVIEWU.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/HLR.rc | 475 -- samples/mfc/standard/04_HLR/res/LEFTVIEWD.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/LEFTVIEWF.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/LEFTVIEWU.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/RIGHTVIEWD.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/RIGHTVIEWF.bmp | Bin 406 -> 0 bytes .../mfc/standard/04_HLR/res/RIGHTVIEWU.bmp | Bin 406 -> 0 bytes .../standard/04_HLR/res/ToolBarObjects.bmp | Bin 1078 -> 0 bytes samples/mfc/standard/04_HLR/res/Toolbar.bmp | Bin 478 -> 0 bytes samples/mfc/standard/04_HLR/res/axoviewd.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/axoviewf.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/dummyd.bmp | Bin 238 -> 0 bytes samples/mfc/standard/04_HLR/res/dummyf.bmp | Bin 238 -> 0 bytes samples/mfc/standard/04_HLR/res/dummyu.bmp | Bin 238 -> 0 bytes samples/mfc/standard/04_HLR/res/resource.h | 127 - samples/mfc/standard/04_HLR/res/topviewd.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/topviewf.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/res/topviewu.bmp | Bin 406 -> 0 bytes samples/mfc/standard/04_HLR/src/HLRApp.cpp | 164 - samples/mfc/standard/04_HLR/src/HLRApp.h | 36 - samples/mfc/standard/04_HLR/src/HLRDoc.cpp | 205 - samples/mfc/standard/04_HLR/src/HLRDoc.h | 67 - samples/mfc/standard/04_HLR/src/HLRView2D.cpp | 63 - samples/mfc/standard/04_HLR/src/HLRView2D.h | 42 - samples/mfc/standard/04_HLR/src/HLRView3D.cpp | 399 -- samples/mfc/standard/04_HLR/src/HLRView3D.h | 85 - .../standard/04_HLR/src/SelectionDialog.cpp | 562 -- .../mfc/standard/04_HLR/src/SelectionDialog.h | 127 - samples/mfc/standard/04_HLR/src/StdAfx.cpp | 6 - samples/mfc/standard/04_HLR/src/StdAfx.h | 209 - samples/mfc/standard/All-vc10.sln | 65 - samples/mfc/standard/All-vc11.sln | 65 - samples/mfc/standard/All-vc12.sln | 65 - samples/mfc/standard/All-vc14.sln | 65 - samples/mfc/standard/All-vc141.sln | 65 - samples/mfc/standard/All-vc142.sln | 65 - samples/mfc/standard/Common/AISDialogs.cpp | 448 -- samples/mfc/standard/Common/AISDialogs.h | 207 - .../Common/AngleParamsVerticesPage.cpp | 154 - .../standard/Common/AngleParamsVerticesPage.h | 31 - .../mfc/standard/Common/ColoredMeshDlg.cpp | 219 - samples/mfc/standard/Common/ColoredMeshDlg.h | 103 - samples/mfc/standard/Common/DimensionDlg.cpp | 731 --- samples/mfc/standard/Common/DimensionDlg.h | 81 - .../Common/ISession2D/ISession2D_Shape.cpp | 325 -- .../Common/ISession2D/ISession2D_Shape.h | 74 - .../Common/ImportExport/ImportExport.cpp | 850 --- .../Common/ImportExport/ImportExport.h | 97 - .../Common/ImportExport/SaveSTEPDlg.cpp | 91 - .../Common/ImportExport/SaveSTEPDlg.h | 56 - .../standard/Common/LengthParamsEdgePage.cpp | 112 - .../standard/Common/LengthParamsEdgePage.h | 29 - .../standard/Common/LengthParamsEdgesPage.cpp | 155 - .../standard/Common/LengthParamsEdgesPage.h | 30 - .../Common/LengthParamsVerticesPage.cpp | 144 - .../Common/LengthParamsVerticesPage.h | 29 - .../mfc/standard/Common/OCC_2dChildFrame.cpp | 58 - .../mfc/standard/Common/OCC_2dChildFrame.h | 37 - samples/mfc/standard/Common/OCC_2dDoc.cpp | 73 - samples/mfc/standard/Common/OCC_2dDoc.h | 38 - samples/mfc/standard/Common/OCC_2dView.cpp | 299 - samples/mfc/standard/Common/OCC_2dView.h | 81 - samples/mfc/standard/Common/OCC_2dViewRD.cpp | 221 - samples/mfc/standard/Common/OCC_2dViewRD.h | 40 - samples/mfc/standard/Common/OCC_3dBaseDoc.cpp | 504 -- samples/mfc/standard/Common/OCC_3dBaseDoc.h | 103 - .../mfc/standard/Common/OCC_3dChildFrame.cpp | 63 - .../mfc/standard/Common/OCC_3dChildFrame.h | 39 - samples/mfc/standard/Common/OCC_3dDoc.cpp | 90 - samples/mfc/standard/Common/OCC_3dDoc.h | 51 - samples/mfc/standard/Common/OCC_3dView.cpp | 297 - samples/mfc/standard/Common/OCC_3dView.h | 82 - samples/mfc/standard/Common/OCC_App.cpp | 236 - samples/mfc/standard/Common/OCC_App.h | 47 - .../standard/Common/OCC_BaseChildFrame.cpp | 78 - .../mfc/standard/Common/OCC_BaseChildFrame.h | 42 - samples/mfc/standard/Common/OCC_BaseDoc.cpp | 81 - samples/mfc/standard/Common/OCC_BaseDoc.h | 85 - samples/mfc/standard/Common/OCC_BaseView.cpp | 378 -- samples/mfc/standard/Common/OCC_BaseView.h | 115 - .../mfc/standard/Common/OCC_ChildFrame.cpp | 89 - samples/mfc/standard/Common/OCC_ChildFrame.h | 47 - samples/mfc/standard/Common/OCC_MainFrame.cpp | 148 - samples/mfc/standard/Common/OCC_MainFrame.h | 68 - .../standard/Common/OCC_StereoConfigDlg.cpp | 250 - .../mfc/standard/Common/OCC_StereoConfigDlg.h | 55 - .../mfc/standard/Common/ParamsFacesPage.cpp | 124 - samples/mfc/standard/Common/ParamsFacesPage.h | 31 - .../mfc/standard/Common/RadiusParamsPage.cpp | 129 - .../mfc/standard/Common/RadiusParamsPage.h | 27 - .../Common/Resource2D/CircularGrid.cpp | 114 - .../standard/Common/Resource2D/CircularGrid.h | 69 - .../Common/Resource2D/RectangularGrid.cpp | 109 - .../Common/Resource2D/RectangularGrid.h | 68 - samples/mfc/standard/Common/ResultDialog.cpp | 94 - samples/mfc/standard/Common/ResultDialog.h | 61 - samples/mfc/standard/Common/StdAfx.h | 118 - samples/mfc/standard/Common/Winmain.cpp | 147 - .../standard/Common/res/2dChildFrameTB.bmp | Bin 2358 -> 0 bytes samples/mfc/standard/Common/res/2dType.ico | Bin 1078 -> 0 bytes .../standard/Common/res/3dChildFrameTB.bmp | Bin 3558 -> 0 bytes samples/mfc/standard/Common/res/3dType.ico | Bin 1078 -> 0 bytes samples/mfc/standard/Common/res/AIS_TB.bmp | Bin 1958 -> 0 bytes samples/mfc/standard/Common/res/MainFrame.ico | Bin 3774 -> 0 bytes .../mfc/standard/Common/res/OCC_Resource.h | 199 - .../mfc/standard/Common/res/OCC_Resource.rc | 729 --- .../standard/Common/res/ToolbarRayTracing.bmp | Bin 918 -> 0 bytes samples/mfc/standard/Common/res/coloredm.bmp | Bin 358 -> 0 bytes samples/mfc/standard/Common/res/occ_logo.bmp | Bin 58456 -> 0 bytes samples/mfc/standard/ReadMe.md | 58 - samples/mfc/standard/env.bat | 11 - samples/mfc/standard/images/samples_mvc.png | Bin 32022 -> 0 bytes samples/mfc/standard/mfcsample/CMakeLists.txt | 192 - .../mfcsample/adm/win/vc10/mfcsample.vcxproj | 706 --- .../adm/win/vc10/mfcsample.vcxproj.filters | 249 - samples/mfc/standard/mfcsample/src/StdAfx.cpp | 2 - .../mfc/standard/mfcsample/src/mfcsample.cpp | 51 - samples/mfc/standard/msvc.bat | 19 - samples/mfc/standard/run.bat | 38 - samples/ocafsamples/TDataStd_Sample.cxx | 431 -- samples/ocafsamples/TDocStd_Sample.cxx | 106 - samples/ocafsamples/TNaming_Sample.cxx | 410 -- samples/ocafsamples/TPrsStd_Sample.cxx | 217 - samples/ocafsamples/readme.txt | 11 - samples/qt/AndroidQt/.gitignore | 2 - samples/qt/AndroidQt/AndroidQt.pro | 34 - samples/qt/AndroidQt/AndroidQt0.pro | 5 - samples/qt/AndroidQt/CMakeLists.txt | 16 - samples/qt/AndroidQt/Deployment.pri | 27 - samples/qt/AndroidQt/EXTERNLIB.cmake | 20 - samples/qt/AndroidQt/FILES.cmake | 14 - samples/qt/AndroidQt/OCCT.pri | 60 - samples/qt/AndroidQt/PACKAGES.cmake | 4 - samples/qt/AndroidQt/ReadMe.md | 91 - .../qt/AndroidQt/android/AndroidManifest.xml | 82 - .../assets/opencascade/shared/.gitignore | 1 - .../android/res/drawable-hdpi/ic_launcher.png | Bin 2591 -> 0 bytes .../android/res/drawable-mdpi/ic_launcher.png | Bin 1609 -> 0 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 3669 -> 0 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 5560 -> 0 bytes .../AndroidQt/android/res/values/strings.xml | 4 - .../example/AndroidQt/AndroidQt.java | 99 - samples/qt/AndroidQt/custom.bat | 4 - samples/qt/AndroidQt/env.bat | 10 - samples/qt/AndroidQt/genproj.bat | 11 - .../images/samples_qml_android_occt.jpg | Bin 14519 -> 0 bytes samples/qt/AndroidQt/msvc.bat | 19 - .../res/icons/ic_action_collection.png | Bin 650 -> 0 bytes samples/qt/AndroidQt/res/qml/main.qml | 85 - samples/qt/AndroidQt/src/AndroidQt.cxx | 372 -- samples/qt/AndroidQt/src/AndroidQt.h | 92 - samples/qt/AndroidQt/src/AndroidQt.qrc | 8 - .../src/AndroidQt_TouchParameters.cxx | 107 - .../AndroidQt/src/AndroidQt_TouchParameters.h | 62 - .../src/AndroidQt_UserInteractionParameters.h | 28 - samples/qt/AndroidQt/src/AndroidQt_Window.cxx | 86 - samples/qt/AndroidQt/src/AndroidQt_Window.h | 90 - samples/qt/AndroidQt/src/Main.cxx | 39 - samples/qt/Common/res/antialiasing.png | Bin 230 -> 0 bytes samples/qt/Common/res/cascade.png | Bin 225 -> 0 bytes samples/qt/Common/res/close.png | Bin 212 -> 0 bytes samples/qt/Common/res/cursor_rotate.png | Bin 291 -> 0 bytes samples/qt/Common/res/cursor_zoom.png | Bin 245 -> 0 bytes samples/qt/Common/res/document.png | Bin 241 -> 0 bytes samples/qt/Common/res/help.png | Bin 214 -> 0 bytes samples/qt/Common/res/lamp.png | Bin 1355 -> 0 bytes samples/qt/Common/res/new.png | Bin 177 -> 0 bytes samples/qt/Common/res/raytracing.png | Bin 223 -> 0 bytes samples/qt/Common/res/reflections.png | Bin 217 -> 0 bytes samples/qt/Common/res/shadows.png | Bin 264 -> 0 bytes samples/qt/Common/res/tile.png | Bin 199 -> 0 bytes samples/qt/Common/res/tool-shading.png | Bin 256 -> 0 bytes samples/qt/Common/res/tool_color.png | Bin 288 -> 0 bytes samples/qt/Common/res/tool_delete.png | Bin 203 -> 0 bytes samples/qt/Common/res/tool_material.png | Bin 293 -> 0 bytes samples/qt/Common/res/tool_shading.png | Bin 256 -> 0 bytes samples/qt/Common/res/tool_transparency.png | Bin 318 -> 0 bytes samples/qt/Common/res/tool_wireframe.png | Bin 259 -> 0 bytes samples/qt/Common/res/view_axo.png | Bin 392 -> 0 bytes samples/qt/Common/res/view_back.png | Bin 233 -> 0 bytes samples/qt/Common/res/view_bottom.png | Bin 233 -> 0 bytes samples/qt/Common/res/view_comp_off.png | Bin 199 -> 0 bytes samples/qt/Common/res/view_comp_on.png | Bin 180 -> 0 bytes samples/qt/Common/res/view_fitall.png | Bin 231 -> 0 bytes samples/qt/Common/res/view_fitarea.png | Bin 224 -> 0 bytes samples/qt/Common/res/view_front.png | Bin 238 -> 0 bytes samples/qt/Common/res/view_glpan.png | Bin 205 -> 0 bytes samples/qt/Common/res/view_left.png | Bin 231 -> 0 bytes samples/qt/Common/res/view_pan.png | Bin 178 -> 0 bytes samples/qt/Common/res/view_reset.png | Bin 204 -> 0 bytes samples/qt/Common/res/view_right.png | Bin 230 -> 0 bytes samples/qt/Common/res/view_rotate.png | Bin 224 -> 0 bytes samples/qt/Common/res/view_top.png | Bin 235 -> 0 bytes samples/qt/Common/res/view_zoom.png | Bin 222 -> 0 bytes samples/qt/Common/src/ApplicationCommon.cxx | 620 -- samples/qt/Common/src/ApplicationCommon.h | 89 - samples/qt/Common/src/Common-icon.ts | 146 - samples/qt/Common/src/Common-string.ts | 458 -- samples/qt/Common/src/CommonSample.h | 22 - samples/qt/Common/src/DocumentCommon.cxx | 244 - samples/qt/Common/src/DocumentCommon.h | 71 - samples/qt/Common/src/MDIWindow.cxx | 155 - samples/qt/Common/src/MDIWindow.h | 45 - samples/qt/Common/src/Material.cxx | 110 - samples/qt/Common/src/Material.h | 29 - samples/qt/Common/src/OcctWindow.cxx | 170 - samples/qt/Common/src/OcctWindow.h | 92 - samples/qt/Common/src/Transparency.cxx | 24 - samples/qt/Common/src/Transparency.h | 16 - samples/qt/Common/src/View.cxx | 866 --- samples/qt/Common/src/View.h | 147 - samples/qt/FuncDemo/CMakeLists.txt | 15 - samples/qt/FuncDemo/EXTERNLIB.cmake | 17 - samples/qt/FuncDemo/FILES.cmake | 33 - samples/qt/FuncDemo/FuncDemo.pro | 87 - samples/qt/FuncDemo/FuncDemo0.pro | 5 - samples/qt/FuncDemo/PACKAGES.cmake | 4 - samples/qt/FuncDemo/ReadMe.md | 30 - samples/qt/FuncDemo/custom.bat | 3 - samples/qt/FuncDemo/custom.sh | 3 - samples/qt/FuncDemo/env.bat | 7 - samples/qt/FuncDemo/env.sh | 26 - samples/qt/FuncDemo/genproj.bat | 13 - samples/qt/FuncDemo/images/new.png | Bin 852 -> 0 bytes samples/qt/FuncDemo/images/open.png | Bin 2073 -> 0 bytes samples/qt/FuncDemo/images/save.png | Bin 1187 -> 0 bytes samples/qt/FuncDemo/make.sh | 14 - samples/qt/FuncDemo/msvc.bat | 19 - samples/qt/FuncDemo/run.bat | 23 - samples/qt/FuncDemo/run.sh | 32 - samples/qt/FuncDemo/src/BaseDriver.cpp | 71 - samples/qt/FuncDemo/src/BaseDriver.h | 42 - samples/qt/FuncDemo/src/CircleDriver.cpp | 76 - samples/qt/FuncDemo/src/CircleDriver.h | 32 - samples/qt/FuncDemo/src/ConeDriver.cpp | 153 - samples/qt/FuncDemo/src/ConeDriver.h | 32 - samples/qt/FuncDemo/src/CylinderDriver.cpp | 102 - samples/qt/FuncDemo/src/CylinderDriver.h | 32 - samples/qt/FuncDemo/src/FThread.cpp | 140 - samples/qt/FuncDemo/src/FThread.h | 46 - samples/qt/FuncDemo/src/FuncDemo.qrc | 7 - samples/qt/FuncDemo/src/PointDriver.cpp | 61 - samples/qt/FuncDemo/src/PointDriver.h | 32 - samples/qt/FuncDemo/src/PrismDriver.cpp | 73 - samples/qt/FuncDemo/src/PrismDriver.h | 32 - samples/qt/FuncDemo/src/ShapeSaverDriver.cpp | 69 - samples/qt/FuncDemo/src/ShapeSaverDriver.h | 32 - samples/qt/FuncDemo/src/SimpleDriver.cpp | 85 - samples/qt/FuncDemo/src/SimpleDriver.h | 38 - samples/qt/FuncDemo/src/edge.cpp | 151 - samples/qt/FuncDemo/src/edge.h | 77 - samples/qt/FuncDemo/src/graphwidget.cpp | 578 -- samples/qt/FuncDemo/src/graphwidget.h | 108 - samples/qt/FuncDemo/src/main.cpp | 59 - samples/qt/FuncDemo/src/mainwindow.cpp | 737 --- samples/qt/FuncDemo/src/mainwindow.h | 118 - samples/qt/FuncDemo/src/node.cpp | 271 - samples/qt/FuncDemo/src/node.h | 93 - samples/qt/IESample/.gitignore | 7 - samples/qt/IESample/CMakeLists.txt | 18 - samples/qt/IESample/EXTERNLIB.cmake | 28 - samples/qt/IESample/FILES.cmake | 29 - samples/qt/IESample/IESample.pro | 113 - samples/qt/IESample/IESample0.pro | 5 - samples/qt/IESample/PACKAGES.cmake | 4 - samples/qt/IESample/ReadMe.md | 10 - samples/qt/IESample/custom.bat.template | 5 - samples/qt/IESample/custom.sh.template | 5 - samples/qt/IESample/env.bat | 13 - samples/qt/IESample/env.sh | 27 - samples/qt/IESample/genproj.bat | 13 - samples/qt/IESample/images/samples_qt.png | Bin 64276 -> 0 bytes samples/qt/IESample/make.sh | 14 - samples/qt/IESample/msvc.bat | 19 - samples/qt/IESample/run.bat | 23 - samples/qt/IESample/run.sh | 37 - samples/qt/IESample/src/Main.cxx | 49 - samples/qt/Interface/src/Application.cxx | 232 - samples/qt/Interface/src/Application.h | 49 - samples/qt/Interface/src/IESample.h | 22 - samples/qt/Interface/src/Interface-string.ts | 206 - samples/qt/Interface/src/Translate.cxx | 608 -- samples/qt/Interface/src/Translate.h | 59 - samples/qt/OCCTOverview/.DS_Store | Bin 8196 -> 0 bytes samples/qt/OCCTOverview/.gitignore | 7 - samples/qt/OCCTOverview/CMakeLists.txt | 18 - samples/qt/OCCTOverview/EXTERNLIB.cmake | 33 - samples/qt/OCCTOverview/FILES.cmake | 72 - samples/qt/OCCTOverview/OCCTOverview.pro | 95 - samples/qt/OCCTOverview/OCCTOverview0.pro | 5 - samples/qt/OCCTOverview/PACKAGES.cmake | 4 - samples/qt/OCCTOverview/ReadMe.md | 74 - .../OCCTOverview/code/AdaptorCurve2d_AIS.cxx | 150 - .../qt/OCCTOverview/code/AdaptorCurve2d_AIS.h | 77 - .../qt/OCCTOverview/code/AdaptorCurve_AIS.cxx | 49 - .../qt/OCCTOverview/code/AdaptorCurve_AIS.h | 52 - .../qt/OCCTOverview/code/AdaptorPnt2d_AIS.cxx | 38 - .../qt/OCCTOverview/code/AdaptorPnt2d_AIS.h | 57 - .../qt/OCCTOverview/code/AdaptorVec_AIS.cxx | 77 - samples/qt/OCCTOverview/code/AdaptorVec_AIS.h | 121 - samples/qt/OCCTOverview/code/BaseSample.cxx | 185 - samples/qt/OCCTOverview/code/BaseSample.h | 87 - samples/qt/OCCTOverview/code/DataExchange.xml | 17 - .../OCCTOverview/code/DataExchangeSamples.cxx | 422 -- .../OCCTOverview/code/DataExchangeSamples.h | 90 - samples/qt/OCCTOverview/code/Geometry.xml | 92 - .../qt/OCCTOverview/code/GeometrySamples.cxx | 2027 ------- .../qt/OCCTOverview/code/GeometrySamples.h | 102 - samples/qt/OCCTOverview/code/MakeBottle.cxx | 218 - samples/qt/OCCTOverview/code/MakeBottle.h | 33 - samples/qt/OCCTOverview/code/Ocaf.xml | 21 - samples/qt/OCCTOverview/code/OcafSamples.cxx | 629 -- samples/qt/OCCTOverview/code/OcafSamples.h | 81 - .../qt/OCCTOverview/code/Sample2D_Face.cxx | 486 -- samples/qt/OCCTOverview/code/Sample2D_Face.h | 108 - .../qt/OCCTOverview/code/Sample2D_Image.cxx | 86 - samples/qt/OCCTOverview/code/Sample2D_Image.h | 86 - .../qt/OCCTOverview/code/Sample2D_Markers.cxx | 80 - .../qt/OCCTOverview/code/Sample2D_Markers.h | 89 - samples/qt/OCCTOverview/code/Samples.qrc | 11 - .../code/TOcafFunction_BoxDriver.cxx | 148 - .../code/TOcafFunction_BoxDriver.h | 57 - .../code/TOcafFunction_CutDriver.cxx | 152 - .../code/TOcafFunction_CutDriver.h | 57 - .../code/TOcafFunction_CylDriver.cxx | 147 - .../code/TOcafFunction_CylDriver.h | 59 - .../OCCTOverview/code/TOcaf_Application.cxx | 52 - .../qt/OCCTOverview/code/TOcaf_Application.h | 37 - samples/qt/OCCTOverview/code/Topology.xml | 51 - .../qt/OCCTOverview/code/TopologySamples.cxx | 1884 ------ .../qt/OCCTOverview/code/TopologySamples.h | 80 - .../qt/OCCTOverview/code/Triangulation.xml | 7 - .../code/TriangulationSamples.cxx | 113 - .../OCCTOverview/code/TriangulationSamples.h | 49 - samples/qt/OCCTOverview/code/Viewer2d.xml | 20 - .../qt/OCCTOverview/code/Viewer2dSamples.cxx | 282 - .../qt/OCCTOverview/code/Viewer2dSamples.h | 76 - samples/qt/OCCTOverview/code/Viewer3d.xml | 31 - .../qt/OCCTOverview/code/Viewer3dSamples.cxx | 342 -- .../qt/OCCTOverview/code/Viewer3dSamples.h | 78 - samples/qt/OCCTOverview/custom.bat.template | 7 - samples/qt/OCCTOverview/custom.sh.template | 9 - samples/qt/OCCTOverview/env.bat | 32 - samples/qt/OCCTOverview/env.sh | 25 - samples/qt/OCCTOverview/genproj.bat | 17 - .../images/sample_overview_qt.png | Bin 112795 -> 0 bytes samples/qt/OCCTOverview/make.sh | 16 - samples/qt/OCCTOverview/msvc.bat | 19 - samples/qt/OCCTOverview/res/antialiasing.png | Bin 230 -> 0 bytes samples/qt/OCCTOverview/res/cursor_rotate.png | Bin 291 -> 0 bytes samples/qt/OCCTOverview/res/cursor_zoom.png | Bin 245 -> 0 bytes samples/qt/OCCTOverview/res/help.png | Bin 214 -> 0 bytes samples/qt/OCCTOverview/res/lamp.png | Bin 1355 -> 0 bytes samples/qt/OCCTOverview/res/raytracing.png | Bin 223 -> 0 bytes samples/qt/OCCTOverview/res/reflections.png | Bin 217 -> 0 bytes samples/qt/OCCTOverview/res/shadows.png | Bin 264 -> 0 bytes samples/qt/OCCTOverview/res/tool_color.png | Bin 288 -> 0 bytes samples/qt/OCCTOverview/res/tool_delete.png | Bin 203 -> 0 bytes samples/qt/OCCTOverview/res/tool_material.png | Bin 293 -> 0 bytes samples/qt/OCCTOverview/res/tool_shading.png | Bin 256 -> 0 bytes .../qt/OCCTOverview/res/tool_transparency.png | Bin 318 -> 0 bytes .../qt/OCCTOverview/res/tool_wireframe.png | Bin 259 -> 0 bytes samples/qt/OCCTOverview/res/view_axo.png | Bin 392 -> 0 bytes samples/qt/OCCTOverview/res/view_back.png | Bin 233 -> 0 bytes samples/qt/OCCTOverview/res/view_bottom.png | Bin 233 -> 0 bytes samples/qt/OCCTOverview/res/view_comp_off.png | Bin 199 -> 0 bytes samples/qt/OCCTOverview/res/view_comp_on.png | Bin 180 -> 0 bytes samples/qt/OCCTOverview/res/view_fitall.png | Bin 231 -> 0 bytes samples/qt/OCCTOverview/res/view_front.png | Bin 238 -> 0 bytes samples/qt/OCCTOverview/res/view_left.png | Bin 231 -> 0 bytes samples/qt/OCCTOverview/res/view_reset.png | Bin 204 -> 0 bytes samples/qt/OCCTOverview/res/view_right.png | Bin 230 -> 0 bytes samples/qt/OCCTOverview/res/view_top.png | Bin 235 -> 0 bytes samples/qt/OCCTOverview/run.bat | 23 - samples/qt/OCCTOverview/run.sh | 37 - .../qt/OCCTOverview/src/ApplicationCommon.cxx | 692 --- .../qt/OCCTOverview/src/ApplicationCommon.h | 181 - samples/qt/OCCTOverview/src/CommonSample.h | 43 - .../qt/OCCTOverview/src/DocumentCommon.cxx | 111 - samples/qt/OCCTOverview/src/DocumentCommon.h | 75 - samples/qt/OCCTOverview/src/GeomWidget.cxx | 100 - samples/qt/OCCTOverview/src/GeomWidget.h | 65 - samples/qt/OCCTOverview/src/Main.cxx | 79 - samples/qt/OCCTOverview/src/OCCTOverview.qrc | 29 - .../qt/OCCTOverview/src/OcctHighlighter.cxx | 222 - samples/qt/OCCTOverview/src/OcctHighlighter.h | 77 - samples/qt/OCCTOverview/src/OcctWindow.cxx | 181 - samples/qt/OCCTOverview/src/OcctWindow.h | 111 - .../qt/OCCTOverview/src/TranslateDialog.cxx | 113 - samples/qt/OCCTOverview/src/TranslateDialog.h | 56 - samples/qt/OCCTOverview/src/Transparency.cxx | 46 - samples/qt/OCCTOverview/src/Transparency.h | 55 - samples/qt/OCCTOverview/src/View.cxx | 679 --- samples/qt/OCCTOverview/src/View.h | 203 - samples/qt/Tutorial/.gitignore | 7 - samples/qt/Tutorial/CMakeLists.txt | 18 - samples/qt/Tutorial/EXTERNLIB.cmake | 28 - samples/qt/Tutorial/FILES.cmake | 36 - samples/qt/Tutorial/PACKAGES.cmake | 4 - samples/qt/Tutorial/ReadMe.md | 11 - samples/qt/Tutorial/Tutorial.pro | 114 - samples/qt/Tutorial/Tutorial0.pro | 5 - samples/qt/Tutorial/custom.bat.template | 5 - samples/qt/Tutorial/custom.sh.template | 5 - samples/qt/Tutorial/env.bat | 13 - samples/qt/Tutorial/env.sh | 27 - samples/qt/Tutorial/genproj.bat | 13 - samples/qt/Tutorial/make.sh | 14 - samples/qt/Tutorial/msvc.bat | 19 - samples/qt/Tutorial/res/Bottle.png | Bin 284 -> 0 bytes .../qt/Tutorial/res/SampleImportExport.png | Bin 342 -> 0 bytes samples/qt/Tutorial/run.bat | 23 - samples/qt/Tutorial/run.sh | 37 - samples/qt/Tutorial/src/ApplicationTut.cxx | 70 - samples/qt/Tutorial/src/ApplicationTut.h | 30 - samples/qt/Tutorial/src/DocumentTut.cxx | 52 - samples/qt/Tutorial/src/DocumentTut.h | 24 - samples/qt/Tutorial/src/Main.cxx | 52 - samples/qt/Tutorial/src/MakeBottle.cxx | 193 - samples/qt/Tutorial/src/Tutorial-icon.ts | 10 - samples/qt/Tutorial/src/Tutorial-string.ts | 26 - samples/webgl/.gitignore | 2 - samples/webgl/CMakeLists.txt | 83 - samples/webgl/ReadMe.md | 31 - samples/webgl/WasmOcctView.cpp | 993 ---- samples/webgl/WasmOcctView.h | 256 - samples/webgl/images/sample_webgl.png | Bin 75733 -> 0 bytes samples/webgl/main.cpp | 69 - samples/webgl/occt-webgl-sample.html | 93 - samples/webgl/occt-webgl-viewer.js | 28 - samples/xaml/App.xaml | 7 - samples/xaml/App.xaml.cpp | 124 - samples/xaml/App.xaml.h | 27 - .../xaml/Assets/LockScreenLogo.scale-200.png | Bin 1430 -> 0 bytes .../xaml/Assets/SplashScreen.scale-200.png | Bin 7700 -> 0 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 2937 -> 0 bytes .../xaml/Assets/Square44x44Logo.scale-200.png | Bin 1647 -> 0 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 1255 -> 0 bytes samples/xaml/Assets/StoreLogo.png | Bin 1451 -> 0 bytes .../xaml/Assets/Wide310x150Logo.scale-200.png | Bin 3204 -> 0 bytes samples/xaml/CMakeLists.txt | 112 - samples/xaml/MainPage.xaml | 47 - samples/xaml/MainPage.xaml.cpp | 436 -- samples/xaml/MainPage.xaml.h | 51 - samples/xaml/Package.appxmanifest | 49 - samples/xaml/ReadMe.md | 20 - samples/xaml/pch.cpp | 6 - samples/xaml/pch.h | 11 - samples/xaml/uwp_TemporaryKey.pfx | Bin 2446 -> 0 bytes src/Draw/TKDraw/Draw/Draw.cxx | 7 - tests/bugs/moddata_3/bug31136_1 | 2 +- tests/bugs/moddata_3/bug31136_2 | 2 +- tests/bugs/moddata_3/bug31136_3 | 2 +- tests/bugs/moddata_3/bug31136_4 | 2 +- tests/de_mesh/gltf_write/spheres | 2 +- tests/demo/samples/anc101 | 2 +- tests/demo/samples/bottle | 2 +- tests/demo/samples/cad | 2 +- tests/demo/samples/cpu | 2 +- tests/demo/samples/cutter | 2 +- tests/demo/samples/dimensions | 2 +- tests/demo/samples/dimensionsglsl | 2 +- tests/demo/samples/dimensionspbr | 2 +- tests/demo/samples/drill | 2 +- tests/demo/samples/gehause | 2 +- tests/demo/samples/logo2019 | 2 +- tests/demo/samples/materials | 2 +- tests/demo/samples/pencil | 2 +- tests/demo/samples/penrose | 2 +- tests/demo/samples/raytrace | 2 +- tests/demo/samples/snowflake | 2 +- tests/demo/samples/xde | 2 +- .../data/markers/bug23654_MarkersRecompute | 2 +- .../data/markers/bug24131_markers_bitmap | 2 +- .../opengl/data/markers/bug24131_markers_core | 2 +- .../opengl/data/markers/bug24131_markers_glsl | 2 +- .../data/markers/bug24131_markers_sprites | 2 +- tests/opengl/data/raytrace/bug31279 | 2 +- tests/opengl/data/raytrace/sample_ball | 2 +- tests/opengl/data/silhouette/outline2 | 2 +- tests/v3d/materials/phong1 | 2 +- tests/v3d/materials/raytrace1 | 2 +- tools/ReadMe.md | 18 - 826 files changed, 43 insertions(+), 83745 deletions(-) delete mode 100644 .github/actions/build-sample-csharp/action.yml delete mode 100644 .github/actions/build-sample-mfc/action.yml delete mode 100644 .github/actions/build-sample-qt/action.yml delete mode 100644 .github/actions/build-tinspector/action.yml delete mode 100644 adm/SAMPLES delete mode 100644 adm/SAMPLES_RESOURCES delete mode 100644 adm/templates/env.samples.bat.in delete mode 100644 adm/templates/env.samples.sh.in delete mode 100644 adm/templates/sample.bat delete mode 100644 adm/templates/sample.sh delete mode 100644 adm/templates/uwp.toolchain.config.cmake rename {samples => resources/samples}/tcl/ANC101.tcl (100%) rename {samples => resources/samples}/tcl/DataExchangeDemo.tcl (100%) rename {samples => resources/samples}/tcl/MBBGehauseRohteil.tcl (100%) rename {samples => resources/samples}/tcl/ModelingDemo.tcl (100%) rename {samples => resources/samples}/tcl/Penrose.tcl (100%) rename {samples => resources/samples}/tcl/Readme.txt (71%) rename {samples => resources/samples}/tcl/VisualizationDemo.tcl (100%) rename {samples => resources/samples}/tcl/bottle.tcl (100%) rename {samples => resources/samples}/tcl/cad.tcl (100%) rename {samples => resources/samples}/tcl/cpu.tcl (100%) rename {samples => resources/samples}/tcl/cutter.tcl (100%) rename {samples => resources/samples}/tcl/dimensions.tcl (100%) rename {samples => resources/samples}/tcl/drill.tcl (100%) rename {samples => resources/samples}/tcl/logo2019.tcl (100%) rename {samples => resources/samples}/tcl/markers.tcl (100%) rename {samples => resources/samples}/tcl/materials.tcl (100%) rename {samples => resources/samples}/tcl/pathtrace_ball.tcl (100%) rename {samples => resources/samples}/tcl/pathtrace_cube.tcl (100%) rename {samples => resources/samples}/tcl/pathtrace_materials.tcl (100%) rename {samples => resources/samples}/tcl/pencil.tcl (100%) rename {samples => resources/samples}/tcl/raytrace.tcl (100%) rename {samples => resources/samples}/tcl/snowflake.tcl (100%) rename {samples => resources/samples}/tcl/spheres.tcl (100%) rename {samples => resources/samples}/tcl/vis_pbr_spheres.tcl (100%) rename {samples => resources/samples}/tcl/xde.tcl (100%) delete mode 100644 samples/CSharp/CSharp.sln delete mode 100644 samples/CSharp/CSharp_D3D.sln delete mode 100644 samples/CSharp/OCCTProxy/OCCTProxy.cpp delete mode 100644 samples/CSharp/OCCTProxy/OCCTProxy.vcproj delete mode 100644 samples/CSharp/OCCTProxy/OCCTProxy.vcxproj delete mode 100644 samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp delete mode 100644 samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcproj delete mode 100644 samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcxproj delete mode 100644 samples/CSharp/ReadMe.md delete mode 100644 samples/CSharp/ReadMe_D3D.md delete mode 100644 samples/CSharp/WPF_D3D/About.xaml delete mode 100644 samples/CSharp/WPF_D3D/About.xaml.cs delete mode 100644 samples/CSharp/WPF_D3D/App.xaml delete mode 100644 samples/CSharp/WPF_D3D/App.xaml.cs delete mode 100644 samples/CSharp/WPF_D3D/D3DViewer.cs delete mode 100644 samples/CSharp/WPF_D3D/IECommands.cs delete mode 100644 samples/CSharp/WPF_D3D/IE_WPF_D3D.csproj delete mode 100644 samples/CSharp/WPF_D3D/MainWindow.xaml delete mode 100644 samples/CSharp/WPF_D3D/MainWindow.xaml.cs delete mode 100644 samples/CSharp/WPF_D3D/MaterialDlg.xaml delete mode 100644 samples/CSharp/WPF_D3D/MaterialDlg.xaml.cs delete mode 100644 samples/CSharp/WPF_D3D/OCCViewer.cs delete mode 100644 samples/CSharp/WPF_D3D/Properties/AssemblyInfo.cs delete mode 100644 samples/CSharp/WPF_D3D/Properties/Resources.Designer.cs delete mode 100644 samples/CSharp/WPF_D3D/Properties/Resources.resx delete mode 100644 samples/CSharp/WPF_D3D/Properties/Settings.Designer.cs delete mode 100644 samples/CSharp/WPF_D3D/Properties/Settings.settings delete mode 100644 samples/CSharp/WPF_D3D/Simple Styles.xaml delete mode 100644 samples/CSharp/WPF_D3D/TransparencyDialog.cs delete mode 100644 samples/CSharp/WPF_D3D/TransparencyDialog.resx delete mode 100644 samples/CSharp/WPF_D3D/app.config delete mode 100644 samples/CSharp/WPF_D3D/res/MainFrame.ico delete mode 100644 samples/CSharp/WPF_D3D/res/document.png delete mode 100644 samples/CSharp/WPF_D3D/res/help.png delete mode 100644 samples/CSharp/WPF_D3D/res/lamp.png delete mode 100644 samples/CSharp/WPF_D3D/res/new.png delete mode 100644 samples/CSharp/WPF_D3D/res/occ_logo.bmp delete mode 100644 samples/CSharp/WPF_D3D/res/tool_color.png delete mode 100644 samples/CSharp/WPF_D3D/res/tool_delete.png delete mode 100644 samples/CSharp/WPF_D3D/res/tool_material.png delete mode 100644 samples/CSharp/WPF_D3D/res/tool_shading.png delete mode 100644 samples/CSharp/WPF_D3D/res/tool_transparency.png delete mode 100644 samples/CSharp/WPF_D3D/res/tool_wireframe.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_axo.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_back.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_bottom.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_comp_off.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_comp_on.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_fitall.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_fitarea.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_front.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_glpan.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_left.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_pan.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_reset.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_right.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_rotate.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_top.png delete mode 100644 samples/CSharp/WPF_D3D/res/view_zoom.png delete mode 100644 samples/CSharp/WPF_WinForms/About.xaml delete mode 100644 samples/CSharp/WPF_WinForms/About.xaml.cs delete mode 100644 samples/CSharp/WPF_WinForms/App.xaml delete mode 100644 samples/CSharp/WPF_WinForms/App.xaml.cs delete mode 100644 samples/CSharp/WPF_WinForms/IECommands.cs delete mode 100644 samples/CSharp/WPF_WinForms/IE_WPF_WinForms.csproj delete mode 100644 samples/CSharp/WPF_WinForms/MainWindow.xaml delete mode 100644 samples/CSharp/WPF_WinForms/MainWindow.xaml.cs delete mode 100644 samples/CSharp/WPF_WinForms/MaterialDlg.xaml delete mode 100644 samples/CSharp/WPF_WinForms/MaterialDlg.xaml.cs delete mode 100644 samples/CSharp/WPF_WinForms/OCCViewer.cs delete mode 100644 samples/CSharp/WPF_WinForms/Properties/AssemblyInfo.cs delete mode 100644 samples/CSharp/WPF_WinForms/Properties/Resources.Designer.cs delete mode 100644 samples/CSharp/WPF_WinForms/Properties/Resources.resx delete mode 100644 samples/CSharp/WPF_WinForms/Properties/Settings.Designer.cs delete mode 100644 samples/CSharp/WPF_WinForms/Properties/Settings.settings delete mode 100644 samples/CSharp/WPF_WinForms/Simple Styles.xaml delete mode 100644 samples/CSharp/WPF_WinForms/TransparencyDialog.cs delete mode 100644 samples/CSharp/WPF_WinForms/TransparencyDialog.resx delete mode 100644 samples/CSharp/WPF_WinForms/app.config delete mode 100644 samples/CSharp/WPF_WinForms/res/MainFrame.ico delete mode 100644 samples/CSharp/WPF_WinForms/res/document.png delete mode 100644 samples/CSharp/WPF_WinForms/res/help.png delete mode 100644 samples/CSharp/WPF_WinForms/res/lamp.png delete mode 100644 samples/CSharp/WPF_WinForms/res/new.png delete mode 100644 samples/CSharp/WPF_WinForms/res/occ_logo.bmp delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_color.png delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_delete.png delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_material.png delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_shading.png delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_transparency.png delete mode 100644 samples/CSharp/WPF_WinForms/res/tool_wireframe.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_axo.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_back.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_bottom.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_comp_off.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_comp_on.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_fitall.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_fitarea.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_front.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_glpan.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_left.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_pan.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_reset.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_right.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_rotate.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_top.png delete mode 100644 samples/CSharp/WPF_WinForms/res/view_zoom.png delete mode 100644 samples/CSharp/WinForms/AboutDialog.cs delete mode 100644 samples/CSharp/WinForms/AboutDialog.resx delete mode 100644 samples/CSharp/WinForms/App.ico delete mode 100644 samples/CSharp/WinForms/AssemblyInfo.cs delete mode 100644 samples/CSharp/WinForms/Form1.cs delete mode 100644 samples/CSharp/WinForms/Form1.resx delete mode 100644 samples/CSharp/WinForms/Form2.cs delete mode 100644 samples/CSharp/WinForms/Form2.resx delete mode 100644 samples/CSharp/WinForms/IE_WinForms.csproj delete mode 100644 samples/CSharp/WinForms/MaterialDialog.cs delete mode 100644 samples/CSharp/WinForms/MaterialDialog.resx delete mode 100644 samples/CSharp/WinForms/TransparencyDialog.cs delete mode 100644 samples/CSharp/WinForms/TransparencyDialog.resx delete mode 100644 samples/CSharp/WinForms/app.config delete mode 100644 samples/CSharp/env.bat delete mode 100644 samples/CSharp/images/samples_c__ie.png delete mode 100644 samples/CSharp/msvc.bat delete mode 100644 samples/CSharp/msvc_D3D.bat delete mode 100644 samples/CSharp/run.bat delete mode 100644 samples/CSharp/run_winforms.bat delete mode 100644 samples/CSharp/run_wpf.bat delete mode 100644 samples/CSharp/run_wpf_D3D.bat delete mode 100644 samples/glfw/CMakeLists.txt delete mode 100644 samples/glfw/GlfwOcctView.cpp delete mode 100644 samples/glfw/GlfwOcctView.h delete mode 100644 samples/glfw/GlfwOcctWindow.cpp delete mode 100644 samples/glfw/GlfwOcctWindow.h delete mode 100644 samples/glfw/adm/cmake/FindOpenCASCADE.cmake delete mode 100644 samples/glfw/main.cpp delete mode 100644 samples/glfw/readme.md delete mode 100644 samples/ios/UIKitSample/ReadMe.md delete mode 100644 samples/ios/UIKitSample/UIKitSample.xcodeproj/project.pbxproj delete mode 100644 samples/ios/UIKitSample/UIKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 samples/ios/UIKitSample/UIKitSample/AppDelegate.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/AppDelegate.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png delete mode 100644 samples/ios/UIKitSample/UIKitSample/Base.lproj/LaunchScreen.storyboard delete mode 100644 samples/ios/UIKitSample/UIKitSample/CafShapePrs.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/CafShapePrs.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/GLView.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/GLView.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/GLViewController.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/GLViewController.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/Info.plist delete mode 100644 samples/ios/UIKitSample/UIKitSample/OcctDocument.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/OcctDocument.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/OcctViewer.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/OcctViewer.mm delete mode 100644 samples/ios/UIKitSample/UIKitSample/ViewController.h delete mode 100644 samples/ios/UIKitSample/UIKitSample/ViewController.m delete mode 100644 samples/ios/UIKitSample/UIKitSample/main.mm delete mode 100644 samples/ios/UIKitSample/images/sample_ios_uikit.png delete mode 100644 samples/java/jniviewer/.gitattributes delete mode 100644 samples/java/jniviewer/.gitignore delete mode 100644 samples/java/jniviewer/ReadMe.md delete mode 100644 samples/java/jniviewer/app/build.gradle delete mode 100644 samples/java/jniviewer/app/src/main/AndroidManifest.xml delete mode 100644 samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniActivity.java delete mode 100644 samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniFileDialog.java delete mode 100644 samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniLogger.java delete mode 100644 samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniRenderer.java delete mode 100644 samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniView.java delete mode 100644 samples/java/jniviewer/app/src/main/jni/CMakeLists.txt delete mode 100644 samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.cxx delete mode 100644 samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.hxx delete mode 100644 samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.cxx delete mode 100644 samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.hxx delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/close_l.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/close_p.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/fit.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/info.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/info_image.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/message.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/open.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_l.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_p.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_back.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_bottom.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_front.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_left.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_right.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_top.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-hdpi/view.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-mdpi/ic_launcher.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100644 samples/java/jniviewer/app/src/main/res/drawable-xxhdpi/ic_launcher.png delete mode 100644 samples/java/jniviewer/app/src/main/res/layout/activity_main.xml delete mode 100644 samples/java/jniviewer/app/src/main/res/values/id.xml delete mode 100644 samples/java/jniviewer/app/src/main/res/values/strings.xml delete mode 100644 samples/java/jniviewer/build.gradle delete mode 100644 samples/java/jniviewer/gradle.properties.template delete mode 100644 samples/java/jniviewer/images/samples_java_android_occt.jpg delete mode 100644 samples/java/jniviewer/settings.gradle delete mode 100644 samples/mfc/standard/01_Geometry/CMakeLists.txt delete mode 100644 samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj delete mode 100644 samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj.filters delete mode 100755 samples/mfc/standard/01_Geometry/res/Geometry.rc delete mode 100755 samples/mfc/standard/01_Geometry/res/Toolbar1.bmp delete mode 100755 samples/mfc/standard/01_Geometry/res/Toolbar2.bmp delete mode 100755 samples/mfc/standard/01_Geometry/res/resource.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ChildFrm.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ChildFrm.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ChildFrm2d.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ChildFrm2d.h delete mode 100755 samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.cxx delete mode 100755 samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.hxx delete mode 100755 samples/mfc/standard/01_Geometry/src/GeomSources.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/GeomSources.h delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryApp.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryApp.h delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryDoc.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryDoc.h delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryView.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryView.h delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryView2D.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/GeometryView2D.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.h delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.h delete mode 100755 samples/mfc/standard/01_Geometry/src/MainFrm.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/MainFrm.h delete mode 100755 samples/mfc/standard/01_Geometry/src/StdAfx.cpp delete mode 100755 samples/mfc/standard/01_Geometry/src/StdAfx.h delete mode 100644 samples/mfc/standard/02_Modeling/CMakeLists.txt delete mode 100644 samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj delete mode 100644 samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj.filters delete mode 100755 samples/mfc/standard/02_Modeling/res/Modeling.rc delete mode 100755 samples/mfc/standard/02_Modeling/res/RCa04828 delete mode 100755 samples/mfc/standard/02_Modeling/res/Toolbar.bmp delete mode 100755 samples/mfc/standard/02_Modeling/res/fram2.bmp delete mode 100755 samples/mfc/standard/02_Modeling/res/resource.h delete mode 100755 samples/mfc/standard/02_Modeling/src/ISession_Direction.cpp delete mode 100755 samples/mfc/standard/02_Modeling/src/ISession_Direction.h delete mode 100755 samples/mfc/standard/02_Modeling/src/ModelingApp.cpp delete mode 100755 samples/mfc/standard/02_Modeling/src/ModelingApp.h delete mode 100755 samples/mfc/standard/02_Modeling/src/ModelingDoc.cpp delete mode 100755 samples/mfc/standard/02_Modeling/src/ModelingDoc.h delete mode 100755 samples/mfc/standard/02_Modeling/src/State.h delete mode 100755 samples/mfc/standard/02_Modeling/src/StdAfx.cpp delete mode 100755 samples/mfc/standard/02_Modeling/src/StdAfx.h delete mode 100644 samples/mfc/standard/03_ImportExport/CMakeLists.txt delete mode 100644 samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj delete mode 100644 samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj.filters delete mode 100644 samples/mfc/standard/03_ImportExport/res/ImportExport.rc delete mode 100644 samples/mfc/standard/03_ImportExport/res/Toolbar.bmp delete mode 100644 samples/mfc/standard/03_ImportExport/res/resource.h delete mode 100644 samples/mfc/standard/03_ImportExport/src/ColoredShapes.cpp delete mode 100644 samples/mfc/standard/03_ImportExport/src/ColoredShapes.h delete mode 100644 samples/mfc/standard/03_ImportExport/src/ImportExportApp.cpp delete mode 100644 samples/mfc/standard/03_ImportExport/src/ImportExportApp.h delete mode 100644 samples/mfc/standard/03_ImportExport/src/ImportExportDoc.cpp delete mode 100644 samples/mfc/standard/03_ImportExport/src/ImportExportDoc.h delete mode 100644 samples/mfc/standard/03_ImportExport/src/StdAfx.cpp delete mode 100644 samples/mfc/standard/03_ImportExport/src/StdAfx.h delete mode 100644 samples/mfc/standard/04_HLR/CMakeLists.txt delete mode 100644 samples/mfc/standard/04_HLR/README.txt delete mode 100644 samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj delete mode 100644 samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj.filters delete mode 100644 samples/mfc/standard/04_HLR/res/AXOVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BACKVIEWD.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BACKVIEWF.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BACKVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BOTTOMVIEWD.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BOTTOMVIEWF.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/BOTTOMVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/ChildFrame2D.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/ChildFrame3D.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/FRONTVIEWD.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/FRONTVIEWF.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/FRONTVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/HLR.rc delete mode 100644 samples/mfc/standard/04_HLR/res/LEFTVIEWD.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/LEFTVIEWF.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/LEFTVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/RIGHTVIEWD.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/RIGHTVIEWF.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/RIGHTVIEWU.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/ToolBarObjects.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/Toolbar.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/axoviewd.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/axoviewf.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/dummyd.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/dummyf.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/dummyu.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/resource.h delete mode 100644 samples/mfc/standard/04_HLR/res/topviewd.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/topviewf.bmp delete mode 100644 samples/mfc/standard/04_HLR/res/topviewu.bmp delete mode 100644 samples/mfc/standard/04_HLR/src/HLRApp.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/HLRApp.h delete mode 100644 samples/mfc/standard/04_HLR/src/HLRDoc.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/HLRDoc.h delete mode 100644 samples/mfc/standard/04_HLR/src/HLRView2D.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/HLRView2D.h delete mode 100644 samples/mfc/standard/04_HLR/src/HLRView3D.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/HLRView3D.h delete mode 100644 samples/mfc/standard/04_HLR/src/SelectionDialog.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/SelectionDialog.h delete mode 100644 samples/mfc/standard/04_HLR/src/StdAfx.cpp delete mode 100644 samples/mfc/standard/04_HLR/src/StdAfx.h delete mode 100644 samples/mfc/standard/All-vc10.sln delete mode 100644 samples/mfc/standard/All-vc11.sln delete mode 100644 samples/mfc/standard/All-vc12.sln delete mode 100644 samples/mfc/standard/All-vc14.sln delete mode 100644 samples/mfc/standard/All-vc141.sln delete mode 100644 samples/mfc/standard/All-vc142.sln delete mode 100755 samples/mfc/standard/Common/AISDialogs.cpp delete mode 100755 samples/mfc/standard/Common/AISDialogs.h delete mode 100644 samples/mfc/standard/Common/AngleParamsVerticesPage.cpp delete mode 100755 samples/mfc/standard/Common/AngleParamsVerticesPage.h delete mode 100755 samples/mfc/standard/Common/ColoredMeshDlg.cpp delete mode 100755 samples/mfc/standard/Common/ColoredMeshDlg.h delete mode 100644 samples/mfc/standard/Common/DimensionDlg.cpp delete mode 100755 samples/mfc/standard/Common/DimensionDlg.h delete mode 100755 samples/mfc/standard/Common/ISession2D/ISession2D_Shape.cpp delete mode 100755 samples/mfc/standard/Common/ISession2D/ISession2D_Shape.h delete mode 100755 samples/mfc/standard/Common/ImportExport/ImportExport.cpp delete mode 100755 samples/mfc/standard/Common/ImportExport/ImportExport.h delete mode 100755 samples/mfc/standard/Common/ImportExport/SaveSTEPDlg.cpp delete mode 100755 samples/mfc/standard/Common/ImportExport/SaveSTEPDlg.h delete mode 100644 samples/mfc/standard/Common/LengthParamsEdgePage.cpp delete mode 100755 samples/mfc/standard/Common/LengthParamsEdgePage.h delete mode 100644 samples/mfc/standard/Common/LengthParamsEdgesPage.cpp delete mode 100755 samples/mfc/standard/Common/LengthParamsEdgesPage.h delete mode 100644 samples/mfc/standard/Common/LengthParamsVerticesPage.cpp delete mode 100755 samples/mfc/standard/Common/LengthParamsVerticesPage.h delete mode 100755 samples/mfc/standard/Common/OCC_2dChildFrame.cpp delete mode 100755 samples/mfc/standard/Common/OCC_2dChildFrame.h delete mode 100755 samples/mfc/standard/Common/OCC_2dDoc.cpp delete mode 100755 samples/mfc/standard/Common/OCC_2dDoc.h delete mode 100755 samples/mfc/standard/Common/OCC_2dView.cpp delete mode 100755 samples/mfc/standard/Common/OCC_2dView.h delete mode 100755 samples/mfc/standard/Common/OCC_2dViewRD.cpp delete mode 100755 samples/mfc/standard/Common/OCC_2dViewRD.h delete mode 100755 samples/mfc/standard/Common/OCC_3dBaseDoc.cpp delete mode 100755 samples/mfc/standard/Common/OCC_3dBaseDoc.h delete mode 100755 samples/mfc/standard/Common/OCC_3dChildFrame.cpp delete mode 100755 samples/mfc/standard/Common/OCC_3dChildFrame.h delete mode 100755 samples/mfc/standard/Common/OCC_3dDoc.cpp delete mode 100755 samples/mfc/standard/Common/OCC_3dDoc.h delete mode 100755 samples/mfc/standard/Common/OCC_3dView.cpp delete mode 100755 samples/mfc/standard/Common/OCC_3dView.h delete mode 100644 samples/mfc/standard/Common/OCC_App.cpp delete mode 100755 samples/mfc/standard/Common/OCC_App.h delete mode 100755 samples/mfc/standard/Common/OCC_BaseChildFrame.cpp delete mode 100755 samples/mfc/standard/Common/OCC_BaseChildFrame.h delete mode 100755 samples/mfc/standard/Common/OCC_BaseDoc.cpp delete mode 100755 samples/mfc/standard/Common/OCC_BaseDoc.h delete mode 100755 samples/mfc/standard/Common/OCC_BaseView.cpp delete mode 100755 samples/mfc/standard/Common/OCC_BaseView.h delete mode 100755 samples/mfc/standard/Common/OCC_ChildFrame.cpp delete mode 100755 samples/mfc/standard/Common/OCC_ChildFrame.h delete mode 100755 samples/mfc/standard/Common/OCC_MainFrame.cpp delete mode 100755 samples/mfc/standard/Common/OCC_MainFrame.h delete mode 100644 samples/mfc/standard/Common/OCC_StereoConfigDlg.cpp delete mode 100644 samples/mfc/standard/Common/OCC_StereoConfigDlg.h delete mode 100644 samples/mfc/standard/Common/ParamsFacesPage.cpp delete mode 100644 samples/mfc/standard/Common/ParamsFacesPage.h delete mode 100644 samples/mfc/standard/Common/RadiusParamsPage.cpp delete mode 100755 samples/mfc/standard/Common/RadiusParamsPage.h delete mode 100755 samples/mfc/standard/Common/Resource2D/CircularGrid.cpp delete mode 100755 samples/mfc/standard/Common/Resource2D/CircularGrid.h delete mode 100755 samples/mfc/standard/Common/Resource2D/RectangularGrid.cpp delete mode 100755 samples/mfc/standard/Common/Resource2D/RectangularGrid.h delete mode 100755 samples/mfc/standard/Common/ResultDialog.cpp delete mode 100755 samples/mfc/standard/Common/ResultDialog.h delete mode 100755 samples/mfc/standard/Common/StdAfx.h delete mode 100755 samples/mfc/standard/Common/Winmain.cpp delete mode 100755 samples/mfc/standard/Common/res/2dChildFrameTB.bmp delete mode 100755 samples/mfc/standard/Common/res/2dType.ico delete mode 100755 samples/mfc/standard/Common/res/3dChildFrameTB.bmp delete mode 100755 samples/mfc/standard/Common/res/3dType.ico delete mode 100755 samples/mfc/standard/Common/res/AIS_TB.bmp delete mode 100755 samples/mfc/standard/Common/res/MainFrame.ico delete mode 100755 samples/mfc/standard/Common/res/OCC_Resource.h delete mode 100755 samples/mfc/standard/Common/res/OCC_Resource.rc delete mode 100644 samples/mfc/standard/Common/res/ToolbarRayTracing.bmp delete mode 100755 samples/mfc/standard/Common/res/coloredm.bmp delete mode 100755 samples/mfc/standard/Common/res/occ_logo.bmp delete mode 100644 samples/mfc/standard/ReadMe.md delete mode 100644 samples/mfc/standard/env.bat delete mode 100644 samples/mfc/standard/images/samples_mvc.png delete mode 100644 samples/mfc/standard/mfcsample/CMakeLists.txt delete mode 100644 samples/mfc/standard/mfcsample/adm/win/vc10/mfcsample.vcxproj delete mode 100644 samples/mfc/standard/mfcsample/adm/win/vc10/mfcsample.vcxproj.filters delete mode 100755 samples/mfc/standard/mfcsample/src/StdAfx.cpp delete mode 100755 samples/mfc/standard/mfcsample/src/mfcsample.cpp delete mode 100644 samples/mfc/standard/msvc.bat delete mode 100644 samples/mfc/standard/run.bat delete mode 100644 samples/ocafsamples/TDataStd_Sample.cxx delete mode 100644 samples/ocafsamples/TDocStd_Sample.cxx delete mode 100644 samples/ocafsamples/TNaming_Sample.cxx delete mode 100644 samples/ocafsamples/TPrsStd_Sample.cxx delete mode 100644 samples/ocafsamples/readme.txt delete mode 100644 samples/qt/AndroidQt/.gitignore delete mode 100644 samples/qt/AndroidQt/AndroidQt.pro delete mode 100644 samples/qt/AndroidQt/AndroidQt0.pro delete mode 100644 samples/qt/AndroidQt/CMakeLists.txt delete mode 100644 samples/qt/AndroidQt/Deployment.pri delete mode 100644 samples/qt/AndroidQt/EXTERNLIB.cmake delete mode 100644 samples/qt/AndroidQt/FILES.cmake delete mode 100644 samples/qt/AndroidQt/OCCT.pri delete mode 100644 samples/qt/AndroidQt/PACKAGES.cmake delete mode 100644 samples/qt/AndroidQt/ReadMe.md delete mode 100644 samples/qt/AndroidQt/android/AndroidManifest.xml delete mode 100644 samples/qt/AndroidQt/android/assets/opencascade/shared/.gitignore delete mode 100644 samples/qt/AndroidQt/android/res/drawable-hdpi/ic_launcher.png delete mode 100644 samples/qt/AndroidQt/android/res/drawable-mdpi/ic_launcher.png delete mode 100644 samples/qt/AndroidQt/android/res/drawable-xhdpi/ic_launcher.png delete mode 100644 samples/qt/AndroidQt/android/res/drawable-xxhdpi/ic_launcher.png delete mode 100644 samples/qt/AndroidQt/android/res/values/strings.xml delete mode 100644 samples/qt/AndroidQt/android/src/org/qtproject/example/AndroidQt/AndroidQt.java delete mode 100644 samples/qt/AndroidQt/custom.bat delete mode 100644 samples/qt/AndroidQt/env.bat delete mode 100644 samples/qt/AndroidQt/genproj.bat delete mode 100644 samples/qt/AndroidQt/images/samples_qml_android_occt.jpg delete mode 100644 samples/qt/AndroidQt/msvc.bat delete mode 100644 samples/qt/AndroidQt/res/icons/ic_action_collection.png delete mode 100644 samples/qt/AndroidQt/res/qml/main.qml delete mode 100644 samples/qt/AndroidQt/src/AndroidQt.cxx delete mode 100644 samples/qt/AndroidQt/src/AndroidQt.h delete mode 100644 samples/qt/AndroidQt/src/AndroidQt.qrc delete mode 100644 samples/qt/AndroidQt/src/AndroidQt_TouchParameters.cxx delete mode 100644 samples/qt/AndroidQt/src/AndroidQt_TouchParameters.h delete mode 100644 samples/qt/AndroidQt/src/AndroidQt_UserInteractionParameters.h delete mode 100644 samples/qt/AndroidQt/src/AndroidQt_Window.cxx delete mode 100644 samples/qt/AndroidQt/src/AndroidQt_Window.h delete mode 100644 samples/qt/AndroidQt/src/Main.cxx delete mode 100644 samples/qt/Common/res/antialiasing.png delete mode 100755 samples/qt/Common/res/cascade.png delete mode 100755 samples/qt/Common/res/close.png delete mode 100755 samples/qt/Common/res/cursor_rotate.png delete mode 100755 samples/qt/Common/res/cursor_zoom.png delete mode 100755 samples/qt/Common/res/document.png delete mode 100755 samples/qt/Common/res/help.png delete mode 100755 samples/qt/Common/res/lamp.png delete mode 100755 samples/qt/Common/res/new.png delete mode 100644 samples/qt/Common/res/raytracing.png delete mode 100644 samples/qt/Common/res/reflections.png delete mode 100644 samples/qt/Common/res/shadows.png delete mode 100755 samples/qt/Common/res/tile.png delete mode 100755 samples/qt/Common/res/tool-shading.png delete mode 100755 samples/qt/Common/res/tool_color.png delete mode 100755 samples/qt/Common/res/tool_delete.png delete mode 100755 samples/qt/Common/res/tool_material.png delete mode 100755 samples/qt/Common/res/tool_shading.png delete mode 100755 samples/qt/Common/res/tool_transparency.png delete mode 100755 samples/qt/Common/res/tool_wireframe.png delete mode 100755 samples/qt/Common/res/view_axo.png delete mode 100755 samples/qt/Common/res/view_back.png delete mode 100755 samples/qt/Common/res/view_bottom.png delete mode 100755 samples/qt/Common/res/view_comp_off.png delete mode 100755 samples/qt/Common/res/view_comp_on.png delete mode 100755 samples/qt/Common/res/view_fitall.png delete mode 100755 samples/qt/Common/res/view_fitarea.png delete mode 100755 samples/qt/Common/res/view_front.png delete mode 100755 samples/qt/Common/res/view_glpan.png delete mode 100755 samples/qt/Common/res/view_left.png delete mode 100755 samples/qt/Common/res/view_pan.png delete mode 100755 samples/qt/Common/res/view_reset.png delete mode 100755 samples/qt/Common/res/view_right.png delete mode 100755 samples/qt/Common/res/view_rotate.png delete mode 100755 samples/qt/Common/res/view_top.png delete mode 100755 samples/qt/Common/res/view_zoom.png delete mode 100755 samples/qt/Common/src/ApplicationCommon.cxx delete mode 100755 samples/qt/Common/src/ApplicationCommon.h delete mode 100755 samples/qt/Common/src/Common-icon.ts delete mode 100755 samples/qt/Common/src/Common-string.ts delete mode 100755 samples/qt/Common/src/CommonSample.h delete mode 100755 samples/qt/Common/src/DocumentCommon.cxx delete mode 100755 samples/qt/Common/src/DocumentCommon.h delete mode 100755 samples/qt/Common/src/MDIWindow.cxx delete mode 100755 samples/qt/Common/src/MDIWindow.h delete mode 100755 samples/qt/Common/src/Material.cxx delete mode 100755 samples/qt/Common/src/Material.h delete mode 100644 samples/qt/Common/src/OcctWindow.cxx delete mode 100644 samples/qt/Common/src/OcctWindow.h delete mode 100755 samples/qt/Common/src/Transparency.cxx delete mode 100755 samples/qt/Common/src/Transparency.h delete mode 100755 samples/qt/Common/src/View.cxx delete mode 100755 samples/qt/Common/src/View.h delete mode 100644 samples/qt/FuncDemo/CMakeLists.txt delete mode 100644 samples/qt/FuncDemo/EXTERNLIB.cmake delete mode 100644 samples/qt/FuncDemo/FILES.cmake delete mode 100644 samples/qt/FuncDemo/FuncDemo.pro delete mode 100644 samples/qt/FuncDemo/FuncDemo0.pro delete mode 100644 samples/qt/FuncDemo/PACKAGES.cmake delete mode 100644 samples/qt/FuncDemo/ReadMe.md delete mode 100644 samples/qt/FuncDemo/custom.bat delete mode 100644 samples/qt/FuncDemo/custom.sh delete mode 100644 samples/qt/FuncDemo/env.bat delete mode 100644 samples/qt/FuncDemo/env.sh delete mode 100644 samples/qt/FuncDemo/genproj.bat delete mode 100644 samples/qt/FuncDemo/images/new.png delete mode 100644 samples/qt/FuncDemo/images/open.png delete mode 100644 samples/qt/FuncDemo/images/save.png delete mode 100644 samples/qt/FuncDemo/make.sh delete mode 100644 samples/qt/FuncDemo/msvc.bat delete mode 100644 samples/qt/FuncDemo/run.bat delete mode 100644 samples/qt/FuncDemo/run.sh delete mode 100644 samples/qt/FuncDemo/src/BaseDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/BaseDriver.h delete mode 100644 samples/qt/FuncDemo/src/CircleDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/CircleDriver.h delete mode 100644 samples/qt/FuncDemo/src/ConeDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/ConeDriver.h delete mode 100644 samples/qt/FuncDemo/src/CylinderDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/CylinderDriver.h delete mode 100644 samples/qt/FuncDemo/src/FThread.cpp delete mode 100644 samples/qt/FuncDemo/src/FThread.h delete mode 100644 samples/qt/FuncDemo/src/FuncDemo.qrc delete mode 100644 samples/qt/FuncDemo/src/PointDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/PointDriver.h delete mode 100644 samples/qt/FuncDemo/src/PrismDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/PrismDriver.h delete mode 100644 samples/qt/FuncDemo/src/ShapeSaverDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/ShapeSaverDriver.h delete mode 100644 samples/qt/FuncDemo/src/SimpleDriver.cpp delete mode 100644 samples/qt/FuncDemo/src/SimpleDriver.h delete mode 100644 samples/qt/FuncDemo/src/edge.cpp delete mode 100644 samples/qt/FuncDemo/src/edge.h delete mode 100644 samples/qt/FuncDemo/src/graphwidget.cpp delete mode 100644 samples/qt/FuncDemo/src/graphwidget.h delete mode 100644 samples/qt/FuncDemo/src/main.cpp delete mode 100644 samples/qt/FuncDemo/src/mainwindow.cpp delete mode 100644 samples/qt/FuncDemo/src/mainwindow.h delete mode 100644 samples/qt/FuncDemo/src/node.cpp delete mode 100644 samples/qt/FuncDemo/src/node.h delete mode 100644 samples/qt/IESample/.gitignore delete mode 100644 samples/qt/IESample/CMakeLists.txt delete mode 100644 samples/qt/IESample/EXTERNLIB.cmake delete mode 100644 samples/qt/IESample/FILES.cmake delete mode 100755 samples/qt/IESample/IESample.pro delete mode 100644 samples/qt/IESample/IESample0.pro delete mode 100644 samples/qt/IESample/PACKAGES.cmake delete mode 100644 samples/qt/IESample/ReadMe.md delete mode 100644 samples/qt/IESample/custom.bat.template delete mode 100644 samples/qt/IESample/custom.sh.template delete mode 100755 samples/qt/IESample/env.bat delete mode 100755 samples/qt/IESample/env.sh delete mode 100644 samples/qt/IESample/genproj.bat delete mode 100644 samples/qt/IESample/images/samples_qt.png delete mode 100755 samples/qt/IESample/make.sh delete mode 100644 samples/qt/IESample/msvc.bat delete mode 100644 samples/qt/IESample/run.bat delete mode 100755 samples/qt/IESample/run.sh delete mode 100755 samples/qt/IESample/src/Main.cxx delete mode 100755 samples/qt/Interface/src/Application.cxx delete mode 100755 samples/qt/Interface/src/Application.h delete mode 100755 samples/qt/Interface/src/IESample.h delete mode 100755 samples/qt/Interface/src/Interface-string.ts delete mode 100755 samples/qt/Interface/src/Translate.cxx delete mode 100755 samples/qt/Interface/src/Translate.h delete mode 100644 samples/qt/OCCTOverview/.DS_Store delete mode 100644 samples/qt/OCCTOverview/.gitignore delete mode 100644 samples/qt/OCCTOverview/CMakeLists.txt delete mode 100644 samples/qt/OCCTOverview/EXTERNLIB.cmake delete mode 100644 samples/qt/OCCTOverview/FILES.cmake delete mode 100644 samples/qt/OCCTOverview/OCCTOverview.pro delete mode 100644 samples/qt/OCCTOverview/OCCTOverview0.pro delete mode 100644 samples/qt/OCCTOverview/PACKAGES.cmake delete mode 100644 samples/qt/OCCTOverview/ReadMe.md delete mode 100644 samples/qt/OCCTOverview/code/AdaptorCurve2d_AIS.cxx delete mode 100644 samples/qt/OCCTOverview/code/AdaptorCurve2d_AIS.h delete mode 100644 samples/qt/OCCTOverview/code/AdaptorCurve_AIS.cxx delete mode 100644 samples/qt/OCCTOverview/code/AdaptorCurve_AIS.h delete mode 100644 samples/qt/OCCTOverview/code/AdaptorPnt2d_AIS.cxx delete mode 100644 samples/qt/OCCTOverview/code/AdaptorPnt2d_AIS.h delete mode 100644 samples/qt/OCCTOverview/code/AdaptorVec_AIS.cxx delete mode 100644 samples/qt/OCCTOverview/code/AdaptorVec_AIS.h delete mode 100644 samples/qt/OCCTOverview/code/BaseSample.cxx delete mode 100644 samples/qt/OCCTOverview/code/BaseSample.h delete mode 100644 samples/qt/OCCTOverview/code/DataExchange.xml delete mode 100644 samples/qt/OCCTOverview/code/DataExchangeSamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/DataExchangeSamples.h delete mode 100644 samples/qt/OCCTOverview/code/Geometry.xml delete mode 100644 samples/qt/OCCTOverview/code/GeometrySamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/GeometrySamples.h delete mode 100644 samples/qt/OCCTOverview/code/MakeBottle.cxx delete mode 100644 samples/qt/OCCTOverview/code/MakeBottle.h delete mode 100644 samples/qt/OCCTOverview/code/Ocaf.xml delete mode 100644 samples/qt/OCCTOverview/code/OcafSamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/OcafSamples.h delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Face.cxx delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Face.h delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Image.cxx delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Image.h delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Markers.cxx delete mode 100644 samples/qt/OCCTOverview/code/Sample2D_Markers.h delete mode 100644 samples/qt/OCCTOverview/code/Samples.qrc delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_BoxDriver.cxx delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_BoxDriver.h delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_CutDriver.cxx delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_CutDriver.h delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_CylDriver.cxx delete mode 100644 samples/qt/OCCTOverview/code/TOcafFunction_CylDriver.h delete mode 100644 samples/qt/OCCTOverview/code/TOcaf_Application.cxx delete mode 100644 samples/qt/OCCTOverview/code/TOcaf_Application.h delete mode 100644 samples/qt/OCCTOverview/code/Topology.xml delete mode 100644 samples/qt/OCCTOverview/code/TopologySamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/TopologySamples.h delete mode 100644 samples/qt/OCCTOverview/code/Triangulation.xml delete mode 100644 samples/qt/OCCTOverview/code/TriangulationSamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/TriangulationSamples.h delete mode 100644 samples/qt/OCCTOverview/code/Viewer2d.xml delete mode 100644 samples/qt/OCCTOverview/code/Viewer2dSamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/Viewer2dSamples.h delete mode 100644 samples/qt/OCCTOverview/code/Viewer3d.xml delete mode 100644 samples/qt/OCCTOverview/code/Viewer3dSamples.cxx delete mode 100644 samples/qt/OCCTOverview/code/Viewer3dSamples.h delete mode 100644 samples/qt/OCCTOverview/custom.bat.template delete mode 100644 samples/qt/OCCTOverview/custom.sh.template delete mode 100644 samples/qt/OCCTOverview/env.bat delete mode 100644 samples/qt/OCCTOverview/env.sh delete mode 100644 samples/qt/OCCTOverview/genproj.bat delete mode 100644 samples/qt/OCCTOverview/images/sample_overview_qt.png delete mode 100644 samples/qt/OCCTOverview/make.sh delete mode 100644 samples/qt/OCCTOverview/msvc.bat delete mode 100644 samples/qt/OCCTOverview/res/antialiasing.png delete mode 100644 samples/qt/OCCTOverview/res/cursor_rotate.png delete mode 100644 samples/qt/OCCTOverview/res/cursor_zoom.png delete mode 100644 samples/qt/OCCTOverview/res/help.png delete mode 100644 samples/qt/OCCTOverview/res/lamp.png delete mode 100644 samples/qt/OCCTOverview/res/raytracing.png delete mode 100644 samples/qt/OCCTOverview/res/reflections.png delete mode 100644 samples/qt/OCCTOverview/res/shadows.png delete mode 100644 samples/qt/OCCTOverview/res/tool_color.png delete mode 100644 samples/qt/OCCTOverview/res/tool_delete.png delete mode 100644 samples/qt/OCCTOverview/res/tool_material.png delete mode 100644 samples/qt/OCCTOverview/res/tool_shading.png delete mode 100644 samples/qt/OCCTOverview/res/tool_transparency.png delete mode 100644 samples/qt/OCCTOverview/res/tool_wireframe.png delete mode 100644 samples/qt/OCCTOverview/res/view_axo.png delete mode 100644 samples/qt/OCCTOverview/res/view_back.png delete mode 100644 samples/qt/OCCTOverview/res/view_bottom.png delete mode 100644 samples/qt/OCCTOverview/res/view_comp_off.png delete mode 100644 samples/qt/OCCTOverview/res/view_comp_on.png delete mode 100644 samples/qt/OCCTOverview/res/view_fitall.png delete mode 100644 samples/qt/OCCTOverview/res/view_front.png delete mode 100644 samples/qt/OCCTOverview/res/view_left.png delete mode 100644 samples/qt/OCCTOverview/res/view_reset.png delete mode 100644 samples/qt/OCCTOverview/res/view_right.png delete mode 100644 samples/qt/OCCTOverview/res/view_top.png delete mode 100644 samples/qt/OCCTOverview/run.bat delete mode 100644 samples/qt/OCCTOverview/run.sh delete mode 100644 samples/qt/OCCTOverview/src/ApplicationCommon.cxx delete mode 100644 samples/qt/OCCTOverview/src/ApplicationCommon.h delete mode 100644 samples/qt/OCCTOverview/src/CommonSample.h delete mode 100644 samples/qt/OCCTOverview/src/DocumentCommon.cxx delete mode 100644 samples/qt/OCCTOverview/src/DocumentCommon.h delete mode 100644 samples/qt/OCCTOverview/src/GeomWidget.cxx delete mode 100644 samples/qt/OCCTOverview/src/GeomWidget.h delete mode 100644 samples/qt/OCCTOverview/src/Main.cxx delete mode 100644 samples/qt/OCCTOverview/src/OCCTOverview.qrc delete mode 100644 samples/qt/OCCTOverview/src/OcctHighlighter.cxx delete mode 100644 samples/qt/OCCTOverview/src/OcctHighlighter.h delete mode 100644 samples/qt/OCCTOverview/src/OcctWindow.cxx delete mode 100644 samples/qt/OCCTOverview/src/OcctWindow.h delete mode 100644 samples/qt/OCCTOverview/src/TranslateDialog.cxx delete mode 100644 samples/qt/OCCTOverview/src/TranslateDialog.h delete mode 100644 samples/qt/OCCTOverview/src/Transparency.cxx delete mode 100644 samples/qt/OCCTOverview/src/Transparency.h delete mode 100644 samples/qt/OCCTOverview/src/View.cxx delete mode 100644 samples/qt/OCCTOverview/src/View.h delete mode 100644 samples/qt/Tutorial/.gitignore delete mode 100644 samples/qt/Tutorial/CMakeLists.txt delete mode 100644 samples/qt/Tutorial/EXTERNLIB.cmake delete mode 100644 samples/qt/Tutorial/FILES.cmake delete mode 100644 samples/qt/Tutorial/PACKAGES.cmake delete mode 100644 samples/qt/Tutorial/ReadMe.md delete mode 100755 samples/qt/Tutorial/Tutorial.pro delete mode 100644 samples/qt/Tutorial/Tutorial0.pro delete mode 100644 samples/qt/Tutorial/custom.bat.template delete mode 100644 samples/qt/Tutorial/custom.sh.template delete mode 100755 samples/qt/Tutorial/env.bat delete mode 100755 samples/qt/Tutorial/env.sh delete mode 100644 samples/qt/Tutorial/genproj.bat delete mode 100644 samples/qt/Tutorial/make.sh delete mode 100644 samples/qt/Tutorial/msvc.bat delete mode 100755 samples/qt/Tutorial/res/Bottle.png delete mode 100755 samples/qt/Tutorial/res/SampleImportExport.png delete mode 100644 samples/qt/Tutorial/run.bat delete mode 100755 samples/qt/Tutorial/run.sh delete mode 100755 samples/qt/Tutorial/src/ApplicationTut.cxx delete mode 100755 samples/qt/Tutorial/src/ApplicationTut.h delete mode 100755 samples/qt/Tutorial/src/DocumentTut.cxx delete mode 100755 samples/qt/Tutorial/src/DocumentTut.h delete mode 100755 samples/qt/Tutorial/src/Main.cxx delete mode 100755 samples/qt/Tutorial/src/MakeBottle.cxx delete mode 100755 samples/qt/Tutorial/src/Tutorial-icon.ts delete mode 100755 samples/qt/Tutorial/src/Tutorial-string.ts delete mode 100644 samples/webgl/.gitignore delete mode 100644 samples/webgl/CMakeLists.txt delete mode 100644 samples/webgl/ReadMe.md delete mode 100644 samples/webgl/WasmOcctView.cpp delete mode 100644 samples/webgl/WasmOcctView.h delete mode 100644 samples/webgl/images/sample_webgl.png delete mode 100644 samples/webgl/main.cpp delete mode 100644 samples/webgl/occt-webgl-sample.html delete mode 100644 samples/webgl/occt-webgl-viewer.js delete mode 100644 samples/xaml/App.xaml delete mode 100644 samples/xaml/App.xaml.cpp delete mode 100644 samples/xaml/App.xaml.h delete mode 100644 samples/xaml/Assets/LockScreenLogo.scale-200.png delete mode 100644 samples/xaml/Assets/SplashScreen.scale-200.png delete mode 100644 samples/xaml/Assets/Square150x150Logo.scale-200.png delete mode 100644 samples/xaml/Assets/Square44x44Logo.scale-200.png delete mode 100644 samples/xaml/Assets/Square44x44Logo.targetsize-24_altform-unplated.png delete mode 100644 samples/xaml/Assets/StoreLogo.png delete mode 100644 samples/xaml/Assets/Wide310x150Logo.scale-200.png delete mode 100644 samples/xaml/CMakeLists.txt delete mode 100644 samples/xaml/MainPage.xaml delete mode 100644 samples/xaml/MainPage.xaml.cpp delete mode 100644 samples/xaml/MainPage.xaml.h delete mode 100644 samples/xaml/Package.appxmanifest delete mode 100644 samples/xaml/ReadMe.md delete mode 100644 samples/xaml/pch.cpp delete mode 100644 samples/xaml/pch.h delete mode 100644 samples/xaml/uwp_TemporaryKey.pfx delete mode 100644 tools/ReadMe.md diff --git a/.github/actions/build-sample-csharp/action.yml b/.github/actions/build-sample-csharp/action.yml deleted file mode 100644 index 1f02efb0ad..0000000000 --- a/.github/actions/build-sample-csharp/action.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: 'Build CSharp Sample' -description: 'Build CSharp sample using OCCT installation' - -inputs: - platform: - description: 'Build platform (windows)' - required: true - install-artifact-name: - description: 'OCCT installation artifact name' - required: true - -runs: - using: "composite" - steps: - - name: Download OCCT installation - uses: ./.github/actions/download-artifacts - with: - name: ${{ inputs.install-artifact-name }} - path: occt-install - - - name: Build CSharp Sample - if: inputs.platform == 'windows' - shell: cmd - run: | - REM Setup environment - call "${{ github.workspace }}\occt-install\env.bat" vc14 win64 Release - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" x64 - set "PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE;%PATH%" - - cd ${{ github.workspace }}/samples/CSharp - - REM First upgrade solutions to VS2022 - echo "Upgrading solution files to VS2022..." - devenv.exe CSharp.sln /upgrade - devenv.exe CSharp_D3D.sln /upgrade - - REM Update project platform toolset - powershell -Command "(Get-Content OCCTProxy\OCCTProxy.vcxproj) -replace 'v100', 'v143' | Set-Content OCCTProxy\OCCTProxy.vcxproj" - powershell -Command "(Get-Content OCCTProxy_D3D\OCCTProxy_D3D.vcxproj) -replace 'v100', 'v143' | Set-Content OCCTProxy_D3D\OCCTProxy_D3D.vcxproj" - - REM Restore NuGet packages - echo "Upgrading solution files..." - msbuild.exe CSharp.sln -t:Restore -p:Configuration=Release -p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=restore_csharp.log;Verbosity=detailed - msbuild.exe CSharp_D3D.sln -t:Restore -p:Configuration=Release -p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=restore_d3d.log;Verbosity=detailed - - REM Build solutions with real-time console output - echo "Building CSharp.sln..." - msbuild.exe CSharp.sln /p:Configuration=Release /p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=build_csharp.log;Verbosity=detailed /m - echo "Building CSharp_D3D.sln..." - msbuild.exe CSharp_D3D.sln /p:Configuration=Release /p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=build_d3d.log;Verbosity=detailed /m - - - name: Upload CSharp Sample - uses: actions/upload-artifact@v4.6.2 - with: - name: csharp-sample-${{ inputs.platform }}-x64 - path: samples/CSharp - retention-days: 7 diff --git a/.github/actions/build-sample-mfc/action.yml b/.github/actions/build-sample-mfc/action.yml deleted file mode 100644 index e4103b2415..0000000000 --- a/.github/actions/build-sample-mfc/action.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: 'Build MFC Sample' -description: 'Build MFC sample using OCCT installation' - -inputs: - platform: - description: 'Build platform (windows)' - required: true - install-artifact-name: - description: 'OCCT installation artifact name' - required: true - -runs: - using: "composite" - steps: - - name: Download OCCT installation - uses: ./.github/actions/download-artifacts - with: - name: ${{ inputs.install-artifact-name }} - path: occt-install - - - name: Build MFC Sample - if: inputs.platform == 'windows' - shell: cmd - run: | - REM Setup environment - call "${{ github.workspace }}\occt-install\env.bat" vc14 win64 Release - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" x64 - - cd ${{ github.workspace }}/samples/mfc/standard - set "PATH=C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE;%PATH%" - - REM First restore the solution - echo "Restoring solution..." - msbuild.exe ALL-vc14.sln -t:Restore -p:Configuration=Release -p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=restore.log;Verbosity=detailed - - REM Build solution with detailed logging - echo "Building solution..." - msbuild.exe ALL-vc14.sln /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v143 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=build.log;Verbosity=detailed /m - - REM Display logs if build fails - if errorlevel 1 ( - echo "Build failed. Contents of restore.log:" - type restore.log - echo "Contents of build.log:" - type build.log - exit /b 1 - ) - - - name: Upload MFC Sample - uses: actions/upload-artifact@v4.6.2 - with: - name: mfc-sample-${{ inputs.platform }}-x64 - path: samples/mfc/ - retention-days: 7 diff --git a/.github/actions/build-sample-qt/action.yml b/.github/actions/build-sample-qt/action.yml deleted file mode 100644 index c910d6829d..0000000000 --- a/.github/actions/build-sample-qt/action.yml +++ /dev/null @@ -1,125 +0,0 @@ -name: 'Build Qt Sample' -description: 'Build Qt samples using OCCT installation' - -inputs: - platform: - description: 'Build platform (windows/linux)' - required: true - install-artifact-name: - description: 'OCCT installation artifact name' - required: true - thirdparty_url: - description: 'URL to download 3rdparty dependencies' - required: false - default: 'https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_9_0_beta1/3rdparty-vc14-64.zip' - -runs: - using: "composite" - steps: - - name: Download OCCT installation - uses: ./.github/actions/download-artifacts - with: - name: ${{ inputs.install-artifact-name }} - path: occt-install - - - name: Download vcpkg cache - uses: ./.github/actions/download-vcpkg-cache - with: - artifact-name: ${{ inputs.install-artifact-name }}-cache - - - name: Install Windows dependencies - if: inputs.platform == 'windows' - shell: pwsh - run: | - Invoke-WebRequest -Uri ${{ inputs.thirdparty_url }} -OutFile 3rdparty-vc14-64.zip - Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath . - Remove-Item 3rdparty-vc14-64.zip - - - name: Install Linux dependencies - if: inputs.platform == 'linux' - shell: bash - run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev qtbase5-dev qt5-qmake qtbase5-dev-tools qtdeclarative5-dev qttools5-dev qttools5-dev-tools - - - name: Setup MSBuild - if: inputs.platform == 'windows' - uses: microsoft/setup-msbuild@v2 - - - name: Build Qt Samples - Windows - if: inputs.platform == 'windows' - shell: cmd - run: | - REM Setup environment - cd ${{ github.workspace }}/occt-install/ - call env.bat vc14 win64 Release - - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" x64 - - REM Setup Qt environment - set "QTDIR=${{ github.workspace }}\3rdparty-vc14-64\qt5.11.2-vc14-64" - set "PATH=%QTDIR%\bin;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE;%PATH%" - - cd ${{ github.workspace }}/samples/qt - - for %%s in (IESample Tutorial FuncDemo) do ( - cd %%s - echo "Generating project for %%s..." - qmake -tp vc -r -o %%s.sln %%s0.pro - - echo "Restoring %%s..." - msbuild.exe %%s.sln -t:Restore -p:Configuration=Release -p:Platform=x64 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=%%s_restore.log;Verbosity=detailed - - echo "Building %%s..." - msbuild.exe %%s.sln /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v143 /consoleloggerparameters:Verbosity=normal;Summary /flp:LogFile=%%s_build.log;Verbosity=detailed /m - - REM Display logs if build fails - if errorlevel 1 ( - echo "Build failed for %%s. Contents of restore log:" - type %%s_restore.log - echo "Contents of build log:" - type %%s_build.log - exit /b 1 - ) - - cd .. - ) - - - name: Build Qt Samples - Linux - if: inputs.platform == 'linux' - shell: bash - run: | - cd ${{ github.workspace }}/occt-install/bin - source env.sh - - # Set library paths for vcpkg dependencies - export LD_LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib:${{ github.workspace }}/occt-install/lib:$LD_LIBRARY_PATH" - export LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib:${{ github.workspace }}/occt-install/lib:$LIBRARY_PATH" - export PKG_CONFIG_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib/pkgconfig:$PKG_CONFIG_PATH" - - cd ${{ github.workspace }}/samples/qt - - for sample in IESample Tutorial FuncDemo; do - cd $sample - aQMakePath=`which qmake` - host=`uname -s` - export STATION=$host - export RES_DIR="${{ github.workspace }}/samples/qt/${sample}/result" - - # Configure qmake with vcpkg paths - qmake $sample.pro \ - "LIBS += -L${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib" \ - "LIBS += -Wl,-rpath,${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib" \ - "INCLUDEPATH += ${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/include" - - aNbJobs="$(getconf _NPROCESSORS_ONLN)" - make -j$aNbJobs release - cd .. - done - - - name: Upload Qt Samples - uses: actions/upload-artifact@v4.6.2 - with: - name: qt-samples-${{ inputs.platform }}-x64 - path: | - samples/qt/ - samples/qt/ - retention-days: 7 diff --git a/.github/actions/build-tinspector/action.yml b/.github/actions/build-tinspector/action.yml deleted file mode 100644 index 2565967e8f..0000000000 --- a/.github/actions/build-tinspector/action.yml +++ /dev/null @@ -1,111 +0,0 @@ -name: 'Build TInspector' -description: 'Build TInspector using OCCT installation as a separate job' - -inputs: - platform: - description: 'Build platform (windows/linux)' - required: true - install-artifact-name: - description: 'OCCT installation artifact name' - required: true - thirdparty_url: - description: 'URL to download 3rdparty dependencies' - required: false - default: 'https://github.com/Open-Cascade-SAS/OCCT/releases/download/V7_9_0_beta1/3rdparty-vc14-64.zip' - -runs: - using: "composite" - steps: - - name: Download OCCT installation - uses: ./.github/actions/download-artifacts - with: - name: ${{ inputs.install-artifact-name }} - path: occt-install - - - name: Download vcpkg cache - uses: ./.github/actions/download-vcpkg-cache - with: - artifact-name: ${{ inputs.install-artifact-name }}-cache - - - name: Install Windows dependencies - if: inputs.platform == 'windows' - shell: pwsh - run: | - Invoke-WebRequest -Uri ${{ inputs.thirdparty_url }} -OutFile 3rdparty-vc14-64.zip - Expand-Archive -Path 3rdparty-vc14-64.zip -DestinationPath . - Remove-Item 3rdparty-vc14-64.zip - - - name: Install Linux dependencies - if: inputs.platform == 'linux' - shell: bash - run: sudo apt-get update && sudo apt-get install -y tcl-dev tk-dev cmake gcc g++ make libbtbb-dev libx11-dev libglu1-mesa-dev tcllib tcl-thread tcl libvtk9-dev libopenvr-dev libdraco-dev libfreeimage-dev libegl1-mesa-dev libgles2-mesa-dev libfreetype-dev qtbase5-dev qt5-qmake qtbase5-dev-tools qtdeclarative5-dev qttools5-dev qttools5-dev-tools - - - name: Checkout TInspector - shell: bash - run: | - git clone https://github.com/Open-Cascade-SAS/Inspector.git inspector - cd inspector - git checkout efe00930adc2130a91744ba950c5270986d19739 - - - name: Configure TInspector - Windows - if: inputs.platform == 'windows' - shell: pwsh - run: | - cd inspector - mkdir build - cd build - cmake -G "Visual Studio 17 2022" -A x64 ` - -D CMAKE_BUILD_TYPE=Release ` - -D BUILD_SHARED_LIBS=ON ` - -D QtX=Qt5 ` - -D 3RDPARTY_DIR=${{ github.workspace }}//3rdparty-vc14-64 ` - -D OpenCASCADE_DIR=${{ github.workspace }}/occt-install ` - -D INSTALL_DIR=${{ github.workspace }}/inspector/install ` - -D CMAKE_POLICY_VERSION_MINIMUM=3.5 ` - .. - - - name: Configure TInspector - Linux - if: inputs.platform == 'linux' - shell: bash - run: | - cd inspector - mkdir build - cd build - export LD_LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib:${{ github.workspace }}/occt-install/lib:$LD_LIBRARY_PATH" - cmake -G "Unix Makefiles" \ - -D CMAKE_BUILD_TYPE=Release \ - -D BUILD_SHARED_LIBS=ON \ - -D OpenCASCADE_DIR=${{ github.workspace }}/occt-install \ - -D INSTALL_DIR=${{ github.workspace }}/inspector/install \ - -D QtX=Qt5 \ - -D CMAKE_POLICY_VERSION_MINIMUM=3.5 \ - -D CMAKE_LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib" \ - -D CMAKE_INCLUDE_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/include" \ - -D CMAKE_EXE_LINKER_FLAGS="-L${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib -Wl,-rpath,${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib" \ - -D CMAKE_SHARED_LINKER_FLAGS="-L${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib -Wl,-rpath,${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib" \ - .. - - - name: Build TInspector - Windows - if: inputs.platform == 'windows' - shell: pwsh - run: | - cd inspector/build - cmake --build . --config Release --target install - - - name: Build TInspector - Linux - if: inputs.platform == 'linux' - shell: bash - run: | - cd inspector/build - # Set library paths for build and runtime - export LD_LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib:${{ github.workspace }}/occt-install/lib:$LD_LIBRARY_PATH" - export LIBRARY_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib:${{ github.workspace }}/occt-install/lib:$LIBRARY_PATH" - export PKG_CONFIG_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-linux-dynamic/lib/pkgconfig:$PKG_CONFIG_PATH" - make install -j$(nproc) - - - name: Upload TInspector installation - uses: actions/upload-artifact@v4.6.2 - with: - name: inspector-${{ inputs.platform }}-x64 - path: inspector/install - retention-days: 7 diff --git a/.github/workflows/build-and-test-multiplatform.yml b/.github/workflows/build-and-test-multiplatform.yml index 56d61661cc..a4fc53dc17 100644 --- a/.github/workflows/build-and-test-multiplatform.yml +++ b/.github/workflows/build-and-test-multiplatform.yml @@ -57,12 +57,6 @@ jobs: needs: - clang-format - ascii-check - - build-inspector-windows - - build-inspector-linux - - build-csharp-windows - - build-mfc-windows - - build-qt-windows - - build-qt-linux - retest-windows-x64 - retest-macos-x64 - retest-linux-clang-x64 @@ -147,96 +141,6 @@ jobs: cmake-build-type: 'Debug' github-token: ${{ secrets.GITHUB_TOKEN }} - build-inspector-windows: - name: Build TInspector on Windows - needs: prepare-and-build-windows-x64 - runs-on: windows-2025 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build TInspector - uses: ./.github/actions/build-tinspector - with: - platform: windows - install-artifact-name: install-windows-x64 - - build-inspector-linux: - name: Build TInspector on Linux - needs: prepare-and-build-linux-clang-x64 - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build TInspector - uses: ./.github/actions/build-tinspector - with: - platform: linux - install-artifact-name: install-linux-clang-x64 - - build-csharp-windows: - name: Build CSharp Sample on Windows - needs: prepare-and-build-windows-x64 - runs-on: windows-2025 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build CSharp Sample - uses: ./.github/actions/build-sample-csharp - with: - platform: windows - install-artifact-name: install-windows-x64 - - build-mfc-windows: - name: Build MFC Sample on Windows - needs: prepare-and-build-windows-x64 - runs-on: windows-2025 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build MFC Sample - uses: ./.github/actions/build-sample-mfc - with: - platform: windows - install-artifact-name: install-windows-x64 - - build-qt-windows: - name: Build Qt Sample on Windows - needs: prepare-and-build-windows-x64 - runs-on: windows-2025 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build Qt Sample - uses: ./.github/actions/build-sample-qt - with: - platform: windows - install-artifact-name: install-windows-x64 - - build-qt-linux: - name: Build Qt Sample on Linux - needs: prepare-and-build-linux-clang-x64 - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build Qt Sample - uses: ./.github/actions/build-sample-qt - with: - platform: linux - install-artifact-name: install-linux-clang-x64 - test-windows-x64: name: Test on Windows (x64) runs-on: windows-2025 diff --git a/.gitignore b/.gitignore index e255c8c4f1..38a912d45c 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,6 @@ !/cmake/ !/data/ !/dox/ -!/samples/ !/src/ !/tests/ !/tools/ diff --git a/CMakeLists.txt b/CMakeLists.txt index e8e743430e..f13ccd569c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,9 +241,6 @@ if (CMAKE_VERSION VERSION_LESS "3.14") OCCT_CHECK_AND_UNSET (BUILD_INCLUDE_SYMLINK) endif() -# copy samples to install directory -set (INSTALL_SAMPLES OFF CACHE BOOL "${INSTALL_SAMPLES_DESCR}") - # install dir of the project if (NOT DEFINED INSTALL_DIR) # set default install directory for Windows @@ -369,11 +366,6 @@ endif() set (BUILD_ADDITIONAL_TOOLKITS "" CACHE STRING "${BUILD_ADDITIONAL_TOOLKITS_DESCR}") separate_arguments (BUILD_ADDITIONAL_TOOLKITS) -if (MSVC) - set (BUILD_SAMPLES_MFC OFF CACHE BOOL "${BUILD_SAMPLES_MFC_DESCR}") -endif() -set (BUILD_SAMPLES_QT OFF CACHE BOOL "${BUILD_SAMPLES_QT_DESCR}") - # uwp sample if (MSVC) if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") @@ -834,18 +826,6 @@ else() OCCT_CHECK_AND_UNSET ("INSTALL_GTEST") endif() -# qt for samples -if (BUILD_SAMPLES_QT) - # check qt 3rdparty path - add_definitions (-DHAVE_QT) - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/qt") - message (STATUS "Info: Qt is used by OCCT") -else() - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_QT") - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TQTMALLOC") - OCCT_CHECK_AND_UNSET ("INSTALL_QT") -endif() - # VCPKG require delayed processing of 3rdparty. # That is why we delay the creating project and setting up # the platform specific variables. @@ -937,20 +917,6 @@ if (NOT DEFINED INSTALL_DIR_DATA) endif() endif() -# OCCT samples -if (NOT DEFINED INSTALL_DIR_SAMPLES) - if (LAYOUT_IS_UNIX) - set (INSTALL_DIR_SAMPLES "share/opencascade/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}") - if (INSTALL_DIR_WITH_VERSION) - set (INSTALL_DIR_SAMPLES "share/opencascade-${OCC_VERSION_STRING_EXT}/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}" FORCE) - endif() - elseif (LAYOUT_IS_VCPKG) - set (INSTALL_DIR_SAMPLES "share/${OCCT_PROJECT_NAME}/samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}") - else() - set (INSTALL_DIR_SAMPLES "samples" CACHE PATH "${INSTALL_DIR_SAMPLES_DESCR}") - endif() -endif() - # OCCT tests if (NOT DEFINED INSTALL_DIR_TESTS) if (LAYOUT_IS_UNIX) @@ -1143,58 +1109,20 @@ CONFIGURE_AND_INSTALL_VERSION_HEADER() string(TIMESTAMP CURRENT_TIME "%H:%M:%S") message (STATUS "Info: \(${CURRENT_TIME}\) End the collecting") -list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX) -if (${DRAWEXE_INDEX} GREATER -1) - OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}") - OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}") -endif() - if (WIN32) set (SCRIPT_EXT bat) else() set (SCRIPT_EXT sh) endif() -# OCCT samples -# get absolute path from INSTALL_DIR -set (INSTALL_DIR_ABSOLUTE "${INSTALL_DIR}") -if(NOT IS_ABSOLUTE "${INSTALL_DIR_ABSOLUTE}") - get_filename_component(INSTALL_DIR_ABSOLUTE "${CMAKE_BINARY_DIR}/${INSTALL_DIR}" ABSOLUTE) -endif() - -if (INSTALL_SAMPLES) - OCCT_CONFIGURE ("adm/templates/env.samples.${SCRIPT_EXT}.in" "env.samples.${SCRIPT_EXT}") - if (WIN32) - OCCT_INSTALL_FILE_OR_DIR ("samples/CSharp" "${INSTALL_DIR_SAMPLES}") - OCCT_INSTALL_FILE_OR_DIR ("samples/mfc" "${INSTALL_DIR_SAMPLES}") - - if ("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") - OCCT_INSTALL_FILE_OR_DIR ("samples/xaml" "${INSTALL_DIR_SAMPLES}") - endif() - - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/CSharp" RENAME "env.${SCRIPT_EXT}") - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/mfc/standard" RENAME "env.${SCRIPT_EXT}") - endif() - - OCCT_INSTALL_FILE_OR_DIR ("samples/java" "${INSTALL_DIR_SAMPLES}") - OCCT_INSTALL_FILE_OR_DIR ("samples/ocafsamples" "${INSTALL_DIR_SAMPLES}") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt" "${INSTALL_DIR_SAMPLES}") - - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/FuncDemo" RENAME "env.${SCRIPT_EXT}") - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/IESample" RENAME "env.${SCRIPT_EXT}") - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/OCCTOverview" RENAME "env.${SCRIPT_EXT}") - install (FILES "${CMAKE_BINARY_DIR}/env.samples.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SAMPLES}/qt/Tutorial" RENAME "env.${SCRIPT_EXT}") -endif() - if (INSTALL_TEST_CASES) OCCT_INSTALL_FILE_OR_DIR ("tests/" "${INSTALL_DIR_TESTS}") endif() list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX) if (${DRAWEXE_INDEX} GREATER -1) - # copy data and samples/tcl folders to install script folder + # copy data folder (includes tcl samples) to install folder OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}") - OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}") install (FILES "${OCCT_ROOT_DIR}/adm/templates/draw.${SCRIPT_EXT}" DESTINATION "${INSTALL_DIR_SCRIPT}" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) @@ -1259,7 +1187,6 @@ if (LAYOUT_IS_VCPKG) set \"CSF_OCCTIncludePath=%CASCONTENTROOT%\\include\" set \"CSF_OCCTResourcePath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\" set \"CSF_OCCTDataPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\" - set \"CSF_OCCTSamplesPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\samples\" set \"CSF_OCCTTestsPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\tests\" set \"CSF_OCCTDocPath=%CASCONTENTROOT%\\share\\${OCCT_PROJECT_NAME}\\doc\"") else() @@ -1273,7 +1200,6 @@ if (LAYOUT_IS_VCPKG) export CSF_OCCTIncludePath=\"\${CASCONTENTROOT}/include\" export CSF_OCCTResourcePath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}\" export CSF_OCCTDataPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}\" - export CSF_OCCTSamplesPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/samples\" export CSF_OCCTTestsPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/tests\" export CSF_OCCTDocPath=\"\${CASCONTENTROOT}/share/${OCCT_PROJECT_NAME}/doc\"") endif() @@ -1288,7 +1214,6 @@ else() set (OCCT_CUSTOM_ADDITIONAL_PATHS "set \"CSF_OCCTIncludePath=%CASROOT%/${INSTALL_DIR_INCLUDE}\" set \"CSF_OCCTResourcePath=%CASROOT%/${INSTALL_DIR_RESOURCE}\" set \"CSF_OCCTDataPath=%CASROOT%/${INSTALL_DIR_DATA}\" - set \"CSF_OCCTSamplesPath=%CASROOT%/${INSTALL_DIR_SAMPLES}\" set \"CSF_OCCTTestsPath=%CASROOT%/${INSTALL_DIR_TESTS}\" set \"CSF_OCCTDocPath=%CASROOT%/${INSTALL_DIR_DOC}\"") else() @@ -1297,7 +1222,6 @@ else() set (OCCT_CUSTOM_ADDITIONAL_PATHS "export CSF_OCCTIncludePath=\"\${CASROOT}/${INSTALL_DIR_INCLUDE}\" export CSF_OCCTResourcePath=\"\${CASROOT}/${INSTALL_DIR_RESOURCE}\" export CSF_OCCTDataPath=\"\${CASROOT}/${INSTALL_DIR_DATA}\" - export CSF_OCCTSamplesPath=\"\${CASROOT}/${INSTALL_DIR_SAMPLES}\" export CSF_OCCTTestsPath=\"\${CASROOT}/${INSTALL_DIR_TESTS}\" export CSF_OCCTDocPath=\"\${CASROOT}/${INSTALL_DIR_DOC}\"") endif() @@ -1342,11 +1266,6 @@ endif() # write current custom.bat/sh (for build directory) OCCT_CONFIGURE ("adm/templates/custom.build.${SCRIPT_EXT}.in" "${SUB_CUSTOM_NAME}") -if (BUILD_SAMPLES_MFC OR BUILD_SAMPLES_QT) - OCCT_INSTALL_FILE_OR_DIR ("adm/templates/sample.${SCRIPT_EXT}" "${INSTALL_DIR_SCRIPT}") - OCCT_COPY_FILE_OR_DIR ("adm/templates/sample.${SCRIPT_EXT}" "${CMAKE_BINARY_DIR}") -endif() - if (WIN32) # Set custom script path variable for Windows template if (LAYOUT_IS_VCPKG) @@ -1405,24 +1324,6 @@ foreach(RESOURCE ${RESOURCES}) endif() endforeach() -if (BUILD_SAMPLES_QT) - FILE_TO_LIST ("adm/SAMPLES_RESOURCES" SAMPLES_RESOURCES) - foreach(RESOURCE ${SAMPLES_RESOURCES}) - OCCT_INSTALL_FILE_OR_DIR ("samples/${RESOURCE}" "${INSTALL_DIR_RESOURCE}/samples") - #message("Copy Sample resources: samples/${RESOURCE} into ${INSTALL_DIR_RESOURCE}/samples") - endforeach() - - ## Copy sources of OCCTOverview for using in the sample - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/DataExchangeSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/OcafSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/GeometrySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/TopologySamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/TriangulationSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/Viewer2dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") - OCCT_INSTALL_FILE_OR_DIR ("samples/qt/OCCTOverview/code/Viewer3dSamples.cxx" "${INSTALL_DIR_SAMPLES}/OCCTOverview/code") -endif() - - # patch installed DrawDefault file if BUILD_SHARED_LIBRARY_NAME_POSTFIX is changed if (NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "") OCCT_UPDATE_DRAW_DEFAULT_FILE() @@ -1477,68 +1378,6 @@ if (MSVC AND 3RDPARTY_DLL_DIRS) endif() endif() -message (STATUS "Info: \(${CURRENT_TIME}\) OCCT toolkits processed") -# samples do not support patch usage -if (BUILD_SAMPLES_MFC OR BUILD_SAMPLES_QT) - set (OCCT_ROOT ${OCCT_ROOT_DIR}) -endif() - -if (BUILD_SAMPLES_MFC) - set (MFC_STANDARD_SAMPLES_DIR ${OCCT_ROOT}/samples/mfc/standard) - set (COMMON_WINMAIN_FILE ${MFC_STANDARD_SAMPLES_DIR}/Common/Winmain.cpp) - - add_subdirectory(samples/mfc/standard/mfcsample) - add_subdirectory(samples/mfc/standard/01_Geometry) - add_subdirectory(samples/mfc/standard/02_Modeling) - add_subdirectory(samples/mfc/standard/03_ImportExport) - add_subdirectory(samples/mfc/standard/04_HLR) - - message (STATUS "Info: \(${CURRENT_TIME}\) MFC Sample projects added") -endif() - -OCCT_MODULES_AND_TOOLKITS (SAMPLES "SAMPLES_TOOLKITS" OCCT_SAMPLES) - -# Load sample configuration files -foreach (OCCT_SAMPLE ${OCCT_SAMPLES}) - foreach (BUILD_SAMPLE_TOOLKIT ${${OCCT_SAMPLE}_SAMPLES_TOOLKITS}) - OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/PACKAGES) - OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/EXTERNLIB) - OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}/FILES) - foreach (PACKAGE ${OCCT_${BUILD_SAMPLE_TOOLKIT}_LIST_OF_PACKAGES}) - OCCT_INCLUDE_CMAKE_FILE (samples/${OCCT_SAMPLE}/${PACKAGE}/FILES) - endforeach() - endforeach() -endforeach() - -if (BUILD_SAMPLES_QT) - if (BUILD_SAMPLES_QT) - if (NOT Qt5_FOUND OR "${Qt5Gui_EGL_INCLUDE_DIRS}" STREQUAL "" OR NOT WIN32) - list (REMOVE_ITEM qt_SAMPLES_TOOLKITS AndroidQt) - message (STATUS "Info: AndroidQt sample excluded due to OS is not Windows or Qt is configured without ANGLE") - endif() - else() - list (REMOVE_ITEM OCCT_SAMPLES qt) - message (STATUS "Info: qt samples excluded due to BUILD_SAMPLES_QT is disabled") - endif() - - foreach (OCCT_SAMPLE ${OCCT_SAMPLES}) - list (APPEND BUILD_SAMPLE_TOOLKITS ${${OCCT_SAMPLE}_SAMPLES_TOOLKITS}) - - # collect all the headers to /inc/samples folder - string(TIMESTAMP CURRENT_TIME "%H:%M:%S") - message (STATUS "Info: \(${CURRENT_TIME}\) ${OCCT_SAMPLE} Sample projects added") - - # include patched toolkit projects or original ones - foreach (BUILD_SAMPLE_TOOLKIT ${${OCCT_SAMPLE}_SAMPLES_TOOLKITS}) - OCCT_ADD_SUBDIRECTORY ("samples/${OCCT_SAMPLE}/${BUILD_SAMPLE_TOOLKIT}") - endforeach() - endforeach() -endif() - -if (BUILD_MODULE_UwpSample) - add_subdirectory(samples/xaml) -endif() - # Prepare variables for configuration of OpenCASCADE cmake config file set (OCCT_MODULES_ENABLED) set (OCCT_LIBRARIES) diff --git a/adm/RESOURCES b/adm/RESOURCES index a0dd9bf5be..029466f242 100644 --- a/adm/RESOURCES +++ b/adm/RESOURCES @@ -1,4 +1,5 @@ DrawResources +samples/tcl StdResource SHMessage Textures diff --git a/adm/SAMPLES b/adm/SAMPLES deleted file mode 100644 index 92496b7397..0000000000 --- a/adm/SAMPLES +++ /dev/null @@ -1 +0,0 @@ -qt AndroidQt FuncDemo IESample Tutorial OCCTOverview \ No newline at end of file diff --git a/adm/SAMPLES_RESOURCES b/adm/SAMPLES_RESOURCES deleted file mode 100644 index 42b0dea440..0000000000 --- a/adm/SAMPLES_RESOURCES +++ /dev/null @@ -1,3 +0,0 @@ -qt/Common/res/ -qt/Tutorial/res/ -qt/OCCTOverview/res/ \ No newline at end of file diff --git a/adm/cmake/occt_doc.cmake b/adm/cmake/occt_doc.cmake index 20ff54146f..5ec9c8ef21 100644 --- a/adm/cmake/occt_doc.cmake +++ b/adm/cmake/occt_doc.cmake @@ -388,9 +388,6 @@ function(OCCT_DOC_CONFIGURE_DOXYGEN OUTPUT_DIR CONFIG_FILE DOC_TYPE) else() file(APPEND ${DOXYGEN_CONFIG_FILE} "IMAGE_PATH = ${OCCT_ROOT_DIR}/dox/resources\n") endif() - - # Example paths - file(APPEND ${DOXYGEN_CONFIG_FILE} "EXAMPLE_PATH = ${OCCT_ROOT_DIR}/src ${OCCT_ROOT_DIR}/samples\n") else() # Settings for Reference Manual file(APPEND ${DOXYGEN_CONFIG_FILE} "PROJECT_NAME = \"Open CASCADE Technology Reference Manual\"\n") diff --git a/adm/cmake/occt_gtest.cmake b/adm/cmake/occt_gtest.cmake index 036e0bca2b..be7c7c7333 100644 --- a/adm/cmake/occt_gtest.cmake +++ b/adm/cmake/occt_gtest.cmake @@ -152,7 +152,6 @@ function(OCCT_SET_GTEST_ENVIRONMENT) "CSF_OCCTResourcePath=${OCCT_ROOT_DIR}/resources" "CSF_OCCTDataPath=${OCCT_ROOT_DIR}/data" "CSF_OCCTDocPath=${OCCT_ROOT_DIR}/doc" - "CSF_OCCTSamplesPath=${OCCT_ROOT_DIR}/samples" "CSF_OCCTTestsPath=${OCCT_ROOT_DIR}/tests" "CSF_OCCTBinPath=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "CSF_OCCTLibPath=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}" diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake index 360a5306cf..4d5442d7f5 100644 --- a/adm/cmake/occt_macros.cmake +++ b/adm/cmake/occt_macros.cmake @@ -27,7 +27,6 @@ macro (OCCT_CHECK_AND_UNSET_INSTALL_DIR_SUBDIRS) OCCT_CHECK_AND_UNSET (INSTALL_DIR_INCLUDE) OCCT_CHECK_AND_UNSET (INSTALL_DIR_RESOURCE) OCCT_CHECK_AND_UNSET (INSTALL_DIR_DATA) - OCCT_CHECK_AND_UNSET (INSTALL_DIR_SAMPLES) OCCT_CHECK_AND_UNSET (INSTALL_DIR_TESTS) OCCT_CHECK_AND_UNSET (INSTALL_DIR_DOC) endmacro() diff --git a/adm/cmake/vardescr.cmake b/adm/cmake/vardescr.cmake index f874b18a00..617ec63723 100644 --- a/adm/cmake/vardescr.cmake +++ b/adm/cmake/vardescr.cmake @@ -50,10 +50,10 @@ OFF - using a reference file with direct include to the origin, ON - symbolic link to the origin file are created") # install variables -set (INSTALL_DIR_DESCR +set (INSTALL_DIR_DESCR "The place where built OCCT libraries, headers, test cases (INSTALL_TEST_CASES variable), -samples (INSTALL_SAMPLES_DESCR variable) and certain 3rdparties (INSTALL_TBB and -other similar variables) will be placed during the installation process (building INSTALL project)") +and certain 3rdparties (INSTALL_TBB and other similar variables) will be placed +during the installation process (building INSTALL project)") set (INSTALL_DIR_WITH_VERSION_DESCR "Use OCCT version number as suffix for names of directories") @@ -73,10 +73,8 @@ set (INSTALL_DIR_DOC_DESCR "Subdirectory of INSTALL_DIR where documentation will be installed") set (INSTALL_DIR_LIB_DESCR "Subdirectory of INSTALL_DIR where libraries (.so on Linux, .lib on Windows) will be installed") -set (INSTALL_DIR_RESOURCE_DESCR +set (INSTALL_DIR_RESOURCE_DESCR "Subdirectory of INSTALL_DIR where OCCT resource files will be installed") -set (INSTALL_DIR_SAMPLES_DESCR -"Subdirectory of INSTALL_DIR where samples will be installed") set (INSTALL_DIR_TESTS_DESCR "Subdirectory of INSTALL_DIR where test scripts will be installed") set (INSTALL_DIR_SCRIPT_DESCR @@ -91,7 +89,6 @@ set (${INSTALL_TARGET_VARIABLE}_DESCR project) into the installation directory (INSTALL_DIR variable)") endmacro() -INSTALL_MESSAGE (INSTALL_SAMPLES "OCCT samples") INSTALL_MESSAGE (INSTALL_TEST_CASES "non-regression OCCT test scripts") INSTALL_MESSAGE (INSTALL_DOC_Overview "OCCT overview documentation (HTML format)") INSTALL_MESSAGE (INSTALL_FFMPEG "FFmpeg binaries") @@ -130,19 +127,6 @@ want to build some particular libraries (toolkits) only, then you may uncheck all modules in the corresponding BUILD_MODUE_* options and provide the list of necessary libraries here. Of course, all dependencies will be resolved automatically") -set (BUILD_SAMPLES_MFC_DESCR -"Indicates whether OCCT MFC samples should be built together with OCCT. -These samples show some possibilities of using OCCT and they can be executed -with script samples.bat from the installation directory (INSTALL_DIR)") - -set (BUILD_SAMPLES_QT_DESCR -"Indicates whether OCCT Qt samples should be built together with OCCT. -These samples show some possibilities of using OCCT and they can be executed -with script samples.bat from the installation directory (INSTALL_DIR)") - -set (BUILD_MODULE_UwpSample_DESCR -"Indicates whether OCCT UWP sample should be built together with OCCT.") - set (BUILD_DOC_Overview_DESCR "Indicates whether OCCT overview documentation project (Markdown format) should be created together with OCCT. It is not built together with OCCT. Checking this options diff --git a/adm/templates/DRAWEXE.vcxproj.user.in b/adm/templates/DRAWEXE.vcxproj.user.in index e19f3328ab..ff3e612fa3 100644 --- a/adm/templates/DRAWEXE.vcxproj.user.in +++ b/adm/templates/DRAWEXE.vcxproj.user.in @@ -6,7 +6,6 @@ CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@ CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources DRAWHOME=@OCCT_ROOT_DIR@/resources/DrawResources CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data -CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH% @@ -19,7 +18,6 @@ PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH% CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@ CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data -CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH% @@ -33,7 +31,6 @@ CSF_FPE=@BUILD_ENABLE_FPE_SIGNAL_HANDLER@ DRAWHOME=@OCCT_ROOT_DIR@/resources/DrawResources CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data -CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc PATH=@3RDPARTY_DLL_DIRS_FOR_PATH@;%PATH% diff --git a/adm/templates/custom.build.bat.in b/adm/templates/custom.build.bat.in index a511fcb43e..d23f784ad8 100644 --- a/adm/templates/custom.build.bat.in +++ b/adm/templates/custom.build.bat.in @@ -30,7 +30,6 @@ if /I "%VCVER%" == "@COMPILER@" ( set "CSF_OCCTIncludePath=@CMAKE_BINARY_DIR@/@INSTALL_DIR_INCLUDE@" set "CSF_OCCTResourcePath=@OCCT_ROOT_DIR@/resources" set "CSF_OCCTDataPath=@OCCT_ROOT_DIR@/data" - set "CSF_OCCTSamplesPath=@OCCT_ROOT_DIR@/samples" set "CSF_OCCTTestsPath=@OCCT_ROOT_DIR@/tests" set "CSF_OCCTDocPath=@OCCT_ROOT_DIR@/doc" diff --git a/adm/templates/custom.build.sh.in b/adm/templates/custom.build.sh.in index f281aeaed1..609fa5b671 100644 --- a/adm/templates/custom.build.sh.in +++ b/adm/templates/custom.build.sh.in @@ -27,7 +27,6 @@ if [ "$1" == "@BIN_LETTER@" ]; then export CSF_OCCTIncludePath="@CMAKE_BINARY_DIR@/@INSTALL_DIR_INCLUDE@" export CSF_OCCTResourcePath="@OCCT_ROOT_DIR@/resources" export CSF_OCCTDataPath="@OCCT_ROOT_DIR@/data" - export CSF_OCCTSamplesPath="@OCCT_ROOT_DIR@/samples" export CSF_OCCTTestsPath="@OCCT_ROOT_DIR@/tests" export CSF_OCCTDocPath="@OCCT_ROOT_DIR@/doc" diff --git a/adm/templates/env.bat b/adm/templates/env.bat index 33e129a457..45c9d81a48 100644 --- a/adm/templates/env.bat +++ b/adm/templates/env.bat @@ -257,7 +257,6 @@ set "CSF_OPT_LNK64I=%CSF_OPT_LNK64I% %OPT_LIB64%" rem ----- Default paths to sub-folders (can be different in install env) ----- if "%CSF_OCCTIncludePath%" == "" set "CSF_OCCTIncludePath=%CASROOT%\inc" if "%CSF_OCCTResourcePath%" == "" set "CSF_OCCTResourcePath=%CASROOT%\src" -if "%CSF_OCCTSamplesPath%" == "" set "CSF_OCCTSamplesPath=%CASROOT%\samples" if "%CSF_OCCTDataPath%" == "" set "CSF_OCCTDataPath=%CASROOT%\data" if "%CSF_OCCTTestsPath%" == "" set "CSF_OCCTTestsPath=%CASROOT%\tests" if "%CSF_OCCTBinPath%" == "" set "CSF_OCCTBinPath=%CASROOT%\win%ARCH%\%VCLIB%\bin%CASDEB%" diff --git a/adm/templates/env.samples.bat.in b/adm/templates/env.samples.bat.in deleted file mode 100644 index a787deed46..0000000000 --- a/adm/templates/env.samples.bat.in +++ /dev/null @@ -1,32 +0,0 @@ -@echo off - -if exist "%~dp0custom.bat" ( - call "%~dp0custom.bat" %1 %2 %3 -) - -call "@INSTALL_DIR_ABSOLUTE@\@INSTALL_DIR_SCRIPT@\env.bat" %1 %2 %3 -if /I ["%1"] == ["vc141"] set "VCVER=vc141" -if /I ["%1"] == ["vc142"] set "VCVER=vc142" -if /I ["%1"] == ["vc143"] set "VCVER=vc143" -set "BIN_DIR=win%ARCH%\%VCVER%\bind" -set "LIB_DIR=win%ARCH%\%VCVER%\libd" - -if ["%CASDEB%"] == [""] ( - set "BIN_DIR=win%ARCH%\%VCVER%\bin" - set "LIB_DIR=win%ARCH%\%VCVER%\lib" -) - -set "PATH=%~dp0%BIN_DIR%;%PATH%" - -if not "%QTDIR%" == "" ( - set "RES_DIR=%~dp0win%ARCH%\%VCVER%\res" - - set "CSF_ResourcesDefaults=!RES_DIR!" - set "CSF_TutorialResourcesDefaults=!RES_DIR!" - set "CSF_IEResourcesDefaults=!RES_DIR!" - - set "PATH=%QTDIR%/bin;%PATH%" - set "QT_QPA_PLATFORM_PLUGIN_PATH=%QTDIR%\plugins\platforms" -) - -set "CSF_OCCTOverviewSampleCodePath=%~dp0..\..\OCCTOverview\code" diff --git a/adm/templates/env.samples.sh.in b/adm/templates/env.samples.sh.in deleted file mode 100644 index 08db608092..0000000000 --- a/adm/templates/env.samples.sh.in +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -export aSamplePath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -if [ -e "custom.sh" ]; then - source "custom.sh"; -fi - -if [ -e "@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SCRIPT@/env.sh" ]; then - source "@INSTALL_DIR_ABSOLUTE@/@INSTALL_DIR_SCRIPT@/env.sh"; -fi - -if test "${QTDIR}" == ""; then - echo "Environment variable \"QTDIR\" not defined. Define it in \"custom.sh\" script." - exit 1 -fi - -host=`uname -s` -export STATION=$host -export RES_DIR=${aSamplePath}/${STATION}/res - -export PATH=${QTDIR}/bin:${PATH} - -export "CSF_OCCTOverviewSampleCodePath=${aSamplePath}/../../qt/OCCTOverview/code" diff --git a/adm/templates/env.sh b/adm/templates/env.sh index dc2e811b2e..7ac45fb947 100644 --- a/adm/templates/env.sh +++ b/adm/templates/env.sh @@ -188,7 +188,6 @@ fi # ----- Default paths to sub-folders (can be different in install env) ----- export CSF_OCCTIncludePath="${CSF_OCCTIncludePath:-$CASROOT/inc}" export CSF_OCCTResourcePath="${CSF_OCCTResourcePath:-$CASROOT/src}" -export CSF_OCCTSamplesPath="${CSF_OCCTSamplesPath:-$CASROOT/samples}" export CSF_OCCTDataPath="${CSF_OCCTDataPath:-$CASROOT/data}" export CSF_OCCTTestsPath="${CSF_OCCTTestsPath:-$CASROOT/tests}" diff --git a/adm/templates/sample.bat b/adm/templates/sample.bat deleted file mode 100644 index 576984ed8a..0000000000 --- a/adm/templates/sample.bat +++ /dev/null @@ -1,43 +0,0 @@ -@echo off - -if ["%1"] == [""] ( - echo Launch selected sample as follows: - echo sample.bat SampleName vc10 win32 d - echo or to use last sample build configuration: - echo sample.bat SampleName - echo available samples: - echo Geometry - echo Modeling - echo Viewer2d - echo Viewer3d - echo ImportExport - echo Ocaf - echo Triangulation - echo HLR - echo Animation - echo Convert - echo AndroidQt - echo FuncDemo - echo IESample - echo OCCTOverview - echo Tutorial - PAUSE - exit /B -) - -call "%~dp0env.bat" %2 %3 %4 -if not ["%QTDIR%"] == [""] if exist "%QTDIR%\qml" if ["%QML2_IMPORT_PATH%"] == [""] set "QML2_IMPORT_PATH=%QTDIR%/qml" -set "EXE_PATH=%CSF_OCCTBinPath%/%1.exe" - -if not exist "%EXE_PATH%" ( - echo Executable %EXE_PATH% not found. - echo Probably you didn't compile the application. - PAUSE - exit /B -) - -rem Set path to location where sample code is installed -set "CSF_OCCTOverviewSampleCodePath=%CSF_OCCTSamplesPath%\OCCTOverview\code" - -"%EXE_PATH%" - diff --git a/adm/templates/sample.sh b/adm/templates/sample.sh deleted file mode 100644 index 65647576a7..0000000000 --- a/adm/templates/sample.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -if [ "$1" == "" ]; then - echo Launch selected sample as follows: - echo sample.sh SampleName d - echo or to use last sample build configuration: - echo sample.sh SampleName - echo available samples: - echo FuncDemo - echo IESample - echo OCCTOverview - echo Tutorial -fi - - -aCurrentPath="$PWD" -aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD"; - -source "${aScriptPath}/env.sh" "$2" - -if test "${QTDIR}" == ""; then - if [ -d "$QTDIR%\qml" ]; - then export QML2_IMPORT_PATH="$QTDIR\qml"; - fi -fi - -export "EXE_PATH=$CSF_OCCTBinPath/$1" - -if [ ! -f "$EXE_PATH" ]; then - echo "Executable \"$EXE_PATH\" not found." - echo "Probably you didn't compile the application." - exit 1 -fi - -export CSF_OCCTOverviewSampleCodePath="${CSF_OCCTSamplesPath}/qt/OCCTOverview/code" - -cd ${aCurrentPath} -"$EXE_PATH" diff --git a/adm/templates/uwp.toolchain.config.cmake b/adm/templates/uwp.toolchain.config.cmake deleted file mode 100644 index 4dbd2ae6a9..0000000000 --- a/adm/templates/uwp.toolchain.config.cmake +++ /dev/null @@ -1,5 +0,0 @@ -# A toolchain file to configure a Visual Studio generator for a Windows 10 Universal Application (UWP) -# Specify the CMAKE_SYSTEM_VERSION variable to be 10.0 to build with the latest available Windows 10 SDK. - -set (CMAKE_SYSTEM_NAME WindowsStore) -set (CMAKE_SYSTEM_VERSION 10.0) diff --git a/dox/build/build_occt/building_occt.md b/dox/build/build_occt/building_occt.md index 500359ef41..ce095d6118 100644 --- a/dox/build/build_occt/building_occt.md +++ b/dox/build/build_occt/building_occt.md @@ -143,7 +143,6 @@ The following table gives the full list of environment variables used at the con | INSTALL_DIR_RESOURCE | Path | Relative path to the resources installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_RESOURCE}) | | INSTALL_DIR_LAYOUT | String | Defines the structure of OCCT files (binaries, resources, headers, etc.) for the install directory. Two variants are predefined: for Windows (standard OCCT layout) and for Unix operating systems (standard Linux layout). If needed, the layout can be customized with INSTALL_DIR_* variables | | INSTALL_DIR_DATA | Path | Relative path to the data files installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DATA}) | -| INSTALL_DIR_SAMPLES | Path | Relative path to the samples installation directory. Note that only "samples/tcl" folder will be installed. (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_SAMPLES}) | | INSTALL_DIR_TESTS | Path | Relative path to the tests installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_TESTS}) | | INSTALL_DIR_DOC | Path | Relative path to the documentation installation directory (absolute path is ${INSTALL_DIR}/${INSTALL_DIR_DOC}) | | INSTALL_FREETYPE | Boolean | Indicates whether FreeType binaries should be installed into the installation directory | diff --git a/dox/samples/draw_scripts.md b/dox/samples/draw_scripts.md index 786e8962c6..5de2f17bb9 100644 --- a/dox/samples/draw_scripts.md +++ b/dox/samples/draw_scripts.md @@ -1,12 +1,12 @@ Draw: Demo Scripts {#samples__draw_scripts} ================ -All demo scripts are provided with OCCT sources and locate in CASROOT/samples/tcl. To play around them please +All demo scripts are provided with OCCT sources and locate in CASROOT/resources/samples/tcl. To play around them please follow the steps below: -1. Start DRAWEXE +1. Start DRAWEXE 2. Type *cd ../..* to return to the root directory -3. Type *cd samples/tcl* to reach the *DrawResources* directory +3. Type *cd resources/samples/tcl* to reach the demo scripts directory 4. Type *source \* to run the demonstration file provided with Open CASCADE. The following demonstration files are available: * DataExchangeDemo.tcl: demonstrates sample sequence of operations with writing and reading IGES file @@ -105,7 +105,7 @@ Type pload ALL **Running demonstration files** 1. Type *cd ../..* to return to the root directory -2. Type *cd samples/tcl* to reach the *DrawResources* directory +2. Type *cd resources/samples/tcl* to reach the demo scripts directory 3. Type *source \* to run the demonstration file provided with Open CASCADE. The following demonstration files are available: * DataExchangeDemo.tcl: demonstrates sample sequence of operations with writing and reading IGES file * ModelingDemo.tcl: demonstrates creation of simple shape and displaying it in HLR mode diff --git a/samples/tcl/ANC101.tcl b/resources/samples/tcl/ANC101.tcl similarity index 100% rename from samples/tcl/ANC101.tcl rename to resources/samples/tcl/ANC101.tcl diff --git a/samples/tcl/DataExchangeDemo.tcl b/resources/samples/tcl/DataExchangeDemo.tcl similarity index 100% rename from samples/tcl/DataExchangeDemo.tcl rename to resources/samples/tcl/DataExchangeDemo.tcl diff --git a/samples/tcl/MBBGehauseRohteil.tcl b/resources/samples/tcl/MBBGehauseRohteil.tcl similarity index 100% rename from samples/tcl/MBBGehauseRohteil.tcl rename to resources/samples/tcl/MBBGehauseRohteil.tcl diff --git a/samples/tcl/ModelingDemo.tcl b/resources/samples/tcl/ModelingDemo.tcl similarity index 100% rename from samples/tcl/ModelingDemo.tcl rename to resources/samples/tcl/ModelingDemo.tcl diff --git a/samples/tcl/Penrose.tcl b/resources/samples/tcl/Penrose.tcl similarity index 100% rename from samples/tcl/Penrose.tcl rename to resources/samples/tcl/Penrose.tcl diff --git a/samples/tcl/Readme.txt b/resources/samples/tcl/Readme.txt similarity index 71% rename from samples/tcl/Readme.txt rename to resources/samples/tcl/Readme.txt index 377c441e3a..061b335c88 100644 --- a/samples/tcl/Readme.txt +++ b/resources/samples/tcl/Readme.txt @@ -1,4 +1,4 @@ This directory provides a set of demo scripts for using OCCT functionality from within DRAW Test Harness. Call the scripts from DRAW prompt, e.g.: -Draw[]> source samples/tcl/VisualizationDemo.tcl +Draw[]> source resources/samples/tcl/VisualizationDemo.tcl diff --git a/samples/tcl/VisualizationDemo.tcl b/resources/samples/tcl/VisualizationDemo.tcl similarity index 100% rename from samples/tcl/VisualizationDemo.tcl rename to resources/samples/tcl/VisualizationDemo.tcl diff --git a/samples/tcl/bottle.tcl b/resources/samples/tcl/bottle.tcl similarity index 100% rename from samples/tcl/bottle.tcl rename to resources/samples/tcl/bottle.tcl diff --git a/samples/tcl/cad.tcl b/resources/samples/tcl/cad.tcl similarity index 100% rename from samples/tcl/cad.tcl rename to resources/samples/tcl/cad.tcl diff --git a/samples/tcl/cpu.tcl b/resources/samples/tcl/cpu.tcl similarity index 100% rename from samples/tcl/cpu.tcl rename to resources/samples/tcl/cpu.tcl diff --git a/samples/tcl/cutter.tcl b/resources/samples/tcl/cutter.tcl similarity index 100% rename from samples/tcl/cutter.tcl rename to resources/samples/tcl/cutter.tcl diff --git a/samples/tcl/dimensions.tcl b/resources/samples/tcl/dimensions.tcl similarity index 100% rename from samples/tcl/dimensions.tcl rename to resources/samples/tcl/dimensions.tcl diff --git a/samples/tcl/drill.tcl b/resources/samples/tcl/drill.tcl similarity index 100% rename from samples/tcl/drill.tcl rename to resources/samples/tcl/drill.tcl diff --git a/samples/tcl/logo2019.tcl b/resources/samples/tcl/logo2019.tcl similarity index 100% rename from samples/tcl/logo2019.tcl rename to resources/samples/tcl/logo2019.tcl diff --git a/samples/tcl/markers.tcl b/resources/samples/tcl/markers.tcl similarity index 100% rename from samples/tcl/markers.tcl rename to resources/samples/tcl/markers.tcl diff --git a/samples/tcl/materials.tcl b/resources/samples/tcl/materials.tcl similarity index 100% rename from samples/tcl/materials.tcl rename to resources/samples/tcl/materials.tcl diff --git a/samples/tcl/pathtrace_ball.tcl b/resources/samples/tcl/pathtrace_ball.tcl similarity index 100% rename from samples/tcl/pathtrace_ball.tcl rename to resources/samples/tcl/pathtrace_ball.tcl diff --git a/samples/tcl/pathtrace_cube.tcl b/resources/samples/tcl/pathtrace_cube.tcl similarity index 100% rename from samples/tcl/pathtrace_cube.tcl rename to resources/samples/tcl/pathtrace_cube.tcl diff --git a/samples/tcl/pathtrace_materials.tcl b/resources/samples/tcl/pathtrace_materials.tcl similarity index 100% rename from samples/tcl/pathtrace_materials.tcl rename to resources/samples/tcl/pathtrace_materials.tcl diff --git a/samples/tcl/pencil.tcl b/resources/samples/tcl/pencil.tcl similarity index 100% rename from samples/tcl/pencil.tcl rename to resources/samples/tcl/pencil.tcl diff --git a/samples/tcl/raytrace.tcl b/resources/samples/tcl/raytrace.tcl similarity index 100% rename from samples/tcl/raytrace.tcl rename to resources/samples/tcl/raytrace.tcl diff --git a/samples/tcl/snowflake.tcl b/resources/samples/tcl/snowflake.tcl similarity index 100% rename from samples/tcl/snowflake.tcl rename to resources/samples/tcl/snowflake.tcl diff --git a/samples/tcl/spheres.tcl b/resources/samples/tcl/spheres.tcl similarity index 100% rename from samples/tcl/spheres.tcl rename to resources/samples/tcl/spheres.tcl diff --git a/samples/tcl/vis_pbr_spheres.tcl b/resources/samples/tcl/vis_pbr_spheres.tcl similarity index 100% rename from samples/tcl/vis_pbr_spheres.tcl rename to resources/samples/tcl/vis_pbr_spheres.tcl diff --git a/samples/tcl/xde.tcl b/resources/samples/tcl/xde.tcl similarity index 100% rename from samples/tcl/xde.tcl rename to resources/samples/tcl/xde.tcl diff --git a/samples/CSharp/CSharp.sln b/samples/CSharp/CSharp.sln deleted file mode 100644 index e67bae1fa2..0000000000 --- a/samples/CSharp/CSharp.sln +++ /dev/null @@ -1,45 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IE_WPF_WinForms", "WPF_WinForms\IE_WPF_WinForms.csproj", "{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IE_WinForms", "WinForms\IE_WinForms.csproj", "{B9914BB3-B886-4B41-B48D-350EBEBEFD1F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OCCTProxy", "OCCTProxy\OCCTProxy.vcxproj", "{969912D9-78E7-4AB8-B4FF-6B52B4F03991}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.ActiveCfg = Debug|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.Build.0 = Debug|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.ActiveCfg = Debug|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.Build.0 = Debug|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.ActiveCfg = Release|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.Build.0 = Release|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.ActiveCfg = Release|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.Build.0 = Release|x64 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|Win32.ActiveCfg = Debug|x86 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|Win32.Build.0 = Debug|x86 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x64.ActiveCfg = Debug|x64 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Debug|x64.Build.0 = Debug|x64 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|Win32.ActiveCfg = Release|x86 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|Win32.Build.0 = Release|x86 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x64.ActiveCfg = Release|x64 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F}.Release|x64.Build.0 = Release|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.ActiveCfg = Debug|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.Build.0 = Debug|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.ActiveCfg = Debug|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.Build.0 = Debug|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.ActiveCfg = Release|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.Build.0 = Release|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.ActiveCfg = Release|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/CSharp/CSharp_D3D.sln b/samples/CSharp/CSharp_D3D.sln deleted file mode 100644 index a0fedddcac..0000000000 --- a/samples/CSharp/CSharp_D3D.sln +++ /dev/null @@ -1,35 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IE_WPF_D3D", "WPF_D3D\IE_WPF_D3D.csproj", "{D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OCCTProxy_D3D", "OCCTProxy_D3D\OCCTProxy_D3D.vcxproj", "{969912D9-78E7-4AB8-B4FF-6B52B4F03991}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.ActiveCfg = Debug|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|Win32.Build.0 = Debug|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.ActiveCfg = Debug|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Debug|x64.Build.0 = Debug|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.ActiveCfg = Release|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|Win32.Build.0 = Release|x86 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.ActiveCfg = Release|x64 - {D12A8897-5BF8-4345-BBB0-8ADE4B9FB9A7}.Release|x64.Build.0 = Release|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.ActiveCfg = Debug|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|Win32.Build.0 = Debug|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.ActiveCfg = Debug|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Debug|x64.Build.0 = Debug|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.ActiveCfg = Release|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|Win32.Build.0 = Release|Win32 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.ActiveCfg = Release|x64 - {969912D9-78E7-4AB8-B4FF-6B52B4F03991}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/CSharp/OCCTProxy/OCCTProxy.cpp b/samples/CSharp/OCCTProxy/OCCTProxy.cpp deleted file mode 100644 index ce6afca7ed..0000000000 --- a/samples/CSharp/OCCTProxy/OCCTProxy.cpp +++ /dev/null @@ -1,1052 +0,0 @@ -// Prevent Windows from defining min/max macros -#ifndef NOMINMAX - #define NOMINMAX -#endif - -// include required OCCT headers -#include -#include -#include -//for OCC graphic -#include -#include -#include -//for object display -#include -#include -#include -#include -//topology -#include -#include -//brep tools -#include -#include -// iges I/E -#include -#include -#include -#include -#include -//step I/E -#include -#include -//for stl export -#include -//for vrml export -#include -//wrapper of pure C++ classes to ref classes -#include - -#include - -// list of required OCCT libraries -#pragma comment(lib, "TKernel.lib") -#pragma comment(lib, "TKMath.lib") -#pragma comment(lib, "TKBRep.lib") -#pragma comment(lib, "TKXSBase.lib") -#pragma comment(lib, "TKService.lib") -#pragma comment(lib, "TKV3d.lib") -#pragma comment(lib, "TKOpenGl.lib") -#pragma comment(lib, "TKDEIGES.lib") -#pragma comment(lib, "TKDESTEP.lib") -#pragma comment(lib, "TKDESTL.lib") -#pragma comment(lib, "TKDEVRML.lib") -#pragma comment(lib, "TKLCAF.lib") - -//! Auxiliary tool for converting C# string into UTF-8 string. -static TCollection_AsciiString toAsciiString (String^ theString) -{ - if (theString == nullptr) - { - return TCollection_AsciiString(); - } - - pin_ptr aPinChars = PtrToStringChars (theString); - const wchar_t* aWCharPtr = aPinChars; - if (aWCharPtr == NULL - || *aWCharPtr == L'\0') - { - return TCollection_AsciiString(); - } - return TCollection_AsciiString (aWCharPtr); -} - -/// -/// Proxy class encapsulating calls to OCCT C++ classes within -/// C++/CLI class visible from .Net (CSharp) -/// -public ref class OCCTProxy -{ -public: - // ============================================ - // Viewer functionality - // ============================================ - - /// - ///Initialize a viewer - /// - /// System.IntPtr that contains the window handle (HWND) of the control - bool InitViewer(System::IntPtr theWnd) - { - try - { - Handle(Aspect_DisplayConnection) aDisplayConnection; - myGraphicDriver() = new OpenGl_GraphicDriver (aDisplayConnection); - } - catch (Standard_Failure) - { - return false; - } - - myViewer() = new V3d_Viewer (myGraphicDriver()); - myViewer()->SetDefaultLights(); - myViewer()->SetLightOn(); - myView() = myViewer()->CreateView(); - Handle(WNT_Window) aWNTWindow = new WNT_Window (reinterpret_cast (theWnd.ToPointer())); - myView()->SetWindow(aWNTWindow); - if (!aWNTWindow->IsMapped()) - { - aWNTWindow->Map(); - } - myAISContext() = new AIS_InteractiveContext( myViewer() ); - myAISContext()->UpdateCurrentViewer(); - myView()->Redraw(); - myView()->MustBeResized(); - return true; - } - - /// - /// Make dump of current view to file - /// - /// Name of dump file - bool Dump(const TCollection_AsciiString& theFileName) - { - if (myView().IsNull()) - { - return false; - } - myView()->Redraw(); - return myView()->Dump(theFileName.ToCString()) != Standard_False; - } - - /// - ///Redraw view - /// - void RedrawView(void) - { - if (!myView().IsNull()) - { - myView()->Redraw(); - } - } - - /// - ///Update view - /// - void UpdateView(void) - { - if (!myView().IsNull()) - { - myView()->MustBeResized(); - } - } - - /// - ///Set computed mode in false - /// - void SetDegenerateModeOn(void) - { - if (!myView().IsNull()) - { - myView()->SetComputedMode (Standard_False); - myView()->Redraw(); - } - } - - /// - ///Set computed mode in true - /// - void SetDegenerateModeOff(void) - { - if (!myView().IsNull()) - { - myView()->SetComputedMode (Standard_True); - myView()->Redraw(); - } - } - - /// - ///Fit all - /// - void WindowFitAll(int theXmin, int theYmin, int theXmax, int theYmax) - { - if (!myView().IsNull()) - { - myView()->WindowFitAll(theXmin, theYmin, theXmax, theYmax); - } - } - - /// - ///Current place of window - /// - /// Current zoom - void Place(int theX, int theY, float theZoomFactor) - { - Standard_Real aZoomFactor = theZoomFactor; - if (!myView().IsNull()) - { - myView()->Place(theX, theY, aZoomFactor); - } - } - - /// - ///Set Zoom - /// - void Zoom(int theX1, int theY1, int theX2, int theY2) - { - if (!myView().IsNull()) - { - myView()->Zoom(theX1, theY1, theX2, theY2); - } - } - - /// - ///Set Pan - /// - void Pan(int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->Pan(theX, theY); - } - } - - /// - ///Rotation - /// - void Rotation(int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->Rotation(theX, theY); - } - } - - /// - ///Start rotation - /// - void StartRotation(int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->StartRotation(theX, theY); - } - } - - /// - ///Select by rectangle - /// - void Select(int theX1, int theY1, int theX2, int theY2) - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectRectangle (Graphic3d_Vec2i (theX1, theY1), - Graphic3d_Vec2i (theX2, theY2), - myView()); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Select by click - /// - void Select(void) - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectDetected(); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Move view - /// - void MoveTo(int theX, int theY) - { - if ((!myAISContext().IsNull()) && (!myView().IsNull())) - { - myAISContext()->MoveTo (theX, theY, myView(), Standard_True); - } - } - - /// - ///Select by rectangle with pressed "Shift" key - /// - void ShiftSelect(int theX1, int theY1, int theX2, int theY2) - { - if ((!myAISContext().IsNull()) && (!myView().IsNull())) - { - myAISContext()->SelectRectangle (Graphic3d_Vec2i (theX1, theY1), - Graphic3d_Vec2i (theX2, theY2), - myView(), - AIS_SelectionScheme_XOR); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Select by "Shift" key - /// - void ShiftSelect(void) - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectDetected (AIS_SelectionScheme_XOR); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Set background color - /// - void BackgroundColor(int& theRed, int& theGreen, int& theBlue) - { - Standard_Real R1; - Standard_Real G1; - Standard_Real B1; - if (!myView().IsNull()) - { - myView()->BackgroundColor(Quantity_TOC_RGB,R1,G1,B1); - } - theRed = (int)R1*255; - theGreen = (int)G1*255; - theBlue = (int)B1*255; - } - - /// - ///Get background color Red - /// - int GetBGColR(void) - { - int aRed, aGreen, aBlue; - BackgroundColor(aRed, aGreen, aBlue); - return aRed; - } - - /// - ///Get background color Green - /// - int GetBGColG(void) - { - int aRed, aGreen, aBlue; - BackgroundColor(aRed, aGreen, aBlue); - return aGreen; - } - - /// - ///Get background color Blue - /// - int GetBGColB(void) - { - int aRed, aGreen, aBlue; - BackgroundColor(aRed, aGreen, aBlue); - return aBlue; - } - - /// - ///Update current viewer - /// - void UpdateCurrentViewer(void) - { - if (!myAISContext().IsNull()) - { - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Front side - /// - void FrontView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Yneg); - } - } - - /// - ///Top side - /// - void TopView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Zpos); - } - } - - /// - ///Left side - /// - void LeftView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Xneg); - } - } - - /// - ///Back side - /// - void BackView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Ypos); - } - } - - /// - ///Right side - /// - void RightView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Xpos); - } - } - - /// - ///Bottom side - /// - void BottomView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_Zneg); - } - } - - /// - ///Axo side - /// - void AxoView(void) - { - if (!myView().IsNull()) - { - myView()->SetProj(V3d_XposYnegZpos); - } - } - - /// - ///Scale - /// - float Scale(void) - { - if (myView().IsNull()) - { - return -1; - } - else - { - return (float)myView()->Scale(); - } - } - - /// - ///Zoom in all view - /// - void ZoomAllView(void) - { - if (!myView().IsNull()) - { - myView()->FitAll(); - myView()->ZFitAll(); - } - } - - /// - ///Reset view - /// - void Reset(void) - { - if (!myView().IsNull()) - { - myView()->Reset(); - } - } - - /// - ///Set display mode of objects - /// - /// Set current mode - void SetDisplayMode(int theMode) - { - if (myAISContext().IsNull()) - { - return; - } - AIS_DisplayMode aCurrentMode; - if (theMode == 0) - { - aCurrentMode=AIS_WireFrame; - } - else - { - aCurrentMode=AIS_Shaded; - } - - if(myAISContext()->NbSelected()==0) - { - myAISContext()->SetDisplayMode (aCurrentMode, Standard_False); - } - else - { - for(myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetDisplayMode (myAISContext()->SelectedInteractive(), theMode, Standard_False); - } - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Set color - /// - void SetColor(int theR, int theG, int theB) - { - if (myAISContext().IsNull()) - { - return; - } - Quantity_Color aCol = Quantity_Color(theR/255.,theG/255.,theB/255.,Quantity_TOC_RGB); - for (; myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetColor (myAISContext()->SelectedInteractive(), aCol, Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Get object color red - /// - int GetObjColR(void) - { - int aRed, aGreen, aBlue; - ObjectColor(aRed, aGreen, aBlue); - return aRed; - } - - /// - ///Get object color green - /// - int GetObjColG(void) - { - int aRed, aGreen, aBlue; - ObjectColor(aRed, aGreen, aBlue); - return aGreen; - } - - /// - ///Get object color R/G/B - /// - void ObjectColor(int& theRed, int& theGreen, int& theBlue) - { - if (myAISContext().IsNull()) - { - return; - } - theRed=255; - theGreen=255; - theBlue=255; - Handle(AIS_InteractiveObject) aCurrent ; - myAISContext()->InitSelected(); - if (!myAISContext()->MoreSelected()) - { - return; - } - aCurrent = myAISContext()->SelectedInteractive(); - if ( aCurrent->HasColor () ) - { - Quantity_Color anObjCol; - myAISContext()->Color (aCurrent, anObjCol); - Standard_Real r1, r2, r3; - anObjCol.Values(r1, r2, r3, Quantity_TOC_RGB); - theRed=(int)r1*255; - theGreen=(int)r2*255; - theBlue=(int)r3*255; - } - } - - /// - ///Get object color blue - /// - int GetObjColB(void) - { - int aRed, aGreen, aBlue; - ObjectColor(aRed, aGreen, aBlue); - return aBlue; - } - - /// - ///Set background color R/G/B - /// - void SetBackgroundColor(int theRed, int theGreen, int theBlue) - { - if (!myView().IsNull()) - { - myView()->SetBackgroundColor(Quantity_TOC_RGB, theRed/255.,theGreen/255.,theBlue/255.); - } - } - - /// - ///Erase objects - /// - void EraseObjects(void) - { - if (myAISContext().IsNull()) - { - return; - } - - myAISContext()->EraseSelected (Standard_False); - myAISContext()->ClearSelected (Standard_True); - } - - /// - ///Get version - /// - float GetOCCVersion(void) - { - return (float)OCC_VERSION; - } - - /// - ///set material - /// - void SetMaterial(int theMaterial) - { - if (myAISContext().IsNull()) - { - return; - } - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetMaterial (myAISContext()->SelectedInteractive(), (Graphic3d_NameOfMaterial)theMaterial, Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///set transparency - /// - void SetTransparency(int theTrans) - { - if (myAISContext().IsNull()) - { - return; - } - for( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() ) - { - myAISContext()->SetTransparency (myAISContext()->SelectedInteractive(), ((Standard_Real)theTrans) / 10.0, Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Return true if object is selected - /// - bool IsObjectSelected(void) - { - if (myAISContext().IsNull()) - { - return false; - } - myAISContext()->InitSelected(); - return myAISContext()->MoreSelected() != Standard_False; - } - - /// - ///Return display mode - /// - int DisplayMode(void) - { - if (myAISContext().IsNull()) - { - return -1; - } - int aMode = -1; - bool OneOrMoreInShading = false; - bool OneOrMoreInWireframe = false; - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - if ( myAISContext()->IsDisplayed( myAISContext()->SelectedInteractive(), 1 ) ) - { - OneOrMoreInShading = true; - } - if ( myAISContext()->IsDisplayed( myAISContext()->SelectedInteractive(), 0 ) ) - { - OneOrMoreInWireframe = true; - } - } - if (OneOrMoreInShading && OneOrMoreInWireframe) - { - aMode=10; - } - else if(OneOrMoreInShading) - { - aMode=1; - } - else if (OneOrMoreInWireframe) - { - aMode=0; - } - - return aMode; - } - - /// - ///Create new view - /// - /// System.IntPtr that contains the window handle (HWND) of the control - void CreateNewView(System::IntPtr theWnd) - { - if (myAISContext().IsNull()) - { - return; - } - myView() = myAISContext()->CurrentViewer()->CreateView(); - if (myGraphicDriver().IsNull()) - { - myGraphicDriver() = new OpenGl_GraphicDriver (Handle(Aspect_DisplayConnection)()); - } - Handle(WNT_Window) aWNTWindow = new WNT_Window (reinterpret_cast (theWnd.ToPointer())); - myView()->SetWindow(aWNTWindow); - Standard_Integer w=100, h=100; - aWNTWindow->Size(w,h); - if (!aWNTWindow->IsMapped()) - { - aWNTWindow->Map(); - } - } - - /// - ///Set AISContext - /// - bool SetAISContext(OCCTProxy^ theViewer) - { - this->myAISContext() = theViewer->GetContext(); - if (myAISContext().IsNull()) - { - return false; - } - return true; - } - - /// - ///Get AISContext - /// - Handle(AIS_InteractiveContext) GetContext(void) - { - return myAISContext(); - } - -public: - // ============================================ - // Import / export functionality - // ============================================ - - /// - ///Import BRep file - /// - /// Name of import file - bool ImportBrep(System::String^ theFileName) - { - return ImportBrep (toAsciiString (theFileName)); - } - - /// - ///Import BRep file - /// - /// Name of import file - bool ImportBrep (const TCollection_AsciiString& theFileName) - { - TopoDS_Shape aShape; - BRep_Builder aBuilder; - Standard_Boolean isResult = BRepTools::Read(aShape,theFileName.ToCString(),aBuilder); - if (!isResult) - { - return false; - } - - myAISContext()->Display (new AIS_Shape (aShape), Standard_True); - return true; - } - - /// - ///Import Step file - /// - /// Name of import file - bool ImportStep(const TCollection_AsciiString& theFileName) - { - STEPControl_Reader aReader; - IFSelect_ReturnStatus aStatus = aReader.ReadFile(theFileName.ToCString()); - if ( aStatus == IFSelect_RetDone ) - { - bool isFailsonly = false; - aReader.PrintCheckLoad( isFailsonly, IFSelect_ItemsByEntity ); - - int aNbRoot = aReader.NbRootsForTransfer(); - aReader.PrintCheckTransfer( isFailsonly, IFSelect_ItemsByEntity ); - for ( Standard_Integer n = 1; n <= aNbRoot; n++ ) - { - Standard_Boolean ok = aReader.TransferRoot( n ); - int aNbShap = aReader.NbShapes(); - if ( aNbShap > 0 ) - { - for ( int i = 1; i <= aNbShap; i++ ) - { - TopoDS_Shape aShape = aReader.Shape( i ); - myAISContext()->Display (new AIS_Shape (aShape), Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - } - } - else - { - return false; - } - - return true; - } - - /// - ///Import Iges file - /// - /// Name of import file - bool ImportIges(const TCollection_AsciiString& theFileName) - { - IGESControl_Reader aReader; - int aStatus = aReader.ReadFile( theFileName.ToCString() ); - - if ( aStatus == IFSelect_RetDone ) - { - aReader.TransferRoots(); - TopoDS_Shape aShape = aReader.OneShape(); - myAISContext()->Display (new AIS_Shape (aShape), Standard_False); - } - else - { - return false; - } - - myAISContext()->UpdateCurrentViewer(); - return true; - } - - /// - ///Export BRep file - /// - /// Name of export file - bool ExportBRep(const TCollection_AsciiString& theFileName) - { - myAISContext()->InitSelected(); - if (!myAISContext()->MoreSelected()) - { - return false; - } - - Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive(); - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast(anIO); - return BRepTools::Write (anIS->Shape(), theFileName.ToCString()) != Standard_False; - } - - /// - ///Export Step file - /// - /// Name of export file - bool ExportStep(const TCollection_AsciiString& theFileName) - { - STEPControl_StepModelType aType = STEPControl_AsIs; - IFSelect_ReturnStatus aStatus; - STEPControl_Writer aWriter; - for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() ) - { - Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive(); - Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO); - TopoDS_Shape aShape = anIS->Shape(); - aStatus = aWriter.Transfer( aShape , aType ); - if ( aStatus != IFSelect_RetDone ) - { - return false; - } - } - - aStatus = aWriter.Write(theFileName.ToCString()); - if ( aStatus != IFSelect_RetDone ) - { - return false; - } - - return true; - } - - /// - ///Export Iges file - /// - /// Name of export file - bool ExportIges(const TCollection_AsciiString& theFileName) - { - IGESControl_Controller::Init(); - IGESControl_Writer aWriter( Interface_Static::CVal( "XSTEP.iges.unit" ), - Interface_Static::IVal( "XSTEP.iges.writebrep.mode" ) ); - - for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() ) - { - Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive(); - Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO); - TopoDS_Shape aShape = anIS->Shape(); - aWriter.AddShape ( aShape ); - } - - aWriter.ComputeModel(); - return aWriter.Write(theFileName.ToCString()) != Standard_False; - } - - /// - ///Export Vrml file - /// - /// Name of export file - bool ExportVrml(const TCollection_AsciiString& theFileName) - { - TopoDS_Compound aRes; - BRep_Builder aBuilder; - aBuilder.MakeCompound( aRes ); - - for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() ) - { - Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive(); - Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO); - TopoDS_Shape aShape = anIS->Shape(); - if ( aShape.IsNull() ) - { - return false; - } - - aBuilder.Add( aRes, aShape ); - } - - VrmlAPI_Writer aWriter; - aWriter.Write(aRes, theFileName.ToCString()); - - return true; - } - - /// - ///Export Stl file - /// - /// Name of export file - bool ExportStl(const TCollection_AsciiString& theFileName) - { - TopoDS_Compound aComp; - BRep_Builder aBuilder; - aBuilder.MakeCompound( aComp ); - - for ( myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected() ) - { - Handle(AIS_InteractiveObject) anIO = myAISContext()->SelectedInteractive(); - Handle(AIS_Shape) anIS=Handle(AIS_Shape)::DownCast(anIO); - TopoDS_Shape aShape = anIS->Shape(); - if ( aShape.IsNull() ) - { - return false; - } - aBuilder.Add( aComp, aShape ); - } - - StlAPI_Writer aWriter; - aWriter.Write(aComp, theFileName.ToCString()); - return true; - } - - /// - ///Define which Import/Export function must be called - /// - /// Name of Import/Export file - /// Determines format of Import/Export file - /// Determines is Import or not - bool TranslateModel(System::String^ theFileName, int theFormat, bool theIsImport) - { - bool isResult; - - const TCollection_AsciiString aFilename = toAsciiString (theFileName); - if (theIsImport) - { - switch(theFormat) - { - case 0: - isResult = ImportBrep(aFilename); - break; - case 1: - isResult = ImportStep(aFilename); - break; - case 2: - isResult = ImportIges(aFilename); - break; - default: - isResult = false; - } - } - else - { - switch(theFormat) - { - case 0: - isResult = ExportBRep(aFilename); - break; - case 1: - isResult = ExportStep(aFilename); - break; - case 2: - isResult = ExportIges(aFilename); - break; - case 3: - isResult = ExportVrml(aFilename); - break; - case 4: - isResult = ExportStl(aFilename); - break; - case 5: - isResult = Dump(aFilename); - break; - default: - isResult = false; - } - } - return isResult; - } - - /// - ///Initialize OCCTProxy - /// - void InitOCCTProxy(void) - { - myGraphicDriver()=NULL; - myViewer()=NULL; - myView()=NULL; - myAISContext()=NULL; - } - -private: - // fields - NCollection_Haft myViewer; - NCollection_Haft myView; - NCollection_Haft myAISContext; - NCollection_Haft myGraphicDriver; -}; diff --git a/samples/CSharp/OCCTProxy/OCCTProxy.vcproj b/samples/CSharp/OCCTProxy/OCCTProxy.vcproj deleted file mode 100644 index 5eb62a5e01..0000000000 --- a/samples/CSharp/OCCTProxy/OCCTProxy.vcproj +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/CSharp/OCCTProxy/OCCTProxy.vcxproj b/samples/CSharp/OCCTProxy/OCCTProxy.vcxproj deleted file mode 100644 index 7e3c0265d9..0000000000 --- a/samples/CSharp/OCCTProxy/OCCTProxy.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {969912D9-78E7-4AB8-B4FF-6B52B4F03991} - OCCTProxy - Win32Proj - - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - ..\win32\$(VCVER)\bind\ - obj\$(Platform)\$(Configuration)\ - true - ..\win64\$(VCVER)\bind\ - obj\$(Platform)\$(Configuration)\ - true - ..\win32\$(VCVER)\bin\ - obj\$(Platform)\$(Configuration)\ - false - ..\win64\$(VCVER)\bin\ - obj\$(Platform)\$(Configuration)\ - false - - - stdcpp17 - - - - Disabled - ..\OCC\;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - false - Default - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - true - $(OutDir)OCCTProxy.pdb - Windows - false - - - $(OutDir)OCCTProxy.lib - MachineX86 - - - - - X64 - - - Disabled - ..\OCC\;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - false - Default - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - true - $(OutDir)OCCTProxy.pdb - Windows - false - - - $(OutDir)OCCTProxy.lib - MachineX64 - - - - - ..\OCC\;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - Windows - true - true - false - - - $(OutDir)OCCTProxy.lib - MachineX86 - - - - - X64 - - - ..\OCC\;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - Windows - true - true - false - - - $(OutDir)OCCTProxy.lib - MachineX64 - - - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp b/samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp deleted file mode 100644 index 446d1fabf2..0000000000 --- a/samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp +++ /dev/null @@ -1,989 +0,0 @@ -// Prevent Windows from defining min/max macros -#ifndef NOMINMAX - #define NOMINMAX -#endif - -#include -#include - -// include required OCCT headers -#include -#include -#include -//for OCC graphic -#include -#include -#include -#include -#include -#include -#include -//for object display -#include -#include -#include -#include -//topology -#include -#include -//brep tools -#include -#include -// iges I/E -#include -#include -#include -#include -#include -//step I/E -#include -#include -//for stl export -#include -//for vrml export -#include -//wrapper of pure C++ classes to ref classes -#include - -#include - -// list of required OCCT libraries -#pragma comment(lib, "TKernel.lib") -#pragma comment(lib, "TKMath.lib") -#pragma comment(lib, "TKBRep.lib") -#pragma comment(lib, "TKXSBase.lib") -#pragma comment(lib, "TKService.lib") -#pragma comment(lib, "TKV3d.lib") -#pragma comment(lib, "TKOpenGl.lib") -#pragma comment(lib, "TKD3dHost.lib") -#pragma comment(lib, "TKDEIGES.lib") -#pragma comment(lib, "TKDESTEP.lib") -#pragma comment(lib, "TKDESTL.lib") -#pragma comment(lib, "TKDEVRML.lib") -#pragma comment(lib, "TKLCAF.lib") - -#pragma comment(lib, "D3D9.lib") - -//! Auxiliary tool for converting C# string into UTF-8 string. -static TCollection_AsciiString toAsciiString (String^ theString) -{ - if (theString == nullptr) - { - return TCollection_AsciiString(); - } - - pin_ptr aPinChars = PtrToStringChars (theString); - const wchar_t* aWCharPtr = aPinChars; - if (aWCharPtr == NULL - || *aWCharPtr == L'\0') - { - return TCollection_AsciiString(); - } - return TCollection_AsciiString (aWCharPtr); -} - -/// -/// Proxy class encapsulating calls to OCCT C++ classes within -/// C++/CLI class visible from .Net (CSharp) -/// -public ref class OCCTProxyD3D -{ -public: - - OCCTProxyD3D() {} - - // ============================================ - // Viewer functionality - // ============================================ - - /// - ///Initialize a viewer - /// - /// System.IntPtr that contains the window handle (HWND) of the control - bool InitViewer() - { - myGraphicDriver() = new D3DHost_GraphicDriver(); - myGraphicDriver()->ChangeOptions().buffersNoSwap = true; - //myGraphicDriver()->ChangeOptions().contextDebug = true; - - myViewer() = new V3d_Viewer (myGraphicDriver()); - myViewer()->SetDefaultLights(); - myViewer()->SetLightOn(); - myView() = myViewer()->CreateView(); - - static Handle(WNT_WClass) aWClass = new WNT_WClass ("OCC_Viewer", NULL, CS_OWNDC); - Handle(WNT_Window) aWNTWindow = new WNT_Window ("OCC_Viewer", aWClass, WS_POPUP, 64, 64, 64, 64); - aWNTWindow->SetVirtual (Standard_True); - myView()->SetWindow(aWNTWindow); - myAISContext() = new AIS_InteractiveContext (myViewer()); - myAISContext()->UpdateCurrentViewer(); - myView()->MustBeResized(); - return true; - } - - /// Resizes custom FBO for Direct3D output. - System::IntPtr ResizeBridgeFBO (int theWinSizeX, - int theWinSizeY) - { - Handle(WNT_Window) aWNTWindow = Handle(WNT_Window)::DownCast (myView()->Window()); - aWNTWindow->SetPos (0, 0, theWinSizeX, theWinSizeY); - myView()->MustBeResized(); - myView()->Invalidate(); - return System::IntPtr(Handle(D3DHost_View)::DownCast (myView()->View())->D3dColorSurface()); - } - - /// - /// Make dump of current view to file - /// - /// Name of dump file - bool Dump (const TCollection_AsciiString& theFileName) - { - if (myView().IsNull()) - { - return false; - } - myView()->Redraw(); - return myView()->Dump (theFileName.ToCString()) != Standard_False; - } - - /// - ///Redraw view - /// - void RedrawView() - { - if (!myView().IsNull()) - { - myView()->Redraw(); - } - } - - /// - ///Update view - /// - void UpdateView(void) - { - if (!myView().IsNull()) - { - myView()->MustBeResized(); - } - } - - /// - ///Set computed mode in false - /// - void SetDegenerateModeOn() - { - if (!myView().IsNull()) - { - myView()->SetComputedMode (Standard_False); - myView()->Redraw(); - } - } - - /// - ///Set computed mode in true - /// - void SetDegenerateModeOff() - { - if (!myView().IsNull()) - { - myView()->SetComputedMode (Standard_True); - myView()->Redraw(); - } - } - - /// - ///Fit all - /// - void WindowFitAll (int theXmin, int theYmin, - int theXmax, int theYmax) - { - if (!myView().IsNull()) - { - myView()->WindowFitAll (theXmin, theYmin, theXmax, theYmax); - } - } - - /// - ///Current place of window - /// - /// Current zoom - void Place (int theX, int theY, float theZoomFactor) - { - Standard_Real aZoomFactor = theZoomFactor; - if (!myView().IsNull()) - { - myView()->Place (theX, theY, aZoomFactor); - } - } - - /// - ///Set Zoom - /// - void Zoom (int theX1, int theY1, int theX2, int theY2) - { - if (!myView().IsNull()) - { - myView()->Zoom (theX1, theY1, theX2, theY2); - } - } - - /// - ///Set Pan - /// - void Pan (int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->Pan (theX, theY); - } - } - - /// - ///Rotation - /// - void Rotation (int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->Rotation (theX, theY); - } - } - - /// - ///Start rotation - /// - void StartRotation (int theX, int theY) - { - if (!myView().IsNull()) - { - myView()->StartRotation (theX, theY); - } - } - - /// - ///Select by rectangle - /// - void Select (int theX1, int theY1, int theX2, int theY2) - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectRectangle (Graphic3d_Vec2i (theX1, theY1), - Graphic3d_Vec2i (theX2, theY2), - myView()); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Select by click - /// - void Select() - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectDetected(); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Move view - /// - void MoveTo (int theX, int theY) - { - if (!myAISContext().IsNull() && !myView().IsNull()) - { - myAISContext()->MoveTo (theX, theY, myView(), Standard_True); - } - } - - /// - ///Select by rectangle with pressed "Shift" key - /// - void ShiftSelect (int theX1, int theY1, int theX2, int theY2) - { - if (!myAISContext().IsNull() && !myView().IsNull()) - { - myAISContext()->SelectRectangle (Graphic3d_Vec2i (theX1, theY1), - Graphic3d_Vec2i (theX2, theY2), - myView(), - AIS_SelectionScheme_XOR); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Select by "Shift" key - /// - void ShiftSelect() - { - if (!myAISContext().IsNull()) - { - myAISContext()->SelectDetected (AIS_SelectionScheme_XOR); - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Set background color - /// - void BackgroundColor (int& theRed, int& theGreen, int& theBlue) - { - if (!myView().IsNull()) - { - Quantity_Color aColor = myView()->BackgroundColor(); - theRed = (int )aColor.Red() * 255; - theGreen = (int )aColor.Green() * 255; - theBlue = (int )aColor.Blue() * 255; - } - } - - /// - ///Get background color Red - /// - int GetBGColR() - { - int anRgb[3]; - BackgroundColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[0]; - } - - /// - ///Get background color Green - /// - int GetBGColG() - { - int anRgb[3]; - BackgroundColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[1]; - } - - /// - ///Get background color Blue - /// - int GetBGColB() - { - int anRgb[3]; - BackgroundColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[2]; - } - - /// - ///Update current viewer - /// - void UpdateCurrentViewer() - { - if (!myAISContext().IsNull()) - { - myAISContext()->UpdateCurrentViewer(); - } - } - - /// - ///Front side - /// - void FrontView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Yneg); - } - } - - /// - ///Top side - /// - void TopView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Zpos); - } - } - - /// - ///Left side - /// - void LeftView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Xneg); - } - } - - /// - ///Back side - /// - void BackView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Ypos); - } - } - - /// - ///Right side - /// - void RightView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Xpos); - } - } - - /// - ///Bottom side - /// - void BottomView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_Zneg); - } - } - - /// - ///Axo side - /// - void AxoView() - { - if (!myView().IsNull()) - { - myView()->SetProj (V3d_XposYnegZpos); - } - } - - /// - ///Scale - /// - float Scale() - { - return myView().IsNull() - ? -1.0f - : float(myView()->Scale()); - } - - /// - ///Zoom in all view - /// - void ZoomAllView() - { - if (!myView().IsNull()) - { - myView()->FitAll(); - myView()->ZFitAll(); - } - } - - /// - ///Reset view - /// - void Reset() - { - if (!myView().IsNull()) - { - myView()->Reset(); - } - } - - /// - ///Set display mode of objects - /// - /// Set current mode - void SetDisplayMode (int theMode) - { - if (myAISContext().IsNull()) - { - return; - } - - AIS_DisplayMode aCurrentMode = theMode == 0 - ? AIS_WireFrame - : AIS_Shaded; - if (myAISContext()->NbSelected() == 0) - { - myAISContext()->SetDisplayMode (aCurrentMode, Standard_False); - } - else - { - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetDisplayMode (myAISContext()->SelectedInteractive(), theMode, Standard_False); - } - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Set color - /// - void SetColor (int theR, int theG, int theB) - { - if (myAISContext().IsNull()) - { - return; - } - - Quantity_Color aCol (theR / 255.0, theG / 255.0, theB / 255.0, Quantity_TOC_RGB); - for (; myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetColor (myAISContext()->SelectedInteractive(), aCol, false); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Get object color red - /// - int GetObjColR() - { - int anRgb[3]; - ObjectColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[0]; - } - - /// - ///Get object color green - /// - int GetObjColG() - { - int anRgb[3]; - ObjectColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[1]; - } - - /// - ///Get object color blue - /// - int GetObjColB() - { - int anRgb[3]; - ObjectColor (anRgb[0], anRgb[1], anRgb[2]); - return anRgb[2]; - } - - /// - ///Get object color R/G/B - /// - void ObjectColor (int& theRed, int& theGreen, int& theBlue) - { - if (myAISContext().IsNull()) - { - return; - } - - theRed = 255; - theGreen = 255; - theBlue = 255; - myAISContext()->InitSelected(); - if (!myAISContext()->MoreSelected()) - { - return; - } - - Handle(AIS_InteractiveObject) aCurrent = myAISContext()->SelectedInteractive(); - if (aCurrent->HasColor()) - { - Quantity_Color anObjCol; - myAISContext()->Color (aCurrent, anObjCol); - theRed = int(anObjCol.Red() * 255.0); - theGreen = int(anObjCol.Green() * 255.0); - theBlue = int(anObjCol.Blue() * 255.0); - } - } - - /// - ///Set background color R/G/B - /// - void SetBackgroundColor (int theRed, int theGreen, int theBlue) - { - if (!myView().IsNull()) - { - myView()->SetBackgroundColor (Quantity_TOC_RGB, theRed / 255.0, theGreen / 255.0, theBlue / 255.0); - } - } - - /// - ///Erase objects - /// - void EraseObjects() - { - if (myAISContext().IsNull()) - { - return; - } - - myAISContext()->EraseSelected (Standard_False); - myAISContext()->ClearSelected (Standard_True); - } - - /// - ///Get version - /// - float GetOCCVersion() - { - return (float )OCC_VERSION; - } - - /// - ///set material - /// - void SetMaterial (int theMaterial) - { - if (myAISContext().IsNull()) - { - return; - } - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetMaterial (myAISContext()->SelectedInteractive(), (Graphic3d_NameOfMaterial )theMaterial, Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///set transparency - /// - void SetTransparency (int theTrans) - { - if (myAISContext().IsNull()) - { - return; - } - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - myAISContext()->SetTransparency (myAISContext()->SelectedInteractive(), ((Standard_Real )theTrans) / 10.0, Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - - /// - ///Return true if object is selected - /// - bool IsObjectSelected() - { - if (myAISContext().IsNull()) - { - return false; - } - myAISContext()->InitSelected(); - return myAISContext()->MoreSelected() != Standard_False; - } - - /// - ///Return display mode - /// - int DisplayMode() - { - if (myAISContext().IsNull()) - { - return -1; - } - - bool isOneOrMoreInShading = false; - bool isOneOrMoreInWireframe = false; - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - if (myAISContext()->IsDisplayed (myAISContext()->SelectedInteractive(), AIS_Shaded)) - { - isOneOrMoreInShading = true; - } - if (myAISContext()->IsDisplayed (myAISContext()->SelectedInteractive(), AIS_WireFrame)) - { - isOneOrMoreInWireframe = true; - } - } - if (isOneOrMoreInShading - && isOneOrMoreInWireframe) - { - return 10; - } - else if (isOneOrMoreInShading) - { - return 1; - } - else if (isOneOrMoreInWireframe) - { - return 0; - } - return -1; - } - - /// - ///Set AISContext - /// - bool SetAISContext (OCCTProxyD3D^ theViewer) - { - this->myAISContext() = theViewer->GetContext(); - if (myAISContext().IsNull()) - { - return false; - } - return true; - } - - /// - ///Get AISContext - /// - Handle(AIS_InteractiveContext) GetContext() - { - return myAISContext(); - } - -public: - // ============================================ - // Import / export functionality - // ============================================ - - /// - ///Import BRep file - /// - /// Name of import file - bool ImportBrep (System::String^ theFileName) - { - return ImportBrep (toAsciiString (theFileName)); - } - - /// - ///Import BRep file - /// - /// Name of import file - bool ImportBrep (const TCollection_AsciiString& theFileName) - { - TopoDS_Shape aShape; - BRep_Builder aBuilder; - if (!BRepTools::Read (aShape, theFileName.ToCString(), aBuilder)) - { - return false; - } - - Handle(AIS_Shape) aPrs = new AIS_Shape (aShape); - myAISContext()->SetMaterial (aPrs, Graphic3d_NameOfMaterial_Gold, Standard_False); - myAISContext()->SetDisplayMode(aPrs, AIS_Shaded, Standard_False); - myAISContext()->Display (aPrs, Standard_True); - return true; - } - - /// - ///Import Step file - /// - /// Name of import file - bool ImportStep (const TCollection_AsciiString& theFileName) - { - STEPControl_Reader aReader; - if (aReader.ReadFile (theFileName.ToCString()) != IFSelect_RetDone) - { - return false; - } - - bool isFailsonly = false; - aReader.PrintCheckLoad( isFailsonly, IFSelect_ItemsByEntity ); - - int aNbRoot = aReader.NbRootsForTransfer(); - aReader.PrintCheckTransfer (isFailsonly, IFSelect_ItemsByEntity); - for (Standard_Integer aRootIter = 1; aRootIter <= aNbRoot; ++aRootIter) - { - aReader.TransferRoot (aRootIter); - int aNbShap = aReader.NbShapes(); - if (aNbShap > 0) - { - for (int aShapeIter = 1; aShapeIter <= aNbShap; ++aShapeIter) - { - myAISContext()->Display (new AIS_Shape (aReader.Shape (aShapeIter)), Standard_False); - } - myAISContext()->UpdateCurrentViewer(); - } - } - return true; - } - - /// - ///Import Iges file - /// - /// Name of import file - bool ImportIges (const TCollection_AsciiString& theFileName) - { - IGESControl_Reader aReader; - if (aReader.ReadFile (theFileName.ToCString()) != IFSelect_RetDone) - { - return false; - } - - aReader.TransferRoots(); - TopoDS_Shape aShape = aReader.OneShape(); - myAISContext()->Display (new AIS_Shape (aShape), Standard_False); - myAISContext()->UpdateCurrentViewer(); - return true; - } - - /// - ///Export BRep file - /// - /// Name of export file - bool ExportBRep (const TCollection_AsciiString& theFileName) - { - myAISContext()->InitSelected(); - if (!myAISContext()->MoreSelected()) - { - return false; - } - - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast (myAISContext()->SelectedInteractive()); - return !anIS.IsNull() - && BRepTools::Write (anIS->Shape(), theFileName.ToCString()); - } - - /// - ///Export Step file - /// - /// Name of export file - bool ExportStep (const TCollection_AsciiString& theFileName) - { - STEPControl_StepModelType aType = STEPControl_AsIs; - STEPControl_Writer aWriter; - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast (myAISContext()->SelectedInteractive()); - if (anIS.IsNull()) - { - return false; - } - - TopoDS_Shape aShape = anIS->Shape(); - if (aWriter.Transfer (aShape, aType) != IFSelect_RetDone) - { - return false; - } - } - return aWriter.Write (theFileName.ToCString()) == IFSelect_RetDone; - } - - /// - ///Export Iges file - /// - /// Name of export file - bool ExportIges (const TCollection_AsciiString& theFileName) - { - IGESControl_Controller::Init(); - IGESControl_Writer aWriter (Interface_Static::CVal ("XSTEP.iges.unit"), - Interface_Static::IVal ("XSTEP.iges.writebrep.mode")); - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast (myAISContext()->SelectedInteractive()); - if (anIS.IsNull()) - { - return false; - } - - aWriter.AddShape (anIS->Shape()); - } - - aWriter.ComputeModel(); - return aWriter.Write (theFileName.ToCString()) != Standard_False; - } - - /// - ///Export Vrml file - /// - /// Name of export file - bool ExportVrml (const TCollection_AsciiString& theFileName) - { - TopoDS_Compound aRes; - BRep_Builder aBuilder; - aBuilder.MakeCompound (aRes); - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast (myAISContext()->SelectedInteractive()); - if (anIS.IsNull()) - { - return false; - } - aBuilder.Add (aRes, anIS->Shape()); - } - - VrmlAPI_Writer aWriter; - aWriter.Write (aRes, theFileName.ToCString()); - return true; - } - - /// - ///Export Stl file - /// - /// Name of export file - bool ExportStl (const TCollection_AsciiString& theFileName) - { - TopoDS_Compound aComp; - BRep_Builder aBuilder; - aBuilder.MakeCompound (aComp); - for (myAISContext()->InitSelected(); myAISContext()->MoreSelected(); myAISContext()->NextSelected()) - { - Handle(AIS_Shape) anIS = Handle(AIS_Shape)::DownCast (myAISContext()->SelectedInteractive()); - if (anIS.IsNull()) - { - return false; - } - aBuilder.Add (aComp, anIS->Shape()); - } - - StlAPI_Writer aWriter; - aWriter.Write (aComp, theFileName.ToCString()); - return true; - } - - /// - ///Define which Import/Export function must be called - /// - /// Name of Import/Export file - /// Determines format of Import/Export file - /// Determines is Import or not - bool TranslateModel (System::String^ theFileName, int theFormat, bool theIsImport) - { - bool isResult = false; - const TCollection_AsciiString aFilename = toAsciiString (theFileName); - if (theIsImport) - { - switch (theFormat) - { - case 0: isResult = ImportBrep (aFilename); break; - case 1: isResult = ImportStep (aFilename); break; - case 2: isResult = ImportIges (aFilename); break; - } - } - else - { - switch (theFormat) - { - case 0: isResult = ExportBRep (aFilename); break; - case 1: isResult = ExportStep (aFilename); break; - case 2: isResult = ExportIges (aFilename); break; - case 3: isResult = ExportVrml (aFilename); break; - case 4: isResult = ExportStl (aFilename); break; - case 5: isResult = Dump (aFilename); break; - } - } - return isResult; - } - - /// - ///Initialize OCCTProxyD3D - /// - void InitOCCTProxy() - { - myGraphicDriver().Nullify(); - myViewer().Nullify(); - myView().Nullify(); - myAISContext().Nullify(); - } - -private: - - NCollection_Haft myViewer; - NCollection_Haft myView; - NCollection_Haft myAISContext; - NCollection_Haft myGraphicDriver; - -}; diff --git a/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcproj b/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcproj deleted file mode 100644 index 7ab2689cd6..0000000000 --- a/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcproj +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcxproj b/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcxproj deleted file mode 100644 index ac8c560f62..0000000000 --- a/samples/CSharp/OCCTProxy_D3D/OCCTProxy_D3D.vcxproj +++ /dev/null @@ -1,201 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {969912D9-78E7-4AB8-B4FF-6B52B4F03991} - OCCTProxy_D3D - Win32Proj - OCCTProxy_D3D - - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - DynamicLibrary - MultiByte - true - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.40219.1 - ..\win32\$(VCVER)\bind\ - obj\$(Platform)\$(Configuration)\ - false - ..\win64\$(VCVER)\bind\ - obj\$(Platform)\$(Configuration)\ - false - ..\win32\$(VCVER)\bin\ - obj\$(Platform)\$(Configuration)\ - false - ..\win64\$(VCVER)\bin\ - obj\$(Platform)\$(Configuration)\ - false - - - stdcpp17 - - - - Disabled - ..\OCC\;$(CSF_OCCTIncludePath);$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - false - Default - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy_D3D.dll - $(CSF_OCCTLibPath);$(DXSDK_DIR)Lib\x86;%(AdditionalLibraryDirectories) - true - true - $(OutDir)OCCTProxy_D3D.pdb - Windows - false - - - $(OutDir)OCCTProxy_D3D.lib - MachineX86 - d3d9.lib;d3dx9d.lib;%(AdditionalDependencies) - - - - - X64 - - - Disabled - ..\OCC\;$(CSF_OCCTIncludePath);$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) - _DEBUG;%(PreprocessorDefinitions) - false - Default - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy_D3D.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - true - $(OutDir)OCCTProxy_D3D.pdb - Windows - false - - - $(OutDir)OCCTProxy_D3D.lib - MachineX64 - - - - - ..\OCC\;$(CSF_OCCTIncludePath);$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy_D3D.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - Windows - true - true - false - - - $(OutDir)OCCTProxy_D3D.lib - MachineX86 - - - - - X64 - - - ..\OCC\;$(CSF_OCCTIncludePath);$(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - $(OutDir)OCCTProxy_D3D.dll - $(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - Windows - true - true - false - - - $(OutDir)OCCTProxy_D3D.lib - MachineX64 - - - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/ReadMe.md b/samples/CSharp/ReadMe.md deleted file mode 100644 index a64ca6bc35..0000000000 --- a/samples/CSharp/ReadMe.md +++ /dev/null @@ -1,54 +0,0 @@ -.NET: Import/Export (C#|C++/CLI|WinForms|WPF) {#samples_csharp_occt} -================== - -This sample demonstrates how to use OCCT libraries in .Net application -written using **CSharp** and **Windows Forms** or **Windows Presentation Foundation** (WPF). -The sample could be found within OCCT repository in folder `/samples/CSharp/`. - -The connection between .Net and OCCT (C++) level is provided by proxy library -**OCCProxy**, written in C++/CLI. The proxy library contains a single *ref* class -encapsulating OCCT viewer and providing the functionality to manipulate this viewer -and to import / export OCCT shapes from / to several supported CAD file formats (IGES, STEP, BREP). - -The sample implements two approaches to the development of a user interface with C#. -Both applications provide the same functionality as the standard OCCT Import/Export sample. -The first project is called *IE_WinForms* and uses Windows Forms for GUI. -The second application is called *IE_WPF_WinForms* and uses Windows Presentation Foundation. - -@figure{samples_c__ie.png} - -Note a few important details: - -- OCCT template class *NCollection_Haft* is used to encapsulate C++ class into a field of *ref* class; - -- It is necessary to explicitly set the target platform for C# assemblies to *x86* - in project **Properties - Build** to work consistently on 64-bit systems with OCCT libraries built in 32-bit mode; - -- this sample demonstrates indirect method of wrapping C++ to C# using a manually - created proxy library. There is an alternative method of wrapping individual - OCCT classes to C# equivalents to make their full API available to a C# user - and to let the code be programmed on C# level similarly to C++ one. See the description - of **OCCT C# Wrapper** in **Advanced Samples and Tools** at - http://www.opencascade.org/support/products/advsamples - -- in WPF sample, **WinForms** control is used to encapsulate OCC viewer since WPF - does not provide the necessary interface to embed OpenGl view. Other possible - solution could be to render OpenGl scene in an off-screen buffer and to map it - to WPF control as an image. That approach would allow using all WPF features to - control the OCCT viewer. - -Run *msvc.bat* to start MS Visual Studio for building the sample. -Note that project files are provided only for VS 2010, you can open them in -newer versions of Visual Studio the using automatic converter. - -After conversion check option **Target framework** in the properties of C# projects -(tab **Application**) to make sure that it corresponds to the version set in -the properties of C++ projects (e.g. .Net Framework 4.0 for VS 2010). - -Run *run_winforms.bat* or *run_wpf.bat* to launch the corresponding sample. - -Note that all batch scripts use the configuration defined in OCCT *custom.bat* file -as default; you can provide arguments specifying VS version, bitness, and mode -to override these settings, e.g.: - - > msvc.bat vc10 win64 Debug diff --git a/samples/CSharp/ReadMe_D3D.md b/samples/CSharp/ReadMe_D3D.md deleted file mode 100644 index 7c1649d348..0000000000 --- a/samples/CSharp/ReadMe_D3D.md +++ /dev/null @@ -1,55 +0,0 @@ -.NET: D3D/OpenGL Viewer (C#|C++/CLI|WPF) {#samples_csharp_direct3d} -================== - -This sample demonstrates how to use OCCT and DirectX libraries in .Net application -written using **CSharp** and **Windows Presentation Foundation** (WPF). -The sample could be found within OCCT repository in folder `/samples/CSharp/`. - -The connection between .Net, OCCT (C++) and DirectX level is provided by proxy libraries, -**OCCProxy** and **D3DProxy**, written in C++/CLI. The proxy library **OCCProxy** contains a single -*ref* class encapsulating OCCT viewer and providing the functionality to manipulate this viewer -and to import / export OCCT shapes from / to several supported CAD file formats (IGES, STEP, -BREP). The proxy library **D3DProxy** contains helper methods for rendering via DirectX. - -The user interface in this sample is based on Windows Presentation Foundation (WPF). -It has the same functionality as the standard OCCT Import/Export sample. The project is -called *IE_WPF_D3D*. - -Note a few important details: - -- to build this sample you should to download and install DirectX SDK - http://www.microsoft.com/en-us/download/details.aspx?id=6812 - -- OCCT template class *NCollection_Haft* is used to encapsulate C++ class into a field of *ref* class; - -- It is necessary to explicitly set the target platform for C# assemblies to *x86* - in project **Properties - Build** to work consistently on 64-bit systems with OCCT libraries built in 32-bit mode; - -- this sample demonstrates indirect method of wrapping C++ to C# using a manually - created proxy library. There is an alternative method of wrapping individual - OCCT classes to C# equivalents to make their full API available to a C# user - and to let the code be programmed on C# level similarly to C++ one. See the description - of **OCCT C# Wrapper** in **Advanced Samples and Tools** at - http://www.opencascade.org/support/products/advsamples - -- in WPF sample, **WinForms** control is used to encapsulate OCC viewer since WPF - does not provide the necessary interface to embed OpenGl view. Other possible - solution could be to render OpenGl scene in an off-screen buffer and to map it - to WPF control as an image. That approach would allow using all WPF features to - control the OCCT viewer. - -Run *msvc.bat* to start MS Visual Studio for building the sample. -Note that project files are provided only for VS 2010, you can open them in -newer versions of Visual Studio using an automatic converter. - -After conversion check option **Target framework** in the properties of C# projects -(tab **Application**) to make sure that it corresponds to the version set in -the properties of C++ projects (e.g. .Net Framework 4.0 for VS 2010). - -Run *run_wpf-D3D.bat* to launch the corresponding sample. - -Note that all batch scripts use the configuration defined in OCCT *custom.bat* file -as default; you can provide arguments specifying VS version, bitness, and mode -to override these settings, e.g.: - - > msvc.bat vc10 win64 Debug diff --git a/samples/CSharp/WPF_D3D/About.xaml b/samples/CSharp/WPF_D3D/About.xaml deleted file mode 100644 index c9f4fb29fe..0000000000 --- a/samples/CSharp/WPF_D3D/About.xaml +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/samples/CSharp/WPF_D3D/MainWindow.xaml.cs b/samples/CSharp/WPF_D3D/MainWindow.xaml.cs deleted file mode 100644 index fab4967e0d..0000000000 --- a/samples/CSharp/WPF_D3D/MainWindow.xaml.cs +++ /dev/null @@ -1,695 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.ComponentModel; -using System.Windows.Forms.Integration; -using System.Windows.Interop; -using System.Runtime.InteropServices; - -namespace IE_WPF_D3D -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow : Window, INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - protected void RaisePropertyChanged (string thePropertyName) - { - if (PropertyChanged != null) - { - PropertyChanged (this, new PropertyChangedEventArgs (thePropertyName)); - } - } - - public MainWindow () - { - InitializeComponent (); - - StatusBarText = String.Empty; - IsHlrOffPushed = false; - IsHlrOnPushed = true; - IsZoomWinEnabled = true; - - #region menu operations - - CommandBinding aBind_New = new CommandBinding (IECommands.New); - aBind_New.Executed += NewCommand_Executed; - CommandBindings.Add (aBind_New); - - CommandBinding aBind_Close = new CommandBinding (IECommands.Close); - aBind_Close.Executed += CloseCommand_Executed; - aBind_Close.CanExecute += CloseCommand_CanExecute; - CommandBindings.Add (aBind_Close); - - CommandBinding aBind_Quit = new CommandBinding (IECommands.Quit); - aBind_Quit.Executed += QuitCommand_Executed; - CommandBindings.Add (aBind_Quit); - - CommandBinding aBind_About = new CommandBinding (IECommands.About); - aBind_About.Executed += AboutCommand_Executed; - CommandBindings.Add (aBind_About); - - #endregion - } - - private String myStatusBarText; - public String StatusBarText - { - get - { - return myStatusBarText; - } - private set - { - myStatusBarText = value; - RaisePropertyChanged ("StatusBarText"); - } - } - - private bool isHlrOffPushed; - public Boolean IsHlrOffPushed - { - get - { - return isHlrOffPushed; - } - set - { - isHlrOffPushed = value; - RaisePropertyChanged ("isHlrOffPushed"); - } - } - - private bool isHlrOnPushed; - public Boolean IsHlrOnPushed - { - get - { - return isHlrOnPushed; - } - set - { - isHlrOnPushed = value; - RaisePropertyChanged ("IsHlrOnPushed"); - } - } - - private bool isZoomWinEnabled; - public Boolean IsZoomWinEnabled - { - get - { - return isZoomWinEnabled; - } - set - { - isZoomWinEnabled = value; - RaisePropertyChanged ("IsZoomWinEnabled"); - } - } - - private OCCViewer ActiveViewer - { - get - { - if (!IsDocumentOpen) - { - return null; - } - - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid == null) - { - return null; - } - - return Map[aGrid].Viewer; - } - } - - public Boolean IsDocumentOpen - { - get - { - return ViewPanel.Items.Count > 0; - } - } - - private int myDocumentCounter = 1; - - Dictionary Map = new Dictionary (); - - private void NewCommand_Executed (object sender, ExecutedRoutedEventArgs e) - { - D3DViewer aViwer = new D3DViewer (); - - Grid g = new Grid (); - - Map.Add (g, aViwer); - - ImageBrush anImage = new ImageBrush (aViwer.Image); - - //anImage.RelativeTransform = new ScaleTransform (1.0, -1.0, 0.5, 0.5); - - g.Background = anImage; - g.MouseMove += new MouseEventHandler (g_MouseMove); - g.MouseDown += new MouseButtonEventHandler (g_MouseDown); - g.MouseUp += new MouseButtonEventHandler (g_MouseUp); - - g.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; - - - TabItem aNewTab = new TabItem (); - aNewTab.Content = g; - - aNewTab.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; - aNewTab.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch; - aNewTab.VerticalContentAlignment = System.Windows.VerticalAlignment.Stretch; - - g.SizeChanged += new SizeChangedEventHandler (g_SizeChanged); - - aNewTab.IsSelected = true; - aNewTab.Header = "Document " + myDocumentCounter.ToString (); - myDocumentCounter++; - - ViewPanel.Items.Add (aNewTab); - - ViewPanel.Focus (); - - // update XAML property - RaisePropertyChanged ("IsDocumentOpen"); - } - - void g_SizeChanged (object sender, SizeChangedEventArgs e) - { - if (!IsDocumentOpen) - return; - - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid == null) - return; - - Map[aGrid].Resize (Convert.ToInt32 (e.NewSize.Width), - Convert.ToInt32 (e.NewSize.Height)); - } - - void g_MouseUp (object sender, MouseButtonEventArgs e) - { - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid != null) - { - ActiveViewer.OnMouseUp(aGrid, e); - } - } - - void g_MouseDown (object sender, MouseButtonEventArgs e) - { - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid != null) - { - ActiveViewer.OnMouseDown(ViewPanel, e); - } - } - - void g_MouseMove (object sender, MouseEventArgs e) - { - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid != null) - { - ActiveViewer.OnMouseMove (aGrid, e); - } - } - - private void CloseCommand_Executed (object sender, ExecutedRoutedEventArgs e) - { - if (ViewPanel.Items.Count > 0) - { - Grid aGrid = (ViewPanel.SelectedContent) as Grid; - - if (aGrid == null) - { - return; - } - - Map[aGrid].StopRenderingScene (); - - ViewPanel.Items.Remove (ViewPanel.SelectedItem); - } - - // update XAML property - RaisePropertyChanged ("IsDocumentOpen"); - } - - private void CloseCommand_CanExecute (object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = IsDocumentOpen; - } - - private void QuitCommand_Executed (object sender, ExecutedRoutedEventArgs e) - { - this.Close (); - } - - private void ImportBRep_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ImportModel (ModelFormat.BREP); - } - } - - private void ImportIges_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ImportModel (ModelFormat.IGES); - } - } - - private void ImportStep_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ImportModel (ModelFormat.STEP); - } - } - - private void ExportBRep_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.BREP); - } - } - - private void ExportStep_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.STEP); - } - } - - private void ExportIges_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.IGES); - } - } - - private void ExportStl_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.STL); - } - } - - private void ExportVrml_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.VRML); - } - } - - private void ExportImage_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.ExportModel (ModelFormat.IMAGE); - } - } - - private void FitAllBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.FitAll (); - } - } - - private void ZoomWindowBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - IsZoomWinEnabled = false; - ActiveViewer.ZoomWindow (); - } - } - - private void DynamicZoomingBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.DynamicZooming (); - } - } - - private void DynamicPanningBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.DynamicPanning (); - } - } - - private void GlobalPanningBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.GlobalPanning (); - } - } - - private void FrontBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.FrontView (); - } - } - - private void BackBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.BackView (); - } - } - - private void TopBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.TopView (); - } - } - - private void BottomBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.BottomView (); - } - } - - private void LeftBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.LeftView (); - } - } - - private void RightBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.RightView (); - } - } - - private void AxoBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.AxoView (); - } - } - - private void ResetBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Reset (); - } - } - - private void DynamicRotationBtn_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.DynamicRotation (); - } - } - - private void HiddenOffBtn_Click (object sender, RoutedEventArgs e) - { - IsHlrOffPushed = true; - IsHlrOnPushed = false; - if (ActiveViewer != null) - { - ActiveViewer.HiddenOff (); - } - } - - private void HiddenOnBtn_Click (object sender, RoutedEventArgs e) - { - IsHlrOffPushed = false; - IsHlrOnPushed = true; - if (ActiveViewer != null) - { - ActiveViewer.HiddenOn (); - } - } - - private void AboutCommand_Executed (object sender, ExecutedRoutedEventArgs e) - { - AboutDialog aDlg = new AboutDialog (); - aDlg.ShowDialog (); - } - - private void ToolBar_MouseEnter (object sender, MouseEventArgs e) - { - StatusBarText = "Toolbar"; - } - - private void DocumentToolBar_MouseEnter (object sender, MouseEventArgs e) - { - StatusBarText = "Document toolbar"; - } - - private void ViewToolBar_MouseEnter (object sender, MouseEventArgs e) - { - StatusBarText = "View toolbar"; - } - - private void ToolBar_MouseLeave (object sender, MouseEventArgs e) - { - StatusBarText = ""; - } - - public void OnZoomingFinished (object sender, EventArgs e) - { - IsZoomWinEnabled = true; - } - - public bool IsWireframeEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsWireframeEnabled; - } - return false; - } - } - - private void Wireframe_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Wireframe (); - } - } - - private void Shading_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Shading (); - } - } - - public bool IsShadingEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsShadingEnabled; - } - return false; - } - } - - private void Color_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Color (); - } - } - - public bool IsColorEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsColorEnabled; - } - return false; - } - } - - private void Material_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Material (); - } - } - - public bool IsMaterialEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsMaterialEnabled; - } - return false; - } - } - - private void Transparency_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Transparency (); - } - } - - public bool IsTransparencyEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsTransparencyEnabled; - } - return false; - } - } - - private void Delete_Click (object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Delete (); - } - } - - private void Background_Click(object sender, RoutedEventArgs e) - { - if (ActiveViewer != null) - { - ActiveViewer.Background(); - } - } - - public bool IsDeleteEnabled - { - get - { - if (ActiveViewer != null) - { - return ActiveViewer.IsDeleteEnabled; - } - return false; - } - } - - private void AvaliabiltyOfOperationToolbarChanged () - { - RaisePropertyChanged ("IsWireframeEnabled"); - RaisePropertyChanged ("IsShadingEnabled"); - RaisePropertyChanged ("IsTransparencyEnabled"); - RaisePropertyChanged ("IsColorEnabled"); - RaisePropertyChanged ("IsMaterialEnabled"); - RaisePropertyChanged ("IsDeleteEnabled"); - } - - public void OnAvaliabiltyOfOperationsChanged (object sender, EventArgs e) - { - AvaliabiltyOfOperationToolbarChanged (); - } - - private void OnViewerChanged (object sender, SelectionChangedEventArgs e) - { - if (e.RemovedItems.Count > 0) - { - Grid aHost = ((e.RemovedItems[0] as TabItem).Content) as Grid; - if (aHost == null) - { - return; - } - - OCCViewer aViewer = Map[aHost].Viewer; - if (aViewer != null) - { - aViewer.ZoomingFinished -= new EventHandler (OnZoomingFinished); - aViewer.AvaliabiltyOfOperationsChanged -= new EventHandler (OnAvaliabiltyOfOperationsChanged); - } - } - - if (e.AddedItems.Count > 0) - { - Grid aHost = ((e.AddedItems[0] as TabItem).Content) as Grid; - if (aHost == null) - { - return; - } - - OCCViewer aViewer = Map[aHost].Viewer; - if (aViewer != null) - { - aViewer.ZoomingFinished += new EventHandler (OnZoomingFinished); - aViewer.AvaliabiltyOfOperationsChanged += new EventHandler (OnAvaliabiltyOfOperationsChanged); - } - } - - AvaliabiltyOfOperationToolbarChanged (); - } - - private void OnContextOpened(object sender, RoutedEventArgs e) - { - this.WireframeItem.IsEnabled = IsWireframeEnabled; - this.ShadingItem.IsEnabled = IsShadingEnabled; - this.ColorItem.IsEnabled = IsColorEnabled; - this.MaterialItem.IsEnabled = IsMaterialEnabled; - this.TransparencyItem.IsEnabled = IsTransparencyEnabled; - this.DeleteItem.IsEnabled = IsDeleteEnabled; - } - } -} diff --git a/samples/CSharp/WPF_D3D/MaterialDlg.xaml b/samples/CSharp/WPF_D3D/MaterialDlg.xaml deleted file mode 100644 index dafa734a31..0000000000 --- a/samples/CSharp/WPF_D3D/MaterialDlg.xaml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_D3D/MaterialDlg.xaml.cs b/samples/CSharp/WPF_D3D/MaterialDlg.xaml.cs deleted file mode 100644 index 4751ed8376..0000000000 --- a/samples/CSharp/WPF_D3D/MaterialDlg.xaml.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; - -namespace IE_WPF_D3D -{ - public enum Material - { - Brass, - Bronze, - Copper, - Gold, - Pewter, - Plaster, - Plastic, - Silver - } - - /// - /// Interaction logic for MaterialDlg.xaml - /// - public partial class MaterialDlg : Window - { - public MaterialDlg( OCCTProxyD3D theView ) - { - this.InitializeComponent(); - - if ( theView == null ) - { - MessageBox.Show( "Fatal Error during the graphic initialisation", "Error!" ); - } - - View = theView; - - SetInitialState(); - } - - public OCCTProxyD3D View { get; private set; } - - private void PlasterBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Plaster ); - View.UpdateCurrentViewer(); - } - - private void BrassBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Brass ); - View.UpdateCurrentViewer(); - } - - private void BronzeBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Bronze ); - View.UpdateCurrentViewer(); - } - - private void CopperBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Copper ); - View.UpdateCurrentViewer(); - } - - private void GoldBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Gold ); - View.UpdateCurrentViewer(); - } - - private void PewterBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Pewter ); - View.UpdateCurrentViewer(); - } - - private void PlasticBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Plastic ); - View.UpdateCurrentViewer(); - } - - private void SilverBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Silver ); - View.UpdateCurrentViewer(); - } - - private void SetInitialState() - { - // TODO - } - } -} \ No newline at end of file diff --git a/samples/CSharp/WPF_D3D/OCCViewer.cs b/samples/CSharp/WPF_D3D/OCCViewer.cs deleted file mode 100644 index 7ec4355bad..0000000000 --- a/samples/CSharp/WPF_D3D/OCCViewer.cs +++ /dev/null @@ -1,665 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Windows.Input; -using System.Drawing; - -namespace IE_WPF_D3D -{ - public enum CurrentAction3d - { - CurAction3d_Nothing, - CurAction3d_DynamicZooming, - CurAction3d_WindowZooming, - CurAction3d_DynamicPanning, - CurAction3d_GlobalPanning, - CurAction3d_DynamicRotation - } - public enum CurrentPressedKey - { - CurPressedKey_Nothing, - CurPressedKey_Ctrl, - CurPressedKey_Shift - } - public enum ModelFormat - { - BREP, - STEP, - IGES, - VRML, - STL, - IMAGE - } - - public enum DisplayMode - { - Wireframe, - Shading - } - - public class OCCViewer - { - public event EventHandler ZoomingFinished; - protected void RaiseZoomingFinished () - { - if (ZoomingFinished != null) - { - ZoomingFinished (this, EventArgs.Empty); - } - } - - public event EventHandler AvaliabiltyOfOperationsChanged; - protected void RaiseAvaliabiltyOfOperationsChanged () - { - if (AvaliabiltyOfOperationsChanged != null) - { - AvaliabiltyOfOperationsChanged (this, EventArgs.Empty); - } - } - - public OCCTProxyD3D View { get; private set; } - public CurrentAction3d CurrentMode { get; private set; } - private bool IsRectVisible { get; set; } - public bool DegenerateMode { get; private set; } - - public bool IsWireframeEnabled { get; private set; } - public bool IsShadingEnabled { get; private set; } - public bool IsTransparencyEnabled { get; private set; } - public bool IsColorEnabled { get; private set; } - public bool IsMaterialEnabled { get; private set; } - public bool IsDeleteEnabled { get; private set; } - - private float myCurZoom; - private int myXmin; - private int myYmin; - private int myXmax; - private int myYmax; - private int myButtonDownX; - private int myButtonDownY; - public OCCViewer() - { - View = new OCCTProxyD3D (); - View.InitOCCTProxy (); - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - IsRectVisible = false; - DegenerateMode = true; - } - - public bool InitViewer() - { - return View.InitViewer(); - } - - public void ImportModel (ModelFormat theFormat) - { - int aFormat = 10; - OpenFileDialog anOpenDialog = new OpenFileDialog (); - string aDataDir = Environment.GetEnvironmentVariable ("CSF_OCCTDataPath"); - string aFilter = ""; - - switch (theFormat) - { - case ModelFormat.BREP: - anOpenDialog.InitialDirectory = (aDataDir + "\\occ"); - aFormat = 0; - aFilter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case ModelFormat.STEP: - anOpenDialog.InitialDirectory = (aDataDir + "\\step"); - aFormat = 1; - aFilter = "STEP Files (*.stp *.step)|*.stp; *.step"; - break; - case ModelFormat.IGES: - anOpenDialog.InitialDirectory = (aDataDir + "\\iges"); - aFormat = 2; - aFilter = "IGES Files (*.igs *.iges)|*.igs; *.iges"; - break; - default: - break; - } - - anOpenDialog.Filter = aFilter + "|All files (*.*)|*.*"; - if (anOpenDialog.ShowDialog () == DialogResult.OK) - { - string aFileName = anOpenDialog.FileName; - if (aFileName == "") - { - return; - } - - if (!View.TranslateModel (aFileName, aFormat, true)) - { - MessageBox.Show ("Can't read this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - } - View.ZoomAllView (); - } - - public void ExportModel (ModelFormat theFormat) - { - int aFormat = 10; - SaveFileDialog saveDialog = new SaveFileDialog (); - string aDataDir = Environment.GetEnvironmentVariable ("CSF_OCCTDataPath"); - string aFilter = ""; - - switch (theFormat) - { - case ModelFormat.BREP: - saveDialog.InitialDirectory = (aDataDir + "\\occ"); - aFormat = 0; - aFilter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case ModelFormat.STEP: - saveDialog.InitialDirectory = (aDataDir + "\\step"); - aFormat = 1; - aFilter = "STEP Files (*.stp *.step)|*.step; *.stp"; - break; - case ModelFormat.IGES: - saveDialog.InitialDirectory = (aDataDir + "\\iges"); - aFormat = 2; - aFilter = "IGES Files (*.igs *.iges)| *.iges; *.igs"; - break; - case ModelFormat.VRML: - saveDialog.InitialDirectory = (aDataDir + "\\vrml"); - aFormat = 3; - aFilter = "VRML Files (*.vrml)|*.vrml"; - break; - case ModelFormat.STL: - saveDialog.InitialDirectory = (aDataDir + "\\stl"); - aFormat = 4; - aFilter = "STL Files (*.stl)|*.stl"; - break; - case ModelFormat.IMAGE: - saveDialog.InitialDirectory = (aDataDir + "\\images"); - aFormat = 5; - aFilter = "Images Files (*.bmp)|*.bmp"; - break; - default: - break; - } - - saveDialog.Filter = aFilter; - if (saveDialog.ShowDialog () == DialogResult.OK) - { - string aFileName = saveDialog.FileName; - if (aFileName == "") - { - return; - } - - if (!View.TranslateModel (aFileName, aFormat, false)) - { - MessageBox.Show ("Can not write this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - } - } - - public void FitAll () - { - View.ZoomAllView (); - } - - public void ZoomWindow () - { - CurrentMode = CurrentAction3d.CurAction3d_WindowZooming; - } - - public void DynamicZooming () - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicZooming; - } - - public void DynamicPanning () - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicPanning; - } - - public void GlobalPanning () - { - myCurZoom = View.Scale (); - CurrentMode = CurrentAction3d.CurAction3d_GlobalPanning; - } - - public void AxoView () - { - View.AxoView (); - } - - public void FrontView () - { - View.FrontView (); - } - - public void TopView () - { - View.TopView (); - } - - public void LeftView () - { - View.LeftView (); - } - - public void BackView () - { - View.BackView (); - } - - public void RightView () - { - View.RightView (); - } - - public void Reset () - { - View.Reset (); - } - - public void BottomView () - { - View.BottomView (); - } - - public void HiddenOff () - { - View.SetDegenerateModeOff (); - DegenerateMode = false; - } - - public void HiddenOn () - { - View.SetDegenerateModeOn (); - DegenerateMode = true; - } - - public void DynamicRotation () - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicRotation; - } - - public void SelectionChanged () - { - switch (View.DisplayMode ()) - { - case -1: - IsShadingEnabled = false; - IsWireframeEnabled = false; - break; - case 0: - IsWireframeEnabled = false; - IsShadingEnabled = true; - IsTransparencyEnabled = false; - break; - case 1: - IsWireframeEnabled = true; - IsShadingEnabled = false; - IsTransparencyEnabled = true; - break; - case 10: - IsWireframeEnabled = true; - IsShadingEnabled = true; - IsTransparencyEnabled = true; - break; - default: - break; - } - - if (View.IsObjectSelected ()) - { - IsColorEnabled = true; - IsMaterialEnabled = true; - IsDeleteEnabled = true; - } - else - { - IsColorEnabled = false; - IsMaterialEnabled = false; - IsTransparencyEnabled = false; - IsDeleteEnabled = false; - } - - RaiseAvaliabiltyOfOperationsChanged (); - } - - public void ChangeColor (bool IsObjectColor) - { - int r, g, b; - if (IsObjectColor) - { - r = View.GetObjColR (); - g = View.GetObjColG (); - b = View.GetObjColB (); - } - else - { - r = View.GetBGColR (); - g = View.GetBGColG (); - b = View.GetBGColB (); - } - System.Windows.Forms.ColorDialog ColDlg = new System.Windows.Forms.ColorDialog (); - ColDlg.Color = System.Drawing.Color.FromArgb (r, g, b); - if (ColDlg.ShowDialog () == System.Windows.Forms.DialogResult.OK) - { - System.Drawing.Color c = ColDlg.Color; - r = c.R; - g = c.G; - b = c.B; - if (IsObjectColor) - { - View.SetColor (r, g, b); - } - else - { - View.SetBackgroundColor (r, g, b); - } - } - View.UpdateCurrentViewer (); - } - - public void Wireframe () - { - View.SetDisplayMode ((int)DisplayMode.Wireframe); - View.UpdateCurrentViewer (); - - SelectionChanged (); - RaiseZoomingFinished (); - } - - public void Shading () - { - View.SetDisplayMode ((int)DisplayMode.Shading); - View.UpdateCurrentViewer (); - - SelectionChanged (); - RaiseZoomingFinished (); - } - - public void Color () - { - ChangeColor (true); - } - - public void Background () - { - ChangeColor (false); - } - - public void Material () - { - MaterialDlg aDlg = new MaterialDlg (View); - aDlg.ShowDialog (); - } - - public void Transparency () - { - TransparencyDialog dlg = new TransparencyDialog (); - dlg.View = View; - dlg.ShowDialog (); - } - - public void Delete () - { - View.EraseObjects (); - SelectionChanged (); - } - - protected void MultiDragEvent (int x, int y, int theState) - { - if (theState == -1) //mouse is down - { - myButtonDownX = x; - myButtonDownY = y; - } - else if (theState == 1) //mouse is up - { - View.ShiftSelect (Math.Min (myButtonDownX, x), Math.Min (myButtonDownY, y), - Math.Max (myButtonDownX, x), Math.Max (myButtonDownY, y)); - } - } - - protected void DragEvent (int x, int y, int theState) - { - if (theState == -1) //mouse is down - { - myButtonDownX = x; - myButtonDownY = y; - } - else if (theState == 1) //mouse is up - { - View.Select (Math.Min (myButtonDownX, x), Math.Min (myButtonDownY, y), - Math.Max (myButtonDownX, x), Math.Max (myButtonDownY, y)); - } - } - - public void OnMouseDown (System.Windows.IInputElement sender, MouseButtonEventArgs e) - { - System.Windows.Controls.TabControl aTabControl = sender as System.Windows.Controls.TabControl; - System.Windows.Controls.Grid aGrid = aTabControl.SelectedContent as System.Windows.Controls.Grid; - - Point p = new Point((int)e.GetPosition(aGrid).X, (int)e.GetPosition(aGrid).Y); - - // to avoid the context menu opening - aTabControl.ContextMenu.Visibility = System.Windows.Visibility.Collapsed; - aTabControl.ContextMenu.IsOpen = false; - - if (e.LeftButton == MouseButtonState.Pressed) - { - myXmin = p.X; - myXmax = p.X; - myYmin = p.Y; - myYmax = p.Y; - - if (Keyboard.IsKeyDown (Key.LeftCtrl) || Keyboard.IsKeyDown (Key.RightCtrl)) - { - // start the dynamic zooming.... - CurrentMode = CurrentAction3d.CurAction3d_DynamicZooming; - } - else - { - switch (CurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - if (Keyboard.IsKeyDown (Key.LeftShift) || Keyboard.IsKeyDown (Key.RightShift)) - { - MultiDragEvent (myXmax, myYmax, -1); - } - else - { - DragEvent (myXmax, myYmax, -1); - } - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - if (!DegenerateMode) - { - View.SetDegenerateModeOn (); - } - View.StartRotation (p.X, p.Y); - break; - default: - break; - } - } - } - else if (e.RightButton == MouseButtonState.Pressed) - { - if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) - { - if (!DegenerateMode) - { - View.SetDegenerateModeOn(); - } - View.StartRotation(p.X, p.Y); - } - else - { - // show context menu only in this case - aTabControl.ContextMenu.Visibility = System.Windows.Visibility.Visible; - } - } - } - - public void OnMouseUp(System.Windows.IInputElement sender, MouseButtonEventArgs e) - { - Point p = new Point((int)e.GetPosition(sender).X, (int)e.GetPosition(sender).Y); - - if (e.ChangedButton == MouseButton.Left) - { - if (Keyboard.IsKeyDown (Key.LeftCtrl) || Keyboard.IsKeyDown (Key.RightCtrl)) - { - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - return; - } - switch (CurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - if (p.X == myXmin && p.Y == myYmin) - { - myXmax = p.X; - myYmax = p.Y; - if (Keyboard.IsKeyDown (Key.LeftShift) || Keyboard.IsKeyDown (Key.RightShift)) - { - View.ShiftSelect (); - } - else - { - View.Select (); - } - } - else - { - myXmax = p.X; - myYmax = p.Y; - if (Keyboard.IsKeyDown (Key.LeftShift) || Keyboard.IsKeyDown (Key.RightShift)) - { - MultiDragEvent (myXmax, myYmax, 1); - } - else - { - DragEvent (myXmax, myYmax, 1); - } - } - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - myXmax = p.X; - myYmax = p.Y; - int ValZWMin = 1; - if (Math.Abs (myXmax - myXmin) > ValZWMin && - Math.Abs (myXmax - myYmax) > ValZWMin) - { - View.WindowFitAll (myXmin, myYmin, myXmax, myYmax); - } - RaiseZoomingFinished (); - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - View.Place (p.X, p.Y, myCurZoom); - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - if (!DegenerateMode) - { - View.SetDegenerateModeOff (); - } - else - { - View.SetDegenerateModeOn (); - } - break; - default: - break; - } - } - else if (e.ChangedButton == MouseButton.Right) - { - if (!DegenerateMode) - { - View.SetDegenerateModeOff (); - } - else - { - View.SetDegenerateModeOn (); - } - } - - SelectionChanged (); - } - - public void OnMouseMove (System.Windows.IInputElement sender, System.Windows.Input.MouseEventArgs e) - { - Point p = new Point ((int)e.GetPosition (sender).X, (int)e.GetPosition (sender).Y); - - if (e.LeftButton == MouseButtonState.Pressed) //left button is pressed - { - if (Keyboard.IsKeyDown (Key.LeftCtrl) || Keyboard.IsKeyDown (Key.RightCtrl)) - { - View.Zoom (myXmax, myYmax, p.X, p.Y); - myXmax = p.X; - myYmax = p.Y; - } - else - { - switch (CurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - myXmax = p.X; - myYmax = p.Y; - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - View.Zoom (myXmax, myYmax, p.X, p.Y); - myXmax = p.X; - myYmax = p.Y; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - myXmax = p.X; - myYmax = p.Y; - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - View.Pan (p.X - myXmax, myYmax - p.Y); - myXmax = p.X; - myYmax = p.Y; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - View.Rotation (p.X, p.Y); - View.RedrawView (); - break; - default: - break; - } - } - } - else if (e.MiddleButton == MouseButtonState.Pressed) //middle button is pressed - { - if (Keyboard.IsKeyDown (Key.LeftCtrl) || Keyboard.IsKeyDown (Key.RightCtrl)) - { - View.Pan (p.X - myXmax, myYmax - p.Y); - myXmax = p.X; - myYmax = p.Y; - } - } - else if (e.RightButton == MouseButtonState.Pressed) //right button is pressed - { - if (Keyboard.IsKeyDown (Key.LeftCtrl) || Keyboard.IsKeyDown (Key.RightCtrl)) - { - View.Rotation (p.X, p.Y); - } - } - else // no buttons are pressed - { - myXmax = p.X; - myYmax = p.Y; - View.MoveTo (p.X, p.Y); - } - } - } -} diff --git a/samples/CSharp/WPF_D3D/Properties/AssemblyInfo.cs b/samples/CSharp/WPF_D3D/Properties/AssemblyInfo.cs deleted file mode 100644 index 02445ca672..0000000000 --- a/samples/CSharp/WPF_D3D/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("IE")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("IE")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/CSharp/WPF_D3D/Properties/Resources.Designer.cs b/samples/CSharp/WPF_D3D/Properties/Resources.Designer.cs deleted file mode 100644 index 1388afa068..0000000000 --- a/samples/CSharp/WPF_D3D/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace IE_WPF_D3D.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IE_WPF_D3D.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/samples/CSharp/WPF_D3D/Properties/Resources.resx b/samples/CSharp/WPF_D3D/Properties/Resources.resx deleted file mode 100644 index af7dbebbac..0000000000 --- a/samples/CSharp/WPF_D3D/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/samples/CSharp/WPF_D3D/Properties/Settings.Designer.cs b/samples/CSharp/WPF_D3D/Properties/Settings.Designer.cs deleted file mode 100644 index 34d904b27f..0000000000 --- a/samples/CSharp/WPF_D3D/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace IE_WPF_D3D.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/samples/CSharp/WPF_D3D/Properties/Settings.settings b/samples/CSharp/WPF_D3D/Properties/Settings.settings deleted file mode 100644 index 033d7a5e9e..0000000000 --- a/samples/CSharp/WPF_D3D/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_D3D/Simple Styles.xaml b/samples/CSharp/WPF_D3D/Simple Styles.xaml deleted file mode 100644 index 3be3f557c0..0000000000 --- a/samples/CSharp/WPF_D3D/Simple Styles.xaml +++ /dev/null @@ -1,1134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/CSharp/WPF_D3D/TransparencyDialog.cs b/samples/CSharp/WPF_D3D/TransparencyDialog.cs deleted file mode 100644 index ab885b7f98..0000000000 --- a/samples/CSharp/WPF_D3D/TransparencyDialog.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace IE_WPF_D3D -{ - /// - /// Summary description for TransparencyDialog. - /// - public class TransparencyDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.NumericUpDown MyTransparency; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private OCCTProxyD3D myView; - - public TransparencyDialog() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - myView = null; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(TransparencyDialog)); - this.MyTransparency = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).BeginInit(); - this.SuspendLayout(); - // - // MyTransparency - // - this.MyTransparency.Location = new System.Drawing.Point(16, 16); - this.MyTransparency.Maximum = new System.Decimal(new int[] { - 10, - 0, - 0, - 0}); - this.MyTransparency.Name = "MyTransparency"; - this.MyTransparency.Size = new System.Drawing.Size(96, 20); - this.MyTransparency.TabIndex = 0; - this.MyTransparency.ValueChanged += new System.EventHandler(this.MyTransparency_ValueChanged); - // - // TransparencyDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(128, 53); - this.Controls.Add(this.MyTransparency); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "TransparencyDialog"; - this.Text = "TransparencyDialog"; - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).EndInit(); - this.ResumeLayout(false); - - } - #endregion - - private void MyTransparency_ValueChanged(object sender, System.EventArgs e) - { - if (this.myView == null) - return; - int transp = (int)this.MyTransparency.Value; - this.myView.SetTransparency(transp); - } - - public OCCTProxyD3D View - { - set - { - this.myView = value; - } - } - - } -} diff --git a/samples/CSharp/WPF_D3D/TransparencyDialog.resx b/samples/CSharp/WPF_D3D/TransparencyDialog.resx deleted file mode 100644 index 688fd72e80..0000000000 --- a/samples/CSharp/WPF_D3D/TransparencyDialog.resx +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - TransparencyDialog - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_D3D/app.config b/samples/CSharp/WPF_D3D/app.config deleted file mode 100644 index 786a845b30..0000000000 --- a/samples/CSharp/WPF_D3D/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/samples/CSharp/WPF_D3D/res/MainFrame.ico b/samples/CSharp/WPF_D3D/res/MainFrame.ico deleted file mode 100644 index 99dbceb637ed9b2f5faa709d3ec109868688f6dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3774 zcmeH~v1=Sh6o;QUfkjp%2!Sdsv4$<8&U;hb3IqoA!p0!b7O_&zzn~_NBY~?00l{2j z6-kJTG%8Y^;P62TYig;9LO_K<97O5_F`9gD&T&E4$V`Q3Z-zIih%Rw5I8 z9z2lLe*RQsj=L}DDt$$tkSVSr?N5?<&!x?e$nEyXaOGC|{l4^n@5|}SpJZ}!Ql_S+ zWO{m9W@ct&Zf;KI=jX*3Ba4fRvbMG+tE;QBva%veOH0!JI?Ch6QNEW0iNhej9sDH+ zuU^U4^Iu40>5lH{VKlU87R{nr)#Av-p*wVk?$8~&hIw?4?iqM=kB*Um9?%1NKnUoO zabz4r%51q>@>?dd1X+oa(sQveSQsn}7KVfbgN4DuU}3N@Bup4A3>F3pgM}fX!(d^s zFjyEY3^t;{Vd1dK5o4+V3RXX!9_Z-0WLO-@9f=&1I#^N}_|b9WU~#advcTcsaBw&{ z92}`sa5xwo3=Re@orA-{;9v;kid<6($us&ePUY3=Kt*nkS1L8RJxrdYo&+8yPj1hT zo=H5pJ-O3%q}=G__vH8F*Ddno_teJ2;9>C8LAQ;nq}8Kfx#~7jgFwCjTYw{wFKw-I zP=f$RP!1NBwws^;OMoQ+5lEPh04#yPfKxySu<)fb4|@_|30jZDqNhQ30S$%-Lxds1 z5MhWgq~iobfFZ&VVF)lV4IO_NA`B6R2m@2o(P4-%L>M9fk^F(lB7qSn#~hBagCnN7 z)yK(#{3sh68?w2%DVgcZBRp7%_VD_>ZvtpL>JuUM^w#bX(S(x_Z)c)o2}C1*-hO=%4T_UXFN0TZ!x{}%7VWFw`i4--Ywj> z%HrnB?PXb>o1B2zo20;5@Yj}S<05)laxRKSQD}hq{|s6~((xL`OK!@ttg7|8I~WX}JzFP$GnWfjQ#7)?QvW|V z@mZD`Qvy|%tKUSY(wUuC-YFVdQ&MBb@03{S$Q~&?~ diff --git a/samples/CSharp/WPF_D3D/res/help.png b/samples/CSharp/WPF_D3D/res/help.png deleted file mode 100644 index e57336285ea67f393322fd6f19a64d9d1de42e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(m|32{Ae;K2X?Kn}y={c$Bg zim@cfFPOpM*^M+1C&}C0g(;1@2Bci9#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q&(Jn* zUj|TxkEe@cNX4AwgoJ(PcjV()C>w#3=B*S3``o9LZ`&mG989ZJ6T-G@yGywpz CnKtYI diff --git a/samples/CSharp/WPF_D3D/res/lamp.png b/samples/CSharp/WPF_D3D/res/lamp.png deleted file mode 100644 index a5a6775c33f5655a31ef8152b0fa94fcaa73abf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1355 zcmd^7i%XMH6hGglY)YE@mdni4rBLY*sVE7}O{Z?9Q&P-u!OCnICac6xjOt62ED8#G zTV`Zg2|ehcV$dp*UZzAy#gd9_84Ol4A0@4Gt{Oq~7j)pL)q+D}fNWcF8TBSX#DVWbcMABR%wvq6 zOe?HhV$RPqnX_{B%gwoKHrYyx&0C7MLMe)I8OC&Yiaz8gt9A+#DIszqR^lKJXN!gf zdPCEk%tJX`YNz1#Qvgeh$Seqj{!0-t;V7pgQ$0lrr$BvDEr;CzDwvB_oFRhL;;~vQ zt8s%S7-X=Q178M%`5VuK#w;tlE3po7iW0tj7{MBq5RF#SiErxA;I9Q{KpK;zi04j$tPAP#rd;Vs?mU!8tK9N|$Dx_y|RY@hW(Jp^Ii z6AG6Q8^jqTsEgQBIj02eoM4Q`!Ar!~Eo%{MXrn#@3!TC^Ha@dRj6a>d1gJy&`dl~b zS&qLNf*9=-G0l~7pa^mrHc|!NIp{+)xtkBW#&@&7E|vM{H*U949px)bxwNyi_5Uk* zYOD`&RNswyU0&r$*P*-oy?D9)Xj$!`cV|IlR`YAU>+XzG1L0Nii3M_n$M{YX_x6dn z);3?F4bQbNmF=sw=%BYr?Y+5Y8dtt3p~3IQG3mMHn%K1A*+2KE?CWj&tlqJ?WdCr? zeAliAZyNLakKB>uuh#Ww1}>L8c^vGoRk|%xyOoAbRmtrax_VPpZcWPZ1JCalT&r4M z-EtwdpbW2l$bb}#O0PmqO1O?{N1)#yf4VfS~p9CTG=r+0j)KWl~4LFX61<28v_ zxCS4M(6Oyowk1n_>S6`g(mm(apj6wQ)aq#MpLI2<;A`iqkJiGSgWUp`9O&TGNzus~ RS6?!1j4{omzno&J{srsJK~Vqz diff --git a/samples/CSharp/WPF_D3D/res/new.png b/samples/CSharp/WPF_D3D/res/new.png deleted file mode 100644 index 953757a62f594c7591c7cdcfe8e51cdde41bfa45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_Kbr05bpo|KGb%L=DJd zED7=pW^j0RBMrzAD{+k|3C>R|DNig)Wk}CVGb+eSS1{5u&@;4++m``U!IJLjmJXyP ze>`8)3#3&%T^vIy<|HRDFdn-gps+DZvm@deLlP@PXQ*(8l9MyD!~+I~_)t;*^HWte Q0M#>iy85}Sb4q9e0N}kbVE_OC diff --git a/samples/CSharp/WPF_D3D/res/occ_logo.bmp b/samples/CSharp/WPF_D3D/res/occ_logo.bmp deleted file mode 100644 index 443a7de612f859ebaf3530285e81851b7d8db3a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58456 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 I-~RUh1H>Jzy8r+H diff --git a/samples/CSharp/WPF_D3D/res/tool_color.png b/samples/CSharp/WPF_D3D/res/tool_color.png deleted file mode 100644 index b37ad7d4803fb6d71ae6e7cbcf260f776c4453a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DVB6cUq=RpjeRx011AId3dtTp zz6=aistgPb%?u1b{{!h43=E|P3=FRl7#OUkGcbtfPhUCn3Q+AbPZ!6KiaAMt{{OdU zR%K9Vh;U$0R#rZ_j6pYz7Zv2sjil zOHE)o_=ZhIP(fOZrMH*YLC=W~Xxuj@2Zq2L1_uViCL>|hN=AhS3C**;42*0Hv4%<- U?-ri>2Xrxmr>mdKI;Vst0Oih3KL7v# diff --git a/samples/CSharp/WPF_D3D/res/tool_delete.png b/samples/CSharp/WPF_D3D/res/tool_delete.png deleted file mode 100644 index aaab07fc9f50343e56c4641bc2832565cb1b9462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!OXzGxOP>4HvRkCUhQgo^*4jS|kD-x0v|#r4JqhhrQ53Oq=2|X)s+Vi|kL$z4_f6BCzuxGd{&AAt6REBD sf;--AKXq;YMpK|9_IyVVD2R_;=c_O5jcqD+Enh^0qvCnY~Y9HFYP7q@> zO`6~x!L0!_*kYWri}9H#$|(hSMN%O2aR&v0Rz<=Bnn^&%r4ZYnE hMZ`C?-}XC)=nqXChcA&EM*#o;002ovPDHLkV1jG{c<=xK diff --git a/samples/CSharp/WPF_D3D/res/tool_shading.png b/samples/CSharp/WPF_D3D/res/tool_shading.png deleted file mode 100644 index 6bb9dc46ded842e9b335a4a9ca8138e6e46b801b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DVB6cUq=RpjeRx011AId3dtTp zz6=aistgPb%?u1b{{!h43=E|P3=FRl7#OUkGcbtfPhUCn3Q%pgr;B4q#hj!+|Nq-F zt1>7wL~P(RGc!vv-MVkzJi%BVg$4-+J%?kwyu2@*3V0?ui?VPiEHZs;#G=qJ!(i_H zhRgeJJYitsQ095{TDm~0$(K)|VFR0zhvG({Q3iV)v=}%Px_EIBlZ_l043kdxE=f^q cU|?oAQNC34y-L7&ptBe}UHx3vIVCg!0Cd_&#sB~S diff --git a/samples/CSharp/WPF_D3D/res/tool_transparency.png b/samples/CSharp/WPF_D3D/res/tool_transparency.png deleted file mode 100644 index 6b42536eae88dde9b795c9e0e13dfc42dcf6fe9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmVQF$8KVp^w@1&pN0kn+;u+GQf3&y+;6HcwYIHmN=JZe z4uZ*<0a4>UM)~A)gAIs=R1!eHF!ZGmO1ag*XIS%;Jlz4JgNt~@nOG!}%2mB+V>EaktF=uIzBi{i9j^c^` z_e&TzOLB)fO#iw>)QhomW_QCW=2n7gN6X!wIXQ`7OM$N zx;<;fjxU8v5_pA$+_^661T&i**!DteiCoFdbxr2%`HKRlriu!Q+}vom?m#|!WJ1eZ mIXmu@`$@lJ3uEO1_ApO4lKy2yP)R+|F$|urelF{r5}E)A4nuJO diff --git a/samples/CSharp/WPF_D3D/res/view_axo.png b/samples/CSharp/WPF_D3D/res/view_axo.png deleted file mode 100644 index c9a922618074d064b82a385eec3fd1fc0e95f05b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmV+h0r~!kP)@PmEz=ECRADD%H4*&oF M07*qoM6N<$f^sKy+yDRo diff --git a/samples/CSharp/WPF_D3D/res/view_back.png b/samples/CSharp/WPF_D3D/res/view_back.png deleted file mode 100644 index 0798f529387b5f54b8399c6cbd644b77125687a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gn7C+hE&W6?YYR?;K1RmeVws@Ic1XZ&cErC7-<7ih3=n&$O8-AbydZPvd1h4VK1=GLcmtkzf;be3Jl Wo1>Y@*B}>Y1B0ilpUXO@geCy{=uV9Q diff --git a/samples/CSharp/WPF_D3D/res/view_bottom.png b/samples/CSharp/WPF_D3D/res/view_bottom.png deleted file mode 100644 index c7cfdc208aa04cd5f0109df2d262083e1b71de62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gn7C+hE&Xn?QP_22;gv;|CC|t!Q-4Vj)(rHd+Bmmx%k`qi+IeD z-PX$H6H&Nc^d3{mM+M_uz3yL^dS~TaGn&aPA8*1PC>Le_LomDNXXT9>-6wu$yyBJO WlFzshE?T;J_^FaAHf7qhq6^A*XP{?j8@De5 zs6yA%#WAE}PI7_+Gj~Hk-$7Om#{+!_dmA}TmWih@O1TaS?83{1OT?)Gj{+0 diff --git a/samples/CSharp/WPF_D3D/res/view_fitall.png b/samples/CSharp/WPF_D3D/res/view_fitall.png deleted file mode 100644 index 21d2f423ef4acbf4380ff497084e7fb206037100..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sKn{O^Pl)S*0|y!!82HV0oYtJyeg`d=T#E!A>Kj7jX5<^IG- zWuF9VJ&8BQ4WU+a-=k0smdMUac*xWgB?+c&Q#}%=uzu8aq Wv#}d9=CuH=VDNPHb6Mw<&;$Ud^G!kk diff --git a/samples/CSharp/WPF_D3D/res/view_fitarea.png b/samples/CSharp/WPF_D3D/res/view_fitarea.png deleted file mode 100644 index f20f5c0554ffdad417e9c95fccd492044ace89bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|S`u&0Y-NX4Awga&42g)k;3H8wUqHieUWIvg`qo0*xLg_)h%*`3*$otfF4 z&ofQ1TDFuYQ9EpHV!(rh3kd-M2@etiE--A|;ke3(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7M0>h8hE&Y)?Y+p`V8G#W{uX0^xI;;UT4_UF$^V%)8`Sn5cq+Jq zp@l1~sw^j`_to4Oq35mB&KQVrKY8Z9pY!dPr+HnTJ1Z0(rJdsMJpbXK8uODC*PR9K c-3$J~n&8hKB9R!|3bcm7)78&qol`;+0Em)S00000 diff --git a/samples/CSharp/WPF_D3D/res/view_glpan.png b/samples/CSharp/WPF_D3D/res/view_glpan.png deleted file mode 100644 index 02a9c1cb8de8322db45bfbef3204c0ae32a84d92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|TxgQtsQNX4AwgoJ{GganR+2F7rOw337g35<$v6J(f`Su_n=IvPAU#Cs%J tSR0Ob>9VmkvZ*n09Q+W(t;QI_#PDz?>zd8|Iv~d~c)I$ztaD0e0syz^Hqrn9 diff --git a/samples/CSharp/WPF_D3D/res/view_left.png b/samples/CSharp/WPF_D3D/res/view_left.png deleted file mode 100644 index 7d25b6ab2f8b8f778ac779da4db96d5a8d9f5756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gm}6*hE&W6?P=s}FyLW1e}U1fkipS>1+&PRf5tyE1->er|LiHZ z;y{;Yx0;W4{yUvx9tUeDi0HN)&s`XLvSi!D`1rIJ6XmlyZmoKff1`T;x$oZ|vZ?K7 V-?`&Y+ialu44$rjF6*2UngIO(RGR|DNig)Wk}CVGb+eSS1{5u&@;4+ z+m``Uq2cM`7*a7OIpF{^i-bd~Nb&JX|sgW&tgYj0}<9EH3;v S_cH`Pkan1T+sEd~k@tDPaMF snn^>8P{+}&O^zxI9?hI#>?@QQ)XuT#9Aufl8)zDXr>mdKI;Vst02TW;XaE2J diff --git a/samples/CSharp/WPF_D3D/res/view_right.png b/samples/CSharp/WPF_D3D/res/view_right.png deleted file mode 100644 index 5540220cfa7e1f7a8b5258efe3bef0d1a70b2263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK71bezThE&Y)^>yTGFyP^y&A-8Z#Xbj#d#<1Vo3GuNEOkrZQVY`# z29aKu1Fr5mFF&zOeB9T{BDbmdKI;Vst0DV4DIRF3v diff --git a/samples/CSharp/WPF_D3D/res/view_rotate.png b/samples/CSharp/WPF_D3D/res/view_rotate.png deleted file mode 100644 index 7e5d013b9f5a84d5ac7d0379496e2588f6a5f059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|S`u&0Y-NX4Aw1coNIHdY=v1vY24W)^1lW-(@FcJ}7UjLgZ*9v7M#4>}7j z>2hs6n9SI5@YI0=ER!BZ^E@%q(CB7jwQV@W8RMXLnM;8&giA$2g5k?Mu9nFjw?Iy2 N@O1TaS?83{1OP9;KPmtK diff --git a/samples/CSharp/WPF_D3D/res/view_top.png b/samples/CSharp/WPF_D3D/res/view_top.png deleted file mode 100644 index b788de36fb11bef11761670ac5ceda6892d5e7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7M0mP5hE&YS^*tzfz<}e>3kF}c6PAweHZ}CWvk$(wZ2u<#Kaqw* zO=d5SIXXNJJ!_lGEFv=@=395$hf}p|ocC{7PrbT)j?VkVM$aAz>n2M+iq9xBK9$$> ahr!_{$FWT{v)h1nFnGH9xvX(-?sKn{O^Pl)S*0|y!!82>SW;nlh^!(-7IGw3; zCi9EJX`97f+%|n0_TaH`^vZV^{HGoZ?fUmb;cjl+TRD>lr*1D4HlM$R)k68Gp)$~9 N22WQ%mvv4FO#sFsO!@!- diff --git a/samples/CSharp/WPF_WinForms/About.xaml b/samples/CSharp/WPF_WinForms/About.xaml deleted file mode 100644 index 950405f605..0000000000 --- a/samples/CSharp/WPF_WinForms/About.xaml +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/samples/CSharp/WPF_WinForms/MainWindow.xaml.cs b/samples/CSharp/WPF_WinForms/MainWindow.xaml.cs deleted file mode 100644 index c4a40742af..0000000000 --- a/samples/CSharp/WPF_WinForms/MainWindow.xaml.cs +++ /dev/null @@ -1,614 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.ComponentModel; -using System.Windows.Forms.Integration; - -namespace IE_WPF_WinForms -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow : Window, INotifyPropertyChanged - { - public event PropertyChangedEventHandler PropertyChanged; - protected void RaisePropertyChanged( string thePropertyName ) - { - if ( PropertyChanged != null ) - { - PropertyChanged( this, new PropertyChangedEventArgs( thePropertyName ) ); - } - } - - public MainWindow() - { - InitializeComponent(); - - StatusBarText = String.Empty; - IsHlrOffPushed = false; - IsHlrOnPushed = true; - IsZoomWinEnabled = true; - - #region menu operations - - CommandBinding aBind_New = new CommandBinding( IECommands.New ); - aBind_New.Executed += NewCommand_Executed; - CommandBindings.Add( aBind_New ); - - CommandBinding aBind_Close = new CommandBinding( IECommands.Close ); - aBind_Close.Executed += CloseCommand_Executed; - aBind_Close.CanExecute += CloseCommand_CanExecute; - CommandBindings.Add( aBind_Close ); - - CommandBinding aBind_Quit = new CommandBinding( IECommands.Quit ); - aBind_Quit.Executed += QuitCommand_Executed; - CommandBindings.Add( aBind_Quit ); - - CommandBinding aBind_About = new CommandBinding( IECommands.About ); - aBind_About.Executed += AboutCommand_Executed; - CommandBindings.Add( aBind_About ); - - # endregion - - PreviewKeyDown += new KeyEventHandler( OnPreviewKeyDown ); - PreviewKeyUp += new KeyEventHandler( OnPreviewKeyUp ); - } - - private String myStatusBarText; - public String StatusBarText - { - get - { - return myStatusBarText; - } - private set - { - myStatusBarText = value; - RaisePropertyChanged( "StatusBarText" ); - } - } - - private bool isHlrOffPushed; - public Boolean IsHlrOffPushed - { - get - { - return isHlrOffPushed; - } - set - { - isHlrOffPushed = value; - RaisePropertyChanged("isHlrOffPushed"); - } - } - - private bool isHlrOnPushed; - public Boolean IsHlrOnPushed - { - get - { - return isHlrOnPushed; - } - set - { - isHlrOnPushed = value; - RaisePropertyChanged("IsHlrOnPushed"); - } - } - - private bool isZoomWinEnabled; - public Boolean IsZoomWinEnabled - { - get - { - return isZoomWinEnabled; - } - set - { - isZoomWinEnabled = value; - RaisePropertyChanged("IsZoomWinEnabled"); - } - } - - private OCCViewer ActiveViewer - { - get - { - if ( !IsDocumentOpen ) - { - return null; - } - - WindowsFormsHost aHost = ( ViewPanel.SelectedContent ) as WindowsFormsHost; - if( aHost == null ) - { - return null; - } - - return aHost.Child as OCCViewer; - } - } - - public Boolean IsDocumentOpen - { - get - { - return ViewPanel.Items.Count > 0; - } - } - - private int myDocumentCounter = 1; - - private void NewCommand_Executed( object sender, ExecutedRoutedEventArgs e ) - { - WindowsFormsHost aHost = new WindowsFormsHost(); - OCCViewer aForm = new OCCViewer(); - aForm.Show(); - aHost.Child = aForm; - - TabItem aNewTab = new TabItem(); - aNewTab.Content = aHost; - aNewTab.IsSelected = true; - aNewTab.Header = "Document " + myDocumentCounter.ToString(); - myDocumentCounter++; - - ViewPanel.Items.Add( aNewTab ); - - // update XAML property - RaisePropertyChanged("IsDocumentOpen"); - } - - private void CloseCommand_Executed(object sender, ExecutedRoutedEventArgs e) - { - if ( ViewPanel.Items.Count > 0 ) - { - ViewPanel.Items.Remove( ViewPanel.SelectedItem ); - } - - // update XAML property - RaisePropertyChanged( "IsDocumentOpen" ); - } - - private void CloseCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = IsDocumentOpen; - } - - private void QuitCommand_Executed( object sender, ExecutedRoutedEventArgs e ) - { - this.Close(); - } - - private void ImportBRep_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ImportModel( ModelFormat.BREP ); - } - } - - private void ImportIges_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ImportModel( ModelFormat.IGES ); - } - } - - private void ImportStep_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ImportModel( ModelFormat.STEP ); - } - } - - private void ExportBRep_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.BREP ); - } - } - - private void ExportStep_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.STEP ); - } - } - - private void ExportIges_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.IGES ); - } - } - - private void ExportStl_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.STL ); - } - } - - private void ExportVrml_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.VRML ); - } - } - - private void ExportImage_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.ExportModel( ModelFormat.IMAGE ); - } - } - - private void FitAllBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.FitAll(); - } - } - - private void ZoomWindowBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - IsZoomWinEnabled = false; - ActiveViewer.ZoomWindow(); - } - } - - private void DynamicZoomingBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.DynamicZooming(); - } - } - - private void DynamicPanningBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.DynamicPanning(); - } - } - - private void GlobalPanningBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.GlobalPanning(); - } - } - - private void FrontBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.FrontView(); - } - } - - private void BackBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.BackView(); - } - } - - private void TopBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.TopView(); - } - } - - private void BottomBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.BottomView(); - } - } - - private void LeftBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.LeftView(); - } - } - - private void RightBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.RightView(); - } - } - - private void AxoBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.AxoView(); - } - } - - private void ResetBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Reset(); - } - } - - private void DynamicRotationBtn_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.DynamicRotation(); - } - } - - private void HiddenOffBtn_Click( object sender, RoutedEventArgs e ) - { - IsHlrOffPushed = true; - IsHlrOnPushed = false; - if ( ActiveViewer != null ) - { - ActiveViewer.HiddenOff(); - } - } - - private void HiddenOnBtn_Click( object sender, RoutedEventArgs e ) - { - IsHlrOffPushed = false; - IsHlrOnPushed = true; - if (ActiveViewer != null) - { - ActiveViewer.HiddenOn(); - } - } - - private void AboutCommand_Executed( object sender, ExecutedRoutedEventArgs e ) - { - AboutDialog aDlg = new AboutDialog(); - aDlg.ShowDialog(); - } - - private void ToolBar_MouseEnter( object sender, MouseEventArgs e ) - { - StatusBarText = "Toolbar"; - } - - private void DocumentToolBar_MouseEnter(object sender, MouseEventArgs e) - { - StatusBarText = "Document toolbar"; - } - - private void ViewToolBar_MouseEnter(object sender, MouseEventArgs e) - { - StatusBarText = "View toolbar"; - } - - private void ToolBar_MouseLeave( object sender, MouseEventArgs e ) - { - StatusBarText = ""; - } - - public void OnZoomingFinished( object sender, EventArgs e ) - { - IsZoomWinEnabled = true; - } - - public bool IsWireframeEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsWireframeEnabled; - } - return false; - } - } - - private void Wireframe_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Wireframe(); - } - } - - private void Shading_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Shading(); - } - } - - public bool IsShadingEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsShadingEnabled; - } - return false; - } - } - - private void Color_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Color(); - } - } - - public bool IsColorEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsColorEnabled; - } - return false; - } - } - - private void Material_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Material(); - } - } - - public bool IsMaterialEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsMaterialEnabled; - } - return false; - } - } - - private void Transparency_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Transparency(); - } - } - - public bool IsTransparencyEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsTransparencyEnabled; - } - return false; - } - } - - private void Delete_Click( object sender, RoutedEventArgs e ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.Delete(); - } - } - - public bool IsDeleteEnabled - { - get - { - if ( ActiveViewer != null ) - { - return ActiveViewer.IsDeleteEnabled; - } - return false; - } - } - - private void AvaliabiltyOfOperationToolbarChanged() - { - RaisePropertyChanged( "IsWireframeEnabled" ); - RaisePropertyChanged( "IsShadingEnabled" ); - RaisePropertyChanged( "IsTransparencyEnabled" ); - RaisePropertyChanged( "IsColorEnabled" ); - RaisePropertyChanged( "IsMaterialEnabled" ); - RaisePropertyChanged( "IsDeleteEnabled" ); - } - - public void OnAvaliabiltyOfOperationsChanged( object sender, EventArgs e ) - { - AvaliabiltyOfOperationToolbarChanged(); - } - - private void OnViewerChanged( object sender, SelectionChangedEventArgs e ) - { - if ( e.RemovedItems.Count > 0 ) - { - WindowsFormsHost aHost = ( ( e.RemovedItems[0] as TabItem).Content ) as WindowsFormsHost; - if( aHost == null ) - { - return; - } - OCCViewer aViewer = aHost.Child as OCCViewer; - if( aViewer != null ) - { - aViewer.ZoomingFinished -= new EventHandler( OnZoomingFinished ); - aViewer.AvaliabiltyOfOperationsChanged -= new EventHandler( OnAvaliabiltyOfOperationsChanged ); - } - } - - if ( e.AddedItems.Count > 0 ) - { - WindowsFormsHost aHost = ( (e.AddedItems[0] as TabItem).Content ) as WindowsFormsHost; - if ( aHost == null ) - { - return; - } - OCCViewer aViewer = aHost.Child as OCCViewer; - if ( aViewer != null ) - { - aViewer.ZoomingFinished += new EventHandler( OnZoomingFinished ); - aViewer.AvaliabiltyOfOperationsChanged += new EventHandler( OnAvaliabiltyOfOperationsChanged ); - } - } - - AvaliabiltyOfOperationToolbarChanged(); - } - - private void OnPreviewKeyDown( object sender, KeyEventArgs args ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.OnKeyDown( args.Key ); - } - } - - private void OnPreviewKeyUp( object sender, KeyEventArgs args ) - { - if ( ActiveViewer != null ) - { - ActiveViewer.OnKeyUp(); - } - } - } -} diff --git a/samples/CSharp/WPF_WinForms/MaterialDlg.xaml b/samples/CSharp/WPF_WinForms/MaterialDlg.xaml deleted file mode 100644 index 8b2249dfc9..0000000000 --- a/samples/CSharp/WPF_WinForms/MaterialDlg.xaml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_WinForms/MaterialDlg.xaml.cs b/samples/CSharp/WPF_WinForms/MaterialDlg.xaml.cs deleted file mode 100644 index e89ace7d59..0000000000 --- a/samples/CSharp/WPF_WinForms/MaterialDlg.xaml.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; - -namespace IE_WPF_WinForms -{ - public enum Material - { - Brass, - Bronze, - Copper, - Gold, - Pewter, - Plaster, - Plastic, - Silver - } - - /// - /// Interaction logic for MaterialDlg.xaml - /// - public partial class MaterialDlg : Window - { - public MaterialDlg( OCCTProxy theView ) - { - this.InitializeComponent(); - - if ( theView == null ) - { - MessageBox.Show( "Fatal Error during the graphic initialisation", "Error!" ); - } - - View = theView; - - SetInitialState(); - } - - public OCCTProxy View { get; private set; } - - private void PlasterBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Plaster ); - View.UpdateCurrentViewer(); - } - - private void BrassBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Brass ); - View.UpdateCurrentViewer(); - } - - private void BronzeBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Bronze ); - View.UpdateCurrentViewer(); - } - - private void CopperBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Copper ); - View.UpdateCurrentViewer(); - } - - private void GoldBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Gold ); - View.UpdateCurrentViewer(); - } - - private void PewterBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Pewter ); - View.UpdateCurrentViewer(); - } - - private void PlasticBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Plastic ); - View.UpdateCurrentViewer(); - } - - private void SilverBtn_Checked( object sender, RoutedEventArgs e ) - { - View.SetMaterial( (int)Material.Silver ); - View.UpdateCurrentViewer(); - } - - private void SetInitialState() - { - // TODO - } - } -} \ No newline at end of file diff --git a/samples/CSharp/WPF_WinForms/OCCViewer.cs b/samples/CSharp/WPF_WinForms/OCCViewer.cs deleted file mode 100644 index 733ae7204b..0000000000 --- a/samples/CSharp/WPF_WinForms/OCCViewer.cs +++ /dev/null @@ -1,832 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace IE_WPF_WinForms -{ - public enum CurrentAction3d - { - CurAction3d_Nothing, - CurAction3d_DynamicZooming, - CurAction3d_WindowZooming, - CurAction3d_DynamicPanning, - CurAction3d_GlobalPanning, - CurAction3d_DynamicRotation - } - public enum CurrentPressedKey - { - CurPressedKey_Nothing, - CurPressedKey_Ctrl, - CurPressedKey_Shift - } - public enum ModelFormat - { - BREP, - STEP, - IGES, - VRML, - STL, - IMAGE - } - - public enum DisplayMode - { - Wireframe, - Shading - } - - public class OCCViewer : System.Windows.Forms.Form - { - public event EventHandler ZoomingFinished; - protected void RaiseZoomingFinished() - { - if ( ZoomingFinished != null ) - { - ZoomingFinished( this, EventArgs.Empty ); - } - } - - public event EventHandler AvaliabiltyOfOperationsChanged; - protected void RaiseAvaliabiltyOfOperationsChanged() - { - if ( AvaliabiltyOfOperationsChanged != null ) - { - AvaliabiltyOfOperationsChanged( this, EventArgs.Empty ); - } - } - - public OCCTProxy View { get; private set; } - public CurrentAction3d CurrentMode { get; private set; } - private CurrentPressedKey CurrentPressedKey { get; set; } - private bool IsRectVisible { get; set; } - public bool DegenerateMode { get; private set; } - - public bool IsWireframeEnabled { get; private set; } - public bool IsShadingEnabled { get; private set; } - public bool IsTransparencyEnabled { get; private set; } - public bool IsColorEnabled { get; private set; } - public bool IsMaterialEnabled { get; private set; } - public bool IsDeleteEnabled { get; private set; } - - private float myCurZoom; - private int myXmin; - private int myYmin; - private int myXmax; - private int myYmax; - private int myRectDownX; - private int myRectDownY; - private int myButtonDownX; - private int myButtonDownY; - - private ContextMenu Popup { get; set; } - private MenuItem ContextWireframe; - private MenuItem ContextShading; - private MenuItem ContextColor; - private MenuItem ContextMaterial; - private MenuItem ContextDelete; - private MenuItem ContextBackground; - private MenuItem ContextTransparency; - - - public OCCViewer() - { - InitializeComponent(); - - View = new OCCTProxy(); - View.InitOCCTProxy(); - if ( !View.InitViewer( this.Handle ) ) - { - MessageBox.Show( "Fatal Error during the graphic initialisation", "Error!" ); - } - - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - CurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing; - IsRectVisible = false; - DegenerateMode = true; - } - - private void InitializeComponent() - { - ControlBox = false; - TopLevel = false; - - this.ImeMode = System.Windows.Forms.ImeMode.NoControl; - - SizeChanged += new System.EventHandler( OnSizeChanged ); - Paint += new System.Windows.Forms.PaintEventHandler( OnPaint ); - - MouseDown += new System.Windows.Forms.MouseEventHandler( OnMouseDown ); - MouseUp += new System.Windows.Forms.MouseEventHandler( OnMouseUp ); - MouseMove += new System.Windows.Forms.MouseEventHandler( OnMouseMove ); - - Popup = new ContextMenu(); - ContextWireframe = new MenuItem(); - ContextShading = new MenuItem(); - ContextColor = new MenuItem(); - ContextMaterial = new MenuItem(); - ContextTransparency = new MenuItem(); - ContextDelete = new MenuItem(); - ContextBackground = new MenuItem(); - - ContextWireframe.Text = "Wireframe"; - ContextShading.Text = "Shading"; - ContextColor.Text = "Color"; - ContextMaterial.Text = "Material"; - ContextTransparency.Text = "Transparency"; - ContextDelete.Text = "Delete"; - ContextBackground.Text = "Background"; - - ContextWireframe.Click += new System.EventHandler( ContextWireframe_Click ); - ContextShading.Click += new System.EventHandler( ContextShading_Click ); - ContextColor.Click += new System.EventHandler( ContextColor_Click ); - ContextMaterial.Click += new System.EventHandler( ContextMaterial_Click ); - ContextTransparency.Click += new System.EventHandler( ContextTransparency_Click ); - ContextDelete.Click += new System.EventHandler( ContextDelete_Click ); - ContextBackground.Click += new System.EventHandler( ContextBackground_Click ); - - Popup.MenuItems.AddRange( new MenuItem[] { ContextWireframe, - ContextShading, - ContextColor, - ContextMaterial, - ContextTransparency, - ContextDelete, - ContextBackground } ); - Popup.Popup += new System.EventHandler( OnPopup ); - } - - private void OnPaint(object sender, System.Windows.Forms.PaintEventArgs e) - { - View.RedrawView(); - View.UpdateView(); - } - - private void OnSizeChanged(object sender, System.EventArgs e) - { - View.UpdateView(); - } - - public void ImportModel( ModelFormat theFormat ) - { - int aFormat = 10; - OpenFileDialog anOpenDialog = new OpenFileDialog(); - string aDataDir = Environment.GetEnvironmentVariable("CSF_OCCTDataPath"); - string aFilter = ""; - - switch ( theFormat ) - { - case ModelFormat.BREP: - anOpenDialog.InitialDirectory = (aDataDir + "\\occ"); - aFormat = 0; - aFilter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case ModelFormat.STEP: - anOpenDialog.InitialDirectory = (aDataDir + "\\step"); - aFormat = 1; - aFilter = "STEP Files (*.stp *.step)|*.stp; *.step"; - break; - case ModelFormat.IGES: - anOpenDialog.InitialDirectory = (aDataDir + "\\iges"); - aFormat = 2; - aFilter = "IGES Files (*.igs *.iges)|*.igs; *.iges"; - break; - default: - break; - } - - anOpenDialog.Filter = aFilter + "|All files (*.*)|*.*"; - if (anOpenDialog.ShowDialog() == DialogResult.OK) - { - string aFileName = anOpenDialog.FileName; - if (aFileName == "") - { - return; - } - - Cursor = System.Windows.Forms.Cursors.WaitCursor; - if ( !View.TranslateModel( aFileName, aFormat, true ) ) - { - MessageBox.Show( "Can't read this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning ); - } - Cursor = System.Windows.Forms.Cursors.Default; - } - View.ZoomAllView(); - } - - public void ExportModel( ModelFormat theFormat ) - { - int aFormat = 10; - SaveFileDialog saveDialog = new SaveFileDialog(); - string aDataDir = Environment.GetEnvironmentVariable("CSF_OCCTDataPath"); - string aFilter = ""; - - switch ( theFormat ) - { - case ModelFormat.BREP: - saveDialog.InitialDirectory = ( aDataDir + "\\occ" ); - aFormat = 0; - aFilter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case ModelFormat.STEP: - saveDialog.InitialDirectory = ( aDataDir + "\\step" ); - aFormat = 1; - aFilter = "STEP Files (*.stp *.step)|*.step; *.stp"; - break; - case ModelFormat.IGES: - saveDialog.InitialDirectory = ( aDataDir + "\\iges" ); - aFormat = 2; - aFilter = "IGES Files (*.igs *.iges)| *.iges; *.igs"; - break; - case ModelFormat.VRML: - saveDialog.InitialDirectory = ( aDataDir + "\\vrml" ); - aFormat = 3; - aFilter = "VRML Files (*.vrml)|*.vrml"; - break; - case ModelFormat.STL: - saveDialog.InitialDirectory = ( aDataDir + "\\stl" ); - aFormat = 4; - aFilter = "STL Files (*.stl)|*.stl"; - break; - case ModelFormat.IMAGE: - saveDialog.InitialDirectory = ( aDataDir + "\\images" ); - aFormat = 5; - aFilter = "Images Files (*.bmp)|*.bmp"; - break; - default: - break; - } - - saveDialog.Filter = aFilter; - if ( saveDialog.ShowDialog() == DialogResult.OK ) - { - string aFileName = saveDialog.FileName; - if ( aFileName == "" ) - { - return; - } - - Cursor = System.Windows.Forms.Cursors.WaitCursor; - if ( !View.TranslateModel( aFileName, aFormat, false ) ) - { - MessageBox.Show( "Can not write this file", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning ); - } - Cursor = System.Windows.Forms.Cursors.Default; - } - } - - public void FitAll() - { - View.ZoomAllView(); - } - - public void ZoomWindow() - { - CurrentMode = CurrentAction3d.CurAction3d_WindowZooming; - } - - public void DynamicZooming() - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicZooming; - } - - public void DynamicPanning() - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicPanning; - } - - public void GlobalPanning() - { - myCurZoom = View.Scale(); - CurrentMode = CurrentAction3d.CurAction3d_GlobalPanning; - } - - public void AxoView() - { - View.AxoView(); - } - - public void FrontView() - { - View.FrontView(); - } - - public void TopView() - { - View.TopView(); - } - - public void LeftView() - { - View.LeftView(); - } - - public void BackView() - { - View.BackView(); - } - - public void RightView() - { - View.RightView(); - } - - public void Reset() - { - View.Reset(); - } - - public void BottomView() - { - View.BottomView(); - } - - public void HiddenOff() - { - View.SetDegenerateModeOff(); - DegenerateMode = false; - } - - public void HiddenOn() - { - View.SetDegenerateModeOn(); - DegenerateMode = true; - } - - public void DynamicRotation() - { - CurrentMode = CurrentAction3d.CurAction3d_DynamicRotation; - } - - public void SelectionChanged() - { - switch ( View.DisplayMode() ) - { - case -1: - IsShadingEnabled = false; - IsWireframeEnabled = false; - break; - case 0: - IsWireframeEnabled = false; - IsShadingEnabled = true; - IsTransparencyEnabled = false; - break; - case 1: - IsWireframeEnabled = true; - IsShadingEnabled = false; - IsTransparencyEnabled = true; - break; - case 10: - IsWireframeEnabled = true; - IsShadingEnabled = true; - IsTransparencyEnabled = true; - break; - default: - break; - } - - if ( View.IsObjectSelected() ) - { - IsColorEnabled = true; - IsMaterialEnabled = true; - IsDeleteEnabled = true; - } - else - { - IsColorEnabled = false; - IsMaterialEnabled = false; - IsTransparencyEnabled = false; - IsDeleteEnabled = false; - } - - RaiseAvaliabiltyOfOperationsChanged(); - } - - public void ChangeColor( bool IsObjectColor ) - { - int r, g, b; - if ( IsObjectColor ) - { - r = View.GetObjColR(); - g = View.GetObjColG(); - b = View.GetObjColB(); - } - else - { - r = View.GetBGColR(); - g = View.GetBGColG(); - b = View.GetBGColB(); - } - System.Windows.Forms.ColorDialog ColDlg = new System.Windows.Forms.ColorDialog(); - ColDlg.Color = System.Drawing.Color.FromArgb( r, g, b ); - if ( ColDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK ) - { - System.Drawing.Color c = ColDlg.Color; - r = c.R; - g = c.G; - b = c.B; - if ( IsObjectColor ) - { - View.SetColor( r, g, b ); - } - else - { - View.SetBackgroundColor( r, g, b ); - } - } - View.UpdateCurrentViewer(); - } - - public void Wireframe() - { - View.SetDisplayMode( (int)DisplayMode.Wireframe ); - View.UpdateCurrentViewer(); - - SelectionChanged(); - RaiseZoomingFinished(); - } - - public void Shading() - { - View.SetDisplayMode( (int)DisplayMode.Shading ); - View.UpdateCurrentViewer(); - - SelectionChanged(); - RaiseZoomingFinished(); - } - - public void Color() - { - ChangeColor( true ); - } - - public void Background() - { - ChangeColor( false ); - } - - public void Material() - { - MaterialDlg aDlg = new MaterialDlg( View ); - aDlg.ShowDialog(); - } - - public void Transparency() - { - TransparencyDialog dlg = new TransparencyDialog(); - dlg.View = View; - dlg.ShowDialog( this ); - } - - public void Delete() - { - View.EraseObjects(); - SelectionChanged(); - } - - public void OnKeyDown( System.Windows.Input.Key theKey ) - { - if ( theKey == System.Windows.Input.Key.LeftShift || - theKey == System.Windows.Input.Key.RightShift ) - { - CurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift; - } - else if (theKey == System.Windows.Input.Key.LeftCtrl || - theKey == System.Windows.Input.Key.RightCtrl ) - { - CurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl; - } - } - - public void OnKeyUp() - { - CurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing; - } - - protected void MultiDragEvent( int x, int y, int theState ) - { - if ( theState == -1 ) //mouse is down - { - myButtonDownX = x; - myButtonDownY = y; - } - else if ( theState == 1) //mouse is up - { - View.ShiftSelect( Math.Min( myButtonDownX, x ), Math.Min( myButtonDownY, y ), - Math.Max( myButtonDownX, x ), Math.Max( myButtonDownY, y ) ); - } - } - - protected void DragEvent( int x, int y, int theState ) - { - if ( theState == -1 ) //mouse is down - { - myButtonDownX = x; - myButtonDownY = y; - } - else if ( theState == 1 ) //mouse is up - { - View.Select( Math.Min( myButtonDownX, x ), Math.Min( myButtonDownY, y ), - Math.Max( myButtonDownX, x ), Math.Max( myButtonDownY, y ) ); - } - } - - private void DrawRectangle( bool draw ) - { - System.Drawing.Graphics gr = System.Drawing.Graphics.FromHwnd(Handle); - System.Drawing.Pen p = null; - if ( IsRectVisible || !draw )//erase the rect - { - int r = View.GetBGColR(); - int g = View.GetBGColG(); - int b = View.GetBGColB(); - p = new System.Drawing.Pen( System.Drawing.Color.FromArgb(r, g, b) ); - IsRectVisible = false; - View.UpdateView(); - } - else if ( draw ) - { - p = new System.Drawing.Pen( System.Drawing.Color.White ); - IsRectVisible = true; - } - if ( p == null ) - { - return; - } - int x = Math.Min( myXmin, myXmax ); - int y = Math.Min( myYmin, myYmax ); - gr.DrawRectangle( p, x, y, Math.Abs(myXmax - myXmin), Math.Abs(myYmax - myYmin) ); - myRectDownX = Math.Max( myXmin, myXmax ); - myRectDownY = Math.Max( myYmin, myYmax ); - } - - private void OnMouseDown( object sender, System.Windows.Forms.MouseEventArgs e ) - { - if ( e.Button == MouseButtons.Left ) - { - myXmin = e.X; - myXmax = e.X; - myYmin = e.Y; - myYmax = e.Y; - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl ) - { - // start the dynamic zooming.... - CurrentMode = CurrentAction3d.CurAction3d_DynamicZooming; - } - else - { - switch ( CurrentMode ) - { - case CurrentAction3d.CurAction3d_Nothing: - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift ) - { - MultiDragEvent( myXmax, myYmax, -1 ); - } - else - { - DragEvent( myXmax, myYmax, -1 ); - } - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - if ( !DegenerateMode ) - { - View.SetDegenerateModeOn(); - } - View.StartRotation( e.X, e.Y ); - break; - case CurrentAction3d.CurAction3d_WindowZooming: - Cursor = Cursors.Hand; - break; - default: - break; - } - } - } - else if ( e.Button == MouseButtons.Right ) - { - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl ) - { - if ( !DegenerateMode ) - { - View.SetDegenerateModeOn(); - } - View.StartRotation( e.X, e.Y ); - } - else - { - Popup.Show( this, new System.Drawing.Point( e.X, e.Y ) ); - } - } - } - - private void OnMouseUp( object sender, System.Windows.Forms.MouseEventArgs e ) - { - if ( e.Button == MouseButtons.Left ) - { - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl ) - { - return; - } - switch ( CurrentMode ) - { - case CurrentAction3d.CurAction3d_Nothing: - if ( e.X == myXmin && e.Y == myYmin ) - { - myXmax = e.X; - myYmax = e.Y; - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift ) - { - View.ShiftSelect(); - } - else - { - View.Select(); - } - } - else - { - myXmax = e.X; - myYmax = e.Y; - DrawRectangle( false ); - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift ) - { - MultiDragEvent( myXmax, myYmax, 1 ); - } - else - { - DragEvent( myXmax, myYmax, 1 ); - } - } - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - myXmax = e.X; - myYmax = e.Y; - DrawRectangle( false ); - int ValZWMin = 1; - if ( Math.Abs(myXmax - myXmin) > ValZWMin && - Math.Abs(myXmax - myYmax) > ValZWMin ) - { - View.WindowFitAll( myXmin, myYmin, myXmax, myYmax ); - } - Cursor = Cursors.Arrow; - RaiseZoomingFinished(); - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - View.Place( e.X, e.Y, myCurZoom ); - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - CurrentMode = CurrentAction3d.CurAction3d_Nothing; - if ( !DegenerateMode ) - { - View.SetDegenerateModeOff(); - } - else - { - View.SetDegenerateModeOn(); - } - break; - default: - break; - } - } - else if ( e.Button == MouseButtons.Right ) - { - if ( !DegenerateMode ) - { - View.SetDegenerateModeOff(); - } - else - { - View.SetDegenerateModeOn(); - } - } - - SelectionChanged(); - } - - private void OnMouseMove( object sender, System.Windows.Forms.MouseEventArgs e ) - { - if ( e.Button == MouseButtons.Left ) //left button is pressed - { - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl ) - { - View.Zoom(myXmax, myYmax, e.X, e.Y); - myXmax = e.X; - myYmax = e.Y; - } - else - { - switch ( CurrentMode ) - { - case CurrentAction3d.CurAction3d_Nothing: - DrawRectangle( false ); - myXmax = e.X; - myYmax = e.Y; - DrawRectangle( true ); - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - View.Zoom( myXmax, myYmax, e.X, e.Y ); - myXmax = e.X; - myYmax = e.Y; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - DrawRectangle( false ); - myXmax = e.X; - myYmax = e.Y; - DrawRectangle( true );//add brush here - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - View.Pan( e.X - myXmax, myYmax - e.Y ); - myXmax = e.X; - myYmax = e.Y; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - View.Rotation( e.X, e.Y ); - View.RedrawView(); - break; - default: - break; - } - } - } - else if ( e.Button == MouseButtons.Middle ) //middle button is pressed - { - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl ) - { - View.Pan( e.X - myXmax, myYmax - e.Y ); - myXmax = e.X; - myYmax = e.Y; - } - } - else if ( e.Button == MouseButtons.Right ) //right button is pressed - { - if ( CurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - { - View.Rotation( e.X, e.Y ); - } - } - else // no buttons are pressed - { - myXmax = e.X; - myYmax = e.Y; - View.MoveTo( e.X, e.Y ); - } - } - - private void OnPopup( object sender, System.EventArgs e ) - { - ContextWireframe.Enabled = IsWireframeEnabled; - ContextShading.Enabled = IsShadingEnabled; - ContextColor.Enabled = IsColorEnabled; - ContextMaterial.Enabled = IsMaterialEnabled; - ContextDelete.Enabled = IsDeleteEnabled; - ContextTransparency.Enabled = IsTransparencyEnabled; - ContextBackground.Enabled = true; - } - - private void ContextWireframe_Click( object sender, System.EventArgs e ) - { - Wireframe(); - } - - private void ContextShading_Click( object sender, System.EventArgs e ) - { - Shading(); - } - - private void ContextColor_Click( object sender, System.EventArgs e ) - { - Color(); - } - - private void ContextMaterial_Click( object sender, System.EventArgs e ) - { - Material(); - } - - private void ContextTransparency_Click( object sender, System.EventArgs e ) - { - Transparency(); - } - - private void ContextDelete_Click( object sender, System.EventArgs e ) - { - Delete(); - } - - private void ContextBackground_Click( object sender, System.EventArgs e ) - { - Background(); - } - } -} diff --git a/samples/CSharp/WPF_WinForms/Properties/AssemblyInfo.cs b/samples/CSharp/WPF_WinForms/Properties/AssemblyInfo.cs deleted file mode 100644 index 02445ca672..0000000000 --- a/samples/CSharp/WPF_WinForms/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("IE")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("IE")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/CSharp/WPF_WinForms/Properties/Resources.Designer.cs b/samples/CSharp/WPF_WinForms/Properties/Resources.Designer.cs deleted file mode 100644 index e6c1eac679..0000000000 --- a/samples/CSharp/WPF_WinForms/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace IE_WPF_WinForms.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IE_WPF_WinForms.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/samples/CSharp/WPF_WinForms/Properties/Resources.resx b/samples/CSharp/WPF_WinForms/Properties/Resources.resx deleted file mode 100644 index af7dbebbac..0000000000 --- a/samples/CSharp/WPF_WinForms/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/samples/CSharp/WPF_WinForms/Properties/Settings.Designer.cs b/samples/CSharp/WPF_WinForms/Properties/Settings.Designer.cs deleted file mode 100644 index 117456a5c0..0000000000 --- a/samples/CSharp/WPF_WinForms/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace IE_WPF_WinForms.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/samples/CSharp/WPF_WinForms/Properties/Settings.settings b/samples/CSharp/WPF_WinForms/Properties/Settings.settings deleted file mode 100644 index 033d7a5e9e..0000000000 --- a/samples/CSharp/WPF_WinForms/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_WinForms/Simple Styles.xaml b/samples/CSharp/WPF_WinForms/Simple Styles.xaml deleted file mode 100644 index 3be3f557c0..0000000000 --- a/samples/CSharp/WPF_WinForms/Simple Styles.xaml +++ /dev/null @@ -1,1134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/CSharp/WPF_WinForms/TransparencyDialog.cs b/samples/CSharp/WPF_WinForms/TransparencyDialog.cs deleted file mode 100644 index ba7a456252..0000000000 --- a/samples/CSharp/WPF_WinForms/TransparencyDialog.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace IE_WPF_WinForms -{ - /// - /// Summary description for TransparencyDialog. - /// - public class TransparencyDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.NumericUpDown MyTransparency; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private OCCTProxy myView; - - public TransparencyDialog() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - myView = null; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(TransparencyDialog)); - this.MyTransparency = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).BeginInit(); - this.SuspendLayout(); - // - // MyTransparency - // - this.MyTransparency.Location = new System.Drawing.Point(16, 16); - this.MyTransparency.Maximum = new System.Decimal(new int[] { - 10, - 0, - 0, - 0}); - this.MyTransparency.Name = "MyTransparency"; - this.MyTransparency.Size = new System.Drawing.Size(96, 20); - this.MyTransparency.TabIndex = 0; - this.MyTransparency.ValueChanged += new System.EventHandler(this.MyTransparency_ValueChanged); - // - // TransparencyDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(128, 53); - this.Controls.Add(this.MyTransparency); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "TransparencyDialog"; - this.Text = "TransparencyDialog"; - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).EndInit(); - this.ResumeLayout(false); - - } - #endregion - - private void MyTransparency_ValueChanged(object sender, System.EventArgs e) - { - if (this.myView == null) - return; - int transp = (int)this.MyTransparency.Value; - this.myView.SetTransparency(transp); - } - - public OCCTProxy View - { - set - { - this.myView = value; - } - } - - } -} diff --git a/samples/CSharp/WPF_WinForms/TransparencyDialog.resx b/samples/CSharp/WPF_WinForms/TransparencyDialog.resx deleted file mode 100644 index 688fd72e80..0000000000 --- a/samples/CSharp/WPF_WinForms/TransparencyDialog.resx +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - TransparencyDialog - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WPF_WinForms/app.config b/samples/CSharp/WPF_WinForms/app.config deleted file mode 100644 index 786a845b30..0000000000 --- a/samples/CSharp/WPF_WinForms/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/samples/CSharp/WPF_WinForms/res/MainFrame.ico b/samples/CSharp/WPF_WinForms/res/MainFrame.ico deleted file mode 100644 index 99dbceb637ed9b2f5faa709d3ec109868688f6dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3774 zcmeH~v1=Sh6o;QUfkjp%2!Sdsv4$<8&U;hb3IqoA!p0!b7O_&zzn~_NBY~?00l{2j z6-kJTG%8Y^;P62TYig;9LO_K<97O5_F`9gD&T&E4$V`Q3Z-zIih%Rw5I8 z9z2lLe*RQsj=L}DDt$$tkSVSr?N5?<&!x?e$nEyXaOGC|{l4^n@5|}SpJZ}!Ql_S+ zWO{m9W@ct&Zf;KI=jX*3Ba4fRvbMG+tE;QBva%veOH0!JI?Ch6QNEW0iNhej9sDH+ zuU^U4^Iu40>5lH{VKlU87R{nr)#Av-p*wVk?$8~&hIw?4?iqM=kB*Um9?%1NKnUoO zabz4r%51q>@>?dd1X+oa(sQveSQsn}7KVfbgN4DuU}3N@Bup4A3>F3pgM}fX!(d^s zFjyEY3^t;{Vd1dK5o4+V3RXX!9_Z-0WLO-@9f=&1I#^N}_|b9WU~#advcTcsaBw&{ z92}`sa5xwo3=Re@orA-{;9v;kid<6($us&ePUY3=Kt*nkS1L8RJxrdYo&+8yPj1hT zo=H5pJ-O3%q}=G__vH8F*Ddno_teJ2;9>C8LAQ;nq}8Kfx#~7jgFwCjTYw{wFKw-I zP=f$RP!1NBwws^;OMoQ+5lEPh04#yPfKxySu<)fb4|@_|30jZDqNhQ30S$%-Lxds1 z5MhWgq~iobfFZ&VVF)lV4IO_NA`B6R2m@2o(P4-%L>M9fk^F(lB7qSn#~hBagCnN7 z)yK(#{3sh68?w2%DVgcZBRp7%_VD_>ZvtpL>JuUM^w#bX(S(x_Z)c)o2}C1*-hO=%4T_UXFN0TZ!x{}%7VWFw`i4--Ywj> z%HrnB?PXb>o1B2zo20;5@Yj}S<05)laxRKSQD}hq{|s6~((xL`OK!@ttg7|8I~WX}JzFP$GnWfjQ#7)?QvW|V z@mZD`Qvy|%tKUSY(wUuC-YFVdQ&MBb@03{S$Q~&?~ diff --git a/samples/CSharp/WPF_WinForms/res/help.png b/samples/CSharp/WPF_WinForms/res/help.png deleted file mode 100644 index e57336285ea67f393322fd6f19a64d9d1de42e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(m|32{Ae;K2X?Kn}y={c$Bg zim@cfFPOpM*^M+1C&}C0g(;1@2Bci9#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q&(Jn* zUj|TxkEe@cNX4AwgoJ(PcjV()C>w#3=B*S3``o9LZ`&mG989ZJ6T-G@yGywpz CnKtYI diff --git a/samples/CSharp/WPF_WinForms/res/lamp.png b/samples/CSharp/WPF_WinForms/res/lamp.png deleted file mode 100644 index a5a6775c33f5655a31ef8152b0fa94fcaa73abf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1355 zcmd^7i%XMH6hGglY)YE@mdni4rBLY*sVE7}O{Z?9Q&P-u!OCnICac6xjOt62ED8#G zTV`Zg2|ehcV$dp*UZzAy#gd9_84Ol4A0@4Gt{Oq~7j)pL)q+D}fNWcF8TBSX#DVWbcMABR%wvq6 zOe?HhV$RPqnX_{B%gwoKHrYyx&0C7MLMe)I8OC&Yiaz8gt9A+#DIszqR^lKJXN!gf zdPCEk%tJX`YNz1#Qvgeh$Seqj{!0-t;V7pgQ$0lrr$BvDEr;CzDwvB_oFRhL;;~vQ zt8s%S7-X=Q178M%`5VuK#w;tlE3po7iW0tj7{MBq5RF#SiErxA;I9Q{KpK;zi04j$tPAP#rd;Vs?mU!8tK9N|$Dx_y|RY@hW(Jp^Ii z6AG6Q8^jqTsEgQBIj02eoM4Q`!Ar!~Eo%{MXrn#@3!TC^Ha@dRj6a>d1gJy&`dl~b zS&qLNf*9=-G0l~7pa^mrHc|!NIp{+)xtkBW#&@&7E|vM{H*U949px)bxwNyi_5Uk* zYOD`&RNswyU0&r$*P*-oy?D9)Xj$!`cV|IlR`YAU>+XzG1L0Nii3M_n$M{YX_x6dn z);3?F4bQbNmF=sw=%BYr?Y+5Y8dtt3p~3IQG3mMHn%K1A*+2KE?CWj&tlqJ?WdCr? zeAliAZyNLakKB>uuh#Ww1}>L8c^vGoRk|%xyOoAbRmtrax_VPpZcWPZ1JCalT&r4M z-EtwdpbW2l$bb}#O0PmqO1O?{N1)#yf4VfS~p9CTG=r+0j)KWl~4LFX61<28v_ zxCS4M(6Oyowk1n_>S6`g(mm(apj6wQ)aq#MpLI2<;A`iqkJiGSgWUp`9O&TGNzus~ RS6?!1j4{omzno&J{srsJK~Vqz diff --git a/samples/CSharp/WPF_WinForms/res/new.png b/samples/CSharp/WPF_WinForms/res/new.png deleted file mode 100644 index 953757a62f594c7591c7cdcfe8e51cdde41bfa45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|t_Kbr05bpo|KGb%L=DJd zED7=pW^j0RBMrzAD{+k|3C>R|DNig)Wk}CVGb+eSS1{5u&@;4++m``U!IJLjmJXyP ze>`8)3#3&%T^vIy<|HRDFdn-gps+DZvm@deLlP@PXQ*(8l9MyD!~+I~_)t;*^HWte Q0M#>iy85}Sb4q9e0N}kbVE_OC diff --git a/samples/CSharp/WPF_WinForms/res/occ_logo.bmp b/samples/CSharp/WPF_WinForms/res/occ_logo.bmp deleted file mode 100644 index 443a7de612f859ebaf3530285e81851b7d8db3a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58456 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 I-~RUh1H>Jzy8r+H diff --git a/samples/CSharp/WPF_WinForms/res/tool_color.png b/samples/CSharp/WPF_WinForms/res/tool_color.png deleted file mode 100644 index b37ad7d4803fb6d71ae6e7cbcf260f776c4453a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DVB6cUq=RpjeRx011AId3dtTp zz6=aistgPb%?u1b{{!h43=E|P3=FRl7#OUkGcbtfPhUCn3Q+AbPZ!6KiaAMt{{OdU zR%K9Vh;U$0R#rZ_j6pYz7Zv2sjil zOHE)o_=ZhIP(fOZrMH*YLC=W~Xxuj@2Zq2L1_uViCL>|hN=AhS3C**;42*0Hv4%<- U?-ri>2Xrxmr>mdKI;Vst0Oih3KL7v# diff --git a/samples/CSharp/WPF_WinForms/res/tool_delete.png b/samples/CSharp/WPF_WinForms/res/tool_delete.png deleted file mode 100644 index aaab07fc9f50343e56c4641bc2832565cb1b9462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!OXzGxOP>4HvRkCUhQgo^*4jS|kD-x0v|#r4JqhhrQ53Oq=2|X)s+Vi|kL$z4_f6BCzuxGd{&AAt6REBD sf;--AKXq;YMpK|9_IyVVD2R_;=c_O5jcqD+Enh^0qvCnY~Y9HFYP7q@> zO`6~x!L0!_*kYWri}9H#$|(hSMN%O2aR&v0Rz<=Bnn^&%r4ZYnE hMZ`C?-}XC)=nqXChcA&EM*#o;002ovPDHLkV1jG{c<=xK diff --git a/samples/CSharp/WPF_WinForms/res/tool_shading.png b/samples/CSharp/WPF_WinForms/res/tool_shading.png deleted file mode 100644 index 6bb9dc46ded842e9b335a4a9ca8138e6e46b801b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~q!3HGX7W?Z1DVB6cUq=RpjeRx011AId3dtTp zz6=aistgPb%?u1b{{!h43=E|P3=FRl7#OUkGcbtfPhUCn3Q%pgr;B4q#hj!+|Nq-F zt1>7wL~P(RGc!vv-MVkzJi%BVg$4-+J%?kwyu2@*3V0?ui?VPiEHZs;#G=qJ!(i_H zhRgeJJYitsQ095{TDm~0$(K)|VFR0zhvG({Q3iV)v=}%Px_EIBlZ_l043kdxE=f^q cU|?oAQNC34y-L7&ptBe}UHx3vIVCg!0Cd_&#sB~S diff --git a/samples/CSharp/WPF_WinForms/res/tool_transparency.png b/samples/CSharp/WPF_WinForms/res/tool_transparency.png deleted file mode 100644 index 6b42536eae88dde9b795c9e0e13dfc42dcf6fe9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmVQF$8KVp^w@1&pN0kn+;u+GQf3&y+;6HcwYIHmN=JZe z4uZ*<0a4>UM)~A)gAIs=R1!eHF!ZGmO1ag*XIS%;Jlz4JgNt~@nOG!}%2mB+V>EaktF=uIzBi{i9j^c^` z_e&TzOLB)fO#iw>)QhomW_QCW=2n7gN6X!wIXQ`7OM$N zx;<;fjxU8v5_pA$+_^661T&i**!DteiCoFdbxr2%`HKRlriu!Q+}vom?m#|!WJ1eZ mIXmu@`$@lJ3uEO1_ApO4lKy2yP)R+|F$|urelF{r5}E)A4nuJO diff --git a/samples/CSharp/WPF_WinForms/res/view_axo.png b/samples/CSharp/WPF_WinForms/res/view_axo.png deleted file mode 100644 index c9a922618074d064b82a385eec3fd1fc0e95f05b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmV+h0r~!kP)@PmEz=ECRADD%H4*&oF M07*qoM6N<$f^sKy+yDRo diff --git a/samples/CSharp/WPF_WinForms/res/view_back.png b/samples/CSharp/WPF_WinForms/res/view_back.png deleted file mode 100644 index 0798f529387b5f54b8399c6cbd644b77125687a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gn7C+hE&W6?YYR?;K1RmeVws@Ic1XZ&cErC7-<7ih3=n&$O8-AbydZPvd1h4VK1=GLcmtkzf;be3Jl Wo1>Y@*B}>Y1B0ilpUXO@geCy{=uV9Q diff --git a/samples/CSharp/WPF_WinForms/res/view_bottom.png b/samples/CSharp/WPF_WinForms/res/view_bottom.png deleted file mode 100644 index c7cfdc208aa04cd5f0109df2d262083e1b71de62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gn7C+hE&Xn?QP_22;gv;|CC|t!Q-4Vj)(rHd+Bmmx%k`qi+IeD z-PX$H6H&Nc^d3{mM+M_uz3yL^dS~TaGn&aPA8*1PC>Le_LomDNXXT9>-6wu$yyBJO WlFzshE?T;J_^FaAHf7qhq6^A*XP{?j8@De5 zs6yA%#WAE}PI7_+Gj~Hk-$7Om#{+!_dmA}TmWih@O1TaS?83{1OT?)Gj{+0 diff --git a/samples/CSharp/WPF_WinForms/res/view_fitall.png b/samples/CSharp/WPF_WinForms/res/view_fitall.png deleted file mode 100644 index 21d2f423ef4acbf4380ff497084e7fb206037100..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sKn{O^Pl)S*0|y!!82HV0oYtJyeg`d=T#E!A>Kj7jX5<^IG- zWuF9VJ&8BQ4WU+a-=k0smdMUac*xWgB?+c&Q#}%=uzu8aq Wv#}d9=CuH=VDNPHb6Mw<&;$Ud^G!kk diff --git a/samples/CSharp/WPF_WinForms/res/view_fitarea.png b/samples/CSharp/WPF_WinForms/res/view_fitarea.png deleted file mode 100644 index f20f5c0554ffdad417e9c95fccd492044ace89bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|S`u&0Y-NX4Awga&42g)k;3H8wUqHieUWIvg`qo0*xLg_)h%*`3*$otfF4 z&ofQ1TDFuYQ9EpHV!(rh3kd-M2@etiE--A|;ke3(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7M0>h8hE&Y)?Y+p`V8G#W{uX0^xI;;UT4_UF$^V%)8`Sn5cq+Jq zp@l1~sw^j`_to4Oq35mB&KQVrKY8Z9pY!dPr+HnTJ1Z0(rJdsMJpbXK8uODC*PR9K c-3$J~n&8hKB9R!|3bcm7)78&qol`;+0Em)S00000 diff --git a/samples/CSharp/WPF_WinForms/res/view_glpan.png b/samples/CSharp/WPF_WinForms/res/view_glpan.png deleted file mode 100644 index 02a9c1cb8de8322db45bfbef3204c0ae32a84d92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|TxgQtsQNX4AwgoJ{GganR+2F7rOw337g35<$v6J(f`Su_n=IvPAU#Cs%J tSR0Ob>9VmkvZ*n09Q+W(t;QI_#PDz?>zd8|Iv~d~c)I$ztaD0e0syz^Hqrn9 diff --git a/samples/CSharp/WPF_WinForms/res/view_left.png b/samples/CSharp/WPF_WinForms/res/view_left.png deleted file mode 100644 index 7d25b6ab2f8b8f778ac779da4db96d5a8d9f5756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7gm}6*hE&W6?P=s}FyLW1e}U1fkipS>1+&PRf5tyE1->er|LiHZ z;y{;Yx0;W4{yUvx9tUeDi0HN)&s`XLvSi!D`1rIJ6XmlyZmoKff1`T;x$oZ|vZ?K7 V-?`&Y+ialu44$rjF6*2UngIO(RGR|DNig)Wk}CVGb+eSS1{5u&@;4+ z+m``Uq2cM`7*a7OIpF{^i-bd~Nb&JX|sgW&tgYj0}<9EH3;v S_cH`Pkan1T+sEd~k@tDPaMF snn^>8P{+}&O^zxI9?hI#>?@QQ)XuT#9Aufl8)zDXr>mdKI;Vst02TW;XaE2J diff --git a/samples/CSharp/WPF_WinForms/res/view_right.png b/samples/CSharp/WPF_WinForms/res/view_right.png deleted file mode 100644 index 5540220cfa7e1f7a8b5258efe3bef0d1a70b2263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK71bezThE&Y)^>yTGFyP^y&A-8Z#Xbj#d#<1Vo3GuNEOkrZQVY`# z29aKu1Fr5mFF&zOeB9T{BDbmdKI;Vst0DV4DIRF3v diff --git a/samples/CSharp/WPF_WinForms/res/view_rotate.png b/samples/CSharp/WPF_WinForms/res/view_rotate.png deleted file mode 100644 index 7e5d013b9f5a84d5ac7d0379496e2588f6a5f059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$l(d_32{Ae;K2X?3=ItpK!J$? zSG$1}V@Z%-FoVOh8)+a;lDE4HvmlSpCm=_x#5JNMI6tkVJh3R1Aw4tAs30$0!AQ?Q z&(Jn*Uj|S`u&0Y-NX4Aw1coNIHdY=v1vY24W)^1lW-(@FcJ}7UjLgZ*9v7M#4>}7j z>2hs6n9SI5@YI0=ER!BZ^E@%q(CB7jwQV@W8RMXLnM;8&giA$2g5k?Mu9nFjw?Iy2 N@O1TaS?83{1OP9;KPmtK diff --git a/samples/CSharp/WPF_WinForms/res/view_top.png b/samples/CSharp/WPF_WinForms/res/view_top.png deleted file mode 100644 index b788de36fb11bef11761670ac5ceda6892d5e7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|);9XJ`O&|Nn1j z0MS=oah(NHj3q&S!3+-1Zlr-YN#5=*tUvN!9tU#7N?apKg7ec#$`gxH8PYS;j0*D7 z6^!%@^bBp|_GJK7M0mP5hE&YS^*tzfz<}e>3kF}c6PAweHZ}CWvk$(wZ2u<#Kaqw* zO=d5SIXXNJJ!_lGEFv=@=395$hf}p|ocC{7PrbT)j?VkVM$aAz>n2M+iq9xBK9$$> ahr!_{$FWT{v)h1nFnGH9xvX(-?sKn{O^Pl)S*0|y!!82>SW;nlh^!(-7IGw3; zCi9EJX`97f+%|n0_TaH`^vZV^{HGoZ?fUmb;cjl+TRD>lr*1D4HlM$R)k68Gp)$~9 N22WQ%mvv4FO#sFsO!@!- diff --git a/samples/CSharp/WinForms/AboutDialog.cs b/samples/CSharp/WinForms/AboutDialog.cs deleted file mode 100644 index 73c98a726b..0000000000 --- a/samples/CSharp/WinForms/AboutDialog.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace IE_WinForms -{ - /// - /// Summary description for AboutDialog. - /// - public class AboutDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label myVersion; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public AboutDialog() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - // - // Create OCCT proxy object and get OCCT version - // - OCCTProxy t = new OCCTProxy(); - t.InitOCCTProxy(); - float version = t.GetOCCVersion(); - this.myVersion.Text = this.myVersion.Text + version; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutDialog)); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.button1 = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.myVersion = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // pictureBox1 - // - this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(59, 64); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(196, 102); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(96, 248); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(128, 24); - this.button1.TabIndex = 1; - this.button1.Text = "OK"; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(16, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(288, 24); - this.label1.TabIndex = 2; - this.label1.Text = "Import/Export Sample,"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // myVersion - // - this.myVersion.Location = new System.Drawing.Point(16, 32); - this.myVersion.Name = "myVersion"; - this.myVersion.Size = new System.Drawing.Size(288, 16); - this.myVersion.TabIndex = 3; - this.myVersion.Text = "Open CASCADE Technology "; - this.myVersion.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label3 - // - this.label3.Location = new System.Drawing.Point(24, 168); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(280, 23); - this.label3.TabIndex = 4; - this.label3.Text = "Copyright (C) 2004-2013, Open CASCADE S.A.S"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label4 - // - this.label4.Location = new System.Drawing.Point(8, 200); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(296, 24); - this.label4.TabIndex = 5; - this.label4.Text = "http://www.opencascade.com"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // AboutDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(312, 285); - this.ControlBox = false; - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.myVersion); - this.Controls.Add(this.label1); - this.Controls.Add(this.button1); - this.Controls.Add(this.pictureBox1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutDialog"; - this.Text = "About Import/Export Sample"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - private void button1_Click(object sender, System.EventArgs e) - { - this.Close(); - } - } -} diff --git a/samples/CSharp/WinForms/AboutDialog.resx b/samples/CSharp/WinForms/AboutDialog.resx deleted file mode 100644 index 0406147f1f..0000000000 --- a/samples/CSharp/WinForms/AboutDialog.resx +++ /dev/null @@ -1,1167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - Qk1W5AAAAAAAADYAAAAoAAAAwgAAAGQAAAABABgAAAAAAAAAAAAgLgAAIC4AAAAAAAAAAAAA//////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////AAD///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////8AAP////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////wAA//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////AAD///////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////8AAP////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////wAA//////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - AAD///////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////8AAP////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////wAA//////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////AAD///////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////8AAP// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////wAA//////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////AAD///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////8AAP////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////wAA//////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////AAD///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////8AAP////////////////////////////////////////////////// - /////////////////9Px9szm7P/8/PT19fr7+/////////7///7///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////wAA////////////////////////////////////////////////////////////////////qerz - NZam19ve5ebn5ufp+Pn5/////////////v////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////AAD///////////// - ///////////////////////////////////////////////////////k/v9FpbGAoKnh3d/R1dfp6ev+ - /f7////////9//////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////8AAP////////////////////////////////// - //////////////////////////////////z//37U3zx8is7M0c7O0Nvc3vf3+P7///7///////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////wAA//////////////////////////////////////////////////////// - ///////////+////v/P7KIqYjaar0M7Rzc/U6err//////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - AAD///////////////////////////////////////////////////////////////////////7j//9L - tcNMeoTJy83FyMva2t35+fn////+//////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////7///// - /v////7///////////////////////////////////////////////////7////+/v////////////// - /////////////////////v/+//7//v////////////////////////////////7///////////////// - //7////////////////+//7+///////+///////////////////+//79///+/////v////////////// - /////////////////////v/////////////////////////////////////////////////////+//7+ - //7///7////////////////////////////////+///+///+///+/v7+/v7///////////////////// - /////////////////////v/9/v/+/////////////v7//v7////////////////+//7+/v7///////// - //////////////////////////////////////////////////////////8AAP////////////////// - ///////////////////////////////////////////////////+/vn+/5bm8Cd4h52pssjHysnNz+zs - 7f7///7///////////////////////////////////////////////////////////////////////// - /////////////////////////////////9ve36uvsa+ytenr7P///////////////+vr7bO1t7CytbCz - t6+ytbCztrCztrCzt7Cztq2ws7y/w/j6+/////7//v////39/c3O0pmcoISHjIyPla+yturs7f////7+ - /v7+/////87R06uusLW3uvT19f///////////////87R1Kyvsba5u/Dy8////9zg4qyvsLW4ue7u8P// - //////7//////8nMza2usLG0ue7w8v////3+//////////T19r7CxZSXnIOGjIyPlK6xtebn6f////// - /v///////////8THyq2wtK+zt7G0t6+zt7CytrCztrCzt6yws8/R0v////3+/////////9/h4qmssIqN - koWHjZaan8THyfn5+f////////////7+/v7+/v////////Hy8r2/wZOXmoOIjIyQlamtsd3e4P////// - //7////+///+/v///////////8zQ0KqusLW3u/X09v////////////////////////////////////// - /////////////////////////////////////wAA//////////////////////////////////////// - //////////////////////////////////7/1P3/PaOzU3uEwsXIv8TI29zf+/r6//////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////o6erKjAzMjc7x8nL////////////////x8rOOj9DMzg8MzY6LjI3LzM4LjM3LjM3LzQ4 - KCwwTlFV8PPz////////7O3tfoSHPUFFLzQ3LTE1LjM2NDg7WFphvcDD////////////f4OHKC0xQ0ZM - 4OHj////////////////gISIKS4xQ0dM293f////p6quLDA0QERI0NLV///////+////3uDiRkxQMDQ4 - NzxC1tnb///////+////z9DSZ2lvOD5BLzM4LjI2LjM2Mzk6U1dcr7G1/////////////v7+Z2twLzQ3 - NDk9MDQ4LzQ3LzQ4LzM3MDU4JiwvfoKG/////////Pz9n6KlSk9TMjY6LjM2LTI1LjM3OT5BcHd73t/g - ///////////////+////v8LEXGNmNjxALzM3LjE2LTQ2Mzk8SU1RgoaK2Nrc///////+/////v7+//// - ////f4OFJy0xQERJ4uPk///////+//////////////////////////////////////////////////// - ////////////////AAD///////////////////////////////////////////////////////////// - ///////+//////7v//951uMoa3mnsbS9wcTMztHt7+/+//////////////////////////////////// - //////////////////////////////////////////////////////////////////////+pq64zODw7 - P0PKzc7////////+/v7////KzM9CRko6P0JLT1NbX2NYXGFXXF9ZXWFZXWFSVltydXrz9fX////w8fJr - bnMxNjo2PD5PVVhpbnJbYGU6PkMzODxBREnJy83///////+Gio4wNTlKTlPg4+X////+/v7///////+E - iI0xNjlLUFXe3+D///+srbIzODtHTE/U1dj////////8/P16foE0OTw7P0NARUrY2tv////////MztBI - TFAyNzo3O0BTV1pscHReY2c9QUc0ODw2Oz6ipqf////////+//9ucXc2Oj1CR0lXXF9aXWBYXWFYXGFY - XWBQVVqYnJ/////7/PyQk5Y0OD00OT1AREhhZWdrbnNPVVc2Oz4zNztVWV3g4uP///////////+0uLk+ - QkcxNjk8P0JaX2Jpb3JbYGQ+QkY0OTwyNzpNUVbS1Nb///////////////////+EiIowNThITlDj5eX/ - ///+/v7///////////////////////////////////////////////////////////////////8AAP// - //////////////////////////////////////////////////////////////////3//v/+//7//7j0 - /iuOnmqIj8XEyMLFyODi4/39/P////////////////////////////////////////////////////// - /////////////////////////////////////////////////6mqrzM3PDo/RMrMzv////7///7+/v// - /8rMz0BFSTY6Ppean/Hy8+3u8O3v8O3v8e3u8O3t7/Dx8v3+/v///5OWmjE0Ozc8P36DiOHi5P////Hx - 86Smqj9DRjA1N2Fma/P09P///4SIjDE0OUtPU+Dj5f/////+/v///////4OIjjI2OUtQVd7f4P///6uu - sTM5PEhNUNPV2P///////7q9wDg+QTxAQzw/Q0BESdra3P////L09GFlajM4Ojg8P46RleXl6P////T0 - 97C0uEVLTjQ4PENHTNbY2v///////29yeTE1OlxgZt/i5u/w8uzu8O3u8e7v8ezu7/X19v///8HDxTk9 - QTU6PVFWWb7Cxvb2+f///+Hi5IGFiTg8PzA1OXl7f/z7/P///+Hh5EhPUjQ6PkZJTq2wtPDw8v////Dx - 88LEx2RpbDk8Pjo+Qra6vf////7+/v///////////4SIijI1OUlNUeTl5/////////////////////// - /////////////////////////////////////////////////////wAA//////////////////////// - /////////////////////////////////////////v///v/+/v7/////6P3/Zs/bJWtzprK0wsLI0dPX - 8vT0/////////v////////////////////////////////////////////////////////////////// - ////////////////////////////p6uuMzc7Oz9EysvO//////////7+////yszRQUVLNTk9oKSm//// - ////////////////////////////6OnrVFdcMjc6WV5k9vb2/////v//////////f4KGKzE1UVZb3N3f - ////hYmNMTU6S05S4ePl////////////////hIiNMTY4Sk9U3t/h////q66xNDg8SExQ1NXY////8PLz - Wl9kNjs+Oz9CPD9EQEVJ2drb////v8PENjs+Njo/eXyA/f7+////////////////q6yvNjxAMTc7kJOY - ////////bnJ2MTU4X2Rn8fL0////////////////////////////dXh+Mzg8PUFGv8HE/////////v// - ////+fr6ZGhsMzg8QUdM1tnb////lpmdMjc7OT5BpKir////////////////////tbe6Njs/PEFGvL7B - /////v7+/v//////////hIiLMTU6SU1S4+Pn///////+//////////////////////////////////// - ////////////////////////////////AAD///////////////////////////////////////////// - /////////////////////////v79///////5//+t9PsiiZVui5LEw8bCxMff4uP8/f3+///9///+///+ - //////////////////////////////////////////////////////////////////////////////// - //////+nq64zODs6P0PKzM7////////////////LzNFBRko1Oj2ipqj////////////////////////+ - ///////O0NE6P0MzOTyQk5n////////////+/v7////X2dqtr7Lg4eL7/P3///+EiYwwNTlMUFTo6+z/ - //////////////+IjJExNjhMT1Td3uH///+qrbI1OTxGS1DU1tn///+WmZw0OD0+Q0VgZGk+QkVARUnZ - 29z///+QlJc0ODs7P0PDxcf////////////////////u7u9OU1c0OTxkaW33+Pn///9ucnYwNThdYmfu - 7vH//////////////////v/////y8vNRVFkzNztgZWn09fb////+/v7///////////+qrbEzOTszNzyw - s7X+//9oa28wNDhSVlrp7O3////////U1tmfo6inqq99gIU5PUE7QUa7vcL///////////////////+H - i44wNjlJT1Ln6ev///////////////////////////////////////////////////////////////// - //////////8AAP////////////////////////////////////////////////////////////////// - ///+//7//////////97+/1jF0zFse7O4ub/AwsvP0+/v8f////////////////////////////////// - /////////////////////////////////////////////////////////////////6errjM4Ozo/Q8rM - zv///////////////8vM0UFGSjg9QG90d6Snq56jp56ipp6ipqChpp+jp+vs7f///7W5vDQ5PTQ4PKyv - sf////////7+/v/////+/v///////////////////4WJjDI4O0RITJGVmaGlqZ+ipp+jpqGlqWNnazU6 - PUtPVN7f4f///6qtszQ4PEdMUNvd39vc3kNISzE2OXR3fa+0tzY5PUBFSdrb3P///3t+gjE3OklOUtja - 3P////////////////////f3+GptcjM4O1JWW/Dx8f///25ydjA1OV1hZ+7u8f////////////////// - /////9ze4ERITDE1OX2AhP///////////v///////////83O0Ds/RDM4OpqdoO3v8VVaXjE1OGdscf// - /////////5yeoigsMTI3OzM6PDY7PzY9Qbe6vv////////7+/v////n5+mpvcjQ4Oz9ESMfKzP////// - /////////////////////////////////////////////////////////////////////wAA//////// - /////////////////////////////////////////////////////////v///v///////f/////+9v7/ - ofD6IImZboWRwcLHwcLF3uDi/Pz9//////////////////////////////////////////////////// - ////////////////////////////////////////////p6uuMzk7Oj9DyszO////////////////y8zR - QUZKPEBDNDk8KS0xKS8zKy8yKi8xKS4wKi8z0dPU////sLK2NDg8Mzc7trm7/////////////v7+/v7+ - /f/+/v///v7+////////hYqONjo+PEBDLTE0Ky8zKi4yKi8yKS4zNjo+OT1BSlBU3t/g////qq2xMzk7 - SU5S2dvgenyAMTY5QEVJ1tfaur3ANDg8QEVJ2drb////eHt/MDY5TVJW3d/h//////7///////////// - +fr7cXZ6Mjc7TlNX7/Dw////bnJ2MTY5XWFo7u7x/////////////////v/+////1tjbQkdLMDU4hYiM - ///////////+////////////1NXXQERJMzY6lZmd5ujqUVZaMjQ4b3R5////////////tLe7WV5jYWZq - Y2ZrY2ZsYmdrxsrN///////+////////q66xODtAOj9CNDk9aW1w8/T1//////////////////////// - ////////////////////////////////////////////////AAD///////////////////////////// - ///////////////////////////////////////////////+///9//7////f+/9ez9wlaXSgrLK+wMLO - z9Hu7vD////////+/v7///////////////////////////////////////////////////////////// - //////////////////////+nq64zOTs7P0PKzc/////////////////LzNFCRko6P0NUWV5vcnZrb3Jr - b3NqcHRrb3Nrb3Te4eL////CxMY2Oz8zNzunqa3////////+///+//////////////////////////+F - iY00OD1AREllam5scHRrb3Nrb3RucnVPU1Y3Oz9LUFTe3+H///+qrrIzODxQVFiPkphBRUkyNjqMj5P/ - //+xs7Y0ODxARUnZ2tv///+ChYkyNzpFSk7U1tj////+/v7////////////29vdjaGwzODtWW2Dy8/P/ - //9ucncwNTlcYWbu7vH////////////////9/v7////l5ulHS08xNjl4e3////////////7///////// - ///Hycw4PEEyNzqfoqX09fdYXGAwNThnam/////////////9/f38/f38/f3////////+///+//7///3/ - ///////k5eZNU1Y3PEBESU0/REg1Oj2jpqj///////////////////////////////////////////// - //////////////////////////8AAP////////////////////////////////////////////////// - //////////////////7+//3///////7//v///vj+/qv1/SeWo19/hcLCxMDCxt3e3/r6+v7///////// - //////////////////////////////////////////////////////////////////////////////// - /6errjM4Ozo/Q8rNzv///////////////8vM0UFGSjU6Ppyfo/v8/fj5+vj5+/f5+/j5+fn5+f3+/v// - /9rb3UJHSzI4OoGEif///////////v///////9vc3tXW2vT19f39/v///4WJjDA2OktPU9/g4/n6+/j5 - +vj5+vr7+4WIjjE2OUpOVN3f4v///6qssjY7P0BFSUJGSTY7PlNWW+nq7P///6+xtTM5O0BESdja3P// - /6GlqTM4Ozg7P7W3uf////////7+/v7+/v///+Pk5UdLUDQ5PG90ePv7/P///25ydzA1OF1hZu7u8f// - //////////7///7+/v////n5+VxfZTI3O1ZbX+3u7/////7//////////////5mdoDM4OzY6P7u/wf// - /25zdzA2OUxQVOLk5v///////////////////+zs7eTn6Pj4+f79/v3////////+/3+ChjM4Oz5CRbi8 - wHB1ejA2OkpNUtze3/////////////////////////////////////////////////////////////// - /////wAA//////////////////////////////////////////////////////////////////////// - ////////////////////6f3/adbkH216lqerwMHEyszO7Ozt/v///////v7+//////////////////// - /////////////////////////////////////////v//////////////////rrG1Mzg7Oj9C0tTW//// - ////////////yszQQUVKMzk9o6ep////////////////////////////////9fb3aGtvMDY4SE1R3N3f - ////////////9PX2ZGZrODxBY2hv4+Tm////homMMDU5S09U5ubo////////////////hYmPMjU4S1BU - 3t/h////q66yNzxBPUFEOz9COD1AsbS3////////rrG0Mzg7QERJ2dvc////2NrbPkNHNDo+XmNm7e7w - /////////////v//io6RNTo+Mzg9pqqs////////bXJ4MTU5XWJm7e7w/////v7+/v////////////// - ////kJOWMTU6NztAoaSn////////////////5eboUVZaMTY5TlNY5ujp////q6+xMzc8NzxAiI2Q/f7/ - ////////////+Pj5bXBzP0RJZ2tw4ePk////////v8HDOT1DMzc6eHt+////xsrNO0FFMjc5eX2A/Pz8 - /////////////v///v//////////////////////////////////////////////AAD///////////// - ///////////+/v7////////////////////////////////////////////////////////+/v7///7+ - /v+39v83o7NHdH69vsLAwsbY2dz3+Pj////+///////+/v7///////////////////////////////// - ///////////////////////W2dy7vsG+wcXAw8iGio82Oz87QESeoKXCxMe+wMO/wcT5+fnNztNBRUs1 - OkB/g4fCxcm+wMO+wcS+wcS+wMS7vcHS1Nj///////++wMM6P0Q1OTxWWmCwsrbc3eDFyMtzdnw3PUEv - NDdtcXb3+Pj///+Hio0xNjpKT1Ph4uT///////////////+Eh40xNTlKT1Te3+L///+rrrE3PD89QkU0 - Oj1zdXz6+vv///////+vsrQ1ODxARUnY2tv////8/f2Hio8xNjo2Oz1kZ224ur3c3eDIyc6BhIo8QUUy - NzpeYGTs7O////////9tcnYwNTddYWbu7vH//////////////v/////+/v7////e4OBOUlY0ODxARUmL - j5LMz9La292xsrZaX2E3Oz8zNzydoqL////////y8/NkaG0zNzs6PkJ8gIPCxcna3N/Exsl1eHw5PkEx - NThjZWj19/f////w8PFcX2MzNztGSk/V19r///////99gIQ0OTw3PEG4ubz///////////////////// - //////////////////////////////////////////8AAP////////////////////////////////// - //////7///7///////////////////////////////////////////7//v///ur+/4Dl8Bp0goKZnr/C - xMfIzOPl5vv8/P////////////////////////////////////////////////////////////////// - /3x/hiowMzI3OjI4OzU5PTg9Pzc9QDU5PDM4OzI2OjM6Pt/g4NDR1TxBRDU6PjY6PjQ4OzI3OzM4OzI4 - OzI4OikuMnJ1ev///////////5+jpjg9QS8zNzM4PT1BRTk9PzI2OTI2OlBUWNvd3v///////4KFiSsw - M0RJTeDh5P/////+/v///////4CEiSswNEVKTtze4P///6irrzI2OjY5PkFGSdXW2f///////v///6yw - sS0yNjo/RNfZ2v///////+zu72tvczE2OjE1OzQ5PT5DRTc9QDA1ODA1OFJVWtPU1/////////7//2ds - cSovMldbX+3t7/////////7+/v/+/v///////////////7/Bw0NITDE1OTA1ODo+QT1CRjQ5PTA1OTQ5 - PYaKjfn5+v////3//////93f4FpeYjA0Ny80Nzc8Pz5ERzg8PzE2OTE2OUtQU9DT1v////z8/Y6SlC0y - Ni80OJGUlv////3//////9vc3kNITC0xNFFWWubo6f///////v////////////////////////////// - /////////////////////wAA/////////////////////////////v///////////////////v79+vz8 - +/39/v///////////////////////////v///v///v/+xfr/R7vML2l0prG2wcDDy87R6+3u///+//// - ////////////////////////////////////////////////////////////kZWZS1BVUldbU1hbU1dc - U1dbU1dcU1dcU1hcUldaVVpe5OTm1dfaVlpeUVVaU1hcU1dbU1dcU1dbU1dbU1ZbS09UiIyP/////v/+ - ////////u7/Ca25zSk9TQkZKQ0hNTlNYgoSI3+Hi////////////k5aaSExPX2Rn5eXn//////////// - ////k5aaR0xQX2Jn4eLl////s7a7TVJWTVFVnaGk/////v//////////ubu8SU5SVFld3N7f///////+ - ////8fLzmpygWl9iRktQQUZLRUlNVFddiIuQ4ePk////////////////jJCUXWBjfoKH8fLz/////v// - //7+/////////////////v7+////09bXd3t/TVJXQkhMQUZJSU1RZWdsr7K1+/v7///////+/v///v7/ - ////6evsjpKWVVpeRUpPQUZLREhNUFVafICC2Nnb////////2tzeV1tgTVFVZWht7Ozt//////////7+ - ////mJygTFBUSU5UnKCj//7///////7///////////////////////////////////////////////// - AAD////////////////////////+//////7/////+vvy8PPm5+rk4+Tl4ePr5ebs6ens7u7z9/b9/f3/ - ///////////+///9/v7///70/f+Z8/0olqZLcny2ur/AwsLV2Nr19PT///////////////////////// - ///////////////////////////////+///+///z9fXq6+7q7O7r7O7r7O7q7O7r7O/r7O/r7e/q7O7r - 7O78/Pz5+vvr7O7q7O7q7O7r7O/r7O/r7O/r7O/r7O7p6uzw8vP///7+/v7+/v/////////+///d3+HK - zM/Oz9Pm5+r////////+///+//7////x8/Xq6+vr7e/7/P3///7+/v7+/v7+/v7y8/Xo6evt7vD7/P3/ - /v729/jp6+3p6+78/f7////////9/v7+/v739/fq6uzr7O37+/v+/v79//7////////////y9PXV1tnJ - y8/R0tXt7fD////////////+///+/v7///78/v/9/v38/v7////+/v/+/v7////+/v7////////////+ - /v7////////////k5ujO0NLKzM7Z2937/P3////////9//7+//7//v7+///+/v7////////w8PLR09fJ - zM/P0NPo6ez////////////////y8/Tm6Onq6+309fb////+//7//v7+/v7////8/f7q6+zp6uzq6+z9 - /f3///7///7///////////////////////////////////////////////8AAP////7///3///7///7/ - //7//////+j3+6fn8XTW42DK1lu8yFu1wGKttoettq67wNHN0NzY3OHi4+/v7/n7+v/////////+/v7/ - /////+P5/3fi8Bt4hXCHkbu+v8HExd7g4fz7+/////////////7///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////7///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////wAA///////+/f///f7+///////+1fb9duP1MNXqE8/i - E9PpKdToK8/jLcPVKKy6NJWhYZeilaewv8HG0dHT3dve6Orr9/n5/v///v//////+/7+vPf/T8fZI2Zz - lKKnuL3BxMnN5+jq/v/+/////v////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////AAD///////7//////v/+//7T+Pxw5fUuxdQytcNjucd/y9mH2OWB4e9r4/Jf3vJL - 1OcruMkhlqNFh5CKoKS/wMTMz9DZ3N3s7e/8/Pv////////n+v2b8P0qo7E9a3Wwtbm/vcHJ0NLt7u7/ - ///+//////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////8AAP// - //////3//////vT8/5Hq+S2ou06Xoae4vsjDx9fT1Ovh5e3s79zu88Pt86Ht9Xjm9VXa7i61xySHlFmG - kZmmrcfGyNHR1ODi5PX3+P///////9n5/3rn8x6GlVt5gba2vLzBxdfZ2/f39/////7+/v////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////wAA/////////v/+//7/0Pj/TL7O - QnqEvbzAyMbH1dbW7O/w/vz9//////7///7+/Pv94PX5su74iOn7V9jqKau8JHiFbYqSuLu/ysfN2djb - 7vDw/f79/P//yPj+Y9jmHHF/co2UvLzBvsTI3+Dj+/v6//////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////AAD////+/v7////1/f+N6fUihJORn6TJxcjHzM/o6Or///7/ - /////////////////////////v3j+Pqw7/l25/lJyNkegpBKd32mq6/Cw8fL0NTk5ub8+vrw+/609P9B - wNAlZ3GWn6W8u8DEx8vj6Of9/f7///////7//////////v7//v/////+///////+///////////+//// - ///+/////v/////////9///////////+///////+///////////////////////////////////////+ - /v7//////////////////////////////////v7+///////+///+/v7////////////////////+//// - ///////+//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////8AAP///////v///+D9/2bN2y90gbC4u7+/w9DT1fPz9P////////////////////////// - //////////v9/sv0+pTt+lrb7CGbqi1weIybosS/xMjKzOPj5Pn39uL4/ZPu/C2mtDVnc6mtsr28wM/P - 0uzt7v3+/v////7+/v3///3+//7+//7+/v7///7///3///7///////7///////////z///3///7///7/ - //7///////7///7///7///3////+/v/////+/v7+/v7///////////////////////////////////// - //////////3///7////+/v////3//v7////+/v7+/v////////7///z+/v////7+/v////7///7///// - //////7///7///////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////wAA/////v// - ////3v3/X8DPOnJ/tbq+vb/D1NbY+Pj4/////////////////////////////////v7/////////5/v9 - s+/7duf3LLDBI2p2g5KXvr7Bx8fL3t7f8fHz2Pf7guv5I5WmQ253qrO3vL7D0NPV7fDw/////////f/+ - /f7+/f///////////////////////v////7+/////v///v///v///v///////v/+/v/+/////v////// - /////////////////////v///////////////////////////////////////////////v7//v///f7+ - /f7+/v///v///v7+/////////////////////////////////////////////v///v////7+//////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////AAD//////v////7j//9fw9E3b32ytry8 - v8PT1dj4+Pj////////////////////////////+///9//7+///+///////4/P7C8/1+7Po1usodanaA - kJa7vsHAxsva3d/t8PDO+P5y5PQjh5ROcXuwtby/wMTU1tjy9Pb9//////7////////////6+fj49/f5 - +Pn8/f3+///////////+/////////////////////v7//f38+/v6+/r3+/v29/j29/f2+Pjz9fX4+Pj9 - /f3////////////+/v7////////////////////////////+///////////////+//////////////// - ///////9///5+vv29/f39/f59vjz9fb29/f9/f3///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////8AAP////7//////+n//2TJ2DRve661uby+wdHT1fX29v////////// - //////////////////7///7///7///7///7//////vr9/sz2/Irt+z3B0SBxf3OKkL24v8LGx9nZ2+bs - 77r1/13a5x14iWWFi7e5u73CxNTZ2/bz8/z9/Nv0+qzc4bTO1MvP1NXS1NrY2d/i4ebs7Pb29v78/P/9 - /P/7+v/39/Dx8uTm6NLc38/X2dnV19bW1tXS1dbS1tXV19fY29jZ29rZ2t/g4fHz8/3+/v////////// - ///////////////////////9/f35+PPw7+/q7O7u7/X49/7+/v////////38/Pj19Ozp6d/f397Y2tbR - 1dLP09DLz8/Pz9HV1d7j5Pb3+P////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////wAA//////7+////8///fNnnKnF8oa+xvr7Bzs/R8PHx/////////////////////////////v// - /v///////v/////////+////////2Pf+nfD9RMfVGm97bIiQvLq9v8LE1djX5+3xrPX/T9DiHXF+bYmP - ubq/wcXI3tvezu/1aeDxIMPULKa4Pp+tU5ujhZ+ptLO5zcTH1c/Q3Nja2t7itt/mgdbiYMzaUMbVQbzN - Qq67U6Grcp+llaKoqa+ypre9o7e/prO5tba8vbu+wsHD09PV5OPl7e/v+vv9/////f7++vr8+Pf49vX1 - 7u7xuuHojMTMn7O4uLe8xMTG2Nna4+fn5+fo5t/i4NjbvdTbjMvUf77Jc7vEbLK8eqOskaGor7S4uL3A - zNLU9vb3//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////AAD////+///////4 - //+d7fcifImFmZ/AwcPFyMzn5uf+/v/////////////////////////////////////////////+/v7/ - ///////+/v/g9/yU7/s8xtYZb35siJC7t727w8ja2dzd7fGo9P9KyNcabnt0jJG9urvFyszK9fqD6PU8 - 2+o30+Yty90tusoqnKpBjpx7q7hwwMxdx9VV0uI52+4n1ewp1uok2ewq1usz0eMnxNUlrLw3o7FEu8o6 - ytgxv9A3q7lGnqpan6pvnqWRoKatrrO+vcHKy87U1dfa3N7f4ePl5ufu7OzX7fJy4vMswtMsnalChpN6 - lJ2xrrfHvcHGx8mz0dmH2edT3Owu1ukuy94szeEvyd0puMgphJBgeoKrrK+2vb/Z2d37+vz///////// - ///+/v7///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////8AAP////7//////vz//8H6/ziaqld6gru+wL3B - xd3d3/r7+/////////////////////////////////////////////////39/v7//////v///tr4/ZDv - /jvB0h9odn+Ql726wb7Dxdnb29jv9J7x/UjI1iF1gmiEiLq5u7/W3Zjp9mvi9Fnf8kbg8jLd8DDW5zHG - 1yjI2yLU5yjX6y7U5jDL3TDJ20DK2UnM21HT5HTi8Hrp+FPf8DXT5TDY6zXb7TTW6SrX6TXR4i/E1Cev - vy2WoUeMlX6SmqCjp7O0t7+9wcjKzdDV193e4Nfz+Ibo9jLZ7DTS5iu5yCiVo0GRnm+rs3zN217g70zf - 8jnX6yvP4irQ4jDV6jLZ7THi8yK6yh9ibY+aoLu/wtXW2Pb19v////////7+/v7//v////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////wAA/////////v/+/v//4vz/YMXULGl0rbS4vL/B0dLV8vLy//////////// - /////////////////////////////////f///f7//f7+/v///////f/+3Pj9k+v6NLrJJGh0hpacv7rA - w8bH3d7e1+/zovL/S8zbHHWCZIGIt7W4s73DqM3XlNvoct3rT9vrXN7vb+L0XuDzSd7vPtvtMLrJTZKc - dZmfiZuppKqvsbq+v8vQyOTqlun5N9/uMtrrOtnqNcDQRbfGXtjnZuf4UuL0QNPkL7zLJZqtOoKRb4yR - n6WqtbG3v77Cw8fJ2u/0kOv3M9XoM9fqPN/xTdjrOMbYLsraO9rxQNToK7nLM6q4Ya+7gbbAkb/HlMbM - l9DXhcvWhK+4tb3Bz8/R5ebn+vn5//////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - AAD////+///9/v7///74/v+a6vQde4p9lp3CwsTEx8nk5uf9/v7///////////////////////////// - ///////////+///////////8///+///////+///b9/6N7/0vq7opZG+Uo6e3vMDJyMvk4eHc8/if7/5F - y9sdbnxyhou3tbjCubzFyMrR1tzP2+LQ4eXL6O6l6PN35fRW3vExwNMzdoJxen+hnZ+nqK3CwMfU09Tf - 6u2C5vM31OZk4fRQ3u8qrL5Ib3aDkJeIu8aE0t6I5/Vt5/ZJ2+wzvdAkmKc5iJFkjJOVn6Wyq6/N192n - 9P48zuE2p7hiu8pw4Otl5/gr3e8dxdYtp7dgn6igsLW9u77OxsnSzNHa1Nfe1tjh2tvd3N3d3uDl5un2 - 9/f+/v7///////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////8AAP///////v/+/f7//vz/ - /8/8/0KzwUBwere6vri/wtPV2fX19v////////7//////////////////////////////////v7///// - //////////7//////v7//tD4/nbn9ySaqD9rcaats7m6wdHS0+rp6trz95ju/D7F1h94hV6CirKzt7vA - v8rN0eXe4fDt7Pn19vT2+dLz+qHq+WXj9Cy1wiBocXuNkq2us7u7v9PX2Nn2+1jN2Vujs7Dj7ZPx/kHK - 3B5tdGp4faOfpayutb3I0LHd6JDl9HPm9k/c7jXF2COgrjSGkHGWoK7Ax63w+0PO3Sd0gHV/hJ2mrJPM - 1nXS4n/EzbXIzd3Y3efj5Ofq6+/x8vb4+Pj3+Pf19vT19vHx9fT29vv9/f////////////////////// - //////////////////////////////////////////////////////////////////////////79/v38 - /f////////////////////////////////////////////////////////////////////7///////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////wAA/////v/+/f///v//////7/7/hub0InWEf5WXv8DD - wMfJ5OXn/v7+/////v///////////////////////////////////////////////////v///P/+///+ - 9v3/vfL9aePwG4GPVXV9s7a6v7/D1tfY7O3v1/P7me/7TtLiGYeUTHN+p6itv8HEys/P4OPl9fX1///+ - ////6fn7u/D6eev4Kqu7MGRvlJyjr7O3ytDV3Pz/VL7QPmVoj3ZxttTZgvT+JaCtNVxignFtn5SRyMLE - 6Ofq5e3xze3yoez1duz8UeP2OcfWJ7bJQNDfbOLzQNblJHSBXXN5o6Kmvbu92dfc9/Hx//3++vv8+fn4 - +/v5/Pr6+/j4/v//////////////////////+PX15NXSz7OsyKecyqWczayh2Ly2697d/Pr6//////// - //7+/f7//v///////v/+/////v/+////////+vb15dTQ0LKpyaOXvpKJu5GGw5yPzKuj487K9/Hv//// - //////////7++ff3+vj4+/n5/////////v/+/v/9///+/v///f///////v7+/////////v//+PLx9vLx - 9/Py+fb0/v38/////////v//+PTz+PPz+PP0+PX1+fX19/Py9/T0/Pv7/v///////////////v7+///+ - /f7////+/v7+/v////////z9+fLy+fPy+PTy+fTz+PTz+fTz+PPy+PTy+PP0+fP0+PX09vPx+/b2//// - ////////////////AAD//////////v/+///////8/v7F+f9FscE2bnS0ur69wMTT1df09PT///////// - ///////////////////////////////////////////////+/v/+///+//////71/P658/9Q0uEbcX5w - h420t7u/xMXY3N359fTl9/uh7/te3e8hnKw0bnqJmZ+/vsDMyczW29/t8PH9+/v////6/PzG8/xq5vgd - kp9GanGnrbShm5vG1NR52ucjXmZcOSuJamW48/hV1eYhaHdLQDlpQTSEY1i3oZzz7ev++fq7lY6bn5qH - 1d546/pg5vhE3O493PA30+Yic4Bke4C2tbvO0NHw8PD////x6Oa4jHyteWqxfGuyfW2sd2fSta3///// - ///////y7OvTtaqyf3CmZ1ajZE6jZU2lZE6hY0ugZU6mbVmzgXPUu7T49PL////+//7+/v79///+//78 - ///////8+fnWvLSxemykaFGiYk6hYEygYUykZFChY06fYEylZlGvdmXHoJTs4Nz++/zMqJ+ud2aveWqu - fG7Vvbb+/fz//v/+//7+///+///+/v/9/v/9///////y7uy9loyweWqyfG+xfGyqeWfJqZ7////49PLF - opSwemuwe22vfW6yfW21fW2zfm20gHK5h3vCnJHXv7bp4d7////////9///9/v7+/v7+/v7////p4t63 - in6xemuzfW2zfm+yfm+xfW+zfnCzfm6yf26yfm+xfm+xfnCwfG6yemzgzsf///////////////8AAP// - //7///////7///7+/////+/9/43o8x19i3qQl8TBxcTFyeLj5f39/f////////////////////////// - /////////////////////////////v/+//3+/v3//////+/7/6Px/T/C0h5kcIOXnri7vsfHzOPm5vz5 - +e74+6zw+Wvl9C62xSN/jlqFkaOqr8XExs/R1ODg5O7v8Pn4+e71+Lr2/0/T4SJqeWlsbGg8Nquhn5z1 - /SF/jlZIRGk4K6+vr5b0/h+Il0ZLTGxANXZJOYRINLyXjv7//7J+bZ1aQJ9rWZeRi5bN1Hbk9DXe8B25 - yTN3hKOtscnKz+Dj5fz7+////8GZjpxcQ6doUqNnUKRpUp5eSLuShf////jz8tCxqql0YqBgSqNnUKVt - V6VtWKhuWKpvWqlsWqdsW6drVqRnUaBfS7J9b+LTz/////3//v/////+/v7///j087qTg6FfSqZnUadu - WahtWKdsV6ZuWalvWqhuWadsWKZsV6prVpxfRqRsWvDm5b+Uh59hR6RqVKllUZ9jUOvh3/////7+/v// - //3//v7//vz+/v7+/////8emnZ1aRKZqVKZpVKVpVKBgSLaLe////8yroZtbQ6JoUaZnVKZoU6RnUaVm - UaNoU6VoUqVkT6JiS59iTKRqWL2UhunX1f////////3///////7+/r+XjJtdRKRpU6RnUqRnU6VnU6Vm - UaRnUqZnU6VnUqRnUaRmUqNmUqNmUp9eRtK4rv///////////////wAA/////v////////////////// - ////0fv/UcLRLGd0qbC1xMDDzM/S7e/w/////f////////////////////////////////////////// - /////f/+/f7+/v///f7//v7////+4Pj+i+78KKi3OmVwo6euubm+ys/R6e3t////9/z+yvH7hOz6S9Pl - JJ2tN4CNdJObrLK2x8XI1dHU39ze4uLj4/L2iun5JYiYQUJBYzcqkXRwuvj+OLXFMFVXZTkpimlirfD4 - LY+fSElFb0I2dk9EiFE8x6qk////1LWuomJKoWlSpmBKnmVQqKmmrPT8kc7Zt8nR4N7j5ujp9/r5//// - 8OvqqHJgqGlUq25ZqG1Zqm5boWNO3MrD+PTzs4d3nF9HpWVRqW1aqW1ap21ZqGxXpGZQo2VOpmhRp2xY - qGxYp21Yqm1aoWROo2dT4M7K//////7+/v///Pr6vpSIm15HqWxaqGxbpWxXp2xYqG1YpmhSpGZQpWhR - p2tXqG5Yp3BbpmlTsHpq+PT13MjBo2NPp21Yq25ao2JMyKWb/////////////f7///7+////////+PXz - sHlppmlTpm1WqG1ZqW1ao2JN0rSt////vZSFo2NNqG5aqG1Zp21YqGxYqWxZqG9aqW5Yqm5cqG1ap21Y - p2pUn2FLpWxW0rWs//7+/v/+/////fv8vY6Do2dSqm9bqW1ZqW1Yqm1Zp2xXpm5YpmxWqW1Zp2xYqG1Y - p2xXp2pUpGxW6uDe////////////////AAD////////////////+//7///////3z/v+h8/0nkKFYe4W6 - wMK/wsXX29z4+Pn+///+/////////////////////////////////////////////v/9//7///////7/ - //7////+/v7M9f1y4/Qdh5JYd362trq9vcHY2Nv19/j//////v/g9/ye7/ll5PU2xtgknqs8k55jmaKR - qbC1ur/DwsTR2+GV8PwmlKM/SUtmQTR3SjzEy8qK7vwdjJhHV1eEg4KJ5vEleYVQPTZwQTR9TTmUZVPx - 6+n////s396naVelbVeobFmkaVKmZVPhysL////////+///////////+///IpJqkZE6oblqnbVmnbFmn - aVSpc1/49PHl1dOgXkirblmlbFiob1qoa1ajZE6obly0hHi5kYWzg3OlaFWpalapblqoaleqbVqiZk6m - dGL16+v+///////exsGcX0iocFqqbVmma1apb1qkZ1GlblqygHC2hnavemmma1agYEqlZlCfXUXSt67/ - ///y7OyrdGKnaVSobVqlbFekalTXwrv+///////////////////////PsaigZE6nblmobVmobVmoa1ap - bVju4uD9///AloukZE6oblmoblmobVmncFumbVegYUudY0yiZk6naFSob1qoblqoblimalSeXkvTtrD/ - ///////9/P29j4KjZU+nbVmnbFmnbVeqblmhZVGkZlKkZ1OlaFOlaFSmaFSnaFSgYEy/m47+/v7///// - //////////8AAP/////////////////////////+/////+b9/3Db6hpwfoybo8TBxcPIy+Xn6f7+/f7/ - /////////////////////////////////////////////////////////////////v////L9/bz0/1DP - 3xxqeXuSmLe3vcXDyODj5Pr8+/////////L7/cHw+orq+WPi8jrM3iq1xiqms0Sqt1fDz3fi8F3e7yN9 - jU1GQ3BIO3tIN6B6bbnv9Fza7Ce80ULZ6SuuvT9xfZaGhIpsYYdbScuzrf////////v6+riLfaVjTqdu - WqZvWqZmVKFmU8OeleDNyujc1+vd2+TU0MKflaJnUqltWadtWKdtV6huWaJjTb2Wh/7///v5+LqQgqJh - S6VuWKNlTqZuWcakme7i3/78/f7///v5+d3IxKZwXKdpVKdsWKpqVqVuWZ9gSdOzq/////38+7eHeKVm - T6lvW6dsWKZsV6ZmULaIeOfa2Pr5+P36+fr39OTY1Mmmna95Z7OJfPj08/////7//7+WiaRkTqluWqdu - WaZqVaZmVMOYjd7Mx+rb2Ond2ObW08inoaZnVKRqVahrWapvWqltWaVmULmIeP7+/v7//8KYjKJkTalt - WahtV6drV6lsWKhyYMikms6vp8KajKhwYaFkTahuWKhsWKptWaZpUqNrWOzi3v////79/ryQhKJkT6ds - WahtWahqV6ZvW9CzruLKxuLMyOLLyOLMyeHMyODLyOPS0Pz49////////////////////wAA//////// - ///////////////////+///+/f7/vvj/PLjEMGl0rra6vsHEz9PX8PDz/v/+//////////////////// - //////////////////////////////////////////7//v7////+6/z9n+37Mq/BMmVwmqeut7m9yM3O - 7e3u/////v/////+///+7fn9ue73geb1WuP0QtrrKtTlHNToJM/jJqe2QF1fbkc+f1FBjVtHkVdBvra1 - qvX/PODwHLfJRZCbrbe91dXa3t/h5+Ph/Pz8/v////7/////0bavn2BMqm5aqWtYpnBapmtVpGVOo2hT - p21Xp21ZpGhWpGRPpm1YqG1XpmxYp25YqGxXo2NP28K8////////8+3tsYNynWBKuYd76NzZ//////// - /////f///v//////zKyioWJMpm1ZqG1Zpm5ZoGNOu5CC////7+Phpm1WpmhUqWxYpmxYpmlVpnBg8Orm - /////v///f//////////////9vDx9vT0/////f7+////3crDomNOp21XqW1Xp25Zp3BboWFMoWVRpmxY - p25ap2pVoGRPpmxXqG5bqG5aqG1YqW5aoWJN1bew//////7/wJeJo2RLqG1ZqG1Ypm1YnmNN0LGn//// - ////////8ennwJiKo2VQqG1Zp25apG1XoGBJzKad/////f7/vpGEo2VQp2xZp21YpmlVqHJh8erp//// - /////////////////////////////v/+////////////////AAD////////////////////////+///9 - ///////x/f+W8PslkJ1Xe4PCwsTAxMbW29/49vf///////////////////////////////////////// - ///////////////////+//79///9/////v7Y+P576/gnjJlOdXuwtbq7vMHY2dz4+fn////+//////// - //////7t+PvF8fef6PRd3+48zeBXusVncnF5TDuFU0KPXUmaY02eX0vexsL0//+97PS53eHc4eLq6Ort - 7+/6/P7////////8/v79/v/////y6OWobVipalembVumcFqnaleobFigYUyiXkmgX0ikZlCma1iob1qo - a1iobFmlblmoalOscmHy6+n///////7////08O/k09D8+Pj////+///+/v/+///9//7+///////dxb2f - ZEynbVmpbluoblmjZVC5hnf//f7gysWjZ1KmblmobFaqbVmiZk65joH////+///9/v/////+///9/v39 - /v/////////+///+//7////38O6rcWCmaFSla1arblmnb1uqbVilY02hX0qeYEijY0yqblqobFmpbVmm - bVimbVipbVemalbp3dv////+///CmIykZU6pbluobFenbVqlY07axLv////+///////////59vaygXOk - ZFKncFqpalqmZlKxfW78+vr9//++kYSmZ1GoblqnbVelalSrcF7x5OP///////////////////////// - ///+/v7+//////////////////8AAP////////////////////////7+//7+/////////+D5/3Pg7B12 - hIKUnMTExcHIyN/i4/z8/P////////7+/v////////////////////////////////////////////// - //7///7+//////r+/8L4/lnU4h1reYGVmrS4u8PHyebm5//+//7//v3+/f/+/////////v///v39/e71 - 9+bw9ejm5ZtpXI5XQ5diTp5lUaRnUqNrV+bb2f///////////////v39/f////7///////7+//z+//// - /v////3+/r2Pf6RkT6dwWqZvWqZrWKdxXb2Qg8GUiMGWirOGdaVqVadtWKdtWahtWadrWKZjTcCXiv// - //7///v//v///////////////////v7+//7+//7//v7//////////8SimKRkTKtsWKdvWahsWaNlT7mM - fv3//9S4sqRjTqhsWKdtWKluW6FkTcOZjP////3+//7//v7+//7//v3///////7///7+//3+/////v/+ - //7+/sehlqFiTKlvWqhsWKZrV6hwXLuQgsGWisCUibmKfKduWqZsV6dsWKdtWaZtV6NnUbmKfPz7+/// - /////8SZjaJkTqhtWadtWaduWqJjS9nAuf////3//////v7//////9O4sKJhTKptWahtWaZpVKhxX/Pt - 6////72PhKVlT6htWKdsWKZoU6pwXvHl4/////7///7///7///////////7////+/v7///////////// - /////wAA/////////////////////////v///v/////+/f///f//zvv/T8XUJmp4nqqxwMPEx83P6+rt - //7+/////////////////////////////////////////////////////f///f7+/v7//v7/////8v3+ - nvL+Lqi2Omdypq6zt7m+0dPW9fT1/v////7//v7+/v7+/v///v//////////////+vTzpnJimmVOpGpX - pGpXpmpUpG5Z6uDf/////f/+/f7+/////v///v7//v7////+/v7//f7+//7+/v7/////2MG7oGNNqW5Y - p21ZoWVOwJmL////////////697bpmtYpmpWqHFcp2xXqW5ZnWJN2sO9/////f7+/v/+/f///f3+/v7+ - /v///v///v7+/v/+////////////6NrXp29cpWtVp2pXqHBZqm5ZoGFLxJ2N////0bOtomJOp21XqG5Y - qG9bo2ROxJqO/////v///f7+/v///v7//f/////+/v/+/v7//v7+//7////+////383IoGRPqmpXqG9Z - pWVPt41//v/+////////8ejnqXJgpmlTp21Yp25ZqW1Zn2FL0LSt/////////v//xJqNomRNp21ZqG1Y - qW5YomNO2L+4/////v/////+/v7+////5NHLnmVOpmpXqG5ZpmpVpGhW6+Dd////u46DpGVPqW1YqGxY - pmlSq3Jf8ufm//////////////////////////7//v//////////////////////AAD///////////// - ///////////////////////+///////6/v+w9v84q7o8cHq3ub7CwsbR09jy8vL+///9//////////// - ///////////+/v7////////////////////////////////////////////X+P5t5PAee4hpgoq3uLu/ - wsbd4OT7/Pz////+/v7////////////////////////69fWweWqjaFOnbFinbVmma1Wob1vt4uD///// - ///+///////////////////////////////////////////w6OirdGCmalSobVmkaFG0g3T7+vr9//// - ///Zv7eiYkypb1qob1mpbVika1WpcmDv6Ob//////v/9///+//7+///+/v/+///+///////////////4 - 8/PYw7uocGCoaFOnbluna1iqb1qmbFigYEzYu7L////TtK2hZE+obViobVeobVqiZE3GnpP///////// - //7////////////////////////////+/v////7////39fSxe2unaFOmbFmkZlOtdWP07Oj////////f - y8OkZFCobFenbVmmbVqobFekalfv4eH////////////BmY2jY06obVmobFmoblijZk/Xu7P///////// - ///////////o2NShZVGna1eobFmnbFinalbu4N3///+8kIOkZE6pblqobFimaVOocFzt4uD///////// - //////////////////7///////////////////////8AAP////////////////////////////////// - //////////////P+/5Lx/CCPoVd5gr3Cw8HEyNna3fb19//////+//////////////////////////// - //////////////////////////////////////P8/rX0/zu+yyllbpuorLu4vMbMzvDu7v////7///// - //////////////////////r19LF7aqVpVKltWaltWqZqVatwXO7i4P////////////////////////// - //////////////////////7//////8GYiqFkTqhuWqdsVqdpVuXV0v/////+/ruMfKFjTKluW6dsWKpu - WqJjTr6ViP39/v/////////////+//z///3///////////Dn59nEvcqnm7J9baNiTaRmUaluV6ltV6ht - WqhuWqJlUKx2ZfXz8f///9G0rKBkT6htWKltWahuWqJjTMeelP///////////v////////////////// - //////7///7//////v7//////8ulmqJiTKduXKhtWKJjTt/Kxf///////8KfkqNiTKluWaltWKluWqRl - TrmKfP78/f///////////8GZjKNjTqhtWahtWqhuWaRlUNa6tP///////////////////+jW1KJlUalt - WKZuWaZsWKhrVu7h3f///7yQg6JjTaltWqhtWKltWKdqVreHfMiilcWckMSck8SflMennO7g3f////// - /////////////////////wAA////////////////////////////////////////////////////2/r/ - euLvHnuJcYyVx8TGxcjK3d/i+vn6//////////////////////////////////////////////////// - //////////////7+///+6fr/h+z4IoyYVnh/sba6ur7B2drc+fr7//////////////////////////// - +vb1sXtqo2hSqW1ZqW1apWlUrG9b7uLg//////////////////////////////////////////////// - /v//////3MjBomNNqW1aqW1ZoWFMz6+n////8ejmqHBbp2tVp2xYqGxYqW1ZpGRQ17+6/////v////// - /v///v/+////////6+Lew56Tq3JfomJOoWBMpWhQqG5apm1Yp21YqG1ZqW5cpmdRomZR4M3I//////// - 0rOtomRPqG1YqGxYqG1aomNMx56U///////////+/////////////////////////v///f7+/v7//v// - ////59bRo2RQp2xZqm9ao2FMw5mO////9/PxrnhnpmhTqG1ZqG1Zp25Yo2NL1bev/////////////v// - wZmMo2NOqG1ZqW1apm1YpGVQ1rq1////////////////////6NfUo2VRqG1Ypm5ZpWtXp2pW7uHe//// - vZGDomNMqGxZqG5Zp21ZqG1Zo2ZPomNOoGNNoGFMoWJKn2BGrXps9vPy//////////////////////// - AAD//////////////////////////////////////////////v///v3//v7T+v9c1OMcc4CQnKPHyMrF - yczh4uT7+/v//////////////////////////////////////////////////////////////v/////8 - //7H9/5Ty90fZ3SHmZ+0t7zFx8zr7Oz+//7////////////////////////69vWxe2ukaVKobViobFmm - alWrblvu4uD////////////////////////////////////////////+///9///////18e+sc2Kna1Sn - b1umZlG3g3X////bwLqiYk6pbVmoblenbVmmaFOsc2D27e3////+/////////v7////////XurSla1ei - YEulalSmbVeobVmocFqlblinbVmnbVimZ1KgYUmmcl7ey8T//////v/////StKyhZE6pbVipbVmoblqi - Y0zGn5T///////////7////////////////////////////+///9/v/+//7////59vewgHKkZ1CnbFmm - alWweGf8+/rk1c+jZlCrblqpbVmpbVmma1WmbFns4N3////////////+///AmIykY06nbFiobVmmbFej - ZE/VurT////////////////////o1tOjZVGobVimblmnbFeobFjt4N3///+9kIOjZE6pblqpblinbVqq - bVqoa1WmaVSna1WlaVaoZ1SlZk6iZ1Ly6uj///////////////////////8AAP////////////////// - /////////////////////////////////v/+/vz+/735/1LH1yZuepGhqMTEyMjMzeXl5/z8/P////// - //////////////////////////////////////////////////////7//////+b7/4vt/COXpURuda6x - trS6vtXY2fb4+P////////////////////////r19a95aaVqU6htWKhsWaZpVKptWu3h3/////////// - //////////////////////////////////7///7//////////8Gek6NjS6ZvWqdsV6RoVPLp58eilp9i - TKdtWqhtWahuWaNiS8CWiv///////v7//////////v///9bAt6BfSadqVKhuWqhuWaduWKhuW6dsWKdr - U6JhTKVkUa95Z8mmne/o5v////3///3//////9S0raFkT6hsWKhsWKhuWqJkTceflP///////////v// - //////////////////////////7+//3+//////7//////8qroqBjTaltWaZtWKNoU+fb2M2toqJjTaht - WadsWKhtWaNlT7aJev39/f////////////7+/8GYjKRkT6htWahtWqdsWKNlT9e7s/////////////// - /////+jX1KJlUaZsV6lvW6ZqV6ZrVu3g3f///72Qg6VlT6ltWaltWqltWKttV6ZoVaZuWKZvXKZuXKds - WKdzYdK4sP///////////////////////////wAA//////////////////////////////////////// - /////v///v////7////+9/3/sPT/QL/MJGx2o6euxcbJy8/Q5+nq/P39///////+/v/+//////////// - /v7+/////////////////////////f7+/f///////f7/v/j/Ss/eHGx1i5adtrS6w8bJ6Onr///////+ - ///+/v7+////////+vT0rnlopWpUqG5aqW5ap2lVqm5a7eHe/////v////////////////////////// - ////////////////////////////3szHoWNOqGxWqm1Zo2lUuo1/rnpnpWxUqG1aqW5aqW1ZoGFM2sbA - /////f7+/v//////////8ujnp25foWhRqGpXqm5YqG1Zq25ZpGVQoGBLrXdnyqKZ4M3H9O/v//////// - /v///f/+////////0rStoWVQqGtYp21ZqG5ao2NNx5+V/////v///v7+//////////////////////// - /////v///////////v//////6dnXp2lWqGtWp2xZpWlTt4p7sH1rpWtXp21XqW1Xp21YoGFL0bOr//// - /v///////////v//wZmNo2ROp21YqG1Yp25apGZQ17yz/////v////7////+////6NfUomVRpmxXp25Z - p2tXpmpX7eDd////vZGFpGZQqG5ZqG1YpmpVqHBd2cXC7ODf697d7ODd6uDd8ezs//////////////// - ////////////////AAD////////////////////////////////////////////+///+//7///////// - ///z/P+r9f8/tsQtcHmmsbXKyMrQ0dTp6uz+/v3////9/v7////////////+/v7///////////////// - ///////////9/v7+///////s/P+O7fsmm6tBanOqr7K2ub3W2dv7+vv////////////////////59fSu - eWimalOoblmnbVelalWobVnt4d////////////////////////////////////////////////////// - /v7+///38/Kve2ukZlKnbFmpblqkZVGkaFWqbluobVmqblmmaFOscmDz6+r////+///////////////Q - s6uiYEunb1mobVqnbVenb1ijZVCxfGzXv7f28O7////////////+///+/////v/+/v7////////RtKyh - ZE6na1ioblioblmjY0zHn5b////////9///+//7///////////////////////////////////////// - ///9+/y3hXelZU+pbVmobVilZ1OlalWpbVqobFaobleobFema1fv5OH//////v7////////+///BmY2j - ZE6obliobVmnbVikZVDYvLP////////9///+///////n09CkZVGqblqnb1mma1amalfs4Nz+//+9kIam - ZVCoblqobVikZ1Kwemr49fb///////////////////////////////////////////////////8AAP// - //////////////////////////////////////////7///7///3///7+///+/v///u37/qTx/TWtvDlv - eKmxtsfIy8zS1urq6/z9/f3///////////////////////////////////////////7///7+//7///// - //z+/sX1/k3S4R5odICUmra1ucXIyuvr7f////////////////////r3+LF8bqVoUqhuWahuWalpVKds - V+fc2v////////////////////////////////////////////////7//v7+//7+/v///8efk6JkTqdt - WqhtV6ltWahsWKhrWadsWKZtWaJkTcSXiv/+///////+/v////////78+7iMfqJpUahuWqZqV6duWKho - VLOCc/Pp6f/////////////+//3+/v7///7+//////7//////v///9S2rqRmT6dsV6ltWKhtWaJkTMSe - kf////7///7+/v/+/////////////////////////////////////////////////8+xqqBiS6htWaht - WapuWqdsWKhsV6dsVqlsWKNmULiGePz6+/////3//////////////8KajaRjTaluWahuWahtV6VnUdi8 - s////////v7+/v7+/v///93Fv6BmTahrWKhvWaZpVqttXPPr6f7//72RhqdlUKdtWaZsV6RnUbB7aPjy - 8v///////////////////////////////////////////////////wAA//////////////////////// - /////////////////////v///v///////v/////////////+8Pv+nvT+Nqy6M3B8q7C3yMnJytDR6evt - //7+/////////////////////////////////////////////v///////v//////6fr+g+r5H4+bU3V+ - rbG0tbu93dzf/Pz8/////////////////Pz8tIZ4pWdRqG5ZqW5aqGtWpWdS3s7I//////////////// - /////////////////////////////////v/////+//7/////5tPNpGZQqXBaqG1Zp25ZqG1Ypm1Zp21Y - qW1Zo2VQ2cG6/////v//////////////+/b1s4BwpGZSqnBapmxZqW1YpWVP2sTA//////39/v7///// - /v/+/v///f///f////7+/v/////+////2L+6pGVQqG1Xp21YqG5YpWVNvpGC/////////v/+/v7//v// - /////////////////////////////////////v//////7N7cpGlUpmtVp25aqGxYqG1Zp2xWqG5Zp2xY - oWFM07as/////v///v/+////////////wpqNo2NNp21YqG1YqGxXpGRP2L61/////v/+/v7+/v////// - wZyOoGNNpmpWqG5Zp2pUr3dp/Pn5//7/vZCEpGVQqG5Zp2tXpGhRsHtp+PLy//////////////////// - ////////////////////////////////AAD///////////////////////////////////////////// - ///9///+//////7////+///////////t+/6b8vwyrbsycHqqr7XMy8zO0dTn6er7/Pz///////////// - ///////////////////////+///+///+///+/v/////3/v+69P88uckvaHGYpaqztrnPz9Tz9PX///// - ///////////+///DoJOjZE2obViobFimblmgYUzXt6z////+//////////////////////////////// - /////////////v/+/v7+///////39fSwe2umalSpbFinblmobFmpb1uobFimaVSrc2D17+7////+/v7+ - /v7////////69vW0f3CnZFGpb1qoblqnbFehZlHeysX////+/v/9///9//////////////////////// - ///+/v/////l2NeiZlSpbFinbFiobVmlaVOxemr69/b////+/v////////7///////////////////// - ///////////////////////8+/u5iXykZVCmb1qpbViobFiobFipb1qmalWqbVvr393////////+/v// - ///////////Cmo2kZE6obVmobFima1alYk3cxbz////+///////////n2NSmbFqmaVana1eobVmiZU29 - mIz+///+/P69kYOlZU+pblqobVikZ1Kwe2r48/L///////////////////////////////////////// - //////////8AAP////////////////////////////////////////////////7///7///7+///+//7/ - /v7//v///////uv6/5rw/DGwvytxf6SrsM3Mzs/R0uXm5vn5+v////////7//v////7///7///////// - ///////+//3///7+//////7//tr8/2zb7BxygHmLlLW1usDFyurr7f////////////7//////9i/tqBg - TKhsWahuWahvWqNnUbF9bfXw8P////////////////////j29uLV1Pbx8P/////////////+//7+/v7/ - /v///////82nnp5jTKltWKdtWKdtWaluWalrWp9pULyShP/////////+/v////////////37+rWGe6Jl - T6hwW6psV6ZvWKRkUMGXivn6+f////////////////n4+Ord3vz6+v////////7+//////r3+K55aaRo - UqdsWKlsWKhuWaNkUNa7tf///////////////////////+zg3+nf4P////////////////3///////7/ - /////9G0rZ9hTKdsWKdtWqhtWahsV6hvWqVmUbaGeP/7/P////////7///7//////////8KajaJkTqhu - WqhsWadsV6NjT8+zrP////////v4+NvIwah2ZKZnU6hyXKhtVqVsVqFfS+LKxf////v7/LuRhaZlUKdu - WadsWqVnUq97avv4+P///////////////////////////////////////////////////wAA//////// - /////////////////////////////////////////////////////////v///v///v///f7+///+6vr/ - nvL+RbzMKXeDi5+kzcrMys/P3+Dj9/b4//3+/////////f7+/f39/v7+/////////////v7+//////7+ - ////6/3/juz6Jo2bWXmBsrS3ub/C4uTl/////////////v//////7+bmqG5do2hUqW1ZpW1YqG5ZpGlT - sYZ34MzI7+Tg7+Pi5NbTyKqhtH5woGJNwJiK/f7///////7/////////////////////5tbTpmlWqWtX - qW1ap21YqG1ZqGtZoWNM3MbA////////////////////////////yKujnmBJpW9aqGtYqGxYqG1Xo2dS - u4uA2Lq14MrD2cG7yqmgtINyomRPzq2l////////////////////yKeboGFKqm1bpGpWp21Zp2tWqW1b - y66m7N7c8Obi7ODc1728vJOIrHFdpW5e69/d/////v///v7//v/+/v////7/////8OXlpWxbqWxWqG5X - qG1aqG5ZqW1an2JL0bGn/////////v/////+/v///v///f//w5uOo2RPqG1ZqGxZqWxXqG1XqHJfvJGD - vJOGs4NwpWhTqGlUp25apmxZqXBcoV9KuY6C/fn6/v///Pz7vZGEomNOqW1Yp21Zp2pWqHFc2MC5693Y - 6NrT6NjV6NjV6NnV6NjU7uXg////////////////////////AAD///////////////////////////// - ///////////////////////////////////+///+//79/////v////7////1/f+w9v9Jydoieol7kJnH - yMrO0M/c3eHi8Pa26e/R4eX79fTw7fDv7/P5+vn+///////////////+/v7////3/f+s8/8zpbJAbHOo - sLO6vcHe3+H+/f3////////+/v7+//7////MraaeYUmqbVmobFmobVmqclqkZ1CiZVKnbVqmbFmiZlKh - Yk2lalKnaVSiZFHn2dX////+/v7////////////////////8+/uzgnGkZVCpblmpbFmnbFenZVGqc1/y - 6uj////////////////////////////r4d+jaVaoZ1KobVmobFinbViobFmhZk+iY02hZFCgY02eYUyl - Z1KhY0m4joH+///////+/v7////////u5+Wma1uraVOlb1qla1eobleoa1WhY02ma1enb1ymbFWlY1Ck - ZU+ka1WiYUrCnJD+/v/+///+/v/////+///8/v////////66jHyjZE6obVmobVupbFiobFelaFTt39v/ - /////v/+///+//79/////////v/Em46kZE2obVipbVmpbFinbFila1WhZk+fYk2laFKpa1aoalilbVio - blmiX0muemrv6uj////////9+/28kIOiZU+pbFipbVmmbVmqbFijZU+kZVKjZlGjZ1KkZ1KkaFKiZ1Gj - alXo2NT///////////////////8AAP////////////////////////////////////////////////// - //////////////7///7//////v7///3//////////vb9/bz2/mbV5iCHlWeLlcTBxNLO0s7i5Ynp8jar - tn+jrdDQ09/c3t/h5PDx8vz9/v////////7//////////r73/jmvvDdlcKStsry9wd7g4f3+/v////// - //7+/v/+//////n29baJfJ9fSKZsV6hrWqZuWaVvWahsWKdqVqdrVqxtWatwXKZuWadtW6NhTLyUh/// - /////////////////////////////8ytpaFiTKpvWadsWKhuWaNlTb2Xiv7+/v////7///////////// - ///////////+/8+yq59eSahsVqhuWqhtWahsWqduWqhuV6tsWqlsWaltWattWaNjTbyPf/////////// - /////////////9nCvZ5jT6hnUaptWqZsWahuWalvWaZsValrVqpsWKdtWahsV6huWKdrVaNoVOrc2v7/ - //7//v7+//7//v7//v7+/////9u/uqFiTqltWahuWKhuWaNmULeGd/v4+P////////////7///3//f// - //3+/8SYjKRjTqduWadtWaltWqdtWKdtWKlsWqpvWqhvWahwW6ZuWKVnUaJhTLWKfPDl4v////3+//// - //38/ruOgaVmT6luWqluWKhuV6htWqRuV6pvWqZsWKdtWKltWaltWahvWZ5gScaimP////////////// - /////wAA/////////////////////////////////////////////////////////////////////f7/ - /v///v/+/v///////f/+///+/v7+1Pf/e+TzLKa0PoWPlaarz8rLzd3khuTyLbLCQpSgprW41M3Q4drb - 5+jo8/T1/Pv8//7+//7++fz8uPX/NqKwQGt1rrS4xMPG5eXn/////////v///v7//v7+/v7/////8+3s - w5eNn2NLpGROqWhTqGtYpWxXpmxXp21XqG5ZqG9aqGpUomVOnWFJxKSZ/v///v/+//////////////// - ////////7+HfoWNOn2JMo2dTpmtVnWBK2MC8/////v7+/v/+/////////////////v/+////////z7Gm - nmZQoGBKp2hSpmtVq2xZqG1ap21YqW1YpWdSomVPmlpCyqmh/////////v7+////////////////2cS7 - p3BdoGFKoWdRp2pYqGxXp25ZqWxXp2xXpGxXqGxWo2lSn2BJrHZn7eLe/////f/+/f7//v////7+/v7+ - ////8ennpW5bnWBJpmhQp2pVn1xIz7Oq/////////v///v////////7+/f///v//x6SZmVlBpWVOo2ZQ - pGZRo2RPo2hRomNNoWVPo2NNoWFLpGhRtIV21722+/v6/////////f7+/v/+//7/yaadm1pCpmVRpWZS - pWdUpWZRpGVQo2ZRpGZRo2ZRo2VPpGZQomVQoGFLrnpq/Pr7////////////////AAD///////////// - ///////////////////////////////////////////////////////+/////v/+///////+/v///v// - //////////7k+f6e8fxLxtgnjJxplp25uLvLztKn3+tQ0+EwscNborCjuLvX0tLl3t/s5+jz7O3y6+zU - 8fh16fYlf4xviI+9wMHPz9Hy8fL////+///+/////v////7+/v7+///////9/f3hyMK8j4CpcF6jZVCj - ZU+iZE+hZU+iY02kZVGrdWS+mIzn1dD9/Pv////+///////////////////////////9/v3Vvbe6j4G1 - f3ClbFqsfm317+7////9//7+///////////////////+///+/v7////////q2dTCnJCud2ejaFKiZU6j - ZU+hZlGgZVCkZlSve2rKsKb49vX////////////////////+//7+//7////w5+PHpZmvfWqiaFWiZVCh - ZE+hZVCjZVCiZFGpbFi1hnfStK327uz////9///+/////v7+///+//7+/v////7+///dxsG7kISwf26m - blqreGft5eL////+/v/+/v7+/////////v/+//7////07OjFnJC2h3u3iXu4iXm4hnm5h3i5iHm5joLE - m5HUtq7p2dX59/f////////+/v///v////7+/v/////48/HEo5exf22zgm60gnCzgm+1gW+0gXC0gXC1 - gW+0gXC0gW+zgG2wfGrGopf9/fz///////////////8AAP////////////////////////////////// - //////////////////////////////////////////////////////////////////////////b9/771 - /mzg8SywwjeapoCkrLWzusTR1ZHf607R4iy4yl+7yoDDy6DJ0qDQ253f6Hzo+CyvwThwe7CzusvMzeHk - 5vz+/f////////////////////////////////////////7//+/l5N/KxNrAuda4stK3sNq/uOLMyPLt - 7P////////////////////////////////////////7///7///////////z4+Ozh4fTv7v////7+/v// - //////////////////////////////////////////////bx8OXSzd3EvdrAudi/udvDvOLPzfj19f// - //////////////////////////////7+/v////////////j19uPS0N3Dvda6s9Gzrte6tt3FwOra2f79 - /P////////////////////////////////////////////////////r49+7i4fLr6f////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////37+vv4+Pz4+Pz4+Pv39/z39/v29vz49/z39/v39vv29vv39v// - //7//////////////////wAA//////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////795fr/p/D8X9rqJr/PMJup - cY6Wvb2/xtbcoOHqbN7sRNPmMdHkPNfrIdbnKLbFTJagrbi91tTY4OLl9/j4//////////////////// - /////////////////v///v7//v///////////////////////////////////v///f///v////////// - /////////////////v///f7+//7+/v///////////////////v7//////////v////////////////// - /////////////////////v/////////////////////////////////////+/v////////////////// - /////////////////v7+/////////////////////////////////////////v///v////////////// - /////////////////////////////////////////////v/+//////////////////////////////// - /////////////////////////////v///////////////////////////////////////////v////// - /v///v///v///////////////////////////////////////////////v///v////////////////// - AAD///////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////v////7////f+f6Q7vw60eEWdoSVq7Di3d/v5uXu8/XZ - 8/i87/aa5/Nyz92VxMrZ29zp5ebr7e77+/v////////+/v7////////////////////////////+//7+ - /v7+/v///v/+///+//7////////+///+/////v/+//7////////////////////////////////////+ - /////v7////+///9///////+///+///////9/v7+//7///////////////////////////////////// - ///+///////+/////v/////////+///////////+///////////////////////////+/v7+/v7///// - ///+/v/+/v/+//7////////+///////////+///+///////////////////////////////////////+ - /v7////+/v///v/9//7+/v/+/f////////////////////////////////////////////////////// - ///////+///+///////////////+/v7////////////////////////////////+///+///////////+ - /v7////////////////////////////////9///9/v7///////////////8AAP////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////+//7+/////////v////z8/d73+8Lj6ODn6vf09v79/v///f/////////9/P/6+v/7+vv6 - +vr8/P////////7+/v////////////////////////////////////7///7///7+///+/v7//v3+//z+ - //7//v7///3///7///////////7+/v3///7+/v////////////////////////7///z+/v7///7+/v7/ - //////7+/v/+/v7+/v////////////////////////////////////////7///7///7+//////7+/v3/ - //7//v7+//7///7////////////////////////////////////////////////+///+//7//v////7+ - /v7+/v7//v///v/////////+//////////////////////////////////////////3//v7///7+//3+ - /v////////////////////////7+/v////////////////////////////////////7///7///////// - ///////////////////////////////+//////7///3///7///7///7///////////////////////// - ///////////+//////7//////////////////wAA//////////////////////////////////////// - //////////////////////////////////////////////////////////////////////7//f7+/v/+ - /v7//v/+///+/////////////v/+/v/////+/v/////+//7//////////////v///f/////+//////// - /////////////////////////////////////v///v///////////v///v7+/v///v////7///////// - /////v///////////////////////////////v///f///v7//v///v7+/////v7+/v///////v/+/v// - /////////////////////////////////////////////v7+/////////v///////v7+/////////v// - /////////////////////v///v7+/////////////////v7+/v7+/v///v///////v7+//////////// - /////////////////////////////////////////////f///P/+//7+/v///v////////////////// - /////////////////////////////////////////////////////////////v////////////////// - /////////v///////////////v///v///////////////////////////////////////v///v////// - ////////////////AAD///////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////8AAP// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////wAA//////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////AAD///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////8AAP////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////wAA//////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////AAD///////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////8AAP////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////wAA//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////AAD///////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////8AAP////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////wAA//////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - AAD///////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////8AAP////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////wAA//////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////AAA= - - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/App.ico b/samples/CSharp/WinForms/App.ico deleted file mode 100644 index 3a5525fd794f7a7c5c8e6187f470ea3af38cd2b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeHHJr05}7=1t!Hp3A*8IHkVf+j?-!eHY14Gtcw1Eb*_9>Bq^zETJ@GKj{_2j4$w zo9}xCh!8{T3=X##Skq>ikMjsvB|y%crWBM2iW(4pI}c%z6%lW!=~4v77#3{z!dmB1 z__&l)-{KUYR+|8|;wB^R|9ET$J@(@=#rd^=)qs85?vAy(PSF5CyNkus435LVkZ$rj zNw|JG-P7^hF<(;#o*Vk}5R#e|^13tBbQkeF?djULtvqyxd3<{9 diff --git a/samples/CSharp/WinForms/AssemblyInfo.cs b/samples/CSharp/WinForms/AssemblyInfo.cs deleted file mode 100644 index 9f89a3282c..0000000000 --- a/samples/CSharp/WinForms/AssemblyInfo.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/samples/CSharp/WinForms/Form1.cs b/samples/CSharp/WinForms/Form1.cs deleted file mode 100644 index d3f6a169c4..0000000000 --- a/samples/CSharp/WinForms/Form1.cs +++ /dev/null @@ -1,1070 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; - -namespace IE_WinForms -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.MainMenu mainMenu1; - private System.Windows.Forms.MenuItem FileNew; - private System.Windows.Forms.MenuItem FileClose; - private System.Windows.Forms.MenuItem FileExport; - private System.Windows.Forms.MenuItem FileImport; - private System.Windows.Forms.MenuItem ImportBRep; - private System.Windows.Forms.MenuItem ExportImage; - private System.Windows.Forms.MenuItem File; - private System.Windows.Forms.MenuItem Window; - private System.Windows.Forms.ToolBarButton New; - private System.Windows.Forms.ImageList imageList1; - private System.Windows.Forms.ToolBarButton About; - private System.Windows.Forms.StatusBar myStatusBar; - private System.Windows.Forms.MenuItem ImportIges; - private System.Windows.Forms.MenuItem ImportStep; - private System.Windows.Forms.MenuItem ExportBRep; - private System.Windows.Forms.MenuItem ExportIges; - private System.Windows.Forms.MenuItem ExportStep; - private System.Windows.Forms.MenuItem ExportStl; - private System.Windows.Forms.MenuItem ExportVrml; - private System.ComponentModel.IContainer components; - private System.Windows.Forms.MenuItem menuItem1; - private System.Windows.Forms.MenuItem menuItem2; - private System.Windows.Forms.MenuItem menuItem3; - private System.Windows.Forms.MenuItem View; - private System.Windows.Forms.MenuItem Help; - private System.Windows.Forms.MenuItem HelpAbout; - private System.Windows.Forms.MenuItem ViewToolbar; - private System.Windows.Forms.MenuItem ViewStatusBar; - private System.Windows.Forms.MenuItem menuItem4; - private System.Windows.Forms.MenuItem WindowCascade; - private System.Windows.Forms.MenuItem WindowTile; - - protected IE_WinForms.ModelFormat myModelFormat; - private System.Windows.Forms.ToolBarButton wireframe; - private System.Windows.Forms.ToolBarButton shading; - private System.Windows.Forms.ToolBarButton toolBarButton1; - private System.Windows.Forms.ToolBarButton color; - private System.Windows.Forms.ToolBarButton transparency; - private System.Windows.Forms.ToolBarButton delete; - private System.Windows.Forms.ToolBarButton material; - private System.Windows.Forms.ToolBarButton ZoomAll; - private System.Windows.Forms.ToolBarButton ZoomWin; - private System.Windows.Forms.ToolBarButton ZoomProg; - private System.Windows.Forms.ToolBarButton Pan; - private System.Windows.Forms.ToolBarButton PanGlo; - private System.Windows.Forms.ToolBarButton Front; - private System.Windows.Forms.ToolBarButton Back; - private System.Windows.Forms.ToolBarButton TOP; - private System.Windows.Forms.ToolBarButton BOTTOM; - private System.Windows.Forms.ToolBarButton RIGHT; - private System.Windows.Forms.ToolBarButton LEFT; - private System.Windows.Forms.ToolBarButton Axo; - private System.Windows.Forms.ToolBarButton Rot; - private System.Windows.Forms.ToolBarButton Reset; - private System.Windows.Forms.ToolBarButton HlrOn; - private System.Windows.Forms.ToolBarButton HlrOff; - private System.Windows.Forms.ToolBar toolBarTool; - private System.Windows.Forms.ToolBar toolBarView; - protected static int myNbOfChildren; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - IE_WinForms.Form1.myNbOfChildren = 0; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Configuration.AppSettingsReader configurationAppSettings = new System.Configuration.AppSettingsReader(); - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); - this.mainMenu1 = new System.Windows.Forms.MainMenu(); - this.File = new System.Windows.Forms.MenuItem(); - this.FileNew = new System.Windows.Forms.MenuItem(); - this.FileExport = new System.Windows.Forms.MenuItem(); - this.ImportBRep = new System.Windows.Forms.MenuItem(); - this.ImportIges = new System.Windows.Forms.MenuItem(); - this.ImportStep = new System.Windows.Forms.MenuItem(); - this.FileImport = new System.Windows.Forms.MenuItem(); - this.ExportBRep = new System.Windows.Forms.MenuItem(); - this.ExportIges = new System.Windows.Forms.MenuItem(); - this.ExportStep = new System.Windows.Forms.MenuItem(); - this.ExportStl = new System.Windows.Forms.MenuItem(); - this.ExportVrml = new System.Windows.Forms.MenuItem(); - this.menuItem3 = new System.Windows.Forms.MenuItem(); - this.ExportImage = new System.Windows.Forms.MenuItem(); - this.FileClose = new System.Windows.Forms.MenuItem(); - this.menuItem2 = new System.Windows.Forms.MenuItem(); - this.menuItem1 = new System.Windows.Forms.MenuItem(); - this.View = new System.Windows.Forms.MenuItem(); - this.ViewToolbar = new System.Windows.Forms.MenuItem(); - this.ViewStatusBar = new System.Windows.Forms.MenuItem(); - this.Window = new System.Windows.Forms.MenuItem(); - this.menuItem4 = new System.Windows.Forms.MenuItem(); - this.WindowCascade = new System.Windows.Forms.MenuItem(); - this.WindowTile = new System.Windows.Forms.MenuItem(); - this.Help = new System.Windows.Forms.MenuItem(); - this.HelpAbout = new System.Windows.Forms.MenuItem(); - this.toolBarTool = new System.Windows.Forms.ToolBar(); - this.New = new System.Windows.Forms.ToolBarButton(); - this.About = new System.Windows.Forms.ToolBarButton(); - this.toolBarButton1 = new System.Windows.Forms.ToolBarButton(); - this.wireframe = new System.Windows.Forms.ToolBarButton(); - this.shading = new System.Windows.Forms.ToolBarButton(); - this.color = new System.Windows.Forms.ToolBarButton(); - this.material = new System.Windows.Forms.ToolBarButton(); - this.transparency = new System.Windows.Forms.ToolBarButton(); - this.delete = new System.Windows.Forms.ToolBarButton(); - this.imageList1 = new System.Windows.Forms.ImageList(this.components); - this.myStatusBar = new System.Windows.Forms.StatusBar(); - this.toolBarView = new System.Windows.Forms.ToolBar(); - this.ZoomAll = new System.Windows.Forms.ToolBarButton(); - this.ZoomWin = new System.Windows.Forms.ToolBarButton(); - this.ZoomProg = new System.Windows.Forms.ToolBarButton(); - this.Pan = new System.Windows.Forms.ToolBarButton(); - this.PanGlo = new System.Windows.Forms.ToolBarButton(); - this.Front = new System.Windows.Forms.ToolBarButton(); - this.Back = new System.Windows.Forms.ToolBarButton(); - this.TOP = new System.Windows.Forms.ToolBarButton(); - this.BOTTOM = new System.Windows.Forms.ToolBarButton(); - this.LEFT = new System.Windows.Forms.ToolBarButton(); - this.RIGHT = new System.Windows.Forms.ToolBarButton(); - this.Axo = new System.Windows.Forms.ToolBarButton(); - this.Rot = new System.Windows.Forms.ToolBarButton(); - this.Reset = new System.Windows.Forms.ToolBarButton(); - this.HlrOn = new System.Windows.Forms.ToolBarButton(); - this.HlrOff = new System.Windows.Forms.ToolBarButton(); - this.SuspendLayout(); - // - // mainMenu1 - // - this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.File, - this.View, - this.Window, - this.Help}); - // - // File - // - this.File.Index = 0; - this.File.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.FileNew, - this.FileExport, - this.FileImport, - this.FileClose, - this.menuItem2, - this.menuItem1}); - this.File.Text = "&File"; - this.File.Popup += new System.EventHandler(this.File_Popup); - // - // FileNew - // - this.FileNew.Index = 0; - this.FileNew.Text = "&New"; - this.FileNew.Click += new System.EventHandler(this.menuItem2_Click); - // - // FileExport - // - this.FileExport.Index = 1; - this.FileExport.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.ImportBRep, - this.ImportIges, - this.ImportStep}); - this.FileExport.Text = "&Import"; - this.FileExport.Visible = false; - // - // ImportBRep - // - this.ImportBRep.Index = 0; - this.ImportBRep.Text = "&BRep ..."; - this.ImportBRep.Click += new System.EventHandler(this.ImportBRep_Click); - // - // ImportIges - // - this.ImportIges.Index = 1; - this.ImportIges.Text = "&Iges ..."; - this.ImportIges.Click += new System.EventHandler(this.ImportIges_Click); - // - // ImportStep - // - this.ImportStep.Index = 2; - this.ImportStep.Text = "&Step ..."; - this.ImportStep.Click += new System.EventHandler(this.ImportStep_Click); - // - // FileImport - // - this.FileImport.Index = 2; - this.FileImport.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.ExportBRep, - this.ExportIges, - this.ExportStep, - this.ExportStl, - this.ExportVrml, - this.menuItem3, - this.ExportImage}); - this.FileImport.Text = "&Export"; - this.FileImport.Visible = false; - this.FileImport.Popup += new System.EventHandler(this.FileImport_Popup); - // - // ExportBRep - // - this.ExportBRep.Enabled = false; - this.ExportBRep.Index = 0; - this.ExportBRep.Text = "&BRep ..."; - this.ExportBRep.Click += new System.EventHandler(this.ExportBRep_Click); - // - // ExportIges - // - this.ExportIges.Enabled = false; - this.ExportIges.Index = 1; - this.ExportIges.Text = "&Iges ..."; - this.ExportIges.Click += new System.EventHandler(this.ExportIges_Click); - // - // ExportStep - // - this.ExportStep.Enabled = false; - this.ExportStep.Index = 2; - this.ExportStep.Text = "&Step ..."; - this.ExportStep.Click += new System.EventHandler(this.ExportStep_Click); - // - // ExportStl - // - this.ExportStl.Enabled = false; - this.ExportStl.Index = 3; - this.ExportStl.Text = "&Stl ..."; - this.ExportStl.Click += new System.EventHandler(this.ExportStl_Click); - // - // ExportVrml - // - this.ExportVrml.Enabled = false; - this.ExportVrml.Index = 4; - this.ExportVrml.Text = "&Vrml ..."; - this.ExportVrml.Click += new System.EventHandler(this.ExportVrml_Click); - // - // menuItem3 - // - this.menuItem3.Index = 5; - this.menuItem3.Text = "-"; - // - // ExportImage - // - this.ExportImage.Index = 6; - this.ExportImage.Text = "Image ..."; - this.ExportImage.Click += new System.EventHandler(this.ExportImage_Click); - // - // FileClose - // - this.FileClose.Enabled = false; - this.FileClose.Index = 3; - this.FileClose.Text = "&Close"; - this.FileClose.Click += new System.EventHandler(this.menuItem3_Click); - // - // menuItem2 - // - this.menuItem2.Index = 4; - this.menuItem2.Text = "-"; - // - // menuItem1 - // - this.menuItem1.Index = 5; - this.menuItem1.Text = "&Quit"; - this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click); - // - // View - // - this.View.Index = 1; - this.View.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.ViewToolbar, - this.ViewStatusBar}); - this.View.Text = "&View"; - // - // ViewToolbar - // - this.ViewToolbar.Checked = true; - this.ViewToolbar.Index = 0; - this.ViewToolbar.Text = "&Toolbar"; - this.ViewToolbar.Click += new System.EventHandler(this.ViewToolbar_Click); - // - // ViewStatusBar - // - this.ViewStatusBar.Checked = true; - this.ViewStatusBar.Index = 1; - this.ViewStatusBar.Text = "&Statusbar"; - this.ViewStatusBar.Click += new System.EventHandler(this.ViewStatusBar_Click); - // - // Window - // - this.Window.Index = 2; - this.Window.MdiList = true; - this.Window.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuItem4, - this.WindowCascade, - this.WindowTile}); - this.Window.Text = "&Window"; - this.Window.Visible = false; - // - // menuItem4 - // - this.menuItem4.Index = 0; - this.menuItem4.Text = "&New 3d View"; - this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click); - // - // WindowCascade - // - this.WindowCascade.Index = 1; - this.WindowCascade.Text = "&Cascade"; - this.WindowCascade.Click += new System.EventHandler(this.WindowCascade_Click); - // - // WindowTile - // - this.WindowTile.Index = 2; - this.WindowTile.Text = "&Tile"; - this.WindowTile.Click += new System.EventHandler(this.WindowTile_Click); - // - // Help - // - this.Help.Index = 3; - this.Help.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.HelpAbout}); - this.Help.Text = "&Help"; - // - // HelpAbout - // - this.HelpAbout.Index = 0; - this.HelpAbout.Shortcut = System.Windows.Forms.Shortcut.F1; - this.HelpAbout.Text = "&About"; - this.HelpAbout.Click += new System.EventHandler(this.HelpAbout_Click); - // - // toolBarTool - // - this.toolBarTool.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar; - this.toolBarTool.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { - this.New, - this.About, - this.toolBarButton1, - this.wireframe, - this.shading, - this.color, - this.material, - this.transparency, - this.delete}); - this.toolBarTool.DropDownArrows = true; - this.toolBarTool.ImageList = this.imageList1; - this.toolBarTool.Location = new System.Drawing.Point(0, 0); - this.toolBarTool.Name = "toolBarTool"; - this.toolBarTool.ShowToolTips = true; - this.toolBarTool.Size = new System.Drawing.Size(560, 28); - this.toolBarTool.TabIndex = 1; - this.toolBarTool.Enter += new System.EventHandler(this.menuItem3_Click); - this.toolBarTool.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick); - this.toolBarTool.MouseHover += new System.EventHandler(this.toolBar1_MouseHover); - this.toolBarTool.MouseLeave += new System.EventHandler(this.toolBar1_MouseLeave); - // - // New - // - this.New.ImageIndex = 0; - this.New.ToolTipText = "New"; - this.New.Visible = ((bool)(configurationAppSettings.GetValue("New.Visible", typeof(bool)))); - // - // About - // - this.About.ImageIndex = 1; - this.About.ToolTipText = "About(F1)"; - this.About.Visible = ((bool)(configurationAppSettings.GetValue("About.Visible", typeof(bool)))); - // - // toolBarButton1 - // - this.toolBarButton1.Style = System.Windows.Forms.ToolBarButtonStyle.Separator; - // - // wireframe - // - this.wireframe.Enabled = ((bool)(configurationAppSettings.GetValue("wireframe.Enabled", typeof(bool)))); - this.wireframe.ImageIndex = 2; - this.wireframe.Pushed = ((bool)(configurationAppSettings.GetValue("wireframe.Pushed", typeof(bool)))); - this.wireframe.ToolTipText = "Wireframe"; - this.wireframe.Visible = ((bool)(configurationAppSettings.GetValue("wireframe.Visible", typeof(bool)))); - // - // shading - // - this.shading.Enabled = ((bool)(configurationAppSettings.GetValue("shading.Enabled", typeof(bool)))); - this.shading.ImageIndex = 3; - this.shading.Pushed = ((bool)(configurationAppSettings.GetValue("shading.Pushed", typeof(bool)))); - this.shading.ToolTipText = "Shading"; - this.shading.Visible = ((bool)(configurationAppSettings.GetValue("shading.Visible", typeof(bool)))); - // - // color - // - this.color.Enabled = ((bool)(configurationAppSettings.GetValue("color.Enabled", typeof(bool)))); - this.color.ImageIndex = 4; - this.color.ToolTipText = "Color"; - this.color.Visible = ((bool)(configurationAppSettings.GetValue("color.Visible", typeof(bool)))); - // - // material - // - this.material.Enabled = ((bool)(configurationAppSettings.GetValue("material.Enabled", typeof(bool)))); - this.material.ImageIndex = 5; - this.material.ToolTipText = "Material"; - this.material.Visible = ((bool)(configurationAppSettings.GetValue("material.Visible", typeof(bool)))); - // - // transparency - // - this.transparency.Enabled = ((bool)(configurationAppSettings.GetValue("transparency.Enabled", typeof(bool)))); - this.transparency.ImageIndex = 6; - this.transparency.ToolTipText = "Transparency"; - this.transparency.Visible = ((bool)(configurationAppSettings.GetValue("transparency.Visible", typeof(bool)))); - // - // delete - // - this.delete.Enabled = ((bool)(configurationAppSettings.GetValue("delete.Enabled", typeof(bool)))); - this.delete.ImageIndex = 7; - this.delete.ToolTipText = "Delete"; - this.delete.Visible = ((bool)(configurationAppSettings.GetValue("delete.Visible", typeof(bool)))); - // - // imageList1 - // - this.imageList1.ImageSize = new System.Drawing.Size(16, 16); - this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); - this.imageList1.TransparentColor = System.Drawing.Color.Transparent; - // - // myStatusBar - // - this.myStatusBar.AccessibleRole = System.Windows.Forms.AccessibleRole.StatusBar; - this.myStatusBar.Location = new System.Drawing.Point(0, 363); - this.myStatusBar.Name = "myStatusBar"; - this.myStatusBar.Size = new System.Drawing.Size(560, 22); - this.myStatusBar.TabIndex = 3; - // - // toolBarView - // - this.toolBarView.AccessibleRole = System.Windows.Forms.AccessibleRole.ToolBar; - this.toolBarView.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { - this.ZoomAll, - this.ZoomWin, - this.ZoomProg, - this.Pan, - this.PanGlo, - this.Front, - this.Back, - this.TOP, - this.BOTTOM, - this.LEFT, - this.RIGHT, - this.Axo, - this.Rot, - this.Reset, - this.HlrOn, - this.HlrOff}); - this.toolBarView.DropDownArrows = true; - this.toolBarView.ImageList = this.imageList1; - this.toolBarView.Location = new System.Drawing.Point(0, 28); - this.toolBarView.Name = "toolBarView"; - this.toolBarView.ShowToolTips = true; - this.toolBarView.Size = new System.Drawing.Size(560, 28); - this.toolBarView.TabIndex = 5; - this.toolBarView.Visible = false; - this.toolBarView.Wrappable = false; - this.toolBarView.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.toolBarView_ButtonClick); - this.toolBarView.MouseHover += new System.EventHandler(this.toolBarView_MouseHover); - this.toolBarView.MouseLeave += new System.EventHandler(this.toolBarView_MouseLeave); - // - // ZoomAll - // - this.ZoomAll.ImageIndex = 8; - this.ZoomAll.ToolTipText = "FitAll"; - // - // ZoomWin - // - this.ZoomWin.ImageIndex = 9; - this.ZoomWin.ToolTipText = "Zoom Window"; - // - // ZoomProg - // - this.ZoomProg.ImageIndex = 10; - this.ZoomProg.ToolTipText = "Dynamic Zooming"; - // - // Pan - // - this.Pan.ImageIndex = 11; - this.Pan.ToolTipText = "Dynamic Panning"; - // - // PanGlo - // - this.PanGlo.ImageIndex = 12; - this.PanGlo.ToolTipText = "GlobalPanning"; - // - // Front - // - this.Front.ImageIndex = 13; - this.Front.ToolTipText = "Front"; - // - // Back - // - this.Back.ImageIndex = 14; - this.Back.ToolTipText = "Back"; - // - // TOP - // - this.TOP.ImageIndex = 15; - this.TOP.ToolTipText = "Top"; - // - // BOTTOM - // - this.BOTTOM.ImageIndex = 16; - this.BOTTOM.ToolTipText = "Bottom"; - // - // LEFT - // - this.LEFT.ImageIndex = 17; - this.LEFT.ToolTipText = "Left"; - // - // RIGHT - // - this.RIGHT.ImageIndex = 18; - this.RIGHT.ToolTipText = "Right"; - // - // Axo - // - this.Axo.ImageIndex = 19; - this.Axo.ToolTipText = "Axo"; - // - // Rot - // - this.Rot.ImageIndex = 20; - this.Rot.ToolTipText = "Dynamic Rotation"; - // - // Reset - // - this.Reset.ImageIndex = 21; - this.Reset.ToolTipText = "Reset"; - // - // HlrOn - // - this.HlrOn.ImageIndex = 22; - this.HlrOn.Pushed = true; - this.HlrOn.ToolTipText = "Hidden On"; - // - // HlrOff - // - this.HlrOff.ImageIndex = 23; - this.HlrOff.ToolTipText = "Hidden Off"; - // - // Form1 - // - this.AccessibleRole = System.Windows.Forms.AccessibleRole.Application; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(560, 385); - this.Controls.Add(this.toolBarView); - this.Controls.Add(this.myStatusBar); - this.Controls.Add(this.toolBarTool); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.IsMdiContainer = true; - this.Menu = this.mainMenu1; - this.Name = "Form1"; - this.Text = "Sample Import / Export"; - this.Activated += new System.EventHandler(this.Form1_Activated); - this.ResumeLayout(false); - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - - private void menuItem2_Click(object sender, System.EventArgs e) - { - - this.Cursor = System.Windows.Forms.Cursors.WaitCursor; - this.OnNewFile(); - } - - private void menuItem3_Click(object sender, System.EventArgs e) - { - if (this.MdiChildren.Length > 0) - this.ActiveMdiChild.Close(); - - } - - private void ImportBRep_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = ModelFormat.BREP; - curForm.ImportModel(this.myModelFormat); - } - - private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - switch (toolBarTool.Buttons.IndexOf(e.Button)) - { - case 0: - this.Cursor = System.Windows.Forms.Cursors.WaitCursor; - this.OnNewFile(); - break; - case 1: - AboutDialog myDlg = new AboutDialog(); - myDlg.ShowDialog(this); - break; - - case 2: //just separator - break; - case 3: - if (curForm == null) - return; - curForm.SetDisplayMode(0); //wireframe - this.wireframe.Enabled = false; - this.shading.Enabled = true; - this.transparency.Enabled = false; - break; - case 4: - if (curForm == null) - return; - curForm.SetDisplayMode(1); //shading - this.shading.Enabled = false; - this.wireframe.Enabled = true; - this.transparency.Enabled = true; - break; - case 5: - if (curForm == null) - return; - curForm.ChangeColor(true); - break; - case 6: - if (curForm == null) - return; - MaterialDialog m = new MaterialDialog(); - m.View = curForm.View; - m.ShowDialog(curForm); - break; - case 7: - if (curForm == null) - return; - IE_WinForms.TransparencyDialog t = new TransparencyDialog(); - t.View = curForm.View; - t.ShowDialog(curForm); - break; - case 8: - if (curForm == null) - return; - curForm.DeleteObjects(); - break; - default: - break; - } - } - - private void toolBar1_MouseHover(object sender, System.EventArgs e) - { - this.myStatusBar.Text = "Document toolbar"; - } - - private void toolBar1_MouseLeave(object sender, System.EventArgs e) - { - this.myStatusBar.Text = ""; - } - - private void ImportIges_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.IGES; - curForm.ImportModel(this.myModelFormat); - } - - private void ImportStep_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.STEP; - curForm.ImportModel(this.myModelFormat); - } - - private void ExportBRep_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.BREP; - curForm.ExportModel(this.myModelFormat); - } - - private void ExportIges_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.IGES; - curForm.ExportModel(this.myModelFormat); - } - - private void ExportStep_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.STEP; - curForm.ExportModel(this.myModelFormat); - } - - private void ExportStl_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.STL; - curForm.ExportModel(this.myModelFormat); - } - - private void ExportVrml_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.VRML; - curForm.ExportModel(this.myModelFormat); - } - - private void ExportImage_Click(object sender, System.EventArgs e) - { - Form2 curForm = (Form2)this.ActiveMdiChild; - if (curForm == null) - return; - this.myModelFormat = IE_WinForms.ModelFormat.IMAGE; - curForm.ExportModel(this.myModelFormat); - } - - private void HelpAbout_Click(object sender, System.EventArgs e) - { - AboutDialog myDlg = new AboutDialog(); - myDlg.ShowDialog(this); - } - - private void ViewToolbar_Click(object sender, System.EventArgs e) - { - - if (this.ViewToolbar.Checked) - { - if (this.MdiChildren.Length > 0) - { - this.New.Visible = false; - this.About.Visible = false; - } - else - this.toolBarTool.Hide(); - this.ViewToolbar.Checked = false; - } - else - { - if (this.MdiChildren.Length > 0) - { - this.New.Visible = true; - this.About.Visible = true; - } - else - this.toolBarTool.Show(); - this.ViewToolbar.Checked = true; - } - - } - - private void ViewStatusBar_Click(object sender, System.EventArgs e) - { - if (this.ViewStatusBar.Checked) - { - this.myStatusBar.Hide(); - this.ViewStatusBar.Checked = false; - } - else - { - this.myStatusBar.Show(); - this.ViewStatusBar.Checked = true; - } - } - - public void OnNewFile() - { - Form2 newForm = new Form2(); - newForm.MdiParent = this; - IE_WinForms.Form1.myNbOfChildren = IE_WinForms.Form1.myNbOfChildren + 1; - newForm.SetIndex (IE_WinForms.Form1.myNbOfChildren, 1); - newForm.Show(); - newForm.InitView(); - newForm.InitV3D(); - this.FileExport.Visible = true; - this.FileImport.Visible = true; - this.Window.Visible = true; - this.wireframe.Visible = true; - this.shading.Visible = true; - this.color.Visible = true; - this.material.Visible = true; - this.transparency.Visible = true; - this.delete.Visible = true; - this.Cursor = System.Windows.Forms.Cursors.Default; - this.toolBarView.Visible = true; - } - - private void FileImport_Popup(object sender, System.EventArgs e) - { - IE_WinForms.Form2 curForm = (IE_WinForms.Form2)this.ActiveMdiChild; - if (curForm == null) - return; - if (curForm.View.IsObjectSelected()) - { - this.ExportBRep.Enabled = true; - this.ExportIges.Enabled = true; - this.ExportStep.Enabled = true; - this.ExportVrml.Enabled = true; - this.ExportStl.Enabled = true; - } - - } - - private void menuItem1_Click(object sender, System.EventArgs e) - { - this.Close(); - } - - private void File_Popup(object sender, System.EventArgs e) - { - if (this.MdiChildren.Length > 0) - this.FileClose.Enabled = true; - else - { - this.FileClose.Enabled = false; - this.FileExport.Visible = false; - this.FileImport.Visible = false; - } - } - - private void menuItem4_Click(object sender, System.EventArgs e) - { - IE_WinForms.Form2 curForm = (IE_WinForms.Form2)this.ActiveMdiChild; - IE_WinForms.Form2 newView = new Form2(); - newView.MdiParent = this; - newView.Show(); - newView.InitView(); - newView.SetContext(curForm.View); - newView.View.CreateNewView(newView.Handle); - newView.SetNextIndex(curForm); - } - - private void WindowCascade_Click(object sender, System.EventArgs e) - { - this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade); - } - - private void WindowTile_Click(object sender, System.EventArgs e) - { - this.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical); - } - - public void SelectionChanged() - { - if (this.MdiChildren.Length == 0) - return; - IE_WinForms.Form2 curForm = (IE_WinForms.Form2)this.ActiveMdiChild; - if (curForm == null) - return; - switch (curForm.View.DisplayMode()) - { - case -1: - this.shading.Enabled = false; - this.wireframe.Enabled = false; - break; - case 0: - this.wireframe.Enabled = false; - this.shading.Enabled = true; - this.transparency.Enabled = false; - break; - case 1: - this.wireframe.Enabled = true; - this.shading.Enabled = false; - this.transparency.Enabled = true; - break; - case 10: - this.wireframe.Enabled = true; - this.shading.Enabled = true; - this.transparency.Enabled = true; - break; - default: - break; - } - bool IsSelected = curForm.View.IsObjectSelected(); - if (IsSelected) - { - this.color.Enabled = true; - this.material.Enabled = true; - this.delete.Enabled = true; - } - else - { - this.color.Enabled = false; - this.material.Enabled = false; - this.transparency.Enabled = false; - this.delete.Enabled = false; - } - if (curForm.DegenerateMode) - { - this.HlrOff.Pushed = false; - this.HlrOn.Pushed = true; - } - else - { - this.HlrOff.Pushed = true; - this.HlrOn.Pushed = false; - } - if (curForm.Mode == IE_WinForms.CurrentAction3d.CurAction3d_WindowZooming) - this.ZoomWin.Pushed = false; - - } - - public StatusBar StatusBar - { - get - { - return this.myStatusBar; - } - } - - public void OnFileClose() - { - if (this.MdiChildren.Length <= 1) - { - this.FileClose.Enabled = false; - this.Window.Visible = false; - this.wireframe.Visible = false; - this.shading.Visible = false; - this.color.Visible = false; - this.material.Visible = false; - this.transparency.Visible = false; - this.delete.Visible = false; - this.toolBarView.Visible = false; - } - } - - private void toolBarView_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) - { - IE_WinForms.Form2 curForm = (IE_WinForms.Form2)this.ActiveMdiChild; - if (curForm == null) - return; - switch (toolBarView.Buttons.IndexOf(e.Button)) - { - case 0: - curForm.View.ZoomAllView(); - break; - case 1: - curForm.Mode = CurrentAction3d.CurAction3d_WindowZooming; - this.ZoomWin.Pushed = true; - break; - case 2: - curForm.Mode = CurrentAction3d.CurAction3d_DynamicZooming; - break; - case 3: - curForm.Mode = CurrentAction3d.CurAction3d_DynamicPanning; - break; - case 4: - curForm.Zoom = curForm.View.Scale(); - curForm.Mode = CurrentAction3d.CurAction3d_GlobalPanning; - break; - case 5: - curForm.View.FrontView(); - break; - case 6: - curForm.View.BackView(); - break; - case 7: - curForm.View.TopView(); - break; - case 8: - curForm.View.BottomView(); - break; - case 9: - curForm.View.LeftView(); - break; - case 10: - curForm.View.RightView(); - break; - case 11: - curForm.View.AxoView(); - break; - case 12: - curForm.Mode = CurrentAction3d.CurAction3d_DynamicRotation; - break; - case 13: - curForm.View.Reset(); - break; - case 14: - curForm.View.SetDegenerateModeOn(); - curForm.DegenerateMode = true; - this.HlrOff.Pushed = false; - this.HlrOn.Pushed = true; - break; - case 15: - curForm.View.SetDegenerateModeOff(); - curForm.DegenerateMode = false; - this.HlrOn.Pushed = false; - this.HlrOff.Pushed = true; - break; - default: - break; - } - } - - private void Form1_Activated(object sender, System.EventArgs e) - { - if (this.toolBarView.Visible) - this.SelectionChanged(); - } - - private void toolBarView_MouseHover(object sender, System.EventArgs e) - { - this.myStatusBar.Text = "View toolbar"; - } - - private void toolBarView_MouseLeave(object sender, System.EventArgs e) - { - this.myStatusBar.Text = ""; - } - - } - -} \ No newline at end of file diff --git a/samples/CSharp/WinForms/Form1.resx b/samples/CSharp/WinForms/Form1.resx deleted file mode 100644 index 4a7e017a69..0000000000 --- a/samples/CSharp/WinForms/Form1.resx +++ /dev/null @@ -1,660 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - 17, 17 - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - 141, 18 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw - MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT - eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA - AAB6GAAAAk1TRnQBSQFMAgEBGAEAAR0BAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQC - AAEoAwABQAMAAYADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB - 3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB - AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B - MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC - AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC - AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB - ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B - AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB - MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB - MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB - MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB - mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB - ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB - zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB - mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB - mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB - AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB - /wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB - mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC - AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB - AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C - AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB - mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB - AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB - /wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC - /wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC - /wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB - AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8A/wD/ - AP8A/wAPAAH7PgAD+wHsPQAB+wIAAewIAAP7NAAC7AYAAvsBAAL7DQAB7CMABOwGAAL7AQAC+w4AAewb - AAL7AwAC7AIAAewBAAHsBQAC+wEAAvsPAAXsAQAC7BUAA/sB7AQAAuwFAAL7AQAC+w8AAeweAAHsAvsD - AAPsBQAD+xAAAeweAAHsAwAB+wEAAewBAAHsGAAB7B4AAewEAAHsAgAB7BgAAewfAAHsAwAB7AMAA/sw - AAP7AgAC7AEAAewBAALsAwAB+xUAAewdAAPsAgAC7BsAAewcAAHsAQAD7DwAAuw/AAHsQgAB+ywAA/sQ - AAH7CwABAQnsAwAJ7AEBCwAC+w4AAfsBAAH7AQAB+wkAAgEHAALsAgAB7AH+BwACAQgABPsKAAoBCAAB - AQEAAQEGAAHsAQAB7AEAAewBAAH+BgABAQEAAQEFAAL7DgAB7AEBAwAD+wEAAgEHAAEBAgABAQX+AewC - /gLsAgAG/gEAAv4BAQQAAfsPAAHsAQABAQMAAfsCAAHsAQABAQUAAfsBAQIAAQEFAAHsAgAC7AIAAf4F - AAEBAgABAQQAAfsCAAH+DAAB7AIACgEFAAEBAfsBAAEBBQAB7AIAAuwCAAH+BQABAQIAAfsDAAP7AQAB - +wH+CwAB7AIAAf4FAAHsAgAB7AIAA/sBAQL7AQEFAAHsAgAC7AIAAf4FAAEBAQAB+wEBBAAB+wIAAvsF - /gEAAv4DAAHsAgAB/gUAAewCAAHsBQABAQH7AQABAQUAAewCAALsAgAB/gUAAQEG+wYAAf4KAAHsAgAB - /gUAAewCAAHsBAAB+wEBAgABAQUAAewCAALsAgAB/gUAAQEBAAH7AQEJAAH+CgAB7AIAAf4FAAHsAgAB - 7AUAAQEC7AEBBuwCAArsAQECAAH7CQAB/goAAewCAAH+BQAB7AIAAewGAAEBAQABAQYAAewBAAHsAQAB - 7AEAAf4GAAEBAQABAQkAAf4KAArsAgAB7AcAAgEHAALsAgAB7AH+BwACARUAAewBAAH+BgAB7AEAAewI - AAEBCewDAAnsAQEJAAH+DAAB7AH+BwAC7CgAAf4NAArsOQAB+xkACuwGAArsCwAD+wgAAfsJAQYAAewB - /gcAAuwFAAHsAf4HAALsCQAB+wEAAfsBAAH7BwABAQH7BwABAQHsBQAB7AEAAf4GAAHsAQAB7AQAAewB - AAH+BgAB7AEAAewKAAH7CQABAQEAAfsGAAEBAQAB7AQAAewCAAoBAwAB7AIABv4B7AL+AewHAALsAfsB - AAPsBQABAQIAAfsBAAH7A/4BAQL+AewDAAHsAgABAQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB7AQAAfsB - AAHsAgAB+wMAAewB+wQAAQEDAAL7AwABAQIAAewDAAHsAgABAQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB - 7AMAAfsCAAHsBgAB7AEAAfsDAAEBAgAD+wMAAQECAAHsAwAB7AIAAQEFAAHsAgABAQMAAewCAAH+BQAB - 7AIAAewCAAb7BAAF+wIAAQECAAH+BQABAQIAAewDAAHsAgABAQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB - 7AMAAfsCAAHsBgAB7AEAAfsDAAEBAgAB/gUAAQECAAHsAwAB7AIAAQEBAAT7AewCAAEBAwAB7AIAAf4F - AAHsAgAB7AQAAfsBAAHsAgAB+wMAAewB+wQAAQECAAH+BQABAQIAAewDAAPsAQEB7AL7A+wCAAEBAwAK - AQIAAewGAAPsAfsBAAPsBQAKAQIAAewEAAHsAQABAQEAAfsBAAH7AgAB7AEAAQEEAAEBAQAB/gYAAQEB - AAHsCQAB+woAAewBAAH+BgAB7AEAAewFAAHsAQEBAAH7AgAB+wIAAewBAQUAAQEB/gIAAfsEAAEBAewH - AAH7AQAB+wEAAfsJAAHsAf4HAALsBgAKAQYAAgED+wUBCAAD+wsACuwNAAH7CQAB+wEAAfsBAAH7DQAB - +yQAAfsKAAH7NQAB+wkAAfsIAAP7CgAD+w4AAfshAAL7DAAC+wIAAewDAAfsA/sB7BYAAfsIAAH7AewB - AwoAAfsBAAH7DgAB+xcAA/sJAAEDCQAB+xEAAewWAAH7AQAB+wEAAfskAAHsDwAB+wgAAfsPAAXsBQAB - 7AYABOwCAAHsBwAF7AIAA/sHAAH7DQAB7AYAAewEAAHsBAAB7AUAAewBAAHsBQAB7AYAAewCAAH7AwAB - +wkAAfsIAAHsBwAB7AMAAewEAAHsBgAC7AUAAewHAAHsBAAB+wsAAfsGAALsBwAC7AIAAewDAALsBgAC - 7AQAAuwHAAEDAewCAAX7BQAF+wUAAewJAAHsAgAB7AMAAewIAAHsBAAB7AQAA/sCAAHsAwAB+wsAAfsG - AAHsCQAB7AIAAewDAAHsCAAB7AQAAewCAAL7BQAB7AQAAfsEAAH7BAAB+wcAAuwHAALsAgAB7AMAAuwG - AALsBQAB7AcAAuwJAAH7CwAB+wEAAewHAAHsAwAB7AQAAewGAALsBQAB7AcAAewKAAH7CAAB+wEAAfsD - AAHsBQAB7AH7AQAB+wEAAfsFAAHsBAAB7AEAAewBAAP7AgAB7AUAAewJAAH7AQAB+wEAAfsGAAL7BQAF - 7AIABfsE7AEABuwIAAXsCwAD+wcAA/sKAAP7AQAB+yUAAfsfAAb4CAAG+A0AAgcC7AUADQoIAAH4BvsB - +AYAAfgGoAH4CAACCwLvAQcD7AYAAx4BAANrAQACNwFtCAABrgFYBvsBWAGuBAABrgGZBqABmQGuBQAC - CwKSAU8CBwHvAuwGAAMBAQADBgEAAvsB7AgAAVgBcwb7AXMBWAQAAewBHAagARwB7AUAAW0B7QEHAU8B - AgJPAQcC7AFtAQsEAAMBAQADBgEAAvsB7AcAAT8B+wFYBnMBRgH7BAAB7AGZBhwBmQHsBQAB7AEHAU8B - 7QECAe0BAgEHA+wFAAMLAQADDQEAAikBQwcAAfkBLAH7BkYB+QH7BAAB7AGgBpkBoAHsBAABbwHvAQcB - AgEHAXIBBwFyAQcD7AUAAwIBAAMEAQADBgMABGIC+QEsATIG+QH7BAAB7AigAewEAAHsAQcBcgECAXIB - BwJyAQcD7AUAA/oBAAP8AQAD/gMAB/kB+wb5AfsEAAHsCKAB7AQAAewBBwFyAQIBcgEHAgIBBwPsARQB - AQMAA/oBAAP8AQAD/gMABGIC+QEsATIG+QH7BAAB7AigAewEAAHsAgcDcgE1AXIBeQGSA+wEAAMtAQAD - hQEAA4EHAAH5ASwB+wZGAfkB+wQAAewBoAaZAaAB7AMAAUYBkgMHAk8BWAEHAVgBBwGSAuwEAAMeAQAD - KQEAA2EHAAE/AfsBWAZzAUYB+wQAAewBmQYcAZkB7AMAAewCBwLvAeoC7AQHAewB7QQAA/kBAAP7AQAD - /QgAAVgBcwb7AXMBWAQAAewBHAagARwB7AMAAewCBwLsAQAB7AHtAgcCmQHsAe8BCwMAA/kBAAP7AQAD - /QgAAa4BWAb7AVgBrgQAAa4BmQagAZkBrgMAAewB7wEHAuwBAAHsAgcBmQJYAm4EAAMgAQADNwEAA6UJ - AAH4BvsB+AYAAfgGoAH4BAACbgIHAewBDgMHAfsCbhsABvgIAAb4BwAC7AEHBew6AATsLQAG+woABuwp - AAFYBqcBWAgAAewG+wHsGwAC+woAAVgBhgYAAYYBWAYAAa4BWAb7AVgBrgcACf8KAAL7CgAB+wFYBgAB - WAH7BgAB7Aj7AewHAAn/FgAB+wGuBlEBrgH7BgAB7Aj7AewHAAn/CgAB+wsAAfsBAAauAQAB+wYAAewI - +wHsBwAJ/woAAfsLAAH7CAAB+wYAAewI+wHsBwAJ/woAAfsLAAH7CAAB+wYAAewI+wHsBwAJ/woAAvsK - AAH7CAAB+wYAAewI+wHsBwAJ/wsAAvsJAAH7AQAGrgEAAfsGAAHsAfsGWAH7AewHAAn/BwAB+wQAAvsI - AAH7Aa4GUQGuAfsGAAHsAVgGcwFYAewHAAb/CgAB+wUAAfsIAAH7AVgGAAFYAfsGAAHsAXMG+wFzAewH - AAb/AQAB/wgAAvsDAAL7CAABWAGGBgABhgFYBgABrgFYBvsBWAGuBwAG/wsABfsKAAFYBqcBWAgAAewG - +wHsKQAG+woABuxFAAFCAU0BPgcAAT4DAAEoAwABQAMAAYADAAEBAQABAQYAAQQWAAP//wACAAH9B/8B - +AF/Bv8B/QG/AccB/wHAAR8BwAEfAf8BnwGTAf8CzwHfAc8B/gEfAZMB/wLXAd8B1wE5AY8BkwH/AdgB - AwHfAdsBwwHPAZMB/wLbAd8B2wHxAscB+wLbAd8B2wH3AVcB/wHBAtsB3wHbAfcBtwH/AZsC2wHfAdsB - +wGoAf8BrwHAARsBwAEbARkBTgH/AbUC6wHvAesBwgE/Af8BuQLzAfcB8wHBAv8BEQH4AQMB+AEDAecC - /wG/BP8B9wf/Af4F/wHxAf8B/gH/AeABBwEAAT8B+QH/AfoBvwHnAfMBPwGfAeEB/wGAAR8B6wH1AV8B - rwGfAf8BnAFPAewBAAFgAQcBoAEPAa4B1wHNAfYBbwG3AacB5wGwAQMB5QH2AW8BtwEDAesBtwHbAQEB - 9gFvAacBoAEBAbcB2wHlAfYBbwGAAu0BtwHbAc0B9gFvAacC7QG3AdsB4AEGAQABNwLtAbcB2wH1AfoB - rwHXAu0BgAEbAfkB/AHPAecB4AENAdcB6wH8AQAB4AEHAvUB5wHzBP8C+QHwAQME/wH8AQEB/gP/AYAB - HwGAAR8B/AF/AYABHwGfAc8BnwHPAfoBvwGfAc8BrwHXAa8B1wH+Af8BrwHXAbABAwGwAQMB8AGPAbQB - AwG3AdsBtwHbAdYB5wG5AdsBtwHbAbcB2wG3AesBsQHbAbcB2wG3AdsBAwHBAbcB2wG3AdsBtwHbAbcB - 6wG3AdsBtAEbAbcB2wHWAecBtwHbAYABGwGAARsB8AGPAYABGwHVAWsB1wHrAf4B/wHXAesB5QGzAeYB - 8wH6Ab8B5wHzAfABAwHwAQMB/AF/AfABAwH/Ae8B+gG/Af4E/wH3Af4G/wH7Af4B/wEfAfgB/wH9BP8B - PwH8AdwBAAF/Af8B/gH/AR8B+gHPAf0BPwH/AfwBfwHPAfcB5wH9AZ8B/wH6Ab8B5wH/AfMB/QHPAf0B - /gH/AfIBDwG5AQ0B5AEYAf4B/wH5AfcBvAH1AfMB7QHfAfcC+wG9AfkC9wG/AfsB8wH5AbkB+QHnAfMB - BwHBAfcB/QG7Af0B7wEbAb8B+wH3Af0BuwH9AewB+wHeAfcB8wH5AbkB+QH3AfMB/gH/AesB+wG9AfkC - 9wH+Af8BXQHyAb4B9QEbAe8B+gG/AT4BDAIBAfwBHwH8AX8BHwH4Ab8D/wH+A/8B/gEHAfgBHwH8AQcB - gAEDAfwBAwHwAQ8B8AEHAYABAwH4AQEB4AEHAcABBwGAAQMB+AEBAeABBwHAAQMBgAEDAfABAQHgAQcB - wAEDAYABAwHwAQEB4AEHAYABAwGAAQMBAAEBAeABBwGAAQMBgAEDAQABAQHgAQcBgAEBAYABAwEAAQEB - 4AEHAYABAQGAAQMB8AEBAeABBwEAAQEBgAEDAfABAQHgAQcBAAEBAYABAwH4AQEB4AEHAQABAQGAAQMB - +AEBAeABBwEAAQMBgAEDAfwBAwHwAQ8BAAEPAYABAwH+AQcB+AEfAcABPwb/AfAF/wH4AR8B+AEfAv8B - /gE/AfABDwHwAQ8B4AEDAfwBHwLnAeABBwHgAQMB/AEfAucB4AEHAeABAwH+AX8B4AEHAeABBwHgAQMB - /AE/AegBFwHgAQcB4AEDAfwBPwHvAfcB4AEHAeABAwH8AT8B7wH3AeABBwHgAQMB/AEfAe8B9wHgAQcB - 4AEDAfIBDwHoARcB4AEHAeABAwHhAQcB4AEHAeABBwHgAQMB4QGHAucB4AEHAeABBwHgAQcC5wHgAQcB - 4AEPAfABDwHwAQ8B8AEPAeABHwH4AR8B+AEfAfgBHwj/Cw== - - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - Form1 - - - 80 - - - True - - - Private - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/Form2.cs b/samples/CSharp/WinForms/Form2.cs deleted file mode 100644 index 4c7b7920e4..0000000000 --- a/samples/CSharp/WinForms/Form2.cs +++ /dev/null @@ -1,945 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - - -namespace IE_WinForms -{ - public enum CurrentAction3d - { - CurAction3d_Nothing, - CurAction3d_DynamicZooming, - CurAction3d_WindowZooming, - CurAction3d_DynamicPanning, - CurAction3d_GlobalPanning, - CurAction3d_DynamicRotation - } - public enum CurrentPressedKey - { - CurPressedKey_Nothing, - CurPressedKey_Ctrl, - CurPressedKey_Shift - } - public enum ModelFormat - { - BREP, - STEP, - IGES, - VRML, - STL, - IMAGE - } - /// - /// Summary description for Form2. - /// - public class Form2 : System.Windows.Forms.Form - { - private System.ComponentModel.IContainer components; - - public Form2() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // Create OCCT proxy object - // - myOCCTProxy = new OCCTProxy(); - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing; - myDegenerateModeIsOn = true; - IsRectVisible = false; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form2)); - this.imageList1 = new System.Windows.Forms.ImageList(this.components); - this.myPopup = new System.Windows.Forms.ContextMenu(); - this.menuItem1 = new System.Windows.Forms.MenuItem(); - this.myPopupObject = new System.Windows.Forms.ContextMenu(); - this.ContextWireframe = new System.Windows.Forms.MenuItem(); - this.ContextShading = new System.Windows.Forms.MenuItem(); - this.ContextColor = new System.Windows.Forms.MenuItem(); - this.ContextMaterial = new System.Windows.Forms.MenuItem(); - this.ContMatBrass = new System.Windows.Forms.MenuItem(); - this.ContMenBronze = new System.Windows.Forms.MenuItem(); - this.ContMenCopper = new System.Windows.Forms.MenuItem(); - this.ContMenGold = new System.Windows.Forms.MenuItem(); - this.ContMenPewt = new System.Windows.Forms.MenuItem(); - this.ContMenPlaster = new System.Windows.Forms.MenuItem(); - this.ContMenPlastic = new System.Windows.Forms.MenuItem(); - this.ContMenSilver = new System.Windows.Forms.MenuItem(); - this.ContMenTranc = new System.Windows.Forms.MenuItem(); - this.ContMenDelete = new System.Windows.Forms.MenuItem(); - // - // imageList1 - // - this.imageList1.ImageSize = new System.Drawing.Size(16, 16); - this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); - this.imageList1.TransparentColor = System.Drawing.Color.Transparent; - // - // myPopup - // - this.myPopup.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuItem1}); - // - // menuItem1 - // - this.menuItem1.Index = 0; - this.menuItem1.Text = "Change &Background"; - this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click); - // - // myPopupObject - // - this.myPopupObject.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.ContextWireframe, - this.ContextShading, - this.ContextColor, - this.ContextMaterial, - this.ContMenTranc, - this.ContMenDelete}); - this.myPopupObject.Popup += new System.EventHandler(this.myPopupObject_Popup); - // - // ContextWireframe - // - this.ContextWireframe.Index = 0; - this.ContextWireframe.Text = "Wireframe"; - this.ContextWireframe.Click += new System.EventHandler(this.ContextWireframe_Click); - // - // ContextShading - // - this.ContextShading.Index = 1; - this.ContextShading.Text = "Shading"; - this.ContextShading.Click += new System.EventHandler(this.ContextShading_Click); - // - // ContextColor - // - this.ContextColor.Index = 2; - this.ContextColor.Text = "Color"; - this.ContextColor.Click += new System.EventHandler(this.ContextColor_Click); - // - // ContextMaterial - // - this.ContextMaterial.Index = 3; - this.ContextMaterial.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.ContMatBrass, - this.ContMenBronze, - this.ContMenCopper, - this.ContMenGold, - this.ContMenPewt, - this.ContMenPlaster, - this.ContMenPlastic, - this.ContMenSilver}); - this.ContextMaterial.Text = "Material"; - // - // ContMatBrass - // - this.ContMatBrass.Index = 0; - this.ContMatBrass.Text = "&Brass"; - this.ContMatBrass.Click += new System.EventHandler(this.ContMatBrass_Click); - // - // ContMenBronze - // - this.ContMenBronze.Index = 1; - this.ContMenBronze.Text = "&Bronze"; - this.ContMenBronze.Click += new System.EventHandler(this.ContMenBronze_Click); - // - // ContMenCopper - // - this.ContMenCopper.Index = 2; - this.ContMenCopper.Text = "&Copper"; - this.ContMenCopper.Click += new System.EventHandler(this.ContMenCopper_Click); - // - // ContMenGold - // - this.ContMenGold.Index = 3; - this.ContMenGold.Text = "&Gold"; - this.ContMenGold.Click += new System.EventHandler(this.ContMenGold_Click); - // - // ContMenPewt - // - this.ContMenPewt.Index = 4; - this.ContMenPewt.Text = "&Pewter"; - this.ContMenPewt.Click += new System.EventHandler(this.ContMenPewt_Click); - // - // ContMenPlaster - // - this.ContMenPlaster.Index = 5; - this.ContMenPlaster.Text = "&Plaster"; - this.ContMenPlaster.Click += new System.EventHandler(this.ContMenPlaster_Click); - // - // ContMenPlastic - // - this.ContMenPlastic.Index = 6; - this.ContMenPlastic.Text = "&Plastic"; - this.ContMenPlastic.Click += new System.EventHandler(this.ContMenPlastic_Click); - // - // ContMenSilver - // - this.ContMenSilver.Index = 7; - this.ContMenSilver.Text = "&Silver"; - this.ContMenSilver.Click += new System.EventHandler(this.ContMenSilver_Click); - // - // ContMenTranc - // - this.ContMenTranc.Index = 4; - this.ContMenTranc.Text = "&Trancparency"; - this.ContMenTranc.Click += new System.EventHandler(this.ContMenTranc_Click); - // - // ContMenDelete - // - this.ContMenDelete.Index = 5; - this.ContMenDelete.Text = "&Delete"; - this.ContMenDelete.Click += new System.EventHandler(this.ContMenDelete_Click); - // - // Form2 - // - this.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(320, 261); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.Name = "Form2"; - this.Text = "Document"; - this.WindowState = System.Windows.Forms.FormWindowState.Maximized; - this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyDown); - this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseDown); - this.SizeChanged += new System.EventHandler(this.Form2_SizeChanged); - this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseUp); - this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyUp); - this.Closed += new System.EventHandler(this.Form2_Closed); - this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form2_Paint); - this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form2_MouseMove); - } - #endregion - - private System.Windows.Forms.ImageList imageList1; - private System.Windows.Forms.ContextMenu myPopup; - private System.Windows.Forms.ContextMenu myPopupObject; - private System.Windows.Forms.MenuItem ContextWireframe; - private System.Windows.Forms.MenuItem ContextShading; - private System.Windows.Forms.MenuItem ContextColor; - private System.Windows.Forms.MenuItem ContextMaterial; - private System.Windows.Forms.MenuItem ContMatBrass; - private System.Windows.Forms.MenuItem ContMenBronze; - private System.Windows.Forms.MenuItem ContMenCopper; - private System.Windows.Forms.MenuItem ContMenGold; - private System.Windows.Forms.MenuItem ContMenPewt; - private System.Windows.Forms.MenuItem ContMenPlaster; - private System.Windows.Forms.MenuItem ContMenPlastic; - private System.Windows.Forms.MenuItem ContMenSilver; - private System.Windows.Forms.MenuItem ContMenTranc; - private System.Windows.Forms.MenuItem ContMenDelete; - private System.Windows.Forms.MenuItem menuItem1; - - private OCCTProxy myOCCTProxy; - private int myDocumentIndex, myViewIndex; - - public void InitV3D() - { - if (!myOCCTProxy.InitViewer(this.Handle)) - MessageBox.Show("Fatal Error during the graphic initialisation", "Error!", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - - public bool ImportBRep(System.String filename) - { - return myOCCTProxy.ImportBrep(filename); - } - - private void Form2_SizeChanged(object sender, System.EventArgs e) - { - myOCCTProxy.UpdateView(); - } - - private void Form2_Paint(object sender, System.Windows.Forms.PaintEventArgs e) - { - myOCCTProxy.RedrawView(); - myOCCTProxy.UpdateView(); - } - - protected CurrentAction3d myCurrentMode; - protected CurrentPressedKey myCurrentPressedKey; - protected float myCurZoom; - protected bool myDegenerateModeIsOn; - protected int myXmin; - protected int myYmin; - protected int myXmax; - protected int myYmax; - protected int theButtonDownX; - protected int theButtonDownY; - // for erasing of rectangle - protected int theRectDownX; - protected int theRectDownY; - protected bool IsRectVisible; - - private void Form2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) - { - switch (e.Button) - { - case MouseButtons.Left: - myXmin = e.X; myYmin = e.Y; - myXmax = e.X; myYmax = e.Y; - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - // start the dynamic zooming.... - myCurrentMode = CurrentAction3d.CurAction3d_DynamicZooming; - else - { - switch (myCurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift) - MultiDragEvent(myXmax, myYmax, -1); - else - DragEvent(myXmax, myYmax, -1); - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - if (!myDegenerateModeIsOn) - myOCCTProxy.SetDegenerateModeOn(); - //start the rotation - myOCCTProxy.StartRotation(e.X, e.Y); - break; - case IE_WinForms.CurrentAction3d.CurAction3d_WindowZooming: - this.Cursor = System.Windows.Forms.Cursors.Hand; - break; - default: - break; - } - } - break; - case MouseButtons.Right: - //MessageBox.Show("right mouse button is down"); - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - { - if (!myDegenerateModeIsOn) - myOCCTProxy.SetDegenerateModeOn(); - myOCCTProxy.StartRotation(e.X, e.Y); - } - else - Popup(e.X, e.Y); - break; - default: - break; - } - } - - private void Form2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) - { - if (e.Shift) - myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Shift; - else if (e.Control) - myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Ctrl; - } - - private void Form2_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) - { - myCurrentPressedKey = CurrentPressedKey.CurPressedKey_Nothing; - } - - protected void MultiDragEvent(int x, int y, int theState) - { - if (theState == -1) - { - theButtonDownX = x; - theButtonDownY = y; - } - else if (theState == 1) - myOCCTProxy.ShiftSelect(Math.Min(theButtonDownX, x), Math.Min(theButtonDownY, y), - Math.Max(theButtonDownX, x), Math.Max(theButtonDownY, y)); - } - - protected void DragEvent(int x, int y, int theState) - { - if (theState == -1) //mouse is down - { - theButtonDownX = x; - theButtonDownY = y; - } - else if (theState == 1) //mouse is up - { - myOCCTProxy.Select(Math.Min(theButtonDownX, x), Math.Min(theButtonDownY, y), - Math.Max(theButtonDownX, x), Math.Max(theButtonDownY, y)); - } - } - - protected void Popup(int x, int y) - { - System.Drawing.Point p = new Point(x, y); - if (this.myOCCTProxy.IsObjectSelected()) - this.myPopupObject.Show(this, p); - else - this.myPopup.Show(this, p); - } - - private void Form2_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) - { - switch (e.Button) - { - case MouseButtons.Left: - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - return; - switch (myCurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - if (e.X == myXmin && e.Y == myYmin) - { - myXmax = e.X; myYmax = e.Y; - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift) - MultiInputEvent(myXmax, myYmax); - else - InputEvent(myXmax, myYmax); - } - else - { - myXmax = e.X; myYmax = e.Y; - DrawRectangle(false); - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift) - MultiDragEvent(myXmax, myYmax, 1); - else - DragEvent(myXmax, myYmax, 1); - } - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - myXmax = e.X; myYmax = e.Y; - DrawRectangle(false); - int ValZWMin = 1; - if (Math.Abs(myXmax - myXmin) > ValZWMin && Math.Abs(myXmax - myYmax) > ValZWMin) - myOCCTProxy.WindowFitAll(myXmin, myYmin, myXmax, myYmax); - this.Cursor = System.Windows.Forms.Cursors.Default; - IE_WinForms.Form1 f = (IE_WinForms.Form1)this.ParentForm; - f.SelectionChanged(); - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - myOCCTProxy.Place(e.X, e.Y, myCurZoom); - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - myCurrentMode = CurrentAction3d.CurAction3d_Nothing; - if (!myDegenerateModeIsOn) - { - myOCCTProxy.SetDegenerateModeOff(); - myDegenerateModeIsOn = false; - } - else - { - myOCCTProxy.SetDegenerateModeOn(); - myDegenerateModeIsOn = true; - } - break; - default: - break; - - } - break; - case MouseButtons.Right: - if (!myDegenerateModeIsOn) - { - myOCCTProxy.SetDegenerateModeOff(); - myDegenerateModeIsOn = false; - } - else - { - myOCCTProxy.SetDegenerateModeOn(); - myDegenerateModeIsOn = true; - } - break; - default: - break; - } - - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.SelectionChanged(); - } - - protected void MultiInputEvent(int x, int y) - { - myOCCTProxy.ShiftSelect(); - } - - protected void InputEvent(int x, int y) - { - myOCCTProxy.Select(); - } - - private void DrawRectangle(bool draw) - { - Graphics gr = Graphics.FromHwnd(this.Handle); - System.Drawing.Pen p = null; - if (this.IsRectVisible || (!draw))//erase the rect - { - int r = myOCCTProxy.GetBGColR(); - int g = myOCCTProxy.GetBGColG(); - int b = myOCCTProxy.GetBGColB(); - p = new Pen(System.Drawing.Color.FromArgb(r, g, b)); - this.IsRectVisible = false; - this.myOCCTProxy.UpdateView(); - } - else if (draw) - { - p = new Pen(System.Drawing.Color.White); - this.IsRectVisible = true; - } - if (p == null) - return; - int x = Math.Min(this.myXmin, this.myXmax); - int y = Math.Min(this.myYmin, this.myYmax); - gr.DrawRectangle(p, x, y, Math.Abs(myXmax - myXmin), Math.Abs(myYmax - myYmin)); - this.theRectDownX = Math.Max(this.myXmin, this.myXmax); - this.theRectDownY = Math.Max(this.myYmin, this.myYmax); - } - - private void Form2_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) //left button is pressed - { - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - { - myOCCTProxy.Zoom(myXmax, myYmax, e.X, e.Y); - myXmax = e.X; myYmax = e.Y; - } - else - { - switch (myCurrentMode) - { - case CurrentAction3d.CurAction3d_Nothing: - DrawRectangle(false); - myXmax = e.X; myYmax = e.Y; - DrawRectangle(true); - break; - case CurrentAction3d.CurAction3d_DynamicZooming: - myOCCTProxy.Zoom(myXmax, myYmax, e.X, e.Y); - myXmax = e.X; myYmax = e.Y; - break; - case CurrentAction3d.CurAction3d_WindowZooming: - DrawRectangle(false); - myXmax = e.X; myYmax = e.Y; - DrawRectangle(true);//add brush here - break; - case CurrentAction3d.CurAction3d_DynamicPanning: - myOCCTProxy.Pan(e.X - myXmax, myYmax - e.Y); - myXmax = e.X; myYmax = e.Y; - break; - case CurrentAction3d.CurAction3d_GlobalPanning: - break; - case CurrentAction3d.CurAction3d_DynamicRotation: - myOCCTProxy.Rotation(e.X, e.Y); - myOCCTProxy.RedrawView(); - break; - default: - break; - } - } - } // e.Button == MouseButtons.Left - else if (e.Button == MouseButtons.Middle) - { - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - { - myOCCTProxy.Pan(e.X - myXmax, myYmax - e.Y); - myXmax = e.X; myYmax = e.Y; - } - }//e.Button=MouseButtons.Middle - else if (e.Button == MouseButtons.Right) //right button is pressed - { - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Ctrl) - myOCCTProxy.Rotation(e.X, e.Y); - } - else // no buttons are pressed - { - myXmax = e.X; myYmax = e.Y; - if (myCurrentPressedKey == CurrentPressedKey.CurPressedKey_Shift) - MultiMoveEvent(e.X, e.Y); - else - MoveEvent(e.X, e.Y); - } - - - } - - protected void MultiMoveEvent(int x, int y) - { - myOCCTProxy.MoveTo(x, y); - } - - protected void MoveEvent(int x, int y) - { - myOCCTProxy.MoveTo(x, y); - } - - public void SetDisplayMode(int aMode) - { - myOCCTProxy.SetDisplayMode(aMode); - } - - public void ChangeColor(bool IsObjectColor) - { - int r, g, b; - if (IsObjectColor) - { - r = myOCCTProxy.GetObjColR(); - g = myOCCTProxy.GetObjColG(); - b = myOCCTProxy.GetObjColB(); - } - else - { - r = myOCCTProxy.GetBGColR(); - g = myOCCTProxy.GetBGColG(); - b = myOCCTProxy.GetBGColB(); - } - System.Windows.Forms.ColorDialog ColDlg = new ColorDialog(); - ColDlg.Color = System.Drawing.Color.FromArgb(r, g, b); - if (ColDlg.ShowDialog() == DialogResult.OK) - { - Color c = ColDlg.Color; - r = c.R; - g = c.G; - b = c.B; - if (IsObjectColor) - myOCCTProxy.SetColor(r, g, b); - else - myOCCTProxy.SetBackgroundColor(r, g, b); - } - this.myOCCTProxy.UpdateCurrentViewer(); - - } - - public void DeleteObjects() - { - myOCCTProxy.EraseObjects(); - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.SelectionChanged(); - } - public void ImportModel(IE_WinForms.ModelFormat format) - { - int theformat = 10; - System.Windows.Forms.OpenFileDialog openDialog = new OpenFileDialog(); - - string DataDir = Environment.GetEnvironmentVariable("CSF_OCCTDataPath"); - - string filter = ""; - - switch (format) - { - case ModelFormat.BREP: - openDialog.InitialDirectory = (DataDir + "\\occ"); - theformat = 0; - filter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case IE_WinForms.ModelFormat.STEP: - openDialog.InitialDirectory = (DataDir + "\\step"); - theformat = 1; - filter = "STEP Files (*.stp *.step)|*.stp; *.step"; - break; - case IE_WinForms.ModelFormat.IGES: - openDialog.InitialDirectory = (DataDir + "\\iges"); - theformat = 2; - filter = "IGES Files (*.igs *.iges)|*.igs; *.iges"; - break; - default: - break; - } - openDialog.Filter = filter + "|All files (*.*)|*.*"; - if (openDialog.ShowDialog() == DialogResult.OK) - { - string filename = openDialog.FileName; - if (filename == "") - return; - this.Cursor = System.Windows.Forms.Cursors.WaitCursor; - if (!myOCCTProxy.TranslateModel(filename, theformat, true)) - MessageBox.Show("Can't read this file", "Error!", - MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = System.Windows.Forms.Cursors.Default; - } - this.myOCCTProxy.ZoomAllView(); - } - - public void ExportModel(ModelFormat format) - { - int theformat = 10; - System.Windows.Forms.SaveFileDialog saveDialog = new SaveFileDialog(); - string DataDir = Environment.GetEnvironmentVariable("CSF_OCCTDataPath"); - string filter = ""; - switch (format) - { - case IE_WinForms.ModelFormat.BREP: - saveDialog.InitialDirectory = (DataDir + "\\occ"); - theformat = 0; - filter = "BREP Files (*.brep *.rle)|*.brep; *.rle"; - break; - case IE_WinForms.ModelFormat.STEP: - saveDialog.InitialDirectory = (DataDir + "\\step"); - theformat = 1; - filter = "STEP Files (*.stp *.step)|*.step; *.stp"; - break; - case IE_WinForms.ModelFormat.IGES: - saveDialog.InitialDirectory = (DataDir + "\\iges"); - theformat = 2; - filter = "IGES Files (*.igs *.iges)| *.iges; *.igs"; - break; - case IE_WinForms.ModelFormat.VRML: - saveDialog.InitialDirectory = (DataDir + "\\vrml"); - theformat = 3; - filter = "VRML Files (*.vrml)|*.vrml"; - break; - case IE_WinForms.ModelFormat.STL: - saveDialog.InitialDirectory = (DataDir + "\\stl"); - theformat = 4; - filter = "STL Files (*.stl)|*.stl"; - break; - case IE_WinForms.ModelFormat.IMAGE: - saveDialog.InitialDirectory = (DataDir + "\\images"); - theformat = 5; - filter = "Images Files (*.bmp *.gif)| *.bmp; *.gif"; - break; - default: - break; - } - saveDialog.Filter = filter; - if (saveDialog.ShowDialog() == DialogResult.OK) - { - string filename = saveDialog.FileName; - if (filename == "") - return; - this.Cursor = System.Windows.Forms.Cursors.WaitCursor; - if (!myOCCTProxy.TranslateModel(filename, theformat, false)) - MessageBox.Show("Can't write this file", "Error!", - MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = System.Windows.Forms.Cursors.Default; - } - } - - private void ContextColor_Click(object sender, System.EventArgs e) - { - this.ChangeColor(true); - } - - private void menuItem1_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.ChangeColor(false); - } - - private void ContextWireframe_Click(object sender, System.EventArgs e) - { - this.SetDisplayMode(0); - this.myOCCTProxy.UpdateCurrentViewer(); - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.SelectionChanged(); - } - - private void ContextShading_Click(object sender, System.EventArgs e) - { - this.SetDisplayMode(1); - this.myOCCTProxy.UpdateCurrentViewer(); - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.SelectionChanged(); - } - - private void ContMenTranc_Click(object sender, System.EventArgs e) - { - IE_WinForms.TransparencyDialog dlg = new TransparencyDialog(); - dlg.View = this.myOCCTProxy; - dlg.ShowDialog(this); - } - - private void ContMenDelete_Click(object sender, System.EventArgs e) - { - this.DeleteObjects(); - } - - private void ContMatBrass_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(0); - } - - private void ContMenBronze_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(1); - } - - private void ContMenCopper_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(2); - } - - private void ContMenGold_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(3); - } - - private void ContMenPewt_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(4); - } - - private void ContMenPlaster_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(5); - } - - private void ContMenPlastic_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(6); - } - - private void ContMenSilver_Click(object sender, System.EventArgs e) - { - this.myOCCTProxy.UpdateCurrentViewer(); - this.myOCCTProxy.SetMaterial(7); - } - - private void toolBar1_MouseHover(object sender, System.EventArgs e) - { - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.StatusBar.Text = "View toolbar"; - - } - - private void toolBar1_MouseLeave(object sender, System.EventArgs e) - { - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.StatusBar.Text = ""; - } - - private void myPopupObject_Popup(object sender, System.EventArgs e) - { - int mode = this.myOCCTProxy.DisplayMode(); - switch (mode) - { - case -1: - break; - case 0: - this.ContextWireframe.Enabled = false; - this.ContextShading.Enabled = true; - this.ContMenTranc.Enabled = false; - break; - case 1: - this.ContextShading.Enabled = false; - this.ContextWireframe.Enabled = true; - this.ContMenTranc.Enabled = true; - break; - case 10: - this.ContextShading.Enabled = true; ; - this.ContextWireframe.Enabled = true; - this.ContMenTranc.Enabled = true; - break; - default: - break; - - } - } - - public OCCTProxy View - { - get - { - return this.myOCCTProxy; - } - set - { - this.myOCCTProxy = value; - } - } - - public void InitView() - { - this.myOCCTProxy.InitOCCTProxy(); - } - - public void SetIndex(int documentIndex, int viewIndex) - { - this.myDocumentIndex = documentIndex; - this.myViewIndex = viewIndex; - this.Text = System.String.Format("Document {0}:{1}", documentIndex, viewIndex); - } - - public void SetNextIndex(Form2 other) - { - SetIndex(other.myDocumentIndex, other.myViewIndex + 1); - } - - public void SetContext(OCCTProxy View) - { - this.myOCCTProxy.SetAISContext(View); - } - - private void Form2_Closed(object sender, System.EventArgs e) - { - IE_WinForms.Form1 parent = (IE_WinForms.Form1)this.ParentForm; - parent.OnFileClose(); - } - - public CurrentAction3d Mode - { - get - { - return this.myCurrentMode; - } - set - { - this.myCurrentMode = value; - } - } - - public float Zoom - { - set - { - this.myCurZoom = value; - } - } - - public bool DegenerateMode - { - get - { - return this.myDegenerateModeIsOn; - } - set - { - this.myDegenerateModeIsOn = value; - } - } - - } - -} \ No newline at end of file diff --git a/samples/CSharp/WinForms/Form2.resx b/samples/CSharp/WinForms/Form2.resx deleted file mode 100644 index f93955ce43..0000000000 --- a/samples/CSharp/WinForms/Form2.resx +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - Private - - - 17, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAw - MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT - eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA - AADoEgAAAk1TRnQBSQFMAgEBEAEAARMBAAEEAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQC - AAEoAwABQAMAAVADAAEBAQABCAYAARQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB - 3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IB - AAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8B - MwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYC - AAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMC - AAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQAB - ZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8B - AAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQAB - MwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQAB - MwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQAB - MwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMB - mQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQAB - ZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYB - zAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMB - mQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgAB - mQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwB - AAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB - /wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQAB - mQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYC - AAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYB - AAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8C - AAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQAB - mQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMB - AAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB - /wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC - /wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC - /wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gB - AAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ACwAB - +z4AA/sB7D0AAfsCAAHsCAAD+zQAAuwGAAL7AQAC+w0AAewjAATsBgAC+wEAAvsOAAHsGwAC+wMAAuwC - AAHsAQAB7AUAAvsBAAL7DwAF7AEAAuwVAAP7AewEAALsBQAC+wEAAvsPAAHsHgAB7AL7AwAD7AUAA/sQ - AAHsHgAB7AMAAfsBAAHsAQAB7BgAAeweAAHsBAAB7AIAAewYAAHsHwAB7AMAAewDAAP7MAAD+wIAAuwB - AAHsAQAC7AMAAfsVAAHsHQAD7AIAAuwbAAHsHAAB7AEAA+w8AALsPwAB7EIAAfs/AAH7CwABAQnsAwAJ - 7AEBCgAC7AGGDgAB+wEAAfsBAAH7CQACAQcAAuwCAAHsAf4HAAIBCQABhgH7AewCAAEKAQQGAAoBCAAB - AQEAAQEGAAHsAQAB7AEAAewBAAH+BgABAQEAAQEGAAHsA/sB7AEKAQABhQEAAYUFAAHsAQEDAAP7AQAC - AQcAAQECAAEBBf4B7AL+AuwCAAb+AQAC/gEBBAABhgFYAa4BhQEEAQoBhQEAAYUCXwGFBAAB7AEAAQED - AAH7AgAB7AEAAQEFAAH7AQECAAEBBQAB7AIAAuwCAAH+BQABAQIAAQEEAAGGAewBrgEAAYoDAAGFAV8B - AAEGAQQDAAHsAgAKAQUAAQEB+wEAAQEFAAHsAgAC7AIAAf4FAAEBAgAB+wQAAYYB7AIAAX0BrAIAAYUB - awHZAccBCgMAAewCAAH+BQAB7AIAAewCAAP7AQEC+wEBBQAB7AIAAuwCAAH+BQABAQEAAfsBAQQAAvsB - hgEAAfsBngHHAQABuAFfAgABCgMAAewCAAH+BQAB7AIAAewFAAEBAfsBAAEBBQAB7AIAAuwCAAH+BQAB - AQb7AQABhgGuBAABsgG4AQoBXwGhAQABCgMAAewCAAH+BQAB7AIAAewEAAH7AQECAAEBBQAB7AIAAuwC - AAH+BQABAQEAAfsBAQgAAaECXwEGAQABhQFfAQABCgMAAewCAAH+BQAB7AIAAewFAAEBAuwBAQbsAgAK - 7AEBAgAB+wgAAQoBhQGhAf4CAAGFAgoDAAHsAgAB/gUAAewCAAHsBgABAQEAAQEGAAHsAQAB7AEAAewB - AAH+BgABAQEAAQEIAAEKAgAB/gQAAQoDAArsAgAB7AcAAgEHAALsAgAB7AH+BwACAQgAAYUBXwGhAf4B - hQFfAQoGAAHsAQAB/gYAAewBAAHsCAABAQnsAwAJ7AEBCQABhQFfAQYBXwGFCAAB7AH+BwAC7CkAAoUL - AArsOQAB+xkACuwGAArsCwAD+wgAAfsJAQYAAewB/gcAAuwFAAHsAf4HAALsCQAB+wEAAfsBAAH7BwAB - AQH7BwABAQHsBQAB7AEAAf4GAAHsAQAB7AQAAewBAAH+BgAB7AEAAewKAAH7CQABAQEAAfsGAAEBAQAB - 7AQAAewCAAoBAwAB7AIABv4B7AL+AewHAALsAfsBAAPsBQABAQIAAfsBAAH7A/4BAQL+AewDAAHsAgAB - AQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB7AQAAfsBAAHsAgAB+wMAAewB+wQAAQEDAAL7AwABAQIAAewD - AAHsAgABAQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB7AMAAfsCAAHsBgAB7AEAAfsDAAEBAgAD+wMAAQEC - AAHsAwAB7AIAAQEFAAHsAgABAQMAAewCAAH+BQAB7AIAAewCAAb7BAAF+wIAAQECAAH+BQABAQIAAewD - AAHsAgABAQUAAewCAAEBAwAB7AIAAf4FAAHsAgAB7AMAAfsCAAHsBgAB7AEAAfsDAAEBAgAB/gUAAQEC - AAHsAwAB7AIAAQEBAAT7AewCAAEBAwAB7AIAAf4FAAHsAgAB7AQAAfsBAAHsAgAB+wMAAewB+wQAAQEC - AAH+BQABAQIAAewDAAPsAQEB7AL7A+wCAAEBAwAKAQIAAewGAAPsAfsBAAPsBQAKAQIAAewEAAHsAQAB - AQEAAfsBAAH7AgAB7AEAAQEEAAEBAQAB/gYAAQEBAAHsCQAB+woAAewBAAH+BgAB7AEAAewFAAHsAQEB - AAH7AgAB+wIAAewBAQUAAQEB/gIAAfsEAAEBAewHAAH7AQAB+wEAAfsJAAHsAf4HAALsBgAKAQYAAgED - +wUBCAAD+wsACuwNAAH7CQAB+wEAAfsBAAH7DQAB+yQAAfsKAAH7NQAB+wkAAfsIAAP7CgAD+w4AAfsh - AAL7DAAC+wIAAewDAAfsA/sB7BYAAfsIAAH7AewBAwoAAfsBAAH7DgAB+xcAA/sJAAEDCQAB+xEAAewW - AAH7AQAB+wEAAfskAAHsDwAB+wgAAfsPAAXsBQAB7AYABOwCAAHsBwAF7AIAA/sHAAH7DQAB7AYAAewE - AAHsBAAB7AUAAewBAAHsBQAB7AYAAewCAAH7AwAB+wkAAfsIAAHsBwAB7AMAAewEAAHsBgAC7AUAAewH - AAHsBAAB+wsAAfsGAALsBwAC7AIAAewDAALsBgAC7AQAAuwHAAEDAewCAAX7BQAF+wUAAewJAAHsAgAB - 7AMAAewIAAHsBAAB7AQAA/sCAAHsAwAB+wsAAfsGAAHsCQAB7AIAAewDAAHsCAAB7AQAAewCAAL7BQAB - 7AQAAfsEAAH7BAAB+wcAAuwHAALsAgAB7AMAAuwGAALsBQAB7AcAAuwJAAH7CwAB+wEAAewHAAHsAwAB - 7AQAAewGAALsBQAB7AcAAewKAAH7CAAB+wEAAfsDAAHsBQAB7AH7AQAB+wEAAfsFAAHsBAAB7AEAAewB - AAP7AgAB7AUAAewJAAH7AQAB+wEAAfsGAAL7BQAF7AIABfsE7AEABuwIAAXsCwAD+wcAA/sKAAP7AQAB - +yUAAfsIAAFCAU0BPgcAAT4DAAEoAwABQAMAAVADAAEBAQABAQUAAYABAhYAA/+BAAH9B/8B+AF/Bv8B - /QG/AccB/wHAAR8BwAEfAf8BnwGTAf8CzwHfAc8B/gEfAZMB/wLXAd8B1wE5AY8BkwH/AdgBAwHfAdsB - wwHPAZMB/wLbAd8B2wHxAscB+wLbAd8B2wH3AVcB/wHBAtsB3wHbAfcBtwH/AZsC2wHfAdsB+wGoAf8B - rwHAARsBwAEbARkBTgH/AbUC6wHvAesBwgE/Af8BuQLzAfcB8wHBAv8BEQH4AQMB+AEDAecC/wG/BP8B - 9wf/Af4H/wH+Af8B4AEHAQABPwHxAf8B+gG/AecB8wE/AZ8B8QGfAYABHwHrAfUBXwGvAcABDwGcAU8B - 7AEAAWABBwGAAYcBrgHXAc0B9gFvAbcBgwGTAbABAwHlAfYBbwG3AZEBgwG3AdsBAQH2AW8BpwGAAZsB - twHbAeUB9gFvAYABlgELAbcB2wHNAfYBbwGnAfABSwG3AdsB4AEGAQABNwHwAWMBtwHbAfUB+gGvAdcB - +wFzAYABGwH5AfwBzwHnAfgBDwHXAesB/AEAAeABBwH8AR8B5wHzBP8B/gF/AfABAwb/Af4D/wGAAR8B - gAEfAfwBfwGAAR8BnwHPAZ8BzwH6Ab8BnwHPAa8B1wGvAdcB/gH/Aa8B1wGwAQMBsAEDAfABjwG0AQMB - twHbAbcB2wHWAecBuQHbAbcB2wG3AdsBtwHrAbEB2wG3AdsBtwHbAQMBwQG3AdsBtwHbAbcB2wG3AesB - twHbAbQBGwG3AdsB1gHnAbcB2wGAARsBgAEbAfABjwGAARsB1QFrAdcB6wH+Af8B1wHrAeUBswHmAfMB - +gG/AecB8wHwAQMB8AEDAfwBfwHwAQMB/wHvAfoBvwH+BP8B9wH+Bv8B+wH+Af8BHwH4Af8B/QT/AT8B - /AHcAQABfwH/Af4B/wEfAfoBzwH9AT8B/wH8AX8BzwH3AecB/QGfAf8B+gG/AecB/wHzAf0BzwH9Af4B - /wHyAQ8BuQENAeQBGAH+Af8B+QH3AbwB9QHzAe0B3wH3AvsBvQH5AvcBvwH7AfMB+QG5AfkB5wHzAQcB - wQH3Af0BuwH9Ae8BGwG/AfsB9wH9AbsB/QHsAfsB3gH3AfMB+QG5AfkB9wHzAf4B/wHrAfsBvQH5AvcB - /gH/AV0B8gG+AfUBGwHvAfoBvwE+AQwCAQH8AR8B/AF/AR8B+AG/A/8B/gH/FgAL - - - - Private - - - 122, 17 - - - Private - - - Private - - - Private - - - Private - - - 220, 17 - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - Private - - - False - - - (Default) - - - False - - - Form2 - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ - AAAA//8A/wAAAP8A/wD//wAA////AAiIiIAAiIgAAAAAAAAAAAAAAACIgAAIiAAAAAAAAAAAD///AA// - 8AiIAAAAAAAAAA////////8ACIgAAAAAAAAP//////////AIgAAAAAAAD///////////AIgAAAAAAA// - //////////AIAAAAAAAP////////////CIAAAAAAD///+IiIiIiIiACIiIiAAA/////////////wAAAA - iAAP////////////////8AiAD/////////////////8AgA//////////////////8IAP//////////// - //////CID//////////////////wCA////iIiIiIiIiIiIiIiAgP//////////////////8ID/////// - ////////////CA///////////////////wgP//////////////////8ID///////////////////CA// - /////////////////wgP///4iIiIiIiIiIiIiIgID///////////////////CA////mZ//mf+Zn/mZ// - /wgP///5/5+f+fn///n///8ID///+f+fn/n5///5////CA////n/n5/5+f//+f///wgP///5mf/5n/mZ - /5n///8ID///////////////////CA///////////////////wgAAAAAAAAAAAAAAAAAAAAAgcP//wAA - //8AAD//AAAP/wAAB/8AAAP/AAAD/wAAAf8AAAAHAAAAAwAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEoAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAMDAwACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAd3B3AAAAAAAAdwAHcA - AAAP8A//AHAAAA//////AAZgD/d3d3cHd2AP/////wAHcA////////AAD/d3d3d3dwcP////////Bw// - //////8HD5n/+f/5nwcPn5+fn5//Bw+fn5+fn/8HD5n/+f/5nwcP////////BwAAAAAAAAAAif8AAAA/ - AAAAHwAAABkAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAA== - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/IE_WinForms.csproj b/samples/CSharp/WinForms/IE_WinForms.csproj deleted file mode 100644 index 7d232b571a..0000000000 --- a/samples/CSharp/WinForms/IE_WinForms.csproj +++ /dev/null @@ -1,233 +0,0 @@ - - - - Local - 9.0.30729 - 2.0 - {B9914BB3-B886-4B41-B48D-350EBEBEFD1F} - Debug - AnyCPU - App.ico - - - IE_WinForms - - - JScript - Grid - IE50 - false - WinExe - IE_WinForms - OnBuildSuccess - - - - - - - 3.5 - v4.8 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - Off - x86 - - - true - ..\win32\$(VCVER)\bind\ - DEBUG;TRACE - 285212672 - full - x86 - prompt - Off - - - ..\win32\$(VCVER)\bin\ - TRACE - 285212672 - true - - - x86 - Off - prompt - - - true - ..\win64\$(VCVER)\bind\ - DEBUG;TRACE - 285212672 - 4096 - full - x64 - prompt - - - ..\win64\$(VCVER)\bin\ - TRACE - 285212672 - true - 4096 - x64 - Off - prompt - - - - System - - - - System.Data - - - System.Drawing - - - - System.Windows.Forms - - - System.XML - - - - - Form - - - Code - - - Form - - - Form - - - Form - - - Form - - - AboutDialog.cs - Designer - - - Form1.cs - Designer - - - Form2.cs - Designer - - - MaterialDialog.cs - Designer - - - TransparencyDialog.cs - Designer - - - - - - - {969912D9-78E7-4AB8-B4FF-6B52B4F03991} - OCCTProxy - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 3.1 - true - - - - - - - - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/MaterialDialog.cs b/samples/CSharp/WinForms/MaterialDialog.cs deleted file mode 100644 index 7afbe47e6f..0000000000 --- a/samples/CSharp/WinForms/MaterialDialog.cs +++ /dev/null @@ -1,248 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace IE_WinForms -{ - /// - /// Summary description for MaterialDialog. - /// - public class MaterialDialog : System.Windows.Forms.Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public MaterialDialog() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - this.myView = null; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MaterialDialog)); - this.BTN_PLASTER = new System.Windows.Forms.Button(); - this.BTN_BRASS = new System.Windows.Forms.Button(); - this.BTN_BRONZE = new System.Windows.Forms.Button(); - this.BTN_COPPER = new System.Windows.Forms.Button(); - this.BTN_GOLD = new System.Windows.Forms.Button(); - this.BTN_PEWTER = new System.Windows.Forms.Button(); - this.BTN_PLASTIC = new System.Windows.Forms.Button(); - this.BTN_SILVER = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // BTN_PLASTER - // - this.BTN_PLASTER.Location = new System.Drawing.Point(16, 8); - this.BTN_PLASTER.Name = "BTN_PLASTER"; - this.BTN_PLASTER.Size = new System.Drawing.Size(80, 24); - this.BTN_PLASTER.TabIndex = 0; - this.BTN_PLASTER.Text = "Plaster"; - this.BTN_PLASTER.Click += new System.EventHandler(this.button1_Click); - // - // BTN_BRASS - // - this.BTN_BRASS.Location = new System.Drawing.Point(16, 40); - this.BTN_BRASS.Name = "BTN_BRASS"; - this.BTN_BRASS.Size = new System.Drawing.Size(80, 24); - this.BTN_BRASS.TabIndex = 1; - this.BTN_BRASS.Text = "Brass"; - this.BTN_BRASS.Click += new System.EventHandler(this.BTN_BRASS_Click); - // - // BTN_BRONZE - // - this.BTN_BRONZE.Location = new System.Drawing.Point(16, 72); - this.BTN_BRONZE.Name = "BTN_BRONZE"; - this.BTN_BRONZE.Size = new System.Drawing.Size(80, 24); - this.BTN_BRONZE.TabIndex = 2; - this.BTN_BRONZE.Text = "Bronze"; - this.BTN_BRONZE.Click += new System.EventHandler(this.BTN_BRONZE_Click); - // - // BTN_COPPER - // - this.BTN_COPPER.Location = new System.Drawing.Point(16, 104); - this.BTN_COPPER.Name = "BTN_COPPER"; - this.BTN_COPPER.Size = new System.Drawing.Size(80, 24); - this.BTN_COPPER.TabIndex = 3; - this.BTN_COPPER.Text = "Copper"; - this.BTN_COPPER.Click += new System.EventHandler(this.BTN_COPPER_Click); - // - // BTN_GOLD - // - this.BTN_GOLD.Location = new System.Drawing.Point(16, 136); - this.BTN_GOLD.Name = "BTN_GOLD"; - this.BTN_GOLD.Size = new System.Drawing.Size(80, 24); - this.BTN_GOLD.TabIndex = 4; - this.BTN_GOLD.Text = "Gold"; - this.BTN_GOLD.Click += new System.EventHandler(this.BTN_GOLD_Click); - // - // BTN_PEWTER - // - this.BTN_PEWTER.Location = new System.Drawing.Point(16, 168); - this.BTN_PEWTER.Name = "BTN_PEWTER"; - this.BTN_PEWTER.Size = new System.Drawing.Size(80, 24); - this.BTN_PEWTER.TabIndex = 5; - this.BTN_PEWTER.Text = "Pewter"; - this.BTN_PEWTER.Click += new System.EventHandler(this.BTN_PEWTER_Click); - // - // BTN_PLASTIC - // - this.BTN_PLASTIC.Location = new System.Drawing.Point(16, 200); - this.BTN_PLASTIC.Name = "BTN_PLASTIC"; - this.BTN_PLASTIC.Size = new System.Drawing.Size(80, 24); - this.BTN_PLASTIC.TabIndex = 6; - this.BTN_PLASTIC.Text = "Plastic"; - this.BTN_PLASTIC.Click += new System.EventHandler(this.BTN_PLASTIC_Click); - // - // BTN_SILVER - // - this.BTN_SILVER.Location = new System.Drawing.Point(16, 232); - this.BTN_SILVER.Name = "BTN_SILVER"; - this.BTN_SILVER.Size = new System.Drawing.Size(80, 24); - this.BTN_SILVER.TabIndex = 7; - this.BTN_SILVER.Text = "Silver"; - this.BTN_SILVER.Click += new System.EventHandler(this.BTN_SILVER_Click); - // - // MaterialDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(112, 273); - this.Controls.Add(this.BTN_SILVER); - this.Controls.Add(this.BTN_PLASTIC); - this.Controls.Add(this.BTN_PEWTER); - this.Controls.Add(this.BTN_GOLD); - this.Controls.Add(this.BTN_COPPER); - this.Controls.Add(this.BTN_BRONZE); - this.Controls.Add(this.BTN_BRASS); - this.Controls.Add(this.BTN_PLASTER); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "MaterialDialog"; - this.Text = "MaterialDialog"; - this.ResumeLayout(false); - - } - #endregion - - private System.Windows.Forms.Button BTN_PLASTER; - private System.Windows.Forms.Button BTN_BRASS; - private System.Windows.Forms.Button BTN_BRONZE; - private System.Windows.Forms.Button BTN_COPPER; - private System.Windows.Forms.Button BTN_GOLD; - private System.Windows.Forms.Button BTN_PEWTER; - private System.Windows.Forms.Button BTN_PLASTIC; - private System.Windows.Forms.Button BTN_SILVER; - - private int myMaterial; - private OCCTProxy myView; - - private void button1_Click(object sender, System.EventArgs e) - { - this.myMaterial = 5; - ChangeMaterial(); - } - - private void BTN_BRASS_Click(object sender, System.EventArgs e) - { - this.myMaterial = 0; - ChangeMaterial(); - } - - private void BTN_BRONZE_Click(object sender, System.EventArgs e) - { - this.myMaterial = 1; - ChangeMaterial(); - } - - private void BTN_COPPER_Click(object sender, System.EventArgs e) - { - this.myMaterial = 2; - ChangeMaterial(); - } - - private void BTN_GOLD_Click(object sender, System.EventArgs e) - { - this.myMaterial = 3; - ChangeMaterial(); - } - - private void BTN_PEWTER_Click(object sender, System.EventArgs e) - { - this.myMaterial = 4; - ChangeMaterial(); - } - - private void BTN_PLASTIC_Click(object sender, System.EventArgs e) - { - this.myMaterial = 6; - ChangeMaterial(); - } - - private void BTN_SILVER_Click(object sender, System.EventArgs e) - { - this.myMaterial = 7; - ChangeMaterial(); - } - - public int Material - { - get - { - return this.myMaterial; - } - set - { - this.myMaterial = value; - } - } - - public void ChangeMaterial() - { - if (myView == null) - return; - myView.SetMaterial(this.myMaterial); - - } - - public OCCTProxy View - { - set - { - this.myView = value; - } - } - - } -} diff --git a/samples/CSharp/WinForms/MaterialDialog.resx b/samples/CSharp/WinForms/MaterialDialog.resx deleted file mode 100644 index 8a9f5cf8f7..0000000000 --- a/samples/CSharp/WinForms/MaterialDialog.resx +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - MaterialDialog - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/TransparencyDialog.cs b/samples/CSharp/WinForms/TransparencyDialog.cs deleted file mode 100644 index 6a61ae64db..0000000000 --- a/samples/CSharp/WinForms/TransparencyDialog.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace IE_WinForms -{ - /// - /// Summary description for TransparencyDialog. - /// - public class TransparencyDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.NumericUpDown MyTransparency; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private OCCTProxy myView; - - public TransparencyDialog() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - myView = null; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(TransparencyDialog)); - this.MyTransparency = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).BeginInit(); - this.SuspendLayout(); - // - // MyTransparency - // - this.MyTransparency.Location = new System.Drawing.Point(16, 16); - this.MyTransparency.Maximum = new System.Decimal(new int[] { - 10, - 0, - 0, - 0}); - this.MyTransparency.Name = "MyTransparency"; - this.MyTransparency.Size = new System.Drawing.Size(96, 20); - this.MyTransparency.TabIndex = 0; - this.MyTransparency.ValueChanged += new System.EventHandler(this.MyTransparency_ValueChanged); - // - // TransparencyDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(128, 53); - this.Controls.Add(this.MyTransparency); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "TransparencyDialog"; - this.Text = "TransparencyDialog"; - ((System.ComponentModel.ISupportInitialize)(this.MyTransparency)).EndInit(); - this.ResumeLayout(false); - - } - #endregion - - private void MyTransparency_ValueChanged(object sender, System.EventArgs e) - { - if (this.myView == null) - return; - int transp = (int)this.MyTransparency.Value; - this.myView.SetTransparency(transp); - } - - public OCCTProxy View - { - set - { - this.myView = value; - } - } - - } -} diff --git a/samples/CSharp/WinForms/TransparencyDialog.resx b/samples/CSharp/WinForms/TransparencyDialog.resx deleted file mode 100644 index 688fd72e80..0000000000 --- a/samples/CSharp/WinForms/TransparencyDialog.resx +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - TransparencyDialog - - - - AAABAAEAMDAAAAAAAACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAgAoAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW - FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA - MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm - /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/ - zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm - ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM - /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz - mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM - MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz - MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM - AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA - mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ - MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/ - zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m - zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/ - ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy - sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMT - ExMTExMTEyIiQiI8HTyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwDODg4Nzc4MQMdAAAA - AADDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOw4ODgyOCQAAAAdAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODIyMSIAHewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAA7DI3MSIdCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAADEyMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4JAALAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwxJAAhAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4IgC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAJAxJB0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ALwLCx0dIh0dCwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACx0dAB0dIiIiIiId - CxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAsdAB0dIiQkAyQkIiIiHSIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAIgMxMVhZmZqZAyQiHR0AAAAAkAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvAsdISIDMThZWVmgvaCZWVIkIh0AAB0dIh0hCwALCwALtgAAAAAAAAAAAAAAAOwAAB0iMTEx - ODhYWZrDw8Ofn1hSJCIAHQAdACIAHSIkAwsdOAAAAADeExMTCwsLIiIkMTEyODg3MllZmprDw8PDwllS - MSQdHQAAAB0AIiQkAAAAvDi8AAAxAzExMTExMTI4Nzg4ODc4ODhZXpnDw8PDml1YNwMkIh0AAB0hIiQA - AAAAACIAAAA4ODc4Nzg4ODg4ODg4ODg4ODhZWV6avb2gmllZODcxJCIAAAAdIgMLAAAAACIAAACGE0+G - T4bs7Oy8vLy8vAAxODg4ODg4NzIyMSQdHQAAvADsCwAiJDExAAAAwjjsAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAALMSQAAAAAAAAAAAAAAAAAEyI4MQsiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALMSQAAAAA - AAAAAAAAAAAAAAC8CwsAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAsAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAA//////// - AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA//8AAH//AAD//wAAf/8AAP//4AP//wAA///4B///AAD///gP//8AAP///B///wAA///8H/// - AAD///wf//8AAP///h///wAA///8H///AAD//+AD//8AAP//wAD//wAA//4AAD//AAD//AAAB/8AAP/w - AAAAAwAA/8AAAAABAADAAAAAADgAAMAAAAAAPAAAwAAAAAA8AADAAAAAIDgAAP///j/+AQAA///+P/+D - AAD///4///8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// - /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA - - - \ No newline at end of file diff --git a/samples/CSharp/WinForms/app.config b/samples/CSharp/WinForms/app.config deleted file mode 100644 index a7c484feaa..0000000000 --- a/samples/CSharp/WinForms/app.config +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/CSharp/env.bat b/samples/CSharp/env.bat deleted file mode 100644 index dafb10bd86..0000000000 --- a/samples/CSharp/env.bat +++ /dev/null @@ -1,11 +0,0 @@ -call "%~dp0..\..\env.bat" %1 %2 %3 - -set "BIN_DIR=win%ARCH%\%VCVER%\bind" -set "LIB_DIR=win%ARCH%\%VCVER%\libd" - -if ["%CASDEB%"] == [""] ( - set "BIN_DIR=win%ARCH%\%VCVER%\bin" - set "LIB_DIR=win%ARCH%\%VCVER%\lib" -) - -set "PATH=%~dp0%LIB_DIR%;%~dp0%BIN_DIR%;%PATH%" \ No newline at end of file diff --git a/samples/CSharp/images/samples_c__ie.png b/samples/CSharp/images/samples_c__ie.png deleted file mode 100644 index 3cfc12e82c819be6008e1d3ac833232052c84f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38265 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 -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -namespace -{ - //! Convert GLFW mouse button into Aspect_VKeyMouse. - static Aspect_VKeyMouse mouseButtonFromGlfw (int theButton) - { - switch (theButton) - { - case GLFW_MOUSE_BUTTON_LEFT: return Aspect_VKeyMouse_LeftButton; - case GLFW_MOUSE_BUTTON_RIGHT: return Aspect_VKeyMouse_RightButton; - case GLFW_MOUSE_BUTTON_MIDDLE: return Aspect_VKeyMouse_MiddleButton; - } - return Aspect_VKeyMouse_NONE; - } - - //! Convert GLFW key modifiers into Aspect_VKeyFlags. - static Aspect_VKeyFlags keyFlagsFromGlfw (int theFlags) - { - Aspect_VKeyFlags aFlags = Aspect_VKeyFlags_NONE; - if ((theFlags & GLFW_MOD_SHIFT) != 0) - { - aFlags |= Aspect_VKeyFlags_SHIFT; - } - if ((theFlags & GLFW_MOD_CONTROL) != 0) - { - aFlags |= Aspect_VKeyFlags_CTRL; - } - if ((theFlags & GLFW_MOD_ALT) != 0) - { - aFlags |= Aspect_VKeyFlags_ALT; - } - if ((theFlags & GLFW_MOD_SUPER) != 0) - { - aFlags |= Aspect_VKeyFlags_META; - } - return aFlags; - } -} - -// ================================================================ -// Function : GlfwOcctView -// Purpose : -// ================================================================ -GlfwOcctView::GlfwOcctView() -{ -} - -// ================================================================ -// Function : ~GlfwOcctView -// Purpose : -// ================================================================ -GlfwOcctView::~GlfwOcctView() -{ -} - -// ================================================================ -// Function : toView -// Purpose : -// ================================================================ -GlfwOcctView* GlfwOcctView::toView (GLFWwindow* theWin) -{ - return static_cast(glfwGetWindowUserPointer (theWin)); -} - -// ================================================================ -// Function : errorCallback -// Purpose : -// ================================================================ -void GlfwOcctView::errorCallback (int theError, const char* theDescription) -{ - Message::DefaultMessenger()->Send (TCollection_AsciiString ("Error") + theError + ": " + theDescription, Message_Fail); -} - -// ================================================================ -// Function : run -// Purpose : -// ================================================================ -void GlfwOcctView::run() -{ - initWindow (800, 600, "glfw occt"); - initViewer(); - initDemoScene(); - if (myView.IsNull()) - { - return; - } - - myView->MustBeResized(); - myOcctWindow->Map(); - mainloop(); - cleanup(); -} - -// ================================================================ -// Function : initWindow -// Purpose : -// ================================================================ -void GlfwOcctView::initWindow (int theWidth, int theHeight, const char* theTitle) -{ - glfwSetErrorCallback (GlfwOcctView::errorCallback); - glfwInit(); - const bool toAskCoreProfile = true; - if (toAskCoreProfile) - { - glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 3); -#if defined (__APPLE__) - glfwWindowHint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); -#endif - glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); - } - myOcctWindow = new GlfwOcctWindow (theWidth, theHeight, theTitle); - glfwSetWindowUserPointer (myOcctWindow->getGlfwWindow(), this); - // window callback - glfwSetWindowSizeCallback (myOcctWindow->getGlfwWindow(), GlfwOcctView::onResizeCallback); - glfwSetFramebufferSizeCallback (myOcctWindow->getGlfwWindow(), GlfwOcctView::onFBResizeCallback); - // mouse callback - glfwSetScrollCallback (myOcctWindow->getGlfwWindow(), GlfwOcctView::onMouseScrollCallback); - glfwSetMouseButtonCallback (myOcctWindow->getGlfwWindow(), GlfwOcctView::onMouseButtonCallback); - glfwSetCursorPosCallback (myOcctWindow->getGlfwWindow(), GlfwOcctView::onMouseMoveCallback); -} - -// ================================================================ -// Function : initViewer -// Purpose : -// ================================================================ -void GlfwOcctView::initViewer() -{ - if (myOcctWindow.IsNull() - || myOcctWindow->getGlfwWindow() == nullptr) - { - return; - } - - Handle(OpenGl_GraphicDriver) aGraphicDriver = new OpenGl_GraphicDriver (myOcctWindow->GetDisplay(), false); - Handle(V3d_Viewer) aViewer = new V3d_Viewer (aGraphicDriver); - aViewer->SetDefaultLights(); - aViewer->SetLightOn(); - aViewer->SetDefaultTypeOfView (V3d_PERSPECTIVE); - aViewer->ActivateGrid (Aspect_GT_Rectangular, Aspect_GDM_Lines); - myView = aViewer->CreateView(); - myView->SetImmediateUpdate (false); - myView->SetWindow (myOcctWindow, myOcctWindow->NativeGlContext()); - myView->ChangeRenderingParams().ToShowStats = true; - myContext = new AIS_InteractiveContext (aViewer); -} - -// ================================================================ -// Function : initDemoScene -// Purpose : -// ================================================================ -void GlfwOcctView::initDemoScene() -{ - if (myContext.IsNull()) - { - return; - } - - myView->TriedronDisplay (Aspect_TOTP_LEFT_LOWER, Quantity_NOC_GOLD, 0.08, V3d_WIREFRAME); - - gp_Ax2 anAxis; - anAxis.SetLocation (gp_Pnt (0.0, 0.0, 0.0)); - Handle(AIS_Shape) aBox = new AIS_Shape (BRepPrimAPI_MakeBox (anAxis, 50, 50, 50).Shape()); - myContext->Display (aBox, AIS_Shaded, 0, false); - anAxis.SetLocation (gp_Pnt (25.0, 125.0, 0.0)); - Handle(AIS_Shape) aCone = new AIS_Shape (BRepPrimAPI_MakeCone (anAxis, 25, 0, 50).Shape()); - myContext->Display (aCone, AIS_Shaded, 0, false); - - TCollection_AsciiString aGlInfo; - { - TColStd_IndexedDataMapOfStringString aRendInfo; - myView->DiagnosticInformation (aRendInfo, Graphic3d_DiagnosticInfo_Basic); - for (TColStd_IndexedDataMapOfStringString::Iterator aValueIter (aRendInfo); aValueIter.More(); aValueIter.Next()) - { - if (!aGlInfo.IsEmpty()) { aGlInfo += "\n"; } - aGlInfo += TCollection_AsciiString(" ") + aValueIter.Key() + ": " + aValueIter.Value(); - } - } - Message::DefaultMessenger()->Send (TCollection_AsciiString("OpenGL info:\n") + aGlInfo, Message_Info); -} - -// ================================================================ -// Function : mainloop -// Purpose : -// ================================================================ -void GlfwOcctView::mainloop() -{ - while (!glfwWindowShouldClose (myOcctWindow->getGlfwWindow())) - { - // glfwPollEvents() for continuous rendering (immediate return if there are no new events) - // and glfwWaitEvents() for rendering on demand (something actually happened in the viewer) - //glfwPollEvents(); - glfwWaitEvents(); - if (!myView.IsNull()) - { - FlushViewEvents (myContext, myView, true); - } - } -} - -// ================================================================ -// Function : cleanup -// Purpose : -// ================================================================ -void GlfwOcctView::cleanup() -{ - if (!myView.IsNull()) - { - myView->Remove(); - } - if (!myOcctWindow.IsNull()) - { - myOcctWindow->Close(); - } - glfwTerminate(); -} - -// ================================================================ -// Function : onResize -// Purpose : -// ================================================================ -void GlfwOcctView::onResize (int theWidth, int theHeight) -{ - if (theWidth != 0 - && theHeight != 0 - && !myView.IsNull()) - { - myView->Window()->DoResize(); - myView->MustBeResized(); - myView->Invalidate(); - myView->Redraw(); - } -} - -// ================================================================ -// Function : onMouseScroll -// Purpose : -// ================================================================ -void GlfwOcctView::onMouseScroll (double theOffsetX, double theOffsetY) -{ - if (!myView.IsNull()) - { - UpdateZoom (Aspect_ScrollDelta (myOcctWindow->CursorPosition(), int(theOffsetY * 8.0))); - } -} - -// ================================================================ -// Function : onMouseButton -// Purpose : -// ================================================================ -void GlfwOcctView::onMouseButton (int theButton, int theAction, int theMods) -{ - if (myView.IsNull()) { return; } - - const Graphic3d_Vec2i aPos = myOcctWindow->CursorPosition(); - if (theAction == GLFW_PRESS) - { - PressMouseButton (aPos, mouseButtonFromGlfw (theButton), keyFlagsFromGlfw (theMods), false); - } - else - { - ReleaseMouseButton (aPos, mouseButtonFromGlfw (theButton), keyFlagsFromGlfw (theMods), false); - } -} - -// ================================================================ -// Function : onMouseMove -// Purpose : -// ================================================================ -void GlfwOcctView::onMouseMove (int thePosX, int thePosY) -{ - const Graphic3d_Vec2i aNewPos (thePosX, thePosY); - if (!myView.IsNull()) - { - UpdateMousePosition (aNewPos, PressedMouseButtons(), LastMouseFlags(), false); - } -} diff --git a/samples/glfw/GlfwOcctView.h b/samples/glfw/GlfwOcctView.h deleted file mode 100644 index 2cb292b157..0000000000 --- a/samples/glfw/GlfwOcctView.h +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) 2019 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef _GlfwOcctView_Header -#define _GlfwOcctView_Header - -#include "GlfwOcctWindow.h" - -#include -#include -#include - -//! Sample class creating 3D Viewer within GLFW window. -class GlfwOcctView : protected AIS_ViewController -{ -public: - //! Default constructor. - GlfwOcctView(); - - //! Destructor. - ~GlfwOcctView(); - - //! Main application entry point. - void run(); - -private: - - //! Create GLFW window. - void initWindow (int theWidth, int theHeight, const char* theTitle); - - //! Create 3D Viewer. - void initViewer(); - - //! Fill 3D Viewer with a DEMO items. - void initDemoScene(); - - //! Application event loop. - void mainloop(); - - //! Clean up before . - void cleanup(); - -//! @name GLWF callbacks -private: - //! Window resize event. - void onResize (int theWidth, int theHeight); - - //! Mouse scroll event. - void onMouseScroll (double theOffsetX, double theOffsetY); - - //! Mouse click event. - void onMouseButton (int theButton, int theAction, int theMods); - - //! Mouse move event. - void onMouseMove (int thePosX, int thePosY); - -//! @name GLWF callbacks (static functions) -private: - - //! GLFW callback redirecting messages into Message::DefaultMessenger(). - static void errorCallback (int theError, const char* theDescription); - - //! Wrapper for glfwGetWindowUserPointer() returning this class instance. - static GlfwOcctView* toView (GLFWwindow* theWin); - - //! Window resize callback. - static void onResizeCallback (GLFWwindow* theWin, int theWidth, int theHeight) - { toView(theWin)->onResize (theWidth, theHeight); } - - //! Frame-buffer resize callback. - static void onFBResizeCallback (GLFWwindow* theWin, int theWidth, int theHeight) - { toView(theWin)->onResize (theWidth, theHeight); } - - //! Mouse scroll callback. - static void onMouseScrollCallback (GLFWwindow* theWin, double theOffsetX, double theOffsetY) - { toView(theWin)->onMouseScroll (theOffsetX, theOffsetY); } - - //! Mouse click callback. - static void onMouseButtonCallback (GLFWwindow* theWin, int theButton, int theAction, int theMods) - { toView(theWin)->onMouseButton (theButton, theAction, theMods); } - - //! Mouse move callback. - static void onMouseMoveCallback (GLFWwindow* theWin, double thePosX, double thePosY) - { toView(theWin)->onMouseMove ((int )thePosX, (int )thePosY); } - -private: - - Handle(GlfwOcctWindow) myOcctWindow; - Handle(V3d_View) myView; - Handle(AIS_InteractiveContext) myContext; - -}; - -#endif // _GlfwOcctView_Header diff --git a/samples/glfw/GlfwOcctWindow.cpp b/samples/glfw/GlfwOcctWindow.cpp deleted file mode 100644 index 8b34487b88..0000000000 --- a/samples/glfw/GlfwOcctWindow.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright (c) 2019 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#include "GlfwOcctWindow.h" - -#if defined (__APPLE__) - #undef Handle // avoid name collisions in macOS headers - #define GLFW_EXPOSE_NATIVE_COCOA - #define GLFW_EXPOSE_NATIVE_NSGL -#elif defined (_WIN32) - #define GLFW_EXPOSE_NATIVE_WIN32 - #define GLFW_EXPOSE_NATIVE_WGL -#else - #define GLFW_EXPOSE_NATIVE_X11 - #define GLFW_EXPOSE_NATIVE_GLX -#endif -#include -#include - -// ================================================================ -// Function : GlfwOcctWindow -// Purpose : -// ================================================================ -GlfwOcctWindow::GlfwOcctWindow (int theWidth, int theHeight, const TCollection_AsciiString& theTitle) -: myGlfwWindow (glfwCreateWindow (theWidth, theHeight, theTitle.ToCString(), NULL, NULL)), - myXLeft (0), - myYTop (0), - myXRight (0), - myYBottom(0) -{ - if (myGlfwWindow != nullptr) - { - int aWidth = 0, aHeight = 0; - glfwGetWindowPos (myGlfwWindow, &myXLeft, &myYTop); - glfwGetWindowSize(myGlfwWindow, &aWidth, &aHeight); - myXRight = myXLeft + aWidth; - myYBottom = myYTop + aHeight; - - #if !defined(_WIN32) && !defined(__APPLE__) - myDisplay = new Aspect_DisplayConnection ((Aspect_XDisplay* )glfwGetX11Display()); - #endif - } -} - -// ================================================================ -// Function : Close -// Purpose : -// ================================================================ -void GlfwOcctWindow::Close() -{ - if (myGlfwWindow != nullptr) - { - glfwDestroyWindow (myGlfwWindow); - myGlfwWindow = nullptr; - } -} - -// ================================================================ -// Function : NativeHandle -// Purpose : -// ================================================================ -Aspect_Drawable GlfwOcctWindow::NativeHandle() const -{ -#if defined (__APPLE__) - return (Aspect_Drawable)glfwGetCocoaWindow (myGlfwWindow); -#elif defined (_WIN32) - return (Aspect_Drawable)glfwGetWin32Window (myGlfwWindow); -#else - return (Aspect_Drawable)glfwGetX11Window (myGlfwWindow); -#endif -} - -// ================================================================ -// Function : NativeGlContext -// Purpose : -// ================================================================ -Aspect_RenderingContext GlfwOcctWindow::NativeGlContext() const -{ -#if defined (__APPLE__) - return (NSOpenGLContext*)glfwGetNSGLContext (myGlfwWindow); -#elif defined (_WIN32) - return glfwGetWGLContext (myGlfwWindow); -#else - return glfwGetGLXContext (myGlfwWindow); -#endif -} - -// ================================================================ -// Function : IsMapped -// Purpose : -// ================================================================ -Standard_Boolean GlfwOcctWindow::IsMapped() const -{ - return glfwGetWindowAttrib (myGlfwWindow, GLFW_VISIBLE) != 0; -} - -// ================================================================ -// Function : Map -// Purpose : -// ================================================================ -void GlfwOcctWindow::Map() const -{ - glfwShowWindow (myGlfwWindow); -} - -// ================================================================ -// Function : Unmap -// Purpose : -// ================================================================ -void GlfwOcctWindow::Unmap() const -{ - glfwHideWindow (myGlfwWindow); -} - -// ================================================================ -// Function : DoResize -// Purpose : -// ================================================================ -Aspect_TypeOfResize GlfwOcctWindow::DoResize() -{ - if (glfwGetWindowAttrib (myGlfwWindow, GLFW_VISIBLE) == 1) - { - int anXPos = 0, anYPos = 0, aWidth = 0, aHeight = 0; - glfwGetWindowPos (myGlfwWindow, &anXPos, &anYPos); - glfwGetWindowSize(myGlfwWindow, &aWidth, &aHeight); - myXLeft = anXPos; - myXRight = anXPos + aWidth; - myYTop = anYPos; - myYBottom = anYPos + aHeight; - } - return Aspect_TOR_UNKNOWN; -} - -// ================================================================ -// Function : CursorPosition -// Purpose : -// ================================================================ -Graphic3d_Vec2i GlfwOcctWindow::CursorPosition() const -{ - Graphic3d_Vec2d aPos; - glfwGetCursorPos (myGlfwWindow, &aPos.x(), &aPos.y()); - return Graphic3d_Vec2i ((int )aPos.x(), (int )aPos.y()); -} diff --git a/samples/glfw/GlfwOcctWindow.h b/samples/glfw/GlfwOcctWindow.h deleted file mode 100644 index b7f1a620c0..0000000000 --- a/samples/glfw/GlfwOcctWindow.h +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) 2019 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef _GlfwOcctWindow_Header -#define _GlfwOcctWindow_Header - -#include -#include -#include -#include -#include - -struct GLFWwindow; - -//! GLFWwindow wrapper implementing Aspect_Window interface. -class GlfwOcctWindow : public Aspect_Window -{ - DEFINE_STANDARD_RTTI_INLINE(GlfwOcctWindow, Aspect_Window) -public: - //! Main constructor. - GlfwOcctWindow (int theWidth, int theHeight, const TCollection_AsciiString& theTitle); - - //! Close the window. - virtual ~GlfwOcctWindow() { Close(); } - - //! Close the window. - void Close(); - - //! Return X Display connection. - const Handle(Aspect_DisplayConnection)& GetDisplay() const { return myDisplay; } - - //! Return GLFW window. - GLFWwindow* getGlfwWindow() { return myGlfwWindow; } - - //! Return native OpenGL context. - Aspect_RenderingContext NativeGlContext() const; - - //! Return cursor position. - Graphic3d_Vec2i CursorPosition() const; - -public: - - //! Returns native Window handle - virtual Aspect_Drawable NativeHandle() const Standard_OVERRIDE; - - //! Returns parent of native Window handle. - virtual Aspect_Drawable NativeParentHandle() const Standard_OVERRIDE { return 0; } - - //! Applies the resizing to the window - virtual Aspect_TypeOfResize DoResize() Standard_OVERRIDE; - - //! Returns True if the window is opened and False if the window is closed. - virtual Standard_Boolean IsMapped() const Standard_OVERRIDE; - - //! Apply the mapping change to the window and returns TRUE if the window is mapped at screen. - virtual Standard_Boolean DoMapping() const Standard_OVERRIDE { return Standard_True; } - - //! Opens the window . - virtual void Map() const Standard_OVERRIDE; - - //! Closes the window . - virtual void Unmap() const Standard_OVERRIDE; - - virtual void Position (Standard_Integer& theX1, Standard_Integer& theY1, - Standard_Integer& theX2, Standard_Integer& theY2) const Standard_OVERRIDE - { - theX1 = myXLeft; - theX2 = myXRight; - theY1 = myYTop; - theY2 = myYBottom; - } - - //! Returns The Window RATIO equal to the physical WIDTH/HEIGHT dimensions. - virtual Standard_Real Ratio() const Standard_OVERRIDE - { - return Standard_Real (myXRight - myXLeft) / Standard_Real (myYBottom - myYTop); - } - - //! Return window size. - virtual void Size (Standard_Integer& theWidth, Standard_Integer& theHeight) const Standard_OVERRIDE - { - theWidth = myXRight - myXLeft; - theHeight = myYBottom - myYTop; - } - - virtual Aspect_FBConfig NativeFBConfig() const Standard_OVERRIDE { return NULL; } - -protected: - Handle(Aspect_DisplayConnection) myDisplay; - GLFWwindow* myGlfwWindow; - Standard_Integer myXLeft; - Standard_Integer myYTop; - Standard_Integer myXRight; - Standard_Integer myYBottom; -}; - -#endif // _GlfwOcctWindow_Header diff --git a/samples/glfw/adm/cmake/FindOpenCASCADE.cmake b/samples/glfw/adm/cmake/FindOpenCASCADE.cmake deleted file mode 100644 index 1cbf05227f..0000000000 --- a/samples/glfw/adm/cmake/FindOpenCASCADE.cmake +++ /dev/null @@ -1,157 +0,0 @@ -# This script finds OpenCASCADE Technology libraries. -# The script requires: -# OpenCASCADE_DIR - root OCCT folder or folder with CMake configuration files -# -# Script will define the following variables on success: -# OpenCASCADE_FOUND - package is successfully found -# OpenCASCADE_INCLUDE_DIR - directory with headers -# OpenCASCADE_LIBRARY_DIR - directory with libraries for linker -# OpenCASCADE_BINARY_DIR - directory with DLLs -include(FindPackageHandleStandardArgs) - -# MY_PLATFORM variable -math (EXPR MY_BITNESS "32 + 32*(${CMAKE_SIZEOF_VOID_P}/8)") -if (WIN32) - set (MY_PLATFORM "win${MY_BITNESS}") -elseif(APPLE) - set (MY_PLATFORM "mac") -else() - set (MY_PLATFORM "lin") -endif() - -# MY_PLATFORM_AND_COMPILER variable -if (MSVC) - if (MSVC90) - set (MY_COMPILER vc9) - elseif (MSVC10) - set (MY_COMPILER vc10) - elseif (MSVC11) - set (MY_COMPILER vc11) - elseif (MSVC12) - set (MY_COMPILER vc12) - elseif (MSVC14) - set (MY_COMPILER vc14) - else() - set (MY_COMPILER vc15) - message (WARNING "Unknown msvc version. $$MY_COMPILER is used") - endif() -elseif (DEFINED CMAKE_COMPILER_IS_GNUCC) - set (MY_COMPILER gcc) -elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX) - set (MY_COMPILER gcc) -elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Cc][Ll][Aa][Nn][Gg]") - set (MY_COMPILER clang) -elseif (CMAKE_CXX_COMPILER_ID MATCHES "[Ii][Nn][Tt][Ee][Ll]") - set (MY_COMPILER icc) -else() - set (MY_COMPILER ${CMAKE_GENERATOR}) - string (REGEX REPLACE " " "" COMPILER ${MY_COMPILER}) -endif() -set (MY_PLATFORM_AND_COMPILER "${MY_PLATFORM}/${MY_COMPILER}") - -set (OpenCASCADE_DIR "" CACHE PATH "Path to Open CASCADE libraries.") - -# default paths -set (OpenCASCADE_INCLUDE_DIR "${OpenCASCADE_DIR}/inc") -set (OpenCASCADE_LIBRARY_DIR "${OpenCASCADE_DIR}/${MY_PLATFORM_AND_COMPILER}/lib") -set (OpenCASCADE_BINARY_DIR "${OpenCASCADE_DIR}/${MY_PLATFORM_AND_COMPILER}/bin") - -# complete list of OCCT Toolkits (copy-paste from adm/UDLIST, since installed OCCT does not include UDLIST) -set (OpenCASCADE_TKLIST "") -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKernel TKMath) # FoundationClasses -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKG2d TKG3d TKGeomBase TKBRep) # ModelingData -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKFeat TKMesh TKXMesh TKShHealing) # ModelingAlgorithms -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKService TKV3d TKOpenGl TKMeshVS TKIVtk TKD3DHost) # Visualization -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKCDF TKLCAF TKCAF TKBinL TKXmlL TKBin TKXml TKStdL TKStd TKTObj TKBinTObj TKXmlTObj TKVCAF) # ApplicationFramework -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKXSBase TKXCAF TKDEIGES TKDESTEP TKDESTL TKDEVRML TKXmlXCAF TKBinXCAF TKRWMesh TKDEGLTF TKDEOBJ TKDEPLY) # DataExchange -set (OpenCASCADE_TKLIST ${OpenCASCADE_TKLIST} TKDraw TKViewerTest) # Draw - -# validate location of OCCT libraries and headers -set (OpenCASCADE_INCLUDE_DIR_FOUND) -set (OpenCASCADE_LIBRARY_DIR_FOUND) -set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND) -set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX}) -set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND) -set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND) -if (EXISTS "${OpenCASCADE_INCLUDE_DIR}/Standard.hxx") - set (OpenCASCADE_INCLUDE_DIR_FOUND ON) -endif() - -if (EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_STATIC_LIBRARY_SUFFIX}") - set (OpenCASCADE_LIBRARY_DIR_FOUND ON) -elseif (NOT WIN32 AND EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_LIBRARY_DIR_FOUND ON) - set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) -endif() - -if (EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_STATIC_LIBRARY_SUFFIX}") - set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND ON) -elseif (NOT WIN32 AND EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND ON) - set (OpenCASCADE_IMPLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) -elseif (OpenCASCADE_LIBRARY_DIR_FOUND) - message (STATUS "Only release OpenCASCADE libraries have been found") -endif() - -if (NOT OpenCASCADE_LIBRARY_DIR_FOUND AND OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND) - set (OpenCASCADE_LIBRARY_DIR_FOUND ON) - message (WARNING "Only debug OpenCASCADE libraries have been found") -endif() - -if (WIN32) - if (EXISTS "${OpenCASCADE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND ON) - endif() - if (EXISTS "${OpenCASCADE_BINARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND ON) - endif() -else() - if (EXISTS "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_SHAREDLIB_RELEASE_FOUND ON) - endif() - if (EXISTS "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}TKernel${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (OpenCASCADE_SHAREDLIB_DEBUG_FOUND ON) - endif() -endif() - -if (OpenCASCADE_INCLUDE_DIR_FOUND AND OpenCASCADE_LIBRARY_DIR_FOUND) - set (OpenCASCADE_FOUND ON) - set (OpenCASCADE_INSTALL_PREFIX ${OpenCASCADE_DIR}) - - # Define OCCT toolkits so that CMake can put absolute paths to linker; - # the library existence is not checked here, since modules can be disabled. - foreach (aLibIter ${OpenCASCADE_TKLIST}) - add_library (${aLibIter} SHARED IMPORTED) - - set_property (TARGET ${aLibIter} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) - set_target_properties (${aLibIter} PROPERTIES IMPORTED_IMPLIB_RELEASE "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${OpenCASCADE_IMPLIB_SUFFIX}") - if (OpenCASCADE_SHAREDLIB_RELEASE_FOUND) - if (WIN32) - set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_RELEASE "${OpenCASCADE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}") - else() - set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_RELEASE "${OpenCASCADE_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}") - endif() - endif() - - if (OpenCASCADE_LIBRARY_DEBUG_DIR_FOUND) - set_property (TARGET ${aLibIter} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) - set_target_properties (${aLibIter} PROPERTIES IMPORTED_IMPLIB_DEBUG "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${OpenCASCADE_IMPLIB_SUFFIX}") - if (OpenCASCADE_SHAREDLIB_DEBUG_FOUND) - if (WIN32) - set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_DEBUG "${OpenCASCADE_BINARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}") - else() - set_target_properties (${aLibIter} PROPERTIES IMPORTED_LOCATION_DEBUG "${OpenCASCADE_LIBRARY_DIR}d/${CMAKE_SHARED_LIBRARY_PREFIX}${aLibIter}${CMAKE_SHARED_LIBRARY_SUFFIX}") - endif() - endif() - endif() - endforeach() -else() - # fallback searching for CMake configs - if (NOT "${OpenCASCADE_DIR}" STREQUAL "") - set (anOcctDirBak "${OpenCASCADE_DIR}") - find_package (OpenCASCADE CONFIG QUIET PATHS "${OpenCASCADE_DIR}" NO_DEFAULT_PATH) - set (OpenCASCADE_DIR "${anOcctDirBak}" CACHE PATH "Path to Open CASCADE libraries." FORCE) - else() - find_package (OpenCASCADE CONFIG QUIET) - endif() -endif() diff --git a/samples/glfw/main.cpp b/samples/glfw/main.cpp deleted file mode 100644 index 9632eab57e..0000000000 --- a/samples/glfw/main.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2019 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#include "GlfwOcctView.h" - -int main (int, char**) -{ - GlfwOcctView anApp; - try - { - anApp.run(); - } - catch (const std::runtime_error& theError) - { - std::cerr << theError.what() << std::endl; - return EXIT_FAILURE; - } - return 0; -} diff --git a/samples/glfw/readme.md b/samples/glfw/readme.md deleted file mode 100644 index bb656cd417..0000000000 --- a/samples/glfw/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -GLFW: 3D Viewer (C++|GLFW) {#occt_samples_glfw} -================== - -A sample demonstrating usage of OCCT 3D Viewer within a window created using GLFW. - -Use CMake to build the sample. - -Platforms: Windows, macOS, Linux - -Required: glfw diff --git a/samples/ios/UIKitSample/ReadMe.md b/samples/ios/UIKitSample/ReadMe.md deleted file mode 100644 index 7e4de5d60e..0000000000 --- a/samples/ios/UIKitSample/ReadMe.md +++ /dev/null @@ -1,21 +0,0 @@ -iOS: 3D Viewer (Objective-C++|UIKit) {#occt_samples_ios_uikit} -================== - -UIKitSample consists of the Open CASCADE 3D Viewer which provides import of STEP files and toolbar with three buttons. -The sample could be found within OCCT repository in folder `/samples/ios/UIKitSample/`. - -The first and second buttons serve for import hardcoded STEP files. The third button displays "About" dialog. - -The viewer supports zoom, pan and rotate actions. The viewer supports selection of solids as well. - -@figure{sample_ios_uikit.png} - -Installation and configuration: - 1. Make sure you are running Mac OS version 10.12.1 or above and properly installed XCode version 8.1 or above. - 2. Install Open CASCADE Technology (OCCT) and build static libraries for desired device or/and simulator on your workstation. - 3. Build or download Freetype2 static library for desired device or/and simulator. - 4. Open UIKitSample in XCode. - 5. Select the UIKitSample project and add the OCCT static libraries and Freetype2 static library. - 6. Select the UIKitSample and go to the "Build Settings" tab. After go to the section "Search Paths" and in the field "Header Search Paths" specify a path to the OCCT inc folder. Next in the field "Library Search Paths" specify a path/paths to the OCCT static libraries and Freetype2 static library folders. - 7. Connect device and build sample for device or choose simulator as a target and build for simulator. - 8. Run sample. diff --git a/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.pbxproj b/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.pbxproj deleted file mode 100644 index 78a9b18267..0000000000 --- a/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,548 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0A24B9FA1EB0A7CC00A5F490 /* linkrods.step in Resources */ = {isa = PBXBuildFile; fileRef = 0A24B9F91EB0A7CC00A5F490 /* linkrods.step */; }; - 0A7DEDD61E2D1D0F00267B9B /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDD41E2D1D0900267B9B /* libfreetype.a */; }; - 0A7DEDE71E2D28E300267B9B /* libTKBRep.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDDE1E2D28C500267B9B /* libTKBRep.a */; }; - 0A7DEDE81E2D28E300267B9B /* libTKernel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDDF1E2D28C800267B9B /* libTKernel.a */; }; - 0A7DEDE91E2D28E300267B9B /* libTKG2d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE01E2D28CB00267B9B /* libTKG2d.a */; }; - 0A7DEDEA1E2D28E300267B9B /* libTKG3d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE11E2D28CE00267B9B /* libTKG3d.a */; }; - 0A7DEDEB1E2D28E300267B9B /* libTKGeomAlgo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE21E2D28D200267B9B /* libTKGeomAlgo.a */; }; - 0A7DEDEC1E2D28E300267B9B /* libTKGeomBase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE31E2D28D500267B9B /* libTKGeomBase.a */; }; - 0A7DEDED1E2D28E300267B9B /* libTKMath.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE41E2D28D800267B9B /* libTKMath.a */; }; - 0A7DEDEE1E2D28E300267B9B /* libTKShHealing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE51E2D28DC00267B9B /* libTKShHealing.a */; }; - 0A7DEDEF1E2D28E300267B9B /* libTKTopAlgo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDE61E2D28DF00267B9B /* libTKTopAlgo.a */; }; - 0A7DEDF21E2D297000267B9B /* libTKHLR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF01E2D296900267B9B /* libTKHLR.a */; }; - 0A7DEDF31E2D297000267B9B /* libTKMesh.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF11E2D296C00267B9B /* libTKMesh.a */; }; - 0A7DEDF91E2D29FF00267B9B /* libTKCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF41E2D29EF00267B9B /* libTKCAF.a */; }; - 0A7DEDFA1E2D29FF00267B9B /* libTKCDF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF51E2D29F200267B9B /* libTKCDF.a */; }; - 0A7DEDFB1E2D29FF00267B9B /* libTKLCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF61E2D29F500267B9B /* libTKLCAF.a */; }; - 0A7DEDFC1E2D29FF00267B9B /* libTKV3d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF71E2D29F800267B9B /* libTKV3d.a */; }; - 0A7DEDFD1E2D29FF00267B9B /* libTKVCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEDF81E2D29FB00267B9B /* libTKVCAF.a */; }; - 0A7DEE2B1E2D2AE000267B9B /* libTKService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */; }; - 0A7DEE2E1E2D2AE000267B9B /* libTKDESTEP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */; }; - 0A7DEE351E2D2AE000267B9B /* libTKXCAF.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */; }; - 0A7DEE3E1E2D2B8100267B9B /* libTKBO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE021E2D2A7F00267B9B /* libTKBO.a */; }; - 0A7DEE3F1E2D2BB000267B9B /* libTKOpenGles.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */; }; - 0A7DEE411E2D2C1500267B9B /* libTKXSBase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A7DEE1D1E2D2ADC00267B9B /* libTKXSBase.a */; }; - 0AAE0DE61EAF816E00C1F65B /* screw.step in Resources */ = {isa = PBXBuildFile; fileRef = 0AAE0DE51EAF816D00C1F65B /* screw.step */; }; - 0AE286641EB0D29B00A9D719 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AE286631EB0D29A00A9D719 /* libz.tbd */; }; - 3405C9E01DE2F04E008BADB9 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3405C9DF1DE2F04E008BADB9 /* main.mm */; }; - 3405C9E31DE2F04E008BADB9 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3405C9E21DE2F04E008BADB9 /* AppDelegate.mm */; }; - 3405C9EB1DE2F04E008BADB9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3405C9EA1DE2F04E008BADB9 /* Assets.xcassets */; }; - 3405C9EE1DE2F04E008BADB9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3405C9EC1DE2F04E008BADB9 /* LaunchScreen.storyboard */; }; - 3405CA781DE303DC008BADB9 /* OcctViewer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3405CA771DE303DC008BADB9 /* OcctViewer.mm */; }; - 3405CA7B1DE31566008BADB9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3405CA7A1DE31566008BADB9 /* QuartzCore.framework */; }; - 3405CA7D1DE3156D008BADB9 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3405CA7C1DE3156D008BADB9 /* OpenGLES.framework */; }; - 3405CA821DE332AB008BADB9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3405CA811DE332AB008BADB9 /* UIKit.framework */; }; - 3405CA851DE3331D008BADB9 /* GLView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3405CA841DE3331D008BADB9 /* GLView.mm */; }; - 343FDCA61DE42F37009AEE51 /* GLViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 343FDCA51DE42F37009AEE51 /* GLViewController.mm */; }; - 34424E031DE70100008B56DA /* OcctDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34424E021DE70100008B56DA /* OcctDocument.mm */; }; - 34424E061DE72D2E008B56DA /* CafShapePrs.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34424E051DE72D2E008B56DA /* CafShapePrs.mm */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0A24B9F91EB0A7CC00A5F490 /* linkrods.step */ = {isa = PBXFileReference; lastKnownFileType = text; name = linkrods.step; path = ../occt/data/step/linkrods.step; sourceTree = ""; }; - 0A7DED6E1E2D15B800267B9B /* dev */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dev; path = ..; sourceTree = ""; }; - 0A7DEDD41E2D1D0900267B9B /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreetype.a; path = ../3rdparty/lib/libfreetype.a; sourceTree = ""; }; - 0A7DEDDE1E2D28C500267B9B /* libTKBRep.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBRep.a; path = ../occt/lib/libTKBRep.a; sourceTree = ""; }; - 0A7DEDDF1E2D28C800267B9B /* libTKernel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKernel.a; path = ../occt/lib/libTKernel.a; sourceTree = ""; }; - 0A7DEDE01E2D28CB00267B9B /* libTKG2d.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKG2d.a; path = ../occt/lib/libTKG2d.a; sourceTree = ""; }; - 0A7DEDE11E2D28CE00267B9B /* libTKG3d.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKG3d.a; path = ../occt/lib/libTKG3d.a; sourceTree = ""; }; - 0A7DEDE21E2D28D200267B9B /* libTKGeomAlgo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKGeomAlgo.a; path = ../occt/lib/libTKGeomAlgo.a; sourceTree = ""; }; - 0A7DEDE31E2D28D500267B9B /* libTKGeomBase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKGeomBase.a; path = ../occt/lib/libTKGeomBase.a; sourceTree = ""; }; - 0A7DEDE41E2D28D800267B9B /* libTKMath.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKMath.a; path = ../occt/lib/libTKMath.a; sourceTree = ""; }; - 0A7DEDE51E2D28DC00267B9B /* libTKShHealing.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKShHealing.a; path = ../occt/lib/libTKShHealing.a; sourceTree = ""; }; - 0A7DEDE61E2D28DF00267B9B /* libTKTopAlgo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKTopAlgo.a; path = ../occt/lib/libTKTopAlgo.a; sourceTree = ""; }; - 0A7DEDF01E2D296900267B9B /* libTKHLR.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKHLR.a; path = ../occt/lib/libTKHLR.a; sourceTree = ""; }; - 0A7DEDF11E2D296C00267B9B /* libTKMesh.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKMesh.a; path = ../occt/lib/libTKMesh.a; sourceTree = ""; }; - 0A7DEDF41E2D29EF00267B9B /* libTKCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKCAF.a; path = ../occt/lib/libTKCAF.a; sourceTree = ""; }; - 0A7DEDF51E2D29F200267B9B /* libTKCDF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKCDF.a; path = ../occt/lib/libTKCDF.a; sourceTree = ""; }; - 0A7DEDF61E2D29F500267B9B /* libTKLCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKLCAF.a; path = ../occt/lib/libTKLCAF.a; sourceTree = ""; }; - 0A7DEDF71E2D29F800267B9B /* libTKV3d.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKV3d.a; path = ../occt/lib/libTKV3d.a; sourceTree = ""; }; - 0A7DEDF81E2D29FB00267B9B /* libTKVCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKVCAF.a; path = ../occt/lib/libTKVCAF.a; sourceTree = ""; }; - 0A7DEDFE1E2D2A7200267B9B /* libTKBin.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBin.a; path = ../occt/lib/libTKBin.a; sourceTree = ""; }; - 0A7DEDFF1E2D2A7600267B9B /* libTKBinL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBinL.a; path = ../occt/lib/libTKBinL.a; sourceTree = ""; }; - 0A7DEE001E2D2A7900267B9B /* libTKBinTObj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBinTObj.a; path = ../occt/lib/libTKBinTObj.a; sourceTree = ""; }; - 0A7DEE011E2D2A7C00267B9B /* libTKBinXCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBinXCAF.a; path = ../occt/lib/libTKBinXCAF.a; sourceTree = ""; }; - 0A7DEE021E2D2A7F00267B9B /* libTKBO.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBO.a; path = ../occt/lib/libTKBO.a; sourceTree = ""; }; - 0A7DEE031E2D2A8200267B9B /* libTKBool.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKBool.a; path = ../occt/lib/libTKBool.a; sourceTree = ""; }; - 0A7DEE041E2D2A8500267B9B /* libTKFeat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKFeat.a; path = ../occt/lib/libTKFeat.a; sourceTree = ""; }; - 0A7DEE051E2D2A8900267B9B /* libTKFillet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKFillet.a; path = ../occt/lib/libTKFillet.a; sourceTree = ""; }; - 0A7DEE061E2D2A8C00267B9B /* libTKDEIGES.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDEIGES.a; path = ../occt/lib/libTKDEIGES.a; sourceTree = ""; }; - 0A7DEE071E2D2A8F00267B9B /* libTKMeshVS.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKMeshVS.a; path = ../occt/lib/libTKMeshVS.a; sourceTree = ""; }; - 0A7DEE081E2D2A9300267B9B /* libTKOffset.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKOffset.a; path = ../occt/lib/libTKOffset.a; sourceTree = ""; }; - 0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKOpenGles.a; path = ../occt/lib/libTKOpenGles.a; sourceTree = ""; }; - 0A7DEE0A1E2D2A9A00267B9B /* libTKPrim.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKPrim.a; path = ../occt/lib/libTKPrim.a; sourceTree = ""; }; - 0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKService.a; path = ../occt/lib/libTKService.a; sourceTree = ""; }; - 0A7DEE0C1E2D2AA100267B9B /* libTKStd.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKStd.a; path = ../occt/lib/libTKStd.a; sourceTree = ""; }; - 0A7DEE0D1E2D2AA400267B9B /* libTKStdL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKStdL.a; path = ../occt/lib/libTKStdL.a; sourceTree = ""; }; - 0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDESTEP.a; path = ../occt/lib/libTKDESTEP.a; sourceTree = ""; }; - 0A7DEE121E2D2AB500267B9B /* libTKDESTL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDESTL.a; path = ../occt/lib/libTKDESTL.a; sourceTree = ""; }; - 0A7DEE131E2D2AB900267B9B /* libTKTObj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKTObj.a; path = ../occt/lib/libTKTObj.a; sourceTree = ""; }; - 0A7DEE141E2D2ABC00267B9B /* libTKDEVRML.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKDEVRML.a; path = ../occt/lib/libTKDEVRML.a; sourceTree = ""; }; - 0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXCAF.a; path = ../occt/lib/libTKXCAF.a; sourceTree = ""; }; - 0A7DEE181E2D2ACA00267B9B /* libTKXMesh.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXMesh.a; path = ../occt/lib/libTKXMesh.a; sourceTree = ""; }; - 0A7DEE191E2D2ACE00267B9B /* libTKXml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXml.a; path = ../occt/lib/libTKXml.a; sourceTree = ""; }; - 0A7DEE1A1E2D2AD100267B9B /* libTKXmlL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXmlL.a; path = ../occt/lib/libTKXmlL.a; sourceTree = ""; }; - 0A7DEE1B1E2D2AD500267B9B /* libTKXmlTObj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXmlTObj.a; path = ../occt/lib/libTKXmlTObj.a; sourceTree = ""; }; - 0A7DEE1C1E2D2AD900267B9B /* libTKXmlXCAF.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXmlXCAF.a; path = ../occt/lib/libTKXmlXCAF.a; sourceTree = ""; }; - 0A7DEE1D1E2D2ADC00267B9B /* libTKXSBase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTKXSBase.a; path = ../occt/lib/libTKXSBase.a; sourceTree = ""; }; - 0AAE0DE51EAF816D00C1F65B /* screw.step */ = {isa = PBXFileReference; lastKnownFileType = text; name = screw.step; path = ../occt/data/step/screw.step; sourceTree = ""; }; - 0AE286631EB0D29A00A9D719 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - 3405C9DB1DE2F04E008BADB9 /* UIKitSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIKitSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 3405C9DF1DE2F04E008BADB9 /* main.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; }; - 3405C9E11DE2F04E008BADB9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 3405C9E21DE2F04E008BADB9 /* AppDelegate.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = AppDelegate.mm; sourceTree = ""; }; - 3405C9EA1DE2F04E008BADB9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 3405C9ED1DE2F04E008BADB9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 3405C9EF1DE2F04E008BADB9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3405CA761DE30380008BADB9 /* OcctViewer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OcctViewer.h; sourceTree = ""; }; - 3405CA771DE303DC008BADB9 /* OcctViewer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OcctViewer.mm; sourceTree = ""; }; - 3405CA7A1DE31566008BADB9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - 3405CA7C1DE3156D008BADB9 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; - 3405CA811DE332AB008BADB9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 3405CA831DE3331D008BADB9 /* GLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLView.h; sourceTree = ""; }; - 3405CA841DE3331D008BADB9 /* GLView.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = GLView.mm; sourceTree = ""; }; - 343FDCA41DE42D12009AEE51 /* GLViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GLViewController.h; sourceTree = ""; }; - 343FDCA51DE42F37009AEE51 /* GLViewController.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = GLViewController.mm; sourceTree = ""; }; - 34424E011DE6FF05008B56DA /* OcctDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcctDocument.h; sourceTree = ""; }; - 34424E021DE70100008B56DA /* OcctDocument.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = OcctDocument.mm; sourceTree = ""; }; - 34424E041DE72C23008B56DA /* CafShapePrs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CafShapePrs.h; sourceTree = ""; }; - 34424E051DE72D2E008B56DA /* CafShapePrs.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = CafShapePrs.mm; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3405C9D81DE2F04E008BADB9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0AE286641EB0D29B00A9D719 /* libz.tbd in Frameworks */, - 0A7DEE411E2D2C1500267B9B /* libTKXSBase.a in Frameworks */, - 0A7DEE3F1E2D2BB000267B9B /* libTKOpenGles.a in Frameworks */, - 0A7DEE3E1E2D2B8100267B9B /* libTKBO.a in Frameworks */, - 0A7DEE2B1E2D2AE000267B9B /* libTKService.a in Frameworks */, - 0A7DEE2E1E2D2AE000267B9B /* libTKDESTEP.a in Frameworks */, - 0A7DEE351E2D2AE000267B9B /* libTKXCAF.a in Frameworks */, - 0A7DEE371E2D2AE000267B9B /* libTKXDESTEP.a in Frameworks */, - 0A7DEDE71E2D28E300267B9B /* libTKBRep.a in Frameworks */, - 0A7DEDF91E2D29FF00267B9B /* libTKCAF.a in Frameworks */, - 0A7DEDFA1E2D29FF00267B9B /* libTKCDF.a in Frameworks */, - 0A7DEDE81E2D28E300267B9B /* libTKernel.a in Frameworks */, - 0A7DEDE91E2D28E300267B9B /* libTKG2d.a in Frameworks */, - 0A7DEDEA1E2D28E300267B9B /* libTKG3d.a in Frameworks */, - 0A7DEDEB1E2D28E300267B9B /* libTKGeomAlgo.a in Frameworks */, - 0A7DEDEC1E2D28E300267B9B /* libTKGeomBase.a in Frameworks */, - 0A7DEDF21E2D297000267B9B /* libTKHLR.a in Frameworks */, - 0A7DEDFB1E2D29FF00267B9B /* libTKLCAF.a in Frameworks */, - 0A7DEDED1E2D28E300267B9B /* libTKMath.a in Frameworks */, - 0A7DEDF31E2D297000267B9B /* libTKMesh.a in Frameworks */, - 0A7DEDEE1E2D28E300267B9B /* libTKShHealing.a in Frameworks */, - 0A7DEDEF1E2D28E300267B9B /* libTKTopAlgo.a in Frameworks */, - 0A7DEDFC1E2D29FF00267B9B /* libTKV3d.a in Frameworks */, - 0A7DEDFD1E2D29FF00267B9B /* libTKVCAF.a in Frameworks */, - 0A7DEDD61E2D1D0F00267B9B /* libfreetype.a in Frameworks */, - 3405CA821DE332AB008BADB9 /* UIKit.framework in Frameworks */, - 3405CA7D1DE3156D008BADB9 /* OpenGLES.framework in Frameworks */, - 3405CA7B1DE31566008BADB9 /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3405C9D21DE2F04E008BADB9 = { - isa = PBXGroup; - children = ( - 0A24B9F91EB0A7CC00A5F490 /* linkrods.step */, - 0AAE0DE51EAF816D00C1F65B /* screw.step */, - 3405C9DD1DE2F04E008BADB9 /* UIKitSample */, - 3405C9DC1DE2F04E008BADB9 /* Products */, - 3405CA791DE31565008BADB9 /* Frameworks */, - ); - sourceTree = ""; - }; - 3405C9DC1DE2F04E008BADB9 /* Products */ = { - isa = PBXGroup; - children = ( - 3405C9DB1DE2F04E008BADB9 /* UIKitSample.app */, - ); - name = Products; - sourceTree = ""; - }; - 3405C9DD1DE2F04E008BADB9 /* UIKitSample */ = { - isa = PBXGroup; - children = ( - 34424E051DE72D2E008B56DA /* CafShapePrs.mm */, - 34424E041DE72C23008B56DA /* CafShapePrs.h */, - 34424E011DE6FF05008B56DA /* OcctDocument.h */, - 34424E021DE70100008B56DA /* OcctDocument.mm */, - 3405CA841DE3331D008BADB9 /* GLView.mm */, - 3405CA831DE3331D008BADB9 /* GLView.h */, - 343FDCA51DE42F37009AEE51 /* GLViewController.mm */, - 343FDCA41DE42D12009AEE51 /* GLViewController.h */, - 3405CA761DE30380008BADB9 /* OcctViewer.h */, - 3405CA771DE303DC008BADB9 /* OcctViewer.mm */, - 3405C9E11DE2F04E008BADB9 /* AppDelegate.h */, - 3405C9E21DE2F04E008BADB9 /* AppDelegate.mm */, - 3405C9EA1DE2F04E008BADB9 /* Assets.xcassets */, - 3405C9EC1DE2F04E008BADB9 /* LaunchScreen.storyboard */, - 3405C9EF1DE2F04E008BADB9 /* Info.plist */, - 3405C9DE1DE2F04E008BADB9 /* Supporting Files */, - ); - path = UIKitSample; - sourceTree = ""; - }; - 3405C9DE1DE2F04E008BADB9 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 3405C9DF1DE2F04E008BADB9 /* main.mm */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 3405CA791DE31565008BADB9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0AE286631EB0D29A00A9D719 /* libz.tbd */, - 0A7DEDFE1E2D2A7200267B9B /* libTKBin.a */, - 0A7DEDFF1E2D2A7600267B9B /* libTKBinL.a */, - 0A7DEE001E2D2A7900267B9B /* libTKBinTObj.a */, - 0A7DEE011E2D2A7C00267B9B /* libTKBinXCAF.a */, - 0A7DEE021E2D2A7F00267B9B /* libTKBO.a */, - 0A7DEE031E2D2A8200267B9B /* libTKBool.a */, - 0A7DEE041E2D2A8500267B9B /* libTKFeat.a */, - 0A7DEE051E2D2A8900267B9B /* libTKFillet.a */, - 0A7DEE061E2D2A8C00267B9B /* libTKDEIGES.a */, - 0A7DEE071E2D2A8F00267B9B /* libTKMeshVS.a */, - 0A7DEE081E2D2A9300267B9B /* libTKOffset.a */, - 0A7DEE091E2D2A9700267B9B /* libTKOpenGles.a */, - 0A7DEE0A1E2D2A9A00267B9B /* libTKPrim.a */, - 0A7DEE0B1E2D2A9D00267B9B /* libTKService.a */, - 0A7DEE0C1E2D2AA100267B9B /* libTKStd.a */, - 0A7DEE0D1E2D2AA400267B9B /* libTKStdL.a */, - 0A7DEE0E1E2D2AA800267B9B /* libTKDESTEP.a */, - 0A7DEE121E2D2AB500267B9B /* libTKDESTL.a */, - 0A7DEE131E2D2AB900267B9B /* libTKTObj.a */, - 0A7DEE141E2D2ABC00267B9B /* libTKDEVRML.a */, - 0A7DEE151E2D2AC000267B9B /* libTKXCAF.a */, - 0A7DEE181E2D2ACA00267B9B /* libTKXMesh.a */, - 0A7DEE191E2D2ACE00267B9B /* libTKXml.a */, - 0A7DEE1A1E2D2AD100267B9B /* libTKXmlL.a */, - 0A7DEE1B1E2D2AD500267B9B /* libTKXmlTObj.a */, - 0A7DEE1C1E2D2AD900267B9B /* libTKXmlXCAF.a */, - 0A7DEE1D1E2D2ADC00267B9B /* libTKXSBase.a */, - 0A7DEDF41E2D29EF00267B9B /* libTKCAF.a */, - 0A7DEDF51E2D29F200267B9B /* libTKCDF.a */, - 0A7DEDF61E2D29F500267B9B /* libTKLCAF.a */, - 0A7DEDF71E2D29F800267B9B /* libTKV3d.a */, - 0A7DEDF81E2D29FB00267B9B /* libTKVCAF.a */, - 0A7DEDF01E2D296900267B9B /* libTKHLR.a */, - 0A7DEDF11E2D296C00267B9B /* libTKMesh.a */, - 0A7DEDDE1E2D28C500267B9B /* libTKBRep.a */, - 0A7DEDDF1E2D28C800267B9B /* libTKernel.a */, - 0A7DEDE01E2D28CB00267B9B /* libTKG2d.a */, - 0A7DEDE11E2D28CE00267B9B /* libTKG3d.a */, - 0A7DEDE21E2D28D200267B9B /* libTKGeomAlgo.a */, - 0A7DEDE31E2D28D500267B9B /* libTKGeomBase.a */, - 0A7DEDE41E2D28D800267B9B /* libTKMath.a */, - 0A7DEDE51E2D28DC00267B9B /* libTKShHealing.a */, - 0A7DEDE61E2D28DF00267B9B /* libTKTopAlgo.a */, - 0A7DEDD41E2D1D0900267B9B /* libfreetype.a */, - 0A7DED6E1E2D15B800267B9B /* dev */, - 3405CA811DE332AB008BADB9 /* UIKit.framework */, - 3405CA7C1DE3156D008BADB9 /* OpenGLES.framework */, - 3405CA7A1DE31566008BADB9 /* QuartzCore.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 3405C9DA1DE2F04E008BADB9 /* UIKitSample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3405CA081DE2F04E008BADB9 /* Build configuration list for PBXNativeTarget "UIKitSample" */; - buildPhases = ( - 3405C9D71DE2F04E008BADB9 /* Sources */, - 3405C9D81DE2F04E008BADB9 /* Frameworks */, - 3405C9D91DE2F04E008BADB9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = UIKitSample; - productName = UIKitSample; - productReference = 3405C9DB1DE2F04E008BADB9 /* UIKitSample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 3405C9D31DE2F04E008BADB9 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = ""; - LastUpgradeCheck = 0810; - ORGANIZATIONNAME = "OPEN CASCADE"; - TargetAttributes = { - 3405C9DA1DE2F04E008BADB9 = { - CreatedOnToolsVersion = 8.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 3405C9D61DE2F04E008BADB9 /* Build configuration list for PBXProject "UIKitSample" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 3405C9D21DE2F04E008BADB9; - productRefGroup = 3405C9DC1DE2F04E008BADB9 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 3405C9DA1DE2F04E008BADB9 /* UIKitSample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 3405C9D91DE2F04E008BADB9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0A24B9FA1EB0A7CC00A5F490 /* linkrods.step in Resources */, - 0AAE0DE61EAF816E00C1F65B /* screw.step in Resources */, - 3405C9EE1DE2F04E008BADB9 /* LaunchScreen.storyboard in Resources */, - 3405C9EB1DE2F04E008BADB9 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3405C9D71DE2F04E008BADB9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3405C9E31DE2F04E008BADB9 /* AppDelegate.mm in Sources */, - 3405CA851DE3331D008BADB9 /* GLView.mm in Sources */, - 343FDCA61DE42F37009AEE51 /* GLViewController.mm in Sources */, - 34424E031DE70100008B56DA /* OcctDocument.mm in Sources */, - 3405CA781DE303DC008BADB9 /* OcctViewer.mm in Sources */, - 3405C9E01DE2F04E008BADB9 /* main.mm in Sources */, - 34424E061DE72D2E008B56DA /* CafShapePrs.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 3405C9EC1DE2F04E008BADB9 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 3405C9ED1DE2F04E008BADB9 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 3405CA061DE2F04E008BADB9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LIBRARY_SEARCH_PATHS = ""; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - USE_HEADERMAP = YES; - VALID_ARCHS = "$(ARCHS_STANDARD)"; - }; - name = Debug; - }; - 3405CA071DE2F04E008BADB9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LIBRARY_SEARCH_PATHS = ""; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = ""; - USE_HEADERMAP = YES; - VALIDATE_PRODUCT = YES; - VALID_ARCHS = "$(ARCHS_STANDARD)"; - }; - name = Release; - }; - 3405CA091DE2F04E008BADB9 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LIBRARY = "libc++"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = ""; - HEADER_SEARCH_PATHS = ../occt/inc; - INFOPLIST_FILE = UIKitSample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - ../occt/lib, - ../3rdparty/lib, - ); - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = org.opencascade.ios.sample; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "$(ARCHS_STANDARD)"; - }; - name = Debug; - }; - 3405CA0A1DE2F04E008BADB9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LIBRARY = "libc++"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEVELOPMENT_TEAM = ""; - HEADER_SEARCH_PATHS = ../occt/inc; - INFOPLIST_FILE = UIKitSample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - ../occt/lib, - ../3rdparty/lib, - ); - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = org.opencascade.ios.sample; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = "$(ARCHS_STANDARD)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3405C9D61DE2F04E008BADB9 /* Build configuration list for PBXProject "UIKitSample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3405CA061DE2F04E008BADB9 /* Debug */, - 3405CA071DE2F04E008BADB9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3405CA081DE2F04E008BADB9 /* Build configuration list for PBXNativeTarget "UIKitSample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3405CA091DE2F04E008BADB9 /* Debug */, - 3405CA0A1DE2F04E008BADB9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 3405C9D31DE2F04E008BADB9 /* Project object */; -} diff --git a/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 6a3ecc7e45..0000000000 --- a/samples/ios/UIKitSample/UIKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/samples/ios/UIKitSample/UIKitSample/AppDelegate.h b/samples/ios/UIKitSample/UIKitSample/AppDelegate.h deleted file mode 100644 index b63c6a2952..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/AppDelegate.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -#import "GLView.h" - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/AppDelegate.mm b/samples/ios/UIKitSample/UIKitSample/AppDelegate.mm deleted file mode 100644 index 7e81296a0e..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/AppDelegate.mm +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import "AppDelegate.h" - -@interface AppDelegate () - -@end - -@implementation AppDelegate - -@synthesize window=_window; - -- (BOOL)application:(UIApplication *)theApplication didFinishLaunchingWithOptions:(NSDictionary *)theLaunchOptions { - // Override point for customization after application launch. - - CGRect screenBounds = [[UIScreen mainScreen] bounds]; - self.window = [[UIWindow alloc] initWithFrame: screenBounds]; - - GLViewController* aGLViewController = [[GLViewController alloc] init]; - UINavigationController *aNavController = - [[UINavigationController alloc] initWithRootViewController: aGLViewController]; - - self.window.rootViewController = aNavController; - [self.window makeKeyAndVisible]; - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)theApplication { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)theApplication { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)theApplication { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)theApplication { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)theApplication { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json b/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 536920e583..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "images" : [ - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-76@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-Small-40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-Small-40.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-Small-40@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-Small@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-Small.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-Small@2x.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index 57121a68a41c727724d146e4711f656f574ec47c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6596 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 B$D05E diff --git a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76.png deleted file mode 100644 index 4fb3f91430089cb9e77e29edaad6c687d2247421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3730 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 diff --git a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index 817ddecf1cea2678567824e49035fb55796fb3be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9112 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 Ja9Jqqe*ngRUOE5( diff --git a/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png b/samples/ios/UIKitSample/UIKitSample/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png deleted file mode 100644 index d845c8008a86fd15aa2f10da25d57ccfe723d9c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1672 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 T1jR2Z00000NkvXXu0mjf&0_E$ diff --git a/samples/ios/UIKitSample/UIKitSample/Base.lproj/LaunchScreen.storyboard b/samples/ios/UIKitSample/UIKitSample/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index fdf3f97d1b..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/ios/UIKitSample/UIKitSample/CafShapePrs.h b/samples/ios/UIKitSample/UIKitSample/CafShapePrs.h deleted file mode 100644 index 1215533609..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/CafShapePrs.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef CafShapePrs_h -#define CafShapePrs_h - -#include -#include -#include - -typedef NCollection_DataMap CafDataMapOfShapeColor; -typedef NCollection_DataMap MapOfPrsForShapes; - -//! Interactive object for shape in DECAF document -class CafShapePrs : public XCAFPrs_AISObject -{ - DEFINE_STANDARD_RTTIEXT(CafShapePrs, XCAFPrs_AISObject) -public: - - //! Default constructor. - CafShapePrs (const TDF_Label& theLabel, - const XCAFPrs_Style& theStyle, - const Graphic3d_MaterialAspect& theMaterial); - - //! Search custom aspect for specified shape. - Standard_Boolean FindCustomAspects (const TopoDS_Shape& theShape, - Handle(AIS_ColoredDrawer)& theAspects) const - { - return myShapeColors.Find (theShape, theAspects); - } - - //! Access the styles map. - const CafDataMapOfShapeColor& ShapeColors() const { return myShapeColors; } - - //! Override default style. - virtual void DefaultStyle (XCAFPrs_Style& theStyle) const Standard_OVERRIDE - { - theStyle = myDefStyle; - } - -protected: - - XCAFPrs_Style myDefStyle; //!< default style - -}; - -#endif // CafShapePrs_h diff --git a/samples/ios/UIKitSample/UIKitSample/CafShapePrs.mm b/samples/ios/UIKitSample/UIKitSample/CafShapePrs.mm deleted file mode 100644 index a23e9f02a6..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/CafShapePrs.mm +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include "CafShapePrs.h" - -#import - -IMPLEMENT_STANDARD_RTTIEXT(CafShapePrs, XCAFPrs_AISObject) - -// ======================================================================= -// function : CafShapePrs -// purpose : -// ======================================================================= -CafShapePrs::CafShapePrs(const TDF_Label& theLabel, - const XCAFPrs_Style& theStyle, - const Graphic3d_MaterialAspect& theMaterial) -: XCAFPrs_AISObject (theLabel), - myDefStyle(theStyle) -{ - SetMaterial(theMaterial); -} diff --git a/samples/ios/UIKitSample/UIKitSample/GLView.h b/samples/ios/UIKitSample/UIKitSample/GLView.h deleted file mode 100644 index 0e90b2d02f..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/GLView.h +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef GLView_h -#define GLView_h - -#import -#import - -#include -#include - -#import "GLViewController.h" - -//! OpenGL view -@interface GLView : UIView { - -@public - GLViewController* myController; - - EAGLContext* myGLContext; - - int myBackingWidth; - int myBackingHeight; - GLuint myFrameBuffer; - GLuint myRenderBuffer; - GLuint myDepthBuffer; -} - -@end - -#endif // GLView_h diff --git a/samples/ios/UIKitSample/UIKitSample/GLView.mm b/samples/ios/UIKitSample/UIKitSample/GLView.mm deleted file mode 100644 index 3e61a002d3..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/GLView.mm +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -#import "GLView.h" -#import "GLViewController.h" - -@implementation GLView - -// ======================================================================= -// function : layerClass -// purpose : -// ======================================================================= -+ (Class)layerClass -{ - return [CAEAGLLayer class]; -} - -// ======================================================================= -// function : setupLayer -// purpose : -// ======================================================================= -- (void)setupLayer -{ - CAEAGLLayer* anEAGLLayer = (CAEAGLLayer*) self.layer; - anEAGLLayer.opaque = YES; - anEAGLLayer.contentsScale = [[UIScreen mainScreen] scale]; -} - -// ======================================================================= -// function : setupContext -// purpose : -// ======================================================================= -- (void)setupContext -{ - EAGLRenderingAPI aRendApi = kEAGLRenderingAPIOpenGLES2; - myGLContext = [[EAGLContext alloc] initWithAPI:aRendApi]; - if (!myGLContext) - { - NSLog(@"Failed to initialize OpenGL ES 2.0 context"); - } - - if (![EAGLContext setCurrentContext:myGLContext]) - { - NSLog(@"Failed to set current OpenGL ES context"); - } -} - -// ======================================================================= -// function : createBuffers -// purpose : -// ======================================================================= -- (void) createBuffers -{ - glGenFramebuffers(1, &myFrameBuffer); - glBindFramebuffer(GL_FRAMEBUFFER, myFrameBuffer); - glGenRenderbuffers(1, &myRenderBuffer); - glBindRenderbuffer(GL_RENDERBUFFER, myRenderBuffer); - - [myGLContext renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer*)self.layer]; - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, myRenderBuffer); - glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &myBackingWidth); - glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &myBackingHeight); - - glGenRenderbuffers(1, &myDepthBuffer); - glBindRenderbuffer(GL_RENDERBUFFER, myDepthBuffer); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, myBackingWidth, myBackingHeight); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, myDepthBuffer); -} - -// ======================================================================= -// function : destroyBuffers -// purpose : -// ======================================================================= -- (void) destroyBuffers -{ - glDeleteFramebuffers(1, &myFrameBuffer); - myFrameBuffer = 0; - glDeleteRenderbuffers(1, &myRenderBuffer); - myRenderBuffer = 0; - glDeleteRenderbuffers(1, &myDepthBuffer); - myDepthBuffer = 0; -} - -// ======================================================================= -// function : drawView -// purpose : -// ======================================================================= -- (void) drawView -{ - glBindFramebuffer(GL_FRAMEBUFFER, myFrameBuffer); - - [myController Draw]; - - glBindRenderbuffer(GL_RENDERBUFFER, myRenderBuffer); - [myGLContext presentRenderbuffer:GL_RENDERBUFFER]; -} - -// ======================================================================= -// function : layoutSubviews -// purpose : -// ======================================================================= -- (void) layoutSubviews -{ - [EAGLContext setCurrentContext:myGLContext]; - - [self destroyBuffers]; - [self createBuffers]; - [self drawView]; - - glBindRenderbuffer(GL_RENDERBUFFER, myRenderBuffer); - - glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &myBackingWidth); - glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &myBackingHeight); - - if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) - { - NSLog(@"Failed to make complete framebuffer object %u", - glCheckFramebufferStatus(GL_FRAMEBUFFER)); - } - - glViewport(0, 0, myBackingWidth, myBackingHeight); - - [myController Setup]; -} - -// ======================================================================= -// function : init -// purpose : -// ======================================================================= -- (id) init -{ - self = [super init]; - - if (self) { - [self setupLayer]; - [self setupContext]; - - myController = NULL; - - myBackingWidth = 0; - myBackingHeight = 0; - myFrameBuffer = 0; - myRenderBuffer = 0; - myDepthBuffer = 0; - } - - return self; -} - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/GLViewController.h b/samples/ios/UIKitSample/UIKitSample/GLViewController.h deleted file mode 100644 index 7f8f068221..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/GLViewController.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef GLViewController_h -#define GLViewController_h - -#import - -#import "OcctViewer.h" - -//! OpenGL view controller -@interface GLViewController : UIViewController { - OcctViewer* myOcctViewer; - CGPoint myFirstTouch[2]; -} - --(void) Draw; --(void) Setup; - -@end - -#endif // GLViewController_h diff --git a/samples/ios/UIKitSample/UIKitSample/GLViewController.mm b/samples/ios/UIKitSample/UIKitSample/GLViewController.mm deleted file mode 100644 index 6827f68352..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/GLViewController.mm +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -#import "GLViewController.h" -#import "GLView.h" - -@implementation GLViewController - -// ======================================================================= -// function : init -// purpose : -// ======================================================================= -- (id) init -{ - self = [super init]; - - if (self) { - myOcctViewer = new OcctViewer(); - } - - return self; -} - -// ======================================================================= -// function : Draw -// purpose : -// ======================================================================= -- (void) Draw -{ -} - -// ======================================================================= -// function : Setup -// purpose : -// ======================================================================= -- (void) Setup { - if (!myOcctViewer->InitViewer(self.view)) { - NSLog(@"Failed to init viewer"); - } - else { - [self importScrew:nullptr]; - } -} - -// ======================================================================= -// function : loadView -// purpose : -// ======================================================================= -- (void) loadView -{ - GLView* aGLView = [[GLView alloc] init]; - aGLView->myController = self; - self.view = aGLView; -} - -// ======================================================================= -// function : touchesBegan -// purpose : -// ======================================================================= -- (void)touchesBegan:(NSSet *)theTouches withEvent:(UIEvent *)theEvent -{ - [super touchesBegan:theTouches withEvent:theEvent]; - - UITouch *aTouch = [theTouches anyObject]; - if (aTouch != NULL) { - CGPoint aTouchPoint = [aTouch locationInView:self.view]; - myOcctViewer->StartRotation((int)aTouchPoint.x, (int)aTouchPoint.y); - } -} - -// ======================================================================= -// function : touchesMoved -// purpose : -// ======================================================================= -- (void)touchesMoved:(NSSet *)theTouches withEvent:(UIEvent *)theEvent -{ - [super touchesMoved:theTouches withEvent:theEvent]; - - UITouch *aTouch = [theTouches anyObject]; - if (aTouch != NULL) { - CGPoint aTouchPoint = [aTouch locationInView:self.view]; - myOcctViewer->Rotation((int)aTouchPoint.x, (int)aTouchPoint.y); - } - - return; -} - -// ======================================================================= -// function : viewDidLoad -// purpose : -// ======================================================================= --(void)viewDidLoad -{ - // add zoom recognizer - UIPinchGestureRecognizer *aZoomRecognizer = [[UIPinchGestureRecognizer alloc] - initWithTarget:self - action:@selector(zoomHandler:)]; - - [[self view] addGestureRecognizer:aZoomRecognizer]; - - // add pan recognizer - UIPanGestureRecognizer *aPanRecognizer = [[UIPanGestureRecognizer alloc] - initWithTarget:self - action:@selector(panHandler:)]; - - aPanRecognizer.maximumNumberOfTouches = 2; - aPanRecognizer.minimumNumberOfTouches = 2; - - [[self view] addGestureRecognizer:aPanRecognizer]; - - UITapGestureRecognizer *aTapRecognizer = [[UITapGestureRecognizer alloc] - initWithTarget:self - action:@selector(tapHandler:)]; - - [[self view] addGestureRecognizer:aTapRecognizer]; - - - // add import buttons - UIBarButtonItem *importScrewBtn = [[UIBarButtonItem alloc] - initWithTitle:@"Sample 1" - style:UIBarButtonItemStylePlain - target:self - action:@selector(importScrew:)]; - - UIBarButtonItem *importLinkrodsBtn = [[UIBarButtonItem alloc] - initWithTitle:@"Sample 2" - style:UIBarButtonItemStylePlain - target:self - action:@selector(importLinkrods:)]; - - UIBarButtonItem *displayAboutDlgBtn = [[UIBarButtonItem alloc] - initWithTitle:@"About" - style:UIBarButtonItemStylePlain - target:self - action:@selector(displayAboutDlg:)]; - - [self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:importScrewBtn, importLinkrodsBtn, nil]]; - [self.navigationItem setRightBarButtonItem: displayAboutDlgBtn]; -} - -// ======================================================================= -// function : zoomHandler -// purpose : -// ======================================================================= -- (void)zoomHandler:(UIPinchGestureRecognizer *)pinchRecognizer -{ - if ([pinchRecognizer numberOfTouches] > 1) - { - UIGestureRecognizerState aState = [pinchRecognizer state]; - if (aState == UIGestureRecognizerStateBegan) - { - myFirstTouch[0] = [pinchRecognizer locationOfTouch:0 inView:self.view]; - myFirstTouch[1] = [pinchRecognizer locationOfTouch:1 inView:self.view]; - } - else if (aState == UIGestureRecognizerStateChanged) { - CGPoint aLastTouch[2] = { - [pinchRecognizer locationOfTouch:0 inView:self.view], - [pinchRecognizer locationOfTouch:1 inView:self.view] - }; - - double aPinchCenterXStart = ( myFirstTouch[0].x + myFirstTouch[1].x ) / 2.0; - double aPinchCenterYStart = ( myFirstTouch[0].y + myFirstTouch[1].y ) / 2.0; - - double aStartDist = std::sqrt( ( myFirstTouch[0].x - myFirstTouch[1].x ) * ( myFirstTouch[0].x - myFirstTouch[1].x ) + - ( myFirstTouch[0].y - myFirstTouch[1].y ) * ( myFirstTouch[0].y - myFirstTouch[1].y ) ); - double anEndDist = std::sqrt( ( aLastTouch[0].x - aLastTouch[1].x ) * ( aLastTouch[0].x - aLastTouch[1].x ) + - ( aLastTouch[0].y - aLastTouch[1].y ) * ( aLastTouch[0].y - aLastTouch[1].y ) ); - - double aDeltaDist = anEndDist - aStartDist; - - myOcctViewer->Zoom(aPinchCenterXStart, aPinchCenterYStart, aDeltaDist); - - myFirstTouch[0] = aLastTouch[0]; - myFirstTouch[1] = aLastTouch[1]; - } - } -} - -// ======================================================================= -// function : panHandler -// purpose : -// ======================================================================= -- (void)panHandler:(UIPanGestureRecognizer *)panRecognizer -{ - if ([panRecognizer numberOfTouches] > 1) - { - UIGestureRecognizerState aState = [panRecognizer state]; - if (aState == UIGestureRecognizerStateBegan) - { - myFirstTouch[0] = [panRecognizer locationOfTouch:0 inView:self.view]; - myFirstTouch[1] = [panRecognizer locationOfTouch:1 inView:self.view]; - } - else if (aState == UIGestureRecognizerStateChanged) { - CGPoint aLastTouch[2] = { - [panRecognizer locationOfTouch:0 inView:self.view], - [panRecognizer locationOfTouch:1 inView:self.view] - }; - - double aPinchCenterXStart = ( myFirstTouch[0].x + myFirstTouch[1].x ) / 2.0; - double aPinchCenterYStart = ( myFirstTouch[0].y + myFirstTouch[1].y ) / 2.0; - - double aPinchCenterXEnd = ( aLastTouch[0].x + aLastTouch[1].x ) / 2.0; - double aPinchCenterYEnd = ( aLastTouch[0].y + aLastTouch[1].y ) / 2.0; - - double aPinchCenterXDev = aPinchCenterXEnd - aPinchCenterXStart; - double aPinchCenterYDev = aPinchCenterYEnd - aPinchCenterYStart; - - myOcctViewer->Pan((int)aPinchCenterXDev, (int)-aPinchCenterYDev); - } - } -} - -// ======================================================================= -// function : tapHandler -// purpose : -// ======================================================================= -- (void)tapHandler:(UITapGestureRecognizer *)tapRecognizer -{ - CGPoint aTapPoint = [tapRecognizer locationInView:self.view]; - myOcctViewer->Select(aTapPoint.x, aTapPoint.y); -} - -// ======================================================================= -// function : importScrew -// purpose : -// ======================================================================= -- (void)importScrew:(UIBarButtonItem *)theSender -{ - NSString* aNsPath = [[NSBundle mainBundle] pathForResource:@"screw" - ofType:@"step"]; - std::string aPath = std::string([aNsPath UTF8String]); - - myOcctViewer->ImportSTEP(aPath); - myOcctViewer->FitAll(); -} - -// ======================================================================= -// function : importLinkrods -// purpose : -// ======================================================================= -- (void)importLinkrods:(UIBarButtonItem *)theSender -{ - NSString* aNsPath = [[NSBundle mainBundle] pathForResource:@"linkrods" - ofType:@"step"]; - std::string aPath = std::string([aNsPath UTF8String]); - - myOcctViewer->ImportSTEP(aPath); - myOcctViewer->FitAll(); -} - -// ======================================================================= -// function : displayAboutDlg -// purpose : -// ======================================================================= -- (void)displayAboutDlg:(UIBarButtonItem *)theSender -{ - UIAlertController* anAbout = [UIAlertController alertControllerWithTitle:@"About" - message:@"UIKit based application for tutorial to Open CASCADE Technology.\n\n" - @"Copyright (c) 2017 OPEN CASCADE SAS" - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* aDefaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; - - [anAbout addAction:aDefaultAction]; - [self presentViewController:anAbout animated:YES completion:nil]; -} - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/Info.plist b/samples/ios/UIKitSample/UIKitSample/Info.plist deleted file mode 100644 index 92faa7fb2e..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/Info.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - OCCT Sample - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/samples/ios/UIKitSample/UIKitSample/OcctDocument.h b/samples/ios/UIKitSample/UIKitSample/OcctDocument.h deleted file mode 100644 index f85acf12dd..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/OcctDocument.h +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef OcctDocument_h -#define OcctDocument_h - -#include -#include - -//! The document -class OcctDocument : public Standard_Transient -{ - DEFINE_STANDARD_RTTIEXT(OcctDocument, Standard_Transient) - -public: - Standard_EXPORT OcctDocument(); - - Standard_EXPORT virtual ~OcctDocument(); - - Standard_EXPORT void InitDoc(); - - Handle(TDocStd_Document)& ChangeDocument() { return myOcafDoc; } - - const Handle(TDocStd_Document)& Document() const { return myOcafDoc; } - -private: - Handle(XCAFApp_Application) myApp; - Handle(TDocStd_Document) myOcafDoc; -}; - -#endif // OcctDocument_h diff --git a/samples/ios/UIKitSample/UIKitSample/OcctDocument.mm b/samples/ios/UIKitSample/UIKitSample/OcctDocument.mm deleted file mode 100644 index 6adfe78b7f..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/OcctDocument.mm +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -#include "OcctDocument.h" - -#include -#include -#include - -#include - -IMPLEMENT_STANDARD_RTTIEXT(OcctDocument, Standard_Transient) - -// ======================================================================= -// function : OcctViewer -// purpose : -// ======================================================================= -OcctDocument::OcctDocument() -{ - try - { - OCC_CATCH_SIGNALS - myApp = XCAFApp_Application::GetApplication(); - } - catch (const Standard_Failure& theFailure) - { - Message::SendFail (TCollection_AsciiString("Error in creating application") + theFailure.GetMessageString()); - } -} - -// ======================================================================= -// function : ~OcctDocument -// purpose : -// ======================================================================= -OcctDocument::~OcctDocument() -{ -} - -// ======================================================================= -// function : InitDoc -// purpose : -// ======================================================================= -void OcctDocument::InitDoc() -{ - // close old document - if (!myOcafDoc.IsNull()) - { - if (myOcafDoc->HasOpenCommand()) - { - myOcafDoc->AbortCommand(); - } - - myOcafDoc->Main().Root().ForgetAllAttributes(Standard_True); - myApp->Close(myOcafDoc); - myOcafDoc.Nullify(); - } - - // create a new document - myApp->NewDocument(TCollection_ExtendedString("BinXCAF"), myOcafDoc); - - // set maximum number of available "undo" actions - if (!myOcafDoc.IsNull()) - { - myOcafDoc->SetUndoLimit(10); - } -} diff --git a/samples/ios/UIKitSample/UIKitSample/OcctViewer.h b/samples/ios/UIKitSample/UIKitSample/OcctViewer.h deleted file mode 100644 index 57962aa15b..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/OcctViewer.h +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#ifndef OcctViewer_H -#define OcctViewer_H - -#include "OcctDocument.h" -#include "CafShapePrs.h" - -#include -#include -#include -#include -#include -#include -#include - -#import - -//! OCCT 3D Viewer holder. -class OcctViewer -{ -public: - - //! Empty constructor. - Standard_EXPORT OcctViewer(); - - //! Destructor. - Standard_EXPORT virtual ~OcctViewer(); - - //! Release the viewer. - Standard_EXPORT void release(); - -public: - - //! Return viewer instance. - const Handle(V3d_Viewer)& V3dViewer() const { return myViewer; } - - //! Return active view. - const Handle(V3d_View)& ActiveView() const { return myView; } - - //! Interactive context. - const Handle(AIS_InteractiveContext)& AisContext() const { return myContext; } - - //! Invalidate active viewer. - void Invalidate() - { - myView->Invalidate(); - } - -public: - - //! Perform OCCT Viewer (re)initialization. - Standard_EXPORT bool InitViewer (UIView* theWin); - - Standard_EXPORT void FitAll(); - - Standard_EXPORT void StartRotation(int theX, int theY); - Standard_EXPORT void Rotation(int theX, int theY); - Standard_EXPORT void Pan(int theX, int theY); - Standard_EXPORT void Zoom(int theX, int theY, double theDelta); - Standard_EXPORT void Select(int theX, int theY); - - Standard_EXPORT bool ImportSTEP(std::string theFilename); - -private: - void clearSession(const Handle(XSControl_WorkSession)& theSession); - - void displayWithChildren (XCAFDoc_ShapeTool& theShapeTool, - XCAFDoc_ColorTool& theColorTool, - const TDF_Label& theLabel, - const TopLoc_Location& theParentTrsf, - const XCAFPrs_Style& theParentStyle, - const TCollection_AsciiString& theParentId, - MapOfPrsForShapes& theMapOfShapes); - void clearContext(); - -protected: - - Handle(V3d_Viewer) myViewer; //!< main viewer - Handle(V3d_View) myView; //!< main view - Handle(AIS_InteractiveContext) myContext; //!< interactive context containing displayed objects - Handle(OcctDocument) myDoc; -}; - -#endif // OcctViewer_H diff --git a/samples/ios/UIKitSample/UIKitSample/OcctViewer.mm b/samples/ios/UIKitSample/UIKitSample/OcctViewer.mm deleted file mode 100644 index de4eff8c3a..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/OcctViewer.mm +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#include "OcctViewer.h" -#include "OcctDocument.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ======================================================================= -// function : OcctViewer -// purpose : -// ======================================================================= -OcctViewer::OcctViewer() -{ - myDoc = new OcctDocument(); -} - -// ======================================================================= -// function : ~OcctViewer -// purpose : -// ======================================================================= -OcctViewer::~OcctViewer() -{ - // -} - -// ======================================================================= -// function : release -// purpose : -// ======================================================================= -void OcctViewer::release() -{ - myContext.Nullify(); - if (!myView.IsNull()) - { - myView->Remove(); - } - myView.Nullify(); - myViewer.Nullify(); - - myDoc.Nullify(); -} - -// ======================================================================= -// function : InitViewer -// purpose : -// ======================================================================= -bool OcctViewer::InitViewer (UIView* theWin) -{ - EAGLContext* aRendCtx = [EAGLContext currentContext]; - if (theWin == NULL || aRendCtx == NULL) - { - NSLog(@"Error: No active EAGL context!"); - release(); - return false; - } - if (!myView.IsNull()) - { - myView->MustBeResized(); - myView->Invalidate(); - return true; - } - - Handle(Aspect_DisplayConnection) aDisplayConnection = new Aspect_DisplayConnection(); - Handle(Graphic3d_GraphicDriver) aGraphicDriver = new OpenGl_GraphicDriver (aDisplayConnection); - - // Create Viewer - myViewer = new V3d_Viewer (aGraphicDriver); - myViewer->SetDefaultLights(); - myViewer->SetLightOn(); - - // Create AIS context - myContext = new AIS_InteractiveContext (myViewer); - myContext->SetDisplayMode ((int )AIS_DisplayMode::AIS_Shaded, false); - - myView = myViewer->CreateView(); - myView->TriedronDisplay (Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.20, V3d_ZBUFFER); - - Handle(Cocoa_Window) aCocoaWindow = new Cocoa_Window (theWin); - myView->SetWindow (aCocoaWindow, aRendCtx); - if (!aCocoaWindow->IsMapped()) - { - aCocoaWindow->Map(); - } - - myView->Redraw(); - myView->MustBeResized(); - return true; -} - -// ======================================================================= -// function : FitAll -// purpose : -// ======================================================================= -void OcctViewer::FitAll() -{ - if (!myView.IsNull()) - { - myView->FitAll(); - myView->ZFitAll(); - } -} - -// ======================================================================= -// function : StartRotation -// purpose : -// ======================================================================= -void OcctViewer::StartRotation(int theX, int theY) -{ - if (!myView.IsNull()) - { - myView->StartRotation(theX, theY); - } -} - -// ======================================================================= -// function : Rotation -// purpose : -// ======================================================================= -void OcctViewer::Rotation(int theX, int theY) -{ - if (!myView.IsNull()) - { - myView->Rotation(theX, theY); - } -} - -// ======================================================================= -// function : Pan -// purpose : -// ======================================================================= -void OcctViewer::Pan(int theX, int theY) -{ - if (!myView.IsNull()) - { - myView->Pan(theX, theY, 1, Standard_False); - } -} - -// ======================================================================= -// function : Zoom -// purpose : -// ======================================================================= -void OcctViewer::Zoom(int theX, int theY, double theDelta) -{ - if (!myView.IsNull()) - { - if (theX >=0 && theY >=0) - { - myView->StartZoomAtPoint(theX, theY); - myView->ZoomAtPoint(0, 0, (int) theDelta, (int) theDelta); - } - else - { - double aCoeff = Abs(theDelta) / 100.0 + 1.0; - aCoeff = theDelta > 0.0 ? aCoeff : 1.0 / aCoeff; - myView->SetZoom(aCoeff, Standard_True); - } - } -} - -// ======================================================================= -// function : Select -// purpose : -// ======================================================================= -void OcctViewer::Select(int theX, int theY) -{ - if (!myContext.IsNull()) - { - myContext->ClearSelected(Standard_False); - myContext->MoveTo(theX, theY, myView, Standard_False); - myContext->Select(Standard_False); - } -} - -// ======================================================================= -// function : ImportSTEP -// purpose : -// ======================================================================= -bool OcctViewer::ImportSTEP(std::string theFilename) -{ - // create a new document - myDoc->InitDoc(); - - STEPCAFControl_Reader aReader; - Handle(XSControl_WorkSession) aSession = aReader.Reader().WS(); - - try - { - if (!aReader.ReadFile (theFilename.c_str())) - { - clearSession (aSession); - return false; - } - - if (!aReader.Transfer (myDoc->ChangeDocument())) - { - clearSession (aSession); - return false; - } - - clearSession(aSession); - } - catch (const Standard_Failure& theFailure) - { - Message::SendFail (TCollection_AsciiString ("Exception raised during STEP import\n[") - + theFailure.GetMessageString() + "]\n" + theFilename.c_str()); - return false; - } - - Handle(XCAFDoc_ShapeTool) aShapeTool = XCAFDoc_DocumentTool::ShapeTool (myDoc->Document()->Main()); - Handle(XCAFDoc_ColorTool) aColorTool = XCAFDoc_DocumentTool::ColorTool (myDoc->Document()->Main()); - - TDF_LabelSequence aLabels; - aShapeTool->GetFreeShapes (aLabels); - - // perform meshing explicitly - TopoDS_Compound aCompound; - BRep_Builder aBuildTool; - aBuildTool.MakeCompound (aCompound); - for (Standard_Integer aLabIter = 1; aLabIter <= aLabels.Length(); ++aLabIter) - { - TopoDS_Shape aShape; - const TDF_Label& aLabel = aLabels.Value (aLabIter); - if (XCAFDoc_ShapeTool::GetShape (aLabel, aShape)) - { - aBuildTool.Add (aCompound, aShape); - } - } - - Handle(Prs3d_Drawer) aDrawer = myContext->DefaultDrawer(); - Standard_Real aDeflection = StdPrs_ToolTriangulatedShape::GetDeflection (aCompound, aDrawer); - if (!BRepTools::Triangulation (aCompound, aDeflection)) - { - BRepMesh_IncrementalMesh anAlgo; - anAlgo.ChangeParameters().Deflection = aDeflection; - anAlgo.ChangeParameters().Angle = aDrawer->DeviationAngle(); - anAlgo.ChangeParameters().InParallel = Standard_True; - anAlgo.SetShape (aCompound); - anAlgo.Perform(); - } - - // clear presentations - clearContext(); - - // create presentations - MapOfPrsForShapes aMapOfShapes; - XCAFPrs_Style aDefStyle; - aDefStyle.SetColorSurf (Quantity_NOC_GRAY65); - aDefStyle.SetColorCurv (Quantity_NOC_GRAY65); - for (Standard_Integer aLabIter = 1; aLabIter <= aLabels.Length(); ++aLabIter) - { - const TDF_Label& aLabel = aLabels.Value (aLabIter); - displayWithChildren (*aShapeTool, *aColorTool, aLabel, TopLoc_Location(), aDefStyle, "", aMapOfShapes); - } - - return true; -} - -// ======================================================================= -// function : displayWithChildren -// purpose : -// ======================================================================= -void OcctViewer::displayWithChildren (XCAFDoc_ShapeTool& theShapeTool, - XCAFDoc_ColorTool& theColorTool, - const TDF_Label& theLabel, - const TopLoc_Location& theParentTrsf, - const XCAFPrs_Style& theParentStyle, - const TCollection_AsciiString& theParentId, - MapOfPrsForShapes& theMapOfShapes) -{ - TDF_Label aRefLabel = theLabel; - if (theShapeTool.IsReference (theLabel)) - { - theShapeTool.GetReferredShape (theLabel, aRefLabel); - } - - TCollection_AsciiString anEntry; - TDF_Tool::Entry (theLabel, anEntry); - if (!theParentId.IsEmpty()) - { - anEntry = theParentId + "\n" + anEntry; - } - anEntry += "."; - - if (!theShapeTool.IsAssembly (aRefLabel)) - { - Handle(AIS_InteractiveObject) anAis; - if (!theMapOfShapes.Find (aRefLabel, anAis)) - { - anAis = new CafShapePrs (aRefLabel, theParentStyle, Graphic3d_NameOfMaterial_ShinyPlastified); - theMapOfShapes.Bind (aRefLabel, anAis); - } - - Handle(TCollection_HAsciiString) anId = new TCollection_HAsciiString (anEntry); - Handle(AIS_ConnectedInteractive) aConnected = new AIS_ConnectedInteractive(); - aConnected->Connect (anAis, theParentTrsf.Transformation()); - aConnected->SetOwner (anId); - aConnected->SetLocalTransformation (theParentTrsf.Transformation()); - aConnected->SetHilightMode(1); - myContext->Display (aConnected, Standard_False); - return; - } - - XCAFPrs_Style aDefStyle = theParentStyle; - Quantity_Color aColor; - if (theColorTool.GetColor (aRefLabel, XCAFDoc_ColorGen, aColor)) - { - aDefStyle.SetColorCurv (aColor); - aDefStyle.SetColorSurf (aColor); - } - if (theColorTool.GetColor (aRefLabel, XCAFDoc_ColorSurf, aColor)) - { - aDefStyle.SetColorSurf (aColor); - } - if (theColorTool.GetColor (aRefLabel, XCAFDoc_ColorCurv, aColor)) - { - aDefStyle.SetColorCurv (aColor); - } - - for (TDF_ChildIterator childIter (aRefLabel); childIter.More(); childIter.Next()) - { - TDF_Label aLabel = childIter.Value(); - if (!aLabel.IsNull() - && (aLabel.HasAttribute() || aLabel.HasChild())) - { - TopLoc_Location aTrsf = theParentTrsf * theShapeTool.GetLocation (aLabel); - displayWithChildren (theShapeTool, theColorTool, aLabel, aTrsf, aDefStyle, anEntry, theMapOfShapes); - } - } -} - -// ======================================================================= -// function : clearSession -// purpose : -// ======================================================================= -void OcctViewer::clearSession (const Handle(XSControl_WorkSession)& theSession) -{ - if (theSession.IsNull()) - { - return; - } - - Handle(Transfer_TransientProcess) aMapReader = theSession->TransferReader()->TransientProcess(); - if (!aMapReader.IsNull()) - { - aMapReader->Clear(); - } - - Handle(XSControl_TransferReader) aTransferReader = theSession->TransferReader(); - if (!aTransferReader.IsNull()) - { - aTransferReader->Clear(1); - } -} - -// ======================================================================= -// function : clearContext -// purpose : -// ======================================================================= -void OcctViewer::clearContext() -{ - if (!myContext.IsNull()) - { - myContext->ClearSelected(Standard_False); - myContext->RemoveAll(Standard_False); - } -} diff --git a/samples/ios/UIKitSample/UIKitSample/ViewController.h b/samples/ios/UIKitSample/UIKitSample/ViewController.h deleted file mode 100644 index 004fc808ee..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/ViewController.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2016 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -@interface ViewController : UIViewController - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/ViewController.m b/samples/ios/UIKitSample/UIKitSample/ViewController.m deleted file mode 100644 index e019f32f05..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/ViewController.m +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2016 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import "ViewController.h" - -#include "OcctViewer.h" - -@interface ViewController () - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/samples/ios/UIKitSample/UIKitSample/main.mm b/samples/ios/UIKitSample/UIKitSample/main.mm deleted file mode 100644 index 7e27d76391..0000000000 --- a/samples/ios/UIKitSample/UIKitSample/main.mm +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2017 OPEN CASCADE SAS -// -// This file is part of the examples of the Open CASCADE Technology software library. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool - { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/samples/ios/UIKitSample/images/sample_ios_uikit.png b/samples/ios/UIKitSample/images/sample_ios_uikit.png deleted file mode 100644 index 703e8e5e4fc0e84c503215de3eb5ee0f0ae83e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48744 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 diff --git a/samples/java/jniviewer/.gitattributes b/samples/java/jniviewer/.gitattributes deleted file mode 100644 index c275dc2521..0000000000 --- a/samples/java/jniviewer/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.gradle eol=lf diff --git a/samples/java/jniviewer/.gitignore b/samples/java/jniviewer/.gitignore deleted file mode 100644 index 3328b0f384..0000000000 --- a/samples/java/jniviewer/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -/.gradle -/.idea -/build -/gradle -gradlew -gradlew.bat -/app/.cxx -/app/build -gradle.properties -local.properties diff --git a/samples/java/jniviewer/ReadMe.md b/samples/java/jniviewer/ReadMe.md deleted file mode 100644 index d74dd7c4af..0000000000 --- a/samples/java/jniviewer/ReadMe.md +++ /dev/null @@ -1,45 +0,0 @@ -Android: 3D Viewer (Java|C++|Android SDK|JNI) {#samples_java_android_occt} -================== - -This sample demonstrates simple way of using OCCT libraries in Android application written using Java. -The sample could be found within OCCT repository in folder `/samples/java/jniviewer/`. - -The connection between Java and OCCT (C++) level is provided by proxy library, libTKJniSample.so, written in C++ with exported JNI methods of Java class OcctJniRenderer. -The proxy library contains single C++ class OcctJni_Viewer encapsulating OCCT viewer and providing functionality to manipulate this viewer -and to import OCCT shapes from several supported formats of CAD files (IGES, STEP, BREP). - -This sample demonstrates indirect method of wrapping C++ to Java using manually created proxy library. -Alternative method is available, wrapping individual OCCT classes to Java equivalents so that their full API is available to Java user -and the code can be programmed on Java level similarly to C++ one. -See description of OCCT Java Wrapper in Advanced Samples and Tools on OCCT web site at -https://www.opencascade.com/content/advanced-samples-and-tools - -@figure{samples_java_android_occt.jpg} - -Install Android Studio 4.0+ and install building tools (check Tools -> SDK Manager): -- Android SDK (API level 21 or higher). -- Android SDK build tools. -- Android NDK r16 or higher (coming with CMake toolchain). - Using NDK r18 or newer will require changing ANDROID_STL in project settings. -- CMake 3.10+. - -Specify this folder location in Android Studio for opening project. -You might need re-entering Android SDK explicitly in File -> Project Structure -> SDK Location settings (SDK, NDK, JDK locations). - -This sample expects OCCT to be already build - please refer to appropriate CMake building instructions in OCCT documentation. -The following variables should be added into file gradle.properties (see gradle.properties.template as template): -- `OCCT_ROOT` - path to OCCT installation folder. -- `FREETYPE_ROOT` - path to FreeType installation folder. - -FreeImage is optional and does not required for this sample, however you should include all extra libraries used for OCCT building -and load the explicitly from Java code within OcctJniActivity::loadNatives() method, including toolkits from OCCT itself in proper order: -~~~~ - if (!loadLibVerbose ("TKernel", aLoaded, aFailed) - || !loadLibVerbose ("TKMath", aLoaded, aFailed) - || !loadLibVerbose ("TKG2d", aLoaded, aFailed) -~~~~ -Note that C++ STL library is not part of Android system, and application must package this library as well as extra component ("gnustl_shared" by default - see also `ANDROID_STL`). - -After successful build via Build -> Rebuild Project, the application can be packaged to Android: -- Deploy and run application on connected device or emulator directly from Android Studio using adb interface by menu items "Run" and "Debug". This would sign package with debug certificate. -- Prepare signed end-user package using wizard Build -> Generate signed APK. diff --git a/samples/java/jniviewer/app/build.gradle b/samples/java/jniviewer/app/build.gradle deleted file mode 100644 index 10014ce9ac..0000000000 --- a/samples/java/jniviewer/app/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion 21 - buildToolsVersion "30.0.0" - - defaultConfig { - applicationId "com.opencascade.jnisample" - minSdkVersion 21 - targetSdkVersion 26 - - ndk { - abiFilters "arm64-v8a" - } - - externalNativeBuild { - cmake { - arguments "-DOCCT_ROOT=" + OCCT_ROOT, - "-DFREETYPE_ROOT=" + FREETYPE_ROOT, - "-DANDROID_STL=gnustl_shared" - } - } - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' - } - } - - sourceSets { - main { - manifest.srcFile 'src/main/AndroidManifest.xml' - assets.srcDirs = [OCCT_ROOT + "/src"] - } - } - - externalNativeBuild { - cmake { - path "src/main/jni/CMakeLists.txt" - } - } -} - -dependencies { - implementation fileTree(dir: 'java/com/opencascade/jnisample', include: ['*.jar']) -} diff --git a/samples/java/jniviewer/app/src/main/AndroidManifest.xml b/samples/java/jniviewer/app/src/main/AndroidManifest.xml deleted file mode 100644 index 4813d0a6d1..0000000000 --- a/samples/java/jniviewer/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniActivity.java b/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniActivity.java deleted file mode 100644 index d75708abfa..0000000000 --- a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniActivity.java +++ /dev/null @@ -1,861 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -package com.opencascade.jnisample; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.Arrays; -import java.util.List; - -import android.app.Activity; -import android.content.Context; - -import android.content.Intent; -import android.content.res.AssetManager; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.graphics.Point; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.os.Bundle; -import android.os.Environment; - -import android.text.Html; -import android.text.Html.ImageGetter; -import android.text.Spanned; -import android.util.TypedValue; -import android.view.Display; -import android.view.Gravity; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.LinearLayout; -import android.view.ViewGroup.LayoutParams; -import android.widget.TextView; -import android.widget.Toast; - -//! Main activity -public class OcctJniActivity extends Activity implements OnClickListener -{ - - //! Auxiliary method to print temporary info messages - public static void printShortInfo (Activity theActivity, - CharSequence theInfo) - { - Context aCtx = theActivity.getApplicationContext(); - Toast aToast = Toast.makeText (aCtx, theInfo, Toast.LENGTH_LONG); - aToast.show(); - } - - //! Load single native library - private static boolean loadLibVerbose (String theLibName, - StringBuilder theLoadedInfo, - StringBuilder theFailedInfo) - { - try - { - System.loadLibrary (theLibName); - theLoadedInfo.append ("Info: native library \""); - theLoadedInfo.append (theLibName); - theLoadedInfo.append ("\" has been loaded\n"); - return true; - } - catch (java.lang.UnsatisfiedLinkError theError) - { - theFailedInfo.append ("Error: native library \""); - theFailedInfo.append (theLibName); - theFailedInfo.append ("\" is unavailable:\n " + theError.getMessage()); - return false; - } - catch (SecurityException theError) - { - theFailedInfo.append ("Error: native library \""); - theFailedInfo.append (theLibName); - theFailedInfo.append ("\" can not be loaded for security reasons:\n " + theError.getMessage()); - return false; - } - } - - public static boolean wasNativesLoadCalled = false; - public static boolean areNativeLoaded = false; - public static String nativeLoaded = ""; - public static String nativeFailed = ""; - - //! Auxiliary method to load native libraries - public boolean loadNatives() - { - if (wasNativesLoadCalled) - { - return areNativeLoaded; - } - wasNativesLoadCalled = true; - StringBuilder aLoaded = new StringBuilder(); - StringBuilder aFailed = new StringBuilder(); - - // copy OCCT resources - String aResFolder = getFilesDir().getAbsolutePath(); - copyAssetFolder (getAssets(), "src/SHMessage", aResFolder + "/SHMessage"); - copyAssetFolder (getAssets(), "src/XSMessage", aResFolder + "/XSMessage"); - - // C++ runtime - loadLibVerbose ("gnustl_shared", aLoaded, aFailed); - - // 3rd-parties - loadLibVerbose ("freetype", aLoaded, aFailed); - loadLibVerbose ("freeimage", aLoaded, aFailed); - - if (// OCCT modeling - !loadLibVerbose ("TKernel", aLoaded, aFailed) - || !loadLibVerbose ("TKMath", aLoaded, aFailed) - || !loadLibVerbose ("TKG2d", aLoaded, aFailed) - || !loadLibVerbose ("TKG3d", aLoaded, aFailed) - || !loadLibVerbose ("TKGeomBase", aLoaded, aFailed) - || !loadLibVerbose ("TKBRep", aLoaded, aFailed) - || !loadLibVerbose ("TKGeomAlgo", aLoaded, aFailed) - || !loadLibVerbose ("TKTopAlgo", aLoaded, aFailed) - || !loadLibVerbose ("TKShHealing", aLoaded, aFailed) - || !loadLibVerbose ("TKMesh", aLoaded, aFailed) - // exchange - || !loadLibVerbose ("TKPrim", aLoaded, aFailed) - || !loadLibVerbose ("TKBO", aLoaded, aFailed) - || !loadLibVerbose ("TKBool", aLoaded, aFailed) - || !loadLibVerbose ("TKFillet", aLoaded, aFailed) - || !loadLibVerbose ("TKOffset", aLoaded, aFailed) - || !loadLibVerbose ("TKXSBase", aLoaded, aFailed) - || !loadLibVerbose ("TKDEIGES", aLoaded, aFailed) - || !loadLibVerbose ("TKDESTEP", aLoaded, aFailed) - // OCCT Visualization - || !loadLibVerbose ("TKService", aLoaded, aFailed) - || !loadLibVerbose ("TKHLR", aLoaded, aFailed) - || !loadLibVerbose ("TKV3d", aLoaded, aFailed) - || !loadLibVerbose ("TKOpenGles", aLoaded, aFailed) - // application code - || !loadLibVerbose ("TKJniSample", aLoaded, aFailed)) - { - nativeLoaded = aLoaded.toString(); - nativeFailed = aFailed.toString(); - areNativeLoaded = false; - //exitWithError (theActivity, "Broken apk?\n" + theFailedInfo); - return false; - } - nativeLoaded = aLoaded.toString(); - areNativeLoaded = true; - return true; - } - - //! Create activity - @Override protected void onCreate (Bundle theBundle) - { - super.onCreate (theBundle); - - boolean isLoaded = loadNatives(); - if (!isLoaded) - { - printShortInfo (this, nativeFailed); - OcctJniLogger.postMessage (nativeLoaded + "\n" + nativeFailed); - } - - setContentView (R.layout.activity_main); - - myOcctView = (OcctJniView )findViewById (R.id.custom_view); - myMessageTextView = (TextView )findViewById (R.id.message_view); - OcctJniLogger.setTextView (myMessageTextView); - - createViewAndButtons (Configuration.ORIENTATION_LANDSCAPE); - - myButtonPreferSize = defineButtonSize ((LinearLayout )findViewById (R.id.panel_menu)); - ImageButton aScrollBtn = (ImageButton )findViewById (R.id.scroll_btn); - aScrollBtn.setY (myButtonPreferSize); - aScrollBtn.setOnTouchListener (new View.OnTouchListener() - { - @Override - public boolean onTouch (View theView, MotionEvent theEvent) - { - return onScrollBtnTouch (theView, theEvent); - } - }); - - onConfigurationChanged (getResources().getConfiguration()); - - Intent anIntent = getIntent(); - Uri aDataUrl = anIntent != null ? anIntent.getData() : null; - String aDataPath = aDataUrl != null ? aDataUrl.getPath() : ""; - myOcctView.open (aDataPath); - myLastPath = aDataPath; - - myContext = new android.content.ContextWrapper (this); - myContext.getExternalFilesDir (null); - } - - //! Handle scroll events - private boolean onScrollBtnTouch (View theView, - MotionEvent theEvent) - { - switch (theEvent.getAction()) - { - case MotionEvent.ACTION_DOWN: - { - LinearLayout aPanelMenu = (LinearLayout )findViewById (R.id.panel_menu); - boolean isLandscape = (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE); - if (aPanelMenu.getVisibility() == View.VISIBLE) - { - aPanelMenu.setVisibility (View.GONE); - if (!isLandscape) - { - ((ImageButton )theView).setImageResource (R.drawable.open_p); - theView.setY (0); - } - else - { - ((ImageButton )theView).setImageResource (R.drawable.open_l); - theView.setX (0); - } - } - else - { - aPanelMenu.setVisibility (View.VISIBLE); - if (!isLandscape) - { - ((ImageButton )theView).setImageResource (R.drawable.close_p); - theView.setY (myButtonPreferSize); - } - else - { - ((ImageButton )theView).setImageResource (R.drawable.close_l); - theView.setX (myButtonPreferSize); - } - } - break; - } - } - return false; - } - - //! Initialize views and buttons - private void createViewAndButtons (int theOrientation) - { - // open button - ImageButton anOpenButton = (ImageButton )findViewById (R.id.open); - anOpenButton.setOnClickListener (this); - - // fit all - ImageButton aFitAllButton = (ImageButton )findViewById (R.id.fit); - aFitAllButton.setOnClickListener (this); - aFitAllButton.setOnTouchListener (new View.OnTouchListener() - { - @Override - public boolean onTouch (View theView, MotionEvent theEvent) - { - return onTouchButton (theView, theEvent); - } - }); - - // message - ImageButton aMessageButton = (ImageButton )findViewById (R.id.message); - aMessageButton.setOnClickListener (this); - - // info - ImageButton anInfoButton = (ImageButton )findViewById (R.id.info); - anInfoButton.setOnClickListener (this); - - // font for text view - TextView anInfoView = (TextView )findViewById (R.id.info_view); - anInfoView.setTextSize (TypedValue.COMPLEX_UNIT_SP, 18); - - // add submenu buttons - createSubmenuBtn (R.id.view, R.id.view_group, - Arrays.asList (R.id.proj_front, R.id.proj_top, R.id.proj_left, - R.id.proj_back, R.id.proj_bottom, R.id.proj_right), - Arrays.asList (R.drawable.proj_front, R.drawable.proj_top, R.drawable.proj_left, - R.drawable.proj_back, R.drawable.proj_bottom, R.drawable.proj_right), - 4); - } - - @Override protected void onNewIntent (Intent theIntent) - { - super.onNewIntent (theIntent); - setIntent (theIntent); - } - - @Override protected void onDestroy() - { - super.onDestroy(); - OcctJniLogger.setTextView (null); - } - - @Override protected void onPause() - { - super.onPause(); - myOcctView.onPause(); - } - - @Override protected void onResume() - { - super.onResume(); - myOcctView.onResume(); - - Intent anIntent = getIntent(); - Uri aDataUrl = anIntent != null ? anIntent.getData() : null; - String aDataPath = aDataUrl != null ? aDataUrl.getPath() : ""; - if (!aDataPath.equals (myLastPath)) - { - myOcctView.open (aDataPath); - myLastPath = aDataPath; - } - } - - //! Copy folder from assets - private boolean copyAssetFolder (AssetManager theAssetMgr, - String theAssetFolder, - String theFolderPathTo) - { - try - { - String[] aFiles = theAssetMgr.list (theAssetFolder); - File aFolder = new File (theFolderPathTo); - aFolder.mkdirs(); - boolean isOk = true; - for (String aFileIter : aFiles) - { - if (aFileIter.contains (".")) - { - isOk &= copyAsset (theAssetMgr, - theAssetFolder + "/" + aFileIter, - theFolderPathTo + "/" + aFileIter); - } - else - { - isOk &= copyAssetFolder (theAssetMgr, - theAssetFolder + "/" + aFileIter, - theFolderPathTo + "/" + aFileIter); - } - } - return isOk; - } - catch (Exception theError) - { - theError.printStackTrace(); - return false; - } - } - - //! Copy single file from assets - private boolean copyAsset (AssetManager theAssetMgr, - String thePathFrom, - String thePathTo) - { - try - { - InputStream aStreamIn = theAssetMgr.open (thePathFrom); - File aFileTo = new File (thePathTo); - aFileTo.createNewFile(); - OutputStream aStreamOut = new FileOutputStream (thePathTo); - copyStreamContent (aStreamIn, aStreamOut); - aStreamIn.close(); - aStreamIn = null; - aStreamOut.flush(); - aStreamOut.close(); - aStreamOut = null; - return true; - } - catch (Exception theError) - { - theError.printStackTrace(); - return false; - } - } - - //! Copy single file - private static void copyStreamContent (InputStream theIn, - OutputStream theOut) throws IOException - { - byte[] aBuffer = new byte[1024]; - int aNbReadBytes = 0; - while ((aNbReadBytes = theIn.read (aBuffer)) != -1) - { - theOut.write (aBuffer, 0, aNbReadBytes); - } - } - - //! Show/hide text view - private void switchTextView (TextView theTextView, - ImageButton theClickedBtn, - boolean theToSwitchOn) - { - if (theTextView != null - && theTextView.getVisibility() == View.GONE - && theToSwitchOn) - { - theTextView.setVisibility (View.VISIBLE); - theClickedBtn.setBackgroundColor (getResources().getColor(R.color.pressedBtnColor)); - setTextViewPosition (theTextView); - } - else - { - theTextView.setVisibility (View.GONE); - theClickedBtn.setBackgroundColor (getResources().getColor (R.color.btnColor)); - } - } - - //! Setup text view position - private void setTextViewPosition (TextView theTextView) - { - if (theTextView.getVisibility() != View.VISIBLE) - { - return; - } - - if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) - { - theTextView.setX (myButtonPreferSize); - theTextView.setY (0); - } - else - { - theTextView.setX (0); - theTextView.setY (myButtonPreferSize); - } - } - - @Override - public void onClick (View theButton) - { - ImageButton aClickedBtn = (ImageButton )theButton; - switch (aClickedBtn.getId()) - { - case R.id.message: - { - switchTextView ((TextView )findViewById (R.id.info_view), - (ImageButton )findViewById (R.id.info), false); - switchTextView (myMessageTextView, aClickedBtn, true); - return; - } - case R.id.info: - { - String aText = getString (R.string.info_html); - aText = String.format (aText, cppOcctMajorVersion(), cppOcctMinorVersion(), cppOcctMicroVersion()); - Spanned aSpanned = Html.fromHtml (aText, new ImageGetter() - { - @Override - public Drawable getDrawable (String theSource) - { - Resources aResources = getResources(); - int anId = aResources.getIdentifier (theSource, "drawable", getPackageName()); - Drawable aRes = aResources.getDrawable (anId); - aRes.setBounds (0, 0, aRes.getIntrinsicWidth(), aRes.getIntrinsicHeight()); - return aRes; - } - }, null); - - TextView anInfoView = (TextView )findViewById (R.id.info_view); - anInfoView.setText (aSpanned); - switchTextView (myMessageTextView, (ImageButton ) findViewById (R.id.message), false); - switchTextView (anInfoView, aClickedBtn, true); - return; - } - case R.id.fit: - { - myOcctView.fitAll(); - return; - } - case R.id.proj_front: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Xpos); - return; - } - case R.id.proj_left: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Yneg); - return; - } - case R.id.proj_top: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Zpos); - return; - } - case R.id.proj_back: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Xneg); - return; - } - case R.id.proj_right: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Ypos); - return; - } - case R.id.proj_bottom: - { - myOcctView.setProj (OcctJniRenderer.TypeOfOrientation.Zneg); - return; - } - case R.id.open: - { - File aPath = Environment.getExternalStorageDirectory(); - aClickedBtn.setBackgroundColor (getResources().getColor(R.color.pressedBtnColor)); - if (myFileOpenDialog == null) - { - // should be requested on runtime since API level 26 (Android 8) - askUserPermission (android.Manifest.permission.WRITE_EXTERNAL_STORAGE, null); // for accessing SD card - - myFileOpenDialog = new OcctJniFileDialog (this, aPath); - myFileOpenDialog.setFileEndsWith (".brep"); - myFileOpenDialog.setFileEndsWith (".rle"); - myFileOpenDialog.setFileEndsWith (".iges"); - myFileOpenDialog.setFileEndsWith (".igs"); - myFileOpenDialog.setFileEndsWith (".step"); - myFileOpenDialog.setFileEndsWith (".stp"); - myFileOpenDialog.addFileListener (new OcctJniFileDialog.FileSelectedListener() - { - public void fileSelected (File theFile) - { - if (theFile != null && myOcctView != null) - { - myOcctView.open (theFile.getPath()); - } - } - }); - myFileOpenDialog.addDialogDismissedListener (new OcctJniFileDialog.DialogDismissedListener() - { - @Override - public void dialogDismissed() - { - ImageButton openButton = (ImageButton )findViewById (R.id.open); - openButton.setBackgroundColor (getResources().getColor(R.color.btnColor)); - } - }); - } - myFileOpenDialog.showDialog(); - return; - } - } - } - - private void createSubmenuBtn (int theParentBtnId, - int theParentLayoutId, - final List theNewButtonIds, - final List theNewButtonImageIds, - int thePosition) - { - int aPosInList = 0; - final ImageButton aParentBtn = (ImageButton )findViewById (theParentBtnId); - - ViewGroup.LayoutParams aParams = null; - LinearLayout parentLayout = (LinearLayout ) findViewById (theParentLayoutId); - for (Integer newButtonId : theNewButtonIds) - { - ImageButton aNewButton = (ImageButton )findViewById (newButtonId); - if (aNewButton == null) - { - aNewButton = (ImageButton )new ImageButton (this); - aNewButton.setId (newButtonId); - aNewButton.setImageResource (theNewButtonImageIds.get (aPosInList)); - aNewButton.setLayoutParams (aParams); - parentLayout.addView (aNewButton); - } - - aNewButton.setOnClickListener (this); - aNewButton.setVisibility (View.GONE); - - aNewButton.setOnTouchListener (new View.OnTouchListener() - { - @Override - public boolean onTouch (View theView, MotionEvent theEvent) - { - return onTouchButton (theView, theEvent); - } - }); - ++aPosInList; - } - - if (aParentBtn != null) - { - aParentBtn.setOnTouchListener (null); - aParentBtn.setOnTouchListener (new View.OnTouchListener() - { - @Override - public boolean onTouch (View theView, MotionEvent theEvent) - { - if (theEvent.getAction () == MotionEvent.ACTION_DOWN) - { - Boolean isVisible = false; - for (Integer aNewButtonId : theNewButtonIds) - { - ImageButton anBtn = (ImageButton )findViewById (aNewButtonId); - if (anBtn != null) - { - if (anBtn.getVisibility() == View.GONE) - { - anBtn.setVisibility (View.VISIBLE); - isVisible = true; - } - else - { - anBtn.setVisibility (View.GONE); - } - } - } - aParentBtn.setBackgroundColor (!isVisible ? getResources().getColor(R.color.btnColor) : getResources().getColor(R.color.pressedBtnColor)); - } - return false; - } - }); - } - } - - //! Implements onTouch functionality - private boolean onTouchButton (View theView, - MotionEvent theEvent) - { - switch (theEvent.getAction()) - { - case MotionEvent.ACTION_DOWN: - ((ImageButton )theView).setBackgroundColor (getResources().getColor (R.color.pressedBtnColor)); - break; - case MotionEvent.ACTION_UP: - ((ImageButton )theView).setBackgroundColor (getResources().getColor (R.color.btnColor)); - break; - } - return false; - } - - //! Handle configuration change event - @Override - public void onConfigurationChanged (Configuration theNewConfig) - { - super.onConfigurationChanged (theNewConfig); - LinearLayout aLayoutPanelMenu = (LinearLayout )findViewById (R.id.panel_menu); - LayoutParams aPanelMenuLayoutParams = aLayoutPanelMenu.getLayoutParams(); - - LinearLayout aLayoutViewGroup = (LinearLayout )findViewById (R.id.view_group); - LayoutParams aViewGroupLayoutParams = aLayoutViewGroup.getLayoutParams(); - ImageButton aScrollBtn = (ImageButton )findViewById (R.id.scroll_btn); - LayoutParams aScrollBtnLayoutParams = aScrollBtn.getLayoutParams(); - - myButtonPreferSize = defineButtonSize ((LinearLayout )findViewById (R.id.panel_menu)); - defineButtonSize ((LinearLayout )findViewById (R.id.view_group)); - - switch (theNewConfig.orientation) - { - case Configuration.ORIENTATION_PORTRAIT: - { - setHorizontal (aLayoutPanelMenu, aPanelMenuLayoutParams); - setHorizontal (aLayoutViewGroup, aViewGroupLayoutParams); - aLayoutViewGroup.setGravity (Gravity.BOTTOM); - - aScrollBtnLayoutParams.height = LayoutParams.WRAP_CONTENT; - aScrollBtnLayoutParams.width = LayoutParams.MATCH_PARENT; - aScrollBtn.setLayoutParams (aScrollBtnLayoutParams); - if (aLayoutPanelMenu.getVisibility() == View.VISIBLE) - { - aScrollBtn.setImageResource (R.drawable.close_p); - aScrollBtn.setY (myButtonPreferSize); - aScrollBtn.setX (0); - } - else - { - aScrollBtn.setImageResource (R.drawable.open_p); - aScrollBtn.setY (0); - aScrollBtn.setX (0); - } - break; - } - case Configuration.ORIENTATION_LANDSCAPE: - { - setVertical (aLayoutPanelMenu, aPanelMenuLayoutParams); - setVertical (aLayoutViewGroup, aViewGroupLayoutParams); - aLayoutViewGroup.setGravity (Gravity.RIGHT); - - aScrollBtnLayoutParams.height = LayoutParams.MATCH_PARENT; - aScrollBtnLayoutParams.width = LayoutParams.WRAP_CONTENT; - aScrollBtn.setLayoutParams (aScrollBtnLayoutParams); - if (aLayoutPanelMenu.getVisibility() == View.VISIBLE) - { - aScrollBtn.setImageResource (R.drawable.close_l); - aScrollBtn.setX (myButtonPreferSize); - aScrollBtn.setY (0); - } - else - { - aScrollBtn.setImageResource (R.drawable.open_l); - aScrollBtn.setY (0); - aScrollBtn.setX (0); - } - break; - } - } - setTextViewPosition (myMessageTextView); - setTextViewPosition ((TextView )findViewById (R.id.info_view)); - } - - private void setHorizontal (LinearLayout theLayout, - LayoutParams theLayoutParams) - { - theLayout.setOrientation (LinearLayout.HORIZONTAL); - theLayoutParams.height = LayoutParams.WRAP_CONTENT; - theLayoutParams.width = LayoutParams.MATCH_PARENT; - theLayout.setLayoutParams (theLayoutParams); - } - - private void setVertical (LinearLayout theLayout, - LayoutParams theLayoutParams) - { - theLayout.setOrientation (LinearLayout.VERTICAL); - theLayoutParams.height = LayoutParams.MATCH_PARENT; - theLayoutParams.width = LayoutParams.WRAP_CONTENT; - theLayout.setLayoutParams (theLayoutParams); - } - - //! Define button size - private int defineButtonSize (LinearLayout theLayout) - { - boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; - Display aDisplay = getWindowManager().getDefaultDisplay(); - Point aDispPnt = new Point(); - aDisplay.getSize (aDispPnt); - - int aNbChildren = theLayout.getChildCount(); - int aHeight = aDispPnt.y / aNbChildren; - int aWidth = aDispPnt.x / aNbChildren; - int aResultSize = 0; - for (int aChildIter = 0; aChildIter < aNbChildren; ++aChildIter) - { - View aView = theLayout.getChildAt (aChildIter); - if (aView instanceof ImageButton) - { - ImageButton aButton = (ImageButton )aView; - if (isLandscape) - { - aButton.setMinimumWidth (aHeight); - } - else - { - aButton.setMinimumHeight (aWidth); - } - } - } - if (isLandscape) - { - aResultSize = aHeight; - } - else - { - aResultSize = aWidth; - } - return aResultSize; - } - - //! Request user permission. - private void askUserPermission (String thePermission, String theRationale) - { - // Dynamically load methods introduced by API level 23. - // On older system this permission is granted by user during application installation. - java.lang.reflect.Method aMetPtrCheckSelfPermission, aMetPtrRequestPermissions, aMetPtrShouldShowRequestPermissionRationale; - try - { - aMetPtrCheckSelfPermission = myContext.getClass().getMethod ("checkSelfPermission", String.class); - aMetPtrRequestPermissions = getClass().getMethod ("requestPermissions", String[].class, int.class); - aMetPtrShouldShowRequestPermissionRationale = getClass().getMethod ("shouldShowRequestPermissionRationale", String.class); - } - catch (SecurityException theError) - { - postMessage ("Unable to find permission methods:\n" + theError.getMessage(), Message_Trace); - return; - } - catch (NoSuchMethodException theError) - { - postMessage ("Unable to find permission methods:\n" + theError.getMessage(), Message_Trace); - return; - } - - try - { - int isAlreadyGranted = (Integer )aMetPtrCheckSelfPermission.invoke (myContext, thePermission); - if (isAlreadyGranted == android.content.pm.PackageManager.PERMISSION_GRANTED) - { - return; - } - - boolean toShowInfo = theRationale != null && (Boolean )aMetPtrShouldShowRequestPermissionRationale.invoke (this, thePermission); - if (toShowInfo) - { - postMessage (theRationale, Message_Info); - } - - // show dialog to user - aMetPtrRequestPermissions.invoke (this, new String[]{thePermission}, 0); - } - catch (IllegalArgumentException theError) - { - postMessage ("Internal error: Unable to call permission method:\n" + theError.getMessage(), Message_Fail); - return; - } - catch (IllegalAccessException theError) - { - postMessage ("Internal error: Unable to call permission method:\n" + theError.getMessage(), Message_Fail); - return; - } - catch (java.lang.reflect.InvocationTargetException theError) - { - postMessage ("Internal error: Unable to call permission method:\n" + theError.getMessage(), Message_Fail); - return; - } - } - - //! Message gravity. - private static final int Message_Trace = 0; - private static final int Message_Info = 1; - private static final int Message_Warning = 2; - private static final int Message_Alarm = 3; - private static final int Message_Fail = 4; - - //! Auxiliary method to show info message. - public void postMessage (String theMessage, int theGravity) - { - if (theGravity == Message_Trace) - { - return; - } - - final String aText = theMessage; - final Context aCtx = this; - this.runOnUiThread (new Runnable() { public void run() { - android.app.AlertDialog.Builder aBuilder = new android.app.AlertDialog.Builder (aCtx); - aBuilder.setMessage (aText).setNegativeButton ("OK", null); - android.app.AlertDialog aDialog = aBuilder.create(); - aDialog.show(); - }}); - } - - //! OCCT major version - private native long cppOcctMajorVersion(); - - //! OCCT minor version - private native long cppOcctMinorVersion(); - - //! OCCT micro version - private native long cppOcctMicroVersion(); - - private OcctJniView myOcctView; - private TextView myMessageTextView; - private String myLastPath; - private android.content.ContextWrapper myContext = null; - private OcctJniFileDialog myFileOpenDialog; - private int myButtonPreferSize = 65; - -} diff --git a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniFileDialog.java b/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniFileDialog.java deleted file mode 100644 index e12cc1aa2b..0000000000 --- a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniFileDialog.java +++ /dev/null @@ -1,376 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -package com.opencascade.jnisample; - -import java.io.File; -import java.io.FilenameFilter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import com.opencascade.jnisample.ListenerList.FireHandler; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.content.DialogInterface; -import android.graphics.Color; -import android.os.Environment; -import android.view.View; -import android.view.ViewGroup.LayoutParams; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.Spinner; - -//! Simple open file dialog -public class OcctJniFileDialog -{ - - public enum DialogMode - { - FileOpen, FileExport, FileSave - } - - private static final String PARENT_DIR = ".."; - private String[] myFileList; - private File myCurrentPath; - private DialogMode myDialogMode = DialogMode.FileOpen; - - private ListenerList myFileListenerList = new ListenerList(); - private ListenerList myDialogDismissedList = new ListenerList(); - private final Activity myActivity; - private List myFileEndsWith; - private EditText myFileNameInput; - private Spinner myFileExtSpinner; - int myCurrentExtPositionInList = 0; - - public interface FileSelectedListener - { - void fileSelected (File theFile); - } - - public interface DialogDismissedListener - { - void dialogDismissed(); - } - - //! Main constructor. - public OcctJniFileDialog (Activity theActivity, - File thePath) - { - myActivity = theActivity; - if (!thePath.exists()) - { - thePath = Environment.getExternalStorageDirectory(); - } - loadFileList (thePath); - } - - //! Create new dialog - public Dialog createFileDialog() - { - final Object[] anObjWrapper = new Object[1]; - Dialog aDialog = null; - AlertDialog.Builder aBuilder = new AlertDialog.Builder (myActivity); - - aBuilder.setTitle (myCurrentPath.getPath()); - LinearLayout aTitleLayout = new LinearLayout (myActivity); - aTitleLayout.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - aTitleLayout.setOrientation (LinearLayout.VERTICAL); - - ListView list = new ListView (myActivity); - list.setScrollingCacheEnabled(false); - list.setBackgroundColor (Color.parseColor ("#33B5E5")); - - list.setAdapter (new ArrayAdapter (myActivity, android.R.layout.select_dialog_item, myFileList)); - list.setOnItemClickListener (new AdapterView.OnItemClickListener () - { - - public void onItemClick (AdapterView arg0, View view, int pos, long id) - { - String fileChosen = myFileList[pos]; - File aChosenFile = getChosenFile (fileChosen); - if (aChosenFile.isDirectory()) - { - loadFileList (aChosenFile); - ((Dialog )anObjWrapper[0]).cancel(); - ((Dialog )anObjWrapper[0]).dismiss(); - showDialog(); - } - else - { - if (myDialogMode == DialogMode.FileOpen) - { - ((Dialog )anObjWrapper[0]).cancel(); - ((Dialog )anObjWrapper[0]).dismiss(); - fireFileSelectedEvent (aChosenFile); - } - else - { - myFileNameInput.setText (aChosenFile.getName()); - } - } - } - }); - list.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 0.6f)); - aTitleLayout.addView (list); - - if (myDialogMode == DialogMode.FileSave - || myDialogMode == DialogMode.FileExport) - { - myFileNameInput = new EditText (myActivity); - myFileExtSpinner = new Spinner (myActivity); - ArrayAdapter adapter = null; - if (myDialogMode == DialogMode.FileExport) - { - adapter = ArrayAdapter.createFromResource (myActivity, R.array.ext_to_exp, - android.R.layout.simple_spinner_item); - } - else - { - adapter = ArrayAdapter.createFromResource (myActivity, R.array.ext_to_save, - android.R.layout.simple_spinner_item); - } - // Specify the layout to use when the list of choices appears - adapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item); - // Apply the adapter to the spinner - myFileExtSpinner.setAdapter (adapter); - myFileExtSpinner.setSelection (myCurrentExtPositionInList); - - myFileExtSpinner.setOnItemSelectedListener (new AdapterView.OnItemSelectedListener() - { - - @Override - public void onNothingSelected (AdapterView theParentView) - { - // your code here - } - - @Override - public void onItemSelected (AdapterView theParent, View theView, int thePosition, long theId) - { - if (myCurrentExtPositionInList != thePosition) - { - myCurrentExtPositionInList = thePosition; - setFileEndsWith (Arrays.asList (myFileExtSpinner.getSelectedItem().toString())); - loadFileList (myCurrentPath); - ((Dialog )anObjWrapper[0]).cancel(); - ((Dialog )anObjWrapper[0]).dismiss(); - showDialog(); - } - } - }); - - myFileExtSpinner.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT, 0.2f)); - // titleLayout.addView(fileExtSpinner); - myFileNameInput.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT, 0.2f)); - LinearLayout aControlsView = new LinearLayout (myActivity); - - aControlsView.addView (myFileNameInput); - aControlsView.addView (myFileExtSpinner); - - aTitleLayout.addView (aControlsView); - aBuilder.setView (aTitleLayout); - aBuilder.setPositiveButton ("OK", new DialogInterface.OnClickListener() - { - @Override - public void onClick (DialogInterface theDialog, int theWhich) - { - if (theWhich >= 0) - { - String aFileChosen = myFileList[theWhich]; - File aChosenFile = getChosenFile (aFileChosen); - fireFileSelectedEvent (aChosenFile); - } - } - }).setNegativeButton ("Cancel", null); - } - else - { - aBuilder.setNegativeButton ("Cancel", null); - } - - aBuilder.setView (aTitleLayout); - - aDialog = aBuilder.show(); - aDialog.setOnDismissListener (new DialogInterface.OnDismissListener() - { - @Override - public void onDismiss (DialogInterface theDialog) - { - fireDialogDismissedEvent(); - } - }); - anObjWrapper[0] = aDialog; - return aDialog; - } - - public void addFileListener (FileSelectedListener theListener) - { - myFileListenerList.add (theListener); - } - - public void addDialogDismissedListener (DialogDismissedListener theListener) - { - myDialogDismissedList.add (theListener); - } - - //! Show file dialog - public void showDialog() - { - createFileDialog().show(); - } - - private void fireFileSelectedEvent (final File theFile) - { - myFileListenerList.fireEvent (new FireHandler() - { - public void fireEvent (FileSelectedListener theListener) - { - theListener.fileSelected (theFile); - } - }); - } - - private void fireDialogDismissedEvent() - { - myDialogDismissedList.fireEvent (new FireHandler() - { - public void fireEvent (DialogDismissedListener theListener) - { - theListener.dialogDismissed(); - } - }); - } - - private void loadFileList (File thePath) - { - myCurrentPath = thePath; - List aList = new ArrayList(); - if (thePath.exists()) - { - if (thePath.getParentFile() != null) - { - aList.add (PARENT_DIR); - } - FilenameFilter aFilter = new FilenameFilter() - { - public boolean accept (File theDir, String theFilename) - { - File aSel = new File (theDir, theFilename); - if (!aSel.canRead()) - { - return false; - } - boolean isEndWith = false; - if (myFileEndsWith != null) - { - for (String aFileExtIter : myFileEndsWith) - { - if (theFilename.toLowerCase().endsWith (aFileExtIter)) - { - isEndWith = true; - break; - } - } - } - return isEndWith || aSel.isDirectory(); - } - }; - String[] aFileList1 = thePath.list (aFilter); - if (aFileList1 != null) - { - for (String aFileIter : aFileList1) - { - aList.add (aFileIter); - } - } - } - myFileList = (String[] )aList.toArray (new String[] {}); - } - - private File getChosenFile (String theFileChosen) - { - if (theFileChosen.equals (PARENT_DIR)) - return myCurrentPath.getParentFile(); - else - return new File (myCurrentPath, theFileChosen); - } - - public void setFileEndsWith (String fileEndsWith) - { - if (myFileEndsWith == null) - { - myFileEndsWith = new ArrayList(); - } - if (myFileEndsWith.indexOf (fileEndsWith) == -1) - { - myFileEndsWith.add (fileEndsWith); - } - } - - public void setFileEndsWith (List theFileEndsWith) - { - myFileEndsWith = theFileEndsWith; - } - - public DialogMode DialogMode() - { - return myDialogMode; - } - - public void DialogMode (DialogMode theMode) - { - myDialogMode = theMode; - } -} - -class ListenerList -{ - private List myListenerList = new ArrayList(); - - public interface FireHandler - { - void fireEvent (L theListener); - } - - public void add (L theListener) - { - myListenerList.add (theListener); - } - - public void fireEvent (FireHandler theFireHandler) - { - List aCopy = new ArrayList (myListenerList); - for (L anIter : aCopy) - { - theFireHandler.fireEvent (anIter); - } - } - - public void remove (L theListener) - { - myListenerList.remove (theListener); - } - - public List getListenerList() - { - return myListenerList; - } -} diff --git a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniLogger.java b/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniLogger.java deleted file mode 100644 index cc8b1e4942..0000000000 --- a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniLogger.java +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -package com.opencascade.jnisample; - -import java.util.concurrent.locks.ReentrantLock; - -import android.util.Log; -import android.widget.TextView; - -//! Auxiliary class for logging messages -public class OcctJniLogger -{ - - //! Setup text view - public static void setTextView (TextView theTextView) - { - if (myTextView != null) - { - myLog = myTextView.getText().toString(); - } - - myTextView = theTextView; - if (myTextView != null) - { - myTextView.setText (myLog); - myLog = ""; - } - } - - //! Interface implementation - public static void postMessage (String theText) - { - final String aCopy = new String (theText); - Log.e (myTag, theText); - - myMutex.lock(); - final TextView aView = myTextView; - if (aView == null) - { - myLog += aCopy; - myMutex.unlock(); - return; - } - - aView.post (new Runnable() - { - public void run() - { - aView.setText (aView.getText() + aCopy + "\n"); - } - }); - myMutex.unlock(); - } - - private static final String myTag = "occtJniViewer"; - private static final ReentrantLock myMutex = new ReentrantLock (true); - private static TextView myTextView = null; - private static String myLog = ""; - -} diff --git a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniRenderer.java b/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniRenderer.java deleted file mode 100644 index 66e6e82a0e..0000000000 --- a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniRenderer.java +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -package com.opencascade.jnisample; - -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.opengles.GL10; - -import android.opengl.GLSurfaceView; - -//! Wrapper for C++ OCCT viewer. -public class OcctJniRenderer implements GLSurfaceView.Renderer -{ - - //! Wrapper for V3d_TypeOfOrientation - enum TypeOfOrientation - { - Xpos, // front - Ypos, // left - Zpos, // top - Xneg, // back - Yneg, // right - Zneg // bottom - }; - - //! Empty constructor. - OcctJniRenderer (GLSurfaceView theView, - float theScreenDensity) - { - myView = theView; // this makes cyclic dependency, but it is OK for JVM - if (OcctJniActivity.areNativeLoaded) - { - myCppViewer = cppCreate (theScreenDensity); - } - } - - //! Open file. - public void open (String thePath) - { - if (myCppViewer != 0) - { - cppOpen (myCppViewer, thePath); - } - } - - //! Update viewer. - public void onDrawFrame (GL10 theGl) - { - if (myCppViewer != 0) - { - if (cppRedraw (myCppViewer)) - { - myView.requestRender(); // this method is allowed from any thread - } - } - } - - //! (re)initialize viewer. - public void onSurfaceChanged (GL10 theGl, int theWidth, int theHeight) - { - if (myCppViewer != 0) - { - cppResize (myCppViewer, theWidth, theHeight); - } - } - - public void onSurfaceCreated (GL10 theGl, EGLConfig theEglConfig) - { - if (myCppViewer != 0) - { - cppInit (myCppViewer); - } - } - - //! Add touch point. - public void onAddTouchPoint (int theId, float theX, float theY) - { - if (myCppViewer != 0) - { - cppAddTouchPoint (myCppViewer, theId, theX, theY); - } - } - - //! Update touch point. - public void onUpdateTouchPoint (int theId, float theX, float theY) - { - if (myCppViewer != 0) - { - cppUpdateTouchPoint (myCppViewer, theId, theX, theY); - } - } - - //! Remove touch point. - public void onRemoveTouchPoint (int theId) - { - if (myCppViewer != 0) - { - cppRemoveTouchPoint (myCppViewer, theId); - } - } - - //! Select in 3D Viewer. - public void onSelectInViewer (float theX, float theY) - { - if (myCppViewer != 0) - { - cppSelectInViewer (myCppViewer, theX, theY); - } - } - - //! Fit All - public void fitAll() - { - if (myCppViewer != 0) - { - cppFitAll (myCppViewer); - } - } - - //! Move camera - public void setProj (TypeOfOrientation theProj) - { - if (myCppViewer == 0) - { - return; - } - - switch (theProj) - { - case Xpos: cppSetXposProj (myCppViewer); break; - case Ypos: cppSetYposProj (myCppViewer); break; - case Zpos: cppSetZposProj (myCppViewer); break; - case Xneg: cppSetXnegProj (myCppViewer); break; - case Yneg: cppSetYnegProj (myCppViewer); break; - case Zneg: cppSetZnegProj (myCppViewer); break; - } - } - - //! Post message to the text view. - public void postMessage (String theText) - { - OcctJniLogger.postMessage (theText); - } - - //! Create instance of C++ class - private native long cppCreate (float theDispDensity); - - //! Destroy instance of C++ class - private native void cppDestroy (long theCppPtr); - - //! Initialize OCCT viewer (steal OpenGL ES context bound to this thread) - private native void cppInit (long theCppPtr); - - //! Resize OCCT viewer - private native void cppResize (long theCppPtr, int theWidth, int theHeight); - - //! Open CAD file - private native void cppOpen (long theCppPtr, String thePath); - - //! Add touch point - private native void cppAddTouchPoint (long theCppPtr, int theId, float theX, float theY); - - //! Update touch point - private native void cppUpdateTouchPoint (long theCppPtr, int theId, float theX, float theY); - - //! Remove touch point - private native void cppRemoveTouchPoint (long theCppPtr, int theId); - - //! Select in 3D Viewer. - private native void cppSelectInViewer (long theCppPtr, float theX, float theY); - - //! Redraw OCCT viewer - //! Returns TRUE if more frames are requested. - private native boolean cppRedraw (long theCppPtr); - - //! Fit All - private native void cppFitAll (long theCppPtr); - - //! Move camera - private native void cppSetXposProj (long theCppPtr); - - //! Move camera - private native void cppSetYposProj (long theCppPtr); - - //! Move camera - private native void cppSetZposProj (long theCppPtr); - - //! Move camera - private native void cppSetXnegProj (long theCppPtr); - - //! Move camera - private native void cppSetYnegProj (long theCppPtr); - - //! Move camera - private native void cppSetZnegProj (long theCppPtr); - - private GLSurfaceView myView = null; //!< back reference to the View - private long myCppViewer = 0; //!< pointer to c++ class instance - -} diff --git a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniView.java b/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniView.java deleted file mode 100644 index 51e9b5dd1a..0000000000 --- a/samples/java/jniviewer/app/src/main/java/com/opencascade/jnisample/OcctJniView.java +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -package com.opencascade.jnisample; - -import android.app.ActionBar.LayoutParams; -import android.content.Context; -import android.graphics.PointF; -import android.opengl.GLSurfaceView; -import android.util.AttributeSet; -import android.util.SparseArray; -import android.view.MotionEvent; -import android.widget.RelativeLayout; - -import javax.microedition.khronos.egl.EGL10; -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.egl.EGLContext; -import javax.microedition.khronos.egl.EGLDisplay; - -//! OpenGL ES 2.0+ view. -//! Performs rendering in parallel thread. -class OcctJniView extends GLSurfaceView -{ - - // ! Default constructor. - public OcctJniView (Context theContext, - AttributeSet theAttrs) - { - super (theContext, theAttrs); - - android.util.DisplayMetrics aDispInfo = theContext.getResources().getDisplayMetrics(); - myScreenDensity = aDispInfo.density; - - setPreserveEGLContextOnPause (true); - setEGLContextFactory (new ContextFactory()); - setEGLConfigChooser (new ConfigChooser()); - - RelativeLayout.LayoutParams aLParams = new RelativeLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - aLParams.addRule (RelativeLayout.ALIGN_TOP); - - myRenderer = new OcctJniRenderer (this, myScreenDensity); - setRenderer (myRenderer); - setRenderMode (GLSurfaceView.RENDERMODE_WHEN_DIRTY); // render on request to spare battery - } - - //! Open file. - public void open (String thePath) - { - final String aPath = thePath; - queueEvent (new Runnable() { public void run() { myRenderer.open (aPath); }}); - requestRender(); - } - - //! Create OpenGL ES 2.0+ context - private static class ContextFactory implements GLSurfaceView.EGLContextFactory - { - private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098; - public EGLContext createContext (EGL10 theEgl, - EGLDisplay theEglDisplay, - EGLConfig theEglConfig) - { - if (theEglConfig == null) - { - return null; - } - - // reset EGL errors stack - int anError = EGL10.EGL_SUCCESS; - while ((anError = theEgl.eglGetError()) != EGL10.EGL_SUCCESS) {} - - int[] anAttribs = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; - EGLContext aEglContext = theEgl.eglCreateContext (theEglDisplay, theEglConfig, EGL10.EGL_NO_CONTEXT, anAttribs); - - while ((anError = theEgl.eglGetError()) != EGL10.EGL_SUCCESS) - { - OcctJniLogger.postMessage ("Error: eglCreateContext() " + String.format ("0x%x", anError)); - } - return aEglContext; - } - - public void destroyContext (EGL10 theEgl, - EGLDisplay theEglDisplay, - EGLContext theEglContext) - { - theEgl.eglDestroyContext (theEglDisplay, theEglContext); - } - } - - //! Search for RGB24 config with depth and stencil buffers - private static class ConfigChooser implements GLSurfaceView.EGLConfigChooser - { - //! Reset EGL errors stack - private void popEglErrors (EGL10 theEgl) - { - int anError = EGL10.EGL_SUCCESS; - while ((anError = theEgl.eglGetError()) != EGL10.EGL_SUCCESS) - { - OcctJniLogger.postMessage ("EGL Error: " + String.format ("0x%x", anError)); - } - } - - //! Auxiliary method to dump EGL configuration - for debugging purposes - @SuppressWarnings("unused") - private void printConfig (EGL10 theEgl, - EGLDisplay theEglDisplay, - EGLConfig theEglConfig) - { - int[] THE_ATTRIBS = - { - EGL10.EGL_BUFFER_SIZE, EGL10.EGL_ALPHA_SIZE, EGL10.EGL_BLUE_SIZE, EGL10.EGL_GREEN_SIZE, EGL10.EGL_RED_SIZE, EGL10.EGL_DEPTH_SIZE, EGL10.EGL_STENCIL_SIZE, - EGL10.EGL_CONFIG_CAVEAT, - EGL10.EGL_CONFIG_ID, - EGL10.EGL_LEVEL, - EGL10.EGL_MAX_PBUFFER_HEIGHT, EGL10.EGL_MAX_PBUFFER_PIXELS, EGL10.EGL_MAX_PBUFFER_WIDTH, - EGL10.EGL_NATIVE_RENDERABLE, EGL10.EGL_NATIVE_VISUAL_ID, EGL10.EGL_NATIVE_VISUAL_TYPE, - 0x3030, // EGL10.EGL_PRESERVED_RESOURCES, - EGL10.EGL_SAMPLES, EGL10.EGL_SAMPLE_BUFFERS, - EGL10.EGL_SURFACE_TYPE, - EGL10.EGL_TRANSPARENT_TYPE, EGL10.EGL_TRANSPARENT_RED_VALUE, EGL10.EGL_TRANSPARENT_GREEN_VALUE, EGL10.EGL_TRANSPARENT_BLUE_VALUE, - 0x3039, 0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGB, EGL10.EGL_BIND_TO_TEXTURE_RGBA, - 0x303B, 0x303C, // EGL10.EGL_MIN_SWAP_INTERVAL, EGL10.EGL_MAX_SWAP_INTERVAL - EGL10.EGL_LUMINANCE_SIZE, EGL10.EGL_ALPHA_MASK_SIZE, - EGL10.EGL_COLOR_BUFFER_TYPE, EGL10.EGL_RENDERABLE_TYPE, - 0x3042 // EGL10.EGL_CONFORMANT - }; - String[] THE_NAMES = - { - "EGL_BUFFER_SIZE", "EGL_ALPHA_SIZE", "EGL_BLUE_SIZE", "EGL_GREEN_SIZE", "EGL_RED_SIZE", "EGL_DEPTH_SIZE", "EGL_STENCIL_SIZE", - "EGL_CONFIG_CAVEAT", - "EGL_CONFIG_ID", - "EGL_LEVEL", - "EGL_MAX_PBUFFER_HEIGHT", "EGL_MAX_PBUFFER_PIXELS", "EGL_MAX_PBUFFER_WIDTH", - "EGL_NATIVE_RENDERABLE", "EGL_NATIVE_VISUAL_ID", "EGL_NATIVE_VISUAL_TYPE", - "EGL_PRESERVED_RESOURCES", - "EGL_SAMPLES", "EGL_SAMPLE_BUFFERS", - "EGL_SURFACE_TYPE", - "EGL_TRANSPARENT_TYPE", "EGL_TRANSPARENT_RED_VALUE", "EGL_TRANSPARENT_GREEN_VALUE", "EGL_TRANSPARENT_BLUE_VALUE", - "EGL_BIND_TO_TEXTURE_RGB", "EGL_BIND_TO_TEXTURE_RGBA", - "EGL_MIN_SWAP_INTERVAL", "EGL_MAX_SWAP_INTERVAL", - "EGL_LUMINANCE_SIZE", "EGL_ALPHA_MASK_SIZE", - "EGL_COLOR_BUFFER_TYPE", "EGL_RENDERABLE_TYPE", - "EGL_CONFORMANT" - }; - int[] aValue = new int[1]; - for (int anAttrIter = 0; anAttrIter < THE_ATTRIBS.length; ++anAttrIter) - { - int anAttr = THE_ATTRIBS[anAttrIter]; - String aName = THE_NAMES [anAttrIter]; - if (theEgl.eglGetConfigAttrib (theEglDisplay, theEglConfig, anAttr, aValue)) - { - OcctJniLogger.postMessage (String.format (" %s: %d\n", aName, aValue[0])); - } - else - { - popEglErrors (theEgl); - } - } - } - - //! Interface implementation - public EGLConfig chooseConfig (EGL10 theEgl, - EGLDisplay theEglDisplay) - { - int EGL_OPENGL_ES2_BIT = 4; - int[] aCfgAttribs = - { - EGL10.EGL_RED_SIZE, 8, - EGL10.EGL_GREEN_SIZE, 8, - EGL10.EGL_BLUE_SIZE, 8, - EGL10.EGL_ALPHA_SIZE, 0, - EGL10.EGL_DEPTH_SIZE, 24, - EGL10.EGL_STENCIL_SIZE, 8, - EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL10.EGL_NONE - }; - - EGLConfig aConfigs[] = new EGLConfig[1]; - int[] aNbConfigs = new int[1]; - if (!theEgl.eglChooseConfig (theEglDisplay, aCfgAttribs, aConfigs, 1, aNbConfigs) - || aConfigs[0] == null) - { - aCfgAttribs[4 * 2 + 1] = 16; // try config with smaller depth buffer - popEglErrors (theEgl); - if (!theEgl.eglChooseConfig (theEglDisplay, aCfgAttribs, aConfigs, 1, aNbConfigs) - || aConfigs[0] == null) - { - OcctJniLogger.postMessage ("Error: eglChooseConfig() has failed!"); - return null; - } - } - - //printConfig (theEgl, theEglDisplay, aConfigs[0]); - return aConfigs[0]; - } - } - - //! Callback to handle touch events - @Override public boolean onTouchEvent (MotionEvent theEvent) - { - final int aMaskedAction = theEvent.getActionMasked(); - switch (aMaskedAction) - { - case MotionEvent.ACTION_DOWN: - case MotionEvent.ACTION_POINTER_DOWN: - { - final int aPointerIndex = theEvent.getActionIndex(); - final int aPointerId = theEvent.getPointerId (aPointerIndex); - final PointF aPnt = new PointF (theEvent.getX (aPointerIndex), theEvent.getY (aPointerIndex)); - - if (theEvent.getPointerCount() == 1) - { - mySelectPoint = aPnt; - } - else - { - mySelectPoint = null; - } - - queueEvent (new Runnable() { public void run() { myRenderer.onAddTouchPoint (aPointerId, aPnt.x, aPnt.y); }}); - break; - } - case MotionEvent.ACTION_MOVE: - { - for (int aNbPointers = theEvent.getPointerCount(), aPntIter = 0; aPntIter < aNbPointers; ++aPntIter) - { - final int aPointerId = theEvent.getPointerId (aPntIter); - final PointF aPnt = new PointF (theEvent.getX (aPntIter), theEvent.getY (aPntIter)); - queueEvent (new Runnable() { public void run() { myRenderer.onUpdateTouchPoint (aPointerId, aPnt.x, aPnt.y); }}); - } - if (mySelectPoint != null) - { - final float aTouchThreshold = 5.0f * myScreenDensity; - final int aPointerIndex = theEvent.getActionIndex(); - final PointF aDelta = new PointF (theEvent.getX (aPointerIndex) - mySelectPoint.x, theEvent.getY (aPointerIndex) - mySelectPoint.y); - if (Math.abs (aDelta.x) > aTouchThreshold || Math.abs (aDelta.y) > aTouchThreshold) - { - mySelectPoint = null; - } - } - break; - } - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_POINTER_UP: - case MotionEvent.ACTION_CANCEL: - { - if (mySelectPoint != null) - { - final float aSelX = mySelectPoint.x; - final float aSelY = mySelectPoint.y; - queueEvent (new Runnable() { public void run() { myRenderer.onSelectInViewer (aSelX, aSelY); }}); - mySelectPoint = null; - } - - final int aPointerIndex = theEvent.getActionIndex(); - final int aPointerId = theEvent.getPointerId (aPointerIndex); - final PointF aPnt = new PointF (theEvent.getX (aPointerIndex), theEvent.getY (aPointerIndex)); - queueEvent (new Runnable() { public void run() { myRenderer.onRemoveTouchPoint (aPointerId); }}); - } - } - requestRender(); - return true; - } - - //! Fit All - public void fitAll() - { - queueEvent (new Runnable() { public void run() { myRenderer.fitAll(); }}); - requestRender(); - } - - //! Move camera - public void setProj (final OcctJniRenderer.TypeOfOrientation theProj) - { - queueEvent (new Runnable() { public void run() { myRenderer.setProj (theProj); }}); - requestRender(); - } - - //! OCCT viewer - private OcctJniRenderer myRenderer = null; - private int mySelectId = -1; - private PointF mySelectPoint = null; - private float myScreenDensity = 1.0f; - -} diff --git a/samples/java/jniviewer/app/src/main/jni/CMakeLists.txt b/samples/java/jniviewer/app/src/main/jni/CMakeLists.txt deleted file mode 100644 index 4c854cfe90..0000000000 --- a/samples/java/jniviewer/app/src/main/jni/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 3.4.1) - -set(HEADER_FILES OcctJni_MsgPrinter.hxx OcctJni_Viewer.hxx) -set(SOURCE_FILES OcctJni_MsgPrinter.cxx OcctJni_Viewer.cxx) - -set (anOcctLibs - TKernel TKMath TKG2d TKG3d TKGeomBase TKBRep TKGeomAlgo TKTopAlgo TKShHealing TKMesh - # exchange - TKPrim TKBO TKBool TKFillet TKOffset - TKXSBase - TKDEIGES - TKDESTEP - # OCCT Visualization - TKService TKHLR TKV3d TKOpenGles -) - -set(aLibDeps "") - -# OCCT libraries -include_directories(${OCCT_ROOT}/inc) -foreach(anOcctLib ${anOcctLibs}) - add_library(lib_${anOcctLib} SHARED IMPORTED) - set_target_properties(lib_${anOcctLib} PROPERTIES IMPORTED_LOCATION ${OCCT_ROOT}/libs/${ANDROID_ABI}/lib${anOcctLib}.so) - list(APPEND aLibDeps lib_${anOcctLib}) -endforeach() - -# FreeType -add_library(lib_FreeType SHARED IMPORTED) -set_target_properties(lib_FreeType PROPERTIES IMPORTED_LOCATION ${FREETYPE_ROOT}/libs/${ANDROID_ABI}/libfreetype.so) -list(APPEND aLibDeps lib_FreeType) - -# FreeImage - uncomment, if OCCT was built with FreeImage -#add_library(lib_FreeImage SHARED IMPORTED) -#set_target_properties(lib_FreeImage PROPERTIES IMPORTED_LOCATION ${FREETYPE_ROOT}/libs/${ANDROID_ABI}/libfreeimage.so) -#list(APPEND aLibDeps lib_FreeImage) - -# system libraries -list(APPEND aLibDeps EGL GLESv2 log android) - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -frtti -fexceptions -fpermissive") - -add_library(TKJniSample SHARED ${SOURCE_FILES}) -target_link_libraries(TKJniSample ${aLibDeps}) diff --git a/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.cxx b/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.cxx deleted file mode 100644 index c47d9934cb..0000000000 --- a/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.cxx +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include "OcctJni_MsgPrinter.hxx" - -#include -#include - -#include - -IMPLEMENT_STANDARD_RTTIEXT(OcctJni_MsgPrinter, Message_Printer) - -// ======================================================================= -// function : OcctJni_MsgPrinter -// purpose : -// ======================================================================= -OcctJni_MsgPrinter::OcctJni_MsgPrinter (JNIEnv* theJEnv, - jobject theJObj) -: myJEnv (theJEnv), - myJObj (theJEnv->NewGlobalRef (theJObj)), - myJMet (NULL) -{ - jclass aJClass = theJEnv->GetObjectClass (theJObj); - myJMet = theJEnv->GetMethodID (aJClass, "postMessage", "(Ljava/lang/String;)V"); - if (myJMet == NULL) - { - __android_log_write (ANDROID_LOG_FATAL, "jniSample", "Broken initialization of OcctJni_MsgPrinter!"); - } -} - -// ======================================================================= -// function : ~OcctJni_MsgPrinter -// purpose : -// ======================================================================= -OcctJni_MsgPrinter::~OcctJni_MsgPrinter() -{ - //myJEnv->DeleteGlobalRef (myJObj); -} - -// ======================================================================= -// function : send -// purpose : -// ======================================================================= -void OcctJni_MsgPrinter::send (const TCollection_AsciiString& theString, - const Message_Gravity theGravity) const -{ - if (theGravity < myTraceLevel) - { - return; - } - - ///__android_log_write (ANDROID_LOG_DEBUG, "OcctJni_MsgPrinter", (TCollection_AsciiString(" @@ ") + theString).ToCString()); - if (myJMet == NULL) - { - return; - } - - jstring aJStr = myJEnv->NewStringUTF ((theString + "\n").ToCString()); - myJEnv->CallVoidMethod (myJObj, myJMet, aJStr); - myJEnv->DeleteLocalRef (aJStr); -} diff --git a/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.hxx b/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.hxx deleted file mode 100644 index 655725567b..0000000000 --- a/samples/java/jniviewer/app/src/main/jni/OcctJni_MsgPrinter.hxx +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#ifndef OcctJni_MsgPrinter_H -#define OcctJni_MsgPrinter_H - -#include - -#include - -// Class providing connection between messenger interfaces in C++ and Java layers. -class OcctJni_MsgPrinter : public Message_Printer -{ -public: - - //! Default constructor - OcctJni_MsgPrinter (JNIEnv* theJEnv, - jobject theJObj); - - //! Destructor. - ~OcctJni_MsgPrinter(); - -protected: - - //! Main printing method - virtual void send (const TCollection_AsciiString& theString, - const Message_Gravity theGravity) const override; - -private: - - JNIEnv* myJEnv; - jobject myJObj; - jmethodID myJMet; - -public: - - DEFINE_STANDARD_RTTIEXT(OcctJni_MsgPrinter,Message_Printer) - -}; - -DEFINE_STANDARD_HANDLE(OcctJni_MsgPrinter, Message_Printer) - -#endif // OcctJni_MsgPrinter_H diff --git a/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.cxx b/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.cxx deleted file mode 100644 index 14a05680ba..0000000000 --- a/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.cxx +++ /dev/null @@ -1,834 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include "OcctJni_Viewer.hxx" -#include "OcctJni_MsgPrinter.hxx" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -#include - -#include -#include - -#include - -//! @return true if file exists -static bool isFileExist (const TCollection_AsciiString& thePath) -{ - struct stat64 aStatBuffer; - return stat64 (thePath.ToCString(), &aStatBuffer) == 0; -} - -//! Cut-off the last split character from the path and everything after it. -static TCollection_AsciiString getParentDir (const TCollection_AsciiString& thePath) -{ - TCollection_AsciiString aPath = thePath; - char* aSplitter = (char* )aPath.ToCString(); - for (char* anIter = aSplitter; *anIter != '\0'; ++anIter) - { - if (*anIter == '\\' - || *anIter == '/') - { - aSplitter = anIter; - } - } - *aSplitter = '\0'; // cut off file name or trailing folder - return TCollection_AsciiString (aPath.ToCString()); -} - -//! Set environment variable theVarName indicating location of resource -//! file theFile so as to correspond to actual location of this file. -//! -//! The resource file is searched in directory where Test.Draw.dll is located, -//! and if not found - also in subdirectory ../res from there. -//! If file is found, environment variable is set for C subsystem. -//! Otherwise, environment is not changed. -//! -//! If theToAddFileName is true, complete file name is set as value of the variable, -//! if theToAddFileName is false, only path is set. -Standard_Boolean setResourceEnv (const TCollection_AsciiString& theVarName, - const TCollection_AsciiString& theRoot, - const TCollection_AsciiString& theFile, - const Standard_Boolean theToAddFileName) -{ - // use location of current assembly to figure out possible location of resource - TCollection_AsciiString aBaseDir = theRoot; - - // check the same directory where binary is located - if (!isFileExist (aBaseDir + "/" + theFile)) - { - // check subdirectory ../res - aBaseDir = getParentDir (aBaseDir) + "/res"; - if (!isFileExist (aBaseDir + "/" + theFile)) - { - return Standard_False; - } - } - - // set C library environment - if (theToAddFileName) - { - aBaseDir = aBaseDir + "/" + theFile; - } - - OSD_Environment anEnv (theVarName, aBaseDir); - anEnv.Build(); - return Standard_True; -} - -// ======================================================================= -// function : OcctJni_Viewer -// purpose : -// ======================================================================= -OcctJni_Viewer::OcctJni_Viewer (float theDispDensity) -: myDevicePixelRatio (theDispDensity), - myIsJniMoreFrames (false) -{ - SetTouchToleranceScale (theDispDensity); -#ifndef NDEBUG - // Register printer for logging messages into global Android log. - // Should never be used in production (or specify higher gravity for logging only failures). - Handle(Message_Messenger) aMsgMgr = Message::DefaultMessenger(); - aMsgMgr->RemovePrinters (STANDARD_TYPE (Message_PrinterSystemLog)); - aMsgMgr->AddPrinter (new Message_PrinterSystemLog ("OcctJni_Viewer")); -#endif - - // prepare necessary environment - TCollection_AsciiString aResRoot = "/data/data/com.opencascade.jnisample/files"; - - setResourceEnv ("CSF_XSMessage", aResRoot + "/XSMessage", "XSTEP.us", Standard_False); - setResourceEnv ("CSF_SHMessage", aResRoot + "/XSMessage", "SHAPE.us", Standard_False); -} - -// ================================================================ -// Function : dumpGlInfo -// Purpose : -// ================================================================ -void OcctJni_Viewer::dumpGlInfo (bool theIsBasic) -{ - TColStd_IndexedDataMapOfStringString aGlCapsDict; - myView->DiagnosticInformation (aGlCapsDict, Graphic3d_DiagnosticInfo_Basic); //theIsBasic ? Graphic3d_DiagnosticInfo_Basic : Graphic3d_DiagnosticInfo_Complete); - if (theIsBasic) - { - TCollection_AsciiString aViewport; - aGlCapsDict.FindFromKey ("Viewport", aViewport); - aGlCapsDict.Clear(); - aGlCapsDict.Add ("Viewport", aViewport); - } - aGlCapsDict.Add ("Display scale", TCollection_AsciiString(myDevicePixelRatio)); - - // beautify output - { - TCollection_AsciiString* aGlVer = aGlCapsDict.ChangeSeek ("GLversion"); - TCollection_AsciiString* aGlslVer = aGlCapsDict.ChangeSeek ("GLSLversion"); - if (aGlVer != NULL - && aGlslVer != NULL) - { - *aGlVer = *aGlVer + " [GLSL: " + *aGlslVer + "]"; - aGlslVer->Clear(); - } - } - - TCollection_AsciiString anInfo; - for (TColStd_IndexedDataMapOfStringString::Iterator aValueIter (aGlCapsDict); aValueIter.More(); aValueIter.Next()) - { - if (!aValueIter.Value().IsEmpty()) - { - if (!anInfo.IsEmpty()) - { - anInfo += "\n"; - } - anInfo += aValueIter.Key() + ": " + aValueIter.Value(); - } - } - - Message::Send (anInfo, Message_Warning); -} - -// ======================================================================= -// function : init -// purpose : -// ======================================================================= -bool OcctJni_Viewer::init() -{ - EGLint aCfgId = 0; - int aWidth = 0, aHeight = 0; - EGLDisplay anEglDisplay = eglGetCurrentDisplay(); - EGLContext anEglContext = eglGetCurrentContext(); - EGLSurface anEglSurf = eglGetCurrentSurface (EGL_DRAW); - if (anEglDisplay == EGL_NO_DISPLAY - || anEglContext == EGL_NO_CONTEXT - || anEglSurf == EGL_NO_SURFACE) - { - Message::DefaultMessenger()->Send ("Error: No active EGL context!", Message_Fail); - release(); - return false; - } - - eglQuerySurface (anEglDisplay, anEglSurf, EGL_WIDTH, &aWidth); - eglQuerySurface (anEglDisplay, anEglSurf, EGL_HEIGHT, &aHeight); - eglQuerySurface (anEglDisplay, anEglSurf, EGL_CONFIG_ID, &aCfgId); - const EGLint aConfigAttribs[] = { EGL_CONFIG_ID, aCfgId, EGL_NONE }; - EGLint aNbConfigs = 0; - void* anEglConfig = NULL; - if (eglChooseConfig (anEglDisplay, aConfigAttribs, &anEglConfig, 1, &aNbConfigs) != EGL_TRUE) - { - Message::DefaultMessenger()->Send ("Error: EGL does not provide compatible configurations!", Message_Fail); - release(); - return false; - } - - if (!myViewer.IsNull()) - { - Handle(OpenGl_GraphicDriver) aDriver = Handle(OpenGl_GraphicDriver)::DownCast (myViewer->Driver()); - Handle(Aspect_NeutralWindow) aWindow = Handle(Aspect_NeutralWindow)::DownCast (myView->Window()); - if (!aDriver->InitEglContext (anEglDisplay, anEglContext, anEglConfig)) - { - Message::DefaultMessenger()->Send ("Error: OpenGl_GraphicDriver can not be initialized!", Message_Fail); - release(); - return false; - } - - aWindow->SetSize (aWidth, aHeight); - myView->SetWindow (aWindow, (Aspect_RenderingContext )anEglContext); - dumpGlInfo (true); - return true; - } - - Handle(OpenGl_GraphicDriver) aDriver = new OpenGl_GraphicDriver (NULL, Standard_False); - aDriver->ChangeOptions().buffersNoSwap = Standard_True; -//aDriver->ChangeOptions().glslWarnings = Standard_True; /// for debug only! - if (!aDriver->InitEglContext (anEglDisplay, anEglContext, anEglConfig)) - { - Message::DefaultMessenger()->Send ("Error: OpenGl_GraphicDriver can not be initialized!", Message_Fail); - release(); - return false; - } - - myTextStyle = new Prs3d_TextAspect(); - myTextStyle->SetFont (Font_NOF_ASCII_MONO); - myTextStyle->SetHeight (12); - myTextStyle->Aspect()->SetColor (Quantity_NOC_GRAY95); - myTextStyle->Aspect()->SetColorSubTitle (Quantity_NOC_BLACK); - myTextStyle->Aspect()->SetDisplayType (Aspect_TODT_SHADOW); - myTextStyle->Aspect()->SetTextFontAspect (Font_FA_Bold); - myTextStyle->Aspect()->SetTextZoomable (false); - myTextStyle->SetHorizontalJustification (Graphic3d_HTA_LEFT); - myTextStyle->SetVerticalJustification (Graphic3d_VTA_BOTTOM); - - // create viewer - myViewer = new V3d_Viewer (aDriver); - myViewer->SetDefaultBackgroundColor (Quantity_NOC_BLACK); - myViewer->SetDefaultLights(); - myViewer->SetLightOn(); - - // create AIS context - myContext = new AIS_InteractiveContext (myViewer); - myContext->SetPixelTolerance (int(myDevicePixelRatio * 6.0)); // increase tolerance and adjust to hi-dpi screens - myContext->SetDisplayMode (AIS_Shaded, false); - - Handle(Aspect_NeutralWindow) aWindow = new Aspect_NeutralWindow(); - aWindow->SetSize (aWidth, aHeight); - myView = myViewer->CreateView(); - myView->SetImmediateUpdate (false); - myView->ChangeRenderingParams().Resolution = (unsigned int )(96.0 * myDevicePixelRatio + 0.5); - myView->ChangeRenderingParams().ToShowStats = true; - myView->ChangeRenderingParams().CollectedStats = (Graphic3d_RenderingParams::PerfCounters ) (Graphic3d_RenderingParams::PerfCounters_FrameRate | Graphic3d_RenderingParams::PerfCounters_Triangles); - myView->ChangeRenderingParams().StatsTextAspect = myTextStyle->Aspect(); - myView->ChangeRenderingParams().StatsTextHeight = (int )myTextStyle->Height(); - - myView->SetWindow (aWindow, (Aspect_RenderingContext )anEglContext); - dumpGlInfo (false); - //myView->TriedronDisplay (Aspect_TOTP_RIGHT_LOWER, Quantity_NOC_WHITE, 0.08 * myDevicePixelRatio, V3d_ZBUFFER); - - initContent(); - return true; -} - -// ======================================================================= -// function : release -// purpose : -// ======================================================================= -void OcctJni_Viewer::release() -{ - myContext.Nullify(); - myView.Nullify(); - myViewer.Nullify(); -} - -// ======================================================================= -// function : resize -// purpose : -// ======================================================================= -void OcctJni_Viewer::resize (int theWidth, - int theHeight) -{ - if (myContext.IsNull()) - { - Message::DefaultMessenger()->Send ("Resize failed - view is unavailable", Message_Fail); - return; - } - - Handle(OpenGl_GraphicDriver) aDriver = Handle(OpenGl_GraphicDriver)::DownCast (myViewer->Driver()); - Handle(Aspect_NeutralWindow) aWindow = Handle(Aspect_NeutralWindow)::DownCast (myView->Window()); - aWindow->SetSize (theWidth, theHeight); - //myView->MustBeResized(); // can be used instead of SetWindow() when EGLsurface has not been changed - - EGLContext anEglContext = eglGetCurrentContext(); - myView->SetWindow (aWindow, (Aspect_RenderingContext )anEglContext); - dumpGlInfo (true); - //saveSnapshot ("/sdcard/Download/tt.png", theWidth, theHeight); -} - -// ======================================================================= -// function : initContent -// purpose : -// ======================================================================= -void OcctJni_Viewer::initContent() -{ - myContext->RemoveAll (Standard_False); - - if (myViewCube.IsNull()) - { - myViewCube = new AIS_ViewCube(); - { - // setup view cube size - static const double THE_CUBE_SIZE = 60.0; - myViewCube->SetSize (myDevicePixelRatio * THE_CUBE_SIZE, false); - myViewCube->SetBoxFacetExtension (myViewCube->Size() * 0.15); - myViewCube->SetAxesPadding (myViewCube->Size() * 0.10); - myViewCube->SetFontHeight (THE_CUBE_SIZE * 0.16); - } - // presentation parameters - myViewCube->SetTransformPersistence (new Graphic3d_TransformPers (Graphic3d_TMF_TriedronPers, Aspect_TOTP_RIGHT_LOWER, Graphic3d_Vec2i (200, 200))); - myViewCube->Attributes()->SetDatumAspect (new Prs3d_DatumAspect()); - myViewCube->Attributes()->DatumAspect()->SetTextAspect (myTextStyle); - // animation parameters - myViewCube->SetViewAnimation (myViewAnimation); - myViewCube->SetFixedAnimationLoop (false); - myViewCube->SetAutoStartAnimation (true); - } - myContext->Display (myViewCube, false); - - OSD_Timer aTimer; - aTimer.Start(); - if (!myShape.IsNull()) - { - Handle(AIS_Shape) aShapePrs = new AIS_Shape (myShape); - myContext->Display (aShapePrs, Standard_False); - } - else - { - BRepPrimAPI_MakeBox aBuilder (1.0, 2.0, 3.0); - Handle(AIS_Shape) aShapePrs = new AIS_Shape (aBuilder.Shape()); - myContext->Display (aShapePrs, Standard_False); - } - myView->FitAll(); - - aTimer.Stop(); - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "Presentation computed in " + aTimer.ElapsedTime() + " seconds", Message_Info); -} - -//! Load shape from IGES file -static TopoDS_Shape loadIGES (const TCollection_AsciiString& thePath) -{ - TopoDS_Shape aShape; - IGESControl_Reader aReader; - IFSelect_ReturnStatus aReadStatus = IFSelect_RetFail; - try - { - aReadStatus = aReader.ReadFile (thePath.ToCString()); - } - catch (Standard_Failure) - { - Message::DefaultMessenger()->Send ("Error: IGES reader, computation error", Message_Fail); - return aShape; - } - - if (aReadStatus != IFSelect_RetDone) - { - Message::DefaultMessenger()->Send ("Error: IGES reader, bad file format", Message_Fail); - return aShape; - } - - // now perform the translation - aReader.TransferRoots(); - if (aReader.NbShapes() <= 0) - { - Handle(XSControl_WorkSession) aWorkSession = new XSControl_WorkSession(); - aWorkSession->SelectNorm ("IGES"); - aReader.SetWS (aWorkSession, Standard_True); - aReader.SetReadVisible (Standard_False); - aReader.TransferRoots(); - } - if (aReader.NbShapes() <= 0) - { - Message::DefaultMessenger()->Send ("Error: IGES reader, no shapes has been found", Message_Fail); - return aShape; - } - return aReader.OneShape(); - /*TopoDS_Shape anImportedShape = aReader.OneShape(); - - // apply sewing on the imported shape - BRepBuilderAPI_Sewing aTool (0.0); - aTool.SetNonManifoldMode (Standard_False); - aTool.SetFloatingEdgesMode(Standard_True); - aTool.Load (anImportedShape); - aTool.Perform(); - TopoDS_Shape aSewedShape = aTool.SewedShape(); - - if (aSewedShape.IsNull()) - { - Message::DefaultMessenger()->Send ("Error: Sewing result is empty", Message_Fail); - return aShape; - } - if (aSewedShape.IsSame(anImportedShape)) - { - aShape = anImportedShape; - } - else - { - // apply shape healing - ShapeFix_Shape aShapeFixer(aSewedShape); - aShapeFixer.FixSolidMode() = 1; - aShapeFixer.FixFreeShellMode() = 1; - aShapeFixer.FixFreeFaceMode() = 1; - aShapeFixer.FixFreeWireMode() = 0; - aShapeFixer.FixSameParameterMode() = 0; - aShapeFixer.FixVertexPositionMode() = 0; - aShape = aShapeFixer.Perform() ? aShapeFixer.Shape() : aSewedShape; - } - return aShape;*/ -} - -//! Load shape from STEP file -static TopoDS_Shape loadSTEP (const TCollection_AsciiString& thePath) -{ - STEPControl_Reader aReader; - IFSelect_ReturnStatus aReadStatus = IFSelect_RetFail; - try - { - aReadStatus = aReader.ReadFile (thePath.ToCString()); - } - catch (Standard_Failure) - { - Message::DefaultMessenger()->Send ("Error: STEP reader, computation error", Message_Fail); - return TopoDS_Shape(); - } - - if (aReadStatus != IFSelect_RetDone) - { - Message::DefaultMessenger()->Send ("Error: STEP reader, bad file format", Message_Fail); - return TopoDS_Shape(); - } - else if (aReader.NbRootsForTransfer() <= 0) - { - Message::DefaultMessenger()->Send ("Error: STEP reader, shape is empty", Message_Fail); - return TopoDS_Shape(); - } - - // now perform the translation - aReader.TransferRoots(); - return aReader.OneShape(); -} - -// ======================================================================= -// function : open -// purpose : -// ======================================================================= -bool OcctJni_Viewer::open (const TCollection_AsciiString& thePath) -{ - myShape.Nullify(); - if (!myContext.IsNull()) - { - myContext->RemoveAll (Standard_False); - if (!myViewCube.IsNull()) - { - myContext->Display (myViewCube, false); - } - } - if (thePath.IsEmpty()) - { - return false; - } - - OSD_Timer aTimer; - aTimer.Start(); - TCollection_AsciiString aFormatStr; - const Standard_Integer aLen = thePath.Length(); - if (aLen >= 5 - && thePath.Value (aLen - 4) == '.') - { - aFormatStr = thePath.SubString (aLen - 3, aLen); - } - else if (aLen >= 4 - && thePath.Value (aLen - 3) == '.') - { - aFormatStr = thePath.SubString (aLen - 2, aLen); - } - else if (aLen >= 3 - && thePath.Value (aLen - 2) == '.') - { - aFormatStr = thePath.SubString (aLen - 1, aLen); - } - aFormatStr.LowerCase(); - - TopoDS_Shape aShape; - if (aFormatStr == "stp" - || aFormatStr == "step") - { - aShape = loadSTEP (thePath); - } - else if (aFormatStr == "igs" - || aFormatStr == "iges") - { - aShape = loadIGES (thePath); - } - else - // if (aFormatStr == "brep" - // || aFormatStr == "rle") - { - BRep_Builder aBuilder; - if (!BRepTools::Read (aShape, thePath.ToCString(), aBuilder)) - { - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "Error: file '" + thePath + "' can not be opened!", Message_Info); - return false; - } - } - if (aShape.IsNull()) - { - return false; - } - aTimer.Stop(); - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "File '" + thePath + "' loaded in " + aTimer.ElapsedTime() + " seconds", Message_Info); - - myShape = aShape; - if (myContext.IsNull()) - { - return true; - } - - aTimer.Reset(); - aTimer.Start(); - - Handle(AIS_Shape) aShapePrs = new AIS_Shape (aShape); - myContext->Display (aShapePrs, Standard_False); - myView->FitAll(); - - aTimer.Stop(); - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "Presentation computed in " + aTimer.ElapsedTime() + " seconds", Message_Info); - return true; -} - -// ======================================================================= -// function : saveSnapshot -// purpose : -// ======================================================================= -bool OcctJni_Viewer::saveSnapshot (const TCollection_AsciiString& thePath, - int theWidth, - int theHeight) -{ - if (myContext.IsNull() - || thePath.IsEmpty()) - { - Message::DefaultMessenger()->Send ("Image dump failed - view is unavailable", Message_Fail); - return false; - } - - if (theWidth < 1 - || theHeight < 1) - { - myView->Window()->Size (theWidth, theHeight); - } - if (theWidth < 1 - || theHeight < 1) - { - Message::DefaultMessenger()->Send ("Image dump failed - view is unavailable", Message_Fail); - return false; - } - - Image_AlienPixMap anAlienImage; - if (!anAlienImage.InitTrash (Image_Format_BGRA, theWidth, theHeight)) - { - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "RGBA image " + theWidth + "x" + theHeight + " allocation failed", Message_Fail); - return false; - } - - // OpenGL ES does not support fetching data in BGRA format - // while FreeImage does not support RGBA format. - Image_PixMap anImage; - anImage.InitWrapper (Image_Format_RGBA, - anAlienImage.ChangeData(), - anAlienImage.SizeX(), - anAlienImage.SizeY(), - anAlienImage.SizeRowBytes()); - if (!myView->ToPixMap (anImage, theWidth, theHeight, Graphic3d_BT_RGBA)) - { - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "View dump to the image " + theWidth + "x" + theHeight + " failed", Message_Fail); - } - - for (Standard_Size aRow = 0; aRow < anAlienImage.SizeY(); ++aRow) - { - for (Standard_Size aCol = 0; aCol < anAlienImage.SizeX(); ++aCol) - { - Image_ColorRGBA& aPixel = anAlienImage.ChangeValue (aRow, aCol); - std::swap (aPixel.r(), aPixel.b()); - //aPixel.a() = 1.0; - } - } - - if (!anAlienImage.Save (thePath)) - { - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "Image saving to path '" + thePath + "' failed", Message_Fail); - return false; - } - Message::DefaultMessenger()->Send (TCollection_AsciiString() + "View " + theWidth + "x" + theHeight + " dumped to image '" + thePath + "'", Message_Info); - return true; -} - -// ================================================================ -// Function : handleViewRedraw -// Purpose : -// ================================================================ -void OcctJni_Viewer::handleViewRedraw (const Handle(AIS_InteractiveContext)& theCtx, - const Handle(V3d_View)& theView) -{ - AIS_ViewController::handleViewRedraw (theCtx, theView); - myIsJniMoreFrames = myToAskNextFrame; -} - -// ======================================================================= -// function : redraw -// purpose : -// ======================================================================= -bool OcctJni_Viewer::redraw() -{ - if (myView.IsNull()) - { - return false; - } - - // handle user input - myIsJniMoreFrames = false; - myView->InvalidateImmediate(); - FlushViewEvents (myContext, myView, true); - return myIsJniMoreFrames; -} - -// ======================================================================= -// function : fitAll -// purpose : -// ======================================================================= -void OcctJni_Viewer::fitAll() -{ - if (myView.IsNull()) - { - return; - } - - myView->FitAll (0.01, Standard_False); - myView->Invalidate(); -} - -#define jexp extern "C" JNIEXPORT - -jexp jlong JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppCreate (JNIEnv* theEnv, - jobject theObj, - jfloat theDispDensity) -{ - return jlong(new OcctJni_Viewer (theDispDensity)); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppDestroy (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - delete (OcctJni_Viewer* )theCppPtr; - - Handle(Message_Messenger) aMsgMgr = Message::DefaultMessenger(); - aMsgMgr->RemovePrinters (STANDARD_TYPE (OcctJni_MsgPrinter)); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppRelease (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->release(); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppInit (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - Handle(Message_Messenger) aMsgMgr = Message::DefaultMessenger(); - aMsgMgr->RemovePrinters (STANDARD_TYPE (OcctJni_MsgPrinter)); - aMsgMgr->AddPrinter (new OcctJni_MsgPrinter (theEnv, theObj)); - ((OcctJni_Viewer* )theCppPtr)->init(); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppResize (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jint theWidth, - jint theHeight) -{ - ((OcctJni_Viewer* )theCppPtr)->resize (theWidth, theHeight); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppOpen (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jstring thePath) -{ - const char* aPathPtr = theEnv->GetStringUTFChars (thePath, 0); - const TCollection_AsciiString aPath (aPathPtr); - theEnv->ReleaseStringUTFChars (thePath, aPathPtr); - ((OcctJni_Viewer* )theCppPtr)->open (aPath); -} - -jexp jboolean JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppRedraw (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - return ((OcctJni_Viewer* )theCppPtr)->redraw() ? JNI_TRUE : JNI_FALSE; -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetAxoProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_XposYnegZpos); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetXposProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Xpos); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetYposProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Ypos); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetZposProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Zpos); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetXnegProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Xneg); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetYnegProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Yneg); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSetZnegProj (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->setProj (V3d_Zneg); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppFitAll (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr) -{ - ((OcctJni_Viewer* )theCppPtr)->fitAll(); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppAddTouchPoint (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jint theId, - jfloat theX, - jfloat theY) -{ - ((OcctJni_Viewer* )theCppPtr)->AddTouchPoint (theId, Graphic3d_Vec2d (theX, theY)); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppUpdateTouchPoint (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jint theId, - jfloat theX, - jfloat theY) -{ - ((OcctJni_Viewer* )theCppPtr)->UpdateTouchPoint (theId, Graphic3d_Vec2d (theX, theY)); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppRemoveTouchPoint (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jint theId) -{ - ((OcctJni_Viewer* )theCppPtr)->RemoveTouchPoint (theId); -} - -jexp void JNICALL Java_com_opencascade_jnisample_OcctJniRenderer_cppSelectInViewer (JNIEnv* theEnv, - jobject theObj, - jlong theCppPtr, - jfloat theX, - jfloat theY) -{ - ((OcctJni_Viewer* )theCppPtr)->SelectInViewer (Graphic3d_Vec2i ((int )theX, (int )theY)); -} - -jexp jlong JNICALL Java_com_opencascade_jnisample_OcctJniActivity_cppOcctMajorVersion (JNIEnv* theEnv, - jobject theObj) -{ - return OCC_VERSION_MAJOR; -} - -jexp jlong JNICALL Java_com_opencascade_jnisample_OcctJniActivity_cppOcctMinorVersion (JNIEnv* theEnv, - jobject theObj) -{ - return OCC_VERSION_MINOR; -} - -jexp jlong JNICALL Java_com_opencascade_jnisample_OcctJniActivity_cppOcctMicroVersion (JNIEnv* theEnv, - jobject theObj) -{ - return OCC_VERSION_MAINTENANCE; -} diff --git a/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.hxx b/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.hxx deleted file mode 100644 index f34e016edc..0000000000 --- a/samples/java/jniviewer/app/src/main/jni/OcctJni_Viewer.hxx +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) 2014 OPEN CASCADE SAS -// -// This file is part of Open CASCADE Technology software library. -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License version 2.1 as published -// by the Free Software Foundation, with special exception defined in the file -// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT -// distribution for complete text of the license and disclaimer of any warranty. -// -// Alternatively, this file may be used under the terms of Open CASCADE -// commercial license or contractual agreement. - -#include -#include -#include -#include -#include - -class AIS_ViewCube; - -//! Main C++ back-end for activity. -class OcctJni_Viewer : public AIS_ViewController -{ - -public: - - //! Empty constructor - OcctJni_Viewer (float theDispDensity); - - //! Initialize the viewer - bool init(); - - //! Release the viewer - void release(); - - //! Resize the viewer - void resize (int theWidth, - int theHeight); - - //! Open CAD file - bool open (const TCollection_AsciiString& thePath); - - //! Take snapshot - bool saveSnapshot (const TCollection_AsciiString& thePath, - int theWidth = 0, - int theHeight = 0); - - //! Viewer update. - //! Returns TRUE if more frames should be requested. - bool redraw(); - - //! Move camera - void setProj (V3d_TypeOfOrientation theProj) - { - if (myView.IsNull()) - { - return; - } - - myView->SetProj (theProj); - myView->Invalidate(); - } - - //! Fit All. - void fitAll(); - -protected: - - //! Reset viewer content. - void initContent(); - - //! Print information about OpenGL ES context. - void dumpGlInfo (bool theIsBasic); - - //! Handle redraw. - virtual void handleViewRedraw (const Handle(AIS_InteractiveContext)& theCtx, - const Handle(V3d_View)& theView) override; - -protected: - - Handle(V3d_Viewer) myViewer; - Handle(V3d_View) myView; - Handle(AIS_InteractiveContext) myContext; - Handle(Prs3d_TextAspect) myTextStyle; //!< text style for OSD elements - Handle(AIS_ViewCube) myViewCube; //!< view cube object - TopoDS_Shape myShape; - float myDevicePixelRatio; //!< device pixel ratio for handling high DPI displays - bool myIsJniMoreFrames; //!< need more frame flag - -}; diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/close_l.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/close_l.png deleted file mode 100644 index 0125c4aaf8867b36f628ab01923c6514b3397b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmV-|1%3L7P)N2bZe?^J zG%heMGmPe!Pyhf007*naR9Hv7nBR*VRTRgoLe*DY+9We`=SR}rCRwvdCX-AunaRv# zerA)+ZklBM14;#bP#6&3WQpr94|AY!5TP^dppp;%fgb_KWH zO^#>QTYU5-w;vb?xnDTkJLjJBJ#%OQJdi1=57OWFk5svFSZ+F{T+6wXs~fYNssUYM z3)gUt%T|18*^cLV%Y%H&f)&=mg|)^bf*GHd+>O0uZv%?nIutt|ENcz6fl0OX7;g_g z=G{%m`kRmsHXv{NkX7qDRKfCQ{c)x3y`^*qcO`#_K{r5j zW8ii3Ywig(M`epgQjL?@PPCK7t0Q8Gl)OHO9e|;`SBgi`OOwo;Zse}ze!#Jb3@t%?#F*XG`X$)4d zORBYJsbuj86}2Rq&P5sDsTAP7O@jIpkXl`~cUNraFUW52r<`PQFv7&b9lK*7TIX{r zVS{9}FDrgDm%<@7gfZ~m1bAzBm#Y}hQ3)Gl)7n#l7{qAvpc8T338b3+@6sh*r;^1Z zsny?Py8~j_19C60GoBsQ;#bqF^(87>Jc6cP7aeCNhU*v@?{6>xVohclwfAg z;z?`OcX-FSAx8a!z!GM&Y)ygG2A>K=hDV*MlwaaIonOQVTOT%j*`K1tL66niyiC@N z5tT7vkTKd~4c%k1va=)ufumbEKHpkJPpEob3TY`82qriev^B-P95 zfvmSaq_V}cw32`LXt_2bmVYy85@L7)IBbm)&PuY;`GLyVaI{!9xVm{!bk^rdz21bn0YC6%y2DAm_U%e^R}3lWoIl33fI z4}xL;!IkSzQyCkCnt4vNqy3~|Nc|K4+S^Vr7iz|PRKfQ9a+A!PY zn(-!;up`@cz9Altsd%SJG{F*z?_76(q|5BcYx-H-?}tO0!I?^$U_aoFBu$h5tUVv7MC@_?Gu#&guV^$0=jgjbPPsA+I%l zqRZ?^SB+fG^v@UUaHnXx^MY>NpO2`i)#^i}s&|x{{(82e-JpN}4~Gu@0}VUi&tq&i Qn*aa+07*qoM6N<$f(pc)N2bZe?^J zG%heMGmPe!Pyhe~t4TybR9HvtmD`IObri=}1uw6>H@}%ocbjC*COesAE}8p1 zm%XIP)<0mWU?0>6TM!C92)_9s_#{4vV4;c%`chEPO8X#Uq4-d!7gQ*gUc|28Zg(?3 z&t%6JUkatR1@nQ!OftVY=X-v?bI#06nKEU{lqq+MeU*|7mwv8ZdnGR|y~jx66)Z0O zw)gY_Wp=*w*lfA{#Oz}2_`arex}dc$(x&+fZQEB_+a7b4NjTlu!CLzQ+mc^m>S8r} z_5QQJQq%U=8iReJd?Ke9Hz>;^$d3sdb-{Xs4dEJg2p`0R_oIY!f<>gewlFL8o|+kplB_#RY+!);BbX-0X+A5gm>Z{ z-taFK73Vw_wGFN&Kb5)u?`AslcE`I@@?-O+%%qL>WWTPrAM=ncaMVDK9ZO1 z&*`@RD{Do&7y`2(A{E4jhrm*CBZ9rdgmb_wFk_t{V>G7h;h1tqg!UjIe+Y@~8Rrim zku_5ERtfL+Z(%FGhT7iulw!Y@Yv~*LhN5TT@0^k(pD4ENZx}n;V*Fl$pbXM-V4*Y^ z*l`MWlL8TFB4`9+*0*_Uc!5(_FQ7*Mvx3-pcfSO|?(ZeuP(@4+JB+BG}!V$m=Bq za8Ac-gzZ5I^bQf+0nw9yJrL3*oDGd?gnx00dy*9m1ubd=rXtIQN;98dXwK%VvP{*r z7m#FrfmQc9Zv5=@BCeW()GBUbnXnSRg_J;`*9wro64oai|jX6mGoa1N(0>Xr`Bf^^A zHm8|CaI*Rls*6W6m$wBiHJ;~X?G)FxF0-b;%Q`Xm>`#0nh(STDJe+bafY`x0p@a2= zatBvvtN#h3$H%CaeK1#RrM>bHIFn65_fHFU?@#QkB($5B#R$YdGcgoFZNpSaCkS>r z1erm?Xx8s^tNj(-P>$_Mx-;lS(FPx%(z5S~}E(_lBcpknnC8&Z5Xe=2X5t`aKTRt;WmNl|qIHY2FWL|fPpxN6Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000A7NklS}Q%9gD1`dS{5^lY5OHa$Oakh zl><}leYcX)pz=nNdn3D!R@VyC&Kiy8727wW4lwL}({RL-o{Ves(0zOO&5F0t1uPi}>b<)|=K-g;7 zB8&jxnS3*%abS#T1g|&;YCtXS^Uz=xxCB`o!c4hFhXs*^mBpj3u9Sb5Maj#)PP#t z=X5|sNVwZi2ZLvb$c{hI9?3gH6xsOmW)ivld)#T|7g}vS7z8sH z*=%a^&Nx2q=y5IH{Xm_3Wadbl9!uUCM}wN65n=G`;Fz#DN8TC7;TClfHP)X~Cry3( zTm&}(VzC?=)C6A=T98{!_=ltcC~r*Ps^ERO?)r YzrD-?<2F(YPXGV_07*qoM6N<$f`H1phyVZp diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/ic_launcher.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index d27ba82c09f3fa1357a7501c50058a10524fdc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2591 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 diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/message.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/message.png deleted file mode 100644 index a3dc8cc2092e136070180accd996700d34e35318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fyQcix;TbJxF<`nE=~~XX`0A)WbYI>Sd{IUQ0|p z0=pX1@|?;T1aAnxQVD5zc;L%2(*Vsbh6`(^8W?vTIbyY;u)tbiM%g{4mybgZqt5QXN^3W|R9$wCywb2RUrmvv;hWp3V^evY*}axr zyDzFW$71R=35m12FK`tH8J%o+5Xc_XN2bPDNB8 zb~7$DE-^4L^m3s900R+8L_t(oN6nbcYZE~jhm%;XwHPn?Xg1l3P{krukRalro~pHn z9=&Aqonj3s>9$SUrj5mqwzjr{e}DxA{{z8;dKJWrDBe^Q8U(3c6pA11`kQnXvy%bS z*q!VPPj+~dclX(k*_n(@)3lw!&dL2Z++>3>oGAHlR3w5GZL=XF1af>QH~?C~Zm z3xYsw{Hr%TcZ%-9+^9#eJ)~|*$>Lp4dfq{IV_wuJIIPLa$S2>xOjJr0&+HH_RLL0i z3X-cRN5<9z(foIYZ=75$9HC0a;0el+Q7~2}K+)TJo`v__zj93bC{;2BD~Mb7#vjWE zeTjmE-s%@cAew8&@tYVNRf7Kb(yFV7|fh83h$p^T)>L+b&)0z!`lg=Ng5g z{`AKtrVWC!qJD(nc_}&7OJu8x1cDK(A7+FXpi-%<4kSvXnB{I@(ph?`XXX)B02(;00000NkvXXu0mjfxi+FH diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_l.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_l.png deleted file mode 100644 index 6069ce38931d2f2a277d74bef58c431ff9d7e0dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1415 zcmV;21$g?2P)N2bZe?^J zG%heMGmPe!Pyhf01xZ9fR9Hu~n9GY>RUF5wf{(2ZZIXNMx#!%ZGfgsPlHANPb`VanAX@P7eH6iVf|W($e2VP2J9|HXmX?^QEF2v}$_uiWBda%+a`;N~^+Te864z7wiqFJlLf2XhKm8>D3Q^6KeX1N%$bOjQ5cp!Er+&86Bf? za+JzWvM;sF(@eq#q27L0GMqnf1Ua4UI@zQc(hT*y3sSAU#$U@H=!sCu6RP_ z5O!_HyOP>_fl2rvwz?-}JGg_w5fviXbp*~K+J&}x;ZU`1Fc}|+VgHDsX$T=WhMZPl z*T@R5AF8(|ODp9^m~8P7z4sAu2NZ=})H5^h4x>v4i-CSC$zrS3FNJZQJHP@)W!eom_ zs_HswjXxt6IE5V}C?;|;g6YJ)me-o^G1=lNRNMK2I(QdZTeB>{?m3Q!kkjr=(o}v! zLVmTqbVy5I7u@MgiZjPh!QufWj!m)J{GG`bPrjz>x$fvY!QXU z4?@FuUbHsuib3Xh3c0)i6)c%!qkoA>_<%I~3*tfL%BmOC>uf+EUi7Ej(O+Z|KH#2z zLxE_<;21;6B=E|RP4|M-P-{%Gcu=$ToMOQklsSc!H3`K__oR-&w_GZ^ai-{|GaSGX z!;oJJ;eM^~d!epXnPl;ZYpP57&J_YpL56Wxf!25!rjTOSyT~MbfI;9>*$(${cBgQ} z*{of(lU=MD$C+gD2v4ddQ8&Mqy%Yj!9qt#7*dO0j`oTM-u0O$Ki$`d5PDp+47LLZ0 zq)@3c=T3SZx2!)DM1;8eNk~_<+0K4GckrV6>HBiQ#Zx z=(?{7HSJ+0SvAeMXY(uZSHgM%#162;X96KH!G>;j-!PufX`Kz!3}36a;^A6?bfvN%&Ay+q-2a zq-6-EB9utcgXN4rLCxOdOu~m{twXav*sAbWS`MI6dFy+UnVyu^I*&35A68V2mU|X0 zTLE2m(mAoxi$cde!pwXrf%8(^n3a0&MbdR^xq63RrTRAtHT6OGc;NoG|I2{`{{YWU V;LmX$iEaP@002ovPDHLkV1mJ`uTB5} diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_p.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/open_p.png deleted file mode 100644 index c0898e6d6a4835fc8614573dccdb71b564f8aa5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1322 zcmV+_1=aeAP)N2bZe?^J zG%heMGmPe!Pyhe~s7XXYR9HvtmCK7;bri=(g{oT}W|G|3@7|;{O)_SZ+}z|oa-X@+ zAU5HpHE(-O53dNzdVn=YMGjosU zX6|08t?eQoI3)b?`<>tSJbou*BSwrEF=9l@v?#%p)PbVd-X;z4gKYVMLJ+01sPRHs z>in239a2K^Wz~SH=|b7^U`p@p6UF?764lLY%YB0u)z?|sxKh&W-D$ly)Hq`}P?0sr zwqO8l?VxP9P<01T_UB>Rn}?D+f52P)YeeaN!MD2SNke`m+kVd>_09(0(%vGn^MhdZ z_k`XYlzK5t_XbcwjWbRNRozL74e9#uKuNVPO<7Sg<<3LVTLi&B4t%%<#9slyU4)Vo zCq*OJCW`YLD|IhWjm{?Zlvo-bzDrQ`_Onb&dygpgPlE36l>k0V-IBg1-(-unHu^!~Oyg%m8Zz z3Db3M(X##(-BLcGXGJ^Ha7UnzlXR#1C8Jrtv!3a(FteS<*rxgf>6oIRd2b44bd&AH zNggv&h!%lK1L$Kl@HgUZ}S7OjVZI zS#6mU4TV>FX9Oeoi?{oD9xLj_z^1-Z-|=za;^o5taE*0i%=X|`$q2Uu)p?(j^b>4D zsb_NknPXzx7F6RS+V*c!ZnRH(gMHSUOStqx53_~ug-iR?#h|e51S~V}tN?8++|DWS zx06!zT0!i;!?xx=<<-T@g0*tF=&tSZxQ|WS)Wgd9OPJwh;IPVExCm^p0E`zWj2-S2 zyY|;*Nj{y)xpVR@MbCBg4N9?JWxMWo#ENdN)Eg{9#c4yO%g z2HULaTx44M8LB47g-WZEU3u@|>++LC)HaHWb4f6~tAZ2l@#&jL+Y8%Z*bYO($B#Cg zWcV;y{EuOW(=5d5csHoFevuK?7noXmHgo;|L)E1!)6q_Gx_yy%{67RQOavdNRM1Bo zU@$RS`d}lVEEjT$adSeHPfylc%ahf*mbtnAFb%QBb>tU`*1gQ@#vX5(*dq1;ZQIvr z)BL%hb+1gcrE}x6^;6@O%H!kHn(=R$gkpn`_ix#-+K5YFR$~b;O7f gBSwt)uZ)fT4YDub&rYOub^rhX07*qoM6N<$f_wIrhX4Qo diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_back.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_back.png deleted file mode 100644 index 77ab199ab5decb6fb87e47ab3ca62b3f51f5c57a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1716 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 FV1mREeRco< diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_front.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_front.png deleted file mode 100644 index b93d4d3e099ad3cb90324f88ffb2cd4be2494735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604 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 N002ovPDHLkV1hP3QUd@0 diff --git a/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_right.png b/samples/java/jniviewer/app/src/main/res/drawable-hdpi/proj_right.png deleted file mode 100644 index 8cdb338b4ce8e40aefdb016c0bfd3ba57fee6855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1644 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 RU6ud<002ovPDHLkV1gkYd;tIe diff --git a/samples/java/jniviewer/app/src/main/res/drawable-mdpi/ic_launcher.png b/samples/java/jniviewer/app/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index 4b86dbf5e952b98811db056f7fe155288f8ff320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 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 diff --git a/samples/java/jniviewer/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/samples/java/jniviewer/app/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index a34301f3864675a2b09308ce64ebd482130141bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5560 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/java/jniviewer/app/src/main/res/values/id.xml b/samples/java/jniviewer/app/src/main/res/values/id.xml deleted file mode 100644 index 56bde943a6..0000000000 --- a/samples/java/jniviewer/app/src/main/res/values/id.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/samples/java/jniviewer/app/src/main/res/values/strings.xml b/samples/java/jniviewer/app/src/main/res/values/strings.xml deleted file mode 100644 index 6f2a431604..0000000000 --- a/samples/java/jniviewer/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - OpenCASCADE JNI Java Sample - #484848 - #0099CC - #66252525 - - .png - .jpg - - - .brep - .rle - .iges - .igs - .step - .stp - - wireframe/shading - color - material - transparency - show/hide hidden lines - - OpenCASCADE JNI Java Sample

-

Simple viewer for BREP, STEP and IGES files.

-

Driven by Open CASCADE Technology %d.%d.%d.

-

Copyright 2014 OPEN CASCADE SAS.

-

-

http://www.opencascade.com

-

http://www.opencascade.org

- ]]> -
-
diff --git a/samples/java/jniviewer/build.gradle b/samples/java/jniviewer/build.gradle deleted file mode 100644 index da2f7cd34f..0000000000 --- a/samples/java/jniviewer/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - jcenter() - google() - } - dependencies { - classpath 'com.android.tools.build:gradle:4.0.0' - } -} - -allprojects { - repositories { - jcenter() - google() - } -} diff --git a/samples/java/jniviewer/gradle.properties.template b/samples/java/jniviewer/gradle.properties.template deleted file mode 100644 index 2cf7323475..0000000000 --- a/samples/java/jniviewer/gradle.properties.template +++ /dev/null @@ -1,5 +0,0 @@ -# customized paths -OCCT_ROOT=c\:/android/occt-dev-android -FREETYPE_ROOT=c\:/android/freetype-2.7.1-android -# in case if OCCT was built with FreeImage -#FREEIMAGE_ROOT=c\:/android/freeimage-3.17-android diff --git a/samples/java/jniviewer/images/samples_java_android_occt.jpg b/samples/java/jniviewer/images/samples_java_android_occt.jpg deleted file mode 100644 index ecba47332b62d6ab170560b3ce28b49ac245261a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13697 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 Bi*x`0 diff --git a/samples/java/jniviewer/settings.gradle b/samples/java/jniviewer/settings.gradle deleted file mode 100644 index e7b4def49c..0000000000 --- a/samples/java/jniviewer/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/samples/mfc/standard/01_Geometry/CMakeLists.txt b/samples/mfc/standard/01_Geometry/CMakeLists.txt deleted file mode 100644 index ec58896cc7..0000000000 --- a/samples/mfc/standard/01_Geometry/CMakeLists.txt +++ /dev/null @@ -1,96 +0,0 @@ -# Caution! Be careful, when increase minimal cmake version: -# using of newer version may leads (by default) to applying -# of some new policies. It may break compilation. -# For canceling of applying new policies use: -# cmake_policy(PUSH) before `cmake_minimum_required` -# and cmake_policy(POP) after. -cmake_minimum_required (VERSION 3.1 FATAL_ERROR) - -project (Geometry) - -add_definitions(-DWINVER=0x0501 -DUNICODE -D_UNICODE) -set (CMAKE_MFC_FLAG 2) - -set (Geometry_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/01_Geometry/src) -set (Geometry_HEADER_FILES ${Geometry_SRC_DIR}/ChildFrm.h - ${Geometry_SRC_DIR}/ChildFrm2d.h - ${Geometry_SRC_DIR}/GeoAlgo_Sol.hxx - ${Geometry_SRC_DIR}/GeometryApp.h - ${Geometry_SRC_DIR}/GeometryDoc.h - ${Geometry_SRC_DIR}/GeometryView.h - ${Geometry_SRC_DIR}/GeometryView2D.h - ${Geometry_SRC_DIR}/GeomSources.h - ${Geometry_SRC_DIR}/MainFrm.h - ${Geometry_SRC_DIR}/StdAfx.h ) -set (Geometry_SOURCE_FILES ${Geometry_SRC_DIR}/ChildFrm.cpp - ${Geometry_SRC_DIR}/ChildFrm2d.cpp - ${Geometry_SRC_DIR}/GeoAlgo_Sol.cxx - ${Geometry_SRC_DIR}/GeometryApp.cpp - ${Geometry_SRC_DIR}/GeometryDoc.cpp - ${Geometry_SRC_DIR}/GeometryView.cpp - ${Geometry_SRC_DIR}/GeometryView2D.cpp - ${Geometry_SRC_DIR}/GeomSources.cpp - ${Geometry_SRC_DIR}/MainFrm.cpp - ${Geometry_SRC_DIR}/StdAfx.cpp ) - -set (Geometry_ISESSION2D_DIR ${Geometry_SRC_DIR}/ISession2D) -set (Geometry_ISESSION2D_HEADER_FILES ${Geometry_ISESSION2D_DIR}/ISession_Curve.h - ${Geometry_ISESSION2D_DIR}/ISession_Direction.h - ${Geometry_ISESSION2D_DIR}/ISession_Point.h - ${Geometry_ISESSION2D_DIR}/ISession_Surface.h - ${Geometry_ISESSION2D_DIR}/ISession2D_Curve.h) -set (Geometry_ISESSION2D_SOURCE_FILES ${Geometry_ISESSION2D_DIR}/ISession_Curve.cpp - ${Geometry_ISESSION2D_DIR}/ISession_Direction.cpp - ${Geometry_ISESSION2D_DIR}/ISession_Point.cpp - ${Geometry_ISESSION2D_DIR}/ISession_Surface.cpp - ${Geometry_ISESSION2D_DIR}/ISession2D_Curve.cpp) - -set (Geometry_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/01_Geometry/res) -set (Geometry_RESOURCE_HEADER ${Geometry_RESOURCE_DIR}/resource.h) -set (Geometry_RESOURCE_FILES ${Geometry_RESOURCE_DIR}/Geometry.rc - ${Geometry_RESOURCE_DIR}/Toolbar1.bmp - ${Geometry_RESOURCE_DIR}/Toolbar2.bmp) - -# groups in the VS solution -source_group ("Source Files" FILES ${Geometry_SOURCE_FILES} - ${COMMON_WINMAIN_FILE}) - -source_group ("Source Files\\ISession2d" FILES ${Geometry_ISESSION2D_SOURCE_FILES}) - -source_group ("Header Files" FILES ${Geometry_HEADER_FILES} - ${Geometry_ISESSION2D_HEADER_FILES} - ${Geometry_RESOURCE_HEADER}) - -source_group ("Resource Files" FILES ${Geometry_RESOURCE_FILES}) - -add_executable (Geometry WIN32 ${Geometry_SOURCE_FILES} - ${Geometry_HEADER_FILES} - ${COMMON_WINMAIN_FILE} - ${Geometry_ISESSION2D_SOURCE_FILES} - ${Geometry_ISESSION2D_HEADER_FILES} - ${Geometry_RESOURCE_FILES} - ${Geometry_RESOURCE_HEADER}) - -set_property(TARGET Geometry PROPERTY FOLDER "Samples/mfc") - -if (SINGLE_GENERATOR) - install (TARGETS Geometry DESTINATION "${INSTALL_DIR_BIN}") -else() - install (TARGETS Geometry - CONFIGURATIONS Release RelWithDebInfo - DESTINATION "${INSTALL_DIR_BIN}") - install (TARGETS Geometry - CONFIGURATIONS Debug - DESTINATION "${INSTALL_DIR_BIN}d") -endif() - -include_directories (${CMAKE_BINARY_DIR}/inc - ${Geometry_SRC_DIR} - ${Geometry_ISESSION2D_DIR} - ${Geometry_RESOURCE_DIR} - ${MFC_STANDARD_SAMPLES_DIR}/Common) - -target_link_libraries (Geometry mfcsample) - -set (CMAKE_CXX_STANDARD 17) -set (CMAKE_CXX_STANDARD_REQUIRED ON) \ No newline at end of file diff --git a/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj b/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj deleted file mode 100644 index 85cb5bbdda..0000000000 --- a/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj +++ /dev/null @@ -1,584 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {31E8199C-C981-4B7F-9CC2-B8502565B581} - Geometry - MFCProj - - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ../../../../win32\$(VCFMT)\bin\ - .\win32\obj\ - false - ../../../../win64\$(VCFMT)\bin\ - .\win64\obj\ - false - ../../../../win32\$(VCFMT)\bind\ - .\win32\objd\ - true - ../../../../win64\$(VCFMT)\bind\ - .\win64\objd\ - true - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\obj/Geometry.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\src;.;..\..\..\..\Common;..\..\..\src\ISession2d;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win32\obj/Geometry.pch - .\win32\obj/ - .\win32\obj/ - .\win32\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bin/Geometry.exe - true - ..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - $(IntDir)$(TargetFileName).intermediate.manifest - ../../../../win32\$(VCFMT)\bin/Geometry.pdb - Windows - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\obj/Geometry.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\src;.;..\..\..\..\Common;..\..\..\src\ISession2d;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win64\obj/Geometry.pch - .\win64\obj/ - .\win64\obj/ - .\win64\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bin/Geometry.exe - true - ..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - $(IntDir)$(TargetFileName).intermediate.manifest - ../../../../win64\$(VCFMT)\bin/Geometry.pdb - Windows - MachineX64 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\objd/Geometry.tlb - - - - - Disabled - ..\..\..\src;.;..\..\..\..\Common;..\..\..\src\ISession2d;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win32\objd/Geometry.pch - .\win32\objd/ - .\win32\objd/ - .\win32\objd/ - true - Level4 - true - EditAndContinue - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bind/Geometry.exe - true - ..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - $(IntDir)$(TargetFileName).intermediate.manifest - true - ../../../../win32\$(VCFMT)\bind/Geometry.pdb - Windows - MachineX86 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\objd/Geometry.tlb - - - - - Disabled - ..\..\..\src;.;..\..\..\..\Common;..\..\..\src\ISession2d;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win64\objd/Geometry.pch - .\win64\objd/ - .\win64\objd/ - .\win64\objd/ - true - Level4 - true - ProgramDatabase - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKMesh.lib;%(AdditionalDependencies) - ../../../..\win64\$(VCFMT)\bind/Geometry.exe - true - ..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - $(IntDir)$(TargetFileName).intermediate.manifest - true - ../../../../win64\$(VCFMT)\bind/Geometry.pdb - Windows - MachineX64 - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - true - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - - - - - - - - - - - - - - - - - - - - - - - - - - - {2d6cbbe8-6965-4016-b503-0d715ae26691} - false - - - - - - \ No newline at end of file diff --git a/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj.filters b/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj.filters deleted file mode 100644 index a56b5b8da7..0000000000 --- a/samples/mfc/standard/01_Geometry/adm/win/vc10/Geometry.vcxproj.filters +++ /dev/null @@ -1,133 +0,0 @@ - - - - - {1697fc5e-645f-497f-b0c8-368b443f127a} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {de79fa58-5f9d-4222-b105-fe4f6d9091e5} - - - {189e159b-f494-4b64-93f1-90dbf154e82d} - h;hpp;hxx;hm;inl - - - {b576cf30-aabd-409d-be0a-47b5842f86a9} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files\ISession2d - - - Source Files\ISession2d - - - Source Files\ISession2d - - - Source Files\ISession2d - - - Source Files\ISession2d - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - \ No newline at end of file diff --git a/samples/mfc/standard/01_Geometry/res/Geometry.rc b/samples/mfc/standard/01_Geometry/res/Geometry.rc deleted file mode 100755 index 911ea1c21d..0000000000 --- a/samples/mfc/standard/01_Geometry/res/Geometry.rc +++ /dev/null @@ -1,347 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" -#include "..\..\Common\res\OCC_Resource.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "#include ""..\\..\\Common\\res\\OCC_Resource.h""\0" -END - -3 TEXTINCLUDE -BEGIN - "#define _AFX_NO_SPLITTER_RESOURCES\r\n" - "#define _AFX_NO_OLE_RESOURCES\r\n" - "#define _AFX_NO_TRACKER_RESOURCES\r\n" - "#define _AFX_NO_PROPERTY_RESOURCES\r\n" - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" - "#ifdef _WIN32\r\n" - "LANGUAGE 9, 1\r\n" - "#pragma code_page(1252)\r\n" - "#endif\r\n" - "#include ""afxres.rc"" // Standard components\r\n" - "#endif\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDR_MAINFRAME BITMAP "Toolbar1.bmp" -IDR_MAINFRAME2 BITMAP "Toolbar2.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Toolbar -// - -IDR_MAINFRAME TOOLBAR 16, 15 -BEGIN - BUTTON ID_FILE_NEW - SEPARATOR - BUTTON ID_APP_ABOUT - SEPARATOR - BUTTON ID_BUTTON_Test_1 - BUTTON ID_BUTTON_Test_2 - BUTTON ID_BUTTON_Test_3 - BUTTON ID_BUTTON_Test_4 - BUTTON ID_BUTTON_Test_5 - BUTTON ID_BUTTON_Test_6 - BUTTON ID_BUTTON_Test_7 - BUTTON ID_BUTTON_Test_8 - BUTTON ID_BUTTON_Test_9 - BUTTON ID_BUTTON_Test_10 - BUTTON ID_BUTTON_Test_11 - BUTTON ID_BUTTON_Test_12 - BUTTON ID_BUTTON_Test_13 - BUTTON ID_BUTTON_Test_14 - BUTTON ID_BUTTON_Test_15 - BUTTON ID_BUTTON_Test_16 - BUTTON ID_BUTTON_Test_17 - BUTTON ID_BUTTON_Test_18 - BUTTON ID_BUTTON_Test_19 - BUTTON ID_BUTTON_Test_20 - BUTTON ID_BUTTON_Test_21 - BUTTON ID_BUTTON_Test_22 - BUTTON ID_BUTTON_Test_23 - BUTTON ID_BUTTON_Test_24 - SEPARATOR - BUTTON ID_Create_Sol -END - -IDR_MAINFRAME2 TOOLBAR 16, 15 -BEGIN - BUTTON ID_BUTTON_Test_25 - BUTTON ID_BUTTON_Test_26 - BUTTON ID_BUTTON_Test_27 - BUTTON ID_BUTTON_Test_28 - BUTTON ID_BUTTON_Test_29 - BUTTON ID_BUTTON_Test_30 - BUTTON ID_BUTTON_Test_31 - BUTTON ID_BUTTON_Test_32 - BUTTON ID_BUTTON_Test_33 - BUTTON ID_BUTTON_Test_34 - BUTTON ID_BUTTON_Test_35 - BUTTON ID_BUTTON_Test_36 - SEPARATOR - BUTTON ID_BUTTON_Test_37 - BUTTON ID_BUTTON_Test_38 - BUTTON ID_BUTTON_Test_39 - BUTTON ID_BUTTON_Test_40 - BUTTON ID_BUTTON_Test_41 - BUTTON ID_BUTTON_Test_42 - BUTTON ID_BUTTON_Test_43 - BUTTON ID_BUTTON_Test_44 - BUTTON ID_BUTTON_Test_45 - BUTTON ID_BUTTON_Test_46 - BUTTON ID_BUTTON_Test_47 - BUTTON ID_BUTTON_Test_48 - BUTTON ID_BUTTON_Test_49 - BUTTON ID_BUTTON_Test_50 - SEPARATOR - BUTTON ID_BUTTON_Simplify -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MAINFRAME MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Help" - BEGIN - MENUITEM "&About Geometry...", ID_APP_ABOUT - END -END - -IDR_3DTYPE MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM "&Close", ID_FILE_CLOSE - MENUITEM SEPARATOR - POPUP "Export" - BEGIN - MENUITEM "Image...", ID_FILE_EXPORT_IMAGE - END - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Window" - BEGIN - MENUITEM "&New Window 2D", ID_WINDOW_NEW2D - MENUITEM "&New Window 3D", ID_WINDOW_NEW - MENUITEM SEPARATOR - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "&Tile", ID_WINDOW_TILE_HORZ - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - END - POPUP "&Help" - BEGIN - MENUITEM "&About Geometry...", ID_APP_ABOUT - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "FileDescription", "Viewer MFC Application" - VALUE "FileVersion", "1, 0, 0, 1" - VALUE "InternalName", "Viewer" - VALUE "LegalCopyright", "Copyright (C) 1997" - VALUE "OriginalFilename", "Viewer.EXE" - VALUE "ProductName", "SampleGeometry Application" - VALUE "ProductVersion", "1, 0, 0, 1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDR_MAINFRAME "Geometry" - IDR_Samples2DTYPE "2D View \nArgOne\nArgTwo\nArgThree\nArgFour\n.Document\nArgSix " -END - -STRINGTABLE -BEGIN - IDR_TYPE "3D View\nGeometry\n\n\n\n.Document\n Document" -END - -STRINGTABLE -BEGIN - ID_BUTTON_Test_1 "Build a cartesian coordinate entity \nCartesian Coordinate Entity " - ID_BUTTON_Test_2 "Build geometric Points\nGeometric Points" - ID_BUTTON_Test_3 "Build a point with a triplet of coordinates\nGeometric point " - ID_BUTTON_Test_4 "Return the coordinates of a geometric point\nCoordinates of a point" - ID_BUTTON_Test_5 "Build the barycenter of two points\nBarycenter of two points" - ID_BUTTON_Test_6 "Build the barycenter of several points\nBarycenter of several points" - ID_BUTTON_Test_7 "Build a trimmed curve and a tangent vector\nTrimmed curve" - ID_BUTTON_Test_8 "Build a geometric circle and a tangent direction\nGeometric circle" - ID_BUTTON_Test_9 "Build a point from curve and a start point\nPoint from curve" - ID_BUTTON_Test_10 "Build points from a circle and uniform abscissa\nPoints from curve" - ID_BUTTON_Test_23 " Build a trimmed curve from an ellips\nBuild a trimmed curve" - ID_BUTTON_Test_22 " Build a curve from two points and energy\nBuild a fair curve" - ID_BUTTON_Test_32 " Build a trimmed ellipse\nTrimmed ellipse" - ID_BUTTON_Test_11 "Build a point from a sphere and u,v parameters\nPoint from sphere" - ID_BUTTON_Test_12 "Project a point on a curve\nProject a point on a curve" - ID_BUTTON_Test_13 "Project a point on a sphere\nProject a point on a sphere" -END - -STRINGTABLE -BEGIN - ID_BUTTON_Test_14 "Build points from an intersection\nBuild points from an intersection" - ID_BUTTON_Test_15 " Build a point from a transformation\nBuild a point from a transformation" - ID_BUTTON_Test_16 " Build vectors from points\nVectors" - ID_BUTTON_Test_17 " Calculate the angle between two directions\nAngle" - ID_BUTTON_Test_18 " Build a parabola from an axis\nParabola" - ID_BUTTON_Test_19 " Build right and left handed axis\nAxis" - ID_BUTTON_Test_20 " Build B-Spline curves\nB-Spline curves" - ID_BUTTON_Test_21 " Build a fair curve\nBuild a fair curve" - ID_BUTTON_Test_24 " Project a curve in a 2D one\nProjection" - ID_BUTTON_Test_25 " Interpolate a curve from points\nInterpolate a curve" - ID_BUTTON_Test_26 " Calculate the extreme points between curves\nExtreme points" - ID_BUTTON_Test_27 " Build offset curves\nOffset curves" - ID_BUTTON_Test_28 " Build a line passing through two points\nLine" - ID_BUTTON_Test_29 " Build a bisector\nBisector" - ID_BUTTON_Test_30 " Build a line passing through a point and tangent to a circle\nBuild a tangent line" - ID_BUTTON_Test_31 " Build tangent circles\nTangent circles" -END - -STRINGTABLE -BEGIN - ID_BUTTON_Test_33 " Build B-Spline curves\nB-Spline curves" - ID_BUTTON_Test_34 " Test the average shape of points\nTest points" - ID_BUTTON_Test_35 " Intersection between curve and surface\nIntersection between curve and surface" - ID_BUTTON_Test_36 " Build entities from geometric transformations\nGeometric transformations" - ID_BUTTON_Test_37 " Test the average shape of points\nTest points" - ID_BUTTON_Test_38 " Build surfaces by filling curves\nFill curves" - ID_BUTTON_Test_39 " Build a constrained surface from curves\nConstrained surface" - ID_BUTTON_Test_40 " Build pipe from basis entities\nPipe" - ID_BUTTON_Test_41 " Split a B-Spline surface\nSplit a B-Spline surface" - ID_BUTTON_Test_42 " Build Bezier surface\nBezier surface" - ID_BUTTON_Test_43 " Build offset surfaces\nOffset surfaces" - ID_BUTTON_Test_44 " Build a surface of linear extrusion\nLinear extrusion" - ID_BUTTON_Test_45 " Build a surface of revolution\nSurface of revolution" - ID_BUTTON_Test_46 " Build a surface extended by a length\nExtended surface" - ID_BUTTON_Test_47 " Calculate the extreme distances between surfaces\nExtreme distances" - ID_BUTTON_Test_48 " Build the bounding boxes of curves 2D\nBounding boxes 2D" -END - -STRINGTABLE -BEGIN - ID_BUTTON_Test_49 " Build the bounding boxes of curves 3D\nBounding boxes 3D" - ID_BUTTON_Test_50 " Build the bounding boxes of surface 3D\nBounding boxes 3D" - ID_BUTTON_Test_51 " " - ID_Create_Sol "Create a surface from a set of points\nSurface from points" - ID_BUTTON_Simplify "Simplification of shape\nSimplification" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#define _AFX_NO_SPLITTER_RESOURCES -#define _AFX_NO_OLE_RESOURCES -#define _AFX_NO_TRACKER_RESOURCES -#define _AFX_NO_PROPERTY_RESOURCES - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE 9, 1 -#pragma code_page(1252) -#endif -#include "afxres.rc" // Standard components -#endif -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/samples/mfc/standard/01_Geometry/res/Toolbar1.bmp b/samples/mfc/standard/01_Geometry/res/Toolbar1.bmp deleted file mode 100755 index 8ee4f4319d7256b893a479354a641532edcf62b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3358 zcmcJRv5q7)5QcpcQtNg>#}g3q9OS%D2e>Al{0~o0l6d%Oh$j74>OWyPEaTlG{U5@!>z@{1EgAn6q~>p(q0Xlmc0X%kJRWCp=EXMYD7H|G&pM1g7eq{{s3}#`WZP!9IFjHM%1ESu z!Om{)Wd>~vOZ&e zBf>7ljBb>_f~%}gcTGd7m;FX|D}SuK?ZdhBD=r6=6(WhjwBQ1fMuKaV@;tgv zy^ts&gsO2VR#64m5or**dLEUooRh$@8_}!vl8Pv+8L&pdxPDFP1HNC1OJ}7nJ?#@()WLg%H}XG?l+%t*euT-E_7?NVz1B=@8x^3a?eXj?0GTcDmt3h5LDi-(TktqVvVc_AnuKJAL8q<*|VCyrU(LD z{H4^k_7yHqy2-TO0SGk^Ln^WOopka3lG*F3ilpumxjsTf(=>ykDYg5s^9mFPa%R{a zm2_^E41MVM{RQXE?<@(|8;sb6|6H$SK?NXxIMmY!pS4`6-!XXcy}`;SZS2pe;Np|3 z*11ml0wXra8q%6onNafDs@;_6bs_pCUlY?e|>_7+69c7Jdst@N_O_F;%+3V7724c%gT4 zzH=@q$rC%x(v~iH{|_&DHGlr~X-g;u(bshiR z-CYpgOuNU&N2mnP{_mcjHRIt=EMBRNu}y;ZFPCM#%+q>R=PQG0dQIWdX1a)YDgXVt zA3VzMwUDl&92n_^#gcSRDUWH%J0uv_G>4RdwUS?iuleAGKgPV)B3R-Vt=0ptPs1RN z61~3akD8|v_RUX9Hye#_7Wx&qNb~mKbzgxxdVy6FAMIE|z>|qYAdLzB4GUa?MjpM@ z3;9ct^;zRYdLfzD(vO3{tS8@Hz_1k}0U|rcy8cl5tp%k&AEl1ppf{U`hRc~dd{Xc| zdbn(dO>pFIvPT6FrqS>Z`+zfwB_-ZFl?!F3QG^pNv?5z@^x6&b`4@HJgp5ih^D3ps zgJHUJAA7vBTcS7L4-HooqNR4*w)Tk_3d2))kV_>B0e7$Yt#QSX ziv3T6fuS%48XF2%)pEUxaKvuRxa3d40M~QAm>X9FE;Ft%(-VaICN`o#VEOt#JPiKyn(h~z*k}+H3I!Q0~VZL8E#r=947mkYTaIAWzGhT}8CR|D9 zP`JJeS;SPY`?X%O)hK==AJd?ExzEq_A`E>`)}fxKsnrWhaMi}60tn*0?*Wss7;(E_ zT1cVd!d4d)jsr`Ve={1cL<Xcs)#B&^}_+xp$z^!?U`d6 z?Xd`#qT*_WOU+#w=^XZIYp4mA6~`V)y>BOHEl~Vx@8rz565Yj>7jXpo3TV(sK;nC# zv8@!(s+Z59gV?2&=YFW5GDfZh65mA;m|iwqUKp3MH!c8>R8H6WHB-crM2Vuz1v{}K zpc_ZrH*o;1&L8bC!pMwu#f7~Y9eqAhOUHuS?K#~CJwqv$`$jGpGjOS5%-=69(@y>! zGGyYhSJKtz8+Ct#%yIVQ1}Z)guA^`{6`^B4blL&Jf)N*N!IiT+KlS1ISlzaK&gy}L z4zkPfy_b(|vCjFlP~ENvesJh)XavDy{k>r(!ono;$fbvFm?sBE3FZ!hE)5M_`u;1M z?iwy08HHzniRJxC42BQl3RlFTD`CzkatH-&4K#^rcc8tdXW2La7E?vM7@;PC3rOI}r;r3%T&k}FTC>J}Qb!Ci`dYiwww&i*QUQl{Sz{V* rwJVjkkczA2{cEaLjjda(>WpoFZOqQ*$!l7Thm)84(-LnA|A+nri@%*Y diff --git a/samples/mfc/standard/01_Geometry/res/resource.h b/samples/mfc/standard/01_Geometry/res/resource.h deleted file mode 100755 index 47fbc8a31e..0000000000 --- a/samples/mfc/standard/01_Geometry/res/resource.h +++ /dev/null @@ -1,84 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Geometry.rc -// -#define IDOK2 3 -#define IDR_TYPE 18 -#define IDR_Samples2DTYPE 130 -#define IDR_Samples3DCollectorTYPE 133 -#define IDR_CHILD2D 139 -#define IDR_MAINFRAME2 141 -#define ID_BUTTON_Test_1 800 -#define ID_BUTTON_Test_2 801 -#define ID_BUTTON_Test_3 802 -#define ID_BUTTON_Test_4 803 -#define ID_BUTTON_Test_5 804 -#define ID_BUTTON_Test_6 805 -#define ID_BUTTON_Test_7 806 -#define ID_BUTTON_Test_8 807 -#define ID_BUTTON_Test_9 808 -#define ID_BUTTON_Test_10 809 -#define ID_BUTTON_Test_23 810 -#define ID_BUTTON_Test_22 811 -#define ID_BUTTON_Test_32 812 -#define ID_BUTTON_Test_11 813 -#define ID_BUTTON_Test_12 814 -#define ID_BUTTON_Test_13 815 -#define ID_BUTTON_Test_14 816 -#define ID_BUTTON_Test_15 817 -#define ID_BUTTON_Test_16 818 -#define ID_BUTTON_Test_17 819 -#define ID_BUTTON_Test_18 820 -#define ID_BUTTON_Test_19 821 -#define ID_BUTTON_Test_20 822 -#define ID_BUTTON_Test_21 823 -#define ID_BUTTON_Test_24 824 -#define ID_BUTTON_Test_25 825 -#define ID_BUTTON_Test_26 826 -#define ID_BUTTON_Test_27 827 -#define ID_BUTTON_Test_28 828 -#define ID_BUTTON_Test_29 829 -#define ID_BUTTON_Test_30 830 -#define ID_BUTTON_Test_31 831 -#define ID_BUTTON_Test_33 832 -#define ID_BUTTON_Test_34 833 -#define ID_BUTTON_Test_35 834 -#define ID_BUTTON_Test_36 835 -#define ID_BUTTON_Test_37 836 -#define ID_BUTTON_Test_38 837 -#define ID_BUTTON_Test_39 838 -#define ID_BUTTON_Test_40 839 -#define ID_BUTTON_Test_41 840 -#define ID_BUTTON_Test_42 841 -#define ID_BUTTON_Test_43 842 -#define ID_BUTTON_Test_44 843 -#define ID_BUTTON_Test_45 844 -#define ID_BUTTON_Test_46 845 -#define ID_BUTTON_Test_47 846 -#define ID_BUTTON_Test_48 847 -#define ID_BUTTON_Test_49 848 -#define ID_BUTTON_Test_50 849 -#define ID_BUTTON_Test_51 850 -#define ID_HI 853 -#define ID_Create_Sol 854 -#define ID_BUTTON855 855 -#define ID_BUTTON_Simplify 855 -#define ID_BUTTONGridRectLines 40030 -#define ID_BUTTONGridRectPoints 40031 -#define ID_BUTTONGridCircLines 40032 -#define ID_BUTTONGridCircPoints 40033 -#define ID_BUTTONGridValues 40034 -#define ID_BUTTONGridCancel 40035 -#define ID_WINDOW_NEW2D 40150 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 156 -#define _APS_NEXT_COMMAND_VALUE 856 -#define _APS_NEXT_CONTROL_VALUE 1003 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/samples/mfc/standard/01_Geometry/src/ChildFrm.cpp b/samples/mfc/standard/01_Geometry/src/ChildFrm.cpp deleted file mode 100755 index 237dbe561b..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ChildFrm.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// ChildFrm.cpp : implementation of the CChildFrame class -// - -#include "stdafx.h" -#include "GeometryApp.h" - -#include "ChildFrm.h" - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame - -IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) - -BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) - //{{AFX_MSG_MAP(CChildFrame) - ON_WM_CREATE() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame construction/destruction - -CChildFrame::CChildFrame() -{ - // TODO: add member initialization code here - -} - -CChildFrame::~CChildFrame() -{ -} - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame diagnostics - -#ifdef _DEBUG -void CChildFrame::AssertValid() const -{ - CMDIChildWnd::AssertValid(); -} - -void CChildFrame::Dump(CDumpContext& dc) const -{ - CMDIChildWnd::Dump(dc); -} - -#endif //_DEBUG - -void CChildFrame::ActivateFrame(int nCmdShow) -{ - // TODO: Add your specialized code here and/or call the base class - - static BOOL first=true; - if(first){ - first=false; - CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); - return; - } - /* - POSITION pos=AfxGetApp()->GetFirstDocTemplatePosition(); - CDocTemplate* DocT=AfxGetApp()->GetNextDocTemplate(pos); - POSITION p=DocT->GetFirstDocPosition(); - DocT->GetNextDoc(p); - if(p==NULL) - nCmdShow = SW_SHOWMAXIMIZED; - */ - CMDIChildWnd::ActivateFrame(nCmdShow); -} - -int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) -{ - if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) - return -1; - - if (!m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_3dCHILDFRAME)) - { - TRACE0("Failed to create toolbar\n"); - return -1; // fail to create - } - - m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); - m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); - EnableDocking(CBRS_ALIGN_ANY); - DockControlBar(&m_wndToolBar); - - return 0; -} - -BOOL CChildFrame::DestroyWindow() -{ - // TODO: Add your specialized code here and/or call the base class - - return CMDIChildWnd::DestroyWindow(); -} diff --git a/samples/mfc/standard/01_Geometry/src/ChildFrm.h b/samples/mfc/standard/01_Geometry/src/ChildFrm.h deleted file mode 100755 index 85b38d511c..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ChildFrm.h +++ /dev/null @@ -1,40 +0,0 @@ -// ChildFrm.h : interface of the CChildFrame class -// -///////////////////////////////////////////////////////////////////////////// -#if !defined(AFX_ChildFrame_H__338883C5_510A_11D1_A4A8_00C04FB15CA3__INCLUDED_) -#define AFX_ChildFrame_H__338883C5_510A_11D1_A4A8_00C04FB15CA3__INCLUDED_ - -#include - -class CChildFrame : public OCC_BaseChildFrame -{ - DECLARE_DYNCREATE(CChildFrame) -public: - CChildFrame(); - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CChildFrame) -public: - virtual void ActivateFrame(int nCmdShow = -1); - virtual BOOL DestroyWindow(); - //}}AFX_VIRTUAL - - // Implementation -public: - virtual ~CChildFrame(); -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - - // Generated message map functions -protected: - //{{AFX_MSG(CChildFrame) - afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// -#endif// MainFrm.cpp : implementation of the CMainFrame class diff --git a/samples/mfc/standard/01_Geometry/src/ChildFrm2d.cpp b/samples/mfc/standard/01_Geometry/src/ChildFrm2d.cpp deleted file mode 100755 index a26eecba61..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ChildFrm2d.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// ChildFrm2D.cpp : implementation of the CChildFrame2D class/ - -#include "stdafx.h" -#include "ChildFrm2d.h" -#include "GeometryApp.h" - -IMPLEMENT_DYNCREATE(CChildFrame2D, CMDIChildWnd) - -BEGIN_MESSAGE_MAP(CChildFrame2D, CMDIChildWnd) - //{{AFX_MSG_MAP(CChildFrame2D) - ON_WM_CREATE() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -static UINT indicators[] = -{ - ID_SEPARATOR, // status line indicator - ID_INDICATOR_CAPS, - ID_INDICATOR_NUM, - ID_INDICATOR_SCRL, -}; - - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame2D construction/destruction - -CChildFrame2D::CChildFrame2D() -{ - // TODO: add member initialization code here - -} - -CChildFrame2D::~CChildFrame2D() -{ -} - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame2D diagnostics - -#ifdef _DEBUG -void CChildFrame2D::AssertValid() const -{ - CMDIChildWnd::AssertValid(); -} - -void CChildFrame2D::Dump(CDumpContext& dc) const -{ - CMDIChildWnd::Dump(dc); -} - -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CChildFrame2D message handlers - -int CChildFrame2D::OnCreate(LPCREATESTRUCT lpCreateStruct) -{ - - if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1) - return -1; - - if (!m_wndToolBar.Create(this) || - !m_wndToolBar.LoadToolBar(IDR_2dCHILDFRAME)) - { - TRACE0("Failed to create toolbar\n"); - return -1; // fail to create - } - - // TODO: Remove this if you don't want tool tips or a resizeable toolbar - m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | - CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); - - // TODO: Delete these three lines if you don't want the toolbar to - // be dockable - m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); - EnableDocking(CBRS_ALIGN_ANY); - DockControlBar(&m_wndToolBar); - - return 0; - -} - - -void CChildFrame2D::ActivateFrame(int nCmdShow) -{ - // TODO: Add your specialized code here and/or call the base class - - CMDIChildWnd::ActivateFrame(nCmdShow); -} diff --git a/samples/mfc/standard/01_Geometry/src/ChildFrm2d.h b/samples/mfc/standard/01_Geometry/src/ChildFrm2d.h deleted file mode 100755 index 525912f9fc..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ChildFrm2d.h +++ /dev/null @@ -1,46 +0,0 @@ -// ChildFrm.h : interface of the CChildFrame2D class -// -///////////////////////////////////////////////////////////////////////////// -#if !defined(AFX_ChildFrame2D_H__338883C5_510A_11D1_A4A8_00C04FB15CA3__INCLUDED_) -#define AFX_ChildFrame2D_H__338883C5_510A_11D1_A4A8_00C04FB15CA3__INCLUDED_ - -#include - -class CChildFrame2D : public OCC_BaseChildFrame -{ - DECLARE_DYNCREATE(CChildFrame2D) -public: - CChildFrame2D(); - - // Attributes -public: - - // Operations -public: - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CChildFrame2D) -public: - virtual void ActivateFrame(int nCmdShow = -1); - //}}AFX_VIRTUAL - - // Implementation -public: - virtual ~CChildFrame2D(); -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - - // Generated message map functions -protected: - //CToolBar m_wndToolBar; - //{{AFX_MSG(CChildFrame2D) - afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// -#endif diff --git a/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.cxx b/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.cxx deleted file mode 100755 index bcbc40ee43..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.cxx +++ /dev/null @@ -1,171 +0,0 @@ -// File: GeoAlgo_Sol.cxx -// Created: Mon Dec 15 16:32:27 1997 -// Author: Cascade_Manager -// - -#include "stdafx.h" - -#include "GeoAlgo_Sol.hxx" - -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include - -#include - -#include - - - -//============================================================================= -// Empty constructor -//============================================================================= -GeoAlgo_Sol::GeoAlgo_Sol():myIsDone(Standard_False) -{ - -} - - - -//============================================================================= -// Constructor with a file name -//============================================================================= -GeoAlgo_Sol::GeoAlgo_Sol(const Standard_CString aGroundName) -{ - myGround = Read(aGroundName); - // if an error occurs in the construction the method IsDone - // returns False. -} - - - -//============================================================================= -// Build(File) -// Build method from an empty object -//============================================================================= -void GeoAlgo_Sol::Build(const Standard_CString aGroundName) -{ - myGround = Read(aGroundName); - // if an error occurs in the construction the method IsDone - // returns False. -} - -//============================================================================= -// Build(Sequence of Points) -// Build method from an empty object -// Called also from the Builde method from a file -//============================================================================= -void GeoAlgo_Sol::Build(const TColgp_SequenceOfXYZ& seqOfXYZ) -{ - // Build the surface: - // points are projected on plane z = 0 - // the projection vector for each point is computed - // These data give the input constraints loaded into plate algorithm - - myIsDone = Standard_True; - Standard_Integer nbPnt = seqOfXYZ.Length(); - Standard_Integer i; - - //Filling plate - Plate_Plate myPlate; - std::cout<<" * Number of points = "<< nbPnt << std::endl; - for (i=1; i<= nbPnt; i++) { - gp_Pnt ptProj(seqOfXYZ.Value(i).X(), seqOfXYZ.Value(i).Y(), 0. ); - gp_Vec aVec( ptProj, seqOfXYZ.Value(i)); - gp_XY pntXY(seqOfXYZ.Value(i).X(),seqOfXYZ.Value(i).Y()); - Plate_PinpointConstraint PCst( pntXY,aVec.XYZ() ); - myPlate.Load(PCst);// Load plate - } - myPlate.SolveTI(2, 1.);// resolution - if (!myPlate.IsDone()) { - std::cout<<" plate computation has failed"<< std::endl; - myIsDone=Standard_False; - } - -// Computation of plate surface - gp_Pnt Or(0,0,0.); - gp_Dir Norm(0., 0., 1.); - Handle(Geom_Plane) myPlane = - new Geom_Plane(Or, Norm);// Plane of normal Oz - Handle(GeomPlate_Surface) myPlateSurf = - new GeomPlate_Surface( myPlane, myPlate);//plate surface - - GeomPlate_MakeApprox aMKS(myPlateSurf, Precision::Approximation(), 4, 7, 0.001, 0);//bspline surface - myGround = aMKS.Surface(); - // if an error occurs in the construction the method IsDone - // returns False. -} - - -//============================================================================= -// Surface() -// Returns the resulting surface as a bspline surface -//============================================================================= -Handle(Geom_BSplineSurface) GeoAlgo_Sol::Surface() const -{ - return myGround; -} - - - -//============================================================================ -// IsDone() -// Checks the construction of the surface -//============================================================================ -Standard_Boolean GeoAlgo_Sol::IsDone() const -{ -// Returns True if the construction successes, False otherwise - return myIsDone; -} - - - -//============================================================================= -// Read(File) -// Private method called from constructor -//============================================================================= -Handle(Geom_BSplineSurface) GeoAlgo_Sol::Read(const Standard_CString aGroundName) -{ - // This methods read a file of points ans build a surface using plate algorithm - - myIsDone = Standard_True; - Standard_Integer nbPnt=0; - - // Read points from the file - std::filebuf fic; - std::istream in(&fic); - - if (!fic.open(aGroundName,std::ios::in)){ - std::cout << " impossible to open a file : "<> x && in >> y && in >> z){ - pntXYZ.SetX(x); - pntXYZ.SetY(y); - pntXYZ.SetZ(z); - nbPnt++; - seqOfXYZ.Append(pntXYZ); - } - } - fic.close(); - Build(seqOfXYZ); - return myGround; -} diff --git a/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.hxx b/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.hxx deleted file mode 100755 index 4fb5ee5fdb..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeoAlgo_Sol.hxx +++ /dev/null @@ -1,71 +0,0 @@ -// File generated by CPPExt (Value) -// Copyright (C) 1991,1995 by -// -// MATRA DATAVISION, FRANCE -// -// This software is furnished in accordance with the terms and conditions -// of the contract and with the inclusion of the above copyright notice. -// This software or any other copy thereof may not be provided or otherwise -// be made available to any other person. No title to an ownership of the -// software is hereby transferred. -// -// At the termination of the contract, the software and all copies of this -// software must be deleted. - -#ifndef _GeoAlgo_Sol_HeaderFile -#define _GeoAlgo_Sol_HeaderFile - -#ifndef _Geom_BSplineSurface_HeaderFile -#include -#endif -#ifndef _Standard_Boolean_HeaderFile -#include -#endif -#ifndef _Standard_CString_HeaderFile -#include -#endif -#include - -class Geom_BSplineSurface; - - -#ifndef _Standard_Macro_HeaderFile -#include -#endif - -class GeoAlgo_Sol -{ - -public: - - // Methods PUBLIC - // - Standard_EXPORT GeoAlgo_Sol(); - Standard_EXPORT GeoAlgo_Sol(const Standard_CString aGroundName); - Standard_EXPORT void Build(const Standard_CString aGroundName) ; - Standard_EXPORT void Build(const TColgp_SequenceOfXYZ& aSeqofPoints) ; - Standard_EXPORT Handle(Geom_BSplineSurface) Surface() const; - Standard_EXPORT Standard_Boolean IsDone() const; - -private: - - // Methods PRIVATE - // -Standard_EXPORT Handle(Geom_BSplineSurface) Read(const Standard_CString aGroundName) ; - - // Fields PRIVATE - // -Handle(Geom_BSplineSurface) myGround; -Standard_Boolean myIsDone; - -}; - - - - - -// other inline functions and methods (like "C++: function call" methods) -// - - -#endif diff --git a/samples/mfc/standard/01_Geometry/src/GeomSources.cpp b/samples/mfc/standard/01_Geometry/src/GeomSources.cpp deleted file mode 100755 index eab054b3a9..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeomSources.cpp +++ /dev/null @@ -1,4178 +0,0 @@ -// GeomSources.cpp: implementation of the GeomSources class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "GeomSources.h" -#include "GeometryApp.h" -#include "MainFrm.h" -#include -#include - -GeomSources::GeomSources() -{ -} - -GeomSources::~GeomSources() -{ -} -void GeomSources::PreProcess(CGeometryDoc* aDoc,DisplayType aDisplayType) -{ - if (aDisplayType == No2D3D ) - { - aDoc->GetAISContext()->EraseAll (Standard_True); - aDoc->Put3DOnTop(); - } - - if (aDisplayType == a2DNo3D) - { - aDoc->GetISessionContext()->EraseAll (Standard_True); - aDoc->Put2DOnTop(); - } - - if (aDisplayType != No2D3D && aDisplayType != a2D3D) - { - aDoc->Minimize3D(); - } - - if (aDisplayType != a2DNo3D && aDisplayType != a2D3D) - { - aDoc->Minimize2D(); - } - - if (aDisplayType == a2D3D) - { - aDoc->GetAISContext()->EraseAll (Standard_True); - aDoc->GetISessionContext()->EraseAll (Standard_True); - aDoc->Put3DOnTop(false); - aDoc->Put2DOnTop(false); - - // both on top - // send the message Title Horizontally to the child of doc main frame - CGeometryApp* TheAppli = (CGeometryApp*)AfxGetApp(); - CMainFrame* TheMainFrame= (CMainFrame*)TheAppli->m_pMainWnd; - ::SendMessage(TheMainFrame->m_hWndMDIClient, WM_MDITILE, 0, 0); - } -} - -void GeomSources::PostProcess (CGeometryDoc* aDoc, UINT anID, DisplayType aDisplayType, - const TCollection_AsciiString& theString, Standard_Boolean UpdateViewer, Standard_Real Coef) -{ - Standard_CString aString = theString.ToCString(); - if (UpdateViewer) - { - if (aDisplayType == No2D3D || aDisplayType == a2D3D) - { - aDoc->Fit3DViews(Coef); - } - - if (aDisplayType == a2DNo3D || aDisplayType == a2D3D) - { - aDoc->Fit2DViews(); - } - } - - TCollection_AsciiString Message("Results are "); - - switch (aDisplayType) - { - case No2DNo3D: Message = "All results are in this box \n"; - break; - case No2D3D: Message += "only in 3D \n"; - break; - case a2DNo3D: Message += "only in 2d \n"; - break; - case a2D3D: Message += "in both 2D and 3D \n"; - break; - } - Message += "====================================\n"; - Message += aString; - - CString text(Message.ToCString()); - aDoc->myCResultDialog.SetText(text); - - CString s; - if (! s.LoadString( anID )) - AfxMessageBox (L"Error Loading String: "); - - CString Title = s.Left( s.Find( '\n' )); - - aDoc->myCResultDialog.SetTitle(Title); - aDoc->SetTitle(Title); -} - -void GeomSources::AddSeparator(CGeometryDoc* /*aDoc*/,TCollection_AsciiString& aMessage) -{ - aMessage+= "------------------------------------------------------------------------\n"; -} -void GeomSources::DisplayPoint (CGeometryDoc* theDoc, - const gp_Pnt2d& thePoint, - const char* theText, - Standard_Boolean theToUpdateViewer, - Standard_Real theXoffset, - Standard_Real theYoffset, - Standard_Real theTextScale) -{ - Handle(ISession_Point) aGraphicPoint = new ISession_Point (thePoint); - theDoc->GetISessionContext()->Display (aGraphicPoint, Standard_False); - - Handle(AIS_TextLabel) aLabel = new AIS_TextLabel(); - aLabel->SetText (theText); - aLabel->SetPosition (gp_Pnt (thePoint.X() + theXoffset, thePoint.Y() + theYoffset, 0.0)); - //aLabel->SetHeight (theTextScale); - (void )theTextScale; - theDoc->GetISessionContext()->Display (aLabel, theToUpdateViewer); -} - -void GeomSources::DisplayPoint (CGeometryDoc* theDoc, - const gp_Pnt& thePoint, - const char* theText, - Standard_Boolean theToUpdateViewer, - Standard_Real theXoffset, - Standard_Real theYoffset, - Standard_Real theZoffset, - Standard_Real theTextScale) -{ - Handle(ISession_Point) aGraphicPoint = new ISession_Point (thePoint); - theDoc->GetAISContext()->Display (aGraphicPoint, Standard_False); - - Handle(AIS_TextLabel) aLabel = new AIS_TextLabel(); - aLabel->SetText (theText); - aLabel->SetPosition (gp_Pnt (thePoint.X() + theXoffset, thePoint.Y() + theYoffset, thePoint.Z() + theZoffset)); - //aLabel->SetHeight (theTextScale); - (void )theTextScale; - theDoc->GetAISContext()->Display (aLabel, theToUpdateViewer); -} - -void GeomSources::DisplayCurve(CGeometryDoc* aDoc, - Handle(Geom2d_Curve) aCurve, - Standard_Integer aColorIndex, - Standard_Boolean UpdateViewer) -{ - Handle(ISession2D_Curve) aGraphicCurve = new ISession2D_Curve(aCurve); - aGraphicCurve->SetColorIndex(aColorIndex) ; - aDoc->GetISessionContext()->Display(aGraphicCurve,UpdateViewer); -} - -void GeomSources::DisplayCurveAndCurvature(CGeometryDoc* aDoc, - Handle(Geom2d_Curve) aCurve, - Standard_Integer aColorIndex, - Standard_Boolean UpdateViewer) -{ - Handle(ISession2D_Curve) aGraphicCurve = new ISession2D_Curve(aCurve); - aGraphicCurve->SetDisplayCurbure(Standard_True) ; - aGraphicCurve->SetDiscretisation(20); - aGraphicCurve->SetColorIndex(aColorIndex) ; - aDoc->GetISessionContext()->Display(aGraphicCurve,UpdateViewer); -} - -void GeomSources::DisplayCurve (CGeometryDoc* theDoc, - Handle(Geom_Curve) theCurve, - Quantity_NameOfColor theNameOfColor, - Standard_Boolean theToUpdateViewer) -{ - Handle(ISession_Curve) aGraphicCurve = new ISession_Curve (theCurve); - aGraphicCurve->Attributes()->SetLineAspect (new Prs3d_LineAspect (theNameOfColor, Aspect_TOL_SOLID, 1.0)); - theDoc->GetAISContext()->Display (aGraphicCurve, theToUpdateViewer); -} - -void GeomSources::DisplayCurve(CGeometryDoc* aDoc, - Handle(Geom_Curve) aCurve, - Standard_Boolean UpdateViewer) -{ - Handle(ISession_Curve) aGraphicCurve = new ISession_Curve(aCurve); - aDoc->GetAISContext()->Display(aGraphicCurve,UpdateViewer); -} - -void GeomSources::DisplaySurface (CGeometryDoc* theDoc, - Handle(Geom_Surface) theSurface, - Quantity_NameOfColor theNameOfColor, - Standard_Boolean theToUpdateViewer) -{ - const Handle(AIS_InteractiveContext)& aCtx = theDoc->GetAISContext(); - Handle(Prs3d_ShadingAspect) aShadeAspect = new Prs3d_ShadingAspect(); - Handle(Prs3d_LineAspect) aLineAspect = new Prs3d_LineAspect (theNameOfColor, Aspect_TOL_SOLID, 1.0); - Handle(Prs3d_IsoAspect) anIsoAspect = new Prs3d_IsoAspect (theNameOfColor, Aspect_TOL_SOLID, 1.0, - aCtx->DefaultDrawer()->UIsoAspect()->Number()); - aShadeAspect->SetColor (theNameOfColor); - - Handle(ISession_Surface) aGraphicalSurface = new ISession_Surface (theSurface); - const Handle(Prs3d_Drawer)& aDrawer = aGraphicalSurface->Attributes(); - aDrawer->SetShadingAspect (aShadeAspect); - aDrawer->SetLineAspect (aLineAspect); - aDrawer->SetFreeBoundaryAspect (aLineAspect); - aDrawer->SetUIsoAspect (anIsoAspect); - aDrawer->SetVIsoAspect (anIsoAspect); - aCtx->Display (aGraphicalSurface, theToUpdateViewer); -} - -void GeomSources::DisplaySurface(CGeometryDoc* aDoc, - Handle(Geom_Surface) aSurface, - Standard_Boolean UpdateViewer) -{ - Handle(ISession_Surface) aGraphicalSurface = new ISession_Surface(aSurface); - aDoc->GetAISContext()->Display(aGraphicalSurface,UpdateViewer); -} - -void GeomSources::ResetView(CGeometryDoc* aDoc) -{ - Handle(V3d_View) aView = aDoc->GetAISContext()->CurrentViewer()->ActiveViews().First(); - aView->Reset(); -} - -// Function name : GeomSources::gpTest1 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest1(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_XYZ A(1,2,3); - gp_XYZ B(2,2,2); - gp_XYZ C(3,2,3); - Standard_Real result = A.DotCross(B,C); - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ -gp_XYZ A(1,2,3); \n\ -gp_XYZ B(2,2,2); \n\ -gp_XYZ C(3,2,3); \n\ -Standard_Real result = A.DotCross(B,C); \n\ - \n"); - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - - DisplayPoint(aDoc,gp_Pnt(A),"A (1,2,3)",false,0.1); - DisplayPoint(aDoc,gp_Pnt(B),"B (2,2,2)",false,0.1); - DisplayPoint(aDoc,gp_Pnt(C),"C (3,2,3)",false,0.1); - -// to add a numeric value in a TCollectionAsciiString - TCollection_AsciiString Message2 (result); - - Message+= " result = "; - Message+= Message2; - PostProcess(aDoc,ID_BUTTON_Test_1,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest2 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest2(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt P1(1,2,3); - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ -gp_Pnt P1(1,2,3); \n\ - \n"); - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - DisplayPoint(aDoc,P1,"P1 (1,2,3)",false,30); - PostProcess(aDoc,ID_BUTTON_Test_2,TheDisplayType,Message,Standard_False); - ResetView(aDoc); -} - - -// Function name : GeomSources::gpTest3 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest3(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_XYZ A(1,2,3); - gp_Pnt P2(A); - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ -gp_XYZ A(1,2,3); \n\ -gp_Pnt P2(A); \n\ - \n"); - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - DisplayPoint(aDoc,P2,"P2 (1,2,3)",false,30); - PostProcess(aDoc,ID_BUTTON_Test_3,TheDisplayType,Message,Standard_False); - ResetView(aDoc); -} - - -// Function name : GeomSources::gpTest4 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest4(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt P3 = gp::Origin(); - Standard_Real TheX = P3.X(); - Standard_Real TheY = P3.Y(); - Standard_Real TheZ = P3.Z(); - - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ -gp_Pnt P3 = gp::Origin(); \n\ -Standard_Real TheX = P3.X(); \n\ -Standard_Real TheY = P3.Y(); \n\ -Standard_Real TheZ = P3.Z(); \n\ - \n"); - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - DisplayPoint(aDoc,P3,"P3 = gp::Origin()",false,30); - - TCollection_AsciiString Message2 (TheX); - TCollection_AsciiString Message3 (TheY); - TCollection_AsciiString Message4 (TheZ); - - Message += " TheX = "; - Message += Message2; - Message += " TheY = "; - Message += Message3; - Message += " TheZ = "; - Message4 = TheZ; - Message += Message4; - - PostProcess(aDoc,ID_BUTTON_Test_4,TheDisplayType,Message,Standard_False); - ResetView(aDoc); -} - - -// Function name : GeomSources::gpTest5 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest5(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt P1(1,2,3); - gp_Pnt P2(3,4,5); - gp_Pnt PB = P1; - Standard_Real alpha = 3; - Standard_Real beta = 7; - PB.BaryCenter(alpha,P2,beta); - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ -gp_Pnt P1(1,2,3); \n\ -gp_Pnt P2(3,4,5); \n\ -gp_Pnt PB = P1; \n\ -Standard_Real alpha = 3; \n\ -Standard_Real beta = 7; \n\ -PB.BaryCenter(alpha,P2,beta); \n\ - \n"); - - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - - DisplayPoint(aDoc,P1,"P1",false,0.2); - DisplayPoint(aDoc,P2,"P2",false,0.2); - DisplayPoint(aDoc,PB,"PB = barycenter ( 3 * P1 , 7 * P2) ",false,0.2); - - TCollection_AsciiString Message2 (PB.X()); - TCollection_AsciiString Message3 (PB.Y()); - TCollection_AsciiString Message4 (PB.Z()); - - Message += " PB ( "; - Message += Message2; - Message += " , "; - Message += Message3; - Message += " , "; - Message += Message4; - Message += " ); "; - PostProcess(aDoc,ID_BUTTON_Test_5,TheDisplayType,Message); -} - - -// Function name : GeomSources::gpTest6 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest6(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - -// Compute a 3d point P as BaryCenter of an array of point - gp_Pnt P1(0,0,5); - gp_Pnt P2(1,2,3); - gp_Pnt P3(2,3,-2); - gp_Pnt P4(4,3,5); - gp_Pnt P5(5,5,4); - TColgp_Array1OfPnt array (1,5); // sizing array - array.SetValue(1,P1); - array.SetValue(2,P2); - array.SetValue(3,P3); - array.SetValue(4,P4); - array.SetValue(5,P5); - - Standard_Real Tolerance = 8; // ajout de la tolerance - GProp_PEquation PE (array,Tolerance); - - gp_Pnt P; // P declaration - Standard_Boolean IsPoint; - - if (PE.IsPoint()) - { - IsPoint = true; - P = PE .Point(); - } - else - { - IsPoint = false; - } - - if (PE.IsLinear()){ /*... */ } - if (PE.IsPlanar()){ /*... */ } - if (PE.IsSpace()) { /*... */ } - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ - \n\ -// Compute a 3d point P as BaryCenter of an array of point \n\ -gp_Pnt P1(0,0,5); \n\ -gp_Pnt P2(1,2,3); \n\ -gp_Pnt P3(2,3,-2); \n\ -gp_Pnt P4(4,3,5); \n\ -gp_Pnt P5(5,5,4); \n\ -TColgp_Array1OfPnt array (1,5); // sizing array \n\ -array.SetValue(1,P1); \n\ -array.SetValue(2,P2); \n\ -array.SetValue(3,P3); \n\ -array.SetValue(4,P4); \n\ -array.SetValue(5,P5); \n\ - \n\ -Standard_Real Tolerance = 8; // ajout de la tolerance \n\ -GProp_PEquation PE (array,Tolerance); \n\ - \n\ -gp_Pnt P; // P declaration \n\ -Standard_Boolean IsPoint; \n\ -if (PE.IsPoint()){IsPoint = true; \n\ - P = PE .Point();} \n\ - else { IsPoint = false; } \n\ -if (PE.IsLinear()){ /*... */ } \n\ -if (PE.IsPlanar()){ /*... */ } \n\ -if (PE.IsSpace()) { /*... */ } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - TCollection_AsciiString PointName("P"); - - - for(Standard_Integer i= array.Lower();i <= array.Upper(); i++) - { - TCollection_AsciiString TheString (i); - TheString = PointName+ TheString; - DisplayPoint(aDoc,array(i),TheString.ToCString(),false,0.5); - } - - DisplayPoint(aDoc,P,"P",false,0.5); - TCollection_AsciiString Message2 (P.X()); - TCollection_AsciiString Message3 (P.Y()); - TCollection_AsciiString Message4 (P.Z()); - - Message += " IsPoint = "; - if (IsPoint) - { - Message += "True --> "; - Message += " P ( "; - - Message += Message2; Message += " , "; - Message += Message3; Message += " , "; - Message += Message4; Message += " ); \n"; - } - else - Message += "False\n"; - - Message += " IsLinear = "; - if (PE.IsLinear()) - Message += "True \n"; - else - Message += "False\n"; - - Message += " IsPlanar = "; - if (PE.IsPlanar()) - Message += "True \n"; - else - Message += "False\n"; - - Message += " IsSpace = "; - if - (PE.IsSpace()) - Message += "True \n"; - else - Message += "False\n"; - - PostProcess(aDoc,ID_BUTTON_Test_6,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest7 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest7(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt2d P1(0,5); - gp_Pnt2d P2(5.5,1); - gp_Pnt2d P3(-2,2); - - Handle(Geom2d_Curve) C = - GCE2d_MakeArcOfCircle (P1,P2,P3).Value(); - - Standard_Real FirstParameter = C->FirstParameter(); - Standard_Real LastParameter = C->LastParameter(); - Standard_Real MiddleParameter = (FirstParameter+LastParameter)/2; - Standard_Real param = MiddleParameter; //in radians - - gp_Pnt2d P; - gp_Vec2d V; - C->D1(param,P,V); -// we recover point P and the vector V - -//============================================================== - TCollection_AsciiString Message ("\ - \n\ - \n\ -gp_Pnt2d P1(0,5); \n\ -gp_Pnt2d P2(5.5,1); \n\ -gp_Pnt2d P3(-2,2); \n\ - \n\ -Handle(Geom2d_TrimmedCurve) C = \n\ - GCE2d_MakeArcOfCircle (P1,P2,P3).Value(); \n\ - \n\ -Standard_Real FirstParameter = C->FirstParameter(); \n\ -Standard_Real LastParameter = C->LastParameter(); \n\ -Standard_Real MiddleParameter = \n\ - (FirstParameter+LastParameter)/2; \n\ -Standard_Real param = MiddleParameter; //in radians \n\ - \n\ -gp_Pnt2d P; \n\ -gp_Vec2d V; \n\ -C->D1(param,P,V); \n\ -// we recover point P and the vector V \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayCurve(aDoc,C); - Handle(ISession_Direction) aDirection = new ISession_Direction(P,V); - aDoc->GetISessionContext()->Display(aDirection, Standard_False); - - DisplayPoint(aDoc,P,"P",false,0.5); - - PostProcess(aDoc,ID_BUTTON_Test_7,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest8 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest8(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - Standard_Real radius = 5; - Handle(Geom2d_Circle) C = - new Geom2d_Circle(gp::OX2d(),radius); - Standard_Real param = 1.2*M_PI; - Geom2dLProp_CLProps2d CLP - (C,param,2,Precision::PConfusion()); - gp_Dir2d D; - CLP.Tangent(D); -// D is the Tangent direction at parameter 1.2*PI - -//============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real radius = 5; \n\ -Handle(Geom2d_Circle) C = \n\ - new Geom2d_Circle(gp::OX2d(),radius); \n\ -Standard_Real param = 1.2*PI; \n\ -Geom2dLProp_CLProps2d CLP \n\ - (C,param,2,Precision::PConfusion()); \n\ - gp_Dir2d D; \n\ -CLP.Tangent(D); \n\ -// D is the Tangent direction at parameter 1.2*PI \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(C); - aDoc->GetISessionContext()->Display(aCurve,Standard_False); - Handle(ISession_Direction) aDirection = new ISession_Direction(gp_Pnt2d(0,0),D,2); - aDoc->GetISessionContext()->Display(aDirection,Standard_False); - - TCollection_AsciiString Message2 (D.X()); - TCollection_AsciiString Message3 (D.Y()); - - Message += " D ( "; - Message += Message2; Message += " , "; - Message += Message3; Message += " ); \n"; - - PostProcess(aDoc,ID_BUTTON_Test_8,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest9 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest9(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - Standard_Real radius = 5; - Handle(Geom2d_Circle) C = - new Geom2d_Circle(gp::OX2d(),radius); - Geom2dAdaptor_Curve GAC (C); - Standard_Real startparam = 10*M_PI/180; - Standard_Real abscissa = 45*M_PI/180; - gp_Pnt2d P1; - C->D0(startparam,P1); - // abscissa is the distance along the curve from startparam - GCPnts_AbscissaPoint AP (GAC, abscissa, startparam); - gp_Pnt2d P2; - if (AP.IsDone()){C->D0(AP.Parameter(),P2);} - // P is now correctly set - - //============================================================== - TCollection_AsciiString Message (" \n\ - \n\ - \n\ -Standard_Real radius = 5; \n\ -Handle(Geom2d_Circle) C = \n\ - new Geom2d_Circle(gp::OX2d(),radius); \n\ -Geom2dAdaptor_Curve GAC (C); \n\ -Standard_Real startparam = 10*PI180; \n\ -Standard_Real abscissa = 45*PI180; \n\ -gp_Pnt2d P1; \n\ -C->D0(startparam,P1); \n\ -// abscissa is the distance along the curve from startparam \n\ -GCPnts_AbscissaPoint AP (GAC, abscissa, startparam); \n\ -gp_Pnt2d P2; \n\ -if (AP.IsDone()){C->D0(AP.Parameter(),P2);} \n\ -// P is now correctly set \n\ - \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(C); - aDoc->GetISessionContext()->Display(aCurve,Standard_False); - - DisplayPoint(aDoc,P1,"P1"); - if (AP.IsDone()) DisplayPoint(aDoc,P2,"P2"); - - TCollection_AsciiString Message2 (P1.X()); - TCollection_AsciiString Message3 (P1.Y()); - - TCollection_AsciiString Message4 (P2.X()); - TCollection_AsciiString Message5 (P2.Y()); - - Message += " P1 ( "; - Message += Message2; Message += " , "; - Message += Message3; Message += " ); \n"; - - Message += " P2 ( "; - Message += Message4; Message += " , "; - Message += Message5; Message += " ); \n"; - PostProcess(aDoc,ID_BUTTON_Test_9,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest10 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest10(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt2d P; - Standard_Real radius = 5; - Handle(Geom2d_Circle) C = - new Geom2d_Circle(gp::OX2d(),radius); - Geom2dAdaptor_Curve GAC (C); - Standard_Real abscissa = 3; - GCPnts_UniformAbscissa UA (GAC,abscissa); - TColgp_SequenceOfPnt2d aSequence; - if (UA.IsDone()) - { - Standard_Real N = UA.NbPoints(); - Standard_Integer count = 1; - for(;count<=N;count++) - { - C->D0(UA.Parameter(count),P); - //Standard_Real Parameter = UA.Parameter(count); - // append P in a Sequence - aSequence.Append(P); - } - } - Standard_Real Abscissa = UA.Abscissa(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P; \n\ -Standard_Real radius = 5; \n\ -Handle(Geom2d_Circle) C = \n\ - new Geom2d_Circle(gp::OX2d(),radius); \n\ -Geom2dAdaptor_Curve GAC (C); \n\ -Standard_Real abscissa = 3; \n\ -GCPnts_UniformAbscissa UA (GAC,abscissa); \n\ -TColgp_SequenceOfPnt2d aSequence; \n\ -if (UA.IsDone()) \n\ - { \n\ - Standard_Real N = UA.NbPoints(); \n\ - Standard_Integer count = 1; \n\ - for(;count<=N;count++) \n\ - { \n\ - C->D0(UA.Parameter(count),P); \n\ - Standard_Real Parameter = UA.Parameter(count); \n\ - // append P in a Sequence \n\ - aSequence.Append(P); \n\ - } \n\ -} \n\ -Standard_Real Abscissa = UA.Abscissa(); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(C); - aDoc->GetISessionContext()->Display(aCurve,Standard_False); - - TCollection_AsciiString aString; - for (Standard_Integer i=1;i<= aSequence.Length();i++) - { - - TCollection_AsciiString Message2 (i); - TCollection_AsciiString Message3 (UA.Parameter(i)); - - aString = "P"; - aString += Message2; - aString +=": Parameter : "; - aString += Message3; - - // First and Last texts are displayed with an Y offset, point 4 is upper - Standard_Real YOffset = -0.3; - YOffset += 0.2 * ( i == 1 ); - YOffset += 0.4 * ( i == 4 ); - YOffset += -0.2 * ( i == aSequence.Length() ); - - DisplayPoint(aDoc,aSequence(i),aString.ToCString(),false,0.5,YOffset,0.04); - } - - TCollection_AsciiString Message3 (Abscissa); - - Message += "Abscissa = "; - Message += Message3; - Message += " \n"; - - PostProcess(aDoc,ID_BUTTON_Test_10,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest11 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest11(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - Standard_Real radius = 5; - Handle(Geom_SphericalSurface) SP = - new Geom_SphericalSurface(gp_Ax3(gp::XOY()),radius); - Standard_Real u = 2; - Standard_Real v = 3; - gp_Pnt P = SP->Value(u,v); - -//============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real radius = 5; \n\ -Handle(Geom_SphericalSurface) SP = \n\ - new Geom_SphericalSurface(gp_Ax3(gp::XOY()),radius); \n\ -Standard_Real u = 2; \n\ -Standard_Real v = 3; \n\ -gp_Pnt P = SP->Value(u,v); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplaySurface(aDoc,SP); - DisplayPoint(aDoc,P,"P",false,0.5); - TCollection_AsciiString Message2 (P.X()); - TCollection_AsciiString Message3 (P.Y()); - - Message += " P ( "; - Message += Message2; - Message += " , "; - Message += Message3; - Message += " ); \n"; - - PostProcess(aDoc,ID_BUTTON_Test_11,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest12 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest12(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt N,Q,P(1,2,3); - Standard_Real distance, radius = 5; - Handle(Geom_Curve) C = new Geom_Circle(gp::XOY(),radius); - GeomAPI_ProjectPointOnCurve PPC (P,C); - N = PPC.NearestPoint(); - Standard_Integer NbResults = PPC.NbPoints(); - - if(NbResults>0) - { - for(Standard_Integer i = 1;i<=NbResults;i++) - { - Q = PPC.Point(i); - distance = PPC.Distance(i); - // do something with Q or distance here - } - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt N,Q,P(1,2,3); \n\ -Standard_Real distance, radius = 5; \n\ -Handle(Geom_Circle) C = new Geom_Circle(gp::XOY(),radius); \n\ -GeomAPI_ProjectPointOnCurve PPC (P,C); \n\ -N = PPC.NearestPoint(); \n\ -Standard_Integer NbResults = PPC.NbPoints(); \n\ - \n\ -if(NbResults>0){ \n\ - for(Standard_Integer i = 1;i<=NbResults;i++){ \n\ - Q = PPC.Point(i); \n\ - distance = PPC.Distance(i); \n\ - // do something with Q or distance here \n\ - } \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); -//-------------------------------------------------------------- - - TCollection_AsciiString aString; - - DisplayPoint(aDoc,P,"P",false,0.5); - - TCollection_AsciiString Message2 (PPC.LowerDistance()); - - aString = "N : at Distance : "; - aString += Message2; - - DisplayPoint(aDoc,N,aString.ToCString(),false,0.5,0,-0.5); - DisplayCurve(aDoc,C,Quantity_NOC_YELLOW,false); - - if(NbResults>0) - { - for(Standard_Integer i = 1;i<=NbResults;i++) - { - Q = PPC.Point(i); - distance = PPC.Distance(i); - TCollection_AsciiString Message3 (i); - TCollection_AsciiString Message4 (distance); - - aString = "Q"; - aString += Message3; - aString +=": at Distance : "; - aString += Message4; - DisplayPoint(aDoc,Q,aString.ToCString(),false,0.5); - } - } - - PostProcess(aDoc,ID_BUTTON_Test_12,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest13 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest13(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt N,Q,P(7,8,9); - Standard_Real distance, radius = 5; - Handle(Geom_SphericalSurface) SP = - new Geom_SphericalSurface(gp_Ax3(gp::XOY()),radius); - GeomAPI_ProjectPointOnSurf PPS(P,SP); - N = PPS.NearestPoint(); - Standard_Integer NbResults = PPS.NbPoints(); - if(NbResults>0) - { - for(Standard_Integer i = 1;i<=NbResults;i++) - { - Q = PPS.Point(i); - distance = PPS.Distance(i); - // do something with Q or distance here - } - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt N,Q,P(7,8,9); \n\ -Standard_Real distance, radius = 5; \n\ -Handle(Geom_SphericalSurface) SP = \n\ - new Geom_SphericalSurface(gp_Ax3(gp::XOY()),radius); \n\ -GeomAPI_ProjectPointOnSurf PPS(P,SP); \n\ -N = PPS.NearestPoint(); \n\ -Standard_Integer NbResults = PPS.NbPoints(); \n\ -if(NbResults>0){ \n\ - for(Standard_Integer i = 1;i<=NbResults;i++){ \n\ - Q = PPS.Point(i); \n\ - distance = PPS.Distance(i); \n\ - // do something with Q or distance here \n\ - } \n\ -} \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - TCollection_AsciiString aString; - - DisplayPoint(aDoc,P,"P",false,0.5); - TCollection_AsciiString Message2 (PPS.LowerDistance()); - - aString = "N : at Distance : "; aString += Message2; - DisplayPoint(aDoc,N,aString.ToCString(),false,0.5,0,-0.6); - - Handle(ISession_Surface) aSurface = new ISession_Surface(SP); - Handle(Prs3d_Drawer) CurDrawer = aSurface->Attributes(); - CurDrawer->SetOwnLineAspects(); - CurDrawer->UIsoAspect()->SetNumber(10); - CurDrawer->VIsoAspect()->SetNumber(10); - aDoc->GetAISContext()->SetLocalAttributes(aSurface, CurDrawer, Standard_False); - aDoc->GetAISContext()->Display(aSurface, Standard_False); - - if(NbResults>0) - { - for(Standard_Integer i = 1;i<=NbResults;i++) - { - - Q = PPS.Point(i); - distance = PPS.Distance(i); - TCollection_AsciiString Message3 (i); - TCollection_AsciiString Message4 (distance); - - aString = "Q"; - aString += Message3; - aString +=": at Distance : "; - aString += Message4; - - DisplayPoint(aDoc,Q,aString.ToCString(),false,0.5); - } - } - PostProcess(aDoc,ID_BUTTON_Test_13,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest14 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest14(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt P; - gp_Ax3 theAxe(gp::XOY()); - gp_Pln PL(theAxe); - Standard_Real MinorRadius = 5; - Standard_Real MajorRadius = 8; - gp_Elips EL (gp::YOZ(),MajorRadius,MinorRadius); - IntAna_IntConicQuad ICQ - (EL,PL,Precision::Angular(),Precision::Confusion()); - if (ICQ.IsDone()){ - Standard_Integer NbResults = ICQ.NbPoints(); - if (NbResults>0){ - for(Standard_Integer i = 1;i<=NbResults;i++){ - P = ICQ.Point(i); - // do something with P here - } - } - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P; \n\ -gp_Pln PL (gp_Ax3(gp::XOY())); \n\ -Standard_Real MinorRadius = 5; \n\ -Standard_Real MajorRadius = 8; \n\ -gp_Elips EL (gp::YOZ(),MajorRadius,MinorRadius); \n\ -IntAna_IntConicQuad ICQ \n\ - (EL,PL,Precision::Angular(),Precision::Confusion()); \n\ -if (ICQ.IsDone()){ \n\ - Standard_Integer NbResults = ICQ.NbPoints(); \n\ - if (NbResults>0){ \n\ - for(Standard_Integer i = 1;i<=NbResults;i++){ \n\ - P = ICQ.Point(i); \n\ - // do something with P here \n\ - } \n\ - } \n\ -} \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - Handle(Geom_Plane) aPlane = GC_MakePlane(PL).Value(); - Handle(Geom_RectangularTrimmedSurface) aSurface= new Geom_RectangularTrimmedSurface(aPlane,-8.,8.,-12.,12.); - - DisplaySurface(aDoc,aSurface); - - Handle(Geom_Curve) anEllips = GC_MakeEllipse(EL).Value(); - DisplayCurve(aDoc,anEllips,Quantity_NOC_YELLOW,false); - - TCollection_AsciiString aString; - - if (ICQ.IsDone()) - { - Standard_Integer NbResults = ICQ.NbPoints(); - if (NbResults>0) - { - for(Standard_Integer i = 1;i<=NbResults;i++) - { - - TCollection_AsciiString Message2(i); - - P = ICQ.Point(i); - aString = "P";aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - } - } - - PostProcess(aDoc,ID_BUTTON_Test_14,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest15 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest15(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt P1(1,2,3); - gp_Pnt P1Copy = P1; - gp_Pnt P2(5,4,6); - gp_Trsf TRSF; - TRSF.SetMirror(P2); - P1Copy.Transform(TRSF); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(1,2,3); \n\ -gp_Pnt P1Copy = P1; \n\ -gp_Pnt P2(5,4,6); \n\ -gp_Trsf TRSF; \n\ -TRSF.SetMirror(P2); \n\ -P1Copy.Transform(TRSF); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,P1Copy,"P1Copy",false,0.5); - DisplayPoint(aDoc,P1,"P1",false,0.5); - DisplayPoint(aDoc,P2,"P2",false,0.5); - - PostProcess(aDoc,ID_BUTTON_Test_15,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest16 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest16(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt P1(1,2,3); - gp_Pnt P2(5,4,6); - gp_Vec V1 (P1,P2); - - gp_Pnt P3(10,4,7); - gp_Pnt P4(2,0,1); - gp_Vec V2 (P3,P4); - - Standard_Boolean result = - V1.IsOpposite(V2,Precision::Angular()); - // result should be true - -//============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(1,2,3); \n\ -gp_Pnt P2(5,4,6); \n\ -gp_Vec V1 (P1,P2); \n\ - \n\ -gp_Pnt P3(10,4,7); \n\ -gp_Pnt P4(2,0,1); \n\ -gp_Vec V2 (P3,P4); \n\ - \n\ -Standard_Boolean result = \n\ -V1.IsOpposite(V2,Precision::Angular()); \n\ -// result should be true \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,P1,"P1",false,0.5); - DisplayPoint(aDoc,P2,"P2",false,0.5); - DisplayPoint(aDoc,P3,"P3",false,0.5); - DisplayPoint(aDoc,P4,"P4",false,0.5); - - Handle(ISession_Direction) aDirection1 = new ISession_Direction(P1,V1); - aDoc->GetAISContext()->Display(aDirection1, Standard_False); - - Handle(ISession_Direction) aDirection2 = new ISession_Direction(P3,V2); - aDoc->GetAISContext()->Display(aDirection2, Standard_False); - - Message += "result = "; - if (result) Message += "True \n"; else Message += "False \n"; - - PostProcess(aDoc,ID_BUTTON_Test_16,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest17 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest17(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Dir D1(1,2,3); - gp_Dir D2(3,4,5); - Standard_Real ang = D1.Angle(D2); - // the result is in radians in the range [0,PI] - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Dir D1(1,2,3); \n\ -gp_Dir D2(3,4,5); \n\ -Standard_Real ang = D1.Angle(D2); \n\ -// the result is in radians in the range [0,PI] \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - Handle(ISession_Direction) aDirection1 = new ISession_Direction(gp_Pnt(0,0,0),D1,3); - aDoc->GetAISContext()->Display(aDirection1, Standard_False); - - Handle(ISession_Direction) aDirection2 = new ISession_Direction(gp_Pnt(0,0,0),D2,3); - aDoc->GetAISContext()->Display(aDirection2, Standard_False); - - std::cout<<" D1.Angle(D2) : "<GetISessionContext()->Display(aDirection,Standard_False); - Handle(Geom2d_Parabola) aParabola = GCE2d_MakeParabola(Para); - Handle(Geom2d_TrimmedCurve) aTrimmedCurve = new Geom2d_TrimmedCurve(aParabola,-100,100); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aTrimmedCurve); - //aCurve->SetColorIndex(3); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - - Message += " The entity A of type gp_Ax22d is not displayable \n "; - Message += " The entity D of type gp_Dir2d is displayed as a vector \n ( mean with a length != 1 ) \n "; - PostProcess(aDoc,ID_BUTTON_Test_18,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest19 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest19(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt P1(2,3,4); - gp_Dir D(4,5,6); - gp_Ax3 A(P1,D); - Standard_Boolean IsDirectA = A.Direct(); - - gp_Dir AXDirection = A.XDirection() ; - gp_Dir AYDirection = A.YDirection() ; - - gp_Pnt P2(5,3,4); - gp_Ax3 A2(P2,D); - A2.YReverse(); - // axis3 is now left handed - Standard_Boolean IsDirectA2 = A2.Direct(); - - gp_Dir A2XDirection = A2.XDirection() ; - gp_Dir A2YDirection = A2.YDirection() ; - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(2,3,4); \n\ -gp_Dir D(4,5,6); \n\ -gp_Ax3 A(P,D); \n\ -Standard_Boolean IsDirectA = A.Direct(); \n\ - \n\ -gp_Dir AXDirection = A.XDirection() ; \n\ -gp_Dir AYDirection = A.YDirection() ; \n\ - \n\ -gp_Pnt P2(5,3,4); \n\ -gp_Ax3 A2(P2,D); \n\ -A2.YReverse(); \n\ -// axis3 is now left handed \n\ -Standard_Boolean IsDirectA2 = A2.Direct(); \n\ - \n\ -gp_Dir A2XDirection = A2.XDirection() ; \n\ -gp_Dir A2YDirection = A2.YDirection() ; \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - // Set style for vector lines - Handle(Prs3d_LineAspect) anAxesAspect = new Prs3d_LineAspect (Quantity_NOC_GREEN, Aspect_TOL_SOLID, 1.0); - - DisplayPoint(aDoc,P1,"P1",false,0.1); - Handle(ISession_Direction) aDirection = new ISession_Direction(P1,D,2); - aDoc->GetAISContext()->Display(aDirection, Standard_False); - - Handle(ISession_Direction) aDirection2 = new ISession_Direction(P1,AXDirection,2); - aDirection2->SetText("A.XDirection"); - aDirection2->SetLineAspect (anAxesAspect); - aDoc->GetAISContext()->Display(aDirection2, Standard_False); - Handle(ISession_Direction) aDirection3 = new ISession_Direction(P1,AYDirection,2); - aDirection3->SetText("A.YDirection"); - aDirection3->SetLineAspect (anAxesAspect); - aDoc->GetAISContext()->Display(aDirection3, Standard_False); - - DisplayPoint(aDoc,P2,"P2",false,0.1); - Handle(ISession_Direction) aDirection4 = new ISession_Direction(P2,D,2); - aDoc->GetAISContext()->Display(aDirection4, Standard_False); - - Handle(ISession_Direction) aDirection5 = new ISession_Direction(P2,A2XDirection,2); - aDirection5->SetText("A2 XDirection"); - aDirection5->SetLineAspect (anAxesAspect); - aDoc->GetAISContext()->Display(aDirection5, Standard_False); - Handle(ISession_Direction) aDirection6 = new ISession_Direction(P2,A2YDirection,2); - aDirection6->SetText("A2 YDirection"); - aDirection6->SetLineAspect (anAxesAspect); - aDoc->GetAISContext()->Display(aDirection6, Standard_False); - - Message += "IsDirectA = "; - if(IsDirectA) - Message += "True = Right Handed \n"; - else - Message += "False = Left Handed \n"; - - Message += "IsDirectA2 = "; - if(IsDirectA2) - Message += "True = Right Handed \n"; - else - Message += "False = Left Handed \n"; - - PostProcess(aDoc,ID_BUTTON_Test_19,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest20 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest20(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt2d array (1,5); // sizing array - array.SetValue(1,gp_Pnt2d (0,0)); - array.SetValue(2,gp_Pnt2d (1,2)); - array.SetValue(3,gp_Pnt2d (2,3)); - array.SetValue(4,gp_Pnt2d (4,3)); - array.SetValue(5,gp_Pnt2d (5,5)); - Handle(Geom2d_BSplineCurve) SPL1 = - Geom2dAPI_PointsToBSpline(array); - - Handle(TColgp_HArray1OfPnt2d) harray = - new TColgp_HArray1OfPnt2d (1,5); // sizing harray - harray->SetValue(1,gp_Pnt2d (7+ 0,0)); - harray->SetValue(2,gp_Pnt2d (7+ 1,2)); - harray->SetValue(3,gp_Pnt2d (7+ 2,3)); - harray->SetValue(4,gp_Pnt2d (7+ 4,3)); - harray->SetValue(5,gp_Pnt2d (7+ 5,5)); - Geom2dAPI_Interpolate anInterpolation(harray,Standard_False,0.01); - anInterpolation.Perform(); - Handle(Geom2d_BSplineCurve) SPL2 = anInterpolation.Curve(); - - Handle(TColgp_HArray1OfPnt2d) harray2 = - new TColgp_HArray1OfPnt2d (1,5); // sizing harray - harray2->SetValue(1,gp_Pnt2d (11+ 0,0)); - harray2->SetValue(2,gp_Pnt2d (11+ 1,2)); - harray2->SetValue(3,gp_Pnt2d (11+ 2,3)); - harray2->SetValue(4,gp_Pnt2d (11+ 4,3)); - harray2->SetValue(5,gp_Pnt2d (11+ 5,5)); - Geom2dAPI_Interpolate anInterpolation2(harray2,Standard_True,0.01); - anInterpolation2.Perform(); - Handle(Geom2d_BSplineCurve) SPL3 = anInterpolation2.Curve(); - // redefined C++ operator allows these assignments - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt2d array (1,5); // sizing array \n\ -array.SetValue(1,gp_Pnt2d (0,0)); \n\ -array.SetValue(2,gp_Pnt2d (1,2)); \n\ -array.SetValue(3,gp_Pnt2d (2,3)); \n\ -array.SetValue(4,gp_Pnt2d (4,3)); \n\ -array.SetValue(5,gp_Pnt2d (5,5)); \n\ -Handle(Geom2d_BSplineCurve) SPL1 = \n\ - Geom2dAPI_PointsToBSpline(array); \n\ - \n\ -Handle(TColgp_HArray1OfPnt2d) harray = \n\ - new TColgp_HArray1OfPnt2d (1,5); // sizing harray \n\ -harray->SetValue(1,gp_Pnt2d (7+ 0,0)); \n\ -harray->SetValue(2,gp_Pnt2d (7+ 1,2)); \n\ -harray->SetValue(3,gp_Pnt2d (7+ 2,3)); \n\ -harray->SetValue(4,gp_Pnt2d (7+ 4,3)); \n\ -harray->SetValue(5,gp_Pnt2d (7+ 5,5)); \n\ -Geom2dAPI_Interpolate anInterpolation(harray,Standard_False,0.01); \n\ -anInterpolation.Perform(); \n\ -Handle(Geom2d_BSplineCurve) SPL2 = anInterpolation.Curve(); \n\ - \n\ -Handle(TColgp_HArray1OfPnt2d) harray2 = \n\ - new TColgp_HArray1OfPnt2d (1,5); // sizing harray \n"); - Message += "\ -harray2->SetValue(1,gp_Pnt2d (11+ 0,0)); \n\ -harray2->SetValue(2,gp_Pnt2d (11+ 1,2)); \n\ -harray2->SetValue(3,gp_Pnt2d (11+ 2,3)); \n\ -harray2->SetValue(4,gp_Pnt2d (11+ 4,3)); \n\ -harray2->SetValue(5,gp_Pnt2d (11+ 5,5)); \n\ -Geom2dAPI_Interpolate anInterpolation2(harray2,Standard_True,0.01); \n\ -anInterpolation2.Perform(); \n\ -Handle(Geom2d_BSplineCurve) SPL3 = anInterpolation2.Curve(); \n\ -// redefined C++ operator allows these assignments \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - TCollection_AsciiString aString; - for(int i = array.Lower();i<=array.Upper();i++) - { - gp_Pnt2d P = array(i); - TCollection_AsciiString Message2 (i); - aString = "array ";aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - for( int i = harray->Lower();i<=harray->Upper();i++) - { - gp_Pnt2d P = harray->Value(i); - TCollection_AsciiString Message2 (i); - aString = "harray ";aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - for( int i = harray2->Lower();i<=harray2->Upper();i++) - { - gp_Pnt2d P = harray2->Value(i); - TCollection_AsciiString Message2 (i); - aString = "harray2 ";aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - - if (!SPL1.IsNull()) - { - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(SPL1); - aCurve->SetColorIndex(3); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - } - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"SPL1.IsNull()", L"CasCade Error", MB_ICONERROR); - - if (!SPL2.IsNull()) - { - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(SPL2); - aCurve2->SetColorIndex(5); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - } - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"SPL2.IsNull()", L"CasCade Error", MB_ICONERROR); - - if (!SPL3.IsNull()) - { - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(SPL3); - aCurve2->SetColorIndex(6); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - } - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"SPL3.IsNull()", L"CasCade Error", MB_ICONERROR); - - Message += " SPL1 is Red \n"; - Message += " SPL2 is Blue \n"; - Message += " SPL3 is Yellow \n"; - - PostProcess(aDoc,ID_BUTTON_Test_20,TheDisplayType,Message); -} - -void GeomSources::gpTest21(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt2d P1(-184, 101); - gp_Pnt2d P2(20 ,84); - Standard_Real aheight = 1; - FairCurve_Batten B (P1,P2,aheight); - B.SetAngle1(22*M_PI/180); - B.SetAngle2(44*M_PI/180); - FairCurve_AnalysisCode anAnalysisCode; - B.Compute(anAnalysisCode); - Handle(Geom2d_BSplineCurve) C = B.Curve(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P1(-184, 101); \n\ -gp_Pnt2d P2(20 ,84); \n\ -Standard_Real aheight = 1; \n\ -FairCurve_Batten B (P1,P2,aheight); \n\ -B.SetAngle1(22*PI180); \n\ -B.SetAngle2(44*PI180); \n\ -FairCurve_AnalysisCode anAnalysisCode; \n\ -B.Compute(anAnalysisCode); \n\ -Handle(Geom2d_BSplineCurve) C = B.Curve(); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayCurveAndCurvature(aDoc,C,6,Standard_False); - - PostProcess(aDoc,ID_BUTTON_Test_21,TheDisplayType,Message); -} - -void GeomSources::gpTest22(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt2d P1(-184, 41); - gp_Pnt2d P2(20 ,24); - Standard_Real aheight = 1; - FairCurve_MinimalVariation MV (P1,P2,aheight); - MV.SetAngle1(22*M_PI/180); - MV.SetAngle2(44*M_PI/180); - - FairCurve_AnalysisCode anAnalysisCode; - MV.Compute(anAnalysisCode); - - Handle(Geom2d_BSplineCurve) C = MV.Curve(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P1(-184, 41); \n\ -gp_Pnt2d P2(20 ,24); \n\ -Standard_Real aheight = 1; \n\ -FairCurve_MinimalVariation MV (P1,P2,aheight); \n\ -MV.SetAngle1(22*PI180); \n\ -MV.SetAngle2(44*PI180); \n\ - \n\ -FairCurve_AnalysisCode anAnalysisCode; \n\ -MV.Compute(anAnalysisCode); \n\ - \n\ -Handle(Geom2d_BSplineCurve) C = MV.Curve(); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayCurveAndCurvature(aDoc,C,7,Standard_False); - DisplayPoint(aDoc,P1,"P1",false,0.5); - DisplayPoint(aDoc,P2,"P2",false,0.5); - - PostProcess(aDoc,ID_BUTTON_Test_22,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest23 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest23(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - Standard_Real major = 12; - Standard_Real minor = 4; - gp_Ax2d axis = gp::OX2d(); - Handle(Geom2d_Ellipse) E = GCE2d_MakeEllipse (axis,major,minor); - Handle(Geom2d_TrimmedCurve) TC = new Geom2d_TrimmedCurve(E,-1,2); - - // The segment goes in the direction Vfrom P1 - // to the point projected on this line by P2 - // In the example (0,6). - Handle(Geom2d_BSplineCurve) SPL = - Geom2dConvert::CurveToBSplineCurve(TC); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real major = 12; \n\ -Standard_Real minor = 4; \n\ -gp_Ax2d axis = gp::OX2d(); \n\ -Handle(Geom2d_Ellipse) E = GCE2d_MakeEllipse (axis,major,minor); \n\ - \n\ -Handle(Geom2d_TrimmedCurve) TC = new Geom2d_TrimmedCurve(E,-1,2); \n\ - \n\ -// The segment goes in the direction Vfrom P1 \n\ -// to the point projected on this line by P2 \n\ -// In the example (0,6). \n\ -Handle(Geom2d_BSplineCurve) SPL = \n\ - Geom2dConvert::CurveToBSplineCurve(TC); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(E); - aCurve->SetColorIndex(3); // Red - aCurve->SetTypeOfLine(Aspect_TOL_DOTDASH); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(SPL); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - - PostProcess(aDoc,ID_BUTTON_Test_23,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest24 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest24(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - Standard_Real radius = 5; - gp_Ax2d ax2d(gp_Pnt2d(2,3),gp_Dir2d(1,0)); - - Handle(Geom2d_Circle) circ2d = - new Geom2d_Circle(ax2d,radius); - - gp_Ax2d circ2dXAxis = circ2d->XAxis(); - - // create a 3D curve in a given plane - Handle(Geom_Curve) C3D = - GeomAPI::To3d(circ2d,gp_Pln(gp_Ax3(gp::XOY()))); - Handle(Geom_Circle) C3DCircle = - Handle(Geom_Circle)::DownCast(C3D); - - gp_Ax1 C3DCircleXAxis = C3DCircle->XAxis(); - - // project it to a 2D curve in another plane - - gp_Pln ProjectionPlane(gp_Pnt(1,1,0),gp_Dir( 1,1,1 )); - - Handle(Geom2d_Curve) C2D = - GeomAPI::To2d(C3D,ProjectionPlane); - - Handle(Geom2d_Circle) C2DCircle = - Handle(Geom2d_Circle)::DownCast(C2D); - gp_Ax2d C2DCircleXAxis = C2DCircle->XAxis(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real radius = 5; \n\ -gp_Ax2d ax2d(gp_Pnt2d(2,3),gp_Dir2d(1,0)); \n\ - \n\ -Handle(Geom2d_Circle) circ2d = \n\ - new Geom2d_Circle(ax2d,radius); \n\ - \n\ -gp_Ax2d circ2dXAxis = circ2d->XAxis(); \n\ - \n\ -// create a 3D curve in a given plane \n\ -Handle(Geom_Curve) C3D = \n\ - GeomAPI::To3d(circ2d,gp_Pln(gp_Ax3(gp::XOY()))); \n\ -Handle(Geom_Circle) C3DCircle = \n\ - Handle(Geom_Circle)::DownCast(C3D); \n\ - \n\ -gp_Ax1 C3DCircleXAxis = C3DCircle->XAxis(); \n\ - \n\ -// project it to a 2D curve in another plane \n\ - \n\ -gp_Pln ProjectionPlane(gp_Pnt(1,1,0),gp_Dir( 1,1,1 )); \n\ - \n\ -Handle(Geom2d_Curve) C2D = \n\ - GeomAPI::To2d(C3D,ProjectionPlane); \n\ - \n\ -Handle(Geom2d_Circle) C2DCircle = \n\ - Handle(Geom2d_Circle)::DownCast(C2D); \n\ -gp_Ax2d C2DCircleXAxis = C2DCircle->XAxis(); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(Geom_Plane) aPlane = GC_MakePlane(gp_Pln(gp_Ax3(gp::XOY()))).Value(); - Handle(Geom_RectangularTrimmedSurface) aSurface= new Geom_RectangularTrimmedSurface(aPlane,-8.,8.,-12.,12.); - DisplaySurface(aDoc,aSurface); - - Handle(Geom_Plane) aProjectionPlane = GC_MakePlane(ProjectionPlane).Value(); - Handle(Geom_RectangularTrimmedSurface) aProjectionPlaneSurface= - new Geom_RectangularTrimmedSurface(aProjectionPlane,-8.,8.,-12.,12.); - - DisplaySurface(aDoc,aProjectionPlaneSurface); - - Standard_CString aC3DEntityTypeName = C3D->DynamicType()->Name(); - Standard_CString aC2DEntityTypeName = C2D->DynamicType()->Name(); - - Message += " C3D->DynamicType()->Name() = "; - Message += aC3DEntityTypeName; Message += " \n"; - Message += " C2D->DynamicType()->Name() = "; - Message += aC2DEntityTypeName; Message += " \n"; - - DisplayCurve(aDoc,circ2d,4,false); - DisplayCurve(aDoc,C3D,Quantity_NOC_YELLOW,false); - DisplayCurve(aDoc,C2D,5,false); - - Handle(ISession_Direction) aC3DCircleXAxisDirection = new ISession_Direction(C3DCircleXAxis.Location(),C3DCircleXAxis.Direction(),5.2); - aDoc->GetAISContext()->Display(aC3DCircleXAxisDirection, Standard_False); - - Handle(ISession_Direction) acirc2dXAxisDirection = new ISession_Direction(circ2dXAxis.Location(),circ2dXAxis.Direction(),5.2); - aDoc->GetISessionContext()->Display(acirc2dXAxisDirection, Standard_False); - - Handle(ISession_Direction) aC2DCircleXAxisDirection = new ISession_Direction(C2DCircleXAxis.Location(),C2DCircleXAxis.Direction(),5.2); - aDoc->GetISessionContext()->Display(aC2DCircleXAxisDirection, Standard_False); - - PostProcess(aDoc,ID_BUTTON_Test_24,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest25 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest25(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - Handle(TColgp_HArray1OfPnt2d) harray = - new TColgp_HArray1OfPnt2d (1,5); // sizing harray - harray->SetValue(1,gp_Pnt2d (0,0)); - harray->SetValue(2,gp_Pnt2d (-3,1)); - harray->SetValue(3,gp_Pnt2d (-2,5)); - harray->SetValue(4,gp_Pnt2d (2,9)); - harray->SetValue(5,gp_Pnt2d (-4,14)); - -Geom2dAPI_Interpolate anInterpolation(harray,Standard_False,0.01); -anInterpolation.Perform(); -Handle(Geom2d_BSplineCurve) SPL = anInterpolation.Curve(); - -gp_Pnt2d P1(-1,-2); -gp_Pnt2d P2(0,15); -gp_Dir2d V1 = gp::DY2d(); -Handle(Geom2d_TrimmedCurve) TC1 = - GCE2d_MakeSegment(P1,V1,P2); - -Standard_Real tolerance = Precision::Confusion(); -Geom2dAPI_InterCurveCurve ICC (SPL,TC1,tolerance); -Standard_Integer NbPoints =ICC.NbPoints(); -gp_Pnt2d PK; - -for (Standard_Integer k = 1;k<=NbPoints;k++) -{ - PK = ICC.Point(k); - // do something with each intersection point -} - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -Handle(TColgp_HArray1OfPnt2d) harray = \n\ - new TColgp_HArray1OfPnt2d (1,5); // sizing harray \n\ -harray->SetValue(1,gp_Pnt2d (0,0)); \n\ -harray->SetValue(2,gp_Pnt2d (-3,1)); \n\ -harray->SetValue(3,gp_Pnt2d (-2,5)); \n\ -harray->SetValue(4,gp_Pnt2d (2,9)); \n\ -harray->SetValue(5,gp_Pnt2d (-4,14)); \n\ - \n\ -Geom2dAPI_Interpolate anInterpolation(harray,Standard_False,0.01); \n\ -anInterpolation.Perform(); \n\ -Handle(Geom2d_BSplineCurve) SPL = anInterpolation.Curve(); \n\ - \n\ -gp_Pnt2d P1(-1,-2); \n\ -gp_Pnt2d P2(0,15); \n\ -gp_Dir2d V1 = gp::DY2d(); \n\ -Handle(Geom2d_TrimmedCurve) TC1= \n\ - GCE2d_MakeSegment(P1,V1,P2); \n\ - \n\ -Standard_Real tolerance = Precision::Confusion(); \n\ -Geom2dAPI_InterCurveCurve ICC (SPL,TC1,tolerance); \n\ -Standard_Integer NbPoints =ICC.NbPoints(); \n\ -gp_Pnt2d PK; \n\ -for (Standard_Integer k = 1;k<=NbPoints;k++) \n\ - { \n\ - PK = ICC.Point(k); \n\ - // do something with each intersection point \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - Handle(ISession2D_Curve) aCurve1 = new ISession2D_Curve(SPL); - aCurve1->SetDisplayPole(Standard_False); - aDoc->GetISessionContext()->Display(aCurve1, Standard_False); - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(TC1); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - - TCollection_AsciiString aString; - for (Standard_Integer i = 1;i<=NbPoints;i++) - { - PK = ICC.Point(i); - // do something with each intersection point - TCollection_AsciiString Message2 (i); - TCollection_AsciiString Message3 (PK.X()); - TCollection_AsciiString Message4 (PK.Y()); - aString = "PK_"; - aString += Message2; - - DisplayPoint(aDoc,PK,aString.ToCString(),false,0.5); - - Message += "PK_"; - Message += Message2; - Message += " ( "; - Message += Message3; - Message += " , "; - Message += Message4; - Message += " )\n"; - } - - PostProcess(aDoc,ID_BUTTON_Test_25,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest26 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest26(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - //----------- Build TC1 ----------------------- - gp_Pnt2d P1(0,0); gp_Pnt2d P2(2,6); - gp_Dir2d V1 = gp::DY2d(); - Handle(Geom2d_TrimmedCurve) TC1 = GCE2d_MakeSegment(P1,V1,P2); - Standard_Real FP1 = TC1->FirstParameter(); - Standard_Real LP1 = TC1->LastParameter(); - //----------- Build TC2 ----------------------- - gp_Pnt2d P3(-9,6.5); gp_Dir2d V2 = gp::DX2d(); - Handle(Geom2d_TrimmedCurve) TC2 = GCE2d_MakeSegment(P3,V2,P2); - Standard_Real FP2 = TC1->FirstParameter(); - Standard_Real LP2 = TC1->LastParameter(); - //----------- Extrema TC1 / TC2 --------------- - Geom2dAPI_ExtremaCurveCurve ECC (TC1,TC2, FP1,LP1, FP2,LP2); - Standard_Real shortestdistance =-1; - if (ECC.NbExtrema() != 0) shortestdistance = ECC.LowerDistance(); - //----------- Build SPL1 ---------------------- - TColgp_Array1OfPnt2d array (1,5); // sizing array - array.SetValue(1,gp_Pnt2d (-4,0)); array.SetValue(2,gp_Pnt2d (-7,2)); - array.SetValue(3,gp_Pnt2d (-6,3)); array.SetValue(4,gp_Pnt2d (-4,3)); - array.SetValue(5,gp_Pnt2d (-3,5)); - Handle(Geom2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array); - Standard_Real FPSPL1 = SPL1->FirstParameter(); - Standard_Real LPSPL1 = SPL1->LastParameter(); - //----------- Extrema TC1 / SPL1 ------------- - Geom2dAPI_ExtremaCurveCurve ECC2 (TC1,SPL1, FP1,LP1, FPSPL1,LPSPL1); - Standard_Real SPL1shortestdistance =-1; - if (ECC2.NbExtrema()!=0) SPL1shortestdistance = ECC2.LowerDistance(); - Standard_Integer NbExtrema = ECC2.NbExtrema(); - TColgp_Array2OfPnt2d aSolutionArray(1,NbExtrema,1,2); - for(int i=1;i <= NbExtrema; i++) - { - gp_Pnt2d P1x,P2x; - ECC2.Points(i,P1x,P2x); - aSolutionArray(i,1) = P1x; - aSolutionArray(i,2) = P2x; - } - - //============================================================== - TCollection_AsciiString Message (" \ -//----------- Build TC1 ----------------------- \n\ -gp_Pnt2d P1(0,0); gp_Pnt2d P2(2,6); \n\ -gp_Dir2d V1 = gp::DY2d(); \n\ -Handle(Geom2d_TrimmedCurve) TC1 = GCE2d_MakeSegment(P1,V1,P2); \n\ -Standard_Real FP1 = TC1->FirstParameter(); \n\ -Standard_Real LP1 = TC1->LastParameter(); \n\ -//----------- Build TC2 ----------------------- \n\ -gp_Pnt2d P3(-9,6.5); gp_Dir2d V2 = gp::DX2d(); \n\ -Handle(Geom2d_TrimmedCurve) TC2 = GCE2d_MakeSegment(P3,V2,P2); \n\ -Standard_Real FP2 = TC1->FirstParameter(); \n\ -Standard_Real LP2 = TC1->LastParameter(); \n\ -//----------- Extrema TC1 / TC2 --------------- \n\ -Geom2dAPI_ExtremaCurveCurve ECC (TC1,TC2, FP1,LP1, FP2,LP2); \n\ -Standard_Real shortestdistance =-1; \n\ -if (ECC.NbExtrema() != 0) shortestdistance = ECC.LowerDistance(); \n\ -//----------- Build SPL1 ---------------------- \n\ -TColgp_Array1OfPnt2d array (1,5); // sizing array \n\ -array.SetValue(1,gp_Pnt2d (-4,0)); array.SetValue(2,gp_Pnt2d (-7,2)); \n\ -array.SetValue(3,gp_Pnt2d (-6,3)); array.SetValue(4,gp_Pnt2d (-4,3)); \n\ -array.SetValue(5,gp_Pnt2d (-3,5)); \n\ -Handle(Geom2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array); \n\ -Standard_Real FPSPL1 = SPL1->FirstParameter(); \n"); -Message += "\ -Standard_Real LPSPL1 = SPL1->LastParameter(); \n\ -//----------- Extrema TC1 / SPL1 ------------- \n\ -Geom2dAPI_ExtremaCurveCurve ECC2 (TC1,SPL1, FP1,LP1, FPSPL1,LPSPL1); \n\ -Standard_Real SPL1shortestdistance =-1; \n\ -if (ECC2.NbExtrema()!=0) SPL1shortestdistance = ECC2.LowerDistance(); \n\ -Standard_Integer NbExtrema = ECC2.NbExtrema(); \n\ -TColgp_Array2OfPnt2d aSolutionArray(1,NbExtrema,1,2); \n\ -for(int i=1;i <= NbExtrema; i++) { \n\ - gp_Pnt2d P1,P2; \n\ - ECC2.Points(i,P1,P2); \n\ - aSolutionArray(i,1) = P1; aSolutionArray(i,2) = P2; } \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - TCollection_AsciiString aString; - for(int i = array.Lower();i<=array.Upper();i++) - { - TCollection_AsciiString Message2 (i); - gp_Pnt2d P = array(i); - aString = "array "; - aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - - if (!SPL1.IsNull()) - { - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(SPL1); - aCurve->SetDisplayPole(Standard_False); - aCurve->SetColorIndex(3); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - } - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"SPL1.IsNull()", L"CasCade Error", MB_ICONERROR); - - Handle(ISession2D_Curve) aCurve1 = new ISession2D_Curve(TC1); - aCurve1->SetColorIndex(6); - aDoc->GetISessionContext()->Display(aCurve1, Standard_False); - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(TC2); - aCurve2->SetColorIndex(5); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - - for(int i=1;i <= NbExtrema; i++) - { - gp_Pnt2d P1x =aSolutionArray(i,1); - - TCollection_AsciiString Message2 (i); - aString = "P1_"; - aString += Message2; - DisplayPoint(aDoc,P1x,aString.ToCString(),false,0.7*i); - - gp_Pnt2d P2x = aSolutionArray(i,2); - - Handle(Geom2d_TrimmedCurve) SolutionCurve = - GCE2d_MakeSegment(P1x,P2x); - Handle(ISession2D_Curve) aSolutionCurve = new ISession2D_Curve(SolutionCurve); - aDoc->GetISessionContext()->Display(aSolutionCurve, Standard_False); - } - - Message += "TC1 is Yellow ,TC2 is Blue ,SPL1 is Red \n"; - Message += "ECC.NbExtrema() = "; - Message += ECC.NbExtrema(); - Message += " shortestdistance = "; - Message+= shortestdistance; - Message += "\n"; - Message += "ECC2.NbExtrema() = "; - Message += NbExtrema; - Message += " SPL1shortestdistance = "; - Message+= SPL1shortestdistance; - Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_26,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest27 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest27(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt2d array (1,5); // sizing array - array.SetValue(1,gp_Pnt2d (-4,0)); array.SetValue(2,gp_Pnt2d (-7,2)); - array.SetValue(3,gp_Pnt2d (-6,3)); array.SetValue(4,gp_Pnt2d (-4,3)); - array.SetValue(5,gp_Pnt2d (-3,5)); - Handle(Geom2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array); - - Standard_Real dist = 1; - Handle(Geom2d_OffsetCurve) OC = - new Geom2d_OffsetCurve(SPL1,dist); - Standard_Boolean result = OC->IsCN(2); - Standard_Real dist2 = 1.5; - Handle(Geom2d_OffsetCurve) OC2 = - new Geom2d_OffsetCurve(SPL1,dist2); - Standard_Boolean result2 = OC2->IsCN(2); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt2d array (1,5); // sizing array \n\ -array.SetValue(1,gp_Pnt2d (-4,0)); array.SetValue(2,gp_Pnt2d (-7,2)); \n\ -array.SetValue(3,gp_Pnt2d (-6,3)); array.SetValue(4,gp_Pnt2d (-4,3)); \n\ -array.SetValue(5,gp_Pnt2d (-3,5)); \n\ -Handle(Geom2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array); \n\ - \n\ -Standard_Real dist = 1; \n\ -Handle(Geom2d_OffsetCurve) OC = \n\ - new Geom2d_OffsetCurve(SPL1,dist); \n\ -Standard_Boolean result = OC->IsCN(2); \n\ - \n\ -Standard_Real dist2 = 1.5; \n\ -Handle(Geom2d_OffsetCurve) OC2 = \n\ - new Geom2d_OffsetCurve(SPL1,dist2); \n\ -Standard_Boolean result2 = OC2->IsCN(2); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(ISession2D_Curve) aCurve1 = new ISession2D_Curve(SPL1); - aCurve1->SetColorIndex(6); - aDoc->GetISessionContext()->Display(aCurve1, Standard_False); - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(OC); - aCurve2->SetColorIndex(5); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - Handle(ISession2D_Curve) aCurve3 = new ISession2D_Curve(OC2); - aCurve3->SetColorIndex(3); - aDoc->GetISessionContext()->Display(aCurve3, Standard_False); - - - Message += "SPL1 is Yellow \n"; - Message += "OC is Blue \n"; - Message += "OC2 is Red \n\n"; - Message += " Warning, Continuity is not guaranteed : \n "; - if(result) - Message += " result = True \n"; - else - Message += " result = False \n"; - if(result2) - Message += " result2 = True \n"; - else - Message += " result2 = False \n"; - - PostProcess(aDoc,ID_BUTTON_Test_27,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest28 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest28(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt2d P1(1,2); - gp_Pnt2d P2(4,5); - gp_Lin2d L = gce_MakeLin2d(P1,P2); - // assignment by overloaded operator - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P1(1,2); \n\ -gp_Pnt2d P2(4,5); \n\ -gp_Lin2d L = gce_MakeLin2d(P1,P2); \n\ -// assignment by overloaded operator \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,P1,"P1",false,0.5); - DisplayPoint(aDoc,P2,"P2",false,0.5); - - Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-3,8); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aLine); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - - PostProcess(aDoc,ID_BUTTON_Test_28,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest29 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest29(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt2d P1(1,2); - gp_Pnt2d P2(4,5); - gp_Lin2d L; - GccAna_Pnt2dBisec B(P1,P2); - if (B.IsDone()) - { - L = B.ThisSolution(); - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P1(1,2); \n\ -gp_Pnt2d P2(4,5); \n\ -gp_Lin2d L; \n\ -GccAna_Pnt2dBisec B(P1,P2); \n\ -if (B.IsDone()) \n\ - { \n\ - L = B.ThisSolution(); \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,P1,"P1",false,0.5); - DisplayPoint(aDoc,P2,"P2",false,0.5); - - if (B.IsDone()) - { - Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-8,8); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aLine); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - } - - if (B.IsDone()) Message += " \n B Is Done "; - else Message += " \n B Is not Done "; - PostProcess(aDoc,ID_BUTTON_Test_29,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest30 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest30(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType =a2DNo3D ; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt2d P1 (2,3); - gp_Pnt2d P2 (4,4); - gp_Pnt2d P3 (6,7); - gp_Pnt2d P4 (10,10); - gp_Circ2d C = gce_MakeCirc2d (P1,P2,P3); - GccEnt_QualifiedCirc QC = GccEnt::Outside(C); - GccAna_Lin2d2Tan LT (QC,P4,Precision::Confusion()); - if (LT.IsDone()) - { - Standard_Integer NbSol = LT.NbSolutions(); - for(Standard_Integer k=1; k<=NbSol; k++) - { - gp_Lin2d L = LT.ThisSolution(k); - // do something with L - } - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt2d P1 (2,3); \n\ -gp_Pnt2d P2 (4,4); \n\ -gp_Pnt2d P3 (6,7); \n\ -gp_Pnt2d P4 (10,10); \n\ -gp_Circ2d C = gce_MakeCirc2d (P1,P2,P3); \n\ -GccEnt_QualifiedCirc QC = GccEnt::Outside(C); \n\ -GccAna_Lin2d2Tan LT (QC,P4,Precision::Confusion()); \n\ -Standard_Integer NbSol; \n\ -if (LT.IsDone()) \n\ - { \n\ - NbSol = LT.NbSolutions(); \n\ - for(Standard_Integer k=1; k<=NbSol; k++) \n\ - { \n\ - gp_Lin2d L = LT.ThisSolution(k); \n\ - // do something with L \n\ - } \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,P1,"P1",false,0.5,-1,0.1); - DisplayPoint(aDoc,P2,"P2",false,0.5,-0.7,0.1); - DisplayPoint(aDoc,P3,"P3",false,0.5,-0.5,0.1); - DisplayPoint(aDoc,P4,"P4",false,0.5,0,0.1); - - Handle(Geom2d_Circle) aCircle = new Geom2d_Circle(C); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aCircle); - aCurve->SetColorIndex(5); - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - - if (LT.IsDone()) - { - Standard_Integer NbSol = LT.NbSolutions(); - for(Standard_Integer k=1; k<=NbSol; k++) - { - gp_Lin2d L = LT.ThisSolution(k); - Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-10,20); - Handle(ISession2D_Curve) aCurveN = new ISession2D_Curve(aLine); - aDoc->GetISessionContext()->Display(aCurveN, Standard_False); - } - } - Message += " C is Blue \n\n"; - Message += "LT.IsDone() = "; - if (LT.IsDone()) Message += "True \n"; else Message += "False \n"; - TCollection_AsciiString Message2 (LT.NbSolutions()); - Message += "NbSol = "; Message += Message2 ; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_30,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest31 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest31(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - -gp_Pnt2d P1 (9,6); -gp_Pnt2d P2 (10,4); -gp_Pnt2d P3 (6,7); -gp_Circ2d C = gce_MakeCirc2d (P1,P2,P3); -GccEnt_QualifiedCirc QC = GccEnt::Outside(C); -gp_Pnt2d P4 (-2,7); -gp_Pnt2d P5 (12,-3); -gp_Lin2d L = GccAna_Lin2d2Tan(P4,P5,Precision::Confusion()).ThisSolution(1); -GccEnt_QualifiedLin QL = GccEnt::Unqualified(L); -Standard_Real radius = 2; -GccAna_Circ2d2TanRad TR (QC,QL,radius,Precision::Confusion()); -Standard_Real parsol,pararg; -gp_Pnt2d tangentpoint1,tangentpoint2; -gp_Circ2d circ; -if (TR.IsDone()) -{ - Standard_Integer NbSol = TR.NbSolutions(); - for (Standard_Integer k=1; k<=NbSol; k++) - { - circ = TR.ThisSolution(k); - // find the solution circle - TR.Tangency1(k,parsol,pararg,tangentpoint1); - // find the first tangent point - TR.Tangency2(k,parsol,pararg,tangentpoint2); - // find the second tangent point - } -} - - //============================================================== - TCollection_AsciiString Message; - Message = "\ - \n\ -gp_Pnt2d P1 (9,6); \n\ -gp_Pnt2d P2 (10,4); \n\ -gp_Pnt2d P3 (6,7); \n\ -gp_Circ2d C = gce_MakeCirc2d (P1,P2,P3); \n\ -GccEnt_QualifiedCirc QC = GccEnt::Outside(C); \n\ -gp_Pnt2d P4 (-2,7); \n\ -gp_Pnt2d P5 (12,-3); \n\ -gp_Lin2d L = GccAna_Lin2d2Tan(P4,P5,Precision::Confusion()).ThisSolution(1); \n\ -GccEnt_QualifiedLin QL = GccEnt::Unqualified(L); \n\ -Standard_Real radius = 2; \n\ -GccAna_Circ2d2TanRad TR (QC,QL,radius,Precision::Confusion()); \n\ -Standard_Real parsol,pararg; \n\ -gp_Pnt2d tangentpoint1,tangentpoint2; \n\ -gp_Circ2d circ; \n\ -if (TR.IsDone()) \n\ - { \n\ - Standard_Integer NbSol = TR.NbSolutions(); \n\ - for (Standard_Integer k=1; k<=NbSol; k++) \n\ - { \n"; - Message += "\ - circ = TR.ThisSolution(k); \n\ - // find the solution circle \n\ - TR.Tangency1(k,parsol,pararg,tangentpoint1); \n\ - // find the first tangent point \n\ - TR.Tangency2(k,parsol,pararg,tangentpoint2); \n\ - // find the second tangent point \n\ - } \n\ - } \n\ - \n"; - AddSeparator(aDoc,Message); - - //-------------------------------------------------------------- - DisplayPoint(aDoc,P1,"P1",false,0.3); - DisplayPoint(aDoc,P2,"P2",false,0.3); - DisplayPoint(aDoc,P3,"P3",false,0.3); - DisplayPoint(aDoc,P4,"P4",false,0.3); - DisplayPoint(aDoc,P5,"P5",false,0.3); - - Handle(Geom2d_Circle) aCircle = new Geom2d_Circle(C); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(aCircle); - aCurve->SetColorIndex(3); - - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-2,20); - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(aLine); - aCurve2->SetColorIndex(5); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - - if (TR.IsDone()) - { - Standard_Integer NbSol = TR.NbSolutions(); - for (Standard_Integer k=1; k<=NbSol; k++) - { - circ = TR.ThisSolution(k); - Handle(Geom2d_Circle) aCircleN = new Geom2d_Circle(circ); - Handle(ISession2D_Curve) aCurveN = new ISession2D_Curve(aCircleN); - aDoc->GetISessionContext()->Display(aCurveN, Standard_False); - - // find the solution circle - TR.Tangency1(k,parsol,pararg,tangentpoint1); - // find the first tangent point - TR.Tangency2(k,parsol,pararg,tangentpoint2); - // find the second tangent point - DisplayPoint(aDoc,tangentpoint1,"tangentpoint1",false,0.3); - DisplayPoint(aDoc,tangentpoint2,"tangentpoint2",false,0.3); - } - } - Message += "C is Red \n"; - Message += "L is Blue \n"; - PostProcess(aDoc,ID_BUTTON_Test_31,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest32 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest32(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - Standard_Real major = 12; - Standard_Real minor = 4; - gp_Ax2d axis = gp::OX2d(); - gp_Elips2d EE(axis,major,minor); - Handle(Geom2d_TrimmedCurve) arc = GCE2d_MakeArcOfEllipse(EE,0.0,M_PI/4); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real major = 12; \n\ -Standard_Real minor = 4; \n\ -gp_Ax2d axis = gp::OX2d(); \n\ -gp_Elips2d EE(axis,major,minor); \n\ -Handle(Geom2d_TrimmedCurve) arc = GCE2d_MakeArcOfEllipse(EE,0.0,PI/4); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - Handle(Geom2d_Ellipse) E = GCE2d_MakeEllipse(EE); - Handle(ISession2D_Curve) aCurve = new ISession2D_Curve(E); - aCurve->SetColorIndex(3); - aCurve->SetTypeOfLine(Aspect_TOL_DOTDASH); - //SetWidthOfLine - aDoc->GetISessionContext()->Display(aCurve, Standard_False); - Handle(ISession2D_Curve) aCurve2 = new ISession2D_Curve(arc); - aDoc->GetISessionContext()->Display(aCurve2, Standard_False); - TCollection_AsciiString Message2 (M_PI); - Message += " PI = ";Message+= Message2; - - PostProcess(aDoc,ID_BUTTON_Test_32,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest33 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest33(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt P1(0,0,1); - gp_Pnt P2(1,2,2); - gp_Pnt P3(2,3,3); - gp_Pnt P4(4,3,4); - gp_Pnt P5(5,5,5); - TColgp_Array1OfPnt array (1,5); // sizing array - array.SetValue(1,P1); - array.SetValue(2,P2); - array.SetValue(3,P3); - array.SetValue(4,P4); - array.SetValue(5,P5); - Handle(TColgp_HArray1OfPnt) harray = - new TColgp_HArray1OfPnt (1,5); // sizing harray - harray->SetValue(1,P1.Translated(gp_Vec(4,0,0))); - harray->SetValue(2,P2.Translated(gp_Vec(4,0,0))); - harray->SetValue(3,P3.Translated(gp_Vec(4,0,0))); - harray->SetValue(4,P4.Translated(gp_Vec(4,0,0))); - harray->SetValue(5,P5.Translated(gp_Vec(4,0,0))); - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array).Curve(); - - GeomAPI_Interpolate anInterpolation(harray,Standard_False,Precision::Approximation()); - anInterpolation.Perform(); - - Handle(Geom_BSplineCurve) SPL2; - if (anInterpolation.IsDone()) - SPL2 = anInterpolation.Curve(); - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"The Interpolation is Not done", L"CasCade Warning", MB_ICONWARNING); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(0,0,1); \n\ -gp_Pnt P2(1,2,2); \n\ -gp_Pnt P3(2,3,3); \n\ -gp_Pnt P4(4,3,4); \n\ -gp_Pnt P5(5,5,5); \n\ -TColgp_Array1OfPnt array (1,5); // sizing array \n\ -array.SetValue(1,P1); \n\ -array.SetValue(2,P2); \n\ -array.SetValue(3,P3); \n\ -array.SetValue(4,P4); \n\ -array.SetValue(5,P5); \n\ -Handle(TColgp_HArray1OfPnt) harray = \n\ - new TColgp_HArray1OfPnt (1,5); // sizing harray \n\ -harray->SetValue(1,P1.Translated(gp_Vec(4,0,0))); \n\ -harray->SetValue(2,P2.Translated(gp_Vec(4,0,0))); \n\ -harray->SetValue(3,P3.Translated(gp_Vec(4,0,0))); \n\ -harray->SetValue(4,P4.Translated(gp_Vec(4,0,0))); \n\ -harray->SetValue(5,P5.Translated(gp_Vec(4,0,0))); \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array).Curve(); \n"); - Message += "\ - \n\ -GeomAPI_Interpolate anInterpolation(harray,Standard_False,Precision::Approximation()); \n\ -anInterpolation.Perform(); \n\ - \n\ -Handle(Geom_BSplineCurve) SPL2; \n\ -if (anInterpolation.IsDone()) \n\ - SPL2 = anInterpolation.Curve(); \n\ -else \n\ - MessageBox(0,\"The Interpolation is Not done\",\"CasCade Warning\",MB_ICONWARNING); \n\ - \n"; - AddSeparator(aDoc,Message); - - //-------------------------------------------------------------- - - TCollection_AsciiString aString; - for(Standard_Integer i = array.Lower();i<=array.Upper();i++) - { - - TCollection_AsciiString Message2 (i); - gp_Pnt P = array(i); - - aString = "P"; - aString += Message2; - if (i == 1) aString += " (array) "; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5);\ - - aString = "P"; - aString += Message2; - if (i == 1) aString += " (harray) "; - DisplayPoint(aDoc,P.Translated(gp_Vec(4,0,0)),aString.ToCString(),false,0.5);\ - - } - - Handle(ISession_Curve) aCurve = new ISession_Curve(SPL1); - aDoc->GetAISContext()->SetDisplayMode(aCurve,1, Standard_False); - aDoc->GetAISContext()->Display(aCurve, Standard_False); - - if (anInterpolation.IsDone()) - { - Handle(ISession_Curve) aCurve2 = new ISession_Curve(SPL2); - aDoc->GetAISContext()->SetDisplayMode(aCurve2,1, Standard_False); - aDoc->GetAISContext()->Display(aCurve2, Standard_False); - } - - PostProcess(aDoc,ID_BUTTON_Test_33,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest34 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest34(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - TColgp_Array1OfPnt array (1,5); // sizing array - array.SetValue(1,gp_Pnt(0,0,1)); - array.SetValue(2,gp_Pnt(1,2,2)); - array.SetValue(3,gp_Pnt(2,3,3)); - array.SetValue(4,gp_Pnt(4,4,4)); - array.SetValue(5,gp_Pnt(5,5,5)); - - GProp_PEquation PE (array,1.5 ); - - if (PE.IsPoint()) - {/* ... */} - gp_Lin L; - if (PE.IsLinear()) - { - L = PE.Line(); - } - if (PE.IsPlanar()) - {/* ... */} - if (PE.IsSpace()) - {/* ... */} - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array (1,5); // sizing array \n\ -array.SetValue(1,gp_Pnt(0,0,1)); \n\ -array.SetValue(2,gp_Pnt(1,2,2)); \n\ -array.SetValue(3,gp_Pnt(2,3,3)); \n\ -array.SetValue(4,gp_Pnt(4,4,4)); \n\ -array.SetValue(5,gp_Pnt(5,5,5)); \n\ - \n\ -GProp_PEquation PE (array,1.5 ); \n\ - \n\ -if (PE.IsPoint()){ /* ... */ } \n\ -gp_Lin L; \n\ -if (PE.IsLinear()) { L = PE.Line(); } \n\ -if (PE.IsPlanar()){ /* ... */ } \n\ -if (PE.IsSpace()) { /* ... */ } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - TCollection_AsciiString aString; - for(Standard_Integer i = array.Lower();i<=array.Upper();i++) - { - TCollection_AsciiString Message2 (i); - gp_Pnt P = array(i); - - aString = "P"; - aString += Message2; - DisplayPoint(aDoc,P,aString.ToCString(),false,0.5); - } - - Message += " PE.IsPoint() = "; - if (PE.IsPoint()) - Message += "True \n"; - else - Message += "False\n"; - - if (PE.IsLinear()) { - Message += " PE.IsLinear() = True \n"; - L = PE.Line(); - Handle(Geom_Line) aLine = new Geom_Line(L); - Handle(Geom_TrimmedCurve) aTrimmedCurve = new Geom_TrimmedCurve(aLine,-10,10); - Handle(ISession_Curve) aCurve = new ISession_Curve(aTrimmedCurve); - aDoc->GetAISContext()->Display(aCurve, Standard_False); - } - else - Message += "PE.IsLinear() = False \n"; - - Message += " PE.IsPlanar() = "; - if (PE.IsPlanar()) - Message += "True \n"; - else - Message += "False\n"; - - Message += " PE.IsSpace() = "; - if (PE.IsSpace()) - Message += "True \n"; - else - Message += "False\n"; - - PostProcess(aDoc,ID_BUTTON_Test_34,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest35 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest35(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - gp_Pnt P1(-5,-5,0); - gp_Pnt P2(9,9,9); - Handle(Geom_Curve) aCurve = GC_MakeSegment(P1,P2).Value(); - gp_Pnt P3(3,0,0); - gp_Pnt P4(3,0,10); - Standard_Real radius1 = 3; - Standard_Real radius2 = 2; - Handle(Geom_Surface) aSurface = - GC_MakeConicalSurface(P3,P4,radius1,radius2).Value(); - GeomAPI_IntCS CS (aCurve,aSurface); - Handle(Geom_Curve) segment; - - Standard_Integer NbSeg = 0; - Standard_Integer NbPoints = 0; - if(CS.IsDone()) - { - NbSeg = CS.NbSegments(); - for (Standard_Integer k=1; k<=NbSeg; k++) - { - segment = CS.Segment(k); - // do something with the segment - } - - NbPoints = CS.NbPoints(); - for (int k=1; k<=NbPoints; k++) - { - gp_Pnt aPoint=CS.Point(k); - // do something with the point - } - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(-5,-5,0); \n\ -gp_Pnt P2(9,9,9); \n\ -Handle(Geom_Curve) aCurve = GC_MakeSegment(P1,P2).Value(); \n\ -gp_Pnt P3(3,0,0); \n\ -gp_Pnt P4(3,0,10); \n\ -Standard_Real radius1 = 3; \n\ -Standard_Real radius2 = 2; \n\ -Handle(Geom_Surface) aSurface = \n\ - GC_MakeConicalSurface(P3,P4,radius1,radius2).Value(); \n\ -GeomAPI_IntCS CS (aCurve,aSurface); \n\ -Handle(Geom_Curve) segment; \n\ - \n\ -Standard_Integer NbSeg; \n\ -Standard_Integer NbPoints; \n\ -if(CS.IsDone()) \n\ - { \n\ - NbSeg = CS.NbSegments(); \n\ - for (Standard_Integer k=1; k<=NbSeg; k++) \n\ - { \n\ - segment = CS.Segment(k); \n\ - // do something with the segment \n\ - } \n\ - \n\ - NbPoints = CS.NbPoints(); \n\ - for (k=1; k<=NbPoints; k++) \n\ - { \n\ - gp_Pnt aPoint=CS.Point(k); \n\ - // do something with the point \n\ - } \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); - - //-------------------------------------------------------------- - - Handle(ISession_Curve) aCurve2 = new ISession_Curve(aCurve); - aDoc->GetAISContext()->Display(aCurve2, Standard_False); - - Handle(Geom_RectangularTrimmedSurface) aTrimmedSurface= new Geom_RectangularTrimmedSurface(aSurface,-50.,50.,false); - - DisplaySurface(aDoc,aTrimmedSurface); - - TCollection_AsciiString aString; - Standard_Integer k; - if(CS.IsDone()) - { - NbSeg = CS.NbSegments(); - for (k=1; k<=NbSeg; k++) - { - TCollection_AsciiString Message2 (k); - segment = CS.Segment(k); - aString = "S_";aString += Message2; - Handle(ISession_Curve) aCurveN = new ISession_Curve(segment); - aDoc->GetAISContext()->Display(aCurveN, Standard_False); - } - - for ( k=1; k<=NbPoints; k++) - { - TCollection_AsciiString Message2 (k); - gp_Pnt aPoint=CS.Point(k); - aString = "P_";aString += Message2; - DisplayPoint(aDoc,aPoint,aString.ToCString(),false,0.5); - // do something with the point - } - } - TCollection_AsciiString Message2 (NbSeg); - TCollection_AsciiString Message3 (NbPoints); - - Message += "NbSeg = "; Message += Message2 ; Message += "\n"; - Message += "NbPoints = "; Message += Message3 ; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_35,TheDisplayType,Message); -} - -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -// Function name : GeomSources::gpTest36 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest36(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); -//============================================================== - - gp_Pnt centre (5,5,0); gp_Pnt axispoint (9,9,0); - Standard_Real radius = 3; - Handle(Geom_Circle) circle = - GC_MakeCircle(centre,axispoint,radius); - - Handle(Geom_Geometry) aRotatedEntity = circle->Rotated(gp::OZ(),M_PI/4); - Standard_CString aRotatedEntityTypeName = aRotatedEntity->DynamicType()->Name(); - - Handle(Geom_Geometry) aMirroredEntity = aRotatedEntity->Mirrored(gp::ZOX()); - Standard_CString aMirroredEntityTypeName = aMirroredEntity->DynamicType()->Name(); - - gp_Pnt scalepoint (4,8,0); - Standard_Real scalefactor = 0.2; - Handle(Geom_Geometry) aScaledEntity = - aMirroredEntity->Scaled(scalepoint, scalefactor); - Standard_CString aScaledEntityTypeName = aScaledEntity->DynamicType()->Name(); - - Handle (Geom_Transformation) GT = GC_MakeTranslation (centre, scalepoint); - gp_Trsf TR = GT->Trsf(); - - gp_Vec aTranslationVector(TR.TranslationPart ()); - Handle(Geom_Geometry) aTranslatedEntity = - aScaledEntity->Translated( aTranslationVector ); - Standard_CString aTranslatedEntityTypeName = aTranslatedEntity->DynamicType()->Name(); - - gp_Mat matrix = TR.HVectorialPart(); - Standard_Real value = matrix.Determinant(); - -//============================================================== - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt centre (5,5,0); gp_Pnt axispoint (9,9,0); \n\ -Standard_Real radius = 3; \n\ -Handle(Geom_Circle) circle = \n\ - GC_MakeCircle(centre,axispoint,radius); \n\ - \n\ -Handle(Geom_Geometry) aRotatedEntity = circle->Rotated(gp::OZ(),PI/4); \n\ -Standard_CString aRotatedEntityTypeName = aRotatedEntity->DynamicType()->Name(); \n\ - \n\ -Handle(Geom_Geometry) aMirroredEntity = aRotatedEntity->Mirrored(gp::ZOX()); \n\ -Standard_CString aMirroredEntityTypeName = aMirroredEntity->DynamicType()->Name(); \n\ - \n\ -gp_Pnt scalepoint (4,8,0); \n\ -Standard_Real scalefactor = 0.2; \n\ -Handle(Geom_Geometry) aScaledEntity = \n\ - aMirroredEntity->Scaled(scalepoint, scalefactor); \n\ -Standard_CString aScaledEntityTypeName = aScaledEntity->DynamicType()->Name(); \n\ - \n\ -Handle (Geom_Transformation) GT = GC_MakeTranslation (centre, scalepoint); \n\ -gp_Trsf TR = GT->Trsf(); \n\ - \n"); - Message +="\ -gp_Vec aTranslationVector(TR.TranslationPart ()); \n\ -Handle(Geom_Geometry) aTranslatedEntity = \n\ - aScaledEntity->Translated( aTranslationVector ); \n\ -Standard_CString aTranslatedEntityTypeName = aTranslatedEntity->DynamicType()->Name(); \n\ - \n\ -gp_Mat matrix = TR.HVectorialPart(); \n\ -Standard_Real value = matrix.Determinant(); \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayPoint(aDoc,centre,"centre",false,0.5); - DisplayPoint(aDoc,axispoint,"axispoint",false,0.5); - DisplayPoint(aDoc,scalepoint,"scalepoint",false,0.5); - - DisplayCurve(aDoc,circle, Quantity_NOC_RED,false); - DisplayCurve(aDoc,Handle(Geom_Curve)::DownCast(aRotatedEntity),Quantity_NOC_PEACHPUFF, false); - DisplayCurve(aDoc,Handle(Geom_Curve)::DownCast(aMirroredEntity), Quantity_NOC_YELLOWGREEN,false); - DisplayCurve(aDoc,Handle(Geom_Curve)::DownCast(aScaledEntity), Quantity_NOC_GREEN,false); - DisplayCurve(aDoc,Handle(Geom_Curve)::DownCast(aTranslatedEntity),Quantity_NOC_WHITE,false); - - TCollection_AsciiString Message0 (M_PI); - Message += " PI = "; - Message+= Message0; - Message += "\n"; - Message += " circle is Red; aRotatedEntity is Peach; aMirroredEntity is Yellow Green\n"; - Message += " aScaleEntity is Green; aTranslatedEntity is White\n\n"; - - TCollection_AsciiString Message2 (aTranslationVector.X()); - TCollection_AsciiString Message3 (aTranslationVector.Y()); - TCollection_AsciiString Message4 (aTranslationVector.Z()); - Message += " aTranslationVector ( "; - Message += Message2; Message += " , "; - Message += Message3; Message += " , "; - Message += Message4; Message += " ); \n"; - - TCollection_AsciiString Message5 (value); - Message += " value = ";Message+= Message5; Message += "\n"; - - TCollection_AsciiString Message6 (aRotatedEntityTypeName); - TCollection_AsciiString Message7 (aMirroredEntityTypeName); - TCollection_AsciiString Message8 (aScaledEntityTypeName); - TCollection_AsciiString Message9 (aTranslatedEntityTypeName); - - Message += " aRotatedEntityTypeName = ";Message+= Message6; Message += "\n"; - Message += " aMirroredEntityTypeName = ";Message+= Message7; Message += "\n"; - Message += " aScaledEntityTypeName = ";Message+= Message8; Message += "\n"; - Message += " aTranslatedEntityTypeName = ";Message+= Message9; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_36,TheDisplayType,Message); -} - -// Function name : GeomSources::gpTest37 -// Description : -// Return type : void -// Argument : CGeometryDoc* aDoc -void GeomSources::gpTest37(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt anArrayofPnt (1,5); // sizing array - anArrayofPnt.SetValue(1,gp_Pnt(0,0,1)); - anArrayofPnt.SetValue(2,gp_Pnt(1,2,2)); - anArrayofPnt.SetValue(3,gp_Pnt(2,3,3)); - anArrayofPnt.SetValue(4,gp_Pnt(4,3,4)); - anArrayofPnt.SetValue(5,gp_Pnt(5,5,5)); - - Standard_Real Tolerance = 1; - - gp_Pln P; - GProp_PEquation PE (anArrayofPnt,Tolerance); - if (PE.IsPlanar()) { P = PE.Plane();} - - if (PE.IsPoint()) { /* ... */ } - if (PE.IsLinear()) { /* ... */ } - if (PE.IsPlanar()) { P = PE.Plane();} - if (PE.IsSpace()) { /* ... */ } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt anArrayofPnt (1,5); // sizing array \n\ -anArrayofPnt.SetValue(1,gp_Pnt(0,0,1)); \n\ -anArrayofPnt.SetValue(2,gp_Pnt(1,2,2)); \n\ -anArrayofPnt.SetValue(3,gp_Pnt(2,3,3)); \n\ -anArrayofPnt.SetValue(4,gp_Pnt(4,3,4)); \n\ -anArrayofPnt.SetValue(5,gp_Pnt(5,5,5)); \n\ - \n\ -Standard_Real Tolerance = 1; \n\ - \n\ -gp_Pln P; \n\ -GProp_PEquation PE (anArrayofPnt,Tolerance); \n\ -if (PE.IsPlanar()) { P = PE.Plane();} \n\ - \n\ -if (PE.IsPoint()) { /* ... */ } \n\ -if (PE.IsLinear()) { /* ... */ } \n\ -if (PE.IsPlanar()) { P = PE.Plane();} \n\ -if (PE.IsSpace()) { /* ... */ } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - TCollection_AsciiString aString; - for(Standard_Integer i = anArrayofPnt.Lower();i<=anArrayofPnt.Upper();i++){ - TCollection_AsciiString Message2(i); - gp_Pnt aP = anArrayofPnt(i); - aString = "P"; - aString += Message2; - DisplayPoint(aDoc,aP,aString.ToCString(),false,0.5); - } - - Message += " PE.IsPoint() = "; if (PE.IsPoint()) Message += "True \n"; else Message += "False\n"; - Message += " PE.IsLinear() = "; if (PE.IsLinear()) Message += "True \n"; else Message += "False\n"; - - if (PE.IsPlanar()) { - Message += " PE.IsPlanar() = True \n"; - P = PE.Plane(); - Handle(Geom_Plane) aPlane = new Geom_Plane(P); - Handle(Geom_RectangularTrimmedSurface) aSurface= new Geom_RectangularTrimmedSurface(aPlane,-4.,4.,-4.,4.); - - DisplaySurface(aDoc,aSurface); - - } - else - Message += " PE.IsPlanar() = False \n"; - - Message += " PE.IsSpace() = "; if (PE.IsSpace() ) Message += "True \n"; else Message += "False\n"; - - PostProcess(aDoc,ID_BUTTON_Test_37,TheDisplayType,Message); -} - -void GeomSources::gpTest38(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); // sizing array - array1.SetValue(1,gp_Pnt (-4,0,2 )); array1.SetValue(2,gp_Pnt (-7,2,2 )); - array1.SetValue(3,gp_Pnt (-6,3,1 )); array1.SetValue(4,gp_Pnt (-4,3,-1)); - array1.SetValue(5,gp_Pnt (-3,5,-2)); - Handle(Geom_BSplineCurve) SPL1 = GeomAPI_PointsToBSpline(array1).Curve(); - - TColgp_Array1OfPnt array2 (1,5); // sizing array - array2.SetValue(1,gp_Pnt (-4,0, 2)); array2.SetValue(2,gp_Pnt (-2,2,0 )); - array2.SetValue(3,gp_Pnt (2 ,3,-1)); array2.SetValue(4,gp_Pnt (3 ,7,-2)); - array2.SetValue(5,gp_Pnt (4 ,9,-1)); - Handle(Geom_BSplineCurve) SPL2 = GeomAPI_PointsToBSpline(array2).Curve(); - - GeomFill_FillingStyle Type = GeomFill_StretchStyle; - GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); - Handle(Geom_BSplineSurface) aBSplineSurface1 = aGeomFill1.Surface(); - - Type = GeomFill_CoonsStyle; - GeomFill_BSplineCurves aGeomFill2( - Handle(Geom_BSplineCurve)::DownCast(SPL1->Translated(gp_Vec(10,0,0))), - Handle(Geom_BSplineCurve)::DownCast(SPL2->Translated(gp_Vec(10,0,0))),Type); - Handle(Geom_BSplineSurface) aBSplineSurface2 = aGeomFill2.Surface(); - Type = GeomFill_CurvedStyle; - GeomFill_BSplineCurves aGeomFill3( - Handle(Geom_BSplineCurve)::DownCast(SPL1->Translated(gp_Vec(20,0,0))), - Handle(Geom_BSplineCurve)::DownCast(SPL2->Translated(gp_Vec(20,0,0))),Type); - Handle(Geom_BSplineSurface) aBSplineSurface3 = aGeomFill3.Surface(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); // sizing array \n\ -array1.SetValue(1,gp_Pnt (-4,0,2 )); array1.SetValue(2,gp_Pnt (-7,2,2 )); \n\ -array1.SetValue(3,gp_Pnt (-6,3,1 )); array1.SetValue(4,gp_Pnt (-4,3,-1)); \n\ -array1.SetValue(5,gp_Pnt (-3,5,-2)); \n\ -Handle(Geom_BSplineCurve) SPL1 = GeomAPI_PointsToBSpline(array1).Curve(); \n\ - \n\ -TColgp_Array1OfPnt array2 (1,5); // sizing array \n\ -array2.SetValue(1,gp_Pnt (-4,0, 2)); array2.SetValue(2,gp_Pnt (-2,2,0 )); \n\ -array2.SetValue(3,gp_Pnt (2 ,3,-1)); array2.SetValue(4,gp_Pnt (3 ,7,-2)); \n\ -array2.SetValue(5,gp_Pnt (4 ,9,-1)); \n\ -Handle(Geom_BSplineCurve) SPL2 = GeomAPI_PointsToBSpline(array2).Curve(); \n\ - \n\ -GeomFill_FillingStyle Type = GeomFill_StretchStyle; \n\ -GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); \n\ -Handle(Geom_BSplineSurface) aBSplineSurface1 = aGeomFill1.Surface(); \n\ - \n\ -Type = GeomFill_CoonsStyle; \n\ -GeomFill_BSplineCurves aGeomFill2( \n"); -Message += "\ - Handle(Geom_BSplineCurve)::DownCast(SPL1->Translated(gp_Vec(10,0,0))), \n\ - Handle(Geom_BSplineCurve)::DownCast(SPL2->Translated(gp_Vec(10,0,0))),Type); \n\ -Handle(Geom_BSplineSurface) aBSplineSurface2 = aGeomFill2.Surface(); \n\ -Type = GeomFill_CurvedStyle; \n\ -GeomFill_BSplineCurves aGeomFill3( \n\ - Handle(Geom_BSplineCurve)::DownCast(SPL1->Translated(gp_Vec(20,0,0))), \n\ - Handle(Geom_BSplineCurve)::DownCast(SPL2->Translated(gp_Vec(20,0,0))),Type); \n\ -Handle(Geom_BSplineSurface) aBSplineSurface3 = aGeomFill3.Surface(); \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - // Trace des frontieres. -> FreeBoundaryAspect - // Trace des isoparametriques. --> UIsoAspect() - - DisplaySurface(aDoc,aBSplineSurface1,Quantity_NOC_YELLOW); - DisplaySurface(aDoc,aBSplineSurface2,Quantity_NOC_SALMON); - DisplaySurface(aDoc,aBSplineSurface3,Quantity_NOC_HOTPINK); - - for (int i=0;i<=2;i++) - { - DisplayCurve(aDoc,Handle(Geom_BSplineCurve)::DownCast(SPL1->Translated(gp_Vec(i*10,0,0))), Quantity_NOC_RED,false); - DisplayCurve(aDoc,Handle(Geom_BSplineCurve)::DownCast(SPL2->Translated(gp_Vec(i*10,0,0))), Quantity_NOC_GREEN,false); - } - - Message += "SPL1 is Red; \n"; - Message += "SPL2 is Green; \n"; - Message += "aBSplineSurface1 is Yellow; ( GeomFill_StretchStyle )\n"; - Message += "aBSplineSurface2 is Salmon; ( GeomFill_CoonsStyle ) \n"; - Message += "aBSplineSurface3 is Hot pink; ( GeomFill_CurvedStyle ) \n"; - - PostProcess(aDoc,ID_BUTTON_Test_38,TheDisplayType,Message); -} -void GeomSources::gpTest39(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); // sizing array - array1.SetValue(1,gp_Pnt (-4,0,2 )); - array1.SetValue(2,gp_Pnt (-5,1,0 )); - array1.SetValue(3,gp_Pnt (-6,2,-2 )); - array1.SetValue(4,gp_Pnt (-5,4,-7)); - array1.SetValue(5,gp_Pnt (-3,5,-12)); - - TColgp_Array1OfPnt array2 (1,5); // sizing array - array2.SetValue(1,gp_Pnt (-4,0, 2)); - array2.SetValue(2,gp_Pnt (-3,2,1 )); - array2.SetValue(3,gp_Pnt (-1,5,0)); - array2.SetValue(4,gp_Pnt (2 ,7,-1)); - array2.SetValue(5,gp_Pnt (4 ,9,-1)); - - TColgp_Array1OfPnt array3 (1,4); // sizing array - array3.SetValue(1,gp_Pnt (-3,5, -12)); - array3.SetValue(2,gp_Pnt (-2,6,-7 )); - array3.SetValue(3,gp_Pnt (0 ,8,-3)); - array3.SetValue(4,gp_Pnt (4 ,9,-1)); - - Handle(Geom_BSplineCurve) SPL1 = GeomAPI_PointsToBSpline(array1).Curve(); - Handle(Geom_BSplineCurve) SPL2 = GeomAPI_PointsToBSpline(array2).Curve(); - Handle(Geom_BSplineCurve) SPL3 = GeomAPI_PointsToBSpline(array3).Curve(); - - Handle(GeomAdaptor_Curve) SPL1Adaptor = new GeomAdaptor_Curve(SPL1); - Handle(GeomFill_SimpleBound) B1 = - new GeomFill_SimpleBound(SPL1Adaptor,Precision::Approximation(),Precision::Angular()); - Handle(GeomAdaptor_Curve) SPL2Adaptor = new GeomAdaptor_Curve(SPL2); - Handle(GeomFill_SimpleBound) B2 = - new GeomFill_SimpleBound(SPL2Adaptor,Precision::Approximation(),Precision::Angular()); - Handle(GeomAdaptor_Curve) SPL3Adaptor = new GeomAdaptor_Curve(SPL3); - Handle(GeomFill_SimpleBound) B3 = - new GeomFill_SimpleBound(SPL3Adaptor,Precision::Approximation(),Precision::Angular()); - Standard_Boolean NoCheck= Standard_False; - - Standard_Integer MaxDeg = 8; - Standard_Integer MaxSeg = 2; - GeomFill_ConstrainedFilling aConstrainedFilling(MaxDeg, MaxSeg); - - aConstrainedFilling.Init(B1,B2,B3,NoCheck); - - Handle(Geom_BSplineSurface) aBSplineSurface = aConstrainedFilling.Surface(); - -//============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); // sizing array \n\ -... \n\ -Handle(Geom_BSplineCurve) SPL1 = GeomAPI_PointsToBSpline(array1).Curve(); \n\ -Handle(Geom_BSplineCurve) SPL2 = GeomAPI_PointsToBSpline(array2).Curve(); \n\ -Handle(Geom_BSplineCurve) SPL3 = GeomAPI_PointsToBSpline(array3).Curve(); \n\ - \n\ -Handle(GeomAdaptor_Curve) SPL1Adaptor = new GeomAdaptor_Curve(SPL1); \n\ -Handle(GeomFill_SimpleBound) B1 = \n\ - new GeomFill_SimpleBound(SPL1Adaptor,Precision::Approximation(),Precision::Angular()); \n\ -Handle(GeomAdaptor_Curve) SPL2Adaptor = new GeomAdaptor_Curve(SPL2); \n\ -Handle(GeomFill_SimpleBound) B2 = \n\ - new GeomFill_SimpleBound(SPL2Adaptor,Precision::Approximation(),Precision::Angular()); \n\ -Handle(GeomAdaptor_Curve) SPL3Adaptor = new GeomAdaptor_Curve(SPL3); \n\ -Handle(GeomFill_SimpleBound) B3 = \n\ - new GeomFill_SimpleBound(SPL3Adaptor,Precision::Approximation(),Precision::Angular()); \n\ -Standard_Boolean NoCheck= Standard_False; \n\ - \n\ -Standard_Integer MaxDeg = 8; \n"); -Message += "\ -Standard_Integer MaxSeg = 2; \n\ -GeomFill_ConstrainedFilling aConstrainedFilling(MaxDeg, MaxSeg); \n\ - \n\ -aConstrainedFilling.Init(B1,B2,B3,NoCheck); \n\ - \n\ -Handle(Geom_BSplineSurface) aBSplineSurface = aConstrainedFilling.Surface(); \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - TCollection_AsciiString aString; - - DisplaySurface(aDoc,aBSplineSurface,Quantity_NOC_YELLOW); - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - DisplayCurve(aDoc,SPL2,Quantity_NOC_GREEN ,false); - DisplayCurve(aDoc,SPL3,Quantity_NOC_BLUE1 ,false); - - Message += "SPL1 is Red; \n"; - Message += "SPL2 is Green; \n"; - Message += "SPL3 is Blue; \n"; - - Message += "aBSplineSurface is Yellow; \n"; - - PostProcess(aDoc,ID_BUTTON_Test_39,TheDisplayType,Message); -} - -void GeomSources::gpTest40(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); // sizing array - array1.SetValue(1,gp_Pnt (-4,0,2 )); - array1.SetValue(2,gp_Pnt (-5,1,0 )); - array1.SetValue(3,gp_Pnt (-6,2,-2 )); - array1.SetValue(4,gp_Pnt (-5,4,-7)); - array1.SetValue(5,gp_Pnt (-3,5,-12)); - - Handle(Geom_Curve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - - GeomFill_Pipe aPipe(SPL1,1); - aPipe.Perform(); - Handle(Geom_Surface) aSurface= aPipe.Surface(); - Standard_CString aSurfaceEntityTypeName="Not Computed"; - if (!aSurface.IsNull()) - aSurfaceEntityTypeName = aSurface->DynamicType()->Name(); - - Handle(Geom_Ellipse) E = GC_MakeEllipse( gp::XOY() ,3,1).Value(); - GeomFill_Pipe aPipe2(SPL1,E); - aPipe2.Perform(); - Handle(Geom_Surface) aSurface2= aPipe2.Surface(); - Standard_CString aSurfaceEntityTypeName2="Not Computed"; - if (!aSurface2.IsNull()) { - aSurfaceEntityTypeName2 = aSurface2->DynamicType()->Name(); - aSurface2->Translate(gp_Vec(5,0,0)); } - - Handle(Geom_TrimmedCurve) TC1 = - GC_MakeSegment(gp_Pnt(1,1,1),gp_Pnt(5,5,5)); - Handle(Geom_TrimmedCurve) TC2 = - GC_MakeSegment(gp_Pnt(1,1,0),gp_Pnt(4,5,6)); - GeomFill_Pipe aPipe3(SPL1,TC1,TC2); - aPipe3.Perform(); - Handle(Geom_Surface) aSurface3 = aPipe3.Surface(); - Standard_CString aSurfaceEntityTypeName3="Not Computed"; - if (!aSurface3.IsNull()) - { - aSurfaceEntityTypeName3 = aSurface3->DynamicType()->Name(); - aSurface3->Translate(gp_Vec(10,0,0)); - } - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ - \n\ -TColgp_Array1OfPnt array1 (1,5); // sizing array \n\ -array1.SetValue(1,gp_Pnt (-4,0,2 )); \n\ -array1.SetValue(2,gp_Pnt (-5,1,0 )); \n\ -array1.SetValue(3,gp_Pnt (-6,2,-2 )); \n\ -array1.SetValue(4,gp_Pnt (-5,4,-7)); \n\ -array1.SetValue(5,gp_Pnt (-3,5,-12)); \n\ - \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array1).Curve(); \n\ - \n\ -GeomFill_Pipe aPipe(SPL1,1); \n\ -aPipe.Perform(); \n\ -Handle(Geom_Surface) aSurface= aPipe.Surface(); \n\ -Standard_CString aSurfaceEntityTypeName=\"Not Computed\"; \n\ -if (!aSurface.IsNull()) \n\ - aSurfaceEntityTypeName = aSurface->DynamicType()->Name(); \n\ - \n\ -Handle(Geom_Ellipse) E = GC_MakeEllipse( gp::XOY() ,3,1).Value(); \n\ -GeomFill_Pipe aPipe2(SPL1,E); \n\ -aPipe2.Perform(); \n"); -Message += "\ -Handle(Geom_Surface) aSurface2= aPipe2.Surface(); \n\ -Standard_CString aSurfaceEntityTypeName2=\"Not Computed\"; \n\ -if (!aSurface2.IsNull()) { \n\ - aSurfaceEntityTypeName2 = aSurface2->DynamicType()->Name(); \n\ - aSurface2->Translate(gp_Vec(5,0,0)); } \n\ - \n\ -Handle(Geom_TrimmedCurve) TC1 = \n\ - GC_MakeSegment(gp_Pnt(1,1,1),gp_Pnt(5,5,5)); \n\ -Handle(Geom_TrimmedCurve) TC2 = \n\ - GC_MakeSegment(gp_Pnt(1,1,0),gp_Pnt(4,5,6)); \n\ -GeomFill_Pipe aPipe3(SPL1,TC1,TC2); \n\ -aPipe3.Perform(); \n\ -Handle(Geom_Surface) aSurface3 = aPipe3.Surface(); \n\ -Standard_CString aSurfaceEntityTypeName3=\"Not Computed\"; \n\ -if (!aSurface3.IsNull()) \n\ - { \n\ - aSurfaceEntityTypeName3 = aSurface3->DynamicType()->Name(); \n\ - aSurface3->Translate(gp_Vec(10,0,0)); \n\ - } \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - if (!aSurface.IsNull()) - { - DisplaySurface(aDoc,aSurface,Quantity_NOC_YELLOW); - } - if (!aSurface2.IsNull()) - { - DisplaySurface(aDoc,aSurface2,Quantity_NOC_YELLOW); - } - if (!aSurface3.IsNull()) - { - DisplaySurface(aDoc,aSurface3,Quantity_NOC_YELLOW); - } - - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - - Message += "SPL1 is Red; \n"; - - - TCollection_AsciiString Message2(aSurfaceEntityTypeName); - TCollection_AsciiString Message3(aSurfaceEntityTypeName2); - TCollection_AsciiString Message4(aSurfaceEntityTypeName3); - - Message += " aSurfaceEntityTypeName = ";Message+= Message2; Message += "\n"; - Message += " aSurfaceEntityTypeName2 = ";Message+= Message3; Message += "\n"; - Message += " aSurfaceEntityTypeName3 = ";Message+= Message4; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_40,TheDisplayType,Message); -} - -void GeomSources::gpTest41(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); - array1.SetValue(1,gp_Pnt (-4,0,2 )); - array1.SetValue(2,gp_Pnt (-5,1,0 )); - array1.SetValue(3,gp_Pnt (-6,2,-2 )); - array1.SetValue(4,gp_Pnt (-5,4,-7)); - array1.SetValue(5,gp_Pnt (-3,5,-12)); - - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - Handle(Geom_Curve) FirstSect = - GC_MakeSegment(gp_Pnt(-4,0,2),gp_Pnt(-4,0,10)).Value(); - - GeomFill_Pipe aPipe(SPL1,FirstSect); - aPipe.Perform(); - - Handle(Geom_BSplineSurface) aPipeSurface = - Handle(Geom_BSplineSurface)::DownCast(aPipe.Surface()); - Handle(Geom_BSplineSurface) anotherBSplineSurface = - GeomConvert::SplitBSplineSurface(aPipeSurface,1,2,3,6); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); \n\ -array1.SetValue(1,gp_Pnt (-4,0,2 )); \n\ -array1.SetValue(2,gp_Pnt (-5,1,0 )); \n\ -array1.SetValue(3,gp_Pnt (-6,2,-2 )); \n\ -array1.SetValue(4,gp_Pnt (-5,4,-7)); \n\ -array1.SetValue(5,gp_Pnt (-3,5,-12)); \n\ - \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array1).Curve(); \n\ -Handle(Geom_Curve) FirstSect = \n\ - GC_MakeSegment(gp_Pnt(-4,0,2),gp_Pnt(-4,0,10)).Value(); \n\ - \n\ -GeomFill_Pipe aPipe(SPL1,FirstSect); \n\ -aPipe.Perform(); \n\ - \n\ -Handle(Geom_BSplineSurface) aPipeSurface = \n\ - Handle(Geom_BSplineSurface)::DownCast(aPipe.Surface()); \n\ -Handle(Geom_BSplineSurface) anotherBSplineSurface = \n\ - GeomConvert::SplitBSplineSurface(aPipeSurface,1,2,3,6); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - if(!aPipeSurface.IsNull()) - { - DisplaySurface(aDoc,aPipeSurface,Quantity_NOC_YELLOW); - } - - if(!anotherBSplineSurface.IsNull()) - { - DisplaySurface(aDoc,anotherBSplineSurface,Quantity_NOC_HOTPINK); - } - - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - DisplayCurve(aDoc,FirstSect,Quantity_NOC_GREEN ,false); - - Message += "SPL1 is Red; \n"; - Message += "SPL2 is Green; \n"; - Message += "SPL3 is Blue; \n"; - Message += "aBSplineSurface is Yellow; \n"; - Message += "anotherBSplineSurface is Hot Pink; \n"; - - PostProcess(aDoc,ID_BUTTON_Test_41,TheDisplayType,Message); -} - - -void GeomSources::gpTest42(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - TColgp_Array2OfPnt array1(1,3,1,3); - TColgp_Array2OfPnt array2(1,3,1,3); - TColgp_Array2OfPnt array3(1,3,1,3); - TColgp_Array2OfPnt array4(1,3,1,3); - - array1.SetValue(1,1,gp_Pnt(1,1,1)); - array1.SetValue(1,2,gp_Pnt(2,1,2)); - array1.SetValue(1,3,gp_Pnt(3,1,1)); - array1.SetValue(2,1,gp_Pnt(1,2,1)); - array1.SetValue(2,2,gp_Pnt(2,2,2)); - array1.SetValue(2,3,gp_Pnt(3,2,0)); - array1.SetValue(3,1,gp_Pnt(1,3,2)); - array1.SetValue(3,2,gp_Pnt(2,3,1)); - array1.SetValue(3,3,gp_Pnt(3,3,0)); - - array2.SetValue(1,1,gp_Pnt(3,1,1)); - array2.SetValue(1,2,gp_Pnt(4,1,1)); - array2.SetValue(1,3,gp_Pnt(5,1,2)); - array2.SetValue(2,1,gp_Pnt(3,2,0)); - array2.SetValue(2,2,gp_Pnt(4,2,1)); - array2.SetValue(2,3,gp_Pnt(5,2,2)); - array2.SetValue(3,1,gp_Pnt(3,3,0)); - array2.SetValue(3,2,gp_Pnt(4,3,0)); - array2.SetValue(3,3,gp_Pnt(5,3,1)); - - array3.SetValue(1,1,gp_Pnt(1,3,2)); - array3.SetValue(1,2,gp_Pnt(2,3,1)); - array3.SetValue(1,3,gp_Pnt(3,3,0)); - array3.SetValue(2,1,gp_Pnt(1,4,1)); - array3.SetValue(2,2,gp_Pnt(2,4,0)); - array3.SetValue(2,3,gp_Pnt(3,4,1)); - array3.SetValue(3,1,gp_Pnt(1,5,1)); - array3.SetValue(3,2,gp_Pnt(2,5,1)); - array3.SetValue(3,3,gp_Pnt(3,5,2)); - - array4.SetValue(1,1,gp_Pnt(3,3,0)); - array4.SetValue(1,2,gp_Pnt(4,3,0)); - array4.SetValue(1,3,gp_Pnt(5,3,1)); - array4.SetValue(2,1,gp_Pnt(3,4,1)); - array4.SetValue(2,2,gp_Pnt(4,4,1)); - array4.SetValue(2,3,gp_Pnt(5,4,1)); - array4.SetValue(3,1,gp_Pnt(3,5,2)); - array4.SetValue(3,2,gp_Pnt(4,5,2)); - array4.SetValue(3,3,gp_Pnt(5,5,1)); - - Handle(Geom_BezierSurface) BZ1 = - new Geom_BezierSurface(array1); - Handle(Geom_BezierSurface) BZ2 = - new Geom_BezierSurface(array2); - Handle(Geom_BezierSurface) BZ3 = - new Geom_BezierSurface(array3); - Handle(Geom_BezierSurface) BZ4 = - new Geom_BezierSurface(array4); - - TColGeom_Array2OfBezierSurface bezierarray(1,2,1,2); - bezierarray.SetValue(1,1,BZ1); - bezierarray.SetValue(1,2,BZ2); - bezierarray.SetValue(2,1,BZ3); - bezierarray.SetValue(2,2,BZ4); - - GeomConvert_CompBezierSurfacesToBSplineSurface BB (bezierarray); - Handle(Geom_BSplineSurface) BSPLSURF ; - if (BB.IsDone()) - { - BSPLSURF = new Geom_BSplineSurface( - BB.Poles()->Array2(), - BB.UKnots()->Array1(), - BB.VKnots()->Array1(), - BB.UMultiplicities()->Array1(), - BB.VMultiplicities()->Array1(), - BB.UDegree(), - BB.VDegree() ); - BSPLSURF->Translate(gp_Vec(0,0,2)); - } - - //============================================================== - - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array2OfPnt array1(1,3,1,3); \n\ -TColgp_Array2OfPnt array2(1,3,1,3); \n\ -TColgp_Array2OfPnt array3(1,3,1,3); \n\ -TColgp_Array2OfPnt array4(1,3,1,3); \n\ - \n\ -// array1.SetValue( ... \n\ - \n\ -Handle(Geom_BezierSurface) BZ1 = \n\ - new Geom_BezierSurface(array1); \n\ -Handle(Geom_BezierSurface) BZ2 = \n\ - new Geom_BezierSurface(array2); \n\ -Handle(Geom_BezierSurface) BZ3 = \n\ - new Geom_BezierSurface(array3); \n\ -Handle(Geom_BezierSurface) BZ4 = \n\ - new Geom_BezierSurface(array4); \n\ - \n\ -TColGeom_Array2OfBezierSurface bezierarray(1,2,1,2); \n\ -bezierarray.SetValue(1,1,BZ1); \n\ -bezierarray.SetValue(1,2,BZ2); \n\ -bezierarray.SetValue(2,1,BZ3); \n\ -bezierarray.SetValue(2,2,BZ4); \n\ - \n\ -GeomConvert_CompBezierSurfacesToBSplineSurface BB (bezierarray); \n\ - Handle(Geom_BSplineSurface) BSPLSURF ; \n\ -if (BB.IsDone()){ \n\ - BSPLSURF = new Geom_BSplineSurface( \n\ - BB.Poles()->Array2(), \n\ - BB.UKnots()->Array1(), \n"); - Message += "\ - BB.VKnots()->Array1(), \n\ - BB.UMultiplicities()->Array1(), \n\ - BB.VMultiplicities()->Array1(), \n\ - BB.UDegree(), \n\ - BB.VDegree() ); \n\ - BSPLSURF->Translate(gp_Vec(0,0,2)); \n\ - } \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplaySurface(aDoc,BZ1,Quantity_NOC_RED); - DisplaySurface(aDoc,BZ2,Quantity_NOC_GREEN); - DisplaySurface(aDoc,BZ3,Quantity_NOC_BLUE1); - DisplaySurface(aDoc,BZ4,Quantity_NOC_BROWN); - - if (BB.IsDone()){ - DisplaySurface(aDoc,BSPLSURF,Quantity_NOC_HOTPINK); - } - - Message += "BZ1 is Red; \n"; - Message += "BZ2 is Green; \n"; - Message += "BZ3 is Blue; \n"; - Message += "BZ4 is Brown; \n"; - Message += "BSPLSURF is Hot Pink; \n"; - - PostProcess(aDoc,ID_BUTTON_Test_42,TheDisplayType,Message); -} - -void GeomSources::gpTest43(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); - array1.SetValue(1,gp_Pnt (-4,5,5 )); - array1.SetValue(2,gp_Pnt (-3,6,6 )); - array1.SetValue(3,gp_Pnt (-1,7,7 )); - array1.SetValue(4,gp_Pnt (0,8,8)); - array1.SetValue(5,gp_Pnt (2,9,9)); - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - - TColgp_Array1OfPnt array2 (1,5); - array2.SetValue(1,gp_Pnt (-4,5,2 )); - array2.SetValue(2,gp_Pnt (-3,6,3 )); - array2.SetValue(3,gp_Pnt (-1,7,4 )); - array2.SetValue(4,gp_Pnt (0,8,5)); - array2.SetValue(5,gp_Pnt (2,9,6)); - Handle(Geom_BSplineCurve) SPL2 = - GeomAPI_PointsToBSpline(array2).Curve(); - - GeomFill_FillingStyle Type = GeomFill_StretchStyle; - GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); - Handle(Geom_BSplineSurface) aGeomSurface = aGeomFill1.Surface(); - Standard_Real offset = 1; - Handle(Geom_OffsetSurface) GOS = new Geom_OffsetSurface(aGeomSurface, offset); - offset = 2; - Handle(Geom_OffsetSurface) GOS1 = new Geom_OffsetSurface(aGeomSurface, offset); - offset = 3; - Handle(Geom_OffsetSurface) GOS2 = new Geom_OffsetSurface(aGeomSurface, offset); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); \n\ -//array1.SetValue( ... \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array1).Curve(); \n\ - \n\ -TColgp_Array1OfPnt array2 (1,5); \n\ -// array2.SetValue( ... \n\ - \n\ -Handle(Geom_BSplineCurve) SPL2 = \n\ - GeomAPI_PointsToBSpline(array2).Curve(); \n\ - \n\ -GeomFill_FillingStyle Type = GeomFill_StretchStyle; \n\ -GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); \n\ -Handle(Geom_BSplineSurface) aGeomSurface = aGeomFill1.Surface(); \n\ -Standard_Real offset = 1; \n\ -Handle(Geom_OffsetSurface) GOS = new Geom_OffsetSurface(aGeomSurface, offset); \n\ - offset = 2; \n\ -Handle(Geom_OffsetSurface) GOS1 = new Geom_OffsetSurface(aGeomSurface, offset); \n\ -offset = 3; \n\ -Handle(Geom_OffsetSurface) GOS2 = new Geom_OffsetSurface(aGeomSurface, offset); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplaySurface(aDoc,aGeomSurface,Quantity_NOC_BLUE1); - DisplaySurface(aDoc,GOS,Quantity_NOC_GREEN); - DisplaySurface(aDoc,GOS1,Quantity_NOC_GREEN); - DisplaySurface(aDoc,GOS2,Quantity_NOC_GREEN); - - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - DisplayCurve(aDoc,SPL2,Quantity_NOC_HOTPINK ,false); - - Message += "aGeomSurface is Blue; \n"; - Message += "GOS are Green; \n"; - - PostProcess(aDoc,ID_BUTTON_Test_43,TheDisplayType,Message); -} - -void GeomSources::gpTest44(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - gp_Pnt P1(0,0,1); - gp_Pnt P2(1,2,2); - gp_Pnt P3(2,3,3); - gp_Pnt P4(4,3,4); - gp_Pnt P5(5,5,5); - TColgp_Array1OfPnt array (1,5); - array.SetValue(1,P1); - array.SetValue(2,P2); - array.SetValue(3,P3); - array.SetValue(4,P4); - array.SetValue(5,P5); - Handle(Geom_BSplineCurve) aCurve = - GeomAPI_PointsToBSpline(array).Curve(); - gp_Dir aDir(1,2,3); - Handle(Geom_SurfaceOfLinearExtrusion) SOLE = - new Geom_SurfaceOfLinearExtrusion(aCurve,aDir); - - Handle(Geom_RectangularTrimmedSurface) aTrimmedSurface = - new Geom_RectangularTrimmedSurface(SOLE,-10,10,false); - - Standard_CString SOLEEntityTypeName="Not Computed"; - if (!SOLE.IsNull()) - { - SOLEEntityTypeName = SOLE->DynamicType()->Name(); - } - - //============================================================== - - TCollection_AsciiString Message (" \ - \n\ -gp_Pnt P1(0,0,1); \n\ -gp_Pnt P2(1,2,2); \n\ -gp_Pnt P3(2,3,3); \n\ -gp_Pnt P4(4,3,4); \n\ -gp_Pnt P5(5,5,5); \n\ -TColgp_Array1OfPnt array (1,5); \n\ -array.SetValue(1,P1); \n\ -array.SetValue(2,P2); \n\ -array.SetValue(3,P3); \n\ -array.SetValue(4,P4); \n\ -array.SetValue(5,P5); \n\ -Handle(Geom_BSplineCurve) aCurve = \n\ - GeomAPI_PointsToBSpline(array).Curve(); \n\ -gp_Dir aDir(1,2,3); \n\ -Handle(Geom_SurfaceOfLinearExtrusion) SOLE = \n\ - new Geom_SurfaceOfLinearExtrusion(aCurve,aDir); \n\ - \n\ -Handle(Geom_RectangularTrimmedSurface) aTrimmedSurface = \n\ - new Geom_RectangularTrimmedSurface(SOLE,-10,10,false); \n\ - \n\ -Standard_CString SOLEEntityTypeName=\"Not Computed\"; \n\ -if (!SOLE.IsNull()) \n\ - { \n\ - SOLEEntityTypeName = SOLE->DynamicType()->Name(); \n\ - } \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplaySurface(aDoc,aTrimmedSurface,Quantity_NOC_GREEN); - DisplayCurve(aDoc,aCurve,Quantity_NOC_RED ,false); - - Message += "aCurve is Red; \n"; - Message += "aTrimmedSurface is Green; \n"; - - TCollection_AsciiString Message2 (SOLEEntityTypeName); - - Message += " SOLEEntityTypeName = ";Message+= Message2; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_44,TheDisplayType,Message); -} - -void GeomSources::gpTest45(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - TColgp_Array1OfPnt array (1,5); - array.SetValue(1,gp_Pnt (0,0,1)); - array.SetValue(2,gp_Pnt (1,2,2)); - array.SetValue(3,gp_Pnt (2,3,3)); - array.SetValue(4,gp_Pnt (4,3,4)); - array.SetValue(5,gp_Pnt (5,5,5)); - Handle(Geom_BSplineCurve) aCurve = - GeomAPI_PointsToBSpline(array).Curve(); - Handle(Geom_SurfaceOfRevolution) SOR = - new Geom_SurfaceOfRevolution(aCurve,gp::OX()); - - Standard_CString SOREntityTypeName="Not Computed"; - if (!SOR.IsNull()) - SOREntityTypeName = SOR->DynamicType()->Name(); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array (1,5); \n\ -array.SetValue(1,gp_Pnt 0,0,1)); \n\ -array.SetValue(2,gp_Pnt (1,2,2)); \n\ -array.SetValue(3,gp_Pnt (2,3,3)); \n\ -array.SetValue(4,gp_Pnt (4,3,4)); \n\ -array.SetValue(5,gp_Pnt (5,5,5)); \n\ -Handle(Geom_BSplineCurve) aCurve = \n\ - GeomAPI_PointsToBSpline(array).Curve(); \n\ -Handle(Geom_SurfaceOfRevolution) SOR = \n\ - new Geom_SurfaceOfRevolution(aCurve,gp::OX()); \n\ - \n\ -Standard_CString SOREntityTypeName=\"Not Computed\"; \n\ -if (!SOR.IsNull()) \n\ - SOREntityTypeName = SOR->DynamicType()->Name(); \n\ - \n"); - AddSeparator(aDoc,Message); - - //-------------------------------------------------------------- - DisplaySurface(aDoc,SOR,Quantity_NOC_GREEN); - DisplayCurve(aDoc,aCurve,Quantity_NOC_RED ,false); - - Message += "aCurve is Red; \n"; - Message += "SOR is Green; \n"; - TCollection_AsciiString Message2 (SOREntityTypeName); - Message += " SOREntityTypeName = ";Message+= Message2; Message += "\n"; - - PostProcess(aDoc,ID_BUTTON_Test_45,TheDisplayType,Message); -} - -void GeomSources::gpTest46(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); - array1.SetValue(1,gp_Pnt (-4,5,5 )); - array1.SetValue(2,gp_Pnt (-3,6,6 )); - array1.SetValue(3,gp_Pnt (-1,6,7 )); - array1.SetValue(4,gp_Pnt (0,8,8)); - array1.SetValue(5,gp_Pnt (2,9,9)); - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - - TColgp_Array1OfPnt array2 (1,5); - array2.SetValue(1,gp_Pnt (-4,5,2 )); - array2.SetValue(2,gp_Pnt (-3,6,3 )); - array2.SetValue(3,gp_Pnt (-1,7,4 )); - array2.SetValue(4,gp_Pnt (0,8,5)); - array2.SetValue(5,gp_Pnt (2,9,6)); - Handle(Geom_BSplineCurve) SPL2 = - GeomAPI_PointsToBSpline(array2).Curve(); - - GeomFill_FillingStyle Type = GeomFill_StretchStyle; - GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); - Handle(Geom_BSplineSurface) aGeomSurface = aGeomFill1.Surface(); - - Handle(Geom_BoundedSurface) aTranslatedGeomSurface = - Handle(Geom_BoundedSurface)::DownCast(aGeomSurface->Copy()); - - Standard_Real extension = 3; - Standard_Integer continuity = 2; - Standard_Boolean Udirection = Standard_True; - Standard_Boolean after = Standard_True; - GeomLib::ExtendSurfByLength (aTranslatedGeomSurface, - extension,continuity,Udirection,after); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); \n\ -// ... \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array1).Curve(); \n\ - \n\ -TColgp_Array1OfPnt array2 (1,5); \n\ -// ... \n\ -Handle(Geom_BSplineCurve) SPL2 = \n\ - GeomAPI_PointsToBSpline(array2).Curve(); \n\ - \n\ -GeomFill_FillingStyle Type = GeomFill_StretchStyle; \n\ -GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); \n\ -Handle(Geom_BSplineSurface) aGeomSurface = aGeomFill1.Surface(); \n\ - \n\ -Handle(Geom_BoundedSurface) aTranslatedGeomSurface = \n\ - Handle(Geom_BoundedSurface)::DownCast(aGeomSurface->Copy()); \n\ - \n\ -Standard_Real extension = 3; \n\ -Standard_Integer continuity = 2; \n\ -Standard_Boolean Udirection = Standard_True; \n\ -Standard_Boolean after = Standard_True; \n\ -GeomLib::ExtendSurfByLength (aTranslatedGeomSurface, \n\ - extension,continuity,Udirection,after); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - if (!aGeomSurface.IsNull()) - { - DisplaySurface(aDoc,aGeomSurface,Quantity_NOC_HOTPINK); - } - - if (!aTranslatedGeomSurface.IsNull()) - { - DisplaySurface(aDoc,aTranslatedGeomSurface,Quantity_NOC_BLUE1); - } - - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - DisplayCurve(aDoc,SPL2,Quantity_NOC_GREEN ,false); - - Message += "aGeomSurface is Hot Pink; \n"; - Message += "aTranslatedGeomSurface is Blue; \n"; - Message += "SPL1 is Red; \n"; - Message += "SPL2 is Green; \n"; - - PostProcess(aDoc,ID_BUTTON_Test_46,TheDisplayType,Message); -} - -void GeomSources::gpTest47(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - - TColgp_Array1OfPnt array1 (1,5); - array1.SetValue(1,gp_Pnt (-5,1,2)); - array1.SetValue(2,gp_Pnt (-5,2,2)); - array1.SetValue(3,gp_Pnt (-5.3,3,1)); - array1.SetValue(4,gp_Pnt (-5,4,1)); - array1.SetValue(5,gp_Pnt (-5,5,2)); - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - - TColgp_Array1OfPnt array2 (1,5); - array2.SetValue(1,gp_Pnt (4,1,2)); - array2.SetValue(2,gp_Pnt (4,2,2)); - array2.SetValue(3,gp_Pnt (3.7,3,1)); - array2.SetValue(4,gp_Pnt (4,4,1)); - array2.SetValue(5,gp_Pnt (4,5,2)); - Handle(Geom_BSplineCurve) SPL2 = - GeomAPI_PointsToBSpline(array2).Curve(); - - GeomFill_FillingStyle Type = GeomFill_StretchStyle; - - GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); - Handle(Geom_BSplineSurface) aSurf1 = aGeomFill1.Surface(); - - TColgp_Array2OfPnt array3 (1,5,1,5); - array3.SetValue(1,1,gp_Pnt (-4,-4,5)); - array3.SetValue(1,2,gp_Pnt (-4,-2,5)); - array3.SetValue(1,3,gp_Pnt (-4,0,4)); - array3.SetValue(1,4,gp_Pnt (-4,2,5)); - array3.SetValue(1,5,gp_Pnt (-4,4,5)); - - array3.SetValue(2,1,gp_Pnt (-2,-4,4)); - array3.SetValue(2,2,gp_Pnt (-2,-2,4)); - array3.SetValue(2,3,gp_Pnt (-2,0,4)); - array3.SetValue(2,4,gp_Pnt (-2,2,4)); - array3.SetValue(2,5,gp_Pnt (-2,5,4)); - - array3.SetValue(3,1,gp_Pnt (0,-4,3.5)); - array3.SetValue(3,2,gp_Pnt (0,-2,3.5)); - array3.SetValue(3,3,gp_Pnt (0,0,3.5)); - array3.SetValue(3,4,gp_Pnt (0,2,3.5)); - array3.SetValue(3,5,gp_Pnt (0,5,3.5)); - - array3.SetValue(4,1,gp_Pnt (2,-4,4)); - array3.SetValue(4,2,gp_Pnt (2,-2,4)); - array3.SetValue(4,3,gp_Pnt (2,0,3.5)); - array3.SetValue(4,4,gp_Pnt (2,2,5)); - array3.SetValue(4,5,gp_Pnt (2,5,4)); - - array3.SetValue(5,1,gp_Pnt (4,-4,5)); - array3.SetValue(5,2,gp_Pnt (4,-2,5)); - array3.SetValue(5,3,gp_Pnt (4,0,5)); - array3.SetValue(5,4,gp_Pnt (4,2,6)); - array3.SetValue(5,5,gp_Pnt (4,5,5)); - - Handle(Geom_BSplineSurface) aSurf2 = - GeomAPI_PointsToBSplineSurface(array3).Surface(); - - GeomAPI_ExtremaSurfaceSurface ESS(aSurf1,aSurf2); - //Standard_Real dist = ESS.LowerDistance(); - gp_Pnt P1,P2; - ESS.NearestPoints(P1,P2); - - gp_Pnt P3,P4; - Handle(Geom_Curve) aCurve; - Standard_Integer NbExtrema = ESS.NbExtrema(); - for(Standard_Integer k=1;k<=NbExtrema;k++){ - ESS.Points(k,P3,P4); - aCurve= GC_MakeSegment(P3,P4).Value(); - DisplayCurve(aDoc,aCurve,Quantity_NOC_YELLOW3,false); -} - -//============================================================== - - TCollection_AsciiString Message (" \n\ -GeomFill_FillingStyle Type = GeomFill_StretchStyle; \n\ - \n\ -GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); \n\ -Handle(Geom_BSplineSurface) aSurf1 = aGeomFill1.Surface(); \n\ - \n\ -Handle(Geom_BSplineSurface) aSurf2 = \n\ - GeomAPI_PointsToBSplineSurface(array3).Surface(); \n\ - \n\ -GeomAPI_ExtremaSurfaceSurface ESS(aSurf1,aSurf2); \n\ -Standard_Real dist = ESS.LowerDistance(); \n\ -gp_Pnt P1,P2; \n\ -ESS.NearestPoints(P1,P2); \n\ - \n"); - - AddSeparator(aDoc,Message); - Message += "aSurf1 is Green; \n"; - Message += "aSurf2 is Hot Pink; \n"; - Message += "Nearest points P1 and P2 are shown; \n"; - - //-------------------------------------------------------------- - -//mfa - - DisplaySurface(aDoc,aSurf1,Quantity_NOC_GREEN); - DisplaySurface(aDoc,aSurf2,Quantity_NOC_HOTPINK); - DisplayCurve(aDoc,SPL1,Quantity_NOC_RED ,false); - DisplayCurve(aDoc,SPL2,Quantity_NOC_AZURE ,false); - - DisplayPoint(aDoc,P1,Standard_CString("P1")); - DisplayPoint(aDoc,P2,Standard_CString("P2")); - - PostProcess(aDoc,ID_BUTTON_Test_47,TheDisplayType,Message); -} - -void GeomSources::gpTest48(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = a2DNo3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - Standard_Real radius = 3; - Handle(Geom2d_Circle) circle = - new Geom2d_Circle(gp_Ax22d(gp_Pnt2d(-7,2),gp_Dir2d(1,0)),radius); - - Handle(Geom2d_TrimmedCurve) C = new Geom2d_TrimmedCurve(circle,1,5); - - Geom2dAdaptor_Curve GAC (C); - - - TColgp_Array1OfPnt2d array (1,5); // sizing array - array.SetValue(1,gp_Pnt2d (0,0)); - array.SetValue(2,gp_Pnt2d (1,2)); - array.SetValue(3,gp_Pnt2d (2,3)); - array.SetValue(4,gp_Pnt2d (4,3)); - array.SetValue(5,gp_Pnt2d (5,5)); - Handle(Geom2d_BSplineCurve) SPL1 = - Geom2dAPI_PointsToBSpline(array); - - - Handle(TColgp_HArray1OfPnt2d) harray = - new TColgp_HArray1OfPnt2d (1,5); // sizing harray - harray->SetValue(1,gp_Pnt2d (13+ 0,0)); - harray->SetValue(2,gp_Pnt2d (13+ 1,2)); - harray->SetValue(3,gp_Pnt2d (13+ 2,3)); - harray->SetValue(4,gp_Pnt2d (13+ 4,3)); - harray->SetValue(5,gp_Pnt2d (13+ 5,5)); - Geom2dAPI_Interpolate anInterpolation(harray,Standard_True,0.01); - anInterpolation.Perform(); - Handle(Geom2d_BSplineCurve) SPL2 = anInterpolation.Curve(); - - Bnd_Box2d aCBox; - Geom2dAdaptor_Curve GACC (C); - BndLib_Add2dCurve::Add (GACC,Precision::Approximation(),aCBox); - - Standard_Real aCXmin, aCYmin, aCXmax, aCYmax; - aCBox.Get( aCXmin, aCYmin, aCXmax,aCYmax); - - Bnd_Box2d aSPL1Box; - Geom2dAdaptor_Curve GAC1 (SPL1); - BndLib_Add2dCurve::Add (GAC1,Precision::Approximation(),aSPL1Box); - - Standard_Real aSPL1Xmin,aSPL1Ymin,aSPL1Xmax,aSPL1Ymax; - aSPL1Box.Get( aSPL1Xmin, aSPL1Ymin, aSPL1Xmax,aSPL1Ymax); - - Bnd_Box2d aSPL2Box; - Geom2dAdaptor_Curve GAC2 (SPL2); - BndLib_Add2dCurve::Add (GAC2,Precision::Approximation(),aSPL2Box); - - Standard_Real aSPL2Xmin,aSPL2Ymin,aSPL2Xmax,aSPL2Ymax; - aSPL2Box.Get( aSPL2Xmin, aSPL2Ymin, aSPL2Xmax,aSPL2Ymax); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -Standard_Real radius = 3; \n\ -Handle(Geom2d_Circle) circle = \n\ - new Geom2d_Circle(gp_Ax22d(gp_Pnt2d(-7,2),gp_Dir2d(1,0)),radius); \n\ - \n\ -Handle(Geom2d_TrimmedCurve) C = new Geom2d_TrimmedCurve(circle,1,5); \n\ -Geom2dAdaptor_Curve GAC (C); \n\ - \n\ -Handle(Geom2d_BSplineCurve) SPL1 ; // SPL1 = ... \n\ - \n\ -Handle(Geom2d_BSplineCurve) SPL2 ; // SPL2 = ... \n\ - \n\ -Bnd_Box2d aCBox; \n\ -Geom2dAdaptor_Curve GACC (C); \n\ -BndLib_Add2dCurve::Add (GACC,Precision::Approximation(),aCBox); \n\ - \n\ -Standard_Real aCXmin, aCYmin, aCXmax, aCYmax; \n\ -aCBox.Get( aCXmin, aCYmin, aCXmax,aCYmax); \n\ - \n\ -Bnd_Box2d aSPL1Box; \n\ -Geom2dAdaptor_Curve GAC1 (SPL1); \n\ -BndLib_Add2dCurve::Add (GAC1,Precision::Approximation(),aSPL1Box); \n\ - \n\ -Standard_Real aSPL1Xmin,aSPL1Ymin,aSPL1Xmax,aSPL1Ymax; \n\ -aSPL1Box.Get( aSPL1Xmin, aSPL1Ymin, aSPL1Xmax,aSPL1Ymax); \n"); -Message += "\ - \n\ -Bnd_Box2d aSPL2Box; \n\ -Geom2dAdaptor_Curve GAC2 (SPL2); \n\ -BndLib_Add2dCurve::Add (GAC2,Precision::Approximation(),aSPL2Box); \n\ - \n\ -Standard_Real aSPL2Xmin,aSPL2Ymin,aSPL2Xmax,aSPL2Ymax; \n\ -aSPL2Box.Get( aSPL2Xmin, aSPL2Ymin, aSPL2Xmax,aSPL2Ymax); \n\ - \n"; - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayCurve(aDoc,C ,5); - DisplayCurve(aDoc,SPL1,6 ); - DisplayCurve(aDoc,SPL2,7 ); - - DisplayPoint(aDoc,gp_Pnt2d(aCXmin,aCYmax),Standard_CString("aCXmin,aCYmax")); - DisplayPoint(aDoc,gp_Pnt2d(aCXmax,aCYmax),Standard_CString("aCXmax,aCYmax")); - DisplayPoint(aDoc,gp_Pnt2d(aCXmin,aCYmin),Standard_CString("aCXmin,aCYmin")); - DisplayPoint(aDoc,gp_Pnt2d(aCXmax,aCYmin),Standard_CString("aCXmax,aCYmin")); - - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aCXmin,aCYmax),gp_Pnt2d(aCXmax,aCYmax)).Value() ,4); // X,Ymax - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aCXmin,aCYmin),gp_Pnt2d(aCXmax,aCYmin)).Value() ,4); // X,Ymin - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aCXmin,aCYmin),gp_Pnt2d(aCXmin,aCYmax)).Value() ,4); // Xmin,Y - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aCXmax,aCYmin),gp_Pnt2d(aCXmax,aCYmax)).Value() ,4); // Xmax,Y - - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmin,aSPL1Ymax),Standard_CString("aSPL1Xmin,aSPL1Ymax")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmax,aSPL1Ymax),Standard_CString("aSPL1Xmax,aSPL1Ymax")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmin,aSPL1Ymin),Standard_CString("aSPL1Xmin,aSPL1Ymin")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmax,aSPL1Ymin),Standard_CString("aSPL1Xmax,aSPL1Ymin")); - - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL1Xmin,aSPL1Ymax),gp_Pnt2d(aSPL1Xmax,aSPL1Ymax)).Value() ,4); // X,Ymax - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL1Xmin,aSPL1Ymin),gp_Pnt2d(aSPL1Xmax,aSPL1Ymin)).Value() ,4); // X,Ymin - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL1Xmin,aSPL1Ymin),gp_Pnt2d(aSPL1Xmin,aSPL1Ymax)).Value() ,4); // Xmin,Y - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL1Xmax,aSPL1Ymin),gp_Pnt2d(aSPL1Xmax,aSPL1Ymax)).Value() ,4); // Xmax,Y - - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmin,aSPL1Ymax),Standard_CString("aSPL2Xmin,aSPL2Ymax")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmax,aSPL1Ymax),Standard_CString("aSPL2Xmax,aSPL2Ymax")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmin,aSPL1Ymin),Standard_CString("aSPL2Xmin,aSPL2Ymin")); - DisplayPoint(aDoc,gp_Pnt2d(aSPL1Xmax,aSPL1Ymin),Standard_CString("aSPL2Xmax,aSPL2Ymin")); - - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL2Xmin,aSPL2Ymax),gp_Pnt2d(aSPL2Xmax,aSPL2Ymax)).Value() ,4); // X,Ymax - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL2Xmin,aSPL2Ymin),gp_Pnt2d(aSPL2Xmax,aSPL2Ymin)).Value() ,4); // X,Ymin - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL2Xmin,aSPL2Ymin),gp_Pnt2d(aSPL2Xmin,aSPL2Ymax)).Value() ,4); // Xmin,Y - DisplayCurve(aDoc,GCE2d_MakeSegment(gp_Pnt2d(aSPL2Xmax,aSPL2Ymin),gp_Pnt2d(aSPL2Xmax,aSPL2Ymax)).Value() ,4); // Xmax,Y - - PostProcess(aDoc,ID_BUTTON_Test_48,TheDisplayType,Message); -} - - -void GeomSources::gpTest49(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - - //============================================================== - - Bnd_Box aBox; - Standard_Real radius = 100; - gp_Ax2 anAxis(gp_Pnt(0,0,0),gp_Dir(1,2,-5)); - - Handle(Geom_Circle) C = - new Geom_Circle(anAxis,radius); - GeomAdaptor_Curve GAC (C); - BndLib_Add3dCurve::Add (GAC,Precision::Approximation(),aBox); - - Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax ; - aBox.Get( aXmin, aYmin,aZmin, aXmax,aYmax,aZmax); - - //============================================================== - - TCollection_AsciiString Message (" \ - \n\ -Bnd_Box aBox; \n\ -Standard_Real radius = 100; \n\ -gp_Ax2 anAxis(gp_Pnt(0,0,0),gp_Dir(1,2,-5)); \n\ - \n\ -Handle(Geom_Circle) C = \n\ - new Geom_Circle(anAxis,radius); \n\ -GeomAdaptor_Curve GAC (C); \n\ -BndLib_Add3dCurve::Add (GAC,Precision::Approximation(),aBox); \n\ - \n\ -Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax ; \n\ -aBox.Get( aXmin, aYmin,aZmin, aXmax,aYmax,aZmax); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - DisplayCurve(aDoc,C,Quantity_NOC_BLUE1 ,false); - - DisplayPoint(aDoc,gp_Pnt(aXmin,aYmax,aZmin),Standard_CString("aXmin,aYmax,aZmin")); - DisplayPoint(aDoc,gp_Pnt(aXmax,aYmax,aZmin),Standard_CString("aXmax,aYmax,aZmin")); - DisplayPoint(aDoc,gp_Pnt(aXmin,aYmin,aZmin),Standard_CString("aXmin,aYmin,aZmin")); - DisplayPoint(aDoc,gp_Pnt(aXmax,aYmin,aZmin),Standard_CString("aXmax,aYmin,aZmin")); - - DisplayPoint(aDoc,gp_Pnt(aXmin,aYmax,aZmax),Standard_CString("aXmin,aYmax,aZmax")); - DisplayPoint(aDoc,gp_Pnt(aXmax,aYmax,aZmax),Standard_CString("aXmax,aYmax,aZmax")); - DisplayPoint(aDoc,gp_Pnt(aXmin,aYmin,aZmax),Standard_CString("aXmin,aYmin,aZmax")); - DisplayPoint(aDoc,gp_Pnt(aXmax,aYmin,aZmax),Standard_CString("aXmax,aYmin,aZmax")); - - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmin), - gp_Pnt(aXmax,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // X,Ymax,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmax,aYmin,aZmin)).Value() ,Quantity_NOC_RED); // X,Ymin,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmin,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // Xmin,Y,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmin), - gp_Pnt(aXmax,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // Xmax,Y,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmax), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // X,Ymax,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmax), - gp_Pnt(aXmax,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // X,Ymin,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmax), - gp_Pnt(aXmin,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Y,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmax), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Y,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmin,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Ymin,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmin), - gp_Pnt(aXmax,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Ymin,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmin), - gp_Pnt(aXmin,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Ymax,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmax,aZmin), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Ymax,Z - - PostProcess(aDoc,ID_BUTTON_Test_49,TheDisplayType,Message); -} - -void GeomSources::gpTest50(CGeometryDoc* aDoc) -{ - DisplayType TheDisplayType = No2D3D; - PreProcess(aDoc,TheDisplayType); - //============================================================== - - TColgp_Array1OfPnt array1 (1,5); - array1.SetValue(1,gp_Pnt (-40,00,20 )); - array1.SetValue(2,gp_Pnt (-70,20,20 )); - array1.SetValue(3,gp_Pnt (-60,30,10 )); - array1.SetValue(4,gp_Pnt (-40,30,-10)); - array1.SetValue(5,gp_Pnt (-30,50,-20)); - Handle(Geom_BSplineCurve) SPL1 = - GeomAPI_PointsToBSpline(array1).Curve(); - - TColgp_Array1OfPnt array2 (1,5); - array2.SetValue(1,gp_Pnt (-40,0, 20)); - array2.SetValue(2,gp_Pnt (-20,20,0 )); - array2.SetValue(3,gp_Pnt (20 ,30,-10)); - array2.SetValue(4,gp_Pnt (30 ,70,-20)); - array2.SetValue(5,gp_Pnt (40 ,90,-10)); - Handle(Geom_BSplineCurve) SPL2 = - GeomAPI_PointsToBSpline(array2).Curve(); - - GeomFill_FillingStyle Type = GeomFill_StretchStyle; - GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); - Handle(Geom_BSplineSurface) aSurf = aGeomFill1.Surface(); - GeomAdaptor_Surface GAS (aSurf); - Bnd_Box aBox; - BndLib_AddSurface::Add (GAS,Precision::Approximation(),aBox); - - Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax ; - aBox.Get( aXmin, aYmin,aZmin, aXmax,aYmax,aZmax); - - //============================================================== - TCollection_AsciiString Message (" \ - \n\ -TColgp_Array1OfPnt array1 (1,5); \n\ -array1.SetValue(1,gp_Pnt (-40, 0, 20)); \n\ -array1.SetValue(2,gp_Pnt (-70, 20, 20)); \n\ -array1.SetValue(3,gp_Pnt (-60, 30, 10)); \n\ -array1.SetValue(4,gp_Pnt (-40, 30,-10)); \n\ -array1.SetValue(5,gp_Pnt (-30, 50,-20)); \n\ -Handle(Geom_BSplineCurve) SPL1 = \n\ - GeomAPI_PointsToBSpline(array1).Curve(); \n\ - \n\ -TColgp_Array1OfPnt array2 (1,5); \n\ -array2.SetValue(1,gp_Pnt (-40, 0, 20)); \n\ -array2.SetValue(2,gp_Pnt (-20, 20, 0)); \n\ -array2.SetValue(3,gp_Pnt ( 20, 30,-10)); \n\ -array2.SetValue(4,gp_Pnt ( 30, 70,-20)); \n\ -array2.SetValue(5,gp_Pnt ( 40, 90,-10)); \n\ -Handle(Geom_BSplineCurve) SPL2 = \n\ - GeomAPI_PointsToBSpline(array2).Curve(); \n\ - \n\ -GeomFill_FillingStyle Type = GeomFill_StretchStyle; \n\ -GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type); \n\ -Handle(Geom_BSplineSurface) aSurf = aGeomFill1.Surface(); \n\ -GeomAdaptor_Surface GAS (aSurf); \n\ -Bnd_Box aBox; \n\ -BndLib_AddSurface::Add (GAS,Precision::Approximation(),aBox); \n\ - \n\ -Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax ; \n\ -aBox.Get( aXmin, aYmin,aZmin, aXmax,aYmax,aZmax); \n\ - \n"); - AddSeparator(aDoc,Message); - //-------------------------------------------------------------- - - Quantity_NameOfColor aNameOfColor= Quantity_NOC_GREEN; - Handle(ISession_Surface) aGraphicalSurface = new ISession_Surface(aSurf); - aDoc->GetAISContext()->SetColor (aGraphicalSurface, aNameOfColor, Standard_False); - aGraphicalSurface->Attributes()->FreeBoundaryAspect()->SetColor(aNameOfColor); - aGraphicalSurface->Attributes()->UIsoAspect()->SetColor(aNameOfColor); - aGraphicalSurface->Attributes()->VIsoAspect()->SetColor(aNameOfColor); - - aDoc->GetAISContext()->SetDisplayMode (aGraphicalSurface, 1, Standard_False); - aDoc->GetAISContext()->Display(aGraphicalSurface,false); - // DisplaySurface(aDoc,aSurf,Quantity_NOC_GREEN); - - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmin), - gp_Pnt(aXmax,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // X,Ymax,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmax,aYmin,aZmin)).Value() ,Quantity_NOC_RED); // X,Ymin,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmin,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // Xmin,Y,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmin), - gp_Pnt(aXmax,aYmax,aZmin)).Value() ,Quantity_NOC_RED); // Xmax,Y,ZMin - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmax), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // X,Ymax,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmax), - gp_Pnt(aXmax,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // X,Ymin,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmax), - gp_Pnt(aXmin,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Y,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmax), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Y,ZMax - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmin,aZmin), - gp_Pnt(aXmin,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Ymin,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmin,aZmin), - gp_Pnt(aXmax,aYmin,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Ymin,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmin,aYmax,aZmin), - gp_Pnt(aXmin,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmin,Ymax,Z - DisplayCurve(aDoc,GC_MakeSegment(gp_Pnt(aXmax,aYmax,aZmin), - gp_Pnt(aXmax,aYmax,aZmax)).Value() ,Quantity_NOC_RED); // Xmax,Ymax,Z - - PostProcess(aDoc,ID_BUTTON_Test_50,TheDisplayType,Message); -} diff --git a/samples/mfc/standard/01_Geometry/src/GeomSources.h b/samples/mfc/standard/01_Geometry/src/GeomSources.h deleted file mode 100755 index 33b9836f46..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeomSources.h +++ /dev/null @@ -1,136 +0,0 @@ -// GeomSources.h: interface for the GeomSources class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX__H__FE726813_A2C6_11D1_8DA3_0800369C8A03__INCLUDED_) -#define AFX__H__FE726813_A2C6_11D1_8DA3_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include "Standard_Macro.hxx" -#include "ResultDialog.h" -#include "GeometryDoc.h" - -class GeomSources -{ -public: - Standard_EXPORT static void gpTest1(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest2(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest3(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest4(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest5(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest6(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest7(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest8(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest9(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest10(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest11(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest12(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest13(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest14(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest15(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest16(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest17(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest18(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest19(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest20(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest21(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest22(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest23(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest24(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest25(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest26(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest27(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest28(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest29(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest30(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest31(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest32(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest33(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest34(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest35(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest36(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest37(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest38(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest39(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest40(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest41(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest42(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest43(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest44(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest45(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest46(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest47(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest48(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest49(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest50(CGeometryDoc* aDoc); - Standard_EXPORT static void gpTest51(CGeometryDoc* aDoc); - GeomSources(); - virtual ~GeomSources(); - -private: - - enum DisplayType{No2DNo3D, // 0 0 0 - No2D3D , // 0 0 1 - a2DNo3D , // 0 1 0 - a2D3D }; // 1 1 1 - static void PreProcess (CGeometryDoc* aDoc,DisplayType aDisplayType); - static void PostProcess(CGeometryDoc* aDoc, - UINT anID, - DisplayType aDisplayType, - const TCollection_AsciiString& aString, - Standard_Boolean UpdateViewer = Standard_True, - Standard_Real Coef = -1); - static void DisplayPoint(CGeometryDoc* aDoc, - const gp_Pnt2d& aPoint, - const char* aText, - Standard_Boolean UpdateViewer = Standard_False, - Standard_Real anXoffset =0, - Standard_Real anYoffset =0, - Standard_Real TextScale = 0.05); - static void DisplayPoint(CGeometryDoc* aDoc, - const gp_Pnt& aPoint, - const char* aText, - Standard_Boolean UpdateViewer = Standard_False, - Standard_Real anXoffset = 0, - Standard_Real anYoffset = 0, - Standard_Real aZoffset = 0, - Standard_Real TextScale = 0.05); - - static void DisplayCurve(CGeometryDoc* aDoc, - Handle(Geom2d_Curve) aCurve, - Standard_Integer aColorIndex = 4, - Standard_Boolean UpdateViewer = false); - static void DisplayCurveAndCurvature(CGeometryDoc* aDoc, - Handle(Geom2d_Curve) aCurve, - Standard_Integer aColorIndex = 4, - Standard_Boolean UpdateViewer = false); - - static void DisplayCurve(CGeometryDoc* aDoc, - Handle(Geom_Curve) aCurve, - Quantity_NameOfColor aNameOfColor, - Standard_Boolean UpdateViewer = false); - - static void DisplayCurve(CGeometryDoc* aDoc, - Handle(Geom_Curve) aCurve, - Standard_Boolean UpdateViewer = false); - - static void DisplaySurface (CGeometryDoc* aDoc, - Handle(Geom_Surface) aSurface, - Quantity_NameOfColor aNameOfColor, - Standard_Boolean UpdateViewer = false); - - static void DisplaySurface (CGeometryDoc* aDoc, - Handle(Geom_Surface) aSurface, - Standard_Boolean UpdateViewer = false); - - static void ResetView(CGeometryDoc* aDoc); - - static void AddSeparator(CGeometryDoc* aDoc,TCollection_AsciiString& aMessage); - - -}; - -#endif // !defined(AFX__H__FE726813_A2C6_11D1_8DA3_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/GeometryApp.cpp b/samples/mfc/standard/01_Geometry/src/GeometryApp.cpp deleted file mode 100755 index 70d75ceb3e..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryApp.cpp +++ /dev/null @@ -1,126 +0,0 @@ -// GeometryApp.cpp : Defines the class behaviors for the application. -// - -#include "stdafx.h" - -#include "GeometryApp.h" -#include "MainFrm.h" -#include "ChildFrm.h" -#include "GeometryDoc.h" -#include "GeometryView.h" -#include "GeometryView2d.h" -#include "ChildFrm2D.h" -#include "GeometryView2d.h" - -///////////////////////////////////////////////////////////////////////////// -// CGeometryApp construction - -CGeometryApp::CGeometryApp() : OCC_App() -{ - SampleName = "Geometry"; //for about dialog - SetSamplePath (L"..\\..\\01_Geometry"); -} - -CGeometryApp::~CGeometryApp() -{ - delete pDocTemplateForView2d; -} -///////////////////////////////////////////////////////////////////////////// -// The one and only CGeometryApp object - -CGeometryApp theApp; - -///////////////////////////////////////////////////////////////////////////// -// CGeometryApp initialization - -BOOL CGeometryApp::InitInstance() -{ - AfxInitRichEdit(); - AfxEnableControlContainer(); - - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. - - // Change the registry key under which our settings are stored. - // You should modify this string to be something appropriate - // such as the name of your company or organization. - SetRegistryKey(_T("Local AppWizard-Generated Applications")); - - LoadStdProfileSettings(); // Load standard INI file options (including MRU) - - // Register the application's document templates. Document templates - // serve as the connection between documents, frame windows and views. - - pDocTemplateForView3d = new CMultiDocTemplate( - IDR_3DTYPE, - RUNTIME_CLASS(CGeometryDoc), - RUNTIME_CLASS(CChildFrame), // custom MDI child frame - RUNTIME_CLASS(CGeometryView)); - AddDocTemplate(pDocTemplateForView3d); - - pDocTemplateForView2d = new CMultiDocTemplate( - IDR_2DTYPE, - RUNTIME_CLASS(CGeometryDoc), - RUNTIME_CLASS(CChildFrame2D), // custom MDI child frame - RUNTIME_CLASS(CGeometryView2D)); - //AddDocTemplate(pDocTemplateForView2d); - - // create main MDI Frame window - CMainFrame* pMainFrame = new CMainFrame; - if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) - return FALSE; - m_pMainWnd = pMainFrame; - - // Parse command line for standard shell commands, DDE, file open - CCommandLineInfo cmdInfo; - ParseCommandLine(cmdInfo); - - // Dispatch commands specified on the command line - if (!ProcessShellCommand(cmdInfo)) - return FALSE; - - // The main window has been initialized, so show and update it. - pMainFrame->ShowWindow(m_nCmdShow); - pMainFrame->UpdateWindow(); - - return TRUE; -} - -///////////////////////////////////////////////////////////////////////////// -// CGeometryApp commands - -//=================================================== - -CFrameWnd* CGeometryApp::CreateView2D(CGeometryDoc* pDoc ) -{ - ASSERT_VALID(pDoc); - ASSERT_VALID(pDocTemplateForView2d); - CRuntimeClass * pViewClass = RUNTIME_CLASS(CGeometryView2D); - ASSERT(pViewClass != (CRuntimeClass *)NULL ); - // Create a new frame window - CFrameWnd* pNewFrame = pDocTemplateForView2d->CreateNewFrame(pDoc, NULL); - pDocTemplateForView2d->InitialUpdateFrame(pNewFrame, pDoc); -return pNewFrame; -} - -BOOL CGeometryApp::IsViewExisting(CDocument * pDoc, CRuntimeClass * pViewClass, CView * & pView) -{ - ASSERT_VALID(pDoc); - ASSERT(pViewClass != (CRuntimeClass *)NULL ); - - POSITION position = pDoc->GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = pDoc->GetNextView(position); - ASSERT_VALID(pCurrentView); - if (pCurrentView->IsKindOf(pViewClass)) - { - pView = pCurrentView; - return TRUE; - } - } - return FALSE; -} - diff --git a/samples/mfc/standard/01_Geometry/src/GeometryApp.h b/samples/mfc/standard/01_Geometry/src/GeometryApp.h deleted file mode 100755 index eb98f40266..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryApp.h +++ /dev/null @@ -1,39 +0,0 @@ -// GeometryApp.h : main header file for the GEOMETRY application -// - -#if !defined(AFX_VIEWER_H__4EF39FB2_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) -#define AFX_VIEWER_H__4EF39FB2_4EBB_11D1_8D67_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include -#include - -class CGeometryApp : public OCC_App -{ -public: - CGeometryApp(); - ~CGeometryApp(); - // ========================================= - CFrameWnd* CreateView2D(CGeometryDoc* pDoc); - // ========================================= - // ========================================= - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CGeometryApp) -public: - virtual BOOL InitInstance(); - //}}AFX_VIRTUAL -private : - BOOL IsViewExisting(CDocument* pDoc,CRuntimeClass* pViewClass,CView*& pView); - CMultiDocTemplate* pDocTemplateForView3d; - CMultiDocTemplate* pDocTemplateForView2d; - -}; - -///////////////////////////////////////////////////////////////////////////// - -#endif // !defined(AFX_VIEWER_H__4EF39FB2_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/GeometryDoc.cpp b/samples/mfc/standard/01_Geometry/src/GeometryDoc.cpp deleted file mode 100755 index 8ea5b4b6e0..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryDoc.cpp +++ /dev/null @@ -1,1608 +0,0 @@ -// GeometryDoc.cpp : implementation of the CGeometryDoc class -// - -#include "stdafx.h" - -#include "GeometryDoc.h" -#include "GeoAlgo_Sol.hxx" -#include "GeometryApp.h" -#include "GeometryView2D.h" -#include "GeometryView.h" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif -#include "GeomSources.h" - -#define EOL "\r\n" - -#define WAIT_A_LITTLE WaitForInput(500) - -#define MAX_PARAM 1000 // if a surface parameter is infinite, it is assigned -// this value in order to display the "infinit" object in the viewer. - -///////////////////////////////////////////////////////////////////////////// -// CGeometryDoc - -IMPLEMENT_DYNCREATE(CGeometryDoc, OCC_3dBaseDoc) - -BEGIN_MESSAGE_MAP(CGeometryDoc, OCC_3dBaseDoc) - //{{AFX_MSG_MAP(CGeometryDoc) - ON_COMMAND(ID_WINDOW_NEW2D, OnWindowNew2d) - ON_COMMAND(ID_BUTTON_Test_1, OnBUTTONTest1) - ON_COMMAND(ID_BUTTON_Test_2, OnBUTTONTest2) - ON_COMMAND(ID_BUTTON_Test_3, OnBUTTONTest3) - ON_COMMAND(ID_BUTTON_Test_4, OnBUTTONTest4) - ON_COMMAND(ID_BUTTON_Test_5, OnBUTTONTest5) - ON_COMMAND(ID_BUTTON_Test_6, OnBUTTONTest6) - ON_COMMAND(ID_BUTTON_Test_7, OnBUTTONTest7) - ON_COMMAND(ID_BUTTON_Test_8, OnBUTTONTest8) - ON_COMMAND(ID_BUTTON_Test_9, OnBUTTONTest9) - ON_COMMAND(ID_BUTTON_Test_23, OnBUTTONTest23) - ON_COMMAND(ID_BUTTON_Test_22, OnBUTTONTest22) - ON_COMMAND(ID_BUTTON_Test_10, OnBUTTONTest10) - ON_COMMAND(ID_BUTTON_Test_11, OnBUTTONTest11) - ON_COMMAND(ID_BUTTON_Test_12, OnBUTTONTest12) - ON_COMMAND(ID_BUTTON_Test_13, OnBUTTONTest13) - ON_COMMAND(ID_BUTTON_Test_14, OnBUTTONTest14) - ON_COMMAND(ID_BUTTON_Test_15, OnBUTTONTest15) - ON_COMMAND(ID_BUTTON_Test_16, OnBUTTONTest16) - ON_COMMAND(ID_BUTTON_Test_17, OnBUTTONTest17) - ON_COMMAND(ID_BUTTON_Test_18, OnBUTTONTest18) - ON_COMMAND(ID_BUTTON_Test_19, OnBUTTONTest19) - ON_COMMAND(ID_BUTTON_Test_20, OnBUTTONTest20) - ON_COMMAND(ID_BUTTON_Test_21, OnBUTTONTest21) - ON_COMMAND(ID_BUTTON_Test_24, OnBUTTONTest24) - ON_COMMAND(ID_BUTTON_Test_25, OnBUTTONTest25) - ON_COMMAND(ID_BUTTON_Test_26, OnBUTTONTest26) - ON_COMMAND(ID_BUTTON_Test_27, OnBUTTONTest27) - ON_COMMAND(ID_BUTTON_Test_28, OnBUTTONTest28) - ON_COMMAND(ID_BUTTON_Test_29, OnBUTTONTest29) - ON_COMMAND(ID_BUTTON_Test_30, OnBUTTONTest30) - ON_COMMAND(ID_BUTTON_Test_31, OnBUTTONTest31) - ON_COMMAND(ID_BUTTON_Test_32, OnBUTTONTest32) - ON_COMMAND(ID_BUTTON_Test_33, OnBUTTONTest33) - ON_COMMAND(ID_BUTTON_Test_34, OnBUTTONTest34) - ON_COMMAND(ID_BUTTON_Test_35, OnBUTTONTest35) - ON_COMMAND(ID_BUTTON_Test_36, OnBUTTONTest36) - ON_COMMAND(ID_BUTTON_Test_37, OnBUTTONTest37) - ON_COMMAND(ID_BUTTON_Test_38, OnBUTTONTest38) - ON_COMMAND(ID_BUTTON_Test_39, OnBUTTONTest39) - ON_COMMAND(ID_BUTTON_Test_40, OnBUTTONTest40) - ON_COMMAND(ID_BUTTON_Test_41, OnBUTTONTest41) - ON_COMMAND(ID_BUTTON_Test_42, OnBUTTONTest42) - ON_COMMAND(ID_BUTTON_Test_43, OnBUTTONTest43) - ON_COMMAND(ID_BUTTON_Test_44, OnBUTTONTest44) - ON_COMMAND(ID_BUTTON_Test_45, OnBUTTONTest45) - ON_COMMAND(ID_BUTTON_Test_46, OnBUTTONTest46) - ON_COMMAND(ID_BUTTON_Test_47, OnBUTTONTest47) - ON_COMMAND(ID_BUTTON_Test_48, OnBUTTONTest48) - ON_COMMAND(ID_BUTTON_Test_49, OnBUTTONTest49) - ON_COMMAND(ID_BUTTON_Test_50, OnBUTTONTest50) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_1 , OnUpdateBUTTONTest1 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_2 , OnUpdateBUTTONTest2 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_3 , OnUpdateBUTTONTest3 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_4 , OnUpdateBUTTONTest4 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_5 , OnUpdateBUTTONTest5 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_6 , OnUpdateBUTTONTest6 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_7 , OnUpdateBUTTONTest7 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_8 , OnUpdateBUTTONTest8 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_9 , OnUpdateBUTTONTest9 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_10 , OnUpdateBUTTONTest10 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_11 , OnUpdateBUTTONTest11 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_12 , OnUpdateBUTTONTest12 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_13 , OnUpdateBUTTONTest13 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_14 , OnUpdateBUTTONTest14 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_15 , OnUpdateBUTTONTest15 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_16 , OnUpdateBUTTONTest16 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_17 , OnUpdateBUTTONTest17 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_18 , OnUpdateBUTTONTest18 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_19 , OnUpdateBUTTONTest19 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_20 , OnUpdateBUTTONTest20 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_21 , OnUpdateBUTTONTest21 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_22 , OnUpdateBUTTONTest22 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_23 , OnUpdateBUTTONTest23 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_24 , OnUpdateBUTTONTest24 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_25 , OnUpdateBUTTONTest25 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_26 , OnUpdateBUTTONTest26 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_27 , OnUpdateBUTTONTest27 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_28 , OnUpdateBUTTONTest28 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_29 , OnUpdateBUTTONTest29 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_30 , OnUpdateBUTTONTest30 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_31 , OnUpdateBUTTONTest31 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_32 , OnUpdateBUTTONTest32 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_33 , OnUpdateBUTTONTest33 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_34 , OnUpdateBUTTONTest34 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_35 , OnUpdateBUTTONTest35 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_36 , OnUpdateBUTTONTest36 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_37 , OnUpdateBUTTONTest37 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_38 , OnUpdateBUTTONTest38 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_39 , OnUpdateBUTTONTest39 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_40 , OnUpdateBUTTONTest40 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_41 , OnUpdateBUTTONTest41 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_42 , OnUpdateBUTTONTest42 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_43 , OnUpdateBUTTONTest43 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_44 , OnUpdateBUTTONTest44 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_45 , OnUpdateBUTTONTest45 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_46 , OnUpdateBUTTONTest46 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_47 , OnUpdateBUTTONTest47 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_48 , OnUpdateBUTTONTest48 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_49 , OnUpdateBUTTONTest49 ) - ON_UPDATE_COMMAND_UI(ID_BUTTON_Test_50 , OnUpdateBUTTONTest50 ) - ON_COMMAND(ID_Create_Sol, OnCreateSol) - ON_COMMAND(ID_BUTTON_Simplify, OnSimplify) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CGeometryDoc construction/destruction - -CGeometryDoc::CGeometryDoc() -: OCC_3dBaseDoc() -{ - FitMode = false; - AfxInitRichEdit(); - - myAISContext->DefaultDrawer()->UIsoAspect()->SetNumber(11); - myAISContext->DefaultDrawer()->VIsoAspect()->SetNumber(11); - - Handle(Graphic3d_GraphicDriver) aGraphicDriver = ((OCC_App*)AfxGetApp())->GetGraphicDriver(); - myViewer2D = new V3d_Viewer (aGraphicDriver); - myViewer2D->SetCircularGridValues(0,0,1,8,0); - myViewer2D->SetRectangularGridValues(0,0,1,1,0); - - // Set view projection - myViewer2D->SetDefaultViewProj(V3d_Zpos); - myAISContext2D = new AIS_InteractiveContext(myViewer2D); - myCResultDialog.Create(CResultDialog::IDD,NULL); - - RECT dlgrect; - myCResultDialog.GetWindowRect(&dlgrect); - LONG width = dlgrect.right-dlgrect.left; - LONG height = dlgrect.bottom-dlgrect.top; - RECT MainWndRect; - AfxGetApp()->m_pMainWnd->GetWindowRect(&MainWndRect); - LONG left = MainWndRect.left+3; - LONG top = MainWndRect.top + 138; - myCResultDialog.MoveWindow(left,top,width,height); - - ((CGeometryApp*)AfxGetApp())->CreateView2D(this); - Minimize2D(); - Put3DOnTop(); -} - -CGeometryDoc::~CGeometryDoc() -{ -} - -BOOL CGeometryDoc::OnNewDocument() -{ - if (!CDocument::OnNewDocument()) - return FALSE; - - // TODO: add reinitialization code here - // (SDI documents will reuse this document) - // compute a graphic device --> the same for all Views - - return TRUE; -} - -void CGeometryDoc::OnWindowNew2d() -{ - ((CGeometryApp*)AfxGetApp())->CreateView2D(this); -} - -///////////////////////////////////////////////////////////////////////////// -// CGeometryDoc serialization - -void CGeometryDoc::Serialize(CArchive& ar) -{ - if (ar.IsStoring()) - { - // TODO: add storing code here - } - else - { - // TODO: add loading code here - } -} - -///////////////////////////////////////////////////////////////////////////// -// CGeometryDoc diagnostics - -#ifdef _DEBUG -void CGeometryDoc::AssertValid() const -{ - CDocument::AssertValid(); -} - -void CGeometryDoc::Dump(CDumpContext& dc) const -{ - CDocument::Dump(dc); -} -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CGeometryDoc commands - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::DragEvent2D(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Standard_Integer /*TheState*/, - const Handle(V3d_View)& /*aView*/) -{ -} - - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::InputEvent2D(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Handle(V3d_View)& /*aView*/) -{ - myAISContext2D->SelectDetected(); - myAISContext2D->UpdateCurrentViewer(); -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::MoveEvent2D(const Standard_Integer x, - const Standard_Integer y, - const Handle(V3d_View)& aView) -{ - if (aView->Viewer()->IsGridActive()) - { - Standard_Real aGridX=0,aGridY=0,aGridZ=0; - aView->ConvertToGrid(x,y,aGridX,aGridY,aGridZ); - //View is not updated automatically in ConvertToGrid - aView->Update(); - } - this->myAISContext2D->MoveTo (x, y, aView, Standard_True); -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::ShiftMoveEvent2D(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Handle(V3d_View)& /*aView*/) -{ -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::ShiftDragEvent2D(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Standard_Integer /*TheState*/, - const Handle(V3d_View)& /*aView*/) -{ -} - - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::ShiftInputEvent2D(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Handle(V3d_View)& /*aView*/) -{ -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Popup2D(const Standard_Integer x, - const Standard_Integer y, - const Handle(V3d_View)& aView) -{ - CMenu menu; - VERIFY(menu.LoadMenu(IDR_Popup3D)); - CMenu* pPopup; - - pPopup = menu.GetSubMenu(0); - - ASSERT(pPopup != NULL); - - POINT winCoord = { x , y }; - Handle(WNT_Window) aWNTWindow= - Handle(WNT_Window)::DownCast(aView->Window()); - ClientToScreen ( (HWND)(aWNTWindow->HWindow()),&winCoord); - pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , winCoord.x, winCoord.y , - AfxGetMainWnd()); -} - - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Popup (const Standard_Integer theMouseX, - const Standard_Integer theMouseY, - const Handle(V3d_View)& theView) -{ - Standard_Integer PopupMenuNumber=0; - GetAISContext()->InitSelected(); - if (GetAISContext()->MoreSelected()) - { - PopupMenuNumber=1; - } - - CMenu menu; - VERIFY(menu.LoadMenu(IDR_Popup3D)); - CMenu* pPopup = menu.GetSubMenu(PopupMenuNumber); - ASSERT(pPopup != NULL); - - POINT winCoord = { theMouseX , theMouseY }; - Handle(WNT_Window) aWNTWindow = Handle(WNT_Window)::DownCast(theView->Window()); - ClientToScreen ( (HWND)(aWNTWindow->HWindow()), &winCoord ); - - pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , - winCoord.x, winCoord.y , - AfxGetMainWnd()); -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::InputEvent (const Standard_Integer /*theMouseX*/, - const Standard_Integer /*theMouseY*/, - const Handle(V3d_View)& /*theView*/) -{ - myAISContext->SelectDetected(); - myAISContext2D->UpdateCurrentViewer(); -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Put2DOnTop(bool isMax) -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView2D ) ) ) - { - ASSERT_VALID(pCurrentView); - CFrameWnd* pParentFrm = pCurrentView->GetParentFrame(); - ASSERT(pParentFrm != (CFrameWnd *)NULL); - // simply make the frame window visible - if(isMax) - { - pParentFrm->ActivateFrame(SW_SHOWMAXIMIZED); - } - else - { - pParentFrm->ActivateFrame(SW_SHOW); - } - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Minimize2D() -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView2D ) ) ) - { - ASSERT_VALID(pCurrentView); - CFrameWnd* pParentFrm = pCurrentView->GetParentFrame(); - ASSERT(pParentFrm != (CFrameWnd *)NULL); - // simply make the frame window visible - pParentFrm->ActivateFrame(SW_HIDE); - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Fit2DViews() -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView2D ) ) ) - { - ASSERT_VALID(pCurrentView); - CGeometryView2D* aCGeometryView2D = (CGeometryView2D*)pCurrentView; - aCGeometryView2D->FitAll(); - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Put3DOnTop(bool isMax) -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView ) ) ) - { - ASSERT_VALID(pCurrentView); - CFrameWnd* pParentFrm = pCurrentView->GetParentFrame(); - ASSERT(pParentFrm != (CFrameWnd *)NULL); - // simply make the frame window visible - if(isMax) - { - pParentFrm->ActivateFrame(SW_SHOWMAXIMIZED); - } - else - { - pParentFrm->ActivateFrame(SW_SHOW); - } - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Minimize3D() -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView ) ) ) - { - ASSERT_VALID(pCurrentView); - CFrameWnd* pParentFrm = pCurrentView->GetParentFrame(); - ASSERT(pParentFrm != (CFrameWnd *)NULL); - // simply make the frame window visible - pParentFrm->ActivateFrame(SW_HIDE); - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Fit3DViews(Standard_Real Coef) -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView ) ) ) - { - ASSERT_VALID(pCurrentView); - CGeometryView* aCGeometryView = (CGeometryView*)pCurrentView; - aCGeometryView->FitAll(Coef); - } - } -} - -//----------------------------------------------------------------------------------------- -// -//----------------------------------------------------------------------------------------- -void CGeometryDoc::Set3DViewsZoom(const Standard_Real& Coef) -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf( RUNTIME_CLASS( CGeometryView ) ) ) - { - ASSERT_VALID(pCurrentView); - CGeometryView* aCGeometryView = (CGeometryView*)pCurrentView; - aCGeometryView->SetZoom( Coef ); - } - } -} - -//----------------------------------------------------------------------------------------- -// Buttons event handlers -//----------------------------------------------------------------------------------------- -void CGeometryDoc::OnBUTTONTest1() -{ Current = 1; -GeomSources::gpTest1(this); } -void CGeometryDoc::OnBUTTONTest2() -{ Current = 2; -GeomSources::gpTest2(this); } -void CGeometryDoc::OnBUTTONTest3() -{ Current = 3; -GeomSources::gpTest3(this); } -void CGeometryDoc::OnBUTTONTest4() -{ Current = 4; -GeomSources::gpTest4(this); } -void CGeometryDoc::OnBUTTONTest5() -{ Current = 5; -GeomSources::gpTest5(this); } -void CGeometryDoc::OnBUTTONTest6() -{ Current = 6; -GeomSources::gpTest6(this); } -void CGeometryDoc::OnBUTTONTest7() -{ Current = 7; -GeomSources::gpTest7(this); } -void CGeometryDoc::OnBUTTONTest8() -{ Current = 8; -GeomSources::gpTest8(this); } -void CGeometryDoc::OnBUTTONTest9() -{ Current = 9; -GeomSources::gpTest9(this); } -void CGeometryDoc::OnBUTTONTest10() -{ Current = 10; -GeomSources::gpTest10(this); } -void CGeometryDoc::OnBUTTONTest11() -{ Current = 11; -GeomSources::gpTest11(this); } -void CGeometryDoc::OnBUTTONTest12() -{ Current = 12; -GeomSources::gpTest12(this); } -void CGeometryDoc::OnBUTTONTest13() -{ Current = 13; -GeomSources::gpTest13(this); } -void CGeometryDoc::OnBUTTONTest14() -{ Current = 14; -GeomSources::gpTest14(this); } -void CGeometryDoc::OnBUTTONTest15() -{ Current = 15; -GeomSources::gpTest15(this); } -void CGeometryDoc::OnBUTTONTest16() -{ Current = 16; -GeomSources::gpTest16(this); } -void CGeometryDoc::OnBUTTONTest17() -{ Current = 17; -GeomSources::gpTest17(this); } -void CGeometryDoc::OnBUTTONTest18() -{ Current = 18; -GeomSources::gpTest18(this); } -void CGeometryDoc::OnBUTTONTest19() -{ Current = 19; -GeomSources::gpTest19(this); } -void CGeometryDoc::OnBUTTONTest20() -{ Current = 20; -GeomSources::gpTest20(this); } -void CGeometryDoc::OnBUTTONTest21() -{ Current = 21; -GeomSources::gpTest21(this); } -void CGeometryDoc::OnBUTTONTest22() -{ Current = 22; -GeomSources::gpTest22(this); } -void CGeometryDoc::OnBUTTONTest23() -{ Current = 23; -GeomSources::gpTest23(this); } -void CGeometryDoc::OnBUTTONTest24() -{ Current = 24; -GeomSources::gpTest24(this); } -void CGeometryDoc::OnBUTTONTest25() -{ Current = 25; -GeomSources::gpTest25(this); } -void CGeometryDoc::OnBUTTONTest26() -{ Current = 26; -GeomSources::gpTest26(this); } -void CGeometryDoc::OnBUTTONTest27() -{ Current = 27; -GeomSources::gpTest27(this); } -void CGeometryDoc::OnBUTTONTest28() -{ Current = 28; -GeomSources::gpTest28(this); } -void CGeometryDoc::OnBUTTONTest29() -{ Current = 29; -GeomSources::gpTest29(this); } -void CGeometryDoc::OnBUTTONTest30() -{ Current = 30; -GeomSources::gpTest30(this); } -void CGeometryDoc::OnBUTTONTest31() -{ Current = 31; -GeomSources::gpTest31(this); } -void CGeometryDoc::OnBUTTONTest32() -{ Current = 32; -GeomSources::gpTest32(this); } -void CGeometryDoc::OnBUTTONTest33() -{ Current = 33; -GeomSources::gpTest33(this); } -void CGeometryDoc::OnBUTTONTest34() -{ Current = 34; -GeomSources::gpTest34(this); } -void CGeometryDoc::OnBUTTONTest35() -{ Current = 35; -GeomSources::gpTest35(this); } -void CGeometryDoc::OnBUTTONTest36() -{ Current = 36; -GeomSources::gpTest36(this); } - -void CGeometryDoc::OnBUTTONTest37() -{ Current = 37; -GeomSources::gpTest37(this); } -void CGeometryDoc::OnBUTTONTest38() -{ Current = 38; -GeomSources::gpTest38(this); } -void CGeometryDoc::OnBUTTONTest39() -{ Current = 39; -GeomSources::gpTest39(this); } -void CGeometryDoc::OnBUTTONTest40() -{ Current = 40; -GeomSources::gpTest40(this); } -void CGeometryDoc::OnBUTTONTest41() -{ Current = 41; -GeomSources::gpTest41(this); } -void CGeometryDoc::OnBUTTONTest42() -{ Current = 42; -GeomSources::gpTest42(this); } -void CGeometryDoc::OnBUTTONTest43() -{ Current = 43; -GeomSources::gpTest43(this); } -void CGeometryDoc::OnBUTTONTest44() -{ Current = 44; -GeomSources::gpTest44(this); } -void CGeometryDoc::OnBUTTONTest45() -{ Current = 45; -GeomSources::gpTest45(this); } -void CGeometryDoc::OnBUTTONTest46() -{ Current = 46; -GeomSources::gpTest46(this); } -void CGeometryDoc::OnBUTTONTest47() -{ Current = 47; -GeomSources::gpTest47(this); } -void CGeometryDoc::OnBUTTONTest48() -{ Current = 48; -GeomSources::gpTest48(this); } -void CGeometryDoc::OnBUTTONTest49() -{ Current = 49; -GeomSources::gpTest49(this); } -void CGeometryDoc::OnBUTTONTest50() -{ Current = 50; -GeomSources::gpTest50(this); } - -void CGeometryDoc::OnUpdateBUTTONTest1(CCmdUI* pCmdUI) -{ - if (Current == 1) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest2(CCmdUI* pCmdUI) -{ - if (Current == 2) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest3(CCmdUI* pCmdUI) -{ - if (Current == 3) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest4(CCmdUI* pCmdUI) -{ - if (Current == 4) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest5(CCmdUI* pCmdUI) -{ - if (Current == 5) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest6(CCmdUI* pCmdUI) -{ - if (Current == 6) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest7(CCmdUI* pCmdUI) -{ - if (Current == 7) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest8(CCmdUI* pCmdUI) -{ - if (Current == 8) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest9(CCmdUI* pCmdUI) -{ - if (Current == 9) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest10(CCmdUI* pCmdUI) -{ - if (Current == 10) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest11(CCmdUI* pCmdUI) -{ - if (Current == 11) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest12(CCmdUI* pCmdUI) -{ - if (Current == 12) - pCmdUI->SetCheck(true); - else pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest13(CCmdUI* pCmdUI) -{ - if (Current == 13) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest14(CCmdUI* pCmdUI) -{ - if (Current == 14) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest15(CCmdUI* pCmdUI) -{ - if(Current == 15) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest16(CCmdUI* pCmdUI) -{ - if (Current == 16) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest17(CCmdUI* pCmdUI) -{ - if (Current == 17) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest18(CCmdUI* pCmdUI) -{ - if (Current == 18) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest19(CCmdUI* pCmdUI) -{ - if (Current == 19) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest20(CCmdUI* pCmdUI) -{ - if (Current == 20) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest21(CCmdUI* pCmdUI) -{ - if (Current == 21) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest22(CCmdUI* pCmdUI) -{ - if (Current == 22) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest23(CCmdUI* pCmdUI) -{ - if (Current == 23) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest24(CCmdUI* pCmdUI) -{ - if (Current == 24) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest25(CCmdUI* pCmdUI) -{ - if (Current == 25) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest26(CCmdUI* pCmdUI) -{ - if (Current == 26) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest27(CCmdUI* pCmdUI) -{ - if (Current == 27) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest28(CCmdUI* pCmdUI) -{ - if (Current == 28) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest29(CCmdUI* pCmdUI) -{ - if (Current == 29) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest30(CCmdUI* pCmdUI) -{ - if (Current == 30) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest31(CCmdUI* pCmdUI) -{ - if (Current == 31) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest32(CCmdUI* pCmdUI) -{ - if (Current == 32) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest33(CCmdUI* pCmdUI) -{ - if (Current == 33) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest34(CCmdUI* pCmdUI) -{ - if (Current == 34) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest35(CCmdUI* pCmdUI) -{ - if (Current == 35) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest36(CCmdUI* pCmdUI) -{ - if (Current == 36) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest37(CCmdUI* pCmdUI) -{ - if (Current == 37) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest38(CCmdUI* pCmdUI) -{ - if (Current == 38) - pCmdUI->SetCheck(true); -else -pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest39(CCmdUI* pCmdUI) -{ - if (Current == 39) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest40(CCmdUI* pCmdUI) -{ - if (Current == 40) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest41(CCmdUI* pCmdUI) -{ - if (Current == 41) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest42(CCmdUI* pCmdUI) -{ - if (Current == 42) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest43(CCmdUI* pCmdUI) -{ - if (Current == 43) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest44(CCmdUI* pCmdUI) -{ - if (Current == 44) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest45(CCmdUI* pCmdUI) -{ - if (Current == 45) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest46(CCmdUI* pCmdUI) -{ - if (Current == 46) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest47(CCmdUI* pCmdUI) -{ - if (Current == 47) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest48(CCmdUI* pCmdUI) -{ - if (Current == 48) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest49(CCmdUI* pCmdUI) -{ - if (Current == 49) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnUpdateBUTTONTest50(CCmdUI* pCmdUI) -{ - if (Current == 50) - pCmdUI->SetCheck(true); - else - pCmdUI->SetCheck(false); -} - -void CGeometryDoc::OnCloseDocument() -{ - // TODO: Add your specialized code here and/or call the base class - CDocument::OnCloseDocument(); -} - -void CGeometryDoc::OnCreateSol() -{ - // TODO: Add your command handler code here - // Creation d'un sol - CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, - L"Points Files (*.dat)|*.dat; |All Files (*.*)|*.*||", NULL); - - CString anOCCTDataPathValue; - anOCCTDataPathValue.GetEnvironmentVariable(L"CSF_OCCTDataPath"); - CString initdir = (anOCCTDataPathValue + L"\\occ\\SurfaceFromPoints"); - - dlg.m_ofn.lpstrInitialDir = initdir; - - if (dlg.DoModal() == IDOK) - { - SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); - CString filename = dlg.GetPathName(); - - std::filebuf fic; - std::istream in(&fic); - if (!fic.open (filename, std::ios::in)) - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : Unable to open file", L"CasCade Error", MB_ICONERROR); - - TColgp_SequenceOfXYZ seqOfXYZ; - gp_XYZ pntXYZ; - Standard_Integer nbPnt=0; - Standard_Real x,y,z; - BRep_Builder B; - TopoDS_Compound C; - B.MakeCompound(C); - while (!in.fail()|| !in.eof()) - { - if (in >> x && in >> y && in >> z){ - pntXYZ.SetX(x); - pntXYZ.SetY(y); - pntXYZ.SetZ(z); - nbPnt++; - seqOfXYZ.Append(pntXYZ); - BRepBuilderAPI_MakeVertex V(gp_Pnt(x, y, z)); - B.Add(C,V.Vertex()); - } - } - fic.close(); - Handle(AIS_Shape) anAISCompound = new AIS_Shape(C); - myAISContext->Display(anAISCompound, Standard_False); - Fit(); - Sleep(1000); - GeoAlgo_Sol sol; - sol.Build(seqOfXYZ); - - if (sol.IsDone() == Standard_True) - { - Handle(Geom_BSplineSurface) GeomSol = sol.Surface(); - TopoDS_Face aface = BRepBuilderAPI_MakeFace(GeomSol, Precision::Confusion()); - if (!BRepAlgo::IsValid(aface)) - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : The plate surface is not valid!", L"CasCade Error", MB_ICONERROR); - Handle(AIS_Shape) anAISShape=new AIS_Shape(aface); - myAISContext->Display(anAISShape, Standard_False); - Fit(); - } - else - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : Computation has failed", L"CasCade Error", MB_ICONERROR); - } -} - -/********************************************************************************************* -********************** S I M P L I F Y ***************************************************** -*********************************************************************************************/ - -//================================================================ -// Function : fixParam -// Purpose : assigns a finite value to theParam if it's infinite -// (equal to +- Precision::Infinite()) -//================================================================ -static Standard_Boolean fixParam(Standard_Real& theParam) -{ - Standard_Boolean aResult = Standard_False; - if (Precision::IsNegativeInfinite(theParam)) - { - theParam = -MAX_PARAM; - aResult = Standard_True; - } - if (Precision::IsPositiveInfinite(theParam)) - { - theParam = MAX_PARAM; - aResult = Standard_True; - } - return aResult; -} - - -void CGeometryDoc::OnSimplify() -{ - CString anOCCTDataPathValue; - anOCCTDataPathValue.GetEnvironmentVariable(L"CSF_OCCTDataPath"); - CString initfile = (anOCCTDataPathValue + L"\\occ\\shell1.brep"); - - std::filebuf aFileBuf; - std::istream aStream (&aFileBuf); - if (!aFileBuf.open (initfile, std::ios::in)) - { - initfile += L" was not found. The sample can not be shown."; - myCResultDialog.SetText (initfile); - return; - } - - TopoDS_Shape aShape; - BRep_Builder aBld; - BRepTools::Read (aShape, aStream, aBld); - if (aShape.IsNull()) - { - initfile += L" is invalid file. The sample can not be shown."; - myCResultDialog.SetText(initfile); - return; - } - myAISContext->SetDisplayMode(AIS_Shaded, Standard_True); - simplify(aShape); -} - -void CGeometryDoc::simplify(const TopoDS_Shape& aShape) -{ - myCResultDialog.SetTitle("Simplify Face"); - myCResultDialog.SetText(" TopoDS_Shape aShape;\n" - "\n" - " // initialize aShape\n" - " //aShape = ...\n" - "\n" - " // define parameter triangulation\n" - " Standard_Real aDeflection = 0.1;\n" - " \n" - " // removes all the triangulations of the faces ,\n" - " //and all the polygons on the triangulations of the edges\n" - " BRepTools::Clean(aShape);\n" - " // adds a triangulation of the shape aShape with the deflection aDeflection\n" - " BRepMesh::Mesh(aShape,aDeflection);\n" - "\n" - " Standard_Integer aIndex = 1, nbNodes = 0;\n" - " \n" - " // define two sequence of points\n" - " TColgp_SequenceOfPnt aPoints, aPoints1;\n" - " \n" - " // triangulation\n" - " for(TopExp_Explorer aExpFace(aShape,TopAbs_FACE); aExpFace.More(); aExpFace.Next())\n" - " { \n" - " TopoDS_Face aFace = TopoDS::Face(aExpFace.Current());\n" - " TopLoc_Location aLocation;\n" - "\n" - " // takes the triangulation of the face aFace\n" - " Handle(Poly_Triangulation) aTr = BRep_Tool::Triangulation(aFace,aLocation);\n" - "\n" - " if(!aTr.IsNull())\n" - " { \n" - " nbNodes = aTr->NbNodes();\n" - "\n" - " for( Standard_Integer i = 1; i <= nbNodes; i++)\n" - " {\n" - " // create seguence of node points in absolute coordinate system\n" - " gp_Pnt aPnt = aTr->Node (i).Transformed (aLocation);\n" - " aPoints.Append(aPnt);\n" - " \n" - " }\n" - " }\n" - " }\n" - " \n" - " // remove double points\n" - " nbNodes = aPoints.Length();\n" - " for( Standard_Integer i = 1; i <= nbNodes; i++)\n" - " {\n" - " gp_Pnt aPi = aPoints(i);\n" - " for( Standard_Integer j = i + 1; j < nbNodes; j++)\n" - " {\n" - " gp_Pnt aPj = aPoints(j);\n" - " if(!aPi.IsEqual(aPj,0.9))\n" - " aIndex++;\n" - " }\n" - " if(aIndex == j - 1)\n" - " aPoints1.Append(aPi);\n" - "\n" - " aIndex = i + 1;\n" - " }\n" - "\n" - " // find max point\n" - " aIndex = 0;\n" - " gp_Pnt aPntMax = aPoints1(1);\n" - " nbNodes = aPoints1.Length();\n" - " for(i = 2; i <= nbNodes; i++)\n" - " {\n" - " if(aPoints1(i).X() > aPntMax.X())\n" - " {\n" - " aIndex = i;\n" - " aPntMax = aPoints1(aIndex); \n" - " } \n" - " }\n" - "\n" - " // clear seguence\n" - " aPoints.Clear();\n" - "\n" - " Standard_Integer nbLeftNodes = nbNodes;\n" - "\n" - " // ascending sort - fill aPoints with ascending \n" - " // by X coordinate points from aPoints1\n" - " for(i = 1; i < nbNodes; i++)\n" - " {\n" - " Standard_Real aMin = aPntMax.X();\n" - " aIndex = 1;\n" - " for( Standard_Integer j = 1; j <= nbLeftNodes; j++)\n" - " {\n" - " if(aPoints1(j).X() < aMin)\n" - " {\n" - " aMin = aPoints1(j).X();\n" - " aIndex = j;\n" - " } \n" - " }\n" - " aPoints.Append(aPoints1(aIndex));\n" - " aPoints1.Remove(aIndex);\n" - " nbLeftNodes = aPoints1.Length();\n" - " }\n" - " aPoints.Append(aPntMax);\n" - "\n" - " // define parameters GeomPlate_BuildPlateSurface\n" - " Standard_Integer Degree = 3;\n" - " Standard_Integer NbPtsOnCur = 10;\n" - " Standard_Integer NbIter = 3;\n" - " Standard_Integer Order = 0;\n" - " Standard_Integer MaxSeg = 9;\n" - " Standard_Integer MaxDegree = 5;\n" - " Standard_Real dmax, anApproxTol = 0.001;\n" - " Standard_Real aConstrTol = Precision::Confusion();\n" - " \n" - " // define object BuildPlateSurface\n" - " GeomPlate_BuildPlateSurface BPSurf(Degree,NbPtsOnCur,NbIter);\n" - " \n" - " // add point constraints to GeomPlate_BuildPlateSurface object\n" - " nbNodes = aPoints.Length();\n" - " for (i = 1; i <= nbNodes; i++)\n" - " BPSurf.Add(new GeomPlate_PointConstraint(aPoints(i), Order, aConstrTol));\n" - "\n" - " BPSurf.Perform();\n" - "\n" - " // make PlateSurface\n" - " Handle(GeomPlate_Surface) PSurf;\n" - " Handle(Geom_Surface) aSurf;\n" - " \n" - " if (BPSurf.IsDone())\n" - " {\n" - " PSurf = BPSurf.Surface();\n" - "\n" - " // define parameter approximation\n" - " dmax = Max(0.01,10*BPSurf.G0Error());\n" - "\n" - " // make approximation\n" - " GeomPlate_MakeApprox Mapp(PSurf,anApproxTol, MaxSeg,MaxDegree,dmax);\n" - " aSurf = Mapp.Surface();\n" - " }\n" - " else \n" - " return;\n" - "\n" - " ShapeAnalysis_FreeBounds aFreeBounds(aShape, Standard_False, Standard_True);\n" - " TopoDS_Compound aClosedWires = aFreeBounds.GetClosedWires();\n" - " TopTools_IndexedMapOfShape aWires;\n" - " TopExp::MapShapes(aClosedWires, TopAbs_WIRE, aWires);\n" - " TopoDS_Wire aWire;\n" - " Standard_Integer nbWires = aWires.Extent();\n" - " if (nbWires) \n" - " aWire = TopoDS::Wire(aWires(1));\n" - " else \n" - " return;\n" - "\n" - " BRep_Builder B;\n" - " TopoDS_Face aFace;\n" - " B.MakeFace(aFace, aSurf, Precision::Confusion());\n" - " B.Add(aFace, aWire);\n" - " Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape(aFace);\n" - " sfs->Perform();\n" - " TopoDS_Shape aFixedFace = sfs->Shape();\n" - " if (aFixedFace.IsNull()) \n" - " return;\n"); - - // define parameter triangulation - Standard_Real aDeflection = 0.1; - - // removes all the triangulations of the faces , - //and all the polygons on the triangulations of the edges - BRepTools::Clean(aShape); - // adds a triangulation of the shape aShape with the deflection aDeflection - BRepMesh_IncrementalMesh(aShape,aDeflection); - - Standard_Integer aIndex = 1, nbNodes = 0; - - // define two sequence of points - TColgp_SequenceOfPnt aPoints, aPoints1; - - // triangulation - for(TopExp_Explorer aExpFace(aShape,TopAbs_FACE); aExpFace.More(); aExpFace.Next()) - { - TopoDS_Face aFace = TopoDS::Face(aExpFace.Current()); - TopLoc_Location aLocation; - - // takes the triangulation of the face aFace - Handle(Poly_Triangulation) aTr = BRep_Tool::Triangulation(aFace,aLocation); - - if(!aTr.IsNull()) - { - // takes the array of nodes for this triangulation - nbNodes = aTr->NbNodes(); - - for( Standard_Integer i = 1; i <= nbNodes; i++) - { - // create seguence of node points in absolute coordinate system - gp_Pnt aPnt = aTr->Node (i).Transformed (aLocation); - aPoints.Append(aPnt); - - } - } - } - - // remove double points - nbNodes = aPoints.Length(); - Standard_Integer i; - for( i = 1; i <= nbNodes; i++) - { - gp_Pnt aPi = aPoints(i); - Standard_Integer j; - for( j = i + 1; j < nbNodes; j++) - { - gp_Pnt aPj = aPoints(j); - if(!aPi.IsEqual(aPj,0.9)) - aIndex++; - } - if(aIndex == j - 1) - aPoints1.Append(aPi); - - aIndex = i + 1; - } - - // find max point - aIndex = 0; - gp_Pnt aPntMax = aPoints1(1); - nbNodes = aPoints1.Length(); - for(i = 2; i <= nbNodes; i++) - { - if(aPoints1(i).X() > aPntMax.X()) - { - aIndex = i; - aPntMax = aPoints1(aIndex); - } - } - - // clear seguence - aPoints.Clear(); - - Standard_Integer nbLeftNodes = nbNodes; - - // ascending sort - fill aPoints with ascending - // by X coordinate points from aPoints1 - for(i = 1; i < nbNodes; i++) - { - Standard_Real aMin = aPntMax.X(); - aIndex = 1; - for( Standard_Integer j = 1; j <= nbLeftNodes; j++) - { - if(aPoints1(j).X() < aMin) - { - aMin = aPoints1(j).X(); - aIndex = j; - } - } - aPoints.Append(aPoints1(aIndex)); - aPoints1.Remove(aIndex); - nbLeftNodes = aPoints1.Length(); - } - aPoints.Append(aPntMax); - - // define parameters GeomPlate_BuildPlateSurface - Standard_Integer Degree = 3; - Standard_Integer NbPtsOnCur = 10; - Standard_Integer NbIter = 3; - Standard_Integer Order = 0; - Standard_Integer MaxSeg = 9; - Standard_Integer MaxDegree = 5; - Standard_Real dmax, anApproxTol = 0.001; - Standard_Real aConstrTol = Precision::Confusion(); - - // define object BuildPlateSurface - GeomPlate_BuildPlateSurface BPSurf(Degree,NbPtsOnCur,NbIter); - - // add point constraints to GeomPlate_BuildPlateSurface object - nbNodes = aPoints.Length(); - for (i = 1; i <= nbNodes; i++) - BPSurf.Add(new GeomPlate_PointConstraint(aPoints(i), Order, aConstrTol)); - - BPSurf.Perform(); - - // make PlateSurface - Handle(GeomPlate_Surface) PSurf; - Handle(Geom_Surface) aSurf; - - if (BPSurf.IsDone()) - { - PSurf = BPSurf.Surface(); - - // define parameter approximation - dmax = Max(0.01,10*BPSurf.G0Error()); - - // make approximation - GeomPlate_MakeApprox Mapp(PSurf,anApproxTol, MaxSeg,MaxDegree,dmax); - aSurf = Mapp.Surface(); - } - else - return; - - ShapeAnalysis_FreeBounds aFreeBounds(aShape, Standard_False, Standard_True); - TopoDS_Compound aClosedWires = aFreeBounds.GetClosedWires(); - TopTools_IndexedMapOfShape aWires; - TopExp::MapShapes(aClosedWires, TopAbs_WIRE, aWires); - TopoDS_Wire aWire; - Standard_Integer nbWires = aWires.Extent(); - if (nbWires) - aWire = TopoDS::Wire(aWires(1)); - else - return; - - BRep_Builder B; - TopoDS_Face aFace; - B.MakeFace(aFace, aSurf, Precision::Confusion()); - B.Add(aFace, aWire); - Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape(aFace); - sfs->Perform(); - TopoDS_Shape aFixedFace = sfs->Shape(); - if (aFixedFace.IsNull()) - return; - - // output surface, make it half transparent - Handle(AIS_InteractiveObject) aSurfIO = drawSurface( - aSurf, Quantity_NOC_LEMONCHIFFON3, Standard_False); - aSurfIO->SetTransparency(0.5); - myAISContext->Display(aSurfIO,Standard_False); - Fit(); - - if(WAIT_A_LITTLE) return; - - // output points - for(i = 1; i <= nbNodes; i++) - drawPoint(aPoints(i)); - - if(WAIT_A_LITTLE) return; - - // output resulting face - drawShape(aFixedFace); -} - -Handle(AIS_InteractiveObject) CGeometryDoc::drawSurface - (const Handle(Geom_Surface)& theSurface, - const Quantity_Color& theColor, - const Standard_Boolean toDisplay) -{ - Standard_Real u1, u2, v1, v2; - theSurface->Bounds(u1,u2,v1,v2); - fixParam(u1); - fixParam(u2); - fixParam(v1); - fixParam(v2); - - Handle(AIS_Shape) aGraphicSurface = - new AIS_Shape(BRepBuilderAPI_MakeFace (theSurface, u1, u2, v1, v2, Precision::Confusion())); - - myAISContext->SetMaterial(aGraphicSurface, Graphic3d_NameOfMaterial_Plastified, toDisplay); - myAISContext->SetColor(aGraphicSurface, theColor, toDisplay); - if (toDisplay) - { - if (FitMode) - { - myAISContext->Display (aGraphicSurface, Standard_False); - Fit(); - } - else - myAISContext->Display (aGraphicSurface, Standard_True); - } - - return aGraphicSurface; -} - -Standard_Boolean CGeometryDoc::WaitForInput (unsigned long aMilliSeconds) -{ - //::WaitForSingleObject(::CreateEvent (NULL, FALSE, FALSE, NULL), aMilliSeconds); - if (::MsgWaitForMultipleObjects(0, NULL, FALSE, aMilliSeconds, - QS_KEY | QS_MOUSEBUTTON) != WAIT_TIMEOUT) - { - MSG msg; - if (::PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)) - { - if (msg.message == WM_KEYUP) - { - ::PeekMessage (&msg, NULL, 0, 0, PM_REMOVE); - return WaitForInput (aMilliSeconds); - } - else - return Standard_True; - } - } - return Standard_False; -} - -Handle(AIS_Point) CGeometryDoc::drawPoint - (const gp_Pnt& aPnt, - const Quantity_Color& theColor, - const Standard_Boolean toDisplay) -{ - Handle(AIS_Point) aGraphicPoint = new AIS_Point (new Geom_CartesianPoint(aPnt)); - - myAISContext->SetColor (aGraphicPoint, theColor, toDisplay); - if (toDisplay) - { - myAISContext->Display (aGraphicPoint, Standard_True); - //COCCDemoDoc::Fit(); - } - - return aGraphicPoint; -} - -Handle(AIS_Shape) CGeometryDoc::drawShape - (const TopoDS_Shape& theShape, - const Graphic3d_NameOfMaterial theMaterial, - const Standard_Boolean toDisplay) -{ - Handle(AIS_Shape) aGraphicShape = new AIS_Shape(theShape); - - myAISContext->SetMaterial(aGraphicShape, theMaterial, toDisplay); - if (toDisplay) - { - if (FitMode) - { - myAISContext->Display (aGraphicShape, Standard_False); - Fit(); - } - else - myAISContext->Display (aGraphicShape, Standard_True); - } - - return aGraphicShape; -} diff --git a/samples/mfc/standard/01_Geometry/src/GeometryDoc.h b/samples/mfc/standard/01_Geometry/src/GeometryDoc.h deleted file mode 100755 index 1c3ff8cc9f..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryDoc.h +++ /dev/null @@ -1,243 +0,0 @@ -// GeometryDoc.h : interface of the CGeometryDoc class -// -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) -#define AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include "OCC_3dBaseDoc.h" -#include "ResultDialog.h" - -#include - -class CGeometryDoc : public OCC_3dBaseDoc -{ -public: - void Put2DOnTop(bool isMax = true); - void Put3DOnTop(bool isMax = true); - void Fit2DViews(); - void Set3DViewsZoom(const Standard_Real& Coef ); - void Fit3DViews(Standard_Real Coef); - void simplify(const TopoDS_Shape& aShape); - - - //-------------------- 2D -------------------// - - void DragEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Standard_Integer TheState, - const Handle(V3d_View)& aView ); - void InputEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - void MoveEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - void ShiftMoveEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - void ShiftDragEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Standard_Integer TheState, - const Handle(V3d_View)& aView ); - void ShiftInputEvent2D (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - void Popup2D (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - - //-------------------- 3D -------------------// - - virtual void Popup (const Standard_Integer theMouseX, - const Standard_Integer theMouseY, - const Handle(V3d_View)& theView); - - virtual void InputEvent (const Standard_Integer theMouseX, - const Standard_Integer theMouseY, - const Handle(V3d_View)& theView); - - Handle(AIS_InteractiveObject) drawSurface - (const Handle(Geom_Surface)& theSurface, - const Quantity_Color& theColor, - const Standard_Boolean toDisplay); - - Standard_Boolean WaitForInput (unsigned long aMilliSeconds); - // Waits for a user input or a period of time has been elapsed - - Handle(AIS_Point) drawPoint (const gp_Pnt& thePnt, - const Quantity_Color& theColor = Quantity_Color(Quantity_NOC_GREEN), - const Standard_Boolean toDisplay = Standard_True); - // creates a presentation of the given point - // and displays it in the viewer if toDisplay = Standard_True - - Handle(AIS_Shape) drawShape (const TopoDS_Shape& theShape, - const Graphic3d_NameOfMaterial theMaterial = Graphic3d_NameOfMaterial_Brass, - const Standard_Boolean toDisplay = Standard_True); - // creates a presentation of the given shape with the given material - // (color is default for a given material) - // and displays it in the viewer if toDisplay = Standard_True - -protected: // create from serialization only - CGeometryDoc(); - DECLARE_DYNCREATE(CGeometryDoc) - - // Attributes -public: - - // Operations -public: - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CGeometryDoc) -public: - virtual BOOL OnNewDocument(); - virtual void Serialize(CArchive& ar); - virtual void OnCloseDocument(); - //}}AFX_VIRTUAL - - // Implementation -public: - virtual ~CGeometryDoc(); -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - -protected: - - // Generated message map functions -protected: - //{{AFX_MSG(CGeometryDoc) - afx_msg void OnWindowNew2d(); - afx_msg void OnBUTTONTest1(); - afx_msg void OnBUTTONTest2(); - afx_msg void OnBUTTONTest3(); - afx_msg void OnBUTTONTest4(); - afx_msg void OnBUTTONTest5(); - afx_msg void OnBUTTONTest6(); - afx_msg void OnBUTTONTest7(); - afx_msg void OnBUTTONTest8(); - afx_msg void OnBUTTONTest9(); - afx_msg void OnBUTTONTest10(); - afx_msg void OnBUTTONTest11(); - afx_msg void OnBUTTONTest12(); - afx_msg void OnBUTTONTest13(); - afx_msg void OnBUTTONTest14(); - afx_msg void OnBUTTONTest15(); - afx_msg void OnBUTTONTest16(); - afx_msg void OnBUTTONTest17(); - afx_msg void OnBUTTONTest18(); - afx_msg void OnBUTTONTest19(); - afx_msg void OnBUTTONTest20(); - afx_msg void OnBUTTONTest21(); - afx_msg void OnBUTTONTest22(); - afx_msg void OnBUTTONTest23(); - afx_msg void OnBUTTONTest24(); - afx_msg void OnBUTTONTest25(); - afx_msg void OnBUTTONTest26(); - afx_msg void OnBUTTONTest27(); - afx_msg void OnBUTTONTest28(); - afx_msg void OnBUTTONTest29(); - afx_msg void OnBUTTONTest30(); - afx_msg void OnBUTTONTest31(); - afx_msg void OnBUTTONTest32(); - afx_msg void OnBUTTONTest33(); - afx_msg void OnBUTTONTest34(); - afx_msg void OnBUTTONTest35(); - afx_msg void OnBUTTONTest36(); - afx_msg void OnBUTTONTest37(); - afx_msg void OnBUTTONTest38(); - afx_msg void OnBUTTONTest39(); - afx_msg void OnBUTTONTest40(); - afx_msg void OnBUTTONTest41(); - afx_msg void OnBUTTONTest42(); - afx_msg void OnBUTTONTest43(); - afx_msg void OnBUTTONTest44(); - afx_msg void OnBUTTONTest45(); - afx_msg void OnBUTTONTest46(); - afx_msg void OnBUTTONTest47(); - afx_msg void OnBUTTONTest48(); - afx_msg void OnBUTTONTest49(); - afx_msg void OnBUTTONTest50(); - afx_msg void OnUpdateBUTTONTest1(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest2(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest3(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest4(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest5(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest6(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest7(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest8(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest9(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest10(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest11(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest12(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest13(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest14(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest15(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest16(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest17(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest18(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest19(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest20(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest21(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest22(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest23(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest24(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest25(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest26(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest27(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest28(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest29(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest30(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest31(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest32(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest33(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest34(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest35(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest36(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest37(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest38(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest39(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest40(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest41(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest42(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest43(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest44(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest45(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest46(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest47(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest48(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest49(CCmdUI* pCmdUI); - afx_msg void OnUpdateBUTTONTest50(CCmdUI* pCmdUI); - afx_msg void OnCreateSol(); - afx_msg void OnSimplify(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -public: - int Current; - void Minimize3D(); - void Minimize2D(); - Handle(V3d_Viewer) GetViewer2D() { return myViewer2D; }; - Handle(AIS_InteractiveContext)& GetISessionContext() { return myAISContext2D; }; - BOOL FitMode; - -public: - CResultDialog myCResultDialog; - -private: - Handle(V3d_Viewer) myViewer2D; - Handle(AIS_InteractiveContext) myAISContext2D; - - -}; - -///////////////////////////////////////////////////////////////////////////// - -#endif // !defined(AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/GeometryView.cpp b/samples/mfc/standard/01_Geometry/src/GeometryView.cpp deleted file mode 100755 index bbb4a29612..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryView.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// GeometryView.cpp : implementation of the CGeometryView class -// - -#include "stdafx.h" -#include "GeometryApp.h" - -#include -#include "GeometryDoc.h" -#include "GeometryView.h" - -#define ValZWMin 1 - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CGeometryView - -IMPLEMENT_DYNCREATE(CGeometryView, OCC_3dView) - -BEGIN_MESSAGE_MAP(CGeometryView, OCC_3dView) - //{{AFX_MSG_MAP(CGeometryView) - ON_COMMAND(ID_FILE_EXPORT_IMAGE, OnFileExportImage) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CGeometryView construction/destruction - -CGeometryView::CGeometryView() -{ -} - -CGeometryView::~CGeometryView() -{ -} - -///////////////////////////////////////////////////////////////////////////// -// CGeometryView diagnostics - -#ifdef _DEBUG -void CGeometryView::AssertValid() const -{ - CView::AssertValid(); -} - -void CGeometryView::Dump(CDumpContext& dc) const -{ - CView::Dump(dc); -} - -CGeometryDoc* CGeometryView::GetDocument() // non-debug version is inline -{ - ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGeometryDoc))); - return (CGeometryDoc*)m_pDocument; -} -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CGeometryView message handlers - -void CGeometryView::OnFileExportImage() -{ - GetDocument()->ExportView (myView); -} diff --git a/samples/mfc/standard/01_Geometry/src/GeometryView.h b/samples/mfc/standard/01_Geometry/src/GeometryView.h deleted file mode 100755 index 15b94687e5..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryView.h +++ /dev/null @@ -1,68 +0,0 @@ -// GeometryView.h : interface of the CGeometryView class -// -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_VIEWERVIEW_H__4EF39FBC_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) -#define AFX_VIEWERVIEW_H__4EF39FBC_4EBB_11D1_8D67_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include - -class CGeometryView : public OCC_3dView -{ -protected: // create from serialization only -public: - CGeometryView(); - DECLARE_DYNCREATE(CGeometryView) - - // Attributes -public: - CGeometryDoc* GetDocument(); - - // Operations -public: - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CGeometryView) -public: - //}}AFX_VIRTUAL - - // Implementation -public: - virtual ~CGeometryView(); - void FitAll(Standard_Real Coef) - { - if (Coef != -1) - myView->FitAll(Coef); - else myView->FitAll(); - myView->ZFitAll(); - }; - -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - -// Generated message map functions -protected: - //{{AFX_MSG(CGeometryView) - afx_msg void OnFileExportImage(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -#ifndef _DEBUG // debug version in GeometryView.cpp -inline CGeometryDoc* CGeometryView::GetDocument() - { return (CGeometryDoc*)m_pDocument; } -#endif - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_VIEWERVIEW_H__4EF39FBC_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/GeometryView2D.cpp b/samples/mfc/standard/01_Geometry/src/GeometryView2D.cpp deleted file mode 100755 index debfcc1353..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryView2D.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// NSGViewBibliotheque.cpp : implementation of the CGeometryView2D class -// - -#include "stdafx.h" -#include "GeometryApp.h" -#include "GeometryDoc.h" -#include "GeometryView2D.h" -#include ".\Resource2d\RectangularGrid.h" -#include ".\Resource2d\CircularGrid.h" - -///////////////////////////////////////////////////////////////////////////// -// CNSGView - -IMPLEMENT_DYNCREATE(CGeometryView2D, OCC_2dView) -BEGIN_MESSAGE_MAP(CGeometryView2D, OCC_2dView) - //{{AFX_MSG_MAP(CGeometryView2D) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CNSGView construction/destruction - -CGeometryView2D::CGeometryView2D() -{ -} - -CGeometryView2D::~CGeometryView2D() -{ -} - -const Handle(AIS_InteractiveContext)& CGeometryView2D::GetAISContext() const -{ - return ((CGeometryDoc*)m_pDocument)->GetISessionContext(); -} - -///////////////////////////////////////////////////////////////////////////// -// CGeometryView2D diagnostics - -#ifdef _DEBUG -void CGeometryView2D::AssertValid() const -{ - CView::AssertValid(); -} - -void CGeometryView2D::Dump(CDumpContext& dc) const -{ - CView::Dump(dc); -} - -CGeometryDoc* CGeometryView2D::GetDocument() // non-debug version is inline -{ - ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CGeometryDoc))); - return (CGeometryDoc*)m_pDocument; -} -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CNSGView message handlers - -//================================================================= -void CGeometryView2D::OnInitialUpdate() -{ - OCC_2dView::OnInitialUpdate(); - myView->SetBackgroundColor (Quantity_NOC_BLACK); -} diff --git a/samples/mfc/standard/01_Geometry/src/GeometryView2D.h b/samples/mfc/standard/01_Geometry/src/GeometryView2D.h deleted file mode 100755 index 42c8c26110..0000000000 --- a/samples/mfc/standard/01_Geometry/src/GeometryView2D.h +++ /dev/null @@ -1,57 +0,0 @@ -// NSGViewBib.h : interface of the CNSGView class -// - -#if !defined(AFX_NSGVIEWBIB_H__7BCE3513_40A8_11D1_8BEC_00C04FB657CF__INCLUDED_) -#define AFX_NSGVIEWBIB_H__7BCE3513_40A8_11D1_8BEC_00C04FB657CF__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - - -#include - -///////////////////////////////////////////////////////////////////////////// - -#define ValZWMin 1 - -class CGeometryView2D : public OCC_2dView -{ -protected: // create from serialization only - CGeometryView2D(); - DECLARE_DYNCREATE(CGeometryView2D) - - // Attributes -public: - CGeometryDoc* GetDocument(); -public: - // Overrides - // ClassWizard generated virtual function overrides -public: - virtual void OnInitialUpdate(); // called first time after construct - - // Implementation -public: - virtual ~CGeometryView2D(); -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - - //! Return interactive context for 2d presentations. - virtual const Handle(AIS_InteractiveContext)& GetAISContext() const Standard_OVERRIDE; - - // Generated message map functions -protected: - //{{AFX_MSG(CGeometryView2D) - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -#ifndef _DEBUG // debug version in NSGViewBibliotheque.cpp -inline CGeometryDoc* CGeometryView2D::GetDocument() - { return (CGeometryDoc*)m_pDocument; } -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.cpp b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.cpp deleted file mode 100755 index f93c03f9ea..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "stdafx.h" - -#include -#include "..\\GeometryApp.h" -#include -#include -#include -#include -#include - -IMPLEMENT_STANDARD_RTTIEXT(ISession2D_Curve,AIS_InteractiveObject) - -ISession2D_Curve::ISession2D_Curve(const Handle(Geom2d_Curve) aGeom2dCurve, - const Aspect_TypeOfLine aTypeOfLine, - const Aspect_WidthOfLine aWidthOfLine, - const Standard_Integer aColorIndex) -{ - myGeom2dCurve = aGeom2dCurve; - myTypeOfLine = aTypeOfLine ; - myWidthOfLine = aWidthOfLine; - myColorIndex = aColorIndex ; - myDisplayPole = Standard_True; - myDisplayCurbure = Standard_False; - myDiscretisation = 20; - myradiusmax = 10; - myradiusratio = 1; -} - -void ISession2D_Curve::Compute(const Handle(PrsMgr_PresentationManager)& , - const Handle(Prs3d_Presentation)& thePrs, - const Standard_Integer ) -{ - Handle(Graphic3d_Group) aPrsGroup = thePrs->CurrentGroup(); - aPrsGroup->SetGroupPrimitivesAspect (myDrawer->LineAspect()->Aspect()); - aPrsGroup->SetGroupPrimitivesAspect (myDrawer->PointAspect()->Aspect()); - - Geom2dAdaptor_Curve anAdaptor(myGeom2dCurve); - GCPnts_QuasiUniformDeflection anEdgeDistrib(anAdaptor,1.e-2); - if(anEdgeDistrib.IsDone()) - { - Handle(Graphic3d_ArrayOfPolylines) aCurve = - new Graphic3d_ArrayOfPolylines(anEdgeDistrib.NbPoints()); - for(Standard_Integer i=1;i<=anEdgeDistrib.NbPoints();++i) - aCurve->AddVertex(anEdgeDistrib.Value(i)); - - aPrsGroup->AddPrimitiveArray (aCurve); - } - - if (myDisplayPole) - { - if (anAdaptor.GetType() == GeomAbs_BezierCurve ) - { - Handle(Geom2d_BezierCurve) aBezier = anAdaptor.Bezier(); - Handle(Graphic3d_ArrayOfPolylines) anArrayOfVertex = new Graphic3d_ArrayOfPolylines(aBezier->NbPoles()); - for(int i=1;i<=aBezier->NbPoles();i++) - { - gp_Pnt2d CurrentPoint = aBezier->Pole(i); - anArrayOfVertex->AddVertex(CurrentPoint.X(),CurrentPoint.Y(),0.); - } - aPrsGroup->AddPrimitiveArray (anArrayOfVertex); - } - - if (anAdaptor.GetType() == GeomAbs_BSplineCurve ) - { - Handle(Geom2d_BSplineCurve) aBSpline = anAdaptor.BSpline(); - - Handle(Graphic3d_ArrayOfPolylines) anArrayOfVertex = - new Graphic3d_ArrayOfPolylines(aBSpline->NbPoles()); - - for(int i=1;i<=aBSpline->NbPoles();i++) - { - gp_Pnt2d CurrentPoint = aBSpline->Pole(i); - anArrayOfVertex->AddVertex(CurrentPoint.X(),CurrentPoint.Y(),0.); - } - aPrsGroup->AddPrimitiveArray (anArrayOfVertex); - } - } - - if (myDisplayCurbure && (anAdaptor.GetType() != GeomAbs_Line)) - { - Standard_Integer ii; - Standard_Integer intrv, nbintv = anAdaptor.NbIntervals(GeomAbs_CN); - TColStd_Array1OfReal TI(1,nbintv+1); - anAdaptor.Intervals(TI,GeomAbs_CN); - Standard_Real Resolution = 1.0e-9, Curvature; - Geom2dLProp_CLProps2d LProp(myGeom2dCurve, 2, Resolution); - gp_Pnt2d P1, P2; - - for (intrv = 1; intrv <= nbintv; intrv++) - { - Standard_Real t = TI(intrv); - Standard_Real step = (TI(intrv+1) - t) / GetDiscretisation(); - Standard_Real LRad, ratio; - for (ii = 1; ii <= myDiscretisation; ii++) - { - LProp.SetParameter(t); - if (LProp.IsTangentDefined()) - { - Curvature = Abs(LProp.Curvature()); - if ( Curvature > Resolution) - { - myGeom2dCurve->D0(t, P1); - LRad = 1./Curvature; - ratio = ( ( LRad > myradiusmax) ? myradiusmax/LRad : 1 ); - ratio *= myradiusratio; - LProp.CentreOfCurvature(P2); - gp_Vec2d V(P1, P2); - gp_Pnt2d P3 = P1.Translated(ratio*V); - Handle(Graphic3d_ArrayOfPolylines) aSegment = new Graphic3d_ArrayOfPolylines(2); - aSegment->AddVertex(P1.X(),P1.Y(),0.); - aSegment->AddVertex(P3.X(),P3.Y(),0.); - aPrsGroup->AddPrimitiveArray (aSegment); - } - } - t += step; - } - } - } -} diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.h b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.h deleted file mode 100755 index eccf083f87..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession2D_Curve.h +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef _ISession2D_Curve_HeaderFile -#define _ISession2D_Curve_HeaderFile - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -class PrsMgr_PresentationManager2d; -class Graphic2d_GraphicObject; -class SelectMgr_Selection; - -#include "Geom2d_Curve.hxx" - -#include "AIS_InteractiveObject.hxx" -class ISession2D_Curve; -DEFINE_STANDARD_HANDLE(ISession2D_Curve,AIS_InteractiveObject) -class ISession2D_Curve : public AIS_InteractiveObject { - -public: - - // Methods PUBLIC - // - - ISession2D_Curve - (const Handle(Geom2d_Curve) aGeom2dCurve, - const Aspect_TypeOfLine aTypeOfline = Aspect_TOL_SOLID, - const Aspect_WidthOfLine aWidthOfLine = Aspect_WOL_MEDIUM, - const Standard_Integer aColorIndex = 4); - - inline Standard_Integer NbPossibleSelection() const; - - inline Aspect_TypeOfLine GetTypeOfLine() const; - inline void SetTypeOfLine(const Aspect_TypeOfLine aNewTypeOfLine); - - inline Aspect_WidthOfLine GetWidthOfLine() const; - inline void SetWidthOfLine(const Aspect_WidthOfLine aNewWidthOfLine); - - inline Standard_Integer GetColorIndex() const; - inline void SetColorIndex(const Standard_Integer aNewColorIndex) ; - - inline Standard_Boolean GetDisplayPole() const; - inline void SetDisplayPole(const Standard_Boolean aNewDisplayPole) ; - - inline Standard_Boolean ISession2D_Curve::GetDisplayCurbure() const; - inline void ISession2D_Curve::SetDisplayCurbure - (const Standard_Boolean aNewDisplayCurbure); - - inline Standard_Real GetDiscretisation() const; - inline void SetDiscretisation(const Standard_Real aNewDiscretisation) ; - - DEFINE_STANDARD_RTTIEXT(ISession2D_Curve,AIS_InteractiveObject) - -private: - - // Methods PRIVATE - virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) const { return theMode == 0; } - virtual void Compute(const Handle(PrsMgr_PresentationManager)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ; - void ComputeSelection(const Handle(SelectMgr_Selection)& ,const Standard_Integer ) {} - - // Fields PRIVATE - // - Handle(Geom2d_Curve) myGeom2dCurve; - Aspect_TypeOfLine myTypeOfLine; - Aspect_WidthOfLine myWidthOfLine; - Standard_Integer myColorIndex; - Standard_Boolean myDisplayPole; - Standard_Boolean myDisplayCurbure; - Standard_Real myDiscretisation; - Standard_Real myradiusmax ; - Standard_Real myradiusratio ; -}; - - - -// other inCurve functions and methods (like "C++: function call" methods) -// - -inline Standard_Integer ISession2D_Curve::NbPossibleSelection() const -{ - return 1; -} - -inline Aspect_TypeOfLine ISession2D_Curve::GetTypeOfLine() const -{ - return myTypeOfLine ; -} - -inline void ISession2D_Curve::SetTypeOfLine(const Aspect_TypeOfLine aNewTypeOfLine) -{ - myTypeOfLine = aNewTypeOfLine; -} - -inline Aspect_WidthOfLine ISession2D_Curve::GetWidthOfLine() const -{ - return myWidthOfLine ; -} - -inline void ISession2D_Curve::SetWidthOfLine(const Aspect_WidthOfLine aNewWidthOfLine) -{ - myWidthOfLine = aNewWidthOfLine; -} - -inline Standard_Integer ISession2D_Curve::GetColorIndex() const -{ - return myColorIndex ; -} - -inline void ISession2D_Curve::SetColorIndex(const Standard_Integer aNewColorIndex) -{ - myColorIndex = aNewColorIndex; -} - -inline Standard_Boolean ISession2D_Curve::GetDisplayPole -() const -{ - return myDisplayPole; -} -inline void ISession2D_Curve::SetDisplayPole -(const Standard_Boolean aNewDisplayPole) -{ - myDisplayPole = aNewDisplayPole; -} - -inline Standard_Boolean ISession2D_Curve::GetDisplayCurbure -() const -{ - return myDisplayCurbure; -} -inline void ISession2D_Curve::SetDisplayCurbure -(const Standard_Boolean aNewDisplayCurbure) -{ - myDisplayCurbure = aNewDisplayCurbure; -} - - -inline Standard_Real ISession2D_Curve::GetDiscretisation -() const -{ - return myDiscretisation; -} -inline void ISession2D_Curve::SetDiscretisation -(const Standard_Real aNewDiscretisation) -{ - myDiscretisation = aNewDiscretisation; -} - - - -#endif - diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.cpp b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.cpp deleted file mode 100755 index b43c27bb0a..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// ISession_Curve.cpp: implementation of the ISession_Curve class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "..\\GeometryApp.h" -#include "ISession_Curve.h" -#include - -IMPLEMENT_STANDARD_RTTIEXT(ISession_Curve,AIS_InteractiveObject) - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#endif - -void ISession_Curve::Compute (const Handle(PrsMgr_PresentationManager)& , - const Handle(Prs3d_Presentation)& thePrs, - const Standard_Integer theMode) -{ - GeomAdaptor_Curve anAdaptorCurve (myCurve); - switch (theMode) - { - case 1: - { - Handle(Prs3d_Drawer) aPoleDrawer = new Prs3d_Drawer(); - aPoleDrawer->SetLineAspect (new Prs3d_LineAspect (Quantity_NOC_RED, Aspect_TOL_SOLID, 1.0)); - StdPrs_PoleCurve::Add (thePrs, anAdaptorCurve, aPoleDrawer); - } - case 0: - { - StdPrs_Curve::Add (thePrs, anAdaptorCurve, myDrawer); - break; - } - } -} diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.h b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.h deleted file mode 100755 index 9688d79c6c..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Curve.h +++ /dev/null @@ -1,27 +0,0 @@ -// ISession_Curve.h: interface for the ISession_Curve class. -// -////////////////////////////////////////////////////////////////////// - -#pragma once - -#include -#include -#include "AIS_InteractiveObject.hxx" - -class ISession_Curve : public AIS_InteractiveObject -{ - DEFINE_STANDARD_RTTIEXT(ISession_Curve,AIS_InteractiveObject) -public: - ISession_Curve(const Handle(Geom_Curve)& theCurve) : myCurve (theCurve) {} - virtual ~ISession_Curve() {} - -private: - - Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ; - virtual void ComputeSelection (const Handle(SelectMgr_Selection)& ,const Standard_Integer ) {} - -private: - Handle(Geom_Curve) myCurve; -}; - -DEFINE_STANDARD_HANDLE(ISession_Curve,AIS_InteractiveObject) diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.cpp b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.cpp deleted file mode 100755 index fa7bea1218..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// ISession_Direction.cpp: implementation of the ISession_Direction class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "..\\GeometryApp.h" -#include "ISession_Direction.h" -#include -#include - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#endif - -IMPLEMENT_STANDARD_RTTIEXT(ISession_Direction,AIS_InteractiveObject) - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -ISession_Direction::ISession_Direction() -{ - -} - -ISession_Direction::ISession_Direction (const gp_Pnt& aPnt, - const gp_Dir& aDir, - Standard_Real aLength, - Standard_Real anArrowLength) -: myPnt (aPnt), - myDir (aDir), - myLength (aLength), - myArrowLength (anArrowLength) -{} - -ISession_Direction::ISession_Direction (const gp_Pnt& aPnt, - const gp_Vec& aVec, - Standard_Real anArrowLength) -: myPnt (aPnt), - myDir (aVec), - myArrowLength (anArrowLength) -{ - myLength = aVec.Magnitude(); -} - -ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d, - const gp_Dir2d& aDir2d, - Standard_Real aLength) -: myPnt (gp_Pnt(aPnt2d.X(),aPnt2d.Y(),0.0)), - myDir (gp_Dir(aDir2d.X(),aDir2d.Y(),0.0)), - myLength (aLength) -{ - myArrowLength = 1.0; -} - -ISession_Direction::ISession_Direction (const gp_Pnt2d& aPnt2d, - const gp_Vec2d& aVec2d) -: myPnt (gp_Pnt (aPnt2d.X(), aPnt2d.Y(), 0.0)), - myDir (gp_Dir(aVec2d.X(), aVec2d.Y(), 0.0)) -{ - myLength = aVec2d.Magnitude(); - myArrowLength = 1.0; -} - - -ISession_Direction::~ISession_Direction() -{ - -} - -void ISession_Direction::Compute (const Handle(PrsMgr_PresentationManager)& /*aPresentationManager*/, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer /*aMode*/) -{ - // Set style for arrow - Handle(Prs3d_ArrowAspect) anArrowAspect = myDrawer->ArrowAspect(); - anArrowAspect->SetLength (myArrowLength); - - gp_Pnt aLastPoint = myPnt; - aLastPoint.Translate (myLength*gp_Vec(myDir)); - - // Draw Line - Handle(Graphic3d_ArrayOfSegments) aPrims = new Graphic3d_ArrayOfSegments (2); - aPrims->AddVertex (myPnt); - aPrims->AddVertex (aLastPoint); - aPresentation->CurrentGroup()->SetPrimitivesAspect (myDrawer->LineAspect()->Aspect()); - aPresentation->CurrentGroup()->AddPrimitiveArray (aPrims); - // Draw arrow - Prs3d_Arrow::Draw (aPresentation->CurrentGroup(), - aLastPoint, - myDir, - anArrowAspect->Angle(), - anArrowAspect->Length()); - - // Draw text - if (myText.Length() != 0) - { - gp_Pnt aTextPosition = aLastPoint; - Prs3d_Text::Draw (aPresentation->CurrentGroup(), - myDrawer->TextAspect(), - myText, - aTextPosition); - } -} - -void ISession_Direction::ComputeSelection (const Handle(SelectMgr_Selection)& /*aSelection*/, - const Standard_Integer /*aMode*/) -{ -} - -void ISession_Direction::SetText (TCollection_ExtendedString & theText) -{ - myText = theText; -} - -void ISession_Direction::SetText (Standard_CString theText) -{ - myText = theText; -} - -void ISession_Direction::SetLineAspect (const Handle(Prs3d_LineAspect)& theAspect) -{ - myDrawer->SetLineAspect (theAspect); -} diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.h b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.h deleted file mode 100755 index 594e2985d2..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Direction.h +++ /dev/null @@ -1,44 +0,0 @@ -// ISession_Direction.h: interface for the ISession_Direction class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_) -#define AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 -#include "gp_Dir2d.hxx" -class ISession_Direction; -DEFINE_STANDARD_HANDLE(ISession_Direction,AIS_InteractiveObject) -class ISession_Direction : public AIS_InteractiveObject -{ -public: - TCollection_ExtendedString myText; - void SetText (TCollection_ExtendedString& aText); - void SetText (Standard_CString aText); - void SetLineAspect (const Handle(Prs3d_LineAspect)& theAspect); - ISession_Direction(); - ISession_Direction (const gp_Pnt& aPnt,const gp_Dir& aDir,Standard_Real aLength=1,Standard_Real anArrowLength=1); - ISession_Direction (const gp_Pnt& aPnt,const gp_Vec& aVec,Standard_Real anArrowLength=1); - - ISession_Direction (const gp_Pnt2d& aPnt2d,const gp_Dir2d& aDir2d,Standard_Real aLength=1); - ISession_Direction (const gp_Pnt2d& aPnt2d,const gp_Vec2d& aVec2d); - - virtual ~ISession_Direction(); - DEFINE_STANDARD_RTTIEXT(ISession_Direction,AIS_InteractiveObject) - -private: - - void Compute (const Handle(PrsMgr_PresentationManager)& aPresentationManager, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer aMode); - void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ; - - gp_Pnt myPnt; - gp_Dir myDir; - Standard_Real myLength; - Standard_Real myArrowLength; -}; - -#endif // !defined(AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.cpp b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.cpp deleted file mode 100755 index 5c119f932e..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// ISession_Point.cpp: implementation of the ISession_Point class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "..\\GeometryApp.h" -#include "ISession_Point.h" -#include - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -//#define new DEBUG_NEW -#endif - -IMPLEMENT_STANDARD_RTTIEXT(ISession_Point,AIS_InteractiveObject) - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// -ISession_Point::ISession_Point(Standard_Real X,Standard_Real Y ,Standard_Real Z) -:myPoint(gp_Pnt(X,Y,Z)) -{ - -} - -ISession_Point::ISession_Point(const gp_Pnt2d& aPoint,Standard_Real Elevation) -:myPoint(gp_Pnt(aPoint.X(),aPoint.Y(),Elevation)) -{ - -} - -ISession_Point::ISession_Point(const gp_Pnt& aPoint) -:myPoint(aPoint) -{ - -} - -ISession_Point::~ISession_Point() -{ - -} - -void ISession_Point::Compute(const Handle(PrsMgr_PresentationManager)& /*aPresentationManager*/, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer /*aMode*/) -{ - Handle(Geom_CartesianPoint) aGeomPoint = new Geom_CartesianPoint(myPoint); - - StdPrs_Point::Add(aPresentation,aGeomPoint,myDrawer); - } - -void ISession_Point::ComputeSelection(const Handle(SelectMgr_Selection)& /*aSelection*/, - const Standard_Integer /*unMode*/) -{ -} - diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.h b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.h deleted file mode 100755 index e4124f0d01..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Point.h +++ /dev/null @@ -1,40 +0,0 @@ -// ISession_Point.h: interface for the ISession_Point class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_ISESSION_POINT_H__A9B277C3_A69E_11D1_8DA4_0800369C8A03__INCLUDED_) -#define AFX_ISESSION_POINT_H__A9B277C3_A69E_11D1_8DA4_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include -#include - -class ISession_Point; -DEFINE_STANDARD_HANDLE(ISession_Point,AIS_InteractiveObject) -class ISession_Point : public AIS_InteractiveObject -{ -public: - ISession_Point(); - ISession_Point(Standard_Real X,Standard_Real Y ,Standard_Real Z); - ISession_Point(const gp_Pnt2d& aPoint,Standard_Real Elevation = 0); - ISession_Point(const gp_Pnt& aPoint); - virtual ~ISession_Point(); - DEFINE_STANDARD_RTTIEXT(ISession_Point,AIS_InteractiveObject) - -private : - - void Compute (const Handle(PrsMgr_PresentationManager)& aPresentationManager, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer aMode); - - void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, - const Standard_Integer unMode); - - gp_Pnt myPoint; - -}; - -#endif // !defined(AFX_ISESSION_POINT_H__A9B277C3_A69E_11D1_8DA4_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.cpp b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.cpp deleted file mode 100755 index ecf15e5373..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// ISession_Surface.cpp: implementation of the ISession_Surface class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "..\\GeometryApp.h" -#include "ISession_Surface.h" -#include -#include -#include -#include - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -//#define new DEBUG_NEW -#endif - -IMPLEMENT_STANDARD_RTTIEXT(ISession_Surface,AIS_InteractiveObject) - -void ISession_Surface::Compute (const Handle(PrsMgr_PresentationManager)& , - const Handle(Prs3d_Presentation)& thePrs, - const Standard_Integer theMode) -{ - GeomAdaptor_Surface anAdaptorSurface (mySurface); - Handle(GeomAdaptor_Surface) anAdaptorHSurface = new GeomAdaptor_Surface (mySurface); - - Handle(Prs3d_Drawer) aPoleDrawer = new Prs3d_Drawer(); - aPoleDrawer->SetOwnLineAspects(); - aPoleDrawer->SetLineAspect (new Prs3d_LineAspect (Quantity_NOC_YELLOW3, Aspect_TOL_SOLID, 1.0)); - switch (theMode) - { - case 2: - { - StdPrs_ShadedSurface::Add (thePrs, anAdaptorSurface, myDrawer); - break; - } - case 1: - { - StdPrs_WFPoleSurface::Add (thePrs, anAdaptorSurface, aPoleDrawer); - } - case 0: - { - StdPrs_WFSurface::Add (thePrs, anAdaptorHSurface, myDrawer); - break; - } - } -} diff --git a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.h b/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.h deleted file mode 100755 index bbfc9eb068..0000000000 --- a/samples/mfc/standard/01_Geometry/src/ISession2D/ISession_Surface.h +++ /dev/null @@ -1,29 +0,0 @@ -// ISession_Surface.h: interface for the ISession_Surface class. -// -////////////////////////////////////////////////////////////////////// - -#pragma once - -#include -#include - -class ISession_Surface : public AIS_InteractiveObject -{ - DEFINE_STANDARD_RTTIEXT(ISession_Surface,AIS_InteractiveObject) -public: - - ISession_Surface (const Handle(Geom_Surface)& theSurface) : mySurface (theSurface) {} - virtual ~ISession_Surface() {} - -private: - - Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0); - virtual void ComputeSelection (const Handle(SelectMgr_Selection)& ,const Standard_Integer ) {} - -private: - - Handle(Geom_Surface) mySurface; - -}; - -DEFINE_STANDARD_HANDLE(ISession_Surface, AIS_InteractiveObject) diff --git a/samples/mfc/standard/01_Geometry/src/MainFrm.cpp b/samples/mfc/standard/01_Geometry/src/MainFrm.cpp deleted file mode 100755 index fe5757a1bf..0000000000 --- a/samples/mfc/standard/01_Geometry/src/MainFrm.cpp +++ /dev/null @@ -1,118 +0,0 @@ -// MainFrm.cpp : implementation of the CMainFrame class -// - -#include "stdafx.h" -#include "GeometryApp.h" - -#include "MainFrm.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CMainFrame - -IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd) - -BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) - //{{AFX_MSG_MAP(CMainFrame) - ON_WM_CREATE() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -static UINT indicators[] = -{ - ID_SEPARATOR, // status line indicator - ID_INDICATOR_CAPS, - ID_INDICATOR_NUM, - ID_INDICATOR_SCRL, -}; - -///////////////////////////////////////////////////////////////////////////// -// CMainFrame construction/destruction - -CMainFrame::CMainFrame() -{ -} - -CMainFrame::~CMainFrame() -{ -} - -int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) -{ - if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) - return -1; - - if (!m_wndToolBar.Create(this) || - !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) - { - TRACE0("Failed to create toolbar\n"); - return -1; // fail to create - } - if (!m_wndToolBar2.Create(this) || - !m_wndToolBar2.LoadToolBar(IDR_MAINFRAME2)) - { - TRACE0("Failed to create toolbar\n"); - return -1; // fail to create - } - - if (!m_wndStatusBar.Create(this) || - !m_wndStatusBar.SetIndicators(indicators, - sizeof(indicators)/sizeof(UINT))) - { - TRACE0("Failed to create status bar\n"); - return -1; // fail to create - } - - // TODO: Remove this if you don't want tool tips or a resizeable toolbar - m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | - CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); - - // TODO: Delete these three lines if you don't want the toolbar to - // be dockable - m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); - EnableDocking(CBRS_ALIGN_ANY); - DockControlBar(&m_wndToolBar); - - // TODO: Remove this if you don't want tool tips or a resizeable toolbar - m_wndToolBar2.SetBarStyle(m_wndToolBar2.GetBarStyle() | - CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); - - // TODO: Delete these three lines if you don't want the toolbar to - // be dockable - m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY); - EnableDocking(CBRS_ALIGN_ANY); - DockControlBar(&m_wndToolBar2); - return 0; -} - -BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) -{ - // TODO: Modify the Window class or styles here by modifying - // the CREATESTRUCT cs - return CMDIFrameWnd::PreCreateWindow(cs); -} - -///////////////////////////////////////////////////////////////////////////// -// CMainFrame diagnostics - -#ifdef _DEBUG -void CMainFrame::AssertValid() const -{ - CMDIFrameWnd::AssertValid(); -} - -void CMainFrame::Dump(CDumpContext& dc) const -{ - CMDIFrameWnd::Dump(dc); -} - -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CMainFrame message handlers - diff --git a/samples/mfc/standard/01_Geometry/src/MainFrm.h b/samples/mfc/standard/01_Geometry/src/MainFrm.h deleted file mode 100755 index de34ccb4ba..0000000000 --- a/samples/mfc/standard/01_Geometry/src/MainFrm.h +++ /dev/null @@ -1,54 +0,0 @@ -// MainFrm.h : interface of the CMainFrame class -// -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_MAINFRM_H__4EF39FB6_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) -#define AFX_MAINFRM_H__4EF39FB6_4EBB_11D1_8D67_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -class CMainFrame : public CMDIFrameWnd -{ - DECLARE_DYNAMIC(CMainFrame) -public: - CMainFrame(); - - // Attributes -public: - - // Operations -public: - - // Overrides - // ClassWizard generated virtual function overrides - virtual BOOL PreCreateWindow(CREATESTRUCT& cs); - - // Implementation -public: - virtual ~CMainFrame(); -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - -protected: // control bar embedded members - CStatusBar m_wndStatusBar; - CToolBar m_wndToolBar; - CToolBar m_wndToolBar2; - - // Generated message map functions -protected: - //{{AFX_MSG(CMainFrame) - afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_MAINFRM_H__4EF39FB6_4EBB_11D1_8D67_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/01_Geometry/src/StdAfx.cpp b/samples/mfc/standard/01_Geometry/src/StdAfx.cpp deleted file mode 100755 index c1fe47d451..0000000000 --- a/samples/mfc/standard/01_Geometry/src/StdAfx.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// SampleGeometry.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - diff --git a/samples/mfc/standard/01_Geometry/src/StdAfx.h b/samples/mfc/standard/01_Geometry/src/StdAfx.h deleted file mode 100755 index 971fdc2cea..0000000000 --- a/samples/mfc/standard/01_Geometry/src/StdAfx.h +++ /dev/null @@ -1,283 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers - -#ifndef NOMINMAX - #define NOMINMAX // Prevent Windows from defining min/max macros -#endif - -#include // MFC core and standard components -#include // MFC extensions -#include // MFC OLE automation classes -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - -#pragma warning( disable : 4244 ) // Issue warning 4244 -#include "Standard_ShortReal.hxx" -#pragma warning( default : 4244 ) // Issue warning 4244 - -#include -/* -#ifndef Version15B -# ifndef Version15D -# ifndef Version20 -# define Version15B -# endif // Version20 -# endif // Version15D -#endif // Version15B - -#pragma message ("=============================") -#ifdef Version15B -# pragma message ("Set the libs for version 1.5B") -#endif // Version15B - -#ifdef Version15D -# pragma message ("Set the libs for version 1.5D") -#endif // Version15D - -#ifdef Version20 -# pragma message ("Set the libs for version 2.0 ") -#endif // Version20 -#pragma message ("=============================") - -#ifdef Version15B -# pragma comment (lib,"TKTop.lib") -# pragma comment (lib,"TShort.lib") -# pragma comment (lib,"TColQuantity.lib") -#endif - -#ifdef Version15D -# pragma comment (lib,"TKTop.lib") -#endif - -#ifdef Version20 -# pragma comment (lib,"TKTop1.lib") -# pragma comment (lib,"TKTop2.lib") -#endif - -#pragma message ("Set the specific libs for the application") -# pragma comment (lib,"TKPrs.lib") -# pragma comment (lib,"TKGeom.lib") -# pragma comment (lib,"TKGlt.lib") -# pragma comment (lib,"TKGraphic.lib") -# pragma comment (lib,"TKPrsMgr.lib") -# pragma comment (lib,"TKViewers.lib") -# pragma comment (lib,"TKSession.lib") -# pragma comment (lib,"Bnd.lib") -# pragma comment (lib,"gp.lib") -# pragma comment (lib,"TColgp.lib") -# pragma comment (lib,"TKernel.lib") -# pragma comment (lib,"TKXSBase.lib") -# pragma comment (lib,"TKXSIGES.lib") -# pragma comment (lib,"TKXS214.lib") -# pragma comment (lib,"UnitsAPI.lib") -*/ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "ISession2D_Curve.h" -#include "ISession_Direction.h" -#include "ISession_Curve.h" -#include "ISession_Surface.h" -#include "ISession_Point.h" - -#include -#include "..\res\resource.h" - - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - diff --git a/samples/mfc/standard/02_Modeling/CMakeLists.txt b/samples/mfc/standard/02_Modeling/CMakeLists.txt deleted file mode 100644 index 1b8f78019a..0000000000 --- a/samples/mfc/standard/02_Modeling/CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -# Caution! Be careful, when increase minimal cmake version: -# using of newer version may leads (by default) to applying -# of some new policies. It may break compilation. -# For canceling of applying new policies use: -# cmake_policy(PUSH) before `cmake_minimum_required` -# and cmake_policy(POP) after. -cmake_minimum_required (VERSION 3.1 FATAL_ERROR) - -project (Modeling) - -add_definitions(-DWINVER=0x0501 -DUNICODE -D_UNICODE) -set (CMAKE_MFC_FLAG 2) - -set (Modeling_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/02_Modeling/src) -set (Modeling_HEADER_FILES ${Modeling_SRC_DIR}/ISession_Direction.h - ${Modeling_SRC_DIR}/ModelingApp.h - ${Modeling_SRC_DIR}/ModelingDoc.h - ${Modeling_SRC_DIR}/StdAfx.h - ${Modeling_SRC_DIR}/State.h ) -set (Modeling_SOURCE_FILES ${Modeling_SRC_DIR}/ISession_Direction.cpp - ${Modeling_SRC_DIR}/ModelingApp.cpp - ${Modeling_SRC_DIR}/ModelingDoc.cpp - ${Modeling_SRC_DIR}/StdAfx.cpp ) - -set (Modeling_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/02_Modeling/res) -set (Modeling_RESOURCE_HEADER ${Modeling_RESOURCE_DIR}/resource.h) -set (Modeling_RESOURCE_FILES ${Modeling_RESOURCE_DIR}/fram2.bmp - ${Modeling_RESOURCE_DIR}/Toolbar.bmp - ${Modeling_RESOURCE_DIR}/Modeling.rc) - -# groups in the VS solution -source_group ("Source Files" FILES ${Modeling_SOURCE_FILES} - ${COMMON_WINMAIN_FILE}) - -source_group ("Header Files" FILES ${Modeling_HEADER_FILES} - ${Modeling_RESOURCE_HEADER}) - -source_group ("Resource Files" FILES ${Modeling_RESOURCE_FILES}) - -add_executable ( Modeling WIN32 ${Modeling_SOURCE_FILES} - ${Modeling_HEADER_FILES} - ${COMMON_WINMAIN_FILE} - ${Modeling_RESOURCE_HEADER} - ${Modeling_RESOURCE_FILES}) - -set_property (TARGET Modeling PROPERTY FOLDER "Samples/mfc") - -if (SINGLE_GENERATOR) - install (TARGETS Modeling DESTINATION "${INSTALL_DIR_BIN}") -else() - install (TARGETS Modeling - CONFIGURATIONS Release RelWithDebInfo - DESTINATION "${INSTALL_DIR_BIN}") - install (TARGETS Modeling - CONFIGURATIONS Debug - DESTINATION "${INSTALL_DIR_BIN}d") -endif() - -include_directories (${CMAKE_BINARY_DIR}/inc - ${MFC_STANDARD_SAMPLES_DIR}/02_Modeling - ${Modeling_SRC_DIR} - ${MFC_STANDARD_SAMPLES_DIR}/Common) - -target_link_libraries (Modeling mfcsample TKDESTEP TKBO) - -set (CMAKE_CXX_STANDARD 17) -set (CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj b/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj deleted file mode 100644 index 4d74dd2eaa..0000000000 --- a/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj +++ /dev/null @@ -1,323 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {B10FC678-B9AF-4B05-B3DC-8F790C610CC3} - TopologyTransformations - MFCProj - - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ../../../../win32\$(VCFMT)\bind\ - .\win32\objd\ - true - ../../../../win64\$(VCFMT)\bind\ - .\win64\objd\ - true - ../../../../win32\$(VCFMT)\bin\ - .\win32\obj\ - false - ../../../../win64\$(VCFMT)\bin\ - .\win64\obj\ - false - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\objd/TopologyTransformations.tlb - - - - - Disabled - ..\..\..\..\Common;.;..\..\..\src;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win32\objd/TopologyTransformations.pch - .\win32\objd/ - .\win32\objd/ - .\win32\objd/ - Level4 - true - EditAndContinue - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bind/Modeling.exe - true - ..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win32\$(VCFMT)\bind/Modeling.pdb - Windows - MachineX86 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\objd/TopologyTransformations.tlb - - - - - Disabled - ..\..\..\..\Common;.;..\..\..\src;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win64\objd/TopologyTransformations.pch - .\win64\objd/ - .\win64\objd/ - .\win64\objd/ - Level4 - true - ProgramDatabase - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bind/Modeling.exe - true - ..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win64\$(VCFMT)\bind/Modeling.pdb - Windows - MachineX64 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\obj/TopologyTransformations.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\..\Common;.;..\..\..\src;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win32\obj/TopologyTransformations.pch - .\win32\obj/ - .\win32\obj/ - .\win32\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bin/Modeling.exe - true - ..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win32\$(VCFMT)\bin/Modeling.pdb - Windows - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\obj/TopologyTransformations.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\..\Common;.;..\..\..\src;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win64\obj/TopologyTransformations.pch - .\win64\obj/ - .\win64\obj/ - .\win64\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBRep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;TKBO.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bin/Modeling.exe - true - ..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win64\$(VCFMT)\bin/Modeling.pdb - Windows - MachineX64 - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - - - - - - - - - - - - - - - - - - - - - {2d6cbbe8-6965-4016-b503-0d715ae26691} - false - - - - - - \ No newline at end of file diff --git a/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj.filters b/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj.filters deleted file mode 100644 index 447ee1d310..0000000000 --- a/samples/mfc/standard/02_Modeling/adm/win/vc10/Modeling.vcxproj.filters +++ /dev/null @@ -1,67 +0,0 @@ - - - - - {2f6dc6c3-bd86-4b9d-99ed-00caa1d19e9a} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {e6868f3f-b442-46d7-a23c-531e056f4fb3} - h;hpp;hxx;hm;inl - - - {80146c9a-bf4e-4b6e-908c-e4c83f441747} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/samples/mfc/standard/02_Modeling/res/Modeling.rc b/samples/mfc/standard/02_Modeling/res/Modeling.rc deleted file mode 100755 index 904e3bfc00..0000000000 --- a/samples/mfc/standard/02_Modeling/res/Modeling.rc +++ /dev/null @@ -1,386 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" -#include "..\..\Common\res\OCC_Resource.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "#include ""..\\..\\..\\Common\\res\\OCC_Resource.h""\0" -END - -3 TEXTINCLUDE -BEGIN - "#define _AFX_NO_SPLITTER_RESOURCES\r\n" - "#define _AFX_NO_OLE_RESOURCES\r\n" - "#define _AFX_NO_TRACKER_RESOURCES\r\n" - "#define _AFX_NO_PROPERTY_RESOURCES\r\n" - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" - "#ifdef _WIN32\r\n" - "LANGUAGE 9, 1\r\n" - "#pragma code_page(1252)\r\n" - "#endif\r\n" - "#include ""afxres.rc"" // Standard components\r\n" - "#endif\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDR_MAINFRAME BITMAP "Toolbar.bmp" -IDR_FRAME2 BITMAP "fram2.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Toolbar -// - -IDR_MAINFRAME TOOLBAR 20, 20 -BEGIN - BUTTON ID_FILE_NEW - SEPARATOR - BUTTON ID_MIRROR - BUTTON ID_MIRRORAXIS - BUTTON ID_ROTATE - BUTTON ID_SCALE - BUTTON ID_TRANSLATION - BUTTON ID_DISPLACEMENT - BUTTON ID_DEFORM - SEPARATOR - BUTTON ID_BOX - BUTTON ID_Cylinder - BUTTON ID_CONE - BUTTON ID_SPHERE - BUTTON ID_TORUS - BUTTON ID_WEDGE - BUTTON ID_PRISM - BUTTON ID_REVOL - BUTTON ID_PIPE - BUTTON ID_THRU - BUTTON ID_EVOLVED - BUTTON ID_DRAFT - SEPARATOR - BUTTON ID_CUT - BUTTON ID_FUSE - BUTTON ID_COMMON - BUTTON ID_SECTION - BUTTON ID_PSECTION - BUTTON ID_BLEND - BUTTON ID_EVOLVEDBLEND - BUTTON ID_CHAMF - SEPARATOR - BUTTON ID_APP_ABOUT -END - -IDR_FRAME2 TOOLBAR 20, 20 -BEGIN - BUTTON ID_PRISM_LOCAL - BUTTON ID_DPRISM_LOCAL - BUTTON ID_REVOL_LOCAL - BUTTON ID_Pipe_LOCAL - BUTTON ID_LINEAR_LOCAL - BUTTON ID_GLUE_LOCAL - BUTTON ID_SPLIT_LOCAL - BUTTON ID_THICK_LOCAL - BUTTON ID_OFFSET_LOCAL - SEPARATOR - BUTTON ID_VERTEX - BUTTON ID_EDGE - BUTTON ID_WIRE - BUTTON ID_FACE - BUTTON ID_SHELL - BUTTON ID_COMPOUND - BUTTON ID_SEWING - BUTTON ID_BUILDER - BUTTON ID_GEOMETRIE - BUTTON ID_EXPLORER - SEPARATOR - BUTTON ID_VALID - BUTTON ID_LINEAR - BUTTON ID_SURFACE - BUTTON ID_VOLUME - SEPARATOR - BUTTON ID_FILLWITHTANG - BUTTON ID_BUTTON_FILL -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MAINFRAME MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Help" - BEGIN - MENUITEM "&About TopologyTransformations...", ID_APP_ABOUT - END -END - -IDR_3DTYPE MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM "&Close", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Window" - BEGIN - MENUITEM "&New Window", ID_WINDOW_NEW - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "&Tile", ID_WINDOW_TILE_HORZ - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - END - POPUP "&Help" - BEGIN - MENUITEM "&About TopologyTransformations...", ID_APP_ABOUT - END -END - -IDR_Popup3D MENU -BEGIN - POPUP "BackGround" - BEGIN - MENUITEM "Background Color...", ID_Modify_ChangeBackground - END - POPUP "Object(s)" - BEGIN - MENUITEM "Erase", ID_OBJECT_ERASE - MENUITEM "Shading", ID_OBJECT_SHADING - MENUITEM "Wireframe", ID_OBJECT_WIREFRAME - MENUITEM "Color...", ID_OBJECT_COLOR - MENUITEM "Material...", ID_OBJECT_MATERIAL - POPUP "Material" - BEGIN - MENUITEM "Aluminium", ID_OBJECT_MATERIAL_ALUMINIUM - MENUITEM "Brass", ID_OBJECT_MATERIAL_BRASS - MENUITEM "Bronze", ID_OBJECT_MATERIAL_BRONZE - MENUITEM "Chrome", ID_OBJECT_MATERIAL_CHROME - MENUITEM "Copper", ID_OBJECT_MATERIAL_COPPER - MENUITEM "Gold", ID_OBJECT_MATERIAL_GOLD - MENUITEM "Jade", ID_OBJECT_MATERIAL_JADE - MENUITEM "Metalized", ID_OBJECT_MATERIAL_METALIZED - MENUITEM "Neon GNC", ID_OBJECT_MATERIAL_NEON_GNC - MENUITEM "Neon PHC", ID_OBJECT_MATERIAL_NEON_PHC - MENUITEM "Obsidian", ID_OBJECT_MATERIAL_OBSIDIAN - MENUITEM "Pewter", ID_OBJECT_MATERIAL_PEWTER - MENUITEM "Plaster", ID_OBJECT_MATERIAL_PLASTER - MENUITEM "Plastic", ID_OBJECT_MATERIAL_PLASTIC - MENUITEM "Satin", ID_OBJECT_MATERIAL_SATIN - MENUITEM "Shiny plastic", ID_OBJECT_MATERIAL_SHINY_PLASTIC - MENUITEM "Silver", ID_OBJECT_MATERIAL_SILVER - MENUITEM "Steel", ID_OBJECT_MATERIAL_STEEL - MENUITEM "Stone", ID_OBJECT_MATERIAL_STONE - MENUITEM SEPARATOR - MENUITEM "Default", ID_OBJECT_MATERIAL_DEFAULT - END - MENUITEM "Transparency...", ID_OBJECT_TRANSPARENCY - END - POPUP "Stop" - BEGIN - MENUITEM "Stop", ID_STOP_STOP - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "FileDescription", "Viewer MFC Application" - VALUE "FileVersion", "1, 0, 0, 1" - VALUE "InternalName", "Viewer" - VALUE "LegalCopyright", "Copyright (C) 1997" - VALUE "OriginalFilename", "Viewer.EXE" - VALUE "ProductName", "SampleTopologyTransformations Application" - VALUE "ProductVersion", "1, 0, 0, 1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDR_MAINFRAME "TopologyTransformations" - IDR_3DTYPE "\nViewer\n\n\n\n.Document\n Document" -END - -STRINGTABLE -BEGIN - ID_BOX "Make a box\nBox" - ID_Cylinder "Make a cylinder\nCylinder" - ID_CONE "Make a cone\nCone" - ID_SPHERE "Make a sphere\nSphere" - ID_TORUS "Make a torus\nTorus" - ID_WEDGE "Make a wedge\nWedge" - ID_PRISM "Make a prism\nPrism" - ID_REVOL "Make a revolution\nRevol" - ID_PIPE "Make a pipe\nPipe" - ID_THRU "Make a shape thru sections\nThru Sections" - ID_EVOLVED "Make an evolutive shape\nEvolved" - ID_DRAFT "Make a tapered shape\nDraft angle" - ID_BUTTON815 "Mirror\nMirror" -END - -STRINGTABLE -BEGIN - ID_MIRROR "Transform a shape by a point Mirror\nMirror Point" - ID_MIRRORAXIS "Transform a shape by an axis Mirror\nMirror Axis" - ID_ROTATE "Transform a shape by a rotation\nRotate" - ID_SCALE "Apply a scale factor on a shape\nScale" - ID_TRANSLATION "Translate a shape\nTranslation" - ID_DISPLACEMENT "Transform a shape from an axis placement to anotherone\nDisplacement" - ID_DEFORM "Apply a geometric transformation\nDeform" -END - -STRINGTABLE -BEGIN - ID_CUT "Cut a solid by an other\nCut" - ID_FUSE "Fuse two solids\nFuse two solids" - ID_COMMON "Find the common surfaces\nCommon" - ID_SECTION "Compute the intersection between two solids\nSection" - ID_PSECTION "Compute a plane section\nPlane section" - ID_BLEND "Compute blend on edges\nBlend" - ID_EVOLVEDBLEND "Compute evolving blend on edges\nEvolved blend" - ID_CHAMF "Compute chamfers on edges and faces\nChamfer" - ID_PRISM_LOCAL "Make a local prism\nPrism" - ID_DPRISM_LOCAL "Make a local prism with draft angle\nDraft angle" -END - -STRINGTABLE -BEGIN - ID_REVOL_LOCAL "Make a local revolution shape\nRevol" - ID_Pipe_LOCAL "Make a local pipe\nPipe" - ID_LINEAR_LOCAL "Make a rib\nRib" - ID_GLUE_LOCAL "Glue two solids\nGlue" - ID_SPLIT_LOCAL "Split faces of a shape\nSplit" - ID_THICK_LOCAL "Make a thick solid from a shape\nThickSolid" - ID_OFFSET_LOCAL "Make an offset shape\nOffset" - ID_VERTEX "Make vertex from geometric point\nVertex" - ID_EDGE "Make edge\nEdge" - ID_WIRE "Make wire\nWire" - ID_FACE "Make face\nFace" - ID_SHELL "Make a shell from a geometric surface\nShell" - ID_COMPOUND "Make a compound\nCompound" - ID_SEWING "Sew contiguous faces\nSewing" - ID_BUILDER "Create a shape with a builder\nBuilder" -END - -STRINGTABLE -BEGIN - ID_GEOMETRIE "Tools to recover the geometry\nTools" - ID_EXPLORER "Explode a shape in faces\nExplorer" - ID_VALID "Check Validity\nCheck Validity" - ID_LINEAR "Compute Linear Properties\nLinear Properties" - ID_SURFACE "Compute Surface Properties\nSurface Properties" - ID_VOLUME "Compute Volume Properties\nVolume Properties" - ID_FILLWITHTANG "Create a tangent surface between 2 faces\nTangent surface" - ID_BUTTON_FILL "Fill a hole between patches\nFilling hole" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#define _AFX_NO_SPLITTER_RESOURCES -#define _AFX_NO_OLE_RESOURCES -#define _AFX_NO_TRACKER_RESOURCES -#define _AFX_NO_PROPERTY_RESOURCES - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE 9, 1 -#pragma code_page(1252) -#endif -#include "afxres.rc" // Standard components -#endif -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/samples/mfc/standard/02_Modeling/res/RCa04828 b/samples/mfc/standard/02_Modeling/res/RCa04828 deleted file mode 100755 index 98bbc3ed15cfc1ba3abc866400761abce7bc89aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19350 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 F{TIJr)t~?X diff --git a/samples/mfc/standard/02_Modeling/res/Toolbar.bmp b/samples/mfc/standard/02_Modeling/res/Toolbar.bmp deleted file mode 100755 index 6397affd40ca574ab8c4183ef9dd807906207a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5958 zcmd5=v5p)?5FHS@v1Kz5Ajq8wfTIk?`{>Q)o66Cvb)xfL>jGcLMp zg;q%S0T*0mT` z{C)Xul6-{ro#Z`@-+Zh_)rYA0XQfCIJV{YlgBoITb#;Z76L)%&yE{tw!#@t83T?r} zy|x2^>#V;kvA5_ewsNP}4!wmi?BgvA`qH|7{f~@96u2mB8pmiV8%5J>%-F8Pp2eT1 zHXrLwFOIxT``=+yE36!6ooEM=j)vODsEAv4?MW6f+m*WBK1SWlQHMhl3em&u&98d0 z#60s6Zmu8szG4Vvc{t`HXSEY4=YVbsCEv?{<-VsLMk12!c!J~X_D-qm1sInnci)?_ z5qOMLo4L+FlW#Q$&F*M1vf5WoT`_1Q`vd@L{j7_^@NdaL|tF&7LQ;Q zD$LuCi$#>UWDg@o+cT&Y#tJIK_bg(#tEgFRRcdq9FqAhaF-5Lm$rP=gcNnF4lAGn8 zx4v$R5wk~&=JX}dIje67oFNlZ;X|dMjj+lME(r23T`obd$0NDZjwjE+T0^TW%f&uM zX~dvgp~JSYQeb4R6Qbp4MpP{TE=;$m7+H>-*krD^LI+|V^}|MbR80dgG74y^ub?d} zEk^0WEQjzsOkdtsff#YjBTpHh;Ur{e$>9p&!6m!G2(P!hKZt~)T0u1w^9=;&g5i;9YqFY=H``XDF|c$1IrJI)9HMU_W-7I5-Ho5Imaj?P%7Kd znBW-EUeBA&S>0hYDa%3^@6qFFT~{I0_02>9DjY#2Lw1@Lt)`A*1S4(1jwjEQ$PFWk zl+**Oz_4^T&2T2iew&RpmNvgPTY(UWktpTyu!EU=eW~#+MD%kUS{6ZRF%sdRw#_r> zp#a{5myHHGZ<_L|hmlzhk1k&QQrEY_2q_)72?&@FOgumipwE^K1T_ads=@?YN2$ak zyv<3Z0gS*Z#Gb~?iXIFaMp$ihZSNXhNWjP_g-tOS{2`Y-Sg)}x4O?5ni6rw+4q!w^ zWlg+nNJw)iQpau}ZHTqp69}WyN(*YHb$IBU%NQM2tQIMn8UTJnCVTkLZ+c zPhiZR@KE+JHjGiI3;~*_G%0bIiy@3GkHhL}#gB|PV}!lo)-ja8ZyXW|9Xy6nP96y( z-~&LU7%}1{KY?Zl>oxBv)!vNJ>G=L~S&>IAMrU0<;hoBfGw0 zgED{-Xc;QISCBxY1#l{|-_YRkoK6XT{auI7Oc;eMg-pF69>J$GO7Af72>Zq6*OypF zjC4D7@hs-^viw#&B1S0U5@7a}6z%;5M&bT>Si&@~+Qm=5B4-mL-9KS;G9JM*Fv`b3 z3!&h7czvCsK{bdgP2jBEjB7CydQ5;48;!fd_bF|_w#7^Ch>iAmNLF!ADn z^$sJiXaU04c>w5qL^D^WT1*{q9LTR6!T7PFk zi~$Xo=O-;j`StbnmA0JZYqEDIAIUX&1Q(D&B$i2WfYG#v5j1oF+Bfy>t4=4u)Z#~i z7oeG;o^*YI^}!*1jY;^$sTUnE{`~^;utj>yv8dZ zqlB-5wg+KawLJ1I^=Dn~vJk^KC>;TF=IqD}9x}^H^+B~c0OUZ0zx$x_`489ax`#;l>Eqg&iHNU`6zU_ zR6W_1mmr##qZmbnzuWSz{VT;ce9F7@Bn0uv4Fe+;c1fg>#tk%zKt>~Nwckf7CdTo< jsM>^3wJSPdXsnz4e@MWG0QE6C>tO^UwM0J}aFYB9$`u-G diff --git a/samples/mfc/standard/02_Modeling/res/fram2.bmp b/samples/mfc/standard/02_Modeling/res/fram2.bmp deleted file mode 100755 index 75a2fe1fa6daea8e192e949a86bf99123137a728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5158 zcmds)ziuNp5XLDZz{+=rg@vR`W2gx79O?5etU_2a1a+tC;7(BIPJk-8TG(pTsnJ8I zldG-LU%u}fa=DUL3GRY4;hng{;qcFoGn`%j_WLhCIh8+9|BBzAJ?E(ExgVro|EPzm zJJkGHnL3C6ZaTFGYKU&T-QvlPuln!4ex-yT{!xW0{NIZ&t`NHKVaMq?XEUx?mLd3- z?#fc%pnhoEYU*qIZy8RGtp;`!Tdsc%@w?cy5u0%t#vzbhE18a)J=q2tb5p=FELfcs z&R0njM}nPaX*$0^(S+35nd>|>A~Z|6qbXQVVHmq-vp(nVD9NOw>s-Z!Q81C_DpWV@ z+)ZIRcBqpxL}5-@r}V(1VzD09nA5GL`>=YZVjjXRfK4a%9@YIBikSRc_>1{?bw)M6Kj*w;`oK=go6M6R8~ajStj3i@vQHp!>zz_r$EibM0fMG91t4?5c*Z<+ zU=Nc+?DPOsS+E9mX7>x{ZWo-(*eRZ|uh@IeK7-QO*X(VvPij{lp%Xjz?TJ3^bHoTC zTCor1hVye;N;?zKzegfs-K5055k50QPmsi?fh&QY-d{$H{K0=aGmH@4Ujj&Xy`RbGxS z>-SlGfEm#-2&ctdhgXuy%Rr95#%_2#563jj0*al4=+eLU`%%nH0C8t{xh3{^gmi7E z-?>Vc-^C6$w%K6{1{DQ>vV95k8UgEx&I7|9a;h5-27?MC$ll_lh{(l_L9!~Cuy|I~ zl0EJj(1^I?(JL`ecAGhE4e=iR9`=~j@Xpw=5OQ7Wj4{vUTQNU9XHP+|aSHnW42gaU zG@>KfksTz}NC!Z6I-cy4$NgT;%~B}gW!+h_(~d{6Ga1M5DfpezV+dXB$nzb3e`weZ zzQgZ+IJ~)FXLyL+5ATP=d%mxAs=DuSb7^M?dWikHo+*I|9gep-!wQFwL&)r*gghhsPxJI19^i^ZHVk37#p&nww+S2@>(o8djkpv*B( z@#&7aF5G~9*q_Gkk9x^*d<=Ss@X`^AFZDa_I2v?&VqcE%56baN6Z3c_k%V(+Derkh zxHER$f*i{*K#s?r87mMmPZ`-`o`>gXl-YR%4Lj*x(iD2>72#9*a!Ns^JKrL z7diGRv8Rm0CCu@zj<05OJR${O&8t-qI~*^E5uovLOUmqFyxDBl%vs5Um`9vkDSg|3 z8}r8xJ8at<`>9LxnwfK0VBN*eJ|uDO6@uPz_yBt94eq3JH*`Ej#>Gc7BZ2I#qU_7V zXSM9hj*+5l7ZaYvYII&DL*@hf?H-HmW7wtS7B=uko1JtTvSh8Qpr)!m?Fli0FTqOZkuN-q=0R?`#?#uz@y$I?gxiKASx@!V7N= z{k5I+yjGN}s*-9v9?SJ?G~bHqks?W$5dCV2MpZip6zJnGKdfPf%z7&R*8Vm{RJ*l( z-b&B=Zp9V}@OxwrG2W8FwP#$N-EL-Xzc4lSv0VVXu&U;x_rml>rTtl>KBf*U(6jiSU3ZF|6U*vab#Wo0VccUCo7wHxCi?I6nfP*zR^PX? KUruKl=l%k=`)r~B diff --git a/samples/mfc/standard/02_Modeling/res/resource.h b/samples/mfc/standard/02_Modeling/res/resource.h deleted file mode 100755 index 776e40ca0d..0000000000 --- a/samples/mfc/standard/02_Modeling/res/resource.h +++ /dev/null @@ -1,73 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Modeling.rc -// -#define IDR_MAINFRAME1 129 -#define IDR_FRAME2 130 -#define ID_BOX 802 -#define ID_Cylinder 803 -#define ID_CONE 804 -#define ID_SPHERE 805 -#define ID_TORUS 806 -#define ID_WEDGE 807 -#define ID_PRISM 808 -#define ID_REVOL 809 -#define ID_PIPE 810 -#define ID_THRU 811 -#define ID_EVOLVED 813 -#define ID_DRAFT 814 -#define ID_BUTTON815 815 -#define ID_MIRROR 816 -#define ID_MIRRORAXIS 818 -#define ID_ROTATE 820 -#define ID_SCALE 821 -#define ID_TRANSLATION 822 -#define ID_DISPLACEMENT 823 -#define ID_DEFORM 824 -#define ID_CUT 837 -#define ID_FUSE 838 -#define ID_COMMON 839 -#define ID_SECTION 840 -#define ID_PSECTION 841 -#define ID_BLEND 842 -#define ID_EVOLVEDBLEND 843 -#define ID_CHAMF 844 -#define ID_PRISM_LOCAL 846 -#define ID_DPRISM_LOCAL 847 -#define ID_REVOL_LOCAL 849 -#define ID_Pipe_LOCAL 850 -#define ID_LINEAR_LOCAL 851 -#define ID_GLUE_LOCAL 852 -#define ID_SPLIT_LOCAL 853 -#define ID_THICK_LOCAL 854 -#define ID_OFFSET_LOCAL 855 -#define ID_VERTEX 856 -#define ID_EDGE 857 -#define ID_WIRE 858 -#define ID_FACE 859 -#define ID_SHELL 860 -#define ID_COMPOUND 861 -#define ID_SEWING 862 -#define ID_BUILDER 863 -#define ID_GEOMETRIE 864 -#define ID_EXPLORER 865 -#define ID_VALID 866 -#define ID_LINEAR 867 -#define ID_SURFACE 868 -#define ID_VOLUME 869 -#define ID_FILLWITHTANG 870 -#define ID_BUTTON871 871 -#define ID_BUTTON_FILL 871 -#define ID_STOP_STOP 32901 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 133 -#define _APS_NEXT_COMMAND_VALUE 872 -#define _APS_NEXT_CONTROL_VALUE 1002 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/samples/mfc/standard/02_Modeling/src/ISession_Direction.cpp b/samples/mfc/standard/02_Modeling/src/ISession_Direction.cpp deleted file mode 100755 index dea846d7c6..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ISession_Direction.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// ISession_Direction.cpp: implementation of the ISession_Direction class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "ISession_Direction.h" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#endif - -IMPLEMENT_STANDARD_RTTIEXT(ISession_Direction,AIS_InteractiveObject) - -#include "DsgPrs_LengthPresentation.hxx" -#include "Prs3d_ArrowAspect.hxx" -#include "Prs3d_Drawer.hxx" -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - - -ISession_Direction::ISession_Direction(const gp_Pnt& aPnt,const gp_Pnt& aPnt2) -:myStartPnt(aPnt),myEndPnt(aPnt2) -{} - -ISession_Direction::ISession_Direction(const gp_Pnt& aPnt,const gp_Vec& aVec) -:myStartPnt(aPnt) -{ - myEndPnt = myStartPnt.Translated(aVec); -} - - -void ISession_Direction::Compute(const Handle(PrsMgr_PresentationManager)& /*aPresentationManager*/, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer /*aMode*/) -{ - // Set style for arrow - Handle(Prs3d_ArrowAspect) anArrowAspect = myDrawer->ArrowAspect(); - - // Draw Line - Handle(Graphic3d_ArrayOfSegments) aPrims = new Graphic3d_ArrayOfSegments (2); - aPrims->AddVertex (myStartPnt); - aPrims->AddVertex (myEndPnt); - aPresentation->CurrentGroup()->SetPrimitivesAspect (myDrawer->LineAspect()->Aspect()); - aPresentation->CurrentGroup()->AddPrimitiveArray (aPrims); - // Draw arrow - Prs3d_Arrow::Draw (aPresentation->CurrentGroup(), - myEndPnt, - gp_Dir (gp_Vec(myStartPnt, myEndPnt)), - anArrowAspect->Angle(), - anArrowAspect->Length()); -} diff --git a/samples/mfc/standard/02_Modeling/src/ISession_Direction.h b/samples/mfc/standard/02_Modeling/src/ISession_Direction.h deleted file mode 100755 index a6fce68ae3..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ISession_Direction.h +++ /dev/null @@ -1,43 +0,0 @@ -// ISession_Direction.h: interface for the ISession_Direction class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_) -#define AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include -#include - -#include "gp_Dir.hxx" -#include "gp_Vec.hxx" -#include "AIS_InteractiveObject.hxx" -class ISession_Direction; -DEFINE_STANDARD_HANDLE(ISession_Direction,AIS_InteractiveObject) -class ISession_Direction : public AIS_InteractiveObject -{ -public: - ISession_Direction(); - ISession_Direction(const gp_Pnt& aPnt,const gp_Pnt& aPnt2); - ISession_Direction(const gp_Pnt& aPnt,const gp_Vec& aVec); - - DEFINE_STANDARD_RTTIEXT(ISession_Direction,AIS_InteractiveObject) - -private: - - void Compute (const Handle(PrsMgr_PresentationManager)& aPresentationManager, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer aMode); - - void ComputeSelection (const class Handle(SelectMgr_Selection) &,const int){}; - -private: - - gp_Pnt myStartPnt; - gp_Pnt myEndPnt; -}; - -#endif // !defined(AFX_ISession_Direction_H__767C0DB3_A3B0_11D1_8DA3_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/02_Modeling/src/ModelingApp.cpp b/samples/mfc/standard/02_Modeling/src/ModelingApp.cpp deleted file mode 100755 index d6b02f2552..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ModelingApp.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// ModelingApp.cpp : Defines the class behaviors for the application. -// - -#include "stdafx.h" - -#include "..\res\resource.h" - -#include "ModelingApp.h" - -#include "OCC_MainFrame.h" -#include "OCC_3dChildFrame.h" -#include "ModelingDoc.h" -#include "OCC_3dView.h" - -///////////////////////////////////////////////////////////////////////////// -// CModelingApp construction - -CModelingApp::CModelingApp() : OCC_App() -{ - SampleName = "Modeling"; //for about dialog - SetSamplePath (L"..\\..\\02_Modeling"); -} - -///////////////////////////////////////////////////////////////////////////// -// The one and only CModelingApp object - -CModelingApp theApp; - -///////////////////////////////////////////////////////////////////////////// -// CModelingApp initialization - -BOOL CModelingApp::InitInstance() -{ - AfxEnableControlContainer(); - - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. - - // Change the registry key under which our settings are stored. - // You should modify this string to be something appropriate - // such as the name of your company or organization. - SetRegistryKey(_T("Local AppWizard-Generated Applications")); - - LoadStdProfileSettings(); // Load standard INI file options (including MRU) - - // Register the application's document templates. Document templates - // serve as the connection between documents, frame windows and views. - - CMultiDocTemplate* pDocTemplate; - pDocTemplate = new CMultiDocTemplate( - IDR_3DTYPE, - RUNTIME_CLASS(CModelingDoc), - RUNTIME_CLASS(OCC_3dChildFrame), // custom MDI child frame - RUNTIME_CLASS(OCC_3dView)); - AddDocTemplate(pDocTemplate); - - // create main MDI Frame window - OCC_MainFrame* pMainFrame = new OCC_MainFrame(with_AIS_TB); - if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) - return FALSE; - m_pMainWnd = pMainFrame; - // Create additional toolbar - m_pToolBar2 = new CToolBar; - if ( !m_pToolBar2->Create(m_pMainWnd, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_TOOLTIPS) || - !m_pToolBar2->LoadToolBar(IDR_FRAME2)) - { - TRACE0("Failed to create toolbar\n"); - return FALSE; - } - - - // Parse command line for standard shell commands, DDE, file open - CCommandLineInfo cmdInfo; - ParseCommandLine(cmdInfo); - - // Dispatch commands specified on the command line - if (!ProcessShellCommand(cmdInfo)) - return FALSE; - - // The main window has been initialized, so show and update it. - pMainFrame->ShowWindow(m_nCmdShow); - pMainFrame->UpdateWindow(); - - return TRUE; -} - diff --git a/samples/mfc/standard/02_Modeling/src/ModelingApp.h b/samples/mfc/standard/02_Modeling/src/ModelingApp.h deleted file mode 100755 index 468a4ddce4..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ModelingApp.h +++ /dev/null @@ -1,36 +0,0 @@ -// ModelingApp.h : main header file for the TOPOLOGYTRANSFORMATIONS application -// - -#if !defined(AFX_MODELINGAPP_H__30453388_3E75_11D7_8611_0060B0EE281E__INCLUDED_) -#define AFX_MODELINGAPP_H__30453388_3E75_11D7_8611_0060B0EE281E__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include - -class CModelingApp : public OCC_App -{ -public: - - CModelingApp(); - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CModelingApp) - public: - virtual BOOL InitInstance(); - //}}AFX_VIRTUAL - -private: - - CToolBar *m_pToolBar2; -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_MODELINGAPP_H__30453388_3E75_11D7_8611_0060B0EE281E__INCLUDED_) diff --git a/samples/mfc/standard/02_Modeling/src/ModelingDoc.cpp b/samples/mfc/standard/02_Modeling/src/ModelingDoc.cpp deleted file mode 100755 index 951a7971cf..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ModelingDoc.cpp +++ /dev/null @@ -1,5077 +0,0 @@ -// ModelingDoc.cpp : implementation of the CModelingDoc class -// - -#include "stdafx.h" - -#include "ModelingDoc.h" - -#include "ModelingApp.h" -#include "ResultDialog.h" -#include "State.h" - -#include "ISession_Direction.h" -#include "..\res\resource.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static Handle(AIS_Shape) AIS1; -static TopoDS_Face THE_F1, THE_F2; -static TopoDS_Edge THE_E1, THE_E2; - -///////////////////////////////////////////////////////////////////////////// -// CModelingDoc - -IMPLEMENT_DYNCREATE(CModelingDoc, CDocument) - -BEGIN_MESSAGE_MAP(CModelingDoc, OCC_3dBaseDoc) - //{{AFX_MSG_MAP(CModelingDoc) - ON_COMMAND(ID_MIRROR, OnMirror) - ON_COMMAND(ID_MIRRORAXIS, OnMirroraxis) - ON_COMMAND(ID_ROTATE, OnRotate) - ON_COMMAND(ID_SCALE, OnScale) - ON_COMMAND(ID_TRANSLATION, OnTranslation) - ON_COMMAND(ID_DISPLACEMENT, OnDisplacement) - ON_COMMAND(ID_DEFORM, OnDeform) - ON_COMMAND(ID_BOX, OnBox) - ON_COMMAND(ID_Cylinder, OnCylinder) - ON_COMMAND(ID_CONE, OnCone) - ON_COMMAND(ID_SPHERE, OnSphere) - ON_COMMAND(ID_TORUS, OnTorus) - ON_COMMAND(ID_WEDGE, OnWedge) - ON_COMMAND(ID_PRISM, OnPrism) - ON_COMMAND(ID_REVOL, OnRevol) - ON_COMMAND(ID_PIPE, OnPipe) - ON_COMMAND(ID_THRU, OnThru) - ON_COMMAND(ID_EVOLVED, OnEvolved) - ON_COMMAND(ID_DRAFT, OnDraft) - ON_COMMAND(ID_CUT, OnCut) - ON_COMMAND(ID_FUSE, OnFuse) - ON_COMMAND(ID_SECTION, OnSection) - ON_COMMAND(ID_COMMON, OnCommon) - ON_COMMAND(ID_PSECTION, OnPsection) - ON_COMMAND(ID_BLEND, OnBlend) - ON_COMMAND(ID_CHAMF, OnChamf) - ON_COMMAND(ID_EVOLVEDBLEND, OnEvolvedblend) - ON_COMMAND(ID_PRISM_LOCAL, OnPrismLocal) - ON_COMMAND(ID_REVOL_LOCAL, OnRevolLocal) - ON_COMMAND(ID_GLUE_LOCAL, OnGlueLocal) - ON_COMMAND(ID_DPRISM_LOCAL, OnDprismLocal) - ON_COMMAND(ID_Pipe_LOCAL, OnPipeLocal) - ON_COMMAND(ID_LINEAR_LOCAL, OnLinearLocal) - ON_COMMAND(ID_SPLIT_LOCAL, OnSplitLocal) - ON_COMMAND(ID_THICK_LOCAL, OnThickLocal) - ON_COMMAND(ID_OFFSET_LOCAL, OnOffsetLocal) - ON_COMMAND(ID_VERTEX, OnVertex) - ON_COMMAND(ID_EDGE, OnEdge) - ON_COMMAND(ID_WIRE, OnWire) - ON_COMMAND(ID_FACE, OnFace) - ON_COMMAND(ID_SHELL, OnShell) - ON_COMMAND(ID_COMPOUND, OnCompound) - ON_COMMAND(ID_GEOMETRIE, OnGeometrie) - ON_COMMAND(ID_SEWING, OnSewing) - ON_COMMAND(ID_EXPLORER, OnExplorer) - ON_COMMAND(ID_BUILDER, OnBuilder) - ON_COMMAND(ID_VALID, OnValid) - ON_COMMAND(ID_LINEAR, OnLinear) - ON_COMMAND(ID_VOLUME, OnVolume) - ON_COMMAND(ID_SURFACE, OnSurface) - ON_COMMAND(ID_BUTTON_FILL, OnButtonFill) - ON_COMMAND(ID_STOP_STOP, OnStopStop) - ON_COMMAND(ID_FILLWITHTANG, OnFillwithtang) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CModelingDoc construction/destruction - -CModelingDoc::CModelingDoc() -{ - myAISContext->SetDisplayMode(AIS_Shaded,Standard_False); -} - -CModelingDoc::~CModelingDoc() -{ -} - -void CModelingDoc::OnMirror() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge (60.,100.,80.,20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - gp_Pnt PntCenterOfTheTransformation(110,60,60); - Handle(AIS_Point) aispnt = new AIS_Point(new Geom_CartesianPoint(PntCenterOfTheTransformation)); - myAISContext->Display(aispnt,Standard_False); - theTransformation.SetMirror(PntCenterOfTheTransformation); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_Trsf theTransformation; \n\ -gp_Pnt PntCenterOfTheTransformation(110,60,60); \n\ -theTransformation.SetMirror(PntCenterOfTheTransformation);\n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - PocessTextInDialog("Transform a Shape with Mirror and One point.", Message); - -} - -void CModelingDoc::OnMirroraxis() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60.,100.,80.,20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - gp_Ax1 axe = gp_Ax1(gp_Pnt(110,60,60),gp_Dir(0.,1.,0.)); - Handle(Geom_Axis1Placement) Gax1 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax1 = new AIS_Axis(Gax1); - myAISContext->Display(ax1,Standard_False); - theTransformation.SetMirror(axe); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_Trsf theTransformation; \n\ -gp_Ax1 Axis = gp_Ax1(gp_Pnt(110,60,60),gp_Dir(0.,1.,0.)); \n\ -theTransformation.SetMirror(Axis);\n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - - PocessTextInDialog("Transform a Shape with Mirror and One axis.", Message); - -} - - -void CModelingDoc::OnRotate() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60.,100.,80.,20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - gp_Ax1 axe = gp_Ax1(gp_Pnt(200,60,60),gp_Dir(0.,1.,0.)); - Handle(Geom_Axis1Placement) Gax1 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax1 = new AIS_Axis(Gax1); - myAISContext->Display(ax1,Standard_False); - theTransformation.SetRotation(axe,30*M_PI/180); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_Trsf theTransformation; \n\ -gp_Ax1 Axis = gp_Ax1(gp_Pnt(200,60,60),gp_Dir(0.,1.,0.)); \n\ -theTransformation.SetRotation(Axis,30*PI/180); // Rotation of 30 degrees \n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - - PocessTextInDialog("Transform a Shape with Rotation.", Message); - -} - -void CModelingDoc::OnScale() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60.,100.,80.,20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - gp_Pnt theCenterOfScale(200,60,60); - Handle(AIS_Point) aispnt = new AIS_Point(new Geom_CartesianPoint(theCenterOfScale)); - - myAISContext->Display(aispnt,Standard_False); - theTransformation.SetScale(theCenterOfScale,0.5); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_Trsf theTransformation; \n\ -gp_Pnt theCenterOfScale(200,60,60); \n\ -theTransformation.SetScale(theCenterOfScale,0.5); // Scale : value = 0.5 \n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - - PocessTextInDialog("Scale a Shape with One point.", Message); - - -} - - - -void CModelingDoc::OnTranslation() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(6.,10.,8.,2.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - gp_Vec theVectorOfTranslation(-6,-6,6); - - Handle(ISession_Direction) aDirection1 = new ISession_Direction(gp_Pnt(0,0,0),theVectorOfTranslation); - myAISContext->Display(aDirection1,Standard_False); - - theTransformation.SetTranslation(theVectorOfTranslation); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - - Fit(); - - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(6.,10.,8.,2.); \n\ -gp_Trsf theTransformation; \n\ -gp_Vec theVectorOfTranslation(6,6,6); \n\ -theTransformation.SetTranslation(theVectorOfTranslation); \n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - - PocessTextInDialog("Translate a Shape with One vector.", Message); - -} - -void CModelingDoc::OnDisplacement() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60., 100., 80., 20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - gp_Trsf theTransformation; - - gp_Ax3 ax3_1(gp_Pnt(0,0,0),gp_Dir(0,0,1)); - gp_Ax3 ax3_2(gp_Pnt(60,60,60),gp_Dir(1,1,1)); - - theTransformation.SetDisplacement(ax3_1,ax3_2); - BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation); - TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(TransformedShape); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_Trsf theTransformation; \n\ -gp_Ax3 ax3_1(gp_Pnt(0,0,0),gp_Dir(0,0,1)); \n\ -gp_Ax3 ax3_2(gp_Pnt(60,60,60),gp_Dir(1,1,1)); \n\ -theTransformation.SetDisplacement(ax3_1,ax3_2); \n\ -BRepBuilderAPI_Transform myBRepTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepTransformation.Shape(); \n"); - - PocessTextInDialog("Displace a Shape with Two coordinate systems.", Message); - - -} - - -void CModelingDoc::OnDeform() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60., 100., 80., 20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - - gp_GTrsf theTransformation; - gp_Mat rot(1, 0, 0, 0, 0.5, 0, 0, 0, 1.5); - theTransformation.SetVectorialPart(rot); - theTransformation.SetTranslationPart(gp_XYZ(5,5,5)); - - BRepBuilderAPI_GTransform myBRepTransformation(S,theTransformation); - TopoDS_Shape S2 = myBRepTransformation.Shape(); - - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_BLUE1,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.); \n\ -gp_GTrsf theTransformation; \n\ -gp_Mat rot(1, 0, 0, 0, 0.5, 0, 0, 0, 1.5); // scaling : 100% on X ; 50% on Y ; 150% on Z . \n\ -theTransformation.SetVectorialPart(rot); \n\ -theTransformation.SetTranslationPart(gp_XYZ(5,5,5)); \n\ -BRepBuilderAPI_GTransform myBRepGTransformation(S,theTransformation);\n\ -TopoDS_Shape TransformedShape = myBRepGTransformation.Shape(); \n"); - - PocessTextInDialog("Deform a Shape with One matrix of deformation and One translation.", Message); -} - -/* ================================================================================= - ==================== P R I M I T I V E S ==================================== - ================================================================================= */ - -void CModelingDoc::OnBox() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape B1 = BRepPrimAPI_MakeBox(200., 150., 100.).Shape(); - Handle(AIS_Shape) aBox1 = new AIS_Shape(B1); - myAISContext->SetMaterial(aBox1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(aBox1,Quantity_NOC_GREEN,Standard_False); - myAISContext->Display(aBox1,Standard_False); - TopoDS_Shape B2 = BRepPrimAPI_MakeBox (gp_Ax2(gp_Pnt(-200.,-80.,-70.), - gp_Dir(1.,2.,1.)), - 80., 90., 120.).Shape(); - Handle(AIS_Shape) aBox2 = new AIS_Shape(B2); - myAISContext->SetMaterial(aBox2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(aBox2,Quantity_NOC_RED,Standard_False); - myAISContext->Display(aBox2,Standard_False); - Fit(); - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape B1 = BRepPrimAPI_MakeBox (200.,150.,100.); \n\ -TopoDS_Shape B2 = BRepPrimAPI_MakeBox (gp_Ax2(gp_Pnt(-200.,-80.,-70.), \n\ - gp_Dir(1.,2.,1.)), \n\ - 80.,90.,120.); \n\ - \n"); - PocessTextInDialog("Make a topological box", Message); -} - -void CModelingDoc::OnCylinder() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape C1 = BRepPrimAPI_MakeCylinder(50., 200.).Shape(); - Handle(AIS_Shape) aCyl1 = new AIS_Shape(C1); - myAISContext->SetMaterial(aCyl1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(aCyl1,Quantity_NOC_RED,Standard_False); - myAISContext->Display(aCyl1,Standard_False); - TopoDS_Shape C2 = BRepPrimAPI_MakeCylinder (gp_Ax2(gp_Pnt(200.,200.,0.), - gp_Dir(0.,0.,1.)), - 40., 110., 210.*M_PI / 180).Shape(); - Handle(AIS_Shape) aCyl2 = new AIS_Shape(C2); - myAISContext->SetMaterial(aCyl2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(aCyl2,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->Display(aCyl2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape C1 = BRepPrimAPI_MakeCylinder (50.,200.); \n\ -TopoDS_Shape C2 = BRepPrimAPI_MakeCylinder (gp_Ax2(gp_Pnt(200.,200.,0.), \n\ - gp_Dir(0.,0.,1.)), \n\ - 40.,110.,210.*PI180.); \n\ - \n"); - PocessTextInDialog("Make a cylinder", Message); -} - - -void CModelingDoc::OnCone() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape C1 = BRepPrimAPI_MakeCone(50., 25., 200.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(C1); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(ais1,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->Display(ais1,Standard_False); - TopoDS_Shape C2 = BRepPrimAPI_MakeCone(gp_Ax2(gp_Pnt(100.,100.,0.), - gp_Dir(0.,0.,1.)), - 60., 0., 150., 210.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(C2); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetColor(ais2,Quantity_NOC_GREEN,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape C1 = BRepPrimAPI_MakeCone (50.,25.,200.); \n\ -TopoDS_Shape C2 = BRepPrimAPI_MakeCone(gp_Ax2(gp_Pnt(100.,100.,0.), \n\ - gp_Dir(0.,0.,1.)), \n\ - 605.,0.,150.,210.*PI180); \n\ - \n"); - PocessTextInDialog("Make a cone", Message); -} - -void CModelingDoc::OnSphere() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S1 = BRepPrimAPI_MakeSphere(gp_Pnt(-200., -250., 0.), 80.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S1); - myAISContext->SetColor(ais1,Quantity_NOC_AZURE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - TopoDS_Shape S2 = BRepPrimAPI_MakeSphere(100., 120.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - TopoDS_Shape S3 = BRepPrimAPI_MakeSphere(gp_Pnt(200.,250.,0.),100., - -60.*M_PI / 180, 60.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais3 = new AIS_Shape(S3); - myAISContext->SetColor(ais3,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ais3,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais3,Standard_False); - TopoDS_Shape S4 = BRepPrimAPI_MakeSphere(gp_Pnt(0.,0.,-300.),150., - -45.*M_PI / 180, 45.*M_PI / 180, 45.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais4 = new AIS_Shape(S4); - myAISContext->SetColor(ais4,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais4,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais4,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeSphere(gp_Pnt(-200.,-250.,0.),80.); \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeSphere(100.,120.*PI180); \n\ -TopoDS_Shape S3 = BRepPrimAPI_MakeSphere(gp_Pnt(200.,250.,0.),100., \n\ - -60.*PI180, 60.*PI180); \n\ -TopoDS_Shape S4 = BRepPrimAPI_MakeSphere(gp_Pnt(0.,0.,-300.),150., \n\ - -45.*PI180, 45.*PI180, 45.*PI180); \n\ - \n"); - PocessTextInDialog("Make a sphere", Message); -} - -void CModelingDoc::OnTorus() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S1 = BRepPrimAPI_MakeTorus(60., 20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S1); - myAISContext->SetColor(ais1,Quantity_NOC_AZURE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - TopoDS_Shape S2 = BRepPrimAPI_MakeTorus(gp_Ax2(gp_Pnt(100.,100.,0.),gp_Dir(1.,1.,1.)), - 50., 20., 210.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - TopoDS_Shape S3 = BRepPrimAPI_MakeTorus(gp_Ax2(gp_Pnt(-200.,-150.,-100),gp_Dir(0.,1.,0.)), - 60., 20., -45.*M_PI / 180, 45.*M_PI / 180, 90.*M_PI / 180).Shape(); - Handle(AIS_Shape) ais3= new AIS_Shape(S3); - myAISContext->SetColor(ais3,Quantity_NOC_CORAL,Standard_False); - myAISContext->SetMaterial(ais3,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais3,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeTorus(60.,20.); \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeTorus(gp_Ax2(gp_Pnt(100.,100.,0.),gp_Dir(1.,1.,1.)), \n\ - 50.,20.,210.*PI180); \n\ -TopoDS_Shape S3 = BRepPrimAPI_MakeTorus(gp_Ax2(gp_Pnt(-200.,-150.,-100),gp_Dir(0.,1.,0.)), \n\ - 60.,20.,-45.*PI180,45.*PI180,90.*PI180); \n\ - \n"); - PocessTextInDialog("Make a torus", Message); -} - -void CModelingDoc::OnWedge() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S1 = BRepPrimAPI_MakeWedge(60., 100., 80., 20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S1); - myAISContext->SetColor(ais1,Quantity_NOC_AZURE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - TopoDS_Shape S2 = BRepPrimAPI_MakeWedge(gp_Ax2(gp_Pnt(100.,100.,0.),gp_Dir(0.,0.,1.)), - 60., 50., 80., 25., -10., 40., 70.).Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_CORAL2,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeWedge(60.,100.,80.,20.); \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeWedge(gp_Ax2(gp_Pnt(100.,100.,0.),gp_Dir(0.,0.,1.)), \n\ - 60.,50.,80.,25.,-10.,40.,70.); \n\ - \n"); - PocessTextInDialog("Make a wedge", Message); -} - -void CModelingDoc::OnPrism() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Vertex V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-200.,-200.,0.)); - Handle(AIS_Shape) ais1 = new AIS_Shape(V1); - myAISContext->Display(ais1,Standard_False); - TopoDS_Shape S1 = BRepPrimAPI_MakePrism(V1,gp_Vec(0.,0.,100.)); - Handle(AIS_Shape) ais2 = new AIS_Shape(S1); - myAISContext->Display(ais2,Standard_False); - - TopoDS_Edge E = BRepBuilderAPI_MakeEdge(gp_Pnt(-150.,-150,0.), gp_Pnt(-50.,-50,0.)); - Handle(AIS_Shape) ais3 = new AIS_Shape(E); - myAISContext->Display(ais3,Standard_False); - TopoDS_Shape S2 = BRepPrimAPI_MakePrism(E,gp_Vec(0.,0.,100.)); - Handle(AIS_Shape) ais4 = new AIS_Shape(S2); - myAISContext->SetColor(ais4,Quantity_NOC_CORAL2,Standard_False); - myAISContext->SetMaterial(ais4,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais4,Standard_False); - - TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(gp_Pnt(0.,0.,0.), gp_Pnt(50.,0.,0.)); - TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,0.,0.), gp_Pnt(50.,50.,0.)); - TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,50.,0.), gp_Pnt(0.,0.,0.)); - TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3); - TopoDS_Shape S3 = BRepPrimAPI_MakePrism(W,gp_Vec(0.,0.,100.)); - Handle(AIS_Shape) ais5 = new AIS_Shape(W); - myAISContext->Display(ais5,Standard_False); - Handle(AIS_Shape) ais6 = new AIS_Shape(S3); - myAISContext->SetColor(ais6,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais6,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais6,Standard_False); - - gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(200.,200.,0.),gp_Dir(0.,0.,1.)), 80.); - TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c); - TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec); - TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::XOY()),Wc); - Handle(AIS_Shape) ais7 = new AIS_Shape(F); - myAISContext->Display(ais7,Standard_False); - TopoDS_Shape S4 = BRepPrimAPI_MakePrism(F,gp_Vec(0.,0.,100.)); - Handle(AIS_Shape) ais8 = new AIS_Shape(S4); - myAISContext->SetColor(ais8,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais8,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais8,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ---- Prism a vertex -> result is an edge --- \n\ -\n\ -TopoDS_Vertex V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-200.,-200.,0.)); \n\ -TopoDS_Shape S1 = BRepBuilderAPI_MakePrism(V1,gp_Vec(0.,0.,100.)); \n\ -\n\ ---- Prism an edge -> result is a face --- \n\ -\n\ -TopoDS_Edge E = BRepBuilderAPI_MakeEdge(gp_Pnt(-150.,-150,0.), gp_Pnt(-50.,-50,0.)); \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakePrism(E,gp_Vec(0.,0.,100.)); \n\ -\n\ ---- Prism an wire -> result is a shell --- \n\ -\n\ -TopoDS_Edge E1 = BREpBuilderAPI_MakeEdge(gp_Pnt(0.,0.,0.), gp_Pnt(50.,0.,0.)); \n\ -TopoDS_Edge E2 = BREpBuilderAPI_MakeEdge(gp_Pnt(50.,0.,0.), gp_Pnt(50.,50.,0.)); \n\ -TopoDS_Edge E3 = BREpBuilderAPI_MakeEdge(gp_Pnt(50.,50.,0.), gp_Pnt(0.,0.,0.)); \n\ -TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3); \n\ -TopoDS_Shape S3 = BRepPrimAPI_MakePrism(W,gp_Vec(0.,0.,100.)); \n\ -\n\ ---- Prism a face or a shell -> result is a solid --- \n\ -\n\ -gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(200.,200.,0.gp_Dir(0.,0.,1.)), 80.); \n\ -TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c); \n\ -TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec); \n\ -TopoDS_Face F = BRepBuilderAPI_MakeFace(gp::XOY(),Wc); \n\ -TopoDS_Shape S4 = BRepBuilderAPI_MakePrism(F,gp_Vec(0.,0.,100.)); \n\ - \n"); - PocessTextInDialog("Make a prism", Message); -} - -void CModelingDoc::OnRevol() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Vertex V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-200.,-200.,0.)); - Handle(AIS_Shape) ais1 = new AIS_Shape(V1); - myAISContext->Display(ais1,Standard_False); - gp_Ax1 axe = gp_Ax1(gp_Pnt(-170.,-170.,0.),gp_Dir(0.,0.,1.)); - Handle(Geom_Axis1Placement) Gax1 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax1 = new AIS_Axis(Gax1); - myAISContext->Display(ax1,Standard_False); - TopoDS_Shape S1 = BRepPrimAPI_MakeRevol(V1,axe); - Handle(AIS_Shape) ais2 = new AIS_Shape(S1); - myAISContext->Display(ais2,Standard_False); - - TopoDS_Edge E = BRepBuilderAPI_MakeEdge(gp_Pnt(-120.,-120,0.), gp_Pnt(-120.,-120,100.)); - Handle(AIS_Shape) ais3 = new AIS_Shape(E); - myAISContext->Display(ais3,Standard_False); - axe = gp_Ax1(gp_Pnt(-100.,-100.,0.),gp_Dir(0.,0.,1.)); - Handle(Geom_Axis1Placement) Gax2 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax2 = new AIS_Axis(Gax2); - myAISContext->Display(ax2,Standard_False); - TopoDS_Shape S2 = BRepPrimAPI_MakeRevol(E,axe); - Handle(AIS_Shape) ais4 = new AIS_Shape(S2); - myAISContext->SetColor(ais4,Quantity_NOC_YELLOW,Standard_False); - myAISContext->SetMaterial(ais4,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais4,Standard_False); - - TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(gp_Pnt(0.,0.,0.), gp_Pnt(50.,0.,0.)); - TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,0.,0.), gp_Pnt(50.,50.,0.)); - TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,50.,0.), gp_Pnt(0.,0.,0.)); - TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3); - axe = gp_Ax1(gp_Pnt(0.,0.,30.),gp_Dir(0.,1.,0.)); - Handle(Geom_Axis1Placement) Gax3 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax3 = new AIS_Axis(Gax3); - myAISContext->Display(ax3,Standard_False); - TopoDS_Shape S3 = BRepPrimAPI_MakeRevol(W,axe, 210.*M_PI/180); - Handle(AIS_Shape) ais5 = new AIS_Shape(W); - myAISContext->Display(ais5,Standard_False); - Handle(AIS_Shape) ais6 = new AIS_Shape(S3); - myAISContext->SetColor(ais6,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais6,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais6,Standard_False); - - gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(200.,200.,0.),gp_Dir(0.,0.,1.)), 80.); - TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c); - TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec); - TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::XOY()),Wc); - axe = gp_Ax1(gp_Pnt(290,290.,0.),gp_Dir(0.,1,0.)); - Handle(Geom_Axis1Placement) Gax4 = new Geom_Axis1Placement(axe); - Handle (AIS_Axis) ax4 = new AIS_Axis(Gax4); - myAISContext->Display(ax4,Standard_False); - TopoDS_Shape S4 = BRepPrimAPI_MakeRevol(F,axe, 90.*M_PI/180); - Handle(AIS_Shape) ais8 = new AIS_Shape(S4); - myAISContext->SetColor(ais8,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais8,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais8,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ---- Revol of a vertex -> result is an edge --- \n\ -\n\ -TopoDS_Vertex V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-200.,-200.,0.)); \n\ -gp_Ax1 axe = gp_Ax1(gp_Pnt(-170.,-170.,0.),gp_Dir(0.,0.,1.)); \n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeRevol(V1,axe); \n\ -\n\ ---- Revol of an edge -> result is a face --- \n\ -\n\ -TopoDS_Edge E = BRepBuilderAPI_MakeEdge(gp_Pnt(-120.,-120,0.), gp_Pnt(-120.,-120,100.)); \n\ -axe = gp_Ax1(gp_Pnt(-100.,-100.,0.),gp_Dir(0.,0.,1.)); \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeRevol(E,axe); \n\ -\n\ ---- Revol of a wire -> result is a shell --- \n\ -\n\ -TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(gp_Pnt(0.,0.,0.), gp_Pnt(50.,0.,0.)); \n\ -TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,0.,0.), gp_Pnt(50.,50.,0.)); \n\ -TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(gp_Pnt(50.,50.,0.), gp_Pnt(0.,0.,0.)); \n\ -TopoDS_Wire W = BRepBuilderAPI_MakeWire(E1,E2,E3); \n\ -axe = gp_Ax1(gp_Pnt(0.,0.,30.),gp_Dir(0.,1.,0.)); \n\ -TopoDS_Shape S3 = BRepPrimAPI_MakeRevol(W,axe, 210.*PI180); \n\ -\n\ ---- Revol of a face -> result is a solid --- \n\ -\n\ -gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(200.,200.,0.),gp_Dir(0.,0.,1.)), 80.); \n\ -TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c); \n\ -TopoDS_Wire Wc = BRepBuilderPI_MakeWire(Ec); \n\ -TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::XOY()),Wc); \n\ -axe = gp_Ax1(gp_Pnt(290,290.,0.),gp_Dir(0.,1,0.)); \n\ -TopoDS_Shape S4 = BRepPrimAPI_MakeRevol(F,axe, 90.*PI180); \n\ - \n"); - PocessTextInDialog("Make a revol", Message); -} - -void CModelingDoc::OnPipe() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TColgp_Array1OfPnt CurvePoles(1,4); - gp_Pnt pt = gp_Pnt(0.,0.,0.); - CurvePoles(1) = pt; - pt = gp_Pnt(20.,50.,0.); - CurvePoles(2) = pt; - pt = gp_Pnt(60.,100.,0.); - CurvePoles(3) = pt; - pt = gp_Pnt(150.,0.,0.); - CurvePoles(4) = pt; - Handle(Geom_BezierCurve) curve = new Geom_BezierCurve(CurvePoles); - TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve); - TopoDS_Wire W = BRepBuilderAPI_MakeWire(E); - Handle(AIS_Shape) ais1 = new AIS_Shape(W); - myAISContext->Display(ais1,Standard_False); - Fit(); - Sleep(500); - gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(0.,0.,0.),gp_Dir(0.,1.,0.)),10.); - TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c); - TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec); - Handle(AIS_Shape) ais3 = new AIS_Shape(Wc); - myAISContext->Display(ais3,Standard_False); - TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::ZOX()),Wc); - TopoDS_Shape S = BRepOffsetAPI_MakePipe(W,F); - Handle(AIS_Shape) ais2 = new AIS_Shape(S); - myAISContext->SetColor(ais2,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TColgp_Array1OfPnt CurvePoles(1,6);\n\ -gp_Pnt pt = gp_Pnt(0.,0.,0.);\n\ -CurvePoles(1) = pt;\n\ -pt = gp_Pnt(20.,50.,0.);\n\ -CurvePoles(2) = pt;\n\ -pt = gp_Pnt(60.,100.,0.);\n\ -CurvePoles(3) = pt;\n\ -pt = gp_Pnt(150.,0.,0.);\n\ -CurvePoles(4) = pt;\n\ -Handle(Geom_BezierCurve) curve = new Geom_BezierCurve(CurvePoles);\n\ -TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve);\n\ -TopoDS_Wire W = BRepBuilderAPI_MakeWire(E);\n\ -gp_Circ c = gp_Circ(gp_Ax2(gp_Pnt(0.,0.,0.),gp_Dir(0.,1.,0.)),10.);\n\ -TopoDS_Edge Ec = BRepBuilderAPI_MakeEdge(c);\n\ -TopoDS_Wire Wc = BRepBuilderAPI_MakeWire(Ec);\n\ -TopoDS_Face F = BRepBuilderAPI_MakeFace(gp_Pln(gp::ZOX()),Wc);\n\ -TopoDS_Shape S = BRepBuilderAPI_MakePipe(W,F);\n\ - \n"); - PocessTextInDialog("Make a pipe", Message); - -} - -void CModelingDoc::OnThru() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - gp_Circ c1 = gp_Circ(gp_Ax2(gp_Pnt(-100.,0.,-100.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(c1); - TopoDS_Wire W1 = BRepBuilderAPI_MakeWire(E1); - Handle(AIS_Shape) sec1 = new AIS_Shape(W1); - myAISContext->Display(sec1,Standard_False); - gp_Circ c2 = gp_Circ(gp_Ax2(gp_Pnt(-10.,0.,-0.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(c2); - TopoDS_Wire W2 = BRepBuilderAPI_MakeWire(E2); - Handle(AIS_Shape) sec2 = new AIS_Shape(W2); - myAISContext->Display(sec2,Standard_False); - gp_Circ c3 = gp_Circ(gp_Ax2(gp_Pnt(-75.,0.,100.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(c3); - TopoDS_Wire W3 = BRepBuilderAPI_MakeWire(E3); - Handle(AIS_Shape) sec3 = new AIS_Shape(W3); - myAISContext->Display(sec3,Standard_False); - gp_Circ c4= gp_Circ(gp_Ax2(gp_Pnt(0.,0.,200.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E4 = BRepBuilderAPI_MakeEdge(c4); - TopoDS_Wire W4 = BRepBuilderAPI_MakeWire(E4); - Handle(AIS_Shape) sec4 = new AIS_Shape(W4); - myAISContext->Display(sec4,Standard_False); - BRepOffsetAPI_ThruSections generator(Standard_False,Standard_True); - generator.AddWire(W1); - generator.AddWire(W2); - generator.AddWire(W3); - generator.AddWire(W4); - generator.Build(); - TopoDS_Shape S1 = generator.Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S1); - myAISContext->SetColor(ais1,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - - gp_Circ c1b = gp_Circ(gp_Ax2(gp_Pnt(100.,0.,-100.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E1b = BRepBuilderAPI_MakeEdge(c1b); - TopoDS_Wire W1b = BRepBuilderAPI_MakeWire(E1b); - Handle(AIS_Shape) sec1b = new AIS_Shape(W1b); - myAISContext->Display(sec1b,Standard_False); - gp_Circ c2b = gp_Circ(gp_Ax2(gp_Pnt(210.,0.,-0.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E2b = BRepBuilderAPI_MakeEdge(c2b); - TopoDS_Wire W2b = BRepBuilderAPI_MakeWire(E2b); - Handle(AIS_Shape) sec2b = new AIS_Shape(W2b); - myAISContext->Display(sec2b,Standard_False); - gp_Circ c3b = gp_Circ(gp_Ax2(gp_Pnt(275.,0.,100.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E3b = BRepBuilderAPI_MakeEdge(c3b); - TopoDS_Wire W3b = BRepBuilderAPI_MakeWire(E3b); - Handle(AIS_Shape) sec3b = new AIS_Shape(W3b); - myAISContext->Display(sec3b,Standard_False); - gp_Circ c4b= gp_Circ(gp_Ax2(gp_Pnt(200.,0.,200.),gp_Dir(0.,0.,1.)),40.); - TopoDS_Edge E4b = BRepBuilderAPI_MakeEdge(c4b); - TopoDS_Wire W4b = BRepBuilderAPI_MakeWire(E4b); - Handle(AIS_Shape) sec4b = new AIS_Shape(W4b); - myAISContext->Display(sec4b,Standard_False); - BRepOffsetAPI_ThruSections generatorb(Standard_True,Standard_False); - generatorb.AddWire(W1b); - generatorb.AddWire(W2b); - generatorb.AddWire(W3b); - generatorb.AddWire(W4b); - generatorb.Build(); - TopoDS_Shape S2 = generatorb.Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - myAISContext->SetColor(ais2,Quantity_NOC_ALICEBLUE,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ----------- ruled -------------- \n\ -\n\ -gp_Circ c1 = gp_Circ(gp_Ax2(gp_Pnt(-100.,0.,-100.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E1 = BRepBuilderAPI_MakeEdge(c1);\n\ -TopoDS_Wire W1 = BRepBuilderAPI_MakeWire(E1);\n\ -gp_Circ c2 = gp_Circ(gp_Ax2(gp_Pnt(-10.,0.,-0.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E2 = BRepBuilderAPI_MakeEdge(c2);\n\ -TopoDS_Wire W2 = BRepBuilderAPI_MakeWire(E2);\n\ -gp_Circ c3 = gp_Circ(gp_Ax2(gp_Pnt(-75.,0.,100.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E3 = BRepBuilderAPI_MakeEdge(c3);\n\ -TopoDS_Wire W3 = BRepBuilderAPI_MakeWire(E3);\n\ -gp_Circ c4= gp_Circ(gp_Ax2(gp_Pnt(0.,0.,200.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E4 = BRep>BuilderAPI_MakeEdge(c4);\n\ -TopoDS_Edge E4 = BRepBuilderAPI_MakeEdge(c4);\n\ -TopoDS_Edge E4 = BRepBuilderAPI_MakeEdge(c4);\n\ -TopoDS_Wire W4 = BRepBuilderAPI_MakeWire(E4);\n\ -BRepOffsetAPI_ThruSections generator(Standard_False,Standard_True);\n\ -generator.AddWire(W1);\n\ -generator.AddWire(W2);\n\ -generator.AddWire(W3);\n\ -generator.AddWire(W4);\n\ -generator.Build();\n\ -TopoDS_Shape S1 = generator.Shape();\n\ -\n\ ----------- smooth -------------- \n\ -\n\ -gp_Circ c1b = gp_Circ(gp_Ax2(gp_Pnt(100.,0.,-100.),gp_Dir(0.,0.,1.)),40.); \n\ -TopoDS_Edge E1b = BRepBuilderAPI_MakeEdge(c1b); \n\ -TopoDS_Wire W1b = BRepBuilderAPI_MakeWire(E1b); \n\ -gp_Circ c2b = gp_Circ(gp_Ax2(gp_Pnt(210.,0.,-0.),gp_Dir(0.,0.,1.)),40.); \n\ -TopoDS_Edge E2b = BRepBuilderAPI_MakeEdge(c2b);\n\ -TopoDS_Wire W2b = BRepBuilderAPI_MakeWire(E2b); \n\ -gp_Circ c3b = gp_Circ(gp_Ax2(gp_Pnt(275.,0.,100.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E3b = BRepBuilderAPI_MakeEdge(c3b);\n\ -TopoDS_Wire W3b = BRepBuilderAPI_MakeWire(E3b);\n\ -gp_Circ c4b= gp_Circ(gp_Ax2(gp_Pnt(200.,0.,200.),gp_Dir(0.,0.,1.)),40.);\n\ -TopoDS_Edge E4b = BRepBuilderAPI_MakeEdge(c4b);\n\ -TopoDS_Wire W4b = BRepBuilderAPI_MakeWire(E4b);\n\ -BRepOffsetAPI_ThruSections generatorb(Standard_True,Standard_False);\n\ -generatorb.AddWire(W1b);\n\ -generatorb.AddWire(W2b);\n\ -generatorb.AddWire(W3b);\n\ -generatorb.AddWire(W4b);\n\ -generatorb.Build();\n\ -TopoDS_Shape S2 = generatorb.Shape();\n\ - \n"); - PocessTextInDialog("Make a Thru sections", Message); - -} - -void CModelingDoc::OnEvolved() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - BRepBuilderAPI_MakePolygon P; - P.Add(gp_Pnt(0.,0.,0.)); - P.Add(gp_Pnt(200.,0.,0.)); - P.Add(gp_Pnt(200.,200.,0.)); - P.Add(gp_Pnt(0.,200.,0.)); - P.Add(gp_Pnt(0.,0.,0.)); - TopoDS_Wire W = P.Wire(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(W); - myAISContext->Display(ais1,Standard_False); - - TopoDS_Wire wprof = BRepBuilderAPI_MakePolygon(gp_Pnt(0.,0.,0.),gp_Pnt(-60.,-60.,-200.)); - - Handle(AIS_Shape) ais3 = new AIS_Shape(wprof); - myAISContext->Display(ais3,Standard_False); - Fit(); - Sleep(500); - TopoDS_Shape S = BRepOffsetAPI_MakeEvolved(W,wprof,GeomAbs_Arc,Standard_True,Standard_False,Standard_True,0.0001); - - Handle(AIS_Shape) ais2 = new AIS_Shape(S); - myAISContext->SetColor(ais2,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ----------- Evolved shape -------------- \n\ -\n\ -BRepBuilderAPI_MakePolygon P;\n\ -P.Add(gp_Pnt(0.,0.,0.));\n\ -P.Add(gp_Pnt(200.,0.,0.));\n\ -P.Add(gp_Pnt(200.,200.,0.));\n\ -P.Add(gp_Pnt(0.,200.,0.));\n\ -P.Add(gp_Pnt(0.,0.,0.));\n\ -TopoDS_Wire W = P.Wire();\n\ -TopoDS_Wire wprof = BRepBuilderAPI_MakePolygon(gp_Pnt(0.,0.,0.),gp_Pnt(-60.,-60.,-200.));\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeEvolved(W,wprof,GeomAbs_Arc,Standard_True,Standard_False,Standard_True,0.0001);\n\ - \n"); - PocessTextInDialog("Make an evolved shape", Message); - -} - -void CModelingDoc::OnDraft() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S = BRepPrimAPI_MakeBox(200., 300., 150.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - Sleep(500); - BRepOffsetAPI_DraftAngle adraft(S); - TopExp_Explorer Ex; - for (Ex.Init(S,TopAbs_FACE); Ex.More(); Ex.Next()) { - TopoDS_Face F = TopoDS::Face(Ex.Current()); - Handle(Geom_Plane) surf = Handle(Geom_Plane)::DownCast(BRep_Tool::Surface(F)); - gp_Pln apln = surf->Pln(); - gp_Dir dirF = apln.Axis().Direction(); - if (dirF.IsNormal(gp_Dir(0.,0.,1.),Precision::Angular())) - adraft.Add(F, gp_Dir(0.,0.,1.), 15.*M_PI/180, gp_Pln(gp::XOY())); - } - ais1->Set(adraft.Shape()); - myAISContext->Redisplay(ais1,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ----------- Tapered shape -------------- \n\ -\n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(200.,300.,150.);\n\ -BRepOffsetAPI_DraftAngle adraft(S);\n\ -TopExp_Explorer Ex;\n\ -for (Ex.Init(S,TopAbs_FACE); Ex.More(); Ex.Next()) {\n\ - TopoDS_Face F = TopoDS::Face(Ex.Current());\n\ - Handle(Geom_Plane) surf = Handle(Geom_Plane)::DownCast(BRep_Tool::Surface(F));\n\ - gp_Pln apln = surf->Pln();\n\ - gp_Dir dirF = apln.Axis().Direction();\n\ - if (dirF.IsNormal(gp_Dir(0.,0.,1.),Precision::Angular()))\n\ - adraft.Add(F, gp_Dir(0.,0.,1.), 15.*PI180, gp_Pln(gp::XOY()));\n\ -}\n\ - \n"); - PocessTextInDialog("Make a tapered shape", Message); - -} - -/* ================================================================================= - ==================== O P E R A T I O N S ==================================== - ================================================================================= */ - -void CModelingDoc::OnCut() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200, 60, 60).Shape(); - -Handle (AIS_Shape) ais1 = new AIS_Shape(theBox); -myAISContext->SetDisplayMode(ais1,1,Standard_False); -myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); -myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(1000); - - -TopoDS_Shape theSphere = BRepPrimAPI_MakeSphere(gp_Pnt(100, 20, 20), 80).Shape(); -Handle (AIS_Shape) ais2 = new AIS_Shape(theSphere); -myAISContext->SetDisplayMode(ais2,1,Standard_False); -myAISContext->SetColor(ais2,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais2,Standard_False); -const Handle(AIS_InteractiveObject)& anIO2 = ais2; -myAISContext->SetSelected (anIO2, Standard_False); -Fit(); -Sleep(1000); - -TopoDS_Shape ShapeCut = BRepAlgoAPI_Cut(theSphere,theBox); - -myAISContext->Erase(ais1,Standard_False); -myAISContext->Erase(ais2,Standard_False); - -Handle (AIS_Shape) aSection = new AIS_Shape(ShapeCut); -myAISContext->SetDisplayMode(aSection,1,Standard_False); -myAISContext->SetColor(aSection,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(aSection,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(aSection,Standard_False); -const Handle(AIS_InteractiveObject)& anIOSection = aSection; -myAISContext->SetSelected (anIOSection, Standard_False); -Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200,40,40); \n\ - \n\ -TopoDS_Shape theSphere = BRepPrimAPI_MakeSphere(gp_Pnt(100,20,20),80); \n\ - \n\ -TopoDS_Shape ShapeCut = BRepAlgoAPI_Cut(theSphere,theBox); \n\ - \n"); - PocessTextInDialog("Cut the sphere with a box", Message); - - -} - - - - - - - - - - -void CModelingDoc::OnFuse() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -gp_Pnt P(-5,5,-5); -TopoDS_Shape theBox1 = BRepPrimAPI_MakeBox(60, 200, 70).Shape(); -Handle (AIS_Shape) ais1 = new AIS_Shape(theBox1); -myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); -myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(1000); - -TopoDS_Shape theBox2 = BRepPrimAPI_MakeBox(P, 20, 150, 110).Shape(); -Handle (AIS_Shape) ais2 = new AIS_Shape(theBox2); -myAISContext->SetColor(ais2,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais2,Standard_False); -const Handle(AIS_InteractiveObject)& anIO2 = ais2; -myAISContext->SetSelected (anIO2, Standard_False); -Fit(); -Sleep(1000); - -TopoDS_Shape FusedShape = BRepAlgoAPI_Fuse(theBox1,theBox2); - -myAISContext->Erase(ais1,false); -myAISContext->Erase(ais2,false); - -Handle (AIS_Shape) aFusion = new AIS_Shape(FusedShape); -myAISContext->SetDisplayMode(aFusion,1,Standard_False); -myAISContext->SetColor(aFusion,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(aFusion,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(aFusion,Standard_False); -const Handle(AIS_InteractiveObject)& anIOFusion = aFusion; -myAISContext->SetSelected (anIOFusion, Standard_False); -myAISContext->UpdateCurrentViewer(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape theBox1 = BRepPrimAPI_MakeBox(50,200,70); \n\ - \n\ -TopoDS_Shape theBox2 = BRepPrimAPI_MakeBox(-30,150,70); \n\ - \n\ -TopoDS_Shape FusedShape = BRepAlgoAPI_Fuse(theBox1,theBox2); \n"); - PocessTextInDialog("Fuse the boxes", Message); - -} - -void CModelingDoc::OnCommon() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -gp_Ax2 axe(gp_Pnt(10,10,10),gp_Dir(1,2,1)); -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(axe, 60, 80, 100).Shape(); - -Handle(AIS_Shape) aboxshape=new AIS_Shape(theBox); -myAISContext->SetColor(aboxshape,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(aboxshape,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->SetTransparency(aboxshape,0.2,Standard_False); -myAISContext->Display(aboxshape, AIS_Shaded, 0, Standard_False); -const Handle(AIS_InteractiveObject)& anIOBoxShape = aboxshape; -myAISContext->SetSelected (anIOBoxShape, Standard_False); -Fit(); -Sleep(500); - -TopoDS_Shape theWedge = BRepPrimAPI_MakeWedge(60., 100., 80., 20.).Shape(); - -Handle(AIS_Shape) awedge = new AIS_Shape(theWedge); -myAISContext->SetColor(awedge,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(awedge,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->SetTransparency(awedge,0.0,Standard_False); -myAISContext->Display(awedge,Standard_False); -const Handle(AIS_InteractiveObject)& anIOWedge = awedge; -myAISContext->SetSelected (anIOWedge, Standard_False); -myAISContext->UpdateCurrentViewer(); -Sleep(500); - -TopoDS_Shape theCommonSurface = BRepAlgoAPI_Common(theBox,theWedge); - -myAISContext->Erase(aboxshape, false); -myAISContext->Erase(awedge, false); - -Handle(AIS_Shape) acommon = new AIS_Shape(theCommonSurface); -myAISContext->SetColor(acommon,Quantity_NOC_GREEN,Standard_False); -myAISContext->SetMaterial(acommon,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display (acommon, AIS_Shaded, 0,Standard_False); -const Handle(AIS_InteractiveObject)& anIOCommon = acommon; -myAISContext->SetSelected (anIOCommon, Standard_False); -myAISContext->UpdateCurrentViewer(); - - TCollection_AsciiString Message ("\ - \n\ -gp_Ax2 axe(gp_Pnt(10,10,10),gp_Dir(1,2,1)); \n\ - \n\ -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(axe,60,80,100); \n\ - \n\ -TopoDS_Shape theWedge = BRepPrimAPI_MakeWedge(60.,100.,80.,20.); \n\ - \n\ -TopoDS_Shape theCommonSurface = BRepAlgoAPI_Common(theBox,theWedge); \n\ - \n"); - - PocessTextInDialog("Compute the common surface ", Message); - -} - -void CModelingDoc::OnSection() -{ - - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape atorus = BRepPrimAPI_MakeTorus(120, 20).Shape(); - - Handle(AIS_Shape) ashape=new AIS_Shape(atorus); - myAISContext->SetColor(ashape,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ashape,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetDisplayMode(ashape,1,Standard_False); - myAISContext->SetTransparency(ashape,0.1,Standard_False); - myAISContext->Display(ashape,Standard_False); - -gp_Vec V1(1,1,1); -Standard_Real radius = 120; -Standard_Integer i=-3; - -for(i;i<=3;i++) { - TopoDS_Shape asphere = BRepPrimAPI_MakeSphere(gp_Pnt(26 * 3 * i, 0, 0), radius).Shape(); - - Handle (AIS_Shape) theShape=new AIS_Shape (asphere); - myAISContext->SetTransparency(theShape,0.1,Standard_False); - myAISContext->SetColor(theShape,Quantity_NOC_WHITE,Standard_False); - myAISContext->SetDisplayMode(theShape,1,Standard_False); - myAISContext->Display(theShape,Standard_False); - Fit(); - - Standard_Boolean PerformNow=Standard_False; - - BRepAlgoAPI_Section section(atorus,asphere,PerformNow); - section.ComputePCurveOn1(Standard_True); - section.Approximation(TopOpeBRepTool_APPROX); - section.Build(); - - Handle(AIS_Shape) asection=new AIS_Shape(section.Shape()); - myAISContext->SetDisplayMode (asection, 0, Standard_False); - myAISContext->SetColor (asection, Quantity_NOC_WHITE, Standard_False); - myAISContext->Display (asection, Standard_False); - if(i<3) { - myAISContext->Remove (theShape, Standard_False); - } -} - myAISContext->UpdateCurrentViewer(); - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape atorus = BRepPrimAPI_MakeTorus(120,20); \n\ -gp_Vec V1(1,1,1); \n\ -Standard_Real radius = 120; \n\ -Standard_Integer i=-3; \n\ -for(i;i<=3;i++) { \n\ - TopoDS_Shape asphere = BRepPrimAPI_MakeSphere(gp_Pnt(78*i,0,0),radius); \n\ - Standard_Boolean PerformNow=Standard_False; \n\ - BRepAlgoAPI_Section section(atorus,asphere,PerformNow); \n\ - section.ComputePCurveOn1(Standard_True); \n\ - section.Approximation(TopOpeBRepTool_APPROX); \n\ - section.Build(); \n\ - \n"); - - PocessTextInDialog("Compute the sections ", Message); - -} - -void CModelingDoc::OnPsection() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -TopoDS_Shape theTorus = BRepPrimAPI_MakeTorus(35, 8).Shape(); -Handle(AIS_Shape) atorus = new AIS_Shape(theTorus); -myAISContext->SetColor(atorus,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(atorus,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->SetTransparency(atorus,0.1,Standard_False); -myAISContext->Display(atorus,Standard_False); -const Handle(AIS_InteractiveObject)& anIOTorus = atorus; -myAISContext->SetSelected (anIOTorus, Standard_False); -Fit(); -Sleep(500); - -gp_Pln aplane(1,0.25,3,4); -Handle (Geom_Plane) thePlane = new Geom_Plane(aplane); -Handle (AIS_Plane) ais1 = new AIS_Plane(thePlane); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(300); - -BRepAlgoAPI_Section section(theTorus,thePlane,Standard_False); -section.ComputePCurveOn1(Standard_True); -section.Approximation(TopOpeBRepTool_APPROX); -section.Build(); - -Handle(AIS_Shape) asection=new AIS_Shape(section.Shape()); -myAISContext->SetDisplayMode(asection ,0,Standard_False); -myAISContext->SetColor(asection,Quantity_NOC_WHITE,Standard_False); -myAISContext->Display(asection,Standard_False); -Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape theTorus = BRepPrimAPI_MakeTorus(60.,20.); \n\ - \n\ -gp_Pln P(1,2,1,-15); \n\ - \n\ -TopoDS_Shape Psection = BRepAlgoAPI_Section(theTorus,P); \n\ -\n"); - - PocessTextInDialog("Compute the plane section ", Message); - -} - -void CModelingDoc::OnBlend() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -TopoDS_Shape Box = BRepPrimAPI_MakeBox(gp_Pnt(-400,0,0),200,230,180).Shape(); -Handle(AIS_Shape) ais1 = new AIS_Shape(Box); -myAISContext->SetColor(ais1,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(500); - -BRepFilletAPI_MakeFillet fillet(Box); - -for (TopExp_Explorer ex(Box,TopAbs_EDGE); ex.More(); ex.Next()) { - TopoDS_Edge Edge =TopoDS::Edge(ex.Current()); - fillet.Add(20,Edge); -} - -myAISContext->Remove(ais1,Standard_False); - -TopoDS_Shape blendedBox = fillet.Shape(); -Handle(AIS_Shape) aBlendbox = new AIS_Shape(blendedBox); -myAISContext->SetColor(aBlendbox,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(aBlendbox,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(aBlendbox,Standard_False); -const Handle(AIS_InteractiveObject)& anIOBlendBox = aBlendbox; -myAISContext->SetSelected (anIOBlendBox, Standard_False); -Fit(); -Sleep(500); - - -gp_Pnt P1(250,150,75); -TopoDS_Shape S1 = BRepPrimAPI_MakeBox(300, 200, 200).Shape(); -TopoDS_Shape S2 = BRepPrimAPI_MakeBox(P1, 120, 180, 70).Shape(); - -TopoDS_Shape fusedShape = BRepAlgoAPI_Fuse(S1,S2); -Handle(AIS_Shape) ais2 = new AIS_Shape(fusedShape); -myAISContext->SetColor(ais2,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais2,Standard_False); -const Handle(AIS_InteractiveObject)& anIO2 = ais2; -myAISContext->SetSelected (anIO2, Standard_False); -Fit(); - -BRepFilletAPI_MakeFillet fill(fusedShape); - -for (TopExp_Explorer ex1(fusedShape,TopAbs_EDGE); ex1.More(); ex1.Next()) { - TopoDS_Edge E =TopoDS::Edge(ex1.Current()); - fill.Add(E); -} - -for (Standard_Integer i = 1;i<=fill.NbContours();i++) { - Standard_Real longueur(fill.Length(i)); - Standard_Real Rad(0.15*longueur); - fill.SetRadius(Rad,i, 1); -} - -TopoDS_Shape blendedFusedSolids = fill.Shape(); - -Handle(AIS_Shape) aBlend = new AIS_Shape(blendedFusedSolids); -myAISContext->SetColor(aBlend,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(aBlend,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(aBlend,Standard_False); - -myAISContext->Remove(ais2,Standard_False); -Fit(); - - - TCollection_AsciiString Message ("\ - \n\ -//THE YELLOW BOX\n\ -TopoDS_Shape Box = BRepPrimAPI_MakeBox(gp_Pnt(-400,0,0),200,230,180);\n\ -\n\ -BRepPrimAPI_MakeFillet fillet(Box);\n\ -\n\ -for (TopExp_Explorer ex(Box,TopAbs_EDGE); ex.More(); ex.Next()) {\n\ - TopoDS_Edge Edge =TopoDS::Edge(ex.Current());\n\ - fillet.Add(20,Edge);\n\ -}\n\ -TopoDS_Shape blendedBox = fillet.Shape();\n\ -\n\ -////////////////////////////////////////////////////////////////////////\n\ -\n\ -//THE RED SOLID\n\ - \n\ -//Warning : On the acute angles of the boxes a fillet is created. \n\ -On the angles of fusion a blend is created. \n\ -\n\ -gp_Pnt P1(150,150,75);\n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeBox(300,200,200);\n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeBox(P1,100,200,70);\n\ -\n\ -TopoDS_Shape fusedShape = BRepAlgoAPI_Fuse(S1,S2);\n\ -BRepPrimAPI_MakeFillet fill(fusedShape);\n\ -\n\ -for (TopExp_Explorer ex1(fusedShape,TopAbs_EDGE); ex1.More(); ex1.Next()) {\n\ - TopoDS_Edge E =TopoDS::Edge(ex1.Current());\n\ - fill.Add(E);\n\ -}\n\ -\n\ -for (Standard_Integer i = 1;i<=fill.NbContours();i++) {\n\ - Standard_Real longueur(fill.Length(i));\n\ - Standard_Real Rad(0.2*longueur);\n\ - fill.SetRadius(Rad,i);\n\ -}\n\ -\n\ -TopoDS_Shape blendedFusedSolids = fill.Shape(); \n"); - - PocessTextInDialog("Compute the blend on the edges ", Message); -} - -void CModelingDoc::OnEvolvedblend() -{ - - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200, 200, 200).Shape(); -Handle(AIS_Shape) ais1 = new AIS_Shape(theBox); -myAISContext->SetColor(ais1,Quantity_NOC_BROWN,Standard_False); -myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(500); - -BRepFilletAPI_MakeFillet Rake(theBox); - -TopExp_Explorer ex(theBox,TopAbs_EDGE); -ex.Next(); -ex.Next(); -ex.Next(); -ex.Next(); -Rake.Add(8,50,TopoDS::Edge(ex.Current())); -Rake.Build(); -if (Rake.IsDone() ){ - TopoDS_Shape evolvedBox = Rake.Shape(); - ais1->Set(evolvedBox); - myAISContext->Redisplay(ais1,Standard_False); - myAISContext->SetSelected(anIO1, Standard_False); - Fit(); - Sleep(500); - -} - -TopoDS_Shape theCylinder = BRepPrimAPI_MakeCylinder(gp_Ax2(gp_Pnt(-300, 0, 0), gp::DZ()), 100, 200).Shape(); -Handle(AIS_Shape) ais3 = new AIS_Shape(theCylinder); -myAISContext->SetColor(ais3,Quantity_NOC_GREEN,Standard_False); -myAISContext->SetMaterial(ais3,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais3,Standard_False); -const Handle(AIS_InteractiveObject)& anIO3 = ais3; -myAISContext->SetSelected (anIO3, Standard_False); -Fit(); -Sleep(500); - -BRepFilletAPI_MakeFillet fillet(theCylinder); - -TColgp_Array1OfPnt2d TabPoint2(1,20); - -for (Standard_Integer i=0; i<=19; i++) { - gp_Pnt2d Point2d(i*2*M_PI/19,60*cos(i*M_PI/19-M_PI/2)+10); - TabPoint2.SetValue(i+1,Point2d); -} - -TopExp_Explorer exp2(theCylinder,TopAbs_EDGE); -fillet.Add(TabPoint2,TopoDS::Edge(exp2.Current())); -fillet.Build(); -if (fillet.IsDone() ){ - TopoDS_Shape LawEvolvedCylinder = fillet.Shape(); - ais3->Set(LawEvolvedCylinder); - myAISContext->Redisplay(ais3,Standard_False); - myAISContext->SetSelected(anIO3,Standard_False); - Fit(); - Sleep(500); -} - -gp_Pnt P(350,0,0); -TopoDS_Shape theBox2 = BRepPrimAPI_MakeBox(P, 200, 200, 200).Shape(); -Handle(AIS_Shape) ais2 = new AIS_Shape(theBox2); -myAISContext->SetColor(ais2,Quantity_NOC_RED,Standard_False); -myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais2,Standard_False); -const Handle(AIS_InteractiveObject)& anIO2 = ais2; -myAISContext->SetSelected (anIO2, Standard_False); -Fit(); -Sleep(500); - - -BRepFilletAPI_MakeFillet afillet(theBox2); - -TColgp_Array1OfPnt2d TabPoint(1,6); - -gp_Pnt2d P1(0.,8.); -gp_Pnt2d P2(0.2,16.); -gp_Pnt2d P3(0.4,25.); -gp_Pnt2d P4(0.6,55.); -gp_Pnt2d P5(0.8,28.); -gp_Pnt2d P6(1.,20.); -TabPoint.SetValue(1,P1); -TabPoint.SetValue(2,P2); -TabPoint.SetValue(3,P3); -TabPoint.SetValue(4,P4); -TabPoint.SetValue(5,P5); -TabPoint.SetValue(6,P6); - -TopExp_Explorer exp(theBox2,TopAbs_EDGE); -exp.Next(); -exp.Next(); -exp.Next(); -exp.Next(); - -afillet.Add(TabPoint, TopoDS::Edge(exp.Current())); - -afillet.Build(); -if (afillet.IsDone() ){ - TopoDS_Shape LawevolvedBox = afillet.Shape(); - ais2->Set(LawevolvedBox); - myAISContext->Redisplay(ais2,Standard_False); - myAISContext->SetSelected(anIO2,Standard_False); - Fit(); - -} - - TCollection_AsciiString Message ("\ - \n\ -//THE BROWN BOX \n\ -\n\ -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(200,200,200); \n\ - \n\ -BRepPrimAPI_MakeFillet Rake(theBox); \n\ -ChFi3d_FilletShape FSh = ChFi3d_Rational; \n\ -Rake.SetFilletShape(FSh); \n\ - \n\ -TopExp_Explorer ex(theBox,TopAbs_EDGE); \n\ -ex.Next(); //in order to recover the front edge \n\ -ex.Next(); \n\ -ex.Next(); \n\ -ex.Next(); \n\ -Rake.Add(8,50,TopoDS::Edge(ex.Current())); \n\ - \n\ -Rake.Build(); \n\ -if (Rake.IsDone() ) \n\ - TopoDS_Shape theBrownBox = Rake.Shape(); \n\ - \n\ -////////////////////////////////////////////////////////// \n\ - \n\ -//THE GREEN CYLINDER \n\ - \n\ -TopoDS_Shape theCylinder = BRepPrimAPI_MakeCylinder(gp_Ax2(gp_Pnt(-300,0,0),gp_Dir(0,0,1)),100,200); \n\ - \n\ -BRepPrimAPI_MakeFillet fillet(theCylinder); \n\ - \n\ -TColgp_Array1OfPnt2d TabPoint2(1,20); \n\ - \n\ -for (Standard_Integer i=0; i<=19; i++) { \n\ - gp_Pnt2d Point2d(i*2*PI/19,60*cos(i*PI/19-PI/2)+10); \n\ - TabPoint2.SetValue(i+1,Point2d); \n\ -} \n\ - \n\ -TopExp_Explorer exp2(theCylinder,TopAbs_EDGE); \n\ -fillet.Add(TabPoint2,TopoDS::Edge(exp2.Current())); \n\ - \n\ -fillet.Build(); \n\ -if (fillet.IsDone() ) \n\ - TopoDS_Shape LawEvolvedCylinder = fillet.Shape(); \n\ - \n\ -//////////////////////////////////////////////////////////// \n\ - \n\ - //THE RED BOX \n\ - \n\ -gp_Pnt P(350,0,0); \n\ -TopoDS_Shape theBox2 = BRepPrimAPI_MakeBox(P,200,200,200); \n\ - \n\ -BRepPrimAPI_MakeFillet fill(theBox2); \n\ - \n\ -TColgp_Array1OfPnt2d TabPoint(1,6); \n\ -gp_Pnt2d P1(0,8); \n\ -gp_Pnt2d P2(0.2,16); \n\ -gp_Pnt2d P3(0.4,25); \n\ -gp_Pnt2d P4(0.6,55); \n\ -gp_Pnt2d P5(0.8,28); \n\ -gp_Pnt2d P6(1,20); \n\ -TabPoint.SetValue(1,P1); \n\ -TabPoint.SetValue(2,P2); \n\ -TabPoint.SetValue(3,P3); \n\ -TabPoint.SetValue(4,P4); \n\ -TabPoint.SetValue(5,P5); \n\ -TabPoint.SetValue(6,P6); \n\ - \n\ -TopExp_Explorer exp(theBox2,TopAbs_EDGE); \n\ -exp.Next(); //in order to trcover the front edge \n\ -exp.Next(); \n\ -exp.Next(); \n\ -exp.Next(); \n\ -fill.Add(TabPoint,TopoDS::Edge(exp.Current())); \n\ - \n\ -fill.Build(); \n\ -if (fillet.IsDone() ) \n\ - TopoDS_Shape theRedBox = fill.Shape(); \n\ -\n"); - - PocessTextInDialog("Compute evolutiv blend on an edge ", Message); - -} - -void CModelingDoc::OnChamf() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(60,200,70).Shape(); -Handle(AIS_Shape) ais1 = new AIS_Shape(theBox); -myAISContext->SetColor(ais1,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(ais1,Standard_False); -const Handle(AIS_InteractiveObject)& anIO1 = ais1; -myAISContext->SetSelected (anIO1, Standard_False); -Fit(); -Sleep(500); - -BRepFilletAPI_MakeChamfer MC(theBox); -// add all the edges to chamfer -TopTools_IndexedDataMapOfShapeListOfShape M; -TopExp::MapShapesAndAncestors(theBox,TopAbs_EDGE,TopAbs_FACE,M); -for (Standard_Integer i = 1;i<=M.Extent();i++) { - TopoDS_Edge E = TopoDS::Edge(M.FindKey(i)); - TopoDS_Face F = TopoDS::Face(M.FindFromIndex(i).First()); - MC.Add(5,5,E,F); - } - -TopoDS_Shape ChanfrenedBox = MC.Shape(); -Handle(AIS_Shape) aBlendedBox = new AIS_Shape(ChanfrenedBox); -myAISContext->SetColor(aBlendedBox,Quantity_NOC_YELLOW,Standard_False); -myAISContext->SetMaterial(aBlendedBox,Graphic3d_NOM_PLASTIC,Standard_False); -myAISContext->Display(aBlendedBox,Standard_False); -const Handle(AIS_InteractiveObject)& anIOBlendedBox = aBlendedBox; -myAISContext->SetSelected (anIOBlendedBox, Standard_False); -Fit(); -Sleep(500); - -myAISContext->Erase(ais1,Standard_True); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape theBox = BRepPrimAPI_MakeBox(130,200,170); \n\ -BRepFilletAPI_MakeChamfer MC(theBox); \n\ -TopTools_IndexedDataMapOfShapeListOfShape M; \n\ -TopExp::MapShapesAndAncestors(theBox,TopAbs_EDGE,TopAbs_FACE,M); \n\ -for (Standar1d_Integer i;iDisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeBox(400., 250., 300.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - TopExp_Explorer Ex; - Ex.Init(S,TopAbs_FACE); - Ex.Next(); - TopoDS_Face F = TopoDS::Face(Ex.Current()); - Handle(Geom_Surface) surf = BRep_Tool::Surface(F); - Handle(Geom_Plane) Pl = Handle(Geom_Plane)::DownCast(surf); - gp_Dir D = Pl->Pln().Axis().Direction(); -// new in 2.0 ..use the trigonometric orientation to make the extrusion. - D.Reverse(); - gp_Pnt2d p1,p2; - Handle(Geom2d_Curve) aline; - BRepBuilderAPI_MakeWire MW; - p1 = gp_Pnt2d(200.,-100.); - p2 = gp_Pnt2d(100.,-100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(100.,-200.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(200.,-200.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(200.,-100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - BRepBuilderAPI_MakeFace MKF; - MKF.Init(surf,Standard_False, Precision::Confusion()); - MKF.Add(MW.Wire()); - TopoDS_Shape FP = MKF.Face(); - BRepLib::BuildCurves3d(FP); - BRepFeat_MakePrism MKP(S,FP,F,D,0,Standard_True); - MKP.Perform(200.); - TopoDS_Shape res1 = MKP.Shape(); - ais1->Set(res1); - - myAISContext->Redisplay(ais1,Standard_False); - myAISContext->SetSelected(anIO1,Standard_False); - Fit(); - Sleep(500); - - Ex.Next(); - TopoDS_Face F2 = TopoDS::Face(Ex.Current()); - surf = BRep_Tool::Surface(F2); - Pl = Handle(Geom_Plane)::DownCast(surf); - D = Pl->Pln().Axis().Direction(); - D.Reverse(); - BRepBuilderAPI_MakeWire MW2; - p1 = gp_Pnt2d(100.,100.); - p2 = gp_Pnt2d(200.,100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(150.,200.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(100.,100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - BRepBuilderAPI_MakeFace MKF2; - MKF2.Init(surf,Standard_False, Precision::Confusion()); - MKF2.Add(MW2.Wire()); - FP = MKF2.Face(); - BRepLib::BuildCurves3d(FP); - BRepFeat_MakePrism MKP2(res1,FP,F2,D,1,Standard_True); - MKP2.Perform(100.); - TopoDS_Shape res2 = MKP2.Shape(); - ais1->Set(res2); - - myAISContext->Redisplay (ais1, Standard_False); - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ---- Extrusion ---\n\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.);\n\ -TopExp_Explorer Ex;\n\ -Ex.Init(S,TopAbs_FACE);\n\ -Ex.Next();\n\ -TopoDS_Face F = TopoDS::Face(Ex.Current());\n\ -Handle(Geom_Surface) surf = BRep_Tool::Surface(F);\n\ -Handle(Geom_Plane) Pl = Handle(Geom_Plane)::DownCast(surf);\n\ -gp_Dir D = Pl->Pln().Axis().Direction();\n\ -D.Reverse();\n\ -gp_Pnt2d p1,p2;\n\ -Handle(Geom2d_Curve) aline;\n\ -BRepBuilderAPI_MakeWire MW;\n\ -p1 = gp_Pnt2d(200.,-100.);\n\ -p2 = gp_Pnt2d(100.,-100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(100.,-200.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(200.,-200.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(200.,-100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -BRepBuilderAPI_MakeFace MKF;\n\ -MKF.Init(surf,Standard_False);\n\ -MKF.Add(MW.Wire());\n\ -TopoDS_Shape FP = MKF.Face();\n\ -BRepLib::BuildCurves3d(FP);\n\ -BRepFeat_MakePrism MKP(S,FP,F,D,0,Standard_True);\n\ -MKP.Perform(200);\n\ -TopoDS_Shape res1 = MKP.Shape();\n\ - \n"); - Message += "\n\ ---- Protrusion --- \n\ -\n\ -Ex.Next();\n\ -TopoDS_Face F2 = TopoDS::Face(Ex.Current());\n\ -surf = BRep_Tool::Surface(F2);\n\ -Pl = Handle(Geom_Plane)::DownCast(surf);\n\ -D = Pl->Pln().Axis().Direction();\n\ -D.Reverse();\n\ -BRepBuilderAPI_MakeWire MW2;\n\ -p1 = gp_Pnt2d(100.,100.);\n\ -p2 = gp_Pnt2d(200.,100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(150.,200.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(100.,100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW2.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -BRepBuilderAPI_MakeFace MKF2;\n\ -MKF2.Init(surf,Standard_False);\n\ -MKF2.Add(MW2.Wire());\n\ -FP = MKF2.Face();\n\ -BRepLib::BuildCurves3d(FP);\n\ -BRepFeat_MakePrism MKP2(res1,FP,F2,D,1,Standard_True);\n\ -MKP2.Perform(100.);\n\ -TopoDS_Shape res2 = MKP2.Shape();\n\ - \n"; - PocessTextInDialog("Make an extrusion or a protrusion", Message); -} - -// -// BRepFeat_MakeDPrism -// -void CModelingDoc::OnDprismLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S = BRepPrimAPI_MakeBox(400., 250., 300.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - - myAISContext->SetColor(ais1,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - - TopExp_Explorer Ex; - Ex.Init(S,TopAbs_FACE); - Ex.Next(); - Ex.Next(); - Ex.Next(); - Ex.Next(); - Ex.Next(); - TopoDS_Face F = TopoDS::Face(Ex.Current()); - Handle(Geom_Surface) surf = BRep_Tool::Surface(F); - gp_Circ2d c(gp_Ax2d(gp_Pnt2d(200.,130.),gp_Dir2d(1.,0.)),50.); - BRepBuilderAPI_MakeWire MW; - Handle(Geom2d_Curve) aline = new Geom2d_Circle(c); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,M_PI)); - MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,M_PI,2.*M_PI)); - BRepBuilderAPI_MakeFace MKF; - MKF.Init(surf,Standard_False, Precision::Confusion()); - MKF.Add(MW.Wire()); - TopoDS_Face FP = MKF.Face(); - BRepLib::BuildCurves3d(FP); - BRepFeat_MakeDPrism MKDP(S,FP,F,10*M_PI/180,1,Standard_True); - MKDP.Perform(200); - TopoDS_Shape res1 = MKDP.Shape(); - - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - ais1->Set(res1); - - myAISContext->Redisplay(ais1,Standard_False); - myAISContext->SetSelected(anIO1,Standard_False); - - Fit(); - - TCollection_AsciiString Message ("\ - \n\ ---- Protrusion with draft angle --- \n\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.);\n\ -TopExp_Explorer Ex;\n\ -Ex.Init(S,TopAbs_FACE);\n\ -Ex.Next();\n\ -Ex.Next();\n\ -Ex.Next();\n\ -Ex.Next();\n\ -Ex.Next();\n\ -TopoDS_Face F = TopoDS::Face(Ex.Current());\n\ -Handle(Geom_Surface) surf = BRep_Tool::Surface(F);\n\ -gp_Circ2d c(gp_Ax2d(gp_Pnt2d(200.,130.),gp_Dir2d(1.,0.)),50.);\n\ -BRepBuilderAPI_MakeWire MW;\n\ -Handle(Geom2d_Curve) aline = new Geom2d_Circle(c);\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,PI));\n\ -MW.Add(BRepBuilderAPI_MakeEdge(aline,surf,PI,2.*PI));\n\ -BRepBuilderAPI_MakeFace MKF;\n\ -MKF.Init(surf,Standard_False);\n\ -MKF.Add(MW.Wire());\n\ -TopoDS_Face FP = MKF.Face();\n\ -BRepLib::BuildCurves3d(FP);\n\ -BRepFeat_MakeDPrism MKDP(S,FP,F,10*PI180,1,Standard_True);\n\ -MKDP.Perform(200);\n\ -TopoDS_Shape res1 = MKDP.Shape();\n\ - \n"); - PocessTextInDialog("Make an extrusion or a protrusion with a draft angle", Message); -} - -void CModelingDoc::OnRevolLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeBox(400., 250., 300.).Shape(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - - myAISContext->SetColor(ais1,Quantity_NOC_CORAL,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - TopExp_Explorer Ex; - Ex.Init(S,TopAbs_FACE); - Ex.Next(); - Ex.Next(); - TopoDS_Face F1 = TopoDS::Face(Ex.Current()); - Handle(Geom_Surface) surf = BRep_Tool::Surface(F1); - Handle (Geom_Plane) Pl = Handle(Geom_Plane)::DownCast(surf); - gp_Ax1 D = gp::OX(); - BRepBuilderAPI_MakeWire MW1; - gp_Pnt2d p1,p2; - p1 = gp_Pnt2d(100.,100.); - p2 = gp_Pnt2d(200.,100.); - Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(150.,200.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(100.,100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - BRepBuilderAPI_MakeFace MKF1; - MKF1.Init(surf,Standard_False, Precision::Confusion()); - MKF1.Add(MW1.Wire()); - TopoDS_Face FP = MKF1.Face(); - BRepLib::BuildCurves3d(FP); - BRepFeat_MakeRevol MKrev(S,FP,F1,D,1,Standard_True); - Ex.Next(); - Ex.Next(); - TopoDS_Face F2 = TopoDS::Face(Ex.Current()); - MKrev.Perform(F2); - TopoDS_Shape res1 = MKrev.Shape(); - - - myAISContext->Remove (ais1, Standard_False); - Handle(AIS_Shape) ais2 = new AIS_Shape(res1); - myAISContext->Display(ais2,Standard_False); - const Handle(AIS_InteractiveObject)& anIO2 = ais2; - myAISContext->SetSelected (anIO2, Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.);\n\ -TopExp_Explorer Ex;\n\ -Ex.Init(S,TopAbs_FACE);\n\ -Ex.Next();\n\ -Ex.Next();\n\ -TopoDS_Face F1 = TopoDS::Face(Ex.Current());\n\ -Handle(Geom_Surface) surf = BRep_Tool::Surface(F1);\n\ -Handle (Geom_Plane) Pl = Handle(Geom_Plane)::DownCast(surf);\n\ -gp_Ax1 D = gp::OX();\n\ -BRepBuilderAPI_MakeWire MW1;\n\ -gp_Pnt2d p1,p2;\n\ -p1 = gp_Pnt2d(100.,100.);\n\ -p2 = gp_Pnt2d(200.,100.);\n\ -Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(150.,200.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(100.,100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -BRepBuilderAPI_MakeFace MKF1;\n\ -MKF1.Init(surf,Standard_False);\n\ -MKF1.Add(MW1.Wire());\n\ -TopoDS_Face FP = MKF1.Face();\n\ -BRepLib::BuildCurves3d(FP);\n\ -BRepFeat_MakeRevol MKrev(S,FP,F1,D,1,Standard_True);\n\ -Ex.Next();\n\ -TopoDS_Face F2 = TopoDS::Face(Ex.Current());\n\ -MKrev.Perform(F2);\n\ -TopoDS_Shape res1 = MKrev.Shape();\n\ - \n"); - PocessTextInDialog("Make a local revolution", Message); -} - -void CModelingDoc::OnGlueLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S1 = BRepPrimAPI_MakeBox(gp_Pnt(-500., -500., 0.), gp_Pnt(-100., -250., 300.)).Shape(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S1); - myAISContext->SetColor(ais1,Quantity_NOC_ORANGE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(1000); - - TopExp_Explorer Ex1; - Ex1.Init(S1,TopAbs_FACE); - Ex1.Next(); - Ex1.Next(); - Ex1.Next(); - Ex1.Next(); - Ex1.Next(); - TopoDS_Face F1 = TopoDS::Face(Ex1.Current()); - TopoDS_Shape S2 = BRepPrimAPI_MakeBox(gp_Pnt(-400., -400., 300.), gp_Pnt(-200., -300., 500.)).Shape(); - Handle(AIS_Shape) ais2 = new AIS_Shape(S2); - - myAISContext->SetColor(ais2,Quantity_NOC_AZURE,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais2,Standard_False); - const Handle(AIS_InteractiveObject)& anIO2 = ais2; - myAISContext->SetSelected (anIO2, Standard_False); - Fit(); - Sleep(1000); - - TopExp_Explorer Ex2; - Ex2.Init(S2,TopAbs_FACE); - Ex2.Next(); - Ex2.Next(); - Ex2.Next(); - Ex2.Next(); - TopoDS_Face F2 = TopoDS::Face(Ex2.Current()); - BRepFeat_Gluer glue(S2,S1); - glue.Bind(F2,F1); - TopoDS_Shape res1 = glue.Shape(); - myAISContext->Erase(ais2,Standard_False); - - ais1->Set(res1); - - myAISContext->Redisplay (ais1, Standard_False); - myAISContext->SetSelected(anIO1,Standard_False); - Fit(); - Sleep(1000); - - TopoDS_Shape S3 = BRepPrimAPI_MakeBox(500., 400., 300.).Shape(); - - Handle(AIS_Shape) ais3 = new AIS_Shape(S3); - myAISContext->SetColor(ais3,Quantity_NOC_ORANGE,Standard_False); - myAISContext->SetMaterial(ais3,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais3,Standard_False); - const Handle(AIS_InteractiveObject)& anIO3 = ais3; - myAISContext->SetSelected (anIO3, Standard_False); - Fit(); - Sleep(1000); - - TopExp_Explorer Ex3; - Ex3.Init(S3,TopAbs_FACE); - Ex3.Next(); - Ex3.Next(); - Ex3.Next(); - Ex3.Next(); - Ex3.Next(); - TopoDS_Face F3 = TopoDS::Face(Ex3.Current()); - TopoDS_Shape S4 = BRepPrimAPI_MakeBox(gp_Pnt(0., 0., 300.), gp_Pnt(200., 200., 500.)).Shape(); - - Handle(AIS_Shape) ais4 = new AIS_Shape(S4); - myAISContext->SetColor(ais4,Quantity_NOC_AZURE,Standard_False); - myAISContext->SetMaterial(ais4,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais4,Standard_False); - const Handle(AIS_InteractiveObject)& anIO4 = ais4; - myAISContext->SetSelected (anIO4, Standard_False); - Fit(); - Sleep(1000); - - TopExp_Explorer Ex4; - Ex4.Init(S4,TopAbs_FACE); - Ex4.Next(); - Ex4.Next(); - Ex4.Next(); - Ex4.Next(); - TopoDS_Face F4 = TopoDS::Face(Ex4.Current()); - BRepFeat_Gluer glue2(S4,S3); - glue2.Bind(F4,F3); - LocOpe_FindEdges CommonEdges(F4,F3); - for (CommonEdges.InitIterator(); CommonEdges.More(); CommonEdges.Next()) - glue2.Bind(CommonEdges.EdgeFrom(),CommonEdges.EdgeTo()); - TopoDS_Shape res2 = glue2.Shape(); - myAISContext->Erase(ais3,Standard_False); - - ais4->Set(res2); - - myAISContext->Redisplay(ais4,Standard_False); - myAISContext->SetSelected(anIO4,Standard_False); - Fit(); - Sleep(1000); - - TCollection_AsciiString Message ("\ - \n\ ---- Without common edges ---\n\ - \n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeBox(gp_Pnt(-500.,-500.,0.),gp_Pnt(-100.,-250.,300.));\n\ -TopExp_Explorer Ex1;\n\ -Ex1.Init(S1,TopAbs_FACE);\n\ -Ex1.Next();\n\ -Ex1.Next();\n\ -Ex1.Next();\n\ -Ex1.Next();\n\ -Ex1.Next();\n\ -TopoDS_Face F1 = TopoDS::Face(Ex1.Current());\n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeBox(gp_Pnt(-400.,-400.,300.),gp_Pnt(-200.,-300.,500.));\n\ -TopExp_Explorer Ex2;\n\ -Ex2.Init(S2,TopAbs_FACE);\n\ -Ex2.Next();\n\ -Ex2.Next();\n\ -Ex2.Next();\n\ -Ex2.Next();\n\ -TopoDS_Face F2 = TopoDS::Face(Ex2.Current());\n\ -BRepFeat_Gluer glue(S2,S1);\n\ -glue.Bind(F2,F1);\n\ -TopoDS_Shape res1 = glue.Shape();\n\ -\n\ ---- With common edges ---\n\ -\n\ -TopoDS_Shape S3 = BRepPrimAPI_MakeBox(500.,400.,300.);\n\ -TopExp_Explorer Ex3;\n\ -Ex3.Init(S3,TopAbs_FACE);\n\ -Ex3.Next();\n\ -Ex3.Next();\n\ -Ex3.Next();\n\ -Ex3.Next();\n\ -Ex3.Next();\n\ -TopoDS_Face F3 = TopoDS::Face(Ex3.Current());\n\ -TopoDS_Shape S4 = BRepPrimAPI_MakeBox(gp_Pnt(0.,0.,300.),gp_Pnt(200.,200.,500.));\n\ -TopExp_Explorer Ex4;\n\ -Ex4.Init(S4,TopAbs_FACE);\n\ -Ex4.Next();\n\ -Ex4.Next();\n\ -Ex4.Next();\n\ -Ex4.Next();\n\ -TopoDS_Face F4 = TopoDS::Face(Ex4.Current());\n\ -BRepFeat_Gluer glue2(S4,S3);\n\ -glue2.Bind(F4,F3);\n\ -LocOpe_FindEdges CommonEdges(F4,F3);\n\ -for (CommonEdges.InitIterator(); CommonEdges.More(); CommonEdges.Next()) \n\ - glue2.Bind(CommonEdges.EdgeFrom(),CommonEdges.EdgeTo());\n\ -TopoDS_Shape res2 = glue2.Shape();\n\ - \n"); - PocessTextInDialog("Glue two solids", Message); -} - - -void CModelingDoc::OnPipeLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - TopoDS_Shape S = BRepPrimAPI_MakeBox(400., 250., 300.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - - myAISContext->SetColor(ais1,Quantity_NOC_CORAL,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - TopExp_Explorer Ex; - Ex.Init(S,TopAbs_FACE); - Ex.Next(); - Ex.Next(); - TopoDS_Face F1 = TopoDS::Face(Ex.Current()); - Handle(Geom_Surface) surf = BRep_Tool::Surface(F1); - BRepBuilderAPI_MakeWire MW1; - gp_Pnt2d p1,p2; - p1 = gp_Pnt2d(100.,100.); - p2 = gp_Pnt2d(200.,100.); - Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(150.,200.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - p1 = p2; - p2 = gp_Pnt2d(100.,100.); - aline = GCE2d_MakeLine(p1,p2).Value(); - MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2))); - BRepBuilderAPI_MakeFace MKF1; - MKF1.Init(surf,Standard_False, Precision::Confusion()); - MKF1.Add(MW1.Wire()); - TopoDS_Face FP = MKF1.Face(); - BRepLib::BuildCurves3d(FP); - TColgp_Array1OfPnt CurvePoles(1,3); - gp_Pnt pt = gp_Pnt(150.,0.,150.); - CurvePoles(1) = pt; - pt = gp_Pnt(200.,-100.,150.); - CurvePoles(2) = pt; - pt = gp_Pnt(150.,-200.,150.); - CurvePoles(3) = pt; - Handle(Geom_BezierCurve) curve = new Geom_BezierCurve(CurvePoles); - TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve); - TopoDS_Wire W = BRepBuilderAPI_MakeWire(E); - BRepFeat_MakePipe MKPipe(S,FP,F1,W,1,Standard_True); - MKPipe.Perform(); - TopoDS_Shape res1 = MKPipe.Shape(); - ais1->Set(res1); - - myAISContext->Redisplay(ais1,Standard_False); - myAISContext->SetSelected(anIO1,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(400.,250.,300.);\n\ -TopExp_Explorer Ex;\n\ -Ex.Init(S,TopAbs_FACE);\n\ -Ex.Next();\n\ -Ex.Next();\n\ -TopoDS_Face F1 = TopoDS::Face(Ex.Current());\n\ -Handle(Geom_Surface) surf = BRep_Tool::Surface(F1);\n\ -BRepBuilderAPI_MakeWire MW1;\n\ -gp_Pnt2d p1,p2;\n\ -p1 = gp_Pnt2d(100.,100.);\n\ -p2 = gp_Pnt2d(200.,100.);\n\ -Handle(Geom2d_Line) aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(150.,200.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -p1 = p2;\n\ -p2 = gp_Pnt2d(100.,100.);\n\ -aline = GCE2d_MakeLine(p1,p2).Value();\n\ -MW1.Add(BRepBuilderAPI_MakeEdge(aline,surf,0.,p1.Distance(p2)));\n\ -BRepBuilderAPI_MakeFace MKF1;\n\ -MKF1.Init(surf,Standard_False);\n\ -TopoDS_Face FP = MKF1.Face();\n\ -BRepLib::BuildCurves3d(FP);\n\ -TColgp_Array1OfPnt CurvePoles(1,3);\n\ -gp_Pnt pt = gp_Pnt(150.,0.,150.);\n\ -CurvePoles(1) = pt;\n\ -pt = gp_Pnt(200.,-100.,150.);\n\ -CurvePoles(2) = pt;\n\ -pt = gp_Pnt(150.,-200.,150.);\n\ -CurvePoles(3) = pt;\n\ -Handle(Geom_BezierCurve) curve = new Geom_BezierCurve(CurvePoles);\n\ -TopoDS_Edge E = BRepBuilderAPI_MakeEdge(curve);\n\ -TopoDS_Wire W = BRepBuilderAPI_MakeWire(E);\n\ -BRepFeat_MakePipe MKPipe(S,FP,F1,W,1,Standard_True);\n\ -MKPipe.Perform();\n\ -TopoDS_Shape res1 = MKPipe.Shape();\n\ - \n"); - PocessTextInDialog("Make a local pipe", Message); -} - - -void CModelingDoc::OnLinearLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - BRepBuilderAPI_MakeWire mkw; - gp_Pnt p1 = gp_Pnt(0.,0.,0.); - gp_Pnt p2 = gp_Pnt(200.,0.,0.); - mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); - p1 = p2; - p2 = gp_Pnt(200.,0.,50.); - mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); - p1 = p2; - p2 = gp_Pnt(50.,0.,50.); - mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); - p1 = p2; - p2 = gp_Pnt(50.,0.,200.); - mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); - p1 = p2; - p2 = gp_Pnt(0.,0.,200.); - mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2)); - p1 = p2; - mkw.Add(BRepBuilderAPI_MakeEdge(p2,gp_Pnt(0.,0.,0.))); - - TopoDS_Shape S = BRepPrimAPI_MakePrism(BRepBuilderAPI_MakeFace(mkw.Wire()), - gp_Vec(gp_Pnt(0.,0.,0.),gp_Pnt(0.,100.,0.))); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_CYAN2,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - TopoDS_Wire W = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(gp_Pnt(50.,45.,100.), - gp_Pnt(100.,45.,50.))); - Handle(Geom_Plane) aplane = new Geom_Plane(0.,1.,0.,-45.); - BRepFeat_MakeLinearForm aform(S, W, aplane, gp_Vec(0.,10.,0.), gp_Vec(0.,0.,0.), - 1, Standard_True); - aform.Perform(/*10.*/); // new in 2.0 - - TopoDS_Shape res = aform.Shape(); - ais1->Set(res); - myAISContext->Redisplay(ais1,Standard_False); - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -BRepBuilderAPI_MakeWire mkw;\n\ -gp_Pnt p1 = gp_Pnt(0.,0.,0.);\n\ -gp_Pnt p2 = gp_Pnt(200.,0.,0.);\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2));\n\ -p1 = p2;\n\ -p2 = gp_Pnt(200.,0.,50.);\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2));\n\ -p1 = p2;\n\ -p2 = gp_Pnt(50.,0.,50.);\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2));\n\ -p1 = p2;\n\ -p2 = gp_Pnt(50.,0.,200.);\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2));\n\ -p1 = p2;\n\ -p2 = gp_Pnt(0.,0.,200.);\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p1,p2));\n\ -p1 = p2;\n\ -mkw.Add(BRepBuilderAPI_MakeEdge(p2,gp_Pnt(0.,0.,0.)));\n\ -TopoDS_Shape S = BRepPrimAPI_MakePrism(BRepBuilderAPI_MakeFace(mkw.Wire()), \n\ - gp_Vec(gp_Pnt(0.,0.,0.),gp_Pnt(0.,100.,0.)));\n\ -TopoDS_Wire W = BRepBuilderAPI_MakeWire(BRepBuilderAPI_MakeEdge(gp_Pnt(50.,45.,100.),\n\ - gp_Pnt(100.,45.,50.)));\n\ -Handle(Geom_Plane) aplane = new Geom_Plane(0.,1.,0.,-45.);\n\ -BRepFeat_MakeLinearForm aform(S, W, aplane, gp_Dir(0.,10.,0.), gp_Dir(0.,0.,0.),\n\ - 1, Standard_True);\n\ -aform.Perform(10.);\n\ -TopoDS_Shape res = aform.Shape();\n\ - \n"); - PocessTextInDialog("Make a rib", Message); -} - - -void CModelingDoc::OnSplitLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S = BRepPrimAPI_MakeBox(gp_Pnt(-100, -60, -80), 150, 200, 170).Shape(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(500); - - BRepAlgoAPI_Section asect(S, gp_Pln(1,2,1,-15),Standard_False); - asect.ComputePCurveOn1(Standard_True); - asect.Approximation(Standard_True); - asect.Build(); - TopoDS_Shape R = asect.Shape(); - - BRepFeat_SplitShape asplit(S); - - for (TopExp_Explorer Ex(R,TopAbs_EDGE); Ex.More(); Ex.Next()) { - TopoDS_Shape anEdge = Ex.Current(); - TopoDS_Shape aFace; - if (asect.HasAncestorFaceOn1(anEdge,aFace)) { - TopoDS_Face F = TopoDS::Face(aFace); - TopoDS_Edge E = TopoDS::Edge(anEdge); - asplit.Add(E,F); - } - } - - asplit.Build(); - - //Sleep(1000); - myAISContext->Erase(ais1,Standard_False); - //Fit(); - - TopoDS_Shape Result = asplit.Shape(); - - Handle(AIS_Shape) ais2 = new AIS_Shape(Result); - - myAISContext->SetColor(ais2,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetDisplayMode(ais2,1,Standard_False); - myAISContext->Display(ais2,Standard_False); - const Handle(AIS_InteractiveObject)& anIO2 = ais2; - myAISContext->SetSelected (anIO2, Standard_False); - Fit(); - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(gp_Pnt(-100,-60,-80),150,200,170); \n\ - \n\ -BRepBuilderAPI_Section asect(S, gp_Pln(1,2,1,-15),Standard_False); \n\ -asect.ComputePCurveOn1(Standard_True); \n\ -asect.Approximation(Standard_True); \n\ -asect.Build(); \n\ -TopoDS_Shape R = asect.Shape(); \n\ - \n\ -BRepFeat_SplitShape asplit(S); \n\ - \n\ -for (TopExp_Explorer Ex(R,TopAbs_EDGE); Ex.More(); Ex.Next()) { \n\ -TopoDS_Shape anEdge = Ex.Current(); \n\ - TopoDS_Shape aFace; \n\ - if (asect.HasAncestorFaceOn1(anEdge,aFace)) { \n\ - TopoDS_Face F = TopoDS::Face(aFace); \n\ - TopoDS_Edge E = TopoDS::Edge(anEdge); \n\ - asplit.Add(E,F); \n\ - } \n\ -} \n\ - \n\ -asplit.Build(); \n\ - \n\ -TopoDS_Shape Result = asplit.Shape(); \n\ - \n\ -\n"); - -PocessTextInDialog("Split a shape", Message); -} - - - -void CModelingDoc::OnThickLocal() -{ - AIS_ListOfInteractive L; - myAISContext->DisplayedObjects(L); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(L);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S1 = BRepPrimAPI_MakeBox(150, 200, 110).Shape(); - - Handle(AIS_Shape) abox1 = new AIS_Shape(S1); - myAISContext->SetColor (abox1, Quantity_NOC_WHITE, Standard_False); - myAISContext->SetMaterial(abox1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(abox1,Standard_False); - const Handle(AIS_InteractiveObject)& anIOBox1 = abox1; - myAISContext->SetSelected (anIOBox1, Standard_False); - Fit(); - Sleep(1000); - - TopTools_ListOfShape aList; - TopExp_Explorer Ex(S1,TopAbs_FACE); - Ex.Next(); //this is the front face - TopoDS_Shape aFace = Ex.Current(); - aList.Append(aFace); - - BRepOffsetAPI_MakeThickSolid aSolidMaker; - aSolidMaker.MakeThickSolidByJoin(S1,aList,10,0.01); - TopoDS_Shape aThickSolid = aSolidMaker.Shape(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(aThickSolid); - myAISContext->SetColor(ais1,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - const Handle(AIS_InteractiveObject)& anIO1 = ais1; - myAISContext->SetSelected (anIO1, Standard_False); - Fit(); - Sleep(1000); - - myAISContext->Erase(abox1,Standard_True); - Fit(); - - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepPrimAPI_MakeBox(150,200,110); \n\ - \n\ -TopTools_ListOfShape aList; \n\ -TopExp_Explorer Ex(S,TopAbs_FACE); \n\ -Ex.Next(); //in order to recover the front face \n\ -TopoDS_Shape aFace = Ex.Current(); \n\ -aList.Append(aFace); \n\ - \n\ -TopoDS_Shape aThickSolid = BRepPrimAPI_MakeThickSolid(S,aList,15,0.01); \n\ - \n\ -\n"); -PocessTextInDialog("Make a thick solid", Message); -} - -void CModelingDoc::OnOffsetLocal() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S1 = BRepPrimAPI_MakeBox(150, 200, 110).Shape(); - - Handle(AIS_Shape) aisBox1 = new AIS_Shape(S1); - myAISContext->SetColor(aisBox1,Quantity_NOC_BROWN,Standard_False); - myAISContext->SetMaterial(aisBox1,Graphic3d_NOM_GOLD,Standard_False); - myAISContext->Display(aisBox1,Standard_False); - Fit(); - Sleep(500); - - BRepOffsetAPI_MakeOffsetShape aShapeMaker1; - aShapeMaker1.PerformByJoin(S1,60,0.01); - TopoDS_Shape anOffsetShape1 = aShapeMaker1.Shape(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(anOffsetShape1); - myAISContext->SetColor(ais1,Quantity_NOC_MATRABLUE,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_GOLD,Standard_False); - myAISContext->SetTransparency(ais1,0.5,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - Sleep(500); - - TopoDS_Shape S2 = BRepPrimAPI_MakeBox(gp_Pnt(500, 0, 0), 220, 140, 180).Shape(); - - Handle(AIS_Shape) aisBox2 = new AIS_Shape(S2); - myAISContext->SetColor(aisBox2,Quantity_NOC_WHITE,Standard_False); - myAISContext->SetMaterial(aisBox2,Graphic3d_NOM_GOLD,Standard_False); - myAISContext->SetTransparency(aisBox2,0.5,Standard_False); - myAISContext->Display(aisBox2,Standard_False); - Fit(); - Sleep(500); - - BRepOffsetAPI_MakeOffsetShape aShapeMaker2; - aShapeMaker2.PerformByJoin(S2,-40,0.01, - BRepOffset_Skin,Standard_False,Standard_False,GeomAbs_Arc); - TopoDS_Shape anOffsetShape2 = aShapeMaker2.Shape(); - - Handle(AIS_Shape) ais2 = new AIS_Shape(anOffsetShape2); - myAISContext->SetColor (ais2, Quantity_NOC_MATRABLUE, Standard_False); - myAISContext->SetMaterial(ais2,Graphic3d_NOM_GOLD,Standard_False); - myAISContext->Display (ais2, Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -\n\ -TopoDS_Shape S1 = BRepPrimAPI_MakeBox(150,200,110); \n\ -\n\ -TopoDS_Shape anOffsetShape1 = BRepPrimAPI_MakeOffsetShape(S1,60,0.01); \n\ -\n\ -//The white box \n\ - \n\ -TopoDS_Shape S2 = BRepPrimAPI_MakeBox(gp_Pnt(300,0,0),220,140,180); \n\ -\n\ -TopoDS_Shape anOffsetShape2 = BRepPrimAPI_MakeOffsetShape(S2,-20,0.01, \n\ - BRepOffset_Skin,Standard_False,Standard_False,GeomAbs_Arc); \n\ - \n\ -\n\ -\n"); -PocessTextInDialog("Make an offset shape", Message); - -} - -/* ================================================================================= - ==================== B U I L D I N G ======================================== - ================================================================================= */ - - -void CModelingDoc::OnVertex() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Vertex V1,V2,V3; - - V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(0,0,0)); - V2 = BRepBuilderAPI_MakeVertex(gp_Pnt(10,7,25)); - - gp_Pnt P(-12,8,-4); - BRepBuilderAPI_MakeVertex MV(P); - V3 = MV.Vertex(); - - Handle(AIS_Shape) Point1 = new AIS_Shape(V1); - myAISContext->Display(Point1,Standard_False); - Handle(AIS_Shape) Point2 = new AIS_Shape(V2); - myAISContext->Display(Point2,Standard_False); - Handle(AIS_Shape) Point3 = new AIS_Shape(V3); - myAISContext->Display(Point3,Standard_False); - - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Vertex V1,V2,V3; \n\ - \n\ -V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(0,0,0)); \n\ - \n\ -V2 = BRepBuilderAPI_MakeVertex(gp_Pnt(10,7,25)); \n\ - \n\ -gp_Pnt P(-12,8,-4); \n\ -BRepBuilderAPI_MakeVertex MV(P); \n\ -V3 = MV.Vertex(); \n\ - \n\ -\n"); - - PocessTextInDialog("Make vertex from point ", Message); - -} - -void CModelingDoc::OnEdge() -{ - - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - - TopoDS_Edge BlueEdge,YellowEdge,WhiteEdge,RedEdge,GreenEdge; - TopoDS_Vertex V1,V2,V3,V4; - -/////////////The blue edge - - BlueEdge = BRepBuilderAPI_MakeEdge(gp_Pnt(-80,-50,-20),gp_Pnt(-30,-60,-60)); - -/////////////The yellow edge - - V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-20,10,-30)); - V2 = BRepBuilderAPI_MakeVertex(gp_Pnt(10,7,-25)); - YellowEdge = BRepBuilderAPI_MakeEdge(V1,V2); - -/////////////The white edge - - gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0))); - WhiteEdge = BRepBuilderAPI_MakeEdge(line,-20,10); - -//////////////The red edge - - gp_Elips Elips(gp_Ax2(gp_Pnt(10,0,0),gp_Dir(1,1,1)),60,30); - RedEdge = BRepBuilderAPI_MakeEdge(Elips,0,M_PI/2); - -/////////////The green edge and the both extreme vertex - - gp_Pnt P1(-15,200,10); - gp_Pnt P2(5,204,0); - gp_Pnt P3(15,200,0); - gp_Pnt P4(-15,20,15); - gp_Pnt P5(-5,20,0); - gp_Pnt P6(15,20,0); - gp_Pnt P7(24,120,0); - gp_Pnt P8(-24,120,12.5); - TColgp_Array1OfPnt array(1,8); - array.SetValue(1,P1); - array.SetValue(2,P2); - array.SetValue(3,P3); - array.SetValue(4,P4); - array.SetValue(5,P5); - array.SetValue(6,P6); - array.SetValue(7,P7); - array.SetValue(8,P8); - Handle (Geom_BezierCurve) curve = new Geom_BezierCurve(array); - - BRepBuilderAPI_MakeEdge ME (curve); - GreenEdge = ME; - V3 = ME.Vertex1(); - V4 = ME.Vertex2(); - -//////////////Display -Handle(AIS_Shape) blue = new AIS_Shape(BlueEdge); -myAISContext->SetColor(blue,Quantity_NOC_MATRABLUE,Standard_False); -myAISContext->Display(blue,Standard_False); - -Handle(AIS_Shape) yellow = new AIS_Shape(YellowEdge); -myAISContext->SetColor(yellow,Quantity_NOC_YELLOW,Standard_False); -myAISContext->Display(yellow,Standard_False); - -Handle(AIS_Shape) white = new AIS_Shape(WhiteEdge); -myAISContext->SetColor(white,Quantity_NOC_WHITE,Standard_False); -myAISContext->Display(white,Standard_False); - -Handle(AIS_Shape) red = new AIS_Shape(RedEdge); -myAISContext->SetColor(red,Quantity_NOC_RED,Standard_False); -myAISContext->Display(red,Standard_False); - -Handle(AIS_Shape) green = new AIS_Shape(GreenEdge); -myAISContext->SetColor(green,Quantity_NOC_GREEN,Standard_False); -myAISContext->Display(green,Standard_False); - -Handle(AIS_Shape) Point1 = new AIS_Shape(V3); -myAISContext->Display(Point1,Standard_False); -Handle(AIS_Shape) Point2 = new AIS_Shape(V4); -myAISContext->Display(Point2,Standard_False); - -Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Edge BlueEdge, YellowEdge, WhiteEdge, RedEdge, GreenEdge; \n\ -TopoDS_Vertex V1,V2,V3,V4; \n\ - \n\ -/////////////The blue edge \n\ - \n\ -BlueEdge = BRepBuilderAPI_MakeEdge(gp_Pnt(-80,-50,-20),gp_Pnt(-30,-60,-60)); \n\ - \n\ -/////////////The yellow edge \n\ - \n\ -V1 = BRepBuilderAPI_MakeVertex(gp_Pnt(-20,10,-30)); \n\ -V2 = BRepBuilderAPI_MakeVertex(gp_Pnt(10,7,-25)); \n\ -YellowEdge = BRepBuilderAPI_MakeEdge(V1,V2); \n\ - \n\ -/////////////The white edge \n\ - \n\ -gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0))); \n\ -WhiteEdge = BRepBuilderAPI_MakeEdge(line,-20,10); \n\ - \n\ -//////////////The red edge \n\ - \n\ -gp_Elips Elips(gp_Ax2(gp_Pnt(10,0,0),gp_Dir(1,1,1)),60,30); \n\ -RedEdge = BRepBuilderAPI_MakeEdge(Elips,0,PI/2); \n\ - \n\ -/////////////The green edge and the both extreme vertex \n\ - \n\ -gp_Pnt P1(-15,200,10); \n\ -gp_Pnt P2(5,204,0); \n\ -gp_Pnt P3(15,200,0); \n\ -gp_Pnt P4(-15,20,15); \n\ -gp_Pnt P5(-5,20,0); \n\ -gp_Pnt P6(15,20,0); \n\ -gp_Pnt P7(24,120,0); \n\ -gp_Pnt P8(-24,120,12.5); \n\ -TColgp_Array1OfPnt array(1,8); \n\ -array.SetValue(1,P1); \n\ -array.SetValue(2,P2); \n\ -array.SetValue(3,P3); \n\ -array.SetValue(4,P4); \n\ -array.SetValue(5,P5); \n\ -array.SetValue(6,P6); \n\ -array.SetValue(7,P7); \n\ -array.SetValue(8,P8); \n\ -Handle (Geom_BezierCurve) curve = new Geom_BezierCurve(array); \n\ - \n\ -BRepBuilderAPI_MakeEdge ME (curve); \n\ -GreenEdge = ME; \n\ -V3 = ME.Vertex1(); \n\ -V4 = ME.Vertex2(); \n\ - \n\ -\n"); - - PocessTextInDialog("Make edge", Message); - -} - -void CModelingDoc::OnWire() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Wire RedWire,YellowWire,WhiteWire, - ExistingWire, ExistingWire2; - - TopoDS_Edge Edge1,Edge2,Edge3,Edge4,Edge5,Edge6,Edge7,LastEdge; - TopoDS_Vertex LastVertex; - -////////////The red wire is build from a single edge - - gp_Elips Elips(gp_Ax2(gp_Pnt(250,0,0),gp_Dir(1,1,1)),160,90); - Edge1 = BRepBuilderAPI_MakeEdge(Elips,0,M_PI/2); - - RedWire = BRepBuilderAPI_MakeWire(Edge1); - -///////////the yellow wire is build from an existing wire and an edge - - gp_Circ circle(gp_Ax2(gp_Pnt(-300,0,0),gp_Dir(1,0,0)),80); - Edge2 = BRepBuilderAPI_MakeEdge(circle,0,M_PI); - - ExistingWire = BRepBuilderAPI_MakeWire(Edge2); - - Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(-300,0,-80),gp_Pnt(-90,20,-30)); - - BRepBuilderAPI_MakeWire MW1(ExistingWire,Edge3); - if (MW1.IsDone()) { - YellowWire = MW1; - } - - -//////////the white wire is built with an existing wire and 3 edges. -//////////we use the methods Add, Edge and Vertex from BRepBuilderAPI_MakeWire. - - gp_Circ circle2(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(0,1,0)),200); - Edge4 = BRepBuilderAPI_MakeEdge(circle2,0,M_PI); - - ExistingWire2 = BRepBuilderAPI_MakeWire(Edge4); - - gp_Pnt P1(0,0,-200); - gp_Pnt P2(5,204,0); - Edge5 = BRepBuilderAPI_MakeEdge(P1,P2); - - gp_Pnt P3(-15,20,15); - Edge6 = BRepBuilderAPI_MakeEdge(P2,P3); - gp_Pnt P4(15,20,0); - Edge7 = BRepBuilderAPI_MakeEdge(P3,P4); - - BRepBuilderAPI_MakeWire MW; - MW.Add(ExistingWire2); - MW.Add(Edge5); - MW.Add(Edge6); - MW.Add(Edge7); - - if (MW.IsDone()) { - WhiteWire = MW.Wire(); - LastEdge = MW.Edge(); - LastVertex = MW.Vertex(); - } - - -Handle(AIS_Shape) red = new AIS_Shape(RedWire); -myAISContext->SetColor(red,Quantity_NOC_RED,Standard_False); -myAISContext->Display(red,Standard_False); - -Handle(AIS_Shape) yellow = new AIS_Shape(YellowWire); -myAISContext->SetColor(yellow,Quantity_NOC_YELLOW,Standard_False); -myAISContext->Display(yellow,Standard_False); - -Handle(AIS_Shape) white = new AIS_Shape(WhiteWire); -myAISContext->SetColor(white,Quantity_NOC_WHITE,Standard_False); -myAISContext->Display(white,Standard_False); - -Handle(AIS_Shape) lastE = new AIS_Shape(LastEdge); -myAISContext->SetWidth(lastE,3,Standard_False); -myAISContext->SetColor(lastE,Quantity_NOC_RED,Standard_False); -myAISContext->Display(lastE,Standard_False); - -Handle(AIS_Shape) lastV = new AIS_Shape(LastVertex); -myAISContext->Display(lastV,Standard_False); - -Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Wire RedWire,YellowWire,WhiteWire, \n\ -ExistingWire, ExistingWire2; \n\ - \n\ -TopoDS_Edge Edge1,Edge2,Edge3,Edge4,Edge5,Edge6,Edge7,LastEdge; \n\ -TopoDS_Vertex LastVertex; \n\ - \n\ -////////////The red wire is build from a single edge \n\ - \n\ -gp_Elips Elips(gp_Ax2(gp_Pnt(10,0,0),gp_Dir(1,1,1)),160,90); \n\ -Edge1 = BRepBuilderAPI_MakeEdge(Elips,0,PI/2); \n\ - \n\ -RedWire = BRepBuilderAPI_MakeWire(Edge1); \n\ - \n\ -///////////the yellow wire is build from an existing wire and an edge \n\ - \n\ -gp_Circ circle(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(1,0,0)),80); \n\ -Edge2 = BRepBuilderAPI_MakeEdge(circle,0,PI); \n\ - \n\ -ExistingWire = BRepBuilderAPI_MakeWire(Edge2); \n\ - \n\ -Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,0,-80),gp_Pnt(90,20,30)); \n\ - \n\ -BRepBuilderAPI_MakeWire MW1(ExistingWire,Edge3); \n\ -if (MW1.IsDone()) { \n\ - YellowWire = MW1; \n\ -} \n\ - \n\ -///the white wire is built with an existing wire and 3 edges. \n\ -///we use the methods Add, Edge and Vertex from BRepBuilderAPI_MakeWire \n\ -///in order to display the last edge and the last vertices we \n\ -///add to the wire. \n\ - \n\ -gp_Circ circle2(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(0,1,0)),200); \n\ -Edge4 = BRepBuilderAPI_MakeEdge(circle2,0,PI); \n\ - \n\ -ExistingWire2 = BRepBuilderAPI_MakeWire(Edge4); \n\ - \n\ -gp_Pnt P1(0,0,-200); \n\ -gp_Pnt P2(5,204,0); \n\ -Edge5 = BRepBuilderAPI_MakeEdge(P1,P2); \n\ - \n\ -gp_Pnt P3(-15,20,15); \n\ -Edge6 = BRepBuilderAPI_MakeEdge(P2,P3); \n\ -gp_Pnt P4(15,20,0); \n\ -Edge7 = BRepBuilderAPI_MakeEdge(P3,P4); \n\ - \n\ -BRepBuilderAPI_MakeWire MW; \n\ -MW.Add(ExistingWire2); \n\ -MW.Add(Edge5); \n\ -MW.Add(Edge6); \n\ -MW.Add(Edge7); \n\ - \n\ -if (MW.IsDone()) { \n\ - WhiteWire = MW.Wire(); \n\ - LastEdge = MW.Edge(); \n\ - LastVertex = MW.Vertex(); \n\ -} \n\ - \n\ -\n"); - - PocessTextInDialog("Make wire ", Message); -} - -void CModelingDoc::OnFace() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - - - TopoDS_Face WhiteFace, BrownFace, RedFace, PinkFace; - TopoDS_Edge Edge1, Edge2, Edge3, Edge4, Edge5, Edge6, Edge7; - TopoDS_Wire Wire1; - gp_Pnt P1, P2, P3, P4, P5, P6, P7; - - gp_Sphere sphere (gp_Ax3(gp_Pnt(0,0,0),gp_Dir(1,0,0)),150); - - WhiteFace = BRepBuilderAPI_MakeFace(sphere,0.1,0.7,0.2,0.9); - -////////////////////////////////// - - P1.SetCoord(-15,200,10); - P2.SetCoord(5,204,0); - P3.SetCoord(15,200,0); - P4.SetCoord(-15,20,15); - P5.SetCoord(-5,20,0); - P6.SetCoord(15,20,35); - TColgp_Array2OfPnt array(1,3,1,2); - array.SetValue(1,1,P1); - array.SetValue(2,1,P2); - array.SetValue(3,1,P3); - array.SetValue(1,2,P4); - array.SetValue(2,2,P5); - array.SetValue(3,2,P6); - Handle (Geom_BSplineSurface) curve = GeomAPI_PointsToBSplineSurface(array,3,8,GeomAbs_C2,0.001); - - RedFace = BRepBuilderAPI_MakeFace(curve, Precision::Confusion()); - -//////////////////// - - gp_Circ circle(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(1,0,0)),80); - Edge1 = BRepBuilderAPI_MakeEdge(circle,0,M_PI); - - Edge2 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,0,-80),gp_Pnt(0,-10,40)); - Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,-10,40),gp_Pnt(0,0,80)); - - TopoDS_Wire YellowWire; - BRepBuilderAPI_MakeWire MW1(Edge1,Edge2,Edge3); - if (MW1.IsDone()) { - YellowWire = MW1; - } - - BrownFace = BRepBuilderAPI_MakeFace(YellowWire); - - -///////////// - - P1.SetCoord(35,-200,40); - P2.SetCoord(50,-204,30); - P3.SetCoord(65,-200,30); - P4.SetCoord(35,-20,45); - P5.SetCoord(45,-20,30); - P6.SetCoord(65,-20,65); - TColgp_Array2OfPnt array2(1,3,1,2); - array2.SetValue(1,1,P1); - array2.SetValue(2,1,P2); - array2.SetValue(3,1,P3); - array2.SetValue(1,2,P4); - array2.SetValue(2,2,P5); - array2.SetValue(3,2,P6); - - Handle (Geom_BSplineSurface) BSplineSurf = GeomAPI_PointsToBSplineSurface(array2,3,8,GeomAbs_C2,0.001); - - TopoDS_Face aFace = BRepBuilderAPI_MakeFace(BSplineSurf, Precision::Confusion()); - - //2d lines - gp_Pnt2d P12d(0.9,0.1); - gp_Pnt2d P22d(0.2,0.7); - gp_Pnt2d P32d(0.02,0.1); - - Handle (Geom2d_Line) line1 = new Geom2d_Line(P12d,gp_Dir2d((0.2-0.9),(0.7-0.1))); - Handle (Geom2d_Line) line2 = new Geom2d_Line(P22d,gp_Dir2d((0.02-0.2),(0.1-0.7))); - Handle (Geom2d_Line) line3 = new Geom2d_Line(P32d,gp_Dir2d((0.9-0.02),(0.1-0.1))); - - - //Edges are on the BSpline surface - Edge1 = BRepBuilderAPI_MakeEdge(line1,BSplineSurf,0,P12d.Distance(P22d)); - Edge2 = BRepBuilderAPI_MakeEdge(line2,BSplineSurf,0,P22d.Distance(P32d)); - Edge3 = BRepBuilderAPI_MakeEdge(line3,BSplineSurf,0,P32d.Distance(P12d)); - - Wire1 = BRepBuilderAPI_MakeWire(Edge1,Edge2,Edge3); - Wire1.Reverse(); - PinkFace = BRepBuilderAPI_MakeFace(aFace,Wire1); - BRepLib::BuildCurves3d(PinkFace); - -/////////////Display - Handle(AIS_Shape) white = new AIS_Shape(WhiteFace); - myAISContext->SetColor(white,Quantity_NOC_WHITE,Standard_False); - myAISContext->SetMaterial(white,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(white,Standard_False); - - Handle(AIS_Shape) red = new AIS_Shape(RedFace); - myAISContext->SetColor(red,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(red,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(red,Standard_False); - - Handle(AIS_Shape) brown = new AIS_Shape(BrownFace); - myAISContext->SetColor(brown,Quantity_NOC_BROWN,Standard_False); - myAISContext->SetMaterial(brown,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(brown,Standard_False); - - Handle(AIS_Shape) pink = new AIS_Shape(PinkFace); - myAISContext->SetColor(pink,Quantity_NOC_HOTPINK,Standard_False); - myAISContext->SetMaterial(pink,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(pink,Standard_False); - - Fit(); - - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Face WhiteFace, BrownFace, RedFace, PinkFace; \n\ -TopoDS_Edge Edge1, Edge2, Edge3, Edge4, Edge5, Edge6, Edge7; \n\ -TopoDS_Wire Wire1; \n\ -gp_Pnt P1, P2, P3, P4, P5, P6, P7; \n\ -\n\ -////////The white Face \n\ -\n\ -gp_Sphere sphere (gp_Ax3(gp_Pnt(0,0,0),gp_Dir(1,0,0)),150); \n\ -\n\ -WhiteFace = BRepBuilderAPI_MakeFace(sphere,0.1,0.7,0.2,0.9); \n\ -\n\ -////////The red face \n\ -\n\ -P1.SetCoord(-15,200,10); \n\ -P2.SetCoord(5,204,0); \n\ -P3.SetCoord(15,200,0); \n\ -P4.SetCoord(-15,20,15); \n\ -P5.SetCoord(-5,20,0); \n\ -P6.SetCoord(15,20,35); \n\ -TColgp_Array2OfPnt array(1,3,1,2); \n\ -array.SetValue(1,1,P1); \n\ -array.SetValue(2,1,P2); \n\ -array.SetValue(3,1,P3); \n\ -array.SetValue(1,2,P4); \n\ -array.SetValue(2,2,P5); \n\ -array.SetValue(3,2,P6); \n\ -Handle (Geom_BSplineSurface) curve = GeomAPI_PointsToBSplineSurface(array,3,8,GeomAbs_C2,0.001); \n\ -\n\ -RedFace = BRepBuilderAPI_MakeFace(curve); \n\ -\n\ -////////The brown face \n\ -\n\ -gp_Circ circle(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(1,0,0)),80); \n\ -Edge1 = BRepBuilderAPI_MakeEdge(circle,0,PI); \n\ -\n\ -Edge2 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,0,-80),gp_Pnt(0,-10,40)); \n\ -Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(0,-10,40),gp_Pnt(0,0,80)); \n\ -\n\ -TopoDS_Wire YellowWire; \n\ -BRepBuilderAPI_MakeWire MW1(Edge1,Edge2,Edge3); \n\ -if (MW1.IsDone()) { \n\ - YellowWire = MW1; \n\ -} \n\ -\n\ -BrownFace = BRepBuilderAPI_MakeFace(YellowWire); \n\ -\n"); -Message +=("\ -////////The pink face \n\ -\n\ -P1.SetCoord(35,-200,40); \n\ -P2.SetCoord(50,-204,30); \n\ -P3.SetCoord(65,-200,30); \n\ -P4.SetCoord(35,-20,45); \n\ -P5.SetCoord(45,-20,30); \n\ -P6.SetCoord(65,-20,65); \n\ -TColgp_Array2OfPnt array2(1,3,1,2); \n\ -array2.SetValue(1,1,P1); \n\ -array2.SetValue(2,1,P2); \n\ -array2.SetValue(3,1,P3); \n\ -array2.SetValue(1,2,P4); \n\ -array2.SetValue(2,2,P5); \n\ -array2.SetValue(3,2,P6); \n\ - \n\ -Handle (Geom_BSplineSurface) BSplineSurf = GeomAPI_PointsToBSplineSurface(array2,3,8,GeomAbs_C2,0.001); \n\ - \n\ -TopoDS_Face aFace = BRepBuilderAPI_MakeFace(BSplineSurf); \n\ -\n\ -//2d lines \n\ -gp_Pnt2d P12d(0.9,0.1); \n\ -gp_Pnt2d P22d(0.2,0.7); \n\ -gp_Pnt2d P32d(0.02,0.1); \n\ -\n\ -Handle (Geom2d_Line) line1= \n\ - new Geom2d_Line(P12d,gp_Dir2d((0.2-0.9),(0.7-0.1))); \n\ -Handle (Geom2d_Line) line2= \n\ - new Geom2d_Line(P22d,gp_Dir2d((0.02-0.2),(0.1-0.7))); \n\ -Handle (Geom2d_Line) line3= \n\ - new Geom2d_Line(P32d,gp_Dir2d((0.9-0.02),(0.1-0.1))); \n\ - \n\ -//Edges are on the BSpline surface \n\ -Edge1 = BRepBuilderAPI_MakeEdge(line1,BSplineSurf,0,P12d.Distance(P22d)); \n\ -Edge2 = BRepBuilderAPI_MakeEdge(line2,BSplineSurf,0,P22d.Distance(P32d)); \n\ -Edge3 = BRepBuilderAPI_MakeEdge(line3,BSplineSurf,0,P32d.Distance(P12d)); \n\ -\n\ -Wire1 = BRepBuilderAPI_MakeWire(Edge1,Edge2,Edge3); \n\ -Wire1.Reverse(); \n\ -PinkFace = BRepBuilderAPI_MakeFace(aFace,Wire1); \n\ -BRepLib::BuildCurves3d(PinkFace); \n\ -\n\ -\n"); - -PocessTextInDialog("Make face ", Message); -} - -void CModelingDoc::OnShell() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TColgp_Array2OfPnt Poles(1,2,1,4); - Poles.SetValue(1,1,gp_Pnt(0,0,0)); - Poles.SetValue(1,2,gp_Pnt(0,10,2)); - Poles.SetValue(1,3,gp_Pnt(0,20,10)); - Poles.SetValue(1,4,gp_Pnt(0,30,0)); - Poles.SetValue(2,1,gp_Pnt(10,0,5)); - Poles.SetValue(2,2,gp_Pnt(10,10,3)); - Poles.SetValue(2,3,gp_Pnt(10,20,20)); - Poles.SetValue(2,4,gp_Pnt(10,30,0)); - - TColStd_Array1OfReal UKnots(1,2); - UKnots.SetValue(1,0); - UKnots.SetValue(2,1); - - TColStd_Array1OfInteger UMults(1,2); - UMults.SetValue(1,2); - UMults.SetValue(2,2); - - TColStd_Array1OfReal VKnots(1,3); - VKnots.SetValue(1,0); - VKnots.SetValue(2,1); - VKnots.SetValue(3,2); - - TColStd_Array1OfInteger VMults(1,3); - VMults.SetValue(1,3); - VMults.SetValue(2,1); - VMults.SetValue(3,3); - - Standard_Integer UDegree(1); - Standard_Integer VDegree(2); - - Handle (Geom_BSplineSurface) BSpline = new Geom_BSplineSurface(Poles,UKnots,VKnots,UMults,VMults,UDegree,VDegree); - - TopoDS_Face WhiteFace = BRepBuilderAPI_MakeFace(BSpline, Precision::Confusion()); - - - Handle(AIS_Shape) white = new AIS_Shape(WhiteFace); - myAISContext->SetColor (white, Quantity_NOC_WHITE, Standard_False); - myAISContext->SetMaterial(white,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetTransparency (white, 0.7, Standard_False); - myAISContext->Display(white,Standard_False); - - - TopoDS_Shell aShell = BRepBuilderAPI_MakeShell(BSpline); - Handle(AIS_Shape) anAISShell = new AIS_Shape(aShell); - myAISContext->SetDisplayMode (anAISShell, 0, Standard_False); - myAISContext->Display(anAISShell,Standard_False); - //myAISContext->SetSelected(anAISShell); - - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TColgp_Array2OfPnt Poles(1,2,1,4); \n\ -Poles.SetValue(1,1,gp_Pnt(0,0,0)); \n\ -Poles.SetValue(1,2,gp_Pnt(0,10,2)); \n\ -Poles.SetValue(1,3,gp_Pnt(0,20,10)); \n\ -Poles.SetValue(1,4,gp_Pnt(0,30,0)); \n\ -Poles.SetValue(2,1,gp_Pnt(10,0,5)); \n\ -Poles.SetValue(2,2,gp_Pnt(10,10,3)); \n\ -Poles.SetValue(2,3,gp_Pnt(10,20,20)); \n\ -Poles.SetValue(2,4,gp_Pnt(10,30,0)); \n\ -\n\ -TColStd_Array1OfReal UKnots(1,2); \n\ -UKnots.SetValue(1,0); \n\ -UKnots.SetValue(2,1); \n\ -\n\ -TColStd_Array1OfInteger UMults(1,2); \n\ -UMults.SetValue(1,2); \n\ -UMults.SetValue(2,2); \n\ -\n\ -TColStd_Array1OfReal VKnots(1,3); \n\ -VKnots.SetValue(1,0); \n\ -VKnots.SetValue(2,1); \n\ -VKnots.SetValue(3,2); \n\ -\n\ -TColStd_Array1OfInteger VMults(1,3); \n\ -VMults.SetValue(1,3); \n\ -VMults.SetValue(2,1); \n\ -VMults.SetValue(3,3); \n\ -\n\ -Standard_Integer UDegree(1); \n\ -Standard_Integer VDegree(2); \n\ - \n\ -Handle (Geom_BSplineSurface) BSpline = new Geom_BSplineSurface(Poles,UKnots,VKnots,UMults,VMults,UDegree,VDegree); \n\ - \n\ -TopoDS_Shell aShell = BRepBuilderAPI_MakeShell(BSpline); \n\ -\n\ -\n"); - - PocessTextInDialog("Make shell", Message); - -} - -void CModelingDoc::OnCompound() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - BRep_Builder builder; - TopoDS_Compound Comp; - builder.MakeCompound(Comp); - - TopoDS_Vertex aVertex = BRepBuilderAPI_MakeVertex(gp_Pnt(-20,10,-30)); - builder.Add(Comp,aVertex); - - gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0))); - TopoDS_Edge anEdge = BRepBuilderAPI_MakeEdge(line,-20,10); - builder.Add(Comp,anEdge); - - gp_Sphere sphere (gp_Ax3(gp_Pnt(-80,0,0),gp_Dir(1,0,0)),150); - TopoDS_Face aFace = BRepBuilderAPI_MakeFace(sphere,0.1,0.7,0.2,0.9); - builder.Add(Comp,aFace); - - TopoDS_Shape aBox = BRepPrimAPI_MakeBox(gp_Pnt(-60, 0, 0), 30, 60, 40).Shape(); - builder.Add(Comp,aBox); - - Handle(AIS_Shape) white = new AIS_Shape(Comp); - myAISContext->SetDisplayMode (white, 0, Standard_False); - myAISContext->Display(white,Standard_False); - - Fit(); - - - TCollection_AsciiString Message ("\ - \n\ -BRep_Builder builder; \n\ -TopoDS_Compound Comp; \n\ -builder.MakeCompound(Comp); \n\ -\n\ -TopoDS_Vertex aVertex = BRepBuilderAPI_MakeVertex(gp_Pnt(-20,10,-30)); \n\ -builder.Add(Comp,aVertex); \n\ - \n\ -gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0))); \n\ -TopoDS_Edge anEdge = BRepBuilderAPI_MakeEdge(line,-20,10); \n\ -builder.Add(Comp,anEdge); \n\ - \n\ -gp_Sphere sphere (gp_Ax3(gp_Pnt(-80,0,0),gp_Dir(1,0,0)),150); \n\ -TopoDS_Face aFace = BRepBuilderAPI_MakeFace(sphere,0.1,0.7,0.2,0.9); \n\ -builder.Add(Comp,aFace); \n\ - \n\ -TopoDS_Shape aBox = BRepPrimAPI_MakeBox(gp_Pnt(-60,0,0),30,60,40); \n\ -builder.Add(Comp,aBox); \n\ - \n\ -\n"); - - PocessTextInDialog("Make compound ", Message); - -} - - - - - -void CModelingDoc::OnSewing() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - gp_Pnt P(0,0,0); - gp_Vec V(0,0,1); - Handle(Geom_Plane) Pi=new Geom_Plane(P,V); - Handle(Geom_RectangularTrimmedSurface) GeometricSurface=new Geom_RectangularTrimmedSurface(Pi,0.,100.,0.,100.); - TopoDS_Shape FirstShape = BRepBuilderAPI_MakeFace(GeometricSurface, Precision::Confusion()); - - Handle(AIS_Shape) white1 = new AIS_Shape(FirstShape); - - myAISContext->SetColor(white1,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(white1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetTransparency(white1,0.4,Standard_False); - myAISContext->Display(white1,Standard_False); - //Sleep(1000); - - gp_Pnt P1(0,0,0); - gp_Pnt P2(50,0,0); - gp_Pnt P3(100,0,0); - gp_Pnt P4(25,12,85); - gp_Pnt P5(100,0,80); - gp_Pnt P6(135,-12,85); - - TColgp_Array2OfPnt Array(1,3,1,2); - Array.SetValue(1,1,P1); - Array.SetValue(2,1,P2); - Array.SetValue(3,1,P3); - Array.SetValue(1,2,P4); - Array.SetValue(2,2,P5); - Array.SetValue(3,2,P6); - - Handle (Geom_BSplineSurface) aSurf = GeomAPI_PointsToBSplineSurface(Array,3,8,GeomAbs_C2,0.00001); - TopoDS_Shape SecondShape = BRepBuilderAPI_MakeFace(aSurf, Precision::Confusion()); - - Handle(AIS_Shape) white2 = new AIS_Shape(SecondShape); - - myAISContext->SetColor(white2,Quantity_NOC_YELLOW,Standard_False); - myAISContext->SetMaterial(white2,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->SetTransparency(white2,0.4,Standard_False); - myAISContext->Display(white2,Standard_False); - - //Sleep(1000); - - BRepOffsetAPI_Sewing aMethod; - aMethod.Add(FirstShape); - aMethod.Add(SecondShape); - - aMethod.Perform(); - - TopoDS_Shape sewedShape = aMethod.SewedShape(); - - Handle(AIS_Shape) result = new AIS_Shape(sewedShape); - myAISContext->SetDisplayMode(result,0,Standard_False); - myAISContext->Display(result,Standard_False); - - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -///////The first shape \n\ - \n\ -gp_Pnt P(0,0,0); \n\ -gp_Vec V(0,0,1); \n\ -Handle(Geom_Plane) Pi=new Geom_Plane(P,V); \n\ -Handle(Geom_RectangularTrimmedSurface) GeometricSurface=new Geom_RectangularTrimmedSurface(Pi,0.,100.,0.,100.); \n\ -TopoDS_Shape FirstShape = BRepBuilderAPI_MakeFace(GeometricSurface); \n\ - \n\ -///////The second shape \n\ - \n\ -gp_Pnt P1(0,0,0); \n\ -gp_Pnt P2(50,0,0); \n\ -gp_Pnt P3(100,0,0); \n\ -gp_Pnt P4(25,12,85); \n\ -gp_Pnt P5(100,0,80); \n\ -gp_Pnt P6(135,-12,85); \n\ -\n\ -TColgp_Array2OfPnt Array(1,3,1,2); \n\ -Array.SetValue(1,1,P1); \n\ -Array.SetValue(2,1,P2); \n\ -Array.SetValue(3,1,P3); \n\ -Array.SetValue(1,2,P4); \n\ -Array.SetValue(2,2,P5); \n\ -Array.SetValue(3,2,P6); \n\ -\n\ -Handle (Geom_BSplineSurface) aSurf = GeomAPI_PointsToBSplineSurface(Array,3,8,GeomAbs_C2,0.00001); \n\ -TopoDS_Shape SecondShape = BRepBuilderAPI_MakeFace(aSurf); \n\ - \n\ -BRepOffsetAPI_Sewing aMethod; \n\ -aMethod.Add(FirstShape); \n\ -aMethod.Add(SecondShape); \n\ -\n\ -aMethod.Perform(); \n\ -\n\ -TopoDS_Shape sewedShape = aMethod.SewedShape(); \n\ - \n\ -\n"); - - PocessTextInDialog("Sew faces ", Message); - -} - - - - - - - -void CModelingDoc::OnBuilder() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - //The tolerance is the tolerance of confusion - Standard_Real precision = Precision::Confusion(); - - //The builder - BRep_Builder B; - - //Build the vertices - TopoDS_Vertex V000, V001, V010, V011, V100, V101, V110, V111; - B.MakeVertex(V000,gp_Pnt(0,0,0),precision); - B.MakeVertex(V001,gp_Pnt(0,0,100),precision); - B.MakeVertex(V010,gp_Pnt(0,150,0),precision); - B.MakeVertex(V011,gp_Pnt(0,150,100),precision); - B.MakeVertex(V100,gp_Pnt(200,0,0),precision); - B.MakeVertex(V101,gp_Pnt(200,0,100),precision); - B.MakeVertex(V110,gp_Pnt(200,150,0),precision); - B.MakeVertex(V111,gp_Pnt(200,150,100),precision); - - //Build the edges - //the edges are oriented as the axis X,Y,Z - TopoDS_Edge EX00, EX01, EX10, EX11; - TopoDS_Edge EY00, EY01, EY10, EY11; - TopoDS_Edge EZ00, EZ01, EZ10, EZ11; - Handle (Geom_Line) L; - - //Edge X00 - L = new Geom_Line(gp_Pnt(0,0,0),gp_Dir(1,0,0)); - B.MakeEdge(EX00,L,precision); - V000.Orientation(TopAbs_FORWARD); - V100.Orientation(TopAbs_REVERSED); - B.Add(EX00,V000); - B.Add(EX00,V100); - //Parameters - B.UpdateVertex(V000,0,EX00,precision); - B.UpdateVertex(V100,200,EX00,precision); - - //Edge X10 - L = new Geom_Line(gp_Pnt(0,150,0),gp_Dir(1,0,0)); - B.MakeEdge(EX10,L,precision); - V010.Orientation(TopAbs_FORWARD); - V110.Orientation(TopAbs_REVERSED); - B.Add(EX10,V010); - B.Add(EX10,V110); - //Parameters - B.UpdateVertex(V010,0,EX10,precision); - B.UpdateVertex(V110,200,EX10,precision); - - //Edge Y00 - L = new Geom_Line(gp_Pnt(0,0,0),gp_Dir(0,1,0)); - B.MakeEdge(EY00,L,precision); - V000.Orientation(TopAbs_FORWARD); - V010.Orientation(TopAbs_REVERSED); - B.Add(EY00,V000); - B.Add(EY00,V010); - //Parameters - B.UpdateVertex(V000,0,EY00,precision); - B.UpdateVertex(V010,150,EY00,precision); - - //Edge Y10 - L = new Geom_Line(gp_Pnt(200,0,0),gp_Dir(0,1,0)); - B.MakeEdge(EY10,L,precision); - V100.Orientation(TopAbs_FORWARD); - V110.Orientation(TopAbs_REVERSED); - B.Add(EY10,V100); - B.Add(EY10,V110); - //Parameters - B.UpdateVertex(V100,0,EY10,precision); - B.UpdateVertex(V110,150,EY10,precision); - - //Edge Y01 - L = new Geom_Line(gp_Pnt(0,0,100),gp_Dir(0,1,0)); - B.MakeEdge(EY01,L,precision); - V001.Orientation(TopAbs_FORWARD); - V011.Orientation(TopAbs_REVERSED); - B.Add(EY01,V001); - B.Add(EY01,V011); - //Parameters - B.UpdateVertex(V001,0,EY01,precision); - B.UpdateVertex(V011,150,EY01,precision); - - //Edge Y11 - L = new Geom_Line(gp_Pnt(200,0,100),gp_Dir(0,1,0)); - B.MakeEdge(EY11,L,precision); - V101.Orientation(TopAbs_FORWARD); - V111.Orientation(TopAbs_REVERSED); - B.Add(EY11,V101); - B.Add(EY11,V111); - //Parameters - B.UpdateVertex(V101,0,EY11,precision); - B.UpdateVertex(V111,150,EY11,precision); - - //Edge Z00 - L = new Geom_Line(gp_Pnt(0,0,0),gp_Dir(0,0,1)); - B.MakeEdge(EZ00,L,precision); - V000.Orientation(TopAbs_FORWARD); - V001.Orientation(TopAbs_REVERSED); - B.Add(EZ00,V000); - B.Add(EZ00,V001); - //Parameters - B.UpdateVertex(V000,0,EZ00,precision); - B.UpdateVertex(V001,100,EZ00,precision); - - //Edge Z01 - L = new Geom_Line(gp_Pnt(0,150,0),gp_Dir(0,0,1)); - B.MakeEdge(EZ01,L,precision); - V010.Orientation(TopAbs_FORWARD); - V011.Orientation(TopAbs_REVERSED); - B.Add(EZ01,V010); - B.Add(EZ01,V011); - //Parameters - B.UpdateVertex(V010,0,EZ01,precision); - B.UpdateVertex(V011,100,EZ01,precision); - - //Edge Z10 - L = new Geom_Line(gp_Pnt(200,0,0),gp_Dir(0,0,1)); - B.MakeEdge(EZ10,L,precision); - V100.Orientation(TopAbs_FORWARD); - V101.Orientation(TopAbs_REVERSED); - B.Add(EZ10,V100); - B.Add(EZ10,V101); - //Parameters - B.UpdateVertex(V100,0,EZ10,precision); - B.UpdateVertex(V101,100,EZ10,precision); - - //Edge Z11 - L = new Geom_Line(gp_Pnt(200,150,0),gp_Dir(0,0,1)); - B.MakeEdge(EZ11,L,precision); - V110.Orientation(TopAbs_FORWARD); - V111.Orientation(TopAbs_REVERSED); - B.Add(EZ11,V110); - B.Add(EZ11,V111); - //Parameters - B.UpdateVertex(V110,0,EZ11,precision); - B.UpdateVertex(V111,100,EZ11,precision); - - - //Circular Edges - Handle (Geom_Circle) C; - //Standard_Real R = 100; - - //Edge EX01 - C = new Geom_Circle(gp_Ax2(gp_Pnt(100,0,100),gp_Dir(0,1,0),gp_Dir(-1,0,0)),100); - B.MakeEdge(EX01,C,precision); - V001.Orientation(TopAbs_FORWARD); - V101.Orientation(TopAbs_REVERSED); - B.Add(EX01,V001); - B.Add(EX01,V101); - //Parameters - B.UpdateVertex(V001,0,EX01,precision); - B.UpdateVertex(V101,M_PI,EX01,precision); - - //Edge EX11 - C = new Geom_Circle(gp_Ax2(gp_Pnt(100,150,100),gp_Dir(0,1,0),gp_Dir(-1,0,0)),100); - B.MakeEdge(EX11,C,precision); - V011.Orientation(TopAbs_FORWARD); - V111.Orientation(TopAbs_REVERSED); - B.Add(EX11,V011); - B.Add(EX11,V111); - //Parameters - B.UpdateVertex(V011,0,EX11,precision); - B.UpdateVertex(V111,M_PI,EX11,precision); - - //Build wire and faces - //Faces normals are along the axis X,Y,Z - TopoDS_Face FXMIN, FXMAX, FYMIN, FYMAX, FZMIN, FZMAX; - TopoDS_Wire W; - Handle (Geom_Plane) P; - Handle (Geom2d_Line) L2d; - Handle (Geom2d_Circle) C2d; - Handle (Geom_CylindricalSurface) S; - - //Face FXMAX - P = new Geom_Plane(gp_Ax2(gp_Pnt(200,0,0),gp_Dir(1,0,0),gp_Dir(0,1,0))); - B.MakeFace(FXMAX,P,precision); - //the wire and the edges - B.MakeWire (W); - - EY10.Orientation(TopAbs_FORWARD); - B.Add(W,EY10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); - B.UpdateEdge(EY10,L2d,FXMAX,precision); - - EZ11.Orientation(TopAbs_FORWARD); - B.Add(W,EZ11); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(150,0),gp_Dir2d(0,1)); - B.UpdateEdge(EZ11,L2d,FXMAX,precision); - - EY11.Orientation(TopAbs_REVERSED); - B.Add(W,EY11); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,100),gp_Dir2d(1,0)); - B.UpdateEdge(EY11,L2d,FXMAX,precision); - - EZ10.Orientation(TopAbs_REVERSED); - B.Add(W,EZ10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EZ10,L2d,FXMAX,precision); - - B.Add(FXMAX,W); - - //Face FXMIN - P = new Geom_Plane(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(-1,0,0),gp_Dir(0,0,1))); - B.MakeFace(FXMIN,P,precision); - //the wire and the edges - B.MakeWire (W); - - EZ00.Orientation(TopAbs_FORWARD); - B.Add(W,EZ00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); - B.UpdateEdge(EZ00,L2d,FXMIN,precision); - - EY01.Orientation(TopAbs_FORWARD); - B.Add(W,EY01); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(100,0),gp_Dir2d(0,1)); - B.UpdateEdge(EY01,L2d,FXMIN,precision); - - EZ01.Orientation(TopAbs_REVERSED); - B.Add(W,EZ01); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,150),gp_Dir2d(1,0)); - B.UpdateEdge(EZ01,L2d,FXMIN,precision); - - EY00.Orientation(TopAbs_REVERSED); - B.Add(W,EY00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EY00,L2d,FXMIN,precision); - - - B.Add(FXMIN,W); - - //Face FYMAX - - P = new Geom_Plane(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(0,1,0),gp_Dir(0,0,1))); - B.MakeFace(FYMAX,P,precision); - //the wire and the edges - B.MakeWire (W); - - EZ00.Orientation(TopAbs_FORWARD); - B.Add(W,EZ00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); - B.UpdateEdge(EZ00,L2d,FYMAX,precision); - - EX01.Orientation(TopAbs_FORWARD); - B.Add(W,EX01); - //pcurve - C2d = new Geom2d_Circle(gp_Ax2d(gp_Pnt2d(100,100),gp_Dir2d(0,-1)),100); - B.UpdateEdge(EX01,C2d,FYMAX,precision); - B.UpdateVertex(V001,0,EX01,FYMAX,precision); - B.UpdateVertex(V101,M_PI,EX01,FYMAX,precision); - - EZ10.Orientation(TopAbs_REVERSED); - B.Add(W,EZ10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,200),gp_Dir2d(1,0)); - B.UpdateEdge(EZ10,L2d,FYMAX,precision); - - EX00.Orientation(TopAbs_REVERSED); - B.Add(W,EX00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EX00,L2d,FYMAX,precision); - - - B.Add(FYMAX,W); - - - - //Face FYMIN - P = new Geom_Plane(gp_Ax2(gp_Pnt(0,150,0),gp_Dir(0,1,0),gp_Dir(0,0,1))); - B.MakeFace(FYMIN,P,precision); - //the wire and the edges - B.MakeWire (W); - - EZ01.Orientation(TopAbs_FORWARD); - B.Add(W,EZ01); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); - B.UpdateEdge(EZ01,L2d,FYMIN,precision); - - EX11.Orientation(TopAbs_FORWARD); - B.Add(W,EX11); - //pcurve - C2d = new Geom2d_Circle(gp_Ax2d(gp_Pnt2d(100,100),gp_Dir2d(0,-1)),100); - B.UpdateEdge(EX11,C2d,FYMIN,precision); - B.UpdateVertex(V011,0,EX11,FYMIN,precision); - B.UpdateVertex(V111,M_PI,EX11,FYMIN,precision); - - EZ11.Orientation(TopAbs_REVERSED); - B.Add(W,EZ11); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,200),gp_Dir2d(1,0)); - B.UpdateEdge(EZ11,L2d,FYMIN,precision); - - EX10.Orientation(TopAbs_REVERSED); - B.Add(W,EX10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EX10,L2d,FYMIN,precision); - - B.Add(FYMIN,W); - - //Face FZMAX - P = new Geom_Plane(gp_Ax2(gp_Pnt(0,0,0),gp_Dir(0,0,-1),gp_Dir(0,1,0))); - B.MakeFace(FZMAX,P,precision); - //the wire and the edges - B.MakeWire (W); - - EY00.Orientation(TopAbs_FORWARD); - B.Add(W,EY00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); - B.UpdateEdge(EY00,L2d,FZMAX,precision); - - EX10.Orientation(TopAbs_FORWARD); - B.Add(W,EX10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(150,0),gp_Dir2d(0,1)); - B.UpdateEdge(EX10,L2d,FZMAX,precision); - - EY10.Orientation(TopAbs_REVERSED); - B.Add(W,EY10); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,200),gp_Dir2d(1,0)); - B.UpdateEdge(EY10,L2d,FZMAX,precision); - - EX00.Orientation(TopAbs_REVERSED); - B.Add(W,EX00); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EX00,L2d,FZMAX,precision); - - - B.Add(FZMAX,W); - - //Face FZMIN - S = new Geom_CylindricalSurface(gp_Ax3(gp_Pnt(100,0,100),gp_Dir(0,1,0),gp_Dir(-1,0,0)),100); - B.MakeFace(FZMIN,S,precision); - - //the wire and the edges - B.MakeWire (W); - - EX01.Orientation(TopAbs_FORWARD); - B.Add(W,EX01); - //pcurve - L2d = new Geom2d_Line(gp_Ax2d(gp_Pnt2d(0,0),gp_Dir2d(1,0))); - B.UpdateEdge(EX01,L2d,FZMIN,precision); - B.UpdateVertex(V001,0,EX01,FZMIN,precision); - B.UpdateVertex(V101,M_PI,EX01,FZMIN,precision); - - EY11.Orientation(TopAbs_FORWARD); - B.Add(W,EY11); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(M_PI,0),gp_Dir2d(0,1)); - B.UpdateEdge(EY11,L2d,FZMIN,precision); - - EX11.Orientation(TopAbs_REVERSED); - B.Add(W,EX11); - //pcurve - L2d = new Geom2d_Line(gp_Ax2d(gp_Pnt2d(0,150),gp_Dir2d(1,0))); - B.UpdateEdge(EX11,L2d,FZMIN,precision); - B.UpdateVertex(V111,M_PI,EX11,FZMIN,precision); - B.UpdateVertex(V011,0,EX11,FZMIN,precision); - - EY01.Orientation(TopAbs_REVERSED); - B.Add(W,EY01); - //pcurve - L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); - B.UpdateEdge(EY01,L2d,FZMIN,precision); - - B.Add(FZMIN,W); - - FYMAX.Orientation(TopAbs_REVERSED); - - //Shell - TopoDS_Shell Sh; - B.MakeShell(Sh); - B.Add(Sh,FXMAX); - B.Add(Sh,FXMIN); - B.Add(Sh,FYMAX); - B.Add(Sh,FYMIN); - B.Add(Sh,FZMAX); - B.Add(Sh,FZMIN); - - // Solid - TopoDS_Solid Sol; - B.MakeSolid(Sol); - B.Add(Sol,Sh); - - Handle(AIS_Shape) borne = new AIS_Shape(Sol); - myAISContext->SetDisplayMode (borne, 1, Standard_False); - myAISContext->SetColor (borne, Quantity_NOC_RED, Standard_False); - myAISContext->SetMaterial(borne,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(borne,Standard_False); - - - Fit(); - TCollection_AsciiString Message ("\ - \n\ -//The tolerance is 0.01 \n\ -Standard_Real precision(0.01); \n\ -\n\ -//The builder \n\ -BRep_Builder B; \n\ -\n\ -//Build the vertices \n\ -TopoDS_Vertex V000, V001, V010, V011, V100, V101, V110, V111; \n\ -B.MakeVertex(V000,gp_Pnt(0,0,0),precision); \n\ -B.MakeVertex(V001,gp_Pnt(0,0,100),precision); \n\ -B.MakeVertex(V010,gp_Pnt(0,150,0),precision); \n\ -B.MakeVertex(V011,gp_Pnt(0,150,100),precision); \n\ -B.MakeVertex(V100,gp_Pnt(200,0,0),precision); \n\ -B.MakeVertex(V101,gp_Pnt(200,0,100),precision); \n\ -B.MakeVertex(V110,gp_Pnt(200,150,0),precision); \n\ -B.MakeVertex(V111,gp_Pnt(200,150,100),precision); \n\ -\n\ -//Build the edges \n\ -//the edges are oriented as the axis X,Y,Z \n\ -TopoDS_Edge EX00, EX01, EX10, EX11; \n\ -TopoDS_Edge EY00, EY01, EY10, EY11; \n\ -TopoDS_Edge EZ00, EZ01, EZ10, EZ11; \n\ -Handle (Geom_Line) L; \n\ -\n\ -//Edge X00 \n\ -L = new Geom_Line(gp_Pnt(0,0,0),gp_Dir(1,0,0)); \n\ -B.MakeEdge(EX00,L,precision); \n\ -V000.Orientation(TopAbs_FORWARD); \n\ -V100.Orientation(TopAbs_REVERSED); \n\ -B.Add(EX00,V000); \n\ -B.Add(EX00,V100); \n\ -//Parameters \n\ -B.UpdateVertex(V000,0,EX00,precision); \n\ -B.UpdateVertex(V100,200,EX00,precision); \n\ -\n\ -//Idem for all the linear edges... \n\ -\n\ -//Circular Edges \n\ -Handle (Geom_Circle) C; \n\ -Standard_Real R = 100; \n\ -\n\ -//Edge EX01 \n\ -C = new Geom_Circle(gp_Ax2(gp_Pnt(100,0,100),gp_Dir(0,1,0),gp_Dir(-1,0,0)),100); \n\ -B.MakeEdge(EX01,C,precision); \n\ -V001.Orientation(TopAbs_FORWARD); \n\ -V101.Orientation(TopAbs_REVERSED); \n\ -B.Add(EX01,V001); \n\ -B.Add(EX01,V101); \n\ -//Parameters \n\ -B.UpdateVertex(V001,0,EX01,precision); \n\ -B.UpdateVertex(V101,PI,EX01,precision); \n\ -\n\ -//Idem for EX11 \n\ -\n\ -//Build wire and faces \n\ -//Faces normals are along the axis X,Y,Z \n\ -TopoDS_Face FXMIN, FXMAX, FYMIN, FYMAX, FZMIN, FZMAX; \n\ -TopoDS_Wire W; \n\ -Handle (Geom_Plane) P; \n\ -Handle (Geom2d_Line) L2d; \n\ -Handle (Geom2d_Circle) C2d; \n\ -Handle (Geom_CylindricalSurface) S; \n\ -\n\ -//Face FXMAX \n\ -P = new Geom_Plane(gp_Ax2(gp_Pnt(200,0,0),gp_Dir(1,0,0),gp_Dir(0,1,0))); \n\ -B.MakeFace(FXMAX,P,precision); \n\ -//the wire and the edges \n\ -B.MakeWire (W); \n"); -Message += ("\ -\n\ -EY10.Orientation(TopAbs_FORWARD); \n\ -B.Add(W,EY10); \n\ -//pcurve \n\ -L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(1,0)); \n\ -B.UpdateEdge(EY10,L2d,FXMAX,precision); \n\ - \n\ -EZ11.Orientation(TopAbs_FORWARD); \n\ -B.Add(W,EZ11); \n\ -//pcurve \n\ -L2d = new Geom2d_Line(gp_Pnt2d(150,0),gp_Dir2d(0,1)); \n\ -B.UpdateEdge(EZ11,L2d,FXMAX,precision); \n\ - \n\ -EY11.Orientation(TopAbs_REVERSED); \n\ -B.Add(W,EY11); \n\ -//pcurve \n\ -L2d = new Geom2d_Line(gp_Pnt2d(0,100),gp_Dir2d(1,0)); \n\ -B.UpdateEdge(EY11,L2d,FXMAX,precision); \n\ - \n\ -EZ10.Orientation(TopAbs_REVERSED); \n\ -B.Add(W,EZ10); \n\ -//pcurve \n\ -L2d = new Geom2d_Line(gp_Pnt2d(0,0),gp_Dir2d(0,1)); \n\ -B.UpdateEdge(EZ10,L2d,FXMAX,precision); \n\ -\n\ -B.Add(FXMAX,W); \n\ -\n\ -//Idem for other faces... \n\ -\n\ -//Shell \n\ -TopoDS_Shell Sh; \n\ -B.MakeShell(Sh); \n\ -B.Add(Sh,FXMAX); \n\ -B.Add(Sh,FXMIN); \n\ -B.Add(Sh,FYMAX); \n\ -B.Add(Sh,FYMIN); \n\ -B.Add(Sh,FZMAX); \n\ -B.Add(Sh,FZMIN); \n\ -\n\ -// Solid \n\ -TopoDS_Solid Sol; \n\ -B.MakeSolid(Sol); \n\ -B.Add(Sol,Sh); \n\ -\n\ -\n"); - -PocessTextInDialog("Make a shape with a builder", Message); - -} - -void CModelingDoc::OnGeometrie() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - //geometry of a vertex - TopoDS_Vertex aVertex = BRepBuilderAPI_MakeVertex(gp_Pnt(0,120,70)); - gp_Pnt GeometricPoint = BRep_Tool::Pnt(aVertex); - - Handle(AIS_Shape) vert = new AIS_Shape(aVertex); - myAISContext->Display(vert,Standard_False); - Fit(); - Sleep (500); - - //geometry of an edge - TopoDS_Edge anEdge = BRepBuilderAPI_MakeEdge(gp_Pnt(100,50,250),gp_Pnt(-30,-100,-50)); - Handle(AIS_Shape) yellow = new AIS_Shape(anEdge); - myAISContext->SetWidth(yellow,2,Standard_False); - myAISContext->Display(yellow,Standard_False); - Fit(); - Sleep (500); - - TopLoc_Location location; - Standard_Real first, last; - Handle (Geom_Curve) aCurve = BRep_Tool::Curve(anEdge,location,first,last); - TopoDS_Edge anEdgeDS = BRepBuilderAPI_MakeEdge(aCurve); - - Handle (Geom_Line) aLine = Handle (Geom_Line)::DownCast(aCurve); - if (!aLine.IsNull()) { - Handle (AIS_Line) DispLine = new AIS_Line(aLine); - myAISContext->Display(DispLine,Standard_False); - Fit(); - Sleep (500); - } - - //geometry of a face - gp_Pnt P(-20,-20,-20); - gp_Vec V(0,0,1); - Handle(Geom_Plane) Pi=new Geom_Plane(P,V); - Handle(Geom_RectangularTrimmedSurface) Surface=new Geom_RectangularTrimmedSurface(Pi,0.,100.,0.,100.); - TopoDS_Face RedFace = BRepBuilderAPI_MakeFace(Surface, Precision::Confusion()); - - Handle(AIS_Shape) red = new AIS_Shape(RedFace); - myAISContext->SetColor(red,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(red,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(red,Standard_False); - Fit(); - Sleep (500); - - TopLoc_Location location2; - Handle (Geom_Surface) aGeometricSurface = BRep_Tool::Surface(RedFace,location2); - - Handle (Geom_Plane) aPlane = Handle (Geom_Plane)::DownCast(aGeometricSurface); - if (!aPlane.IsNull()) { - Handle (AIS_Plane) DispPlane = new AIS_Plane(aPlane); - myAISContext->Display(DispPlane,Standard_False); - - } - - - Fit(); - Sleep (500); - - - TCollection_AsciiString Message ("\ - \n\ -///////geometry of a vertex \n\ -TopoDS_Vertex aVertex = BRepBuilderAPI_MakeVertex(gp_Pnt(0,120,70)); \n\ -gp_Pnt GeometricPoint = BRep_Tool::Pnt(aVertex); \n\ -\n\ -///////geometry of an edge \n\ -TopoDS_Edge anEdge = BRepBuilderAPI_MakeEdge(gp_Pnt(100,50,250),gp_Pnt(-30,-100,-50)); \n\ -\n\ -TopLoc_Location location; \n\ -Standard_Real first, last; \n\ -Handle (Geom_Curve) aCurve = BRep_Tool::Curve(anEdge,location,first,last); \n\ -TopoDS_Edge anEdgeDS = BRepBuilderAPI_MakeEdge(aCurve); \n\ -\n\ -Handle (Geom_Line) aLine = Handle (Geom_Line)::DownCast(aCurve); \n\ -if (!aLine.IsNull()) { \n\ - Handle (AIS_Line) DispLine = new AIS_Line(aLine); \n\ -} \n\ - \n\ -///////geometry of a face \n\ -gp_Pnt P(-20,-20,-20); \n\ -gp_Vec V(0,0,1); \n\ -Handle(Geom_Plane) Pi=new Geom_Plane(P,V); \n\ -Handle(Geom_RectangularTrimmedSurface) Surface=new Geom_RectangularTrimmedSurface(Pi,0.,100.,0.,100.); \n\ -TopoDS_Face RedFace = BRepBuilderAPI_MakeFace(Surface); \n\ -\n\ -TopLoc_Location location2; \n\ -Handle (Geom_Surface) aGeometricSurface = BRep_Tool::Surface(RedFace,location2); \n\ -\n\ -Handle (Geom_Plane) aPlane = Handle (Geom_Plane)::DownCast(aGeometricSurface); \n\ -if (!aPlane.IsNull()) { \n\ - Handle (AIS_Plane) DispPlane = new AIS_Plane(aPlane); \n\ -} \n\ -\n\ -\n"); - - PocessTextInDialog("Recover the geometry of vertex, edge and face ", Message); - - -} - -void CModelingDoc::OnExplorer() -{ - myAISContext->RemoveAll (false); - - TopoDS_Shape aBox = BRepPrimAPI_MakeBox(100, 100, 100).Shape(); - Standard_Integer j(8); - Handle(AIS_ColoredShape) theBox = new AIS_ColoredShape(aBox); - myAISContext->SetColor(theBox,Quantity_NOC_RED,Standard_False); - myAISContext->SetMaterial(theBox,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(theBox, AIS_Shaded, 0,Standard_False); - Fit(); - Sleep(500); - - for (TopExp_Explorer exp (aBox,TopAbs_FACE);exp.More();exp.Next()) - { - TopoDS_Face aCurrentFace = TopoDS::Face(exp.Current()); - { - Handle(AIS_ColoredDrawer) aSubFaceAspects = theBox->CustomAspects (aCurrentFace); - aSubFaceAspects->SetShadingAspect (new Prs3d_ShadingAspect()); - *aSubFaceAspects->ShadingAspect()->Aspect() = *theBox->Attributes()->ShadingAspect()->Aspect(); - aSubFaceAspects->ShadingAspect()->Aspect()->ChangeFrontMaterial().SetTransparency (0.8f); - myAISContext->Redisplay (theBox, false); - } - - //test the orientation of the current face - TopAbs_Orientation orient = aCurrentFace.Orientation(); - - //Recover the geometric plane - TopLoc_Location location; - Handle (Geom_Surface) aGeometricSurface = BRep_Tool::Surface(aCurrentFace,location); - - Handle (Geom_Plane) aPlane = Handle (Geom_Plane)::DownCast(aGeometricSurface); - - //Build an AIS_Shape with a new color - Handle(AIS_Shape) theMovingFace = new AIS_Shape(aCurrentFace); - Quantity_NameOfColor aCurrentColor = (Quantity_NameOfColor)j; - myAISContext->SetColor(theMovingFace,aCurrentColor,Standard_False); - myAISContext->SetMaterial(theMovingFace,Graphic3d_NOM_PLASTIC,Standard_False); - //Find the normal vector of each face - gp_Pln agpPlane = aPlane->Pln(); - gp_Ax1 norm = agpPlane.Axis(); - gp_Dir dir = norm.Direction(); - gp_Vec move(dir); - - TopLoc_Location aLocation; - Handle (AIS_ConnectedInteractive) theTransformedDisplay = new AIS_ConnectedInteractive(); - theTransformedDisplay->Connect(theMovingFace, aLocation); - - Handle (Geom_Transformation) theMove = new Geom_Transformation(aLocation.Transformation()); - myAISContext->Display(theTransformedDisplay,Standard_False); - myAISContext->UpdateCurrentViewer(); - Sleep (500); - - for (Standard_Integer i=1;i<=30;i++) - { - theMove->SetTranslation(move*i); - if (orient==TopAbs_FORWARD) myAISContext->SetLocation(theTransformedDisplay,TopLoc_Location(theMove->Trsf())); - else myAISContext->SetLocation(theTransformedDisplay,TopLoc_Location(theMove->Inverted()->Trsf())); - - myAISContext->Redisplay(theTransformedDisplay,true); - } - j+=15; - } - - myAISContext->UpdateCurrentViewer(); - Sleep (500); - - TCollection_AsciiString Message ("\ -\n\ -TopoDS_Shape aBox = BRepPrimAPI_MakeBox(100,100,100); \n\ -\n\ -for (TopExp_Explorer exp (aBox,TopAbs_FACE);exp.More();exp.Next()) { \n\ - TopoDS_Face aCurrentFace = TopoDS::Face(exp.Current()); \n\ -\n\ - //Recover the geometric plane \n\ - TopLoc_Location location; \n\ - Handle (Geom_Surface) aGeometricSurface = BRep_Tool::Surface(aCurrentFace,location); \n\ -\n\ - Handle (Geom_Plane) aPlane = Handle (Geom_Plane)::DownCast(aGeometricSurface); \n\ - \n\ -\n"); - PocessTextInDialog("Explode a shape in faces ", Message); - -} - -/* ================================================================================= - ==================== A N A L Y S I S ======================================== - ================================================================================= */ - -void CModelingDoc::OnValid() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TopoDS_Shape S = BRepPrimAPI_MakeBox(200., 300., 150.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepPrimI_MakeBox(200.,300.,150.);\n\ -Standard_Boolean theShapeIsValid = BRepAlgo::IsValid(S);\n\ -if ( theShapeIsValid )\n\ -{\n\ - MessageBox(\"The Shape Is Valid !! \",\"Checking Shape\");\n\ -}\n\ -else\n\ -{\n\ - MessageBox(\"The Shape Is NOT Valid !! \",\"Checking Shape\");\n\ -}\n\ -\n"); - PocessTextInDialog("Check a shape", Message); - - Standard_Boolean theShapeIsValid = BRepAlgo::IsValid(S); - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, theShapeIsValid ? L"The Shape Is Valid !! " : L"The Shape Is NOT Valid !! ", L"Checking Shape", MB_OK); -} - - -void CModelingDoc::OnLinear() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - - TColgp_Array1OfPnt Points1(1,4); - Points1.SetValue(1,gp_Pnt(0,0,0)); - Points1.SetValue(2,gp_Pnt(2,1,0)); - Points1.SetValue(3,gp_Pnt(4,0,0)); - Points1.SetValue(4,gp_Pnt(6,2,0)); - GeomAPI_PointsToBSpline PTBS1(Points1); - Handle(Geom_BSplineCurve) BSC1 = PTBS1.Curve(); - TopoDS_Edge S = BRepBuilderAPI_MakeEdge(BSC1).Edge(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - - - GProp_GProps System; - BRepGProp::LinearProperties(S,System); - gp_Pnt G = System.CentreOfMass (); - Standard_Real Length = System.Mass(); - gp_Mat I = System.MatrixOfInertia(); - - TCollection_ExtendedString string("Length Of all the Edges ="); - TCollection_ExtendedString string1(Length); - - string += string1; - string += "\nCenterOfMass : \n X="; - string1 = G.X(); - string += string1; - string += " Y="; - string1 = G.Y(); - string += string1; - string += " Z="; - string1 = G.Z(); - string += string1; - string +="\n"; - - string += "Matrix of Inertia :\n "; - string1 = I(1,1); - string += string1; - string += " " ; - string1 = I(1,2); - string += string1; - string += " " ; - string1 = I(1,3); - string += string1; - string += "\n " ; - string1 = I(2,1); - string += string1; - string += " " ; - string1 = I(2,2); - string += string1; - string += " " ; - string1 = I(2,3); - string += string1; - string += "\n " ; - string1 = I(3,1); - string += string1; - string += " " ; - string1 = I(3,2); - string += string1; - string += " " ; - string1 = I(3,3); - string += string1; - string += "\n" ; - - TCollection_AsciiString Message ("\ - \n\ -TColgp_Array1OfPnt Points1(1,4);\n\ -Points1.SetValue(1,gp_Pnt(0,0,0));\n\ -Points1.SetValue(2,gp_Pnt(2,1,0));\n\ -Points1.SetValue(3,gp_Pnt(4,0,0));\n\ -Points1.SetValue(4,gp_Pnt(6,2,0));\n\ -GeomAPI_PointsToBSpline PTBS1(Points1);\n\ -Handle(Geom_BSplineCurve) BSC1 = PTBS1.Curve();\n\ -TopoDS_Shape S = BRepBuilderAPI_MakeEdge(BSC1).Edge();\n\ -GProp_GProps System;\n\ -BRepGProp::LinearProperties(S,System);\n\ -gp_Pnt G = System.CentreOfMass ();\n\ -Standard_Real Length = System.Mass();\n\ -gp_Mat I = System.MatrixOfInertia();\n\ -\n"); - PocessTextInDialog("Linear Properties", Message); - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, string.ToWideString(), L"Linear Properties", MB_OK); -} - -void CModelingDoc::OnSurface() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - TColgp_Array1OfPnt Pnts1(1,3); - TColgp_Array1OfPnt Pnts2(1,3); - TColgp_Array1OfPnt Pnts3(1,3); - TColgp_Array1OfPnt Pnts4(1,3); - - Pnts1(1) = gp_Pnt(0,0,0); - Pnts1(2) = gp_Pnt(5,0,0); - Pnts1(3) = gp_Pnt(10,10,0); - - Pnts2(1) = gp_Pnt(10,10,0); - Pnts2(2) = gp_Pnt(5,12,4); - Pnts2(3) = gp_Pnt(0,15,10); - - Pnts3(1) = gp_Pnt(0,15,10); - Pnts3(2) = gp_Pnt(-12,10,11); - Pnts3(3) = gp_Pnt(-10,5,13); - - Pnts4(1) = gp_Pnt(-10,5,13); - Pnts4(2) = gp_Pnt(-2,-2,2); - Pnts4(3) = gp_Pnt(0,0,0); - - GeomAPI_PointsToBSpline PTBS1(Pnts1); - GeomAPI_PointsToBSpline PTBS2(Pnts2); - GeomAPI_PointsToBSpline PTBS3(Pnts3); - GeomAPI_PointsToBSpline PTBS4(Pnts4); - Handle(Geom_BSplineCurve) C1 = PTBS1.Curve(); - Handle(Geom_BSplineCurve) C2 = PTBS2.Curve(); - Handle(Geom_BSplineCurve) C3 = PTBS3.Curve(); - Handle(Geom_BSplineCurve) C4 = PTBS4.Curve(); - - GeomFill_BSplineCurves fill; - fill.Init(C1,C2,C3,C4,GeomFill_CoonsStyle); - Handle(Geom_BSplineSurface) BSS = fill.Surface(); - - TopoDS_Shape S = BRepBuilderAPI_MakeFace(BSS, Precision::Confusion()).Face(); - - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - - - GProp_GProps System; - BRepGProp::SurfaceProperties(S,System); - gp_Pnt G = System.CentreOfMass (); - Standard_Real Area = System.Mass(); - gp_Mat I = System.MatrixOfInertia(); - - TCollection_ExtendedString string("Area Of the Face ="); - TCollection_ExtendedString string1(Area); - - string += string1; - string += "\nCenterOfMass : \n X="; - string1 = G.X(); - string += string1; - string += " Y="; - string1 = G.Y(); - string += string1; - string += " Z="; - string1 = G.Z(); - string += string1; - string +="\n"; - - string += "Matrix of Inertia :\n "; - string1 = I(1,1); - string += string1; - string += " " ; - string1 = I(1,2); - string += string1; - string += " " ; - string1 = I(1,3); - string += string1; - string += "\n " ; - string1 = I(2,1); - string += string1; - string += " " ; - string1 = I(2,2); - string += string1; - string += " " ; - string1 = I(2,3); - string += string1; - string += "\n " ; - string1 = I(3,1); - string += string1; - string += " " ; - string1 = I(3,2); - string += string1; - string += " " ; - string1 = I(3,3); - string += string1; - string += "\n" ; - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepBuilderAPI_MakeFace(BSplineSurf).Face();\n\ -GProp_GProps System;\n\ -BRepGProp::SurfaceProperties(S,System);\n\ -gp_Pnt G = System.CentreOfMass ();\n\ -Standard_Real Area = System.Mass();\n\ -gp_Mat I = System.MatrixOfInertia();\n\ -\n"); - PocessTextInDialog("Surface Properties", Message); - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, string.ToWideString(), L"Surface Properties", MB_OK); - -} - -void CModelingDoc::OnVolume() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - - TopoDS_Shape S = BRepPrimAPI_MakeWedge(60.,100.,80.,20.).Shape(); - Handle(AIS_Shape) ais1 = new AIS_Shape(S); - myAISContext->SetColor(ais1,Quantity_NOC_GREEN,Standard_False); - myAISContext->SetMaterial(ais1,Graphic3d_NOM_PLASTIC,Standard_False); - myAISContext->Display(ais1,Standard_False); - Fit(); - - - GProp_GProps System; - BRepGProp::VolumeProperties(S,System); - gp_Pnt G = System.CentreOfMass (); - Standard_Real Volume = System.Mass(); - gp_Mat I = System.MatrixOfInertia(); - - TCollection_ExtendedString string("Volume Of all the Shape ="); - TCollection_ExtendedString string1(Volume); - - string += string1; - string += "\nCenterOfMass : \n X="; - string1 = G.X(); - string += string1; - string += " Y="; - string1 = G.Y(); - string += string1; - string += " Z="; - string1 = G.Z(); - string += string1; - string +="\n"; - - string += "Matrix of Inertia :\n "; - string1 = I(1,1); - string += string1; - string += " " ; - string1 = I(1,2); - string += string1; - string += " " ; - string1 = I(1,3); - string += string1; - string += "\n " ; - string1 = I(2,1); - string += string1; - string += " " ; - string1 = I(2,2); - string += string1; - string += " " ; - string1 = I(2,3); - string += string1; - string += "\n " ; - string1 = I(3,1); - string += string1; - string += " " ; - string1 = I(3,2); - string += string1; - string += " " ; - string1 = I(3,3); - string += string1; - string += "\n" ; - - TCollection_AsciiString Message ("\ - \n\ -TopoDS_Shape S = BRepBuilderAPI_MakeWedge(60.,100.,80.,20.);;\n\ -GProp_GProps System;\n\ -BRepGProp::VolumeProperties(S,System);\n\ -gp_Pnt G = System.CentreOfMass ();\n\ -Standard_Real Volume = System.Mass();\n\ -gp_Mat I = System.MatrixOfInertia();\n\ -\n"); - PocessTextInDialog("Volume Properties", Message); - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, string.ToWideString(), L"Volume Properties", MB_OK); -} - - -void CModelingDoc::OnButtonFill() -{ - // TODO: Add your command handler code here - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) { - AIS1 = Handle(AIS_Shape)::DownCast(myAISContext->SelectedInteractive()); - myAISContext->Unhilight (AIS1, Standard_True); - myAISContext->Activate(AIS1,2); - myState = SELECT_EDGE_PLATE; - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select hole contour edges and then press right mouse button"); } - else { - AIS_ListOfInteractive LI; - myAISContext->DisplayedObjects(LI); - if(LI.IsEmpty()){ - if(OnFileImportBrep_WithInitDir (L"HoleFilling") == 1) - return; - myAISContext->DisplayedObjects(LI); - myAISContext->SetSelected(LI.First(), Standard_True); - OnButtonFill(); - return; - } - AfxMessageBox (L"Select a shape before!"); - } -} - -void CModelingDoc::OnStopStop() -{ - // TODO: Add your command handler code here - // Stop selection - if (myState == SELECT_EDGE_PLATE ) { - Standard_Integer nbedges = 0; - for (myAISContext->InitSelected(); myAISContext->MoreSelected(); - myAISContext->NextSelected()) { - nbedges++; - - } - Handle(GeomPlate_HArray1OfHCurve) Fronts = - new GeomPlate_HArray1OfHCurve(1, nbedges); - Handle(TColStd_HArray1OfInteger) Tang = - new TColStd_HArray1OfInteger(1,nbedges); - Handle(TColStd_HArray1OfInteger) NbPtsCur = - new TColStd_HArray1OfInteger(1,nbedges); - Standard_Integer i = 0; - TopoDS_Shape S1 = AIS1->Shape(); - TopTools_IndexedDataMapOfShapeListOfShape M; - TopExp::MapShapesAndAncestors(S1, TopAbs_EDGE, TopAbs_FACE, M); - - for (myAISContext->InitSelected(); myAISContext->MoreSelected();myAISContext->NextSelected()) { - i++; - Tang->SetValue(i,1); - NbPtsCur->SetValue(i,10); - TopoDS_Edge E = TopoDS::Edge(myAISContext->SelectedShape()); - TopoDS_Face F = TopoDS::Face(M.FindFromKey(E).First()); - - BRepAdaptor_Surface S(F); - GeomAdaptor_Surface aGAS = S.Surface(); - Handle(GeomAdaptor_Surface) aHGAS = new GeomAdaptor_Surface(aGAS); - - Handle(BRepAdaptor_Curve2d) C = new BRepAdaptor_Curve2d(); - C->Initialize(E,F); - - Adaptor3d_CurveOnSurface ConS(C,aHGAS); - - Handle (Adaptor3d_CurveOnSurface) HConS = new Adaptor3d_CurveOnSurface(ConS); - Fronts->SetValue(i,HConS); - } - GeomPlate_BuildPlateSurface abuildplate(NbPtsCur,Fronts,Tang,3); - abuildplate.Perform(); - if (!abuildplate.IsDone()){ // New in 2.0 - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : Build plate not valid!", L"CasCade Error", MB_ICONERROR); - return; - } - Handle(GeomPlate_Surface) aplate = abuildplate.Surface(); - - GeomPlate_MakeApprox aMKS(aplate, Precision::Approximation(), 4, 7, 0.001, 1); - Handle(Geom_BSplineSurface) support = aMKS.Surface(); - BRepBuilderAPI_MakeWire MW; - TopTools_Array1OfShape tab(1,nbedges); - for (i=1 ; i<=nbedges ; i++) { - if (abuildplate.Sense()->Value(abuildplate.Order()->Value(i))==1) { - BRepBuilderAPI_MakeEdge ME(abuildplate.Curves2d()->Value(abuildplate.Order()->Value(i)), - support, - Fronts->Value(abuildplate.Order()->Value(i))->LastParameter(), - Fronts->Value(abuildplate.Order()->Value(i))->FirstParameter()); - TopoDS_Edge E = ME.Edge(); - BRepLib::BuildCurves3d(E); - tab(abuildplate.Order()->Value(i)) = E; - //MW.Add(E); - } - else { - BRepBuilderAPI_MakeEdge ME(abuildplate.Curves2d()->Value(abuildplate.Order()->Value(i)), - support, - Fronts->Value(abuildplate.Order()->Value(i))->FirstParameter(), - Fronts->Value(abuildplate.Order()->Value(i))->LastParameter()); - TopoDS_Edge E = ME.Edge(); - BRepLib::BuildCurves3d(E); - tab(abuildplate.Order()->Value(i)) = E; - } - } - for (i=1 ; i<=nbedges ; i++) - MW.Add(TopoDS::Edge(tab(i))); - TopoDS_Wire W; - try{ - W=MW.Wire(); - } - - catch(StdFail_NotDone) - { - AfxMessageBox (L"Can't build wire!"); - return; - } - - if (!(W.Closed())){ - AfxMessageBox (L"Wire is not closed!"); - return; - //throw Standard_Failure("Wire is not closed"); - - } - BRepBuilderAPI_MakeFace MF(support,W,Standard_True); - TopoDS_Face aface; - aface = MF.Face(); - BRepTopAdaptor_FClass2d clas2d(aface,Precision::Confusion()); - if (clas2d.PerformInfinitePoint() == TopAbs_IN) { - W.Reverse(); - BRepBuilderAPI_MakeFace MF1(support,W,Standard_True); - aface = MF1.Face(); - } - if (!BRepAlgo::IsValid(aface)) - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : The plate face is not valid!", L"CasCade Error", MB_ICONERROR); - myState = -1; - Handle(AIS_Shape) anAISShape = new AIS_Shape(aface); - myAISContext->SetColor (anAISShape,Quantity_NOC_AZURE, Standard_False); - myAISContext->SetMaterial (anAISShape, Graphic3d_NOM_SILVER, Standard_False); - myAISContext->SetDisplayMode (anAISShape, 1, Standard_False); - myAISContext->Display (anAISShape, Standard_True); - } -} - -void CModelingDoc::OnFillwithtang() -{ - static BOOL flag = 0; - if (flag == 1){ - flag = 0; - Handle(AIS_InteractiveObject) aObject; - myAISContext ->InitSelected(); - if(myAISContext->MoreSelected()) - aObject = myAISContext->SelectedInteractive(); - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select a file with second face"); - if(OnFileImportBrep_WithInitDir (L"TangentSurface") == 1){ - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage(""); - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - myAISContext->UpdateCurrentViewer(); - return; - } - myAISContext->SetSelected(aObject, Standard_True); - } - - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) { - Handle(AIS_Shape) ashape = Handle(AIS_Shape)::DownCast(myAISContext->SelectedInteractive()); - try { - THE_F1 = TopoDS::Face(ashape->Shape()); - } - catch(Standard_Failure){} - if (THE_F1.IsNull()) - { - AfxMessageBox (L"Current object is not a face!\n\ -Please, select a face to continue\nthe creation of a tangent surface."); - return; - } - myAISContext->Activate(ashape,2); - myState = SELECT_EDGE_PLATE_TGTES_1; - - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select an edge on the first face"); - } - else { - AIS_ListOfInteractive LI; - myAISContext->DisplayedObjects(LI); - if(LI.IsEmpty()){ - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select a file with first face"); - if(OnFileImportBrep_WithInitDir (L"TangentSurface") == 1){ - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage(""); - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove(aListIterator.Value(), Standard_False); - } - myAISContext->UpdateCurrentViewer(); - return; - } - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage(""); - myAISContext->DisplayedObjects(LI); - myAISContext->SetSelected (LI.First(), Standard_True); - Sleep(700); - flag = 1; - OnFillwithtang(); - return; - } - AfxMessageBox (L"Select a face before"); - } -} - -void CModelingDoc::InputEvent(const Standard_Integer /*x*/, - const Standard_Integer /*y*/, - const Handle(V3d_View)& /*aView*/) -{ - myAISContext->SelectDetected(); - myAISContext->UpdateCurrentViewer(); - - if (myState == SELECT_EDGE_PLATE_TGTES_1) { - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) { - THE_E1 = TopoDS::Edge(myAISContext->SelectedShape()); - myState = SELECT_EDGE_PLATE_TGTES_2; - - AIS_ListOfInteractive aLI; - myAISContext->DisplayedObjects(aLI); - if(aLI.Extent() == 2){ - myState = SELECT_EDGE_PLATE_TGTES_2; - if (myAISContext->IsSelected(aLI.First())) - myAISContext->SetSelected (aLI.Last(), Standard_True); - else - myAISContext->SetSelected (aLI.First(), Standard_True); - myAISContext->InitSelected(); - Handle(AIS_Shape) ashape = Handle(AIS_Shape)::DownCast(myAISContext->SelectedInteractive()); - THE_F2 = TopoDS::Face(ashape->Shape()); - myAISContext->Activate(ashape,2); - myState = SELECT_EDGE_PLATE_TGTES_3; - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select an edge on the second face"); - return; - } - - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select second face"); - AIS_ListOfInteractive LI; - myAISContext->DisplayedObjects(LI); - if(LI.Extent() == 1){ - if(OnFileImportBrep_WithInitDir (L"TangentSurface") == 1) - return; - } - } - else - AfxMessageBox (L"Select an edge on the face!"); - - } - else if (myState == SELECT_EDGE_PLATE_TGTES_2) { - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) { - Handle(AIS_Shape) ashape = Handle(AIS_Shape)::DownCast(myAISContext->SelectedInteractive()); - THE_F2 = TopoDS::Face(ashape->Shape()); - myAISContext->Activate(ashape,2); - myState = SELECT_EDGE_PLATE_TGTES_3; - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select an edge on the second face"); - } - else - AfxMessageBox (L"Select the second face!"); - } - else if (myState == SELECT_EDGE_PLATE_TGTES_3) { - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) { - THE_E2 = TopoDS::Edge(myAISContext->SelectedShape()); - - Standard_Integer i, nbPntsOnFaces=10; - Standard_Real u,First, Last, Delta, Tol=0.001, TolProj; - Plate_Plate aPlate; - gp_Vec V1,V2,W1,W2; - gp_Pnt2d P2d; - gp_Pnt P, PP; - - //get the pcurve, curve and surface - BRepAdaptor_Curve Curve3d1(THE_E1), Curve3d2(THE_E2); - BRepAdaptor_Curve2d Curve2d1(THE_E1,THE_F1), Curve2d2(THE_E2,THE_F2); - BRepAdaptor_Surface Surf1(THE_F1), Surf2(THE_F2); - - //compute the average plane : initial surface - Handle(TColgp_HArray1OfPnt) theTanPoints = new - TColgp_HArray1OfPnt (1,2*nbPntsOnFaces ); - - Delta = (Curve3d1.LastParameter()-Curve3d1.FirstParameter())/(nbPntsOnFaces-1); - for (u=Curve3d1.FirstParameter(),i=1;i<=nbPntsOnFaces; i++,u+=Delta) - theTanPoints->SetValue(i,Curve3d1.Value(u)); - - Delta = (Curve3d2.LastParameter()-Curve3d2.FirstParameter())/(nbPntsOnFaces-1); - for (u=Curve3d2.FirstParameter(),i=1;i<=nbPntsOnFaces; i++,u+=Delta) - theTanPoints->SetValue(nbPntsOnFaces+i,Curve3d2.Value(u)); - - //Building an initial plane - GeomPlate_BuildAveragePlane aMkPlane (theTanPoints,int(Tol),1,1,1); - Handle(Geom_Plane) aPlane = aMkPlane.Plane(); - gp_Pln aPln = aPlane->Pln(); - gp_XYZ aNormale = aPln.Axis().Direction().XYZ(); - gp_Trsf aTrsf; // to compute the U and V of the points - aTrsf.SetTransformation(aPln.Position()); - - aPlane->D1(0,0,P,W1,W2); // extract plane DU & DV - - // 1st surface tangencies constraints - Delta = (Curve3d1.LastParameter()-Curve3d1.FirstParameter())/(nbPntsOnFaces-1); - for (u=Curve3d1.FirstParameter(),i=1; i<=nbPntsOnFaces; i++,u+=Delta) { - P = Curve3d1.Value(u).Transformed(aTrsf); - gp_XY UV(P.X(),P.Y()); - aPlate.Load(Plate_PinpointConstraint(UV,aNormale*P.Z())); - Curve2d1.D0(u,P2d); - Surf1.D1(P2d.X(),P2d.Y(),P,V1,V2); // extract surface UV of the point - aPlate.Load(Plate_GtoCConstraint(UV, - Plate_D1(W1.XYZ(),W2.XYZ()), - Plate_D1(V1.XYZ(),V2.XYZ()))); - } - // 2nd surface - Delta = (Curve3d2.LastParameter()-Curve3d2.FirstParameter())/(nbPntsOnFaces-1); - for (u=Curve3d2.FirstParameter(),i=1; i<=nbPntsOnFaces; i++,u+=Delta) { - P = Curve3d2.Value(u).Transformed(aTrsf); - gp_XY UV(P.X(),P.Y()); - aPlate.Load(Plate_PinpointConstraint(UV,aNormale*P.Z())); - - Curve2d2.D0(u,P2d); - Surf2.D1(P2d.X(),P2d.Y(),P,V1,V2); - aPlate.Load(Plate_GtoCConstraint(UV, - Plate_D1(W1.XYZ(),W2.XYZ()), - Plate_D1(V1.XYZ()*-1,V2.XYZ()*-1))); - } - - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Select a file with passing points"); - //Some passing points - CFileDialog dlg(TRUE, - NULL, - NULL, - OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, - L"Points Files (*.pass)|*.pass; |All Files (*.*)|*.*||", - NULL); - - CString initdir; - initdir.GetEnvironmentVariable (L"CSF_OCCTDataPath"); - initdir += L"\\occ"; - - dlg.m_ofn.lpstrInitialDir = initdir; - - if (dlg.DoModal() == IDOK) - { - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Building the tangent surface..."); - SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); - CString filename = dlg.GetPathName(); - std::filebuf fic; - std::istream in(&fic); - if (!fic.open(filename, std::ios::in)) - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : Unable to open file", L"CasCade Error", MB_ICONERROR); - Standard_Real x,y,z; - BRep_Builder B; - TopoDS_Compound C; - B.MakeCompound(C); - while (!in.fail()|| !in.eof()){ - if (in >> x && in >> y && in >> z){ - PP = gp_Pnt(x, y, z); - P = PP.Transformed(aTrsf); - aPlate.Load(Plate_PinpointConstraint(gp_XY(P.X(),P.Y()), - aNormale*P.Z())); - BRepBuilderAPI_MakeVertex V(PP); - B.Add(C,V.Vertex()); - } - } - fic.close(); - Handle(AIS_Shape) anAISCompound = new AIS_Shape(C); - myAISContext->Display(anAISCompound, Standard_False); - Fit(); - Sleep(500); - } - SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage("Building the tangent surface..."); - //Solving ... - Standard_Integer Order = 3; // constraints continuity + 2 - aPlate.SolveTI(Order,1.); - if (!aPlate.IsDone()){ - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : Build plate not valid!", L"CasCade Error", MB_ICONERROR); - return; - } - //Plate Surface creation - Handle(GeomPlate_Surface) aPlateSurface = new GeomPlate_Surface(aPlane,aPlate); - //BSplineSurface approximation - GeomPlate_MakeApprox aMkSurf(aPlateSurface,Tol,1,8,0.1,1); - Handle(Geom_Surface) theSurface =aMkSurf.Surface(); - - // Face building ... - Handle(Geom2d_Curve)C1,C2,C3,C4; - Handle(Geom_Curve)C; - C = BRep_Tool::Curve(THE_E1,First,Last); - TolProj = 0.01; - C1 = GeomProjLib::Curve2d(C,First,Last,theSurface,TolProj); - TopoDS_Edge Ed1 = BRepBuilderAPI_MakeEdge(C1,theSurface).Edge(); - - C = BRep_Tool::Curve(THE_E2,First,Last); - TolProj = 0.01; - C3 = GeomProjLib::Curve2d(C,First,Last,theSurface,TolProj); - TopoDS_Edge Ed3 = BRepBuilderAPI_MakeEdge(C3,theSurface).Edge(); - - C2 = GCE2d_MakeSegment(C1->Value(C1->FirstParameter()), - C3->Value(C3->FirstParameter())).Value(); - TopoDS_Edge Ed2 = BRepBuilderAPI_MakeEdge(C2,theSurface).Edge(); - C4 = GCE2d_MakeSegment(C1->Value(C1->LastParameter()), - C3->Value(C3->LastParameter())).Value(); - TopoDS_Edge Ed4 = BRepBuilderAPI_MakeEdge(C4,theSurface).Edge(); - Ed2.Reverse(); - Ed3.Reverse(); - TopoDS_Wire theWire = BRepBuilderAPI_MakeWire(Ed1,Ed2,Ed3,Ed4); - TopoDS_Face theFace = BRepBuilderAPI_MakeFace(theWire); - BRepLib::BuildCurves3d(theFace); - if (!BRepAlgo::IsValid(theFace)){ - C2 = GCE2d_MakeSegment(C1->Value(C1->LastParameter()), - C3->Value(C3->FirstParameter())).Value(); - Ed2 = BRepBuilderAPI_MakeEdge(C2,theSurface).Edge(); - C4 = GCE2d_MakeSegment(C3->Value(C3->LastParameter()), - C1->Value(C1->FirstParameter())).Value(); - Ed4 = BRepBuilderAPI_MakeEdge(C4,theSurface).Edge(); - Ed3.Reverse(); - theWire = BRepBuilderAPI_MakeWire(Ed1,Ed2,Ed3,Ed4); - theFace = BRepBuilderAPI_MakeFace(theWire); - BRepLib::BuildCurves3d(theFace); - if (!BRepAlgo::IsValid(theFace)) - MessageBoxW (AfxGetApp()->m_pMainWnd->m_hWnd, L"Error : The plate surface is not valid!!!", L"CasCade Error", MB_ICONERROR); - } - - Handle(AIS_Shape) anAISShape=new AIS_Shape(theFace); - myAISContext->SetColor (anAISShape, Quantity_NOC_BLUE1, Standard_False); - myAISContext->SetMaterial (anAISShape, Graphic3d_NOM_SILVER, Standard_False); - myAISContext->SetDisplayMode (anAISShape, 1, Standard_False); - myAISContext->Display (anAISShape, Standard_False); - myState = -1; - } - else - AfxMessageBox (L"Select an edge on the second face!"); - ((OCC_MainFrame*)AfxGetMainWnd())->SetStatusMessage(""); - - } -} - -void CModelingDoc::Popup(const Standard_Integer x, - const Standard_Integer y , - const Handle(V3d_View)& aView) -{ - Standard_Integer PopupMenuNumber=0; - myAISContext->InitSelected(); - if (myState == SELECT_EDGE_PLATE) - PopupMenuNumber=2; - else if (myAISContext->MoreSelected()) - PopupMenuNumber=1; - - CMenu menu; - VERIFY(menu.LoadMenu(IDR_Popup3D)); - CMenu* pPopup = menu.GetSubMenu(PopupMenuNumber); - ASSERT(pPopup != NULL); - - if (PopupMenuNumber == 1) // more than 1 object. - { - bool OneOrMoreInShading = false; - for (myAISContext->InitSelected();myAISContext->MoreSelected ();myAISContext->NextSelected ()) - if (myAISContext->IsDisplayed(myAISContext->SelectedInteractive(),1)) OneOrMoreInShading=true; - if(!OneOrMoreInShading) - pPopup->EnableMenuItem(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); - } - - - POINT winCoord = { x , y }; - Handle(WNT_Window) aWNTWindow= - Handle(WNT_Window)::DownCast(aView->Window()); - ClientToScreen ( (HWND)(aWNTWindow->HWindow()),&winCoord); - pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , winCoord.x, winCoord.y , - AfxGetMainWnd()); -} diff --git a/samples/mfc/standard/02_Modeling/src/ModelingDoc.h b/samples/mfc/standard/02_Modeling/src/ModelingDoc.h deleted file mode 100755 index e769ff2d13..0000000000 --- a/samples/mfc/standard/02_Modeling/src/ModelingDoc.h +++ /dev/null @@ -1,99 +0,0 @@ -// ModelingDoc.h : interface of the CModelingDoc class -// -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_MODELINGDOC_H__30453389_3E75_11D7_8611_0060B0EE281E__INCLUDED_) -#define AFX_MODELINGDOC_H__30453389_3E75_11D7_8611_0060B0EE281E__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include - -class CModelingDoc : public OCC_3dDoc -{ - -protected: // create from serialization only - CModelingDoc(); - DECLARE_DYNCREATE(CModelingDoc) - -public: - virtual ~CModelingDoc(); - - void InputEvent (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - void Popup (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - -// Generated message map functions -protected: - //{{AFX_MSG(CModelingDoc) - afx_msg void OnMirror(); - afx_msg void OnMirroraxis(); - afx_msg void OnRotate(); - afx_msg void OnScale(); - afx_msg void OnTranslation(); - afx_msg void OnDisplacement(); - afx_msg void OnDeform(); - afx_msg void OnBox(); - afx_msg void OnCylinder(); - afx_msg void OnCone(); - afx_msg void OnSphere(); - afx_msg void OnTorus(); - afx_msg void OnWedge(); - afx_msg void OnPrism(); - afx_msg void OnRevol(); - afx_msg void OnPipe(); - afx_msg void OnThru(); - afx_msg void OnEvolved(); - afx_msg void OnDraft(); - afx_msg void OnCut(); - afx_msg void OnFuse(); - afx_msg void OnSection(); - afx_msg void OnCommon(); - afx_msg void OnPsection(); - afx_msg void OnBlend(); - afx_msg void OnChamf(); - afx_msg void OnEvolvedblend(); - afx_msg void OnPrismLocal(); - afx_msg void OnRevolLocal(); - afx_msg void OnGlueLocal(); - afx_msg void OnDprismLocal(); - afx_msg void OnPipeLocal(); - afx_msg void OnLinearLocal(); - afx_msg void OnSplitLocal(); - afx_msg void OnThickLocal(); - afx_msg void OnOffsetLocal(); - afx_msg void OnVertex(); - afx_msg void OnEdge(); - afx_msg void OnWire(); - afx_msg void OnFace(); - afx_msg void OnShell(); - afx_msg void OnCompound(); - afx_msg void OnGeometrie(); - afx_msg void OnSewing(); - afx_msg void OnExplorer(); - afx_msg void OnBuilder(); - afx_msg void OnValid(); - afx_msg void OnLinear(); - afx_msg void OnVolume(); - afx_msg void OnSurface(); - afx_msg void OnFillwithtang(); - afx_msg void OnButtonFill(); - afx_msg void OnStopStop(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -public: - int myState; -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_MODELINGDOC_H__30453389_3E75_11D7_8611_0060B0EE281E__INCLUDED_) diff --git a/samples/mfc/standard/02_Modeling/src/State.h b/samples/mfc/standard/02_Modeling/src/State.h deleted file mode 100755 index f2aa745ad5..0000000000 --- a/samples/mfc/standard/02_Modeling/src/State.h +++ /dev/null @@ -1,6 +0,0 @@ -enum STATE { - SELECT_EDGE_PLATE, - SELECT_EDGE_PLATE_TGTES_1, - SELECT_EDGE_PLATE_TGTES_2, - SELECT_EDGE_PLATE_TGTES_3 -}; diff --git a/samples/mfc/standard/02_Modeling/src/StdAfx.cpp b/samples/mfc/standard/02_Modeling/src/StdAfx.cpp deleted file mode 100755 index 1e73c2182f..0000000000 --- a/samples/mfc/standard/02_Modeling/src/StdAfx.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// SampleTopologyTransformations.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - - -#include "stdafx.h" - diff --git a/samples/mfc/standard/02_Modeling/src/StdAfx.h b/samples/mfc/standard/02_Modeling/src/StdAfx.h deleted file mode 100755 index 679ce6dad5..0000000000 --- a/samples/mfc/standard/02_Modeling/src/StdAfx.h +++ /dev/null @@ -1,142 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers - -#ifndef NOMINMAX - #define NOMINMAX // Prevent Windows from defining min/max macros -#endif - -#include // MFC core and standard components -#include // MFC extensions -#include // MFC OLE automation classes -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - -#pragma warning( disable : 4244 ) // Issue warning 4244 -#include "Standard_ShortReal.hxx" -#pragma warning( default : 4244 ) // Issue warning 4244 - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "ISession_Direction.h" - -#include -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - diff --git a/samples/mfc/standard/03_ImportExport/CMakeLists.txt b/samples/mfc/standard/03_ImportExport/CMakeLists.txt deleted file mode 100644 index a7dba8671b..0000000000 --- a/samples/mfc/standard/03_ImportExport/CMakeLists.txt +++ /dev/null @@ -1,65 +0,0 @@ -# Caution! Be careful, when increase minimal cmake version: -# using of newer version may leads (by default) to applying -# of some new policies. It may break compilation. -# For canceling of applying new policies use: -# cmake_policy(PUSH) before `cmake_minimum_required` -# and cmake_policy(POP) after. -cmake_minimum_required (VERSION 3.1 FATAL_ERROR) - -project (ImportExport) - -add_definitions (-DWINVER=0x0501 -DUNICODE -D_UNICODE) -set (CMAKE_MFC_FLAG 2) - -set (ImportExport_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport/src) -set (ImportExport_HEADER_FILES ${ImportExport_SRC_DIR}/ColoredShapes.h - ${ImportExport_SRC_DIR}/ImportExportApp.h - ${ImportExport_SRC_DIR}/ImportExportDoc.h - ${ImportExport_SRC_DIR}/StdAfx.h ) -set (ImportExport_SOURCE_FILES ${ImportExport_SRC_DIR}/ColoredShapes.cpp - ${ImportExport_SRC_DIR}/ImportExportApp.cpp - ${ImportExport_SRC_DIR}/ImportExportDoc.cpp - ${ImportExport_SRC_DIR}/StdAfx.cpp) - -set (ImportExport_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport/res) -set (ImportExport_RESOURCE_HEADER ${ImportExport_RESOURCE_DIR}/resource.h) -set (ImportExport_RESOURCE_FILES ${ImportExport_RESOURCE_DIR}/Toolbar.bmp - ${ImportExport_RESOURCE_DIR}/ImportExport.rc) - -# groups in the VS solution -source_group ("Source Files" FILES ${ImportExport_SOURCE_FILES} - ${COMMON_WINMAIN_FILE}) - -source_group ("Header Files" FILES ${ImportExport_HEADER_FILES} - ${ImportExport_RESOURCE_HEADER}) - -source_group ("Resource Files" FILES ${ImportExport_RESOURCE_FILES}) - -add_executable (ImportExport WIN32 ${ImportExport_SOURCE_FILES} - ${ImportExport_HEADER_FILES} - ${COMMON_WINMAIN_FILE} - ${ImportExport_RESOURCE_HEADER} - ${ImportExport_RESOURCE_FILES}) - -set_property (TARGET ImportExport PROPERTY FOLDER "Samples/mfc") - -if (SINGLE_GENERATOR) - install (TARGETS ImportExport DESTINATION "${INSTALL_DIR_BIN}") -else() - install (TARGETS ImportExport - CONFIGURATIONS Release RelWithDebInfo - DESTINATION "${INSTALL_DIR_BIN}") - install (TARGETS ImportExport - CONFIGURATIONS Debug - DESTINATION "${INSTALL_DIR_BIN}d") -endif() - -include_directories (${CMAKE_BINARY_DIR}/inc - ${MFC_STANDARD_SAMPLES_DIR}/03_ImportExport - ${ImportExport_SRC_DIR} - ${MFC_STANDARD_SAMPLES_DIR}/Common) - -target_link_libraries (ImportExport mfcsample) - -set (CMAKE_CXX_STANDARD 17) -set (CMAKE_CXX_STANDARD_REQUIRED ON) \ No newline at end of file diff --git a/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj b/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj deleted file mode 100644 index f56d8338be..0000000000 --- a/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj +++ /dev/null @@ -1,360 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {1C9A05AE-AF5A-4ACE-9A72-83436D77504C} - ImportExport - MFCProj - - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ../../../../win32\$(VCFMT)\bin\ - .\win32\obj\ - false - ../../../../win64\$(VCFMT)\bin\ - .\win64\objd\ - false - ../../../../win32\$(VCFMT)\bind\ - .\win32\objd\ - true - ../../../../win64\$(VCFMT)\bind\ - .\win64\objd\ - true - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\obj/ImportExport.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win32\obj/ImportExport.pch - .\win32\obj/ - .\win32\obj/ - .\win32\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bin/ImportExport.exe - true - ..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win32\$(VCFMT)\bin/ImportExport.pdb - Windows - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\obj/ImportExport.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win64\obj/ImportExport.pch - .\win64\obj/ - .\win64\obj/ - .\win64\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bin/ImportExport.exe - true - ..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win64\$(VCFMT)\bin/ImportExport.pdb - Windows - MachineX64 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\objd/ImportExport.tlb - - - - - Disabled - ..\..\..\;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win32\objd/ImportExport.pch - .\win32\objd/ - .\win32\objd/ - .\win32\objd/ - Level4 - true - EditAndContinue - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bind/ImportExport.exe - true - ..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win32\$(VCFMT)\bind/ImportExport.pdb - Windows - MachineX86 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\objd/ImportExport.tlb - - - - - Disabled - ..\..\..\;..\..\..\src;..\..\..\..\Common;$(CSF_OCCTIncludePath);%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win64\objd/ImportExport.pch - .\win64\objd/ - .\win64\objd/ - .\win64\objd/ - Level4 - true - ProgramDatabase - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKDEVRML.lib;TKDESTL.lib;TKBrep.lib;TKDEIGES.lib;TKShHealing.lib;TKDESTEP.lib;TKXSBase.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;TKLCAF.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bind/ImportExport.exe - true - ..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win64\$(VCFMT)\bind/ImportExport.pdb - Windows - MachineX64 - - - - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - - - - - - - - - - - - - - - {2d6cbbe8-6965-4016-b503-0d715ae26691} - false - - - - - - \ No newline at end of file diff --git a/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj.filters b/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj.filters deleted file mode 100644 index 9e69403a74..0000000000 --- a/samples/mfc/standard/03_ImportExport/adm/win/vc10/ImportExport.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - {6fe93ff4-3fc7-4248-af1c-9d15b9b1904d} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {0387f39d-921d-4c19-9e7d-d397e90e235a} - h;hpp;hxx;hm;inl - - - {116ea642-b0c0-4973-bfbc-4814645fe955} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/samples/mfc/standard/03_ImportExport/res/ImportExport.rc b/samples/mfc/standard/03_ImportExport/res/ImportExport.rc deleted file mode 100644 index f7bada86ef..0000000000 --- a/samples/mfc/standard/03_ImportExport/res/ImportExport.rc +++ /dev/null @@ -1,286 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" -#include "..\..\Common\res\OCC_Resource.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "#include ""..\\..\\Common\\res\\OCC_Resource.h""\0" -END - -3 TEXTINCLUDE -BEGIN - "#define _AFX_NO_SPLITTER_RESOURCES\r\n" - "#define _AFX_NO_OLE_RESOURCES\r\n" - "#define _AFX_NO_TRACKER_RESOURCES\r\n" - "#define _AFX_NO_PROPERTY_RESOURCES\r\n" - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" - "#ifdef _WIN32\r\n" - "LANGUAGE 9, 1\r\n" - "#pragma code_page(1252)\r\n" - "#endif\r\n" - "#include ""afxres.rc"" // Standard components\r\n" - "#endif\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDR_MAINFRAME BITMAP "Toolbar.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Toolbar -// - -IDR_MAINFRAME TOOLBAR 20, 20 -BEGIN - BUTTON ID_FILE_NEW - SEPARATOR - BUTTON ID_BOX - BUTTON ID_Cylinder - SEPARATOR - BUTTON ID_FILE_IMPORT_BREP - BUTTON ID_FILE_IMPORT_IGES - BUTTON ID_FILE_IMPORT_STEP - SEPARATOR - BUTTON ID_FILE_EXPORT_BREP - BUTTON ID_FILE_EXPORT_IGES - BUTTON ID_FILE_EXPORT_STEP - BUTTON ID_FILE_EXPORT_STL - BUTTON ID_FILE_EXPORT_VRML - SEPARATOR - BUTTON ID_FILE_EXPORT_IMAGE - SEPARATOR - BUTTON ID_BUTTON_STEREO - SEPARATOR - BUTTON ID_APP_ABOUT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MAINFRAME MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN - MENUITEM SEPARATOR - MENUITEM "Recent File", ID_FILE_MRU_FILE12 - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Help" - BEGIN - MENUITEM "&About ImportExport...", ID_APP_ABOUT - END -END - -IDR_3DTYPE MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&New\tCtrl+N", ID_FILE_NEW - MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN - MENUITEM "&Close", ID_FILE_CLOSE - MENUITEM SEPARATOR - MENUITEM "&Save...\tCtrl+S", ID_FILE_SAVE - MENUITEM "Save As...", ID_FILE_SAVE_AS - MENUITEM SEPARATOR - POPUP "Import" - BEGIN - MENUITEM "BREP...", ID_FILE_IMPORT_BREP - MENUITEM "STEP...", ID_FILE_IMPORT_STEP - MENUITEM "IGES...", ID_FILE_IMPORT_IGES - END - POPUP "Export" - BEGIN - MENUITEM "BREP...", ID_FILE_EXPORT_BREP - MENUITEM "STEP...", ID_FILE_EXPORT_STEP - MENUITEM "IGES...", ID_FILE_EXPORT_IGES - MENUITEM "STL...", ID_FILE_EXPORT_STL - MENUITEM "VRML...", ID_FILE_EXPORT_VRML - MENUITEM SEPARATOR - MENUITEM "Image...", ID_FILE_EXPORT_IMAGE - END - MENUITEM SEPARATOR - MENUITEM "Recent File", ID_FILE_MRU_FILE1 - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&View" - BEGIN - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - END - POPUP "&Window" - BEGIN - MENUITEM "New Window", ID_WINDOW_NEW - MENUITEM "&Cascade", ID_WINDOW_CASCADE - MENUITEM "&Tile", ID_WINDOW_TILE_HORZ - MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE - END - POPUP "&Help" - BEGIN - MENUITEM "&About ImportExport...", ID_APP_ABOUT - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "CompanyName", "Matra Datavision" - VALUE "FileDescription", "SampleImportExport MFC Application" - VALUE "FileVersion", "1, 0, 0, 1" - VALUE "InternalName", "SampleImportExport" - VALUE "LegalCopyright", "Copyright (C) 1998" - VALUE "OriginalFilename", "SampleImportExport.EXE" - VALUE "ProductName", "SampleImportExport Application" - VALUE "ProductVersion", "1, 0, 0, 1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_FILESAVESTEP DIALOG 0, 0, 288, 165 -STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -FONT 8, "MS Sans Serif" -BEGIN - GROUPBOX "",1119,7,7,274,126,NOT WS_VISIBLE - COMBOBOX IDC_FSaveSTEP_Type,80,138,127,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDR_MAINFRAME "ImportExport" - IDR_3DTYPE "\nImportExport\nImportExport\n\n\nImportExport.Document\nImportExport Document" -END - -STRINGTABLE -BEGIN - ID_BOX "Create a box\nBox" - ID_Cylinder "Create a cylinder\nCylinder" -END - -STRINGTABLE -BEGIN - ID_FILE_OPEN "Open file\nOpen" - ID_FILE_SAVE "Save File\nSave" - ID_FILE_SAVE_AS "Save file as...\nSave As" -END - -STRINGTABLE -BEGIN - ID_FILE_MRU_FILE1 "Open recent file\nRecent file" -END - -STRINGTABLE -BEGIN - ID_BUTTON_STEREO "Toggle stereographic mode on / off" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#define _AFX_NO_SPLITTER_RESOURCES -#define _AFX_NO_OLE_RESOURCES -#define _AFX_NO_TRACKER_RESOURCES -#define _AFX_NO_PROPERTY_RESOURCES - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE 9, 1 -#pragma code_page(1252) -#endif -#include "afxres.rc" // Standard components -#endif -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/samples/mfc/standard/03_ImportExport/res/Toolbar.bmp b/samples/mfc/standard/03_ImportExport/res/Toolbar.bmp deleted file mode 100644 index b521a8d2efebcc6543efe9669a13b933a7da3cda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2918 zcmeHIv1%JZ5FJ6x%29A~5IBEAN`VU(>B5m~97rSZ2ZYose90VfFbl$H%e4N5RE87@ zs8L}^Bxx0pZd`r;XorlDuWvT5f#E zQma`Ipg`5~F_cp)-l;cms$MHC@263MibjMBK_zm`f(B`Y%5q$*<0cK8hD(ajih{ku z8&;_raA`&nsv0_KQej7Jr_a?m~m{Sx78;UD* zoaKlbIv(d^&d1{nT!_g?j%xn|T;}$yFUIc`mwNJY#zP~uTA*~rr+7Q1sl)~7cOLdO zpzyCh;gWFnJBIT1Dz7ir2x)5O9> z?log2F818SLoKx%uG<|kua_Oky(^@e1{Otiph5JaagO9{T z+#y5lxQMY<>wb?CAYYsy$In&*bi5l)s`w=8Zgu_@TNhz4OZ5_Ck+gNBLGwlf=!dD9 V-jMD_Zzy-B`i1JOJWN^<_yc|uz_|bb diff --git a/samples/mfc/standard/03_ImportExport/res/resource.h b/samples/mfc/standard/03_ImportExport/res/resource.h deleted file mode 100644 index 59e19b5d1d..0000000000 --- a/samples/mfc/standard/03_ImportExport/res/resource.h +++ /dev/null @@ -1,25 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by ImportExport.rc -// -#define ID_FILE_OPEN32803 32803 -#define ID_BOX 32804 -#define ID_Cylinder 32806 -#define ID_FILE_OPEN32807 32807 -#define ID_FILE_SAVEAS 32808 -#define ID_FILE_SAVE32809 32809 -#define ID_FILE_RECENTFILE 32810 -#define ID_FILE_EXPORT_STL 32896 -#define ID_FILE_EXPORT_VRML 32897 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_3D_CONTROLS 1 -#define _APS_NEXT_RESOURCE_VALUE 178 -#define _APS_NEXT_COMMAND_VALUE 32811 -#define _APS_NEXT_CONTROL_VALUE 1505 -#define _APS_NEXT_SYMED_VALUE 170 -#endif -#endif diff --git a/samples/mfc/standard/03_ImportExport/src/ColoredShapes.cpp b/samples/mfc/standard/03_ImportExport/src/ColoredShapes.cpp deleted file mode 100644 index 71b0752cf5..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ColoredShapes.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// ColoredShapes.cpp: implementation of the CColoredShape class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" - -#include - -#include "ColoredShapes.h" - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CColoredShapes::CColoredShapes() -{ -} - - -void CColoredShapes::Add(const Quantity_NameOfColor aColor, const TopoDS_Shape& aShape) -{ - m_shapeList.Append(aShape); - m_colorMap.Bind(aShape, aColor); -} - -void CColoredShapes::Remove(const TopoDS_Shape& aShape) -{ - m_colorMap.UnBind(aShape); - for ( TopoDS_ListIteratorOfListOfShape iter(m_shapeList); iter.More(); iter.Next() ) { - if(iter.Value() == aShape) { - m_shapeList.Remove(iter); - break; - } - } -} - -IMPLEMENT_SERIAL(CColoredShapes, CObject,1); - -#include - -// Tools to put Persistent Object in an archive - -void CColoredShapes::Display(Handle(AIS_InteractiveContext)& anAIScontext) -{ - for ( TopoDS_ListIteratorOfListOfShape iter(m_shapeList); iter.More(); iter.Next() ) - { - Handle(AIS_Shape) ais = new AIS_Shape(iter.Value()); - anAIScontext->SetColor(ais, (Quantity_NameOfColor)m_colorMap.Find(iter.Value()), Standard_False); - anAIScontext->SetMaterial(ais, Graphic3d_NameOfMaterial_Gold, Standard_False); - anAIScontext->Display(ais, Standard_False); - } - anAIScontext->UpdateCurrentViewer(); -} diff --git a/samples/mfc/standard/03_ImportExport/src/ColoredShapes.h b/samples/mfc/standard/03_ImportExport/src/ColoredShapes.h deleted file mode 100644 index 937816dc60..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ColoredShapes.h +++ /dev/null @@ -1,33 +0,0 @@ -// ColoredShape.h: interface for the CColoredShape class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_COLOREDSHAPES_H__C6419AF3_A78A_11D1_8C93_00AA00D10994__INCLUDED_) -#define AFX_COLOREDSHAPES_H__C6419AF3_A78A_11D1_8C93_00AA00D10994__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -class CColoredShapes : public CObject -{ -public: - CColoredShapes(); - void Add(const Quantity_NameOfColor aColor, const TopoDS_Shape& aShape); - void Remove(const TopoDS_Shape& aShape); - - void Display( Handle(AIS_InteractiveContext)& anAIScontext); - - TopoDS_ListOfShape getShapes(); - Quantity_NameOfColor getShapeColor(TopoDS_Shape aShape); - -protected: - // Declare CArchive >> operator - DECLARE_SERIAL(CColoredShapes); - -private: - TopTools_DataMapOfShapeInteger m_colorMap; - TopoDS_ListOfShape m_shapeList; -}; - -#endif // !defined(AFX_COLOREDSHAPES_H__C6419AF3_A78A_11D1_8C93_00AA00D10994__INCLUDED_) diff --git a/samples/mfc/standard/03_ImportExport/src/ImportExportApp.cpp b/samples/mfc/standard/03_ImportExport/src/ImportExportApp.cpp deleted file mode 100644 index 733021c3b2..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ImportExportApp.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// ImportExportApp.cpp : Defines the class behaviors for the application. -// - -#include "stdafx.h" - -#include "ImportExportApp.h" - -#include "OCC_MainFrame.h" -#include "OCC_3dChildFrame.h" -#include "ImportExportDoc.h" -#include -#include - -BEGIN_MESSAGE_MAP(CImportExportApp, OCC_App) - //{{AFX_MSG_MAP(CSerializeApp) - ON_COMMAND(ID_FILE_OPEN, OnFileOpen) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CImportExportApp construction - -CImportExportApp::CImportExportApp() : OCC_App() -{ -} - -///////////////////////////////////////////////////////////////////////////// -// The one and only CImportExportApp object - -CImportExportApp theApp; - -///////////////////////////////////////////////////////////////////////////// -// CImportExportApp initialization - -BOOL CImportExportApp::InitInstance() -{ - // Set the local system units - try - { - UnitsAPI::SetLocalSystem (UnitsAPI_MDTV); - } - catch (Standard_Failure) - { - AfxMessageBox (L"Fatal Error in units initialisation"); - } - - SampleName = "ImportExport"; //for about dialog - SetSamplePath (L"..\\..\\05_ImportExport"); - - AfxEnableControlContainer(); - - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. - - // Change the registry key under which our settings are stored. - // You should modify this string to be something appropriate - // such as the name of your company or organization. - // Modified by CasCade : - SetRegistryKey(_T("Local CasCade Applications")); - - LoadStdProfileSettings(); // Load standard INI file options (including MRU) - - // Register the application's document templates. Document templates - // serve as the connection between documents, frame windows and views. - - CMultiDocTemplate* pDocTemplate; - pDocTemplate = new CMultiDocTemplate( - IDR_3DTYPE, - RUNTIME_CLASS(CImportExportDoc), - RUNTIME_CLASS(OCC_3dChildFrame), - RUNTIME_CLASS(OCC_3dView)); - AddDocTemplate(pDocTemplate); - - // create main MDI Frame window - OCC_MainFrame* pMainFrame = new OCC_MainFrame(with_AIS_TB); - if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) - return FALSE; - m_pMainWnd = pMainFrame; - - // Parse command line for standard shell commands, DDE, file open - CCommandLineInfo cmdInfo; - ParseCommandLine(cmdInfo); - - // Dispatch commands specified on the command line - if (!ProcessShellCommand(cmdInfo)) - return FALSE; - - // The main window has been initialized, so show and update it. - pMainFrame->ShowWindow(m_nCmdShow); - pMainFrame->UpdateWindow(); - - return TRUE; -} - -CDocument* CImportExportApp::OpenDocumentFile(LPCTSTR lpszFileName) -{ - CFile cf; - - if (!cf.Open(lpszFileName,CFile::modeReadWrite)){ - AfxMessageBox (L"File not found!"); - return NULL; - } - cf.Close(); - return CWinApp::OpenDocumentFile(lpszFileName); -} - -void CImportExportApp::OnFileOpen() -{ - CFileDialog dlg(TRUE, - NULL, - NULL, - OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, - NULL, - NULL ); - - - CString initdir; - initdir.GetEnvironmentVariable (L"CSF_OCCTDataPath"); - - dlg.m_ofn.lpstrInitialDir = initdir; - - CString strFilter; - CString strDefault; - - POSITION pos = GetFirstDocTemplatePosition(); - - CDocTemplate* pTemplate = GetNextDocTemplate(pos); - CString strFilterExt, strFilterName; - if (pTemplate->GetDocString(strFilterExt, CDocTemplate::filterExt) && - !strFilterExt.IsEmpty() && - pTemplate->GetDocString(strFilterName, CDocTemplate::filterName) && - !strFilterName.IsEmpty()) { - // add to filter - strFilter += strFilterName; - ASSERT(!strFilter.IsEmpty()); // must have a file type name - strFilter += L'\0'; // next string please - strFilter += L'*'; - strFilter += strFilterExt; - strFilter += L'\0'; // next string please - dlg.m_ofn.nMaxCustFilter++; - } - // append the "*.*" all files filter - CString allFilter; - VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER)); - strFilter += allFilter; - strFilter += L'\0'; // next string please - strFilter += L"*.*"; - strFilter += L'\0'; // last string - dlg.m_ofn.nMaxCustFilter++; - dlg.m_ofn.lpstrFilter = strFilter; - - if (dlg.DoModal() == IDOK) - { - AfxGetApp()->OpenDocumentFile(dlg.GetPathName()); - } -} diff --git a/samples/mfc/standard/03_ImportExport/src/ImportExportApp.h b/samples/mfc/standard/03_ImportExport/src/ImportExportApp.h deleted file mode 100644 index e0233677fa..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ImportExportApp.h +++ /dev/null @@ -1,38 +0,0 @@ -// ImportExportApp.h : main header file for the IMPORTEXPORT application -// - -#if !defined(AFX_IMPORTEXPORT_H__88A21474_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) -#define AFX_IMPORTEXPORT_H__88A21474_3B23_11D2_8E1E_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include - -class CImportExportApp : public OCC_App -{ -public: - - CImportExportApp(); - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CImportExportApp) - public: - virtual BOOL InitInstance(); - virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); - //}}AFX_VIRTUAL - -protected: - - //{{AFX_MSG(CSerializeApp) - afx_msg void OnFileOpen(); - //}}AFX_MSG - - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// - -#endif // !defined(AFX_IMPORTEXPORT_H__88A21474_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.cpp b/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.cpp deleted file mode 100644 index eaca832d19..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.cpp +++ /dev/null @@ -1,288 +0,0 @@ -// ImportExportDoc.cpp : implementation of the CImportExportDoc class -// - - -#include "stdafx.h" -#include "ImportExportApp.h" - -#include "ImportExportDoc.h" - -#include - -#include -#include "res/resource.h" - - -#ifdef _DEBUG -//#define new DEBUG_NEW // by cascade -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CImportExportDoc - -IMPLEMENT_DYNCREATE(CImportExportDoc, OCC_3dDoc) - -BEGIN_MESSAGE_MAP(CImportExportDoc, OCC_3dDoc) - //{{AFX_MSG_MAP(CImportExportDoc) - ON_COMMAND(ID_FILE_IMPORT_BREP, OnFileImportBrep) - ON_COMMAND(ID_FILE_IMPORT_IGES, OnFileImportIges) - ON_COMMAND(ID_FILE_EXPORT_IGES, OnFileExportIges) - ON_COMMAND(ID_FILE_IMPORT_STEP, OnFileImportStep) - ON_COMMAND(ID_FILE_EXPORT_STEP, OnFileExportStep) - ON_COMMAND(ID_FILE_EXPORT_VRML, OnFileExportVrml) - ON_COMMAND(ID_FILE_EXPORT_STL, OnFileExportStl) - ON_COMMAND(ID_BOX, OnBox) - ON_COMMAND(ID_Cylinder, OnCylinder) - ON_COMMAND(ID_OBJECT_REMOVE, OnObjectRemove) - ON_COMMAND(ID_OBJECT_ERASE, OnObjectErase) - ON_COMMAND(ID_OBJECT_DISPLAYALL, OnObjectDisplayall) - //}}AFX_MSG_MAP - -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CImportExportDoc construction/destruction - -CImportExportDoc::CImportExportDoc() -: OCC_3dDoc (false) -{ -/* - // TRIHEDRON - Handle(AIS_Trihedron) aTrihedron; - Handle(Geom_Axis2Placement) aTrihedronAxis=new Geom_Axis2Placement(gp::XOY()); - aTrihedron=new AIS_Trihedron(aTrihedronAxis); - myAISContext->Display(aTrihedron); -*/ - - m_pcoloredshapeList = new CColoredShapes(); -} - -CImportExportDoc::~CImportExportDoc() -{ - if( m_pcoloredshapeList ) delete m_pcoloredshapeList; -} - - -///////////////////////////////////////////////////////////////////////////// -// CSerializeDoc serialization - -void CImportExportDoc::Serialize(CArchive& ar) -{ - if (ar.IsStoring()) - { - // Put the current CColoredShape in the archive - ar << m_pcoloredshapeList; - } - else - { - // Read from the archive the current CColoredShape - ar >> m_pcoloredshapeList; - - // Display the new object - m_pcoloredshapeList->Display(myAISContext); - } -} - - -/* -void CImportExportDoc::OnWindowNew3d() -{ - ((CImportExportApp*)AfxGetApp())->CreateView3D(this); -} -*/ - -// nCmdShow could be : ( default is SW_RESTORE ) -// SW_HIDE SW_SHOWNORMAL SW_NORMAL -// SW_SHOWMINIMIZED SW_SHOWMAXIMIZED -// SW_MAXIMIZE SW_SHOWNOACTIVATE -// SW_SHOW SW_MINIMIZE -// SW_SHOWMINNOACTIVE SW_SHOWNA -// SW_RESTORE SW_SHOWDEFAULT -// SW_MAX - -// use pViewClass = RUNTIME_CLASS( CImportExportView3D ) for 3D Views - -void CImportExportDoc::ActivateFrame(CRuntimeClass* pViewClass,int nCmdShow) -{ - POSITION position = GetFirstViewPosition(); - while (position != (POSITION)NULL) - { - CView* pCurrentView = (CView*)GetNextView(position); - if(pCurrentView->IsKindOf(pViewClass) ) - { - ASSERT_VALID(pCurrentView); - CFrameWnd* pParentFrm = pCurrentView->GetParentFrame(); - ASSERT(pParentFrm != (CFrameWnd *)NULL); - // simply make the frame window visible - pParentFrm->ActivateFrame(nCmdShow); - } - } - -} - -///////////////////////////////////////////////////////////////////////////// -// CImportExportDoc diagnostics - -#ifdef _DEBUG -void CImportExportDoc::AssertValid() const -{ - CDocument::AssertValid(); -} - -void CImportExportDoc::Dump(CDumpContext& dc) const -{ - CDocument::Dump(dc); -} -#endif //_DEBUG - -///////////////////////////////////////////////////////////////////////////// -// CImportExportDoc commands - - -void CImportExportDoc::OnFileImportBrep() -{ - Handle(TopTools_HSequenceOfShape) aSeqOfShape = CImportExport::ReadBREP(); - for(int i=1;i<= aSeqOfShape->Length();i++) - { - m_pcoloredshapeList->Add(Quantity_NOC_YELLOW, aSeqOfShape->Value(i)); - m_pcoloredshapeList->Display(myAISContext); - } - Fit(); -} - -void CImportExportDoc::OnFileImportIges() -{ - Handle(TopTools_HSequenceOfShape) aSeqOfShape = CImportExport::ReadIGES(); - for(int i=1;i<= aSeqOfShape->Length();i++) - { - m_pcoloredshapeList->Add(Quantity_NOC_YELLOW, aSeqOfShape->Value(i)); - m_pcoloredshapeList->Display(myAISContext); - } - Fit(); -} -void CImportExportDoc::OnFileExportIges() -{ CImportExport::SaveIGES(myAISContext);} - -void CImportExportDoc::OnFileImportStep() -{ - Handle(TopTools_HSequenceOfShape) aSeqOfShape = CImportExport::ReadSTEP(); - for(int i=1;i<= aSeqOfShape->Length();i++) - { - m_pcoloredshapeList->Add(Quantity_NOC_YELLOW, aSeqOfShape->Value(i)); - m_pcoloredshapeList->Display(myAISContext); - } - Fit(); -} -void CImportExportDoc::OnFileExportStep() -{ CImportExport::SaveSTEP(myAISContext);} - - -void CImportExportDoc::OnFileExportVrml() -{ CImportExport::SaveVRML(myAISContext);} - -void CImportExportDoc::OnFileExportStl() -{ CImportExport::SaveSTL(myAISContext);} - -void CImportExportDoc::Popup(const Standard_Integer x, - const Standard_Integer y , - const Handle(V3d_View)& aView ) -{ - Standard_Integer PopupMenuNumber=0; - myAISContext->InitSelected(); - if (myAISContext->MoreSelected()) - PopupMenuNumber=1; - - CMenu menu; - VERIFY(menu.LoadMenu(IDR_Popup3D)); - CMenu* pPopup = menu.GetSubMenu(PopupMenuNumber); - - ASSERT(pPopup != NULL); - if (PopupMenuNumber == 1) // more than 1 object. - { - bool OneOrMoreInShading = false; - for (myAISContext->InitSelected();myAISContext->MoreSelected ();myAISContext->NextSelected ()) - if (myAISContext->IsDisplayed(myAISContext->SelectedInteractive(),1)) OneOrMoreInShading=true; - if(!OneOrMoreInShading) - pPopup->EnableMenuItem(5, MF_BYPOSITION | MF_DISABLED | MF_GRAYED); - } - - POINT winCoord = { x , y }; - Handle(WNT_Window) aWNTWindow= - Handle(WNT_Window)::DownCast(aView->Window()); - ClientToScreen ( (HWND)(aWNTWindow->HWindow()),&winCoord); - pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON , winCoord.x, winCoord.y , - AfxGetMainWnd()); - - -} - -void CImportExportDoc::OnBox() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - BRepPrimAPI_MakeBox B(200.,150.,100.); - - m_pcoloredshapeList->Add(Quantity_NOC_YELLOW, B.Shape()); - - m_pcoloredshapeList->Display(myAISContext); - Fit(); - - // document has been modified - SetModifiedFlag(TRUE); -} - -void CImportExportDoc::OnCylinder() -{ - AIS_ListOfInteractive aList; - myAISContext->DisplayedObjects(aList); - AIS_ListIteratorOfListOfInteractive aListIterator; - for(aListIterator.Initialize(aList);aListIterator.More();aListIterator.Next()){ - myAISContext->Remove (aListIterator.Value(), Standard_False); - } - - BRepPrimAPI_MakeCylinder C(50.,200.); - - m_pcoloredshapeList->Add(Quantity_NOC_GREEN, C.Shape()); - - m_pcoloredshapeList->Display(myAISContext); - Fit(); - - // document has been modified - SetModifiedFlag(TRUE); -} -void CImportExportDoc::OnObjectRemove() - -{ - for(GetAISContext()->InitSelected();GetAISContext()->MoreSelected();GetAISContext()->NextSelected()) { - Handle(AIS_Shape) aShape = Handle(AIS_Shape)::DownCast(GetAISContext()->SelectedInteractive()); - if(!aShape.IsNull()) { - m_pcoloredshapeList->Remove(aShape->Shape()); - } - } - OCC_3dBaseDoc::OnObjectRemove(); -} - -void CImportExportDoc::OnObjectErase() - -{ - for(GetAISContext()->InitSelected();GetAISContext()->MoreSelected();GetAISContext()->NextSelected()) { - Handle(AIS_Shape) aShape = Handle(AIS_Shape)::DownCast(GetAISContext()->SelectedInteractive()); - if(!aShape.IsNull()) { - m_pcoloredshapeList->Remove(aShape->Shape()); - } - } - OCC_3dBaseDoc::OnObjectErase(); -} - -void CImportExportDoc::OnObjectDisplayall() - -{ - OCC_3dBaseDoc::OnObjectDisplayall(); -} \ No newline at end of file diff --git a/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.h b/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.h deleted file mode 100644 index 77659484c3..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/ImportExportDoc.h +++ /dev/null @@ -1,64 +0,0 @@ -// ImportExportDoc.h : interface of the CImportExportDoc class -// -///////////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_IMPORTEXPORTDOC_H__88A2147C_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) -#define AFX_IMPORTEXPORTDOC_H__88A2147C_3B23_11D2_8E1E_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#include -#include - -class CImportExportDoc : public OCC_3dDoc -{ - DECLARE_DYNCREATE(CImportExportDoc) -public: - CImportExportDoc(); - virtual ~CImportExportDoc(); - virtual void Serialize(CArchive& ar); - - void ActivateFrame(CRuntimeClass* pViewClass, int nCmdShow = SW_RESTORE ); - virtual void Popup (const Standard_Integer x , - const Standard_Integer y , - const Handle(V3d_View)& aView ); - - -// Implementation -#ifdef _DEBUG - virtual void AssertValid() const; - virtual void Dump(CDumpContext& dc) const; -#endif - -// Generated message map functions -protected: - //{{AFX_MSG(CImportExportDoc) - afx_msg void OnFileImportIges(); - afx_msg void OnFileExportIges(); - afx_msg void OnFileImportStep(); - afx_msg void OnFileExportStep(); - afx_msg void OnFileImportBrep(); -// afx_msg void OnWindowNew3d(); - afx_msg void OnFileExportVrml(); - afx_msg void OnFileExportStl(); - afx_msg void OnBox(); - afx_msg void OnCylinder(); - afx_msg void OnObjectRemove(); - afx_msg void OnObjectErase(); - afx_msg void OnObjectDisplayall(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -//Attributes -protected: - CColoredShapes* m_pcoloredshapeList; -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_IMPORTEXPORTDOC_H__88A2147C_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/03_ImportExport/src/StdAfx.cpp b/samples/mfc/standard/03_ImportExport/src/StdAfx.cpp deleted file mode 100644 index 4db8d13070..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/StdAfx.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// SampleImportExport.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - diff --git a/samples/mfc/standard/03_ImportExport/src/StdAfx.h b/samples/mfc/standard/03_ImportExport/src/StdAfx.h deleted file mode 100644 index df014d2419..0000000000 --- a/samples/mfc/standard/03_ImportExport/src/StdAfx.h +++ /dev/null @@ -1,165 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if !defined(AFX_STDAFX_H__88A21476_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) -#define AFX_STDAFX_H__88A21476_3B23_11D2_8E1E_0800369C8A03__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers - -#ifndef NOMINMAX - #define NOMINMAX // Prevent Windows from defining min/max macros -#endif - -#include // MFC core and standard components -#include // MFC extensions -#include // MFC OLE automation classes -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - -#define DEFAULT_DEVIATIONCOEFFICIENT 0.001 -#define DEFAULT_DCBIG 0.005 -#define DEFAULT_DCVBIG 0.01 -#define DEFAULT_DCSMALL 0.0002 -#define DEFAULT_DCVSMALL 0.00004 -#define DEFAULT_COLOR Quantity_NOC_CYAN1 -#define DEFAULT_MATERIAL Graphic3d_NameOfMaterial_Plastered -#define DEFAULT_BACKGROUNDCOLOR Quantity_NOC_MATRAGRAY -#define DEFAULT_HILIGHTCOLOR Quantity_NOC_YELLOW - -#pragma warning( disable : 4244 ) // Issue warning 4244 -#include -#pragma warning( default : 4244 ) // Issue warning 4244 - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// specific STEP - -#include -#include -#include - - -// specific IGES -#include -#include - -#include -#include - -#include -#include -#include - -#include - -//#include - -// specific STL VRML -#include "StlAPI_Writer.hxx" -#include "VrmlAPI_Writer.hxx" - -//End CasCade - - - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__88A21476_3B23_11D2_8E1E_0800369C8A03__INCLUDED_) diff --git a/samples/mfc/standard/04_HLR/CMakeLists.txt b/samples/mfc/standard/04_HLR/CMakeLists.txt deleted file mode 100644 index 1ccabc5b9e..0000000000 --- a/samples/mfc/standard/04_HLR/CMakeLists.txt +++ /dev/null @@ -1,91 +0,0 @@ -# Caution! Be careful, when increase minimal cmake version: -# using of newer version may leads (by default) to applying -# of some new policies. It may break compilation. -# For canceling of applying new policies use: -# cmake_policy(PUSH) before `cmake_minimum_required` -# and cmake_policy(POP) after. -cmake_minimum_required (VERSION 3.1 FATAL_ERROR) - -project (HLR) - -add_definitions(-DWINVER=0x0501 -DUNICODE -D_UNICODE) -set (CMAKE_MFC_FLAG 2) - -set (HLR_SRC_DIR ${MFC_STANDARD_SAMPLES_DIR}/04_HLR/src) -set (HLR_HEADER_FILES ${HLR_SRC_DIR}/HLRApp.h - ${HLR_SRC_DIR}/HLRDoc.h - ${HLR_SRC_DIR}/HLRView2D.h - ${HLR_SRC_DIR}/SelectionDialog.h - ${HLR_SRC_DIR}/StdAfx.h ) -set (HLR_SOURCE_FILES ${HLR_SRC_DIR}/HLRApp.cpp - ${HLR_SRC_DIR}/HLRDoc.cpp - ${HLR_SRC_DIR}/HLRView2D.cpp - ${HLR_SRC_DIR}/SelectionDialog.cpp - ${HLR_SRC_DIR}/StdAfx.cpp ) - -set (HLR_RESOURCE_DIR ${MFC_STANDARD_SAMPLES_DIR}/04_HLR/res) -set (HLR_RESOURCE_HEADER ${HLR_RESOURCE_DIR}/resource.h) -set (HLR_RESOURCE_FILES ${HLR_RESOURCE_DIR}/axoviewd.bmp - ${HLR_RESOURCE_DIR}/axoviewf.bmp - ${HLR_RESOURCE_DIR}/AXOVIEWU.bmp - ${HLR_RESOURCE_DIR}/BACKVIEWD.bmp - ${HLR_RESOURCE_DIR}/BACKVIEWF.bmp - ${HLR_RESOURCE_DIR}/BACKVIEWU.bmp - ${HLR_RESOURCE_DIR}/BOTTOMVIEWD.bmp - ${HLR_RESOURCE_DIR}/BOTTOMVIEWF.bmp - ${HLR_RESOURCE_DIR}/BOTTOMVIEWU.bmp - ${HLR_RESOURCE_DIR}/ChildFrame2D.bmp - ${HLR_RESOURCE_DIR}/ChildFrame3D.bmp - ${HLR_RESOURCE_DIR}/FRONTVIEWD.bmp - ${HLR_RESOURCE_DIR}/FRONTVIEWF.bmp - ${HLR_RESOURCE_DIR}/FRONTVIEWU.bmp - ${HLR_RESOURCE_DIR}/LEFTVIEWD.bmp - ${HLR_RESOURCE_DIR}/LEFTVIEWF.bmp - ${HLR_RESOURCE_DIR}/LEFTVIEWU.bmp - ${HLR_RESOURCE_DIR}/RIGHTVIEWD.bmp - ${HLR_RESOURCE_DIR}/RIGHTVIEWF.bmp - ${HLR_RESOURCE_DIR}/RIGHTVIEWU.bmp - ${HLR_RESOURCE_DIR}/Toolbar.bmp - ${HLR_RESOURCE_DIR}/ToolBarObjects.bmp - ${HLR_RESOURCE_DIR}/topviewd.bmp - ${HLR_RESOURCE_DIR}/topviewf.bmp - ${HLR_RESOURCE_DIR}/topviewu.bmp - ${HLR_RESOURCE_DIR}/HLR.rc) - -# groups in the VS solution -source_group ("Source Files" FILES ${HLR_SOURCE_FILES} - ${COMMON_WINMAIN_FILE}) - -source_group ("Header Files" FILES ${HLR_HEADER_FILES} - ${HLR_RESOURCE_HEADER}) - -source_group ("Resource Files" FILES ${HLR_RESOURCE_FILES}) - -add_executable (HLR WIN32 ${HLR_SOURCE_FILES} - ${HLR_HEADER_FILES} - ${COMMON_WINMAIN_FILE} - ${HLR_RESOURCE_HEADER} - ${HLR_RESOURCE_FILES} ) - -set_property (TARGET HLR PROPERTY FOLDER "Samples/mfc") - -if (SINGLE_GENERATOR) - install (TARGETS HLR DESTINATION "${INSTALL_DIR_BIN}") -else() - install (TARGETS HLR - CONFIGURATIONS Release RelWithDebInfo - DESTINATION "${INSTALL_DIR_BIN}") - install (TARGETS HLR - CONFIGURATIONS Debug - DESTINATION "${INSTALL_DIR_BIN}d") -endif() - -include_directories (${CMAKE_BINARY_DIR}/inc - ${HLR_RESOURCE_DIR} - ${HLR_SRC_DIR} - ${MFC_STANDARD_SAMPLES_DIR}/Common) - -target_link_libraries (HLR mfcsample) - -set (CMAKE_CXX_STANDARD 17) -set (CMAKE_CXX_STANDARD_REQUIRED ON) \ No newline at end of file diff --git a/samples/mfc/standard/04_HLR/README.txt b/samples/mfc/standard/04_HLR/README.txt deleted file mode 100644 index 75e9190174..0000000000 --- a/samples/mfc/standard/04_HLR/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -HLR sample demonstrates hidden line removal algorithm. -It supports exact and polygonal HLR algorithms. - -To try HLR you need to follow some steps: -1) to import model, which will displayed in 3d view. -2) to choose "File->Process HLR" or press "HLR' button in the toolbar. - Dialog with options of HLR will be opened. -3) to press "Get shapes" button of the HLR dialog to - display results in the 2d view. - Optionally, this dialog allow to view chosen shapes - in his own view. Here you can choose needed direction - of view and press "Update 2d" button to update shapes HLR 2d view. diff --git a/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj b/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj deleted file mode 100644 index 23233ab233..0000000000 --- a/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj +++ /dev/null @@ -1,417 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {76045260-8DA6-4A3E-B220-F5B1B4ADE192} - HLR - MFCProj - - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - Application - Dynamic - Unicode - $(VCPlatformToolSet) - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ../../../../win32\$(VCFMT)\bin\ - .\win32\obj\ - false - ../../../../win64\$(VCFMT)\bin\ - .\win64\obj\ - false - ../../../../win32\$(VCFMT)\bind\ - .\win32\objd\ - true - ../../../../win64\$(VCFMT)\bind\ - .\win64\objd\ - true - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\obj/HLR.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\;..\..\..\..\Common;$(CSF_OCCTIncludePath);..\..\..\src\ISession2D;..\..\..\res;.\src\Properties;..\..\..\src;%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win32\obj/HLR.pch - .\win32\obj/ - .\win32\obj/ - .\win32\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bin/HLR.exe - true - ..\..\..\..\win32\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win32\$(VCFMT)\bin/HLR.pdb - Windows - MachineX86 - - - - - NDEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\obj/HLR.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\..\;..\..\..\..\Common;$(CSF_OCCTIncludePath);..\..\..\src\ISession2D;..\..\..\res;.\src\Properties;..\..\..\src;%(AdditionalIncludeDirectories) - NDEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - true - MultiThreadedDLL - true - Use - stdafx.h - .\win64\obj/HLR.pch - .\win64\obj/ - .\win64\obj/ - .\win64\obj/ - Level4 - true - Default - stdcpp17 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bin/HLR.exe - true - ..\..\..\..\win64\$(VCFMT)\lib;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - ../../../../win64\$(VCFMT)\bin/HLR.pdb - Windows - MachineX64 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\win32\objd/HLR.tlb - - - - - Disabled - ..\..\..\;..\..\..\..\Common;$(CSF_OCCTIncludePath);..\..\..\src\ISession2D;..\..\..\res;.\src\Properties;..\..\..\src;%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win32\objd/HLR.pch - .\win32\objd/ - .\win32\objd/ - .\win32\objd/ - Level4 - true - EditAndContinue - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win32\$(VCFMT)\bind/HLR.exe - true - ..\..\..\..\win32\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win32\$(VCFMT)\bind/HLR.pdb - Windows - MachineX86 - - - - - _DEBUG;%(PreprocessorDefinitions) - true - true - X64 - .\win64\objd/HLR.tlb - - - - - Disabled - ..\..\..\;..\..\..\..\Common;$(CSF_OCCTIncludePath);..\..\..\src\ISession2D;..\..\..\res;.\src\Properties;..\..\..\src;%(AdditionalIncludeDirectories) - _DEBUG;_WINDOWS;WINVER=0x0501;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - Use - stdafx.h - .\win64\objd/HLR.pch - .\win64\objd/ - .\win64\objd/ - .\win64\objd/ - Level4 - true - ProgramDatabase - Default - stdcpp17 - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - TKVCAF.lib;TKBRep.lib;TKBool.lib;TKCAF.lib;TKCDF.lib;TKernel.lib;TKFeat.lib;TKFillet.lib;TKG2d.lib;TKG3d.lib;TKGeomAlgo.lib;TKGeomBase.lib;TKHLR.lib;TKMath.lib;TKOffset.lib;TKPrim.lib;TKService.lib;TKTopAlgo.lib;TKV3d.lib;TKOpenGl.lib;mfcsample.lib;%(AdditionalDependencies) - ../../../../win64\$(VCFMT)\bind/HLR.exe - true - ..\..\..\..\win64\$(VCFMT)\libd;$(CSF_OCCTLibPath);%(AdditionalLibraryDirectories) - true - ../../../../win64\$(VCFMT)\bind/HLR.pdb - Windows - MachineX64 - - - - - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - res;%(AdditionalIncludeDirectories) - - - - - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - Disabled - .\Properties;%(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - Create - - - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - Disabled - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - EnableFastChecks - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - MaxSpeed - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {2d6cbbe8-6965-4016-b503-0d715ae26691} - false - - - - - - \ No newline at end of file diff --git a/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj.filters b/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj.filters deleted file mode 100644 index d8f08c9e32..0000000000 --- a/samples/mfc/standard/04_HLR/adm/win/vc10/HLR.vcxproj.filters +++ /dev/null @@ -1,142 +0,0 @@ - - - - - {71b03503-46e1-4a70-bf46-9d403d37b35a} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {22270cbf-7f10-4c26-8fc6-7f68842b776d} - h;hpp;hxx;hm;inl - - - {f220deda-1476-43c2-af8d-81ff1947d33d} - ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe - - - - - Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - \ No newline at end of file diff --git a/samples/mfc/standard/04_HLR/res/AXOVIEWU.bmp b/samples/mfc/standard/04_HLR/res/AXOVIEWU.bmp deleted file mode 100644 index 8e9ec566c8ee3f9c4732a58e056467142c840496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmY+AF%H8Z3`HHOlDB5<*sn7E(@ne_ohlW?J z8hpR%7;I;(L4{Q_k0A(CVRMv(6VSmt@z3~XJfcKZ|}zk6s^ABFePcegnsnPniK#4 diff --git a/samples/mfc/standard/04_HLR/res/BACKVIEWD.bmp b/samples/mfc/standard/04_HLR/res/BACKVIEWD.bmp deleted file mode 100644 index 16994f9a586c495dd559594b3c6f6db8cee45dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmb7=Jr05)42Jt94z5moqoe0=_b$3v5)y+GoWQFvFu-j*2EHw5a53?PmZzos9#4;j zR9E-|Y#p}HM)UhIufdlqMCepXAK-yhYbEbJCYp9?O$df2DRGmw{L%Rb+Xw|_sj*Ki ziGy$85PF_>qQM6F%Rij+yFRWt4(4D|vV9-6CON+Ao;;nU4{-fH%A7`xL~i1_Mpz!z I<)<&97eLvDD*ylh diff --git a/samples/mfc/standard/04_HLR/res/BACKVIEWF.bmp b/samples/mfc/standard/04_HLR/res/BACKVIEWF.bmp deleted file mode 100644 index 6ee8aa78c4ea84a0c79814a474b1b98cbbc408eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmb7=Jqp7x422cw1-fPI*mHExVY1YQLa`?ay!R>zbn$U|glz7!tUwyb&}U2jEXhCU zHoQ7g-QlmW-mIgO#xIuF&5sL2m=r==;DN9}IcFq_PAa7m45NmsI}*E9M2nbs&srm* z@h6JdH})Se8^<%$YmJYH%RijnlhwQNF*#$7DT#0Q$e3hibJTz5zspO#lD@ diff --git a/samples/mfc/standard/04_HLR/res/BACKVIEWU.bmp b/samples/mfc/standard/04_HLR/res/BACKVIEWU.bmp deleted file mode 100644 index bee7ef9121fc28b1ee7a6e79f5241c691fcd3b27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmb7=F%H5o3`JcDiLqjWk&$z-a~HbcNLkV;k&qa?n3JMv>YFOHK~ zIbWU)iEfA|_(8p)jpUEIFN;-}h+s5LbwUJE&Y408*eGID%0h6ACA9>jZTc#-&hX4C z7uq#T5wqkUC~~oKe1n~Gw}bXl6FcPjANH?N>r;Opld|i)=UDII-t*v;&0Es*z`vfo RVVnppKA>tgT(0Iz=mP;0oFf1L diff --git a/samples/mfc/standard/04_HLR/res/BOTTOMVIEWD.bmp b/samples/mfc/standard/04_HLR/res/BOTTOMVIEWD.bmp deleted file mode 100644 index eaee70e75e10be69484da50ab87729516347da59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmbV|Jq`jP5QS$G3ll3UEVuL=_TI&991wJg2K>AV+bKIBqgRgsUKOC#qK|xvlJx1 z1SlG($nRHhUU0WYJ(E}t1?LZQP5XF-{4Q7YN!EuGm{;wIRpg8`e3x4g>Vg})j_(>>b6%bk z3|H!j49*D$%a2~S&6gyA3n`5km6l9st+CK;p?7s8AB|M@P*&ol0&GH5vi$m5S+IOo zxWCB#ox{jukXo|)tWClCfaWgBXOJ~H=WYG{epYOTJiba^8yC8y<5Ns D(!Yka diff --git a/samples/mfc/standard/04_HLR/res/BOTTOMVIEWU.bmp b/samples/mfc/standard/04_HLR/res/BOTTOMVIEWU.bmp deleted file mode 100644 index f26d1e4eaee3a106b46bed6f9e4ca4815bddaa58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmbV|F%H5o3`JcDi7{ddBO~Wv=PqO+k&sZB(ut9)1c@QJRmb$(F{p@*-`IWmb|W{3 z<6|Jv8F`P`Y7Ddzf2VcXe5FE!MWyr?GLUMm6k|l8$)eVn5O~<)w9tC|D4M|h1 zp^ON>oHGjIZ&=DVe|b6E{bYR(PT6sjmHu=^vrm69&o%0|0q6MC&+&JjQdxdM88%mR Req~%h*A&egTRSbTgl5@qpBDfC diff --git a/samples/mfc/standard/04_HLR/res/ChildFrame2D.bmp b/samples/mfc/standard/04_HLR/res/ChildFrame2D.bmp deleted file mode 100644 index f46b327442b52fbfdaf4f0b52804339580960ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2358 zcmb_dF^=0X5M+P=RQkLiRbCLJPM=R)p}SI*mj@M5M;R_s`t%Y7P~(T>A1{pIVYcTUR=^+&uv@xI6V#=S-D+^N#fM%6io$90{3Py@Qt>4Yx_ zF8a93g$OTx>_R2~ulPT^aqs9!;QOH+Eqpbez0`LV zWeWgDGMZT+q>H8o%DlJx`;V=EdWU*mf&UrT0@>JZd!p(>f^rg`s;kNWb!gMnwrV^O}~$)(FCQXT{ubH)^C ze1R|!l)OZd{aTP~p+d!J%9j`u-+p*eGvfo~u)0x{_;E-~9P5^A3cAsSFQW#xh!tdt z#*+~Z5%J{m1NJWxDIbFr(1?HR(Z1`BL(8Q(yg|w*1_`gyG0MRz9wP z~&kNgAij?!7Z_SPSvncq@ z|3g;4&}Z(LAJDf|aum1Xd1Y@4WtT?yYAiK0U$zGB_T|;Cj0)dspfq2{SLXjKa_$## CNfDDGzDbpooNS}YvHW|T!xm3Gw;BU!QG6;e{C9XErm1&*# zW~9}vvpB&xUF196(`a_)>1m|($4@_BHrhU;e}nIbv!;24-?Qe0+IM+g2a9gkH25^T zo&BH(Y;JFF@ym&O{WSOYMEK&5CUo+@sRI2|bx4s<_Gx}z$Mfh>5Jt3N>9S^nN8xvp zNaFIz^-(5eO8kA)@*%Rdp&6}i4Y-W}l=WCAHwp_A7}HHd?aY?b}_9g&0fq%83(61ScZ=3Kj} zk2=N-f*O0cWh4y>h4X_UxIn;K_qH)GZuUX_Kp;uSB0b@EP+FjR%5M^J%Cy5O2ZtEZ z!`5E4R5A>KdI45`pt9M~29L6i06btgh$2FP4{}BQly2xHz=E9Ekca%b=n!FrAD376 zJo;}U=M%H1n{u{J`4v|5$T}k^$&g=0nJ;MMs)ii`z)i;v$70E^Plx2z`5iRoWRrdJ zX@YvpF8e69!GGY#O=G1FcK(2@aNk3}#50?_l#%?-4}4GbODWeMSY7hrS_jd~)%VPA zkZ5OL&xdEtw@}Db;|j8VBt&rrc8Vxuid6G){p?)QPip;*7ip~g+(JK8Hfr0Oe%vq3 z$mhM@D}T=qVrkw;ijfiGTz|YRwi?<^P)_~2@d8JRaBwk(4#4hbuCVGS-nUaen0O!f z`D(EnLvKAj-4)Hdda}Qo+zxA&5Lw1@e(M$7O-O%%IUE`X9^@BX?Bxqh1KBIndJp*) z7#;U#7)B{a*KQS$0ABgAGt_HPhEv5*iKrOr&Mz7Tur{M>jO}jSrh~oeWPX9n_p`nJ zw)EAPAM>E7GC$djJ}aPRBf|^Fq{I>wMJ2OG?x>WkWD(24t-U{TK8CGt7s3A8JxVj@ zpg7vBq>9S|oG2fzu*H8CtOTz-5a*XIzue5xH+p_;u;?u*>ohLx^B`-1aYggws%^!UO6J`(_25$k&|t>7#(gfd O#`(EoKS!K@&F>e9mC>*O diff --git a/samples/mfc/standard/04_HLR/res/FRONTVIEWD.bmp b/samples/mfc/standard/04_HLR/res/FRONTVIEWD.bmp deleted file mode 100644 index f6250ddc72375ac39645db59126d0a8044053a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmaKoF%AMD5JhJb3tKC;GM1jh-n(eykkHVrC-5p1Ccu3NjbL#9Z01ViZSA#>ZDqQP#9uK>$K#L4l^89kYkq2 zF){OK9KddBKBwDr{V)!Roj1OAd`JH6|6zTrWq3ly8+$OH^-ioJW7yE#_qW7vM(@xT HyI(>thv0|w diff --git a/samples/mfc/standard/04_HLR/res/FRONTVIEWF.bmp b/samples/mfc/standard/04_HLR/res/FRONTVIEWF.bmp deleted file mode 100644 index f3e7bb32b4257940f3a11414b6e2f7d4ca5dfe38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZ{gI}XAy5JWc;7f5G`hLUs8a~*JnoXRU%qU0WQNHo3*7f7AX%zh&Aktg2G^LUi3 zd^p|)Qk~HEsNglwM*W?i>*lK^A}mVDUg$tnqFO5snl5Th2!%&1X+7ohDx!s5`Iqk_ z#H{`np(z@N2RJ*IGQZ}inZQq;*tvZ075UZgu>5NDOh$&IeTOgL?5txu+t7bAn=P~9 K0!&Nq7U&H)3Waz8 diff --git a/samples/mfc/standard/04_HLR/res/FRONTVIEWU.bmp b/samples/mfc/standard/04_HLR/res/FRONTVIEWU.bmp deleted file mode 100644 index fc573a3543e49e85d3170c5cffdeb3ee945da0a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmZ{gF%H5o3`JcDiLvTbBo;=_!OmUiQb&q}vW1C}doVFDBv;`AT|0&!$DkC6-`IWm z{%WHfj<<$HBl;e-(Q0TV{!ZtzS+qceMIn?II*?+F