/// <inheritdoc /> public override void GetGripPoints( Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { try { if (IsApplicable(entity)) { // Удаляю все ручки - это удалит ручку вставки блока grips.Clear(); var groundLine = EntityReaderService.Instance.GetFromEntity <GroundLine>(entity); if (groundLine != null) { foreach (var grip in EntityUtils.GetLinearEntityGeneralGrips(groundLine, curViewUnitSize)) { grips.Add(grip); } } } } catch (Exception exception) { if (exception.ErrorStatus != ErrorStatus.NotAllowedForThisProxy) { ExceptionBox.Show(exception); } } }
/// <inheritdoc /> public override void GetGripPoints( Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { try { if (IsApplicable(entity)) { // Удаляю все ручки - это удалит ручку вставки блока grips.Clear(); var nodalLeader = EntityReaderService.Instance.GetFromEntity <SecantNodalLeader>(entity); if (nodalLeader != null) { grips.Add(new SecantNodalLeaderGrip( nodalLeader, GripType.BasePoint, GripName.InsertionPoint, nodalLeader.InsertionPoint)); grips.Add(new SecantNodalLeaderGrip( nodalLeader, GripType.Point, GripName.LeaderPoint, nodalLeader.EndPoint)); grips.Add(new SecantNodalLevelShelfPositionGrip(nodalLeader) { GripPoint = nodalLeader.EndPoint + (Vector3d.YAxis * ((nodalLeader.MainTextHeight + nodalLeader.TextVerticalOffset) * nodalLeader.GetFullScale())), GripType = GripType.TwoArrowsLeftRight }); } } } catch (Exception exception) { if (exception.ErrorStatus != ErrorStatus.NotAllowedForThisProxy) { ExceptionBox.Show(exception); } } }
/// <inheritdoc /> public override void GetGripPoints( Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { try { if (IsApplicable(entity)) { // Удаляю все ручки - это удалит ручку вставки блока grips.Clear(); var levelMark = EntityReaderService.Instance.GetFromEntity <LevelMark>(entity); if (levelMark != null) { grips.Add(new LevelMarkGrip( levelMark, GripType.BasePoint, LevelMarkGripName.BasePoint, levelMark.InsertionPoint)); grips.Add(new LevelMarkGrip( levelMark, GripType.Point, LevelMarkGripName.ObjectPoint, levelMark.ObjectPoint)); grips.Add(new LevelMarkGrip( levelMark, GripType.Point, LevelMarkGripName.BottomShelfStartPoint, levelMark.BottomShelfStartPoint)); grips.Add(new LevelMarkGrip( levelMark, GripType.Point, LevelMarkGripName.ArrowPoint, levelMark.EndPoint)); grips.Add(new LevelMarkGrip( levelMark, GripType.Point, LevelMarkGripName.TopShelfPoint, levelMark.ShelfPoint)); _cachedBottomShelfLength = Math.Abs(levelMark.EndPoint.X - levelMark.BottomShelfStartPoint.X); } } } catch (Exception exception) { if (exception.ErrorStatus != ErrorStatus.NotAllowedForThisProxy) { ExceptionBox.Show(exception); } } }
/// <inheritdoc /> public override void GetGripPoints( Entity entity, GripDataCollection grips, double curViewUnitSize, int gripSize, Vector3d curViewDir, GetGripPointsFlags bitFlags) { try { if (IsApplicable(entity)) { // Удаляю все ручки - это удалит ручку вставки блока grips.Clear(); var section = EntityReaderService.Instance.GetFromEntity <Section>(entity); if (section != null) { // insertion (start) grip var vertexGrip = new SectionVertexGrip(section, 0) { GripPoint = section.InsertionPoint }; grips.Add(vertexGrip); // middle points for (var index = 0; index < section.MiddlePoints.Count; index++) { vertexGrip = new SectionVertexGrip(section, index + 1) { GripPoint = section.MiddlePoints[index] }; grips.Add(vertexGrip); var removeVertexGrip = new SectionRemoveVertexGrip(section, index + 1) { GripPoint = section.MiddlePoints[index] - (Vector3d.YAxis * 20 * curViewUnitSize) }; grips.Add(removeVertexGrip); } // end point vertexGrip = new SectionVertexGrip(section, section.MiddlePoints.Count + 1) { GripPoint = section.EndPoint }; grips.Add(vertexGrip); #region AddVertex grips // add vertex grips for (var i = 0; i < section.MiddlePoints.Count; i++) { if (i == 0) { var addVertexGrip = new SectionAddVertexGrip( section, section.InsertionPoint, section.MiddlePoints[i]) { GripPoint = GeometryUtils.GetMiddlePoint3d(section.InsertionPoint, section.MiddlePoints[i]) }; grips.Add(addVertexGrip); } else { var addVertexGrip = new SectionAddVertexGrip( section, section.MiddlePoints[i - 1], section.MiddlePoints[i]) { GripPoint = GeometryUtils.GetMiddlePoint3d(section.MiddlePoints[i - 1], section.MiddlePoints[i]) }; grips.Add(addVertexGrip); } // last segment if (i == section.MiddlePoints.Count - 1) { var addVertexGrip = new SectionAddVertexGrip( section, section.MiddlePoints[i], section.EndPoint) { GripPoint = GeometryUtils.GetMiddlePoint3d(section.MiddlePoints[i], section.EndPoint) }; grips.Add(addVertexGrip); } } if (!section.MiddlePoints.Any()) { var addVertexGrip = new SectionAddVertexGrip(section, section.InsertionPoint, section.EndPoint) { GripPoint = GeometryUtils.GetMiddlePoint3d(section.InsertionPoint, section.EndPoint) }; grips.Add(addVertexGrip); } #endregion #region Reverse Grips var reverseGrip = new SectionReverseGrip(section) { GripPoint = section.EntityDirection == EntityDirection.LeftToRight ? section.TopShelfEndPoint - (Vector3d.XAxis * 20 * curViewUnitSize) : section.TopShelfEndPoint + (Vector3d.XAxis * 20 * curViewUnitSize) }; grips.Add(reverseGrip); reverseGrip = new SectionReverseGrip(section) { GripPoint = section.EntityDirection == EntityDirection.LeftToRight ? section.BottomShelfEndPoint - (Vector3d.XAxis * 20 * curViewUnitSize) : section.BottomShelfEndPoint + (Vector3d.XAxis * 20 * curViewUnitSize) }; grips.Add(reverseGrip); #endregion #region Text grips if (section.TopDesignationPoint != Point3d.Origin && section.HasTextValue()) { var textGrip = new SectionTextGrip(section) { GripPoint = section.TopDesignationPoint, Name = TextGripName.TopText }; grips.Add(textGrip); } if (section.BottomDesignationPoint != Point3d.Origin && section.HasTextValue()) { var textGrip = new SectionTextGrip(section) { GripPoint = section.BottomDesignationPoint, Name = TextGripName.BottomText }; grips.Add(textGrip); } #endregion } } } catch (Exception exception) { if (exception.ErrorStatus != ErrorStatus.NotAllowedForThisProxy) { ExceptionBox.Show(exception); } } }