//-------------------------------------------------------------------------------------------------- void _PreviewHeight(ToolAction toolAction) { if (!(toolAction is AxisValueAction axisValueAction)) { return; } _ClearPreviews(); _Position = ElSLib.Value(Math.Min(_PointPlane1.X, _PointPlane2.X), Math.Min(_PointPlane1.Y, _PointPlane2.Y), _Plane).Round(); _Rotation = WorkspaceController.Workspace.GetWorkingPlaneRotation(); if (_PreviewShape == null) { // Create solid _PreviewShape = new Box { DimensionX = Math.Abs(_PointPlane1.X - _PointPlane2.X).Round(), DimensionY = Math.Abs(_PointPlane1.Y - _PointPlane2.Y).Round(), DimensionZ = 0.1 }; } var height = axisValueAction.Value.Round(); _PreviewShape.DimensionZ = (Math.Abs(height) >= 0.001) ? height : 0.001; var ocShape = _PreviewShape.GetTransformedBRep(); if (ocShape != null) { var trsf = new Trsf(_Rotation, _Position.ToVec()); _AisPreviewEdges = new AIS_Shape(ocShape); _AisPreviewEdges.SetDisplayMode(0); _AisPreviewEdges.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewEdges, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewEdges); _AisPreviewSolid = new AIS_Shape(ocShape); _AisPreviewSolid.SetDisplayMode(1); _AisPreviewSolid.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewSolid, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewSolid); } StatusText = $"Selected height: {height:0.00}"; if (_ValueHudElement != null) { _ValueHudElement.Value = height; } WorkspaceController.Invalidate(); }
//-------------------------------------------------------------------------------------------------- void _PreviewRadius(ToolAction toolAction) { if (!(toolAction is AxisValueAction axisValueAction)) { return; } _ClearPreviews(); if (_PreviewShape == null) { // Create solid _PreviewShape = new Sphere() { Radius = 0.1 }; } var radius = axisValueAction.Distance.Round(); if (radius > 0) { var trsf = new Trsf(_Point.ToVec()); _PreviewShape.Radius = radius; _AisPreviewEdges = new AIS_Shape(_PreviewShape.GetTransformedBRep()); _AisPreviewEdges.SetDisplayMode(0); _AisPreviewEdges.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewEdges, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewEdges); _AisPreviewSolid = new AIS_Shape(_PreviewShape.GetTransformedBRep()); _AisPreviewSolid.SetDisplayMode(1); _AisPreviewSolid.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewSolid, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewSolid); StatusText = $"Select Radius: {radius:0.00}"; if (_ValueHudElement != null) { _ValueHudElement.Value = radius; } } }
//-------------------------------------------------------------------------------------------------- void _PreviewHeight(ToolAction toolAction) { if (!(toolAction is AxisValueAction axisValueAction)) { return; } _Position = _PivotPoint.Round(); _Rotation = WorkspaceController.Workspace.GetWorkingPlaneRotation(); _ClearPreviews(); if (_PreviewShape == null) { // Create solid _PreviewShape = new Cylinder() { Radius = _Radius.Round(), Height = 0.1 }; } var height = axisValueAction.Value.Round(); if (Math.Abs(height) < 0.001) { height = 0.001; } if (height > 0) { _Position = _PivotPoint.Round(); _PreviewShape.Height = height; } else { _Position = _PivotPoint.Translated(_Plane.Axis.Direction.ToVec().Multiplied(height)).Round(); _PreviewShape.Height = -height; } var ocShape = _PreviewShape.GetTransformedBRep(); if (ocShape != null) { var trsf = new Trsf(_Rotation, _Position.ToVec()); _AisPreviewEdges = new AIS_Shape(ocShape); _AisPreviewEdges.SetDisplayMode(0); _AisPreviewEdges.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewEdges, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewEdges); _AisPreviewSolid = new AIS_Shape(ocShape); _AisPreviewSolid.SetDisplayMode(1); _AisPreviewSolid.SetLocalTransformation(trsf); WorkspaceController.Workspace.AisContext.Display(_AisPreviewSolid, false); WorkspaceController.Workspace.AisContext.Deactivate(_AisPreviewSolid); } StatusText = $"Selected height: {height:0.00}"; if (_ValueHudElement != null) { _ValueHudElement.Value = height; } }