Skip to main content
Inspiring
February 23, 2012
Question

Problems with ITextFrame::GetMatrix function

  • February 23, 2012
  • 1 reply
  • 1583 views

Can anyone explain the values of the matrix returned from the ITextFrame::GetMatrix() function (wrapper for sTextFrame->GetMatrix()).

The a,b, c and d values which represent the rotation (and possibly the shear deformation) are OK,

but I can't relate the tx and ty values to the position of the text object on the artboard.

As a test I tried the following code:

AIErr

CreatePointText( short paintOrder, AIArtHandle prep,

                 AIRealPoint *textPoint, AIArtHandle *newText)

{

     AIError error;

     error = sAITextFrame->NewPointText( paintOrder, prep,

                                         kHorizontalTextOrientation,

                                         textPoint, newText);

   

     TextFrameRef ateTextRef;

     error = sAITextFrame->GetATETextFrame( *newText, &ateTextRef);

     ATE::ITextFrame ateText( ateTextRef);

         

     AIRealMatrix matrix = (AIRealMatrix) ateText.GetMatrix();


}

But the tx and ty values returned in matrix are now both 0.  They should equal textPoint.h and textPoint.v, shouldn't they?

This topic has been closed for replies.

1 reply

arenolAuthor
Inspiring
February 23, 2012

It seems that a newly created point text object will  have tx and ty equal to zero.

If I duplate that object by alt-dragging it to another location,  tx and ty will have location relative to the original object.

If I rotate the original object tx and ty will have non-zero values.

I need absolute coordinates...

Agnar

February 23, 2012

Looks like you should check out the Hard and Soft coordinates functions.

arenolAuthor
Inspiring
February 23, 2012

Tried that now. Didn't make a difference...

Agnar