RhinoCommon API
RhinoDocBeforeTransformObjects Event |
Called before objects are being transformed
Namespace: Rhino
Assembly: RhinoCommon (in RhinoCommon.dll)
Since: 5.10

public static event EventHandler<RhinoTransformObjectsEventArgs> BeforeTransformObjects
Public Shared Event BeforeTransformObjects As EventHandler(Of RhinoTransformObjectsEventArgs)
Value
Type: SystemEventHandlerRhinoTransformObjectsEventArgs
using Rhino; using Rhino.DocObjects; using Rhino.Geometry; using Rhino.Commands; using Rhino.Input.Custom; using Rhino.Display; namespace examples_cs { public class GetTranslation : GetTransform { public override Transform CalculateTransform(RhinoViewport viewport, Point3d point) { var xform = Transform.Identity; Point3d base_point; if (TryGetBasePoint(out base_point)) { var v = point - base_point; if (!v.IsZero) { xform = Transform.Translation(v); if (!xform.IsValid) xform = Transform.Identity; } } return xform; } } public class RhinoGetTransformCommand : TransformCommand { public RhinoGetTransformCommand() { // simple example of handling the BeforeTransformObjects event RhinoDoc.BeforeTransformObjects += RhinoDocOnBeforeTransformObjects; } private void RhinoDocOnBeforeTransformObjects(object sender, RhinoTransformObjectsEventArgs ea) { RhinoApp.WriteLine("Transform Objects Count: {0}", ea.ObjectCount); } public override string EnglishName { get { return "csGetTranslation"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var list = new Rhino.Collections.TransformObjectList(); var rc = SelectObjects("Select objects to move", list); if (rc != Rhino.Commands.Result.Success) return rc; var gp = new GetPoint(); gp.SetCommandPrompt("Point to move from"); gp.Get(); if (gp.CommandResult() != Result.Success) return gp.CommandResult(); var gt = new GetTranslation(); gt.SetCommandPrompt("Point to move to"); gt.SetBasePoint(gp.Point(), true); gt.DrawLineFromPoint(gp.Point(), true); gt.AddTransformObjects(list); gt.GetXform(); if (gt.CommandResult() != Result.Success) return gt.CommandResult(); var xform = gt.CalculateTransform(gt.View().ActiveViewport, gt.Point()); TransformObjects(list, xform, false, false); doc.Views.Redraw(); return Result.Success; } } }
Imports Rhino Imports Rhino.DocObjects Imports Rhino.Geometry Imports Rhino.Commands Imports Rhino.Input.Custom Imports Rhino.Display Namespace examples_vb Public Class GetTranslation Inherits GetTransform Public Overrides Function CalculateTransform(viewport As RhinoViewport, point As Point3d) As Transform Dim xform = Transform.Identity Dim base_point As Point3d If TryGetBasePoint(base_point) Then Dim v = point - base_point If Not v.IsZero Then xform = Transform.Translation(v) If Not xform.IsValid Then xform = Transform.Identity End If End If End If Return xform End Function End Class Public Class RhinoGetTransformCommand Inherits TransformCommand Public Sub New() ' simple example of handling the BeforeTransformObjects event AddHandler RhinoDoc.BeforeTransformObjects, AddressOf RhinoDocOnBeforeTransformObjects End Sub Private Sub RhinoDocOnBeforeTransformObjects(sender As Object, ea As RhinoTransformObjectsEventArgs) RhinoApp.WriteLine("Transform Objects Count: {0}", ea.ObjectCount) End Sub Public Overrides ReadOnly Property EnglishName() As String Get Return "vbGetTranslation" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim list = New Rhino.Collections.TransformObjectList() Dim rc = SelectObjects("Select objects to move", list) If rc <> Rhino.Commands.Result.Success Then Return rc End If Dim gp = New GetPoint() gp.SetCommandPrompt("Point to move from") gp.[Get]() If gp.CommandResult() <> Result.Success Then Return gp.CommandResult() End If Dim gt = New GetTranslation() gt.SetCommandPrompt("Point to move to") gt.SetBasePoint(gp.Point(), True) gt.DrawLineFromPoint(gp.Point(), True) gt.AddTransformObjects(list) gt.GetXform() If gt.CommandResult() <> Result.Success Then Return gt.CommandResult() End If Dim xform = gt.CalculateTransform(gt.View().ActiveViewport, gt.Point()) TransformObjects(list, xform, False, False) doc.Views.Redraw() Return Result.Success End Function End Class End Namespace
