Leadtools.Annotations Requires Document/Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.10.31
PhysicalTransform Property
See Also  Example
Leadtools.Annotations Namespace > AnnObject Class : PhysicalTransform Property




Returns the current physical transformation Matrix of this AnnObject.

Syntax

Visual Basic (Declaration) 
Public Overridable ReadOnly Property PhysicalTransform As Matrix
Visual Basic (Usage)Copy Code
Dim instance As AnnObject
Dim value As Matrix
 
value = instance.PhysicalTransform
C# 
public virtual Matrix PhysicalTransform {get;}
Managed Extensions for C++ 
public: __property virtual Matrix get_PhysicalTransform();
C++/CLI 
public:
virtual property Matrix PhysicalTransform {
   Matrix get();
}

Return Value

The current physical transformation matrix of this AnnObject.

Example

This example will perform various transformation on an annotation object then shows its transformation matrix.

Visual BasicCopy Code
Private Sub AnnObject_PhysicalTransform(ByVal obj As AnnObject)
   ' this example only works with line objects
   If TypeOf obj Is AnnLineObject Then
      Dim line As AnnLineObject = CType(IIf(TypeOf obj Is AnnLineObject, obj, Nothing), AnnLineObject)
      ' show the logical coordinates of this line

      Dim pts As PointF() = {line.StartPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF(), line.EndPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF()}

      Console.WriteLine("Logical coordinates: {0}, {1}", pts(0), pts(1))

      ' show the physical coordinates of this line
      Dim mat As Matrix = line.PhysicalTransform
      Try
         Dim transformer As AnnTransformer = New AnnTransformer(line.Container.UnitConverter, mat)
         pts = transformer.PointToPhysical(pts)
         Console.WriteLine("Physical coordinates: {0}, {1}", pts(0), pts(1))
      Finally
         CType(mat, IDisposable).Dispose()
      End Try
   Else
      Console.WriteLine("Not an annotation line object!")
   End If
End Sub
C#Copy Code
private void AnnObject_PhysicalTransform(AnnObject obj) 

   // this example only works with line objects 
   if(obj is AnnLineObject) 
   { 
      AnnLineObject line = obj as AnnLineObject; 
      // show the logical coordinates of this line 
 
      PointF[] pts =  
       { 
          line.StartPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF(), 
          line.EndPoint.ConvertTo(line.Container.UnitConverter, AnnUnit.Pixel).ToPointF() 
       }; 
 
      Console.WriteLine("Logical coordinates: {0}, {1}", pts[0], pts[1]); 
 
      // show the physical coordinates of this line 
      using(Matrix mat = line.PhysicalTransform) 
      { 
         AnnTransformer transformer = new AnnTransformer(line.Container.UnitConverter, mat); 
         pts = transformer.PointToPhysical(pts); 
         Console.WriteLine("Physical coordinates: {0}, {1}", pts[0], pts[1]); 
      } 
   } 
   else 
      Console.WriteLine("Not an annotation line object!"); 
}

Remarks

(Read only) The physical transformation Matrix of an AnnObject is the result of multiplying the object Transform matrix by the ContainerTransform matrix.

This matrix can be used to transform points from logical (in the object coordinate) coordinates to physical coordinates. For example, the annotation toolkit uses this matrix during hit-testing.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

Leadtools.Annotations requires a Document or Medical toolkit license and unlock key. For more information, refer to: Raster Pro/Document/Medical Features