0025158: Visualization, OpenGl_Context - support EGL as alternative to WGL and GLX
[occt.git] / samples / CSharp / ReadMe.md
CommitLineData
5c573e69 1OCCT CSharp sample {#samples_csharp}
2==================
d1a2fee8 3
4This sample demonstrates simple way of using OCCT libraries in .Net application
5whitten using CSharp and Windows Forms or Windows Presentation Foundation (WPF).
6
7The connection between .Net and OCCT (C++) level is provided by proxy library,
8OCCProxy, written in C++/CLI. The proxy library contains single ref class
9encapsulating OCCT viewer and providing functionality to manipulate this viewer
10and to import / export OCCT shapes from / to several supported formats of CAD
11files (IGES, STEP, BREP).
12
13The sample implements two approaches for organizing user interface with C#.
14Both applications provide the same functionality as the standard OCCT
15Import/Export sample.
16First project is called "IE_WinForms" and uses Windows Forms for GUI.
17Second application is called "IE_WPF" and uses Windows Presentation Foundation.
18
19Note a few important details:
20
21- to encapsulate C++ class into a field of ref class, template class
22 NCollection_Haft provided by OCCT is used
23
24- in order to work consistently on 64-bit systems with OCCT libraries built in
25 32-bit mode, C# assemblies need to have platform target explicitly set to "x86"
26 (in project Properties / Build)
27
28- this sample demonstrates indirect method of wrapping C++ to C# using manually
29 created proxy library. Alternative method is available, wrapping individual
30 OCCT classes to C# equivalents so that their full API is available to C# user
31 and the code can be programmed on C# level similarly to C++ one. See desciption
32 of OCCT C# Wrapper in Advanced Samples and Tools on OCCT web site at
33 http://www.opencascade.org/support/products/advsamples
34
35- in WPF sample, WinForms control is used to encapsulate OCC viewer since WPF
36 does not provide necessary interface to embed OpenGl view. Other possible
37 solution could be to render OpenGl scene in off-screen buffer and map it
38 to WPF control as image. That approach would allow using all WPF features in
39 control embedding OCCT viewer.
40
41Run msvc.bat to start MS Visual Studio for building the sample.
42Note that project files are provided only for VS 2008, you can open them in
43newer versions of Visual Studio using automatic converter.
66fb4d9a 44After conversion check option "Target framework" in properties of C# projects
45(tab "Application") to ensure that it corresponds to the version set in
46the properties of the C++ projects (e.g. ".Net Framework 4.0" for VS 2010).
d1a2fee8 47
48Run run_winforms.bat or run_wpf.bat to launch the corresponding sample.
49
50Note that all batch scripts use configuration defined in OCCT custom.bat file
51as default; you can provide arguments specifying VS version, bitness, and mode
52to override these settings, e.g.:
53
54> msvc.bat vc9 win64 Debug