/// <summary> /// Initializes the OpenCascade views and assigns them View handles. /// </summary> private static void Setup(ref V3dViewer viewer, ref AISInteractiveContext context, ref V3dPerspectiveView view, Control control) { // Initialize the Device var device = new Graphic3dWNTGraphicDevice(); // Create the V3d Viewer //QuantityColor color = new QuantityColor(70 / 255.0, 82 / 255.0, 102 / 255.0, QuantityTypeOfColor.Quantity_TOC_RGB); viewer = new V3dViewer(device, "Preview", "Render", 1000, V3dTypeOfOrientation.V3d_XposYnegZpos, QuantityNameOfColor.Quantity_NOC_GRAY30, V3dTypeOfVisualization.V3d_ZBUFFER, V3dTypeOfShadingModel.V3d_GOURAUD, V3dTypeOfUpdate.V3d_WAIT, true, true, V3dTypeOfSurfaceDetail.V3d_TEX_NONE); if (CreateLights(viewer)) { viewer.SetLightOn(); } // Create the Interactive Context context = new AISInteractiveContext(viewer); // Create an OpenCascade view for each visible Custom controls view = CreateView(device, viewer, control); SetVisualMode(context); }
/// <summary> /// Initializes the OpenCascade views and assigns them View handles. /// </summary> public static void Setup(ref Graphic3dWNTGraphicDevice device, ref V3dViewer viewer, ref AISInteractiveContext context, out V3dView view, IOccContainerMultiView attachedView) { // Initialize the Device try { device = new Graphic3dWNTGraphicDevice(); Debug.Assert(device != null); } catch (Exception ex) { Debug.Assert(false, ex.Message); } // Create the V3d Viewer try { //QuantityColor color = new QuantityColor(70 / 255.0, 82 / 255.0, 102 / 255.0, QuantityTypeOfColor.Quantity_TOC_RGB); viewer = new V3dViewer(device, "Visu3D", "", 1000, V3dTypeOfOrientation.V3d_XposYnegZpos, QuantityNameOfColor.Quantity_NOC_GRAY30, V3dTypeOfVisualization.V3d_ZBUFFER, V3dTypeOfShadingModel.V3d_GOURAUD, V3dTypeOfUpdate.V3d_WAIT, true, true, V3dTypeOfSurfaceDetail.V3d_TEX_NONE); Debug.Assert(viewer != null); if (CreateLights(viewer)) { viewer.SetLightOn(); } } catch (Exception ex) { Debug.Assert(false, ex.Message); } // Create the Interactive Context try { context = new AISInteractiveContext(viewer); Debug.Assert(context != null); context.HilightColor = (QuantityNameOfColor.Quantity_NOC_RED); } catch (Exception ex) { Debug.Assert(false, ex.Message); } // Create an OpenCascade view for each visible Custom controls CreateView(device, viewer, out view, attachedView); //PaintBackground(view, Color.LightBlue, Color.Blue); SetVisualMode(context); }
//-------------------------------------------------------------------------------------------------- public void InitV3dViewer() { if (V3dViewer == null) { var ocGraphicDriver = Occt.Helper.Graphic3d.CreateOpenGlDriver(); V3dViewer = new V3d_Viewer(ocGraphicDriver); } V3dViewer.SetDefaultViewSize(1000.0); V3dViewer.SetDefaultViewProj(V3d_TypeOfOrientation.V3d_XposYposZpos); V3dViewer.SetDefaultBackgroundColor(Quantity_NameOfColor.Quantity_NOC_GRAY30.ToColor()); V3dViewer.SetDefaultVisualization(V3d_TypeOfVisualization.V3d_ZBUFFER); V3dViewer.SetLightOn(new V3d_DirectionalLight(V3d_TypeOfOrientation.V3d_Zneg, Quantity_NameOfColor.Quantity_NOC_WHITE.ToColor(), true)); V3dViewer.SetLightOn(new V3d_AmbientLight(Quantity_NameOfColor.Quantity_NOC_WHITE.ToColor())); V3dViewer.Grid().SetColors(Quantity_NameOfColor.Quantity_NOC_GRAY45.ToColor(), Quantity_NameOfColor.Quantity_NOC_GRAY30.ToColor()); // Reinit viewer parameters _ApplyWorkingContext(); }
//-------------------------------------------------------------------------------------------------- public void InitV3dViewer() { if (V3dViewer == null) { var ocGraphicDriver = Occt.Helper.Graphic3d.CreateOpenGlDriver(); V3dViewer = new V3d_Viewer(ocGraphicDriver, "MyView", "", 1000.0, V3d_TypeOfOrientation.V3d_XposYposZpos, Quantity_NameOfColor.Quantity_NOC_GRAY30.ToColor(), V3d_TypeOfVisualization.V3d_ZBUFFER); } V3dViewer.SetLightOn(new V3d_DirectionalLight(V3d_TypeOfOrientation.V3d_Zneg, Quantity_NameOfColor.Quantity_NOC_WHITE.ToColor(), true)); V3dViewer.SetLightOn(new V3d_AmbientLight(Quantity_NameOfColor.Quantity_NOC_WHITE.ToColor())); //V3dViewer.Grid().SetColors(new Quantity_Color(Quantity_NameOfColor.Quantity_NOC_GRAY55), new Quantity_Color(Quantity_NameOfColor.Quantity_NOC_GRAY70)); V3dViewer.Grid().SetColors(Quantity_NameOfColor.Quantity_NOC_GRAY45.ToColor(), Quantity_NameOfColor.Quantity_NOC_GRAY30.ToColor()); // Reinit viewer parameters _ApplyWorkingContext(); _UpdateGrid(); }
/// <summary> /// Initializes the OpenCascade views and assigns them View handles. /// </summary> private void InitializeOpenCascade() { // Initialize the Devices device3d = new Graphic3dWNTGraphicDevice(); // Create the V3d Viewer try { viewer3d = new V3dViewer(device3d, "Hello", "", 100, V3dTypeOfOrientation.V3d_XnegYpos, QuantityNameOfColor.Quantity_NOC_ALICEBLUE, V3dTypeOfVisualization.V3d_ZBUFFER, V3dTypeOfShadingModel.V3d_GOURAUD, V3dTypeOfUpdate.V3d_WAIT, true, true, V3dTypeOfSurfaceDetail.V3d_TEX_ALL); // manual default Debug.Assert(viewer3d != null); if (CreateLights()) { viewer3d.SetLightOn(); } } catch (Exception ex) { Debug.Assert(false, ex.Message); throw; //re-throw exception } // Create the 3D Interactive Context try { context3d = new AISInteractiveContext(this.viewer3d); Debug.Assert(context3d != null); if (context3d != null) { //context3d.HilightColor = NameOfColor.Quantity_NOC_DARKSLATEGRAY; //context3d.SelectionColor = NameOfColor.Quantity_NOC_WHITE; } } catch (Exception ex) { Debug.Assert(false, ex.Message); throw; // re-throw exception } // create the 2D interactive context //try //{ // context2d = new AIS2D_InteractiveContext(this.viewer2d); // Debug.Assert(context2d != null); // if (context2d != null) // { // //context.HilightColor = NameOfColor.Quantity_NOC_DARKSLATEGRAY; // //context.SelectionColor = NameOfColor.Quantity_NOC_WHITE; // } //} //catch (Exception ex) //{ // Debug.Assert(false, ex.Message); // throw; // re-throw exception //} // Create an OpenCascade view for each visible Custom controls CreateView3D(); //CreateView2D(); //SetVisualMode(); //bool executeTemporaryCode = true; //if (executeTemporaryCode) //{ // temporary code ------------------- // Draw a box for (int i = 0; i < 500; i += 10) { var pnt = new gpPnt(i, i, i); //OCBRepPrimAPI_MakeBox box = new BRepPrimAPI_MakeBox(pnt, 100, 100, 100); var box = new BRepPrimAPIMakeBox(pnt, 50, 50, 50); var shape = new AISShape(box.Shape); context3d.Display(shape, false); // manual default } view3d.FitAll(0.01, false, true); // manual default // ----------------------------------- //} // Build an XYZ axis trihedron and add it to Ocaf var coords = gp.ZOX; coords.Location = new gpPnt(0, 0, 0); var axis = new GeomAxis2Placement(coords); var trihedron = new AISTrihedron(axis) { Size = 200 }; context3d.Display(trihedron, false); }