private static void UpdateInteractiveColor(AISInteractiveContext context, Node parent, AISInteractiveObject interactive, bool setWireAspect) { var col = Color.DarkTurquoise; var colorInterpreter = parent.Get <DrawingAttributesInterpreter>(); if (colorInterpreter.HasNoColor) { context.Display(interactive, false); return; } if (colorInterpreter.HasColorSet) { col = colorInterpreter.Color; } var color = ShapeUtils.GetOccColor(col); var layerContainer = parent.Root.Get <LayerContainerInterpreter>(); if (layerContainer.UseLayerColors) { var layerIndex = parent.Get <LayerVisibilityInterpreter>().TagIndex; color = ShapeUtils.GetOccColor(layerContainer.LayerColors[layerIndex]); } context.SetColor(interactive, color, false); var drawer = interactive.Attributes; if (setWireAspect) { var wireAspect = drawer.WireAspect; wireAspect.SetColor(color.Name()); wireAspect.Width = (1.5); drawer.LineAspect = (new Prs3dLineAspect(QuantityNameOfColor.Quantity_NOC_GRAY70, AspectTypeOfLine.Aspect_TOL_DOT, 0.5)); var pointAspect = drawer.PointAspect; pointAspect.SetColor(color.Name()); pointAspect.Scale = (1); context.SetDisplayMode(interactive, (int)colorInterpreter.DisplayMode, false); } if (colorInterpreter.EnableSelection == false) { interactive.UnsetSelectionMode(); interactive.HilightMode = (3); } context.Display(interactive, false); }
private AISShape AddToContext(NodeBuilder builder, TopoDSShape sourceShape, gpTrsf mirrorTransform) { var shape = new BRepBuilderAPITransform(sourceShape, mirrorTransform, true).Shape; var aisShape = new AISShape(shape); _context.Display(aisShape, false); _context.SetTransparency(aisShape, 0.8, false); ApplyColor(builder, aisShape); return(aisShape); }
private void ViewMouseMove(object sender, MouseEventArgs e) { var pnt = new gpPnt(e.X + 10, e.Y + 20, 1); if (shape != null) { context3d.Remove(shape, false); } var box = new BRepPrimAPIMakeBox(pnt, 50, 50, 50); shape = new AISShape(box.Shape); context3d.Display(shape, true); //context3d.OpenLocalContext(true, true, false, false); //context3d.ActivateStandardMode(OCTopAbs_ShapeEnum.TopAbs_SOLID); context3d.MoveTo(e.X, e.Y, view3d); //context3d.CloseAllContexts(false); }
public void Show() { _context.Display(_xAxis, false); _context.Display(_yAxis, false); _context.Display(_zAxis, false); }
/// <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); }