Mercurial > projects > dwt-mac
diff dwt/graphics/Transform.d @ 34:5123b17c98ef
Ported dwt.events.*, dwt.graphics.GC, Region, dwt.internal.image.*
author | Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com> |
---|---|
date | Sun, 14 Sep 2008 01:45:57 +0200 |
parents | 1a8b3cb347e0 |
children | db5a898b2119 |
line wrap: on
line diff
--- a/dwt/graphics/Transform.d Fri Sep 12 13:53:21 2008 +0200 +++ b/dwt/graphics/Transform.d Sun Sep 14 01:45:57 2008 +0200 @@ -7,11 +7,12 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg <jacob.carlborg@gmail.com> *******************************************************************************/ module dwt.graphics.Transform; -import dwt.dwthelper.utils; - import dwt.DWT; import dwt.DWTError; import dwt.DWTException; @@ -19,6 +20,12 @@ import dwt.internal.cocoa.NSAffineTransformStruct; import dwt.internal.cocoa.NSPoint; +import tango.text.convert.Format; + +import dwt.dwthelper.utils; +import dwt.graphics.Device; +import dwt.graphics.Resource; + /** * Instances of this class represent transformation matrices for * points expressed as (x, y) pairs of floating point numbers. @@ -169,21 +176,21 @@ if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); if (elements is null) DWT.error(DWT.ERROR_NULL_ARGUMENT); if (elements.length < 6) DWT.error(DWT.ERROR_INVALID_ARGUMENT); - NSAffineTransformStruct struct = handle.transformStruct(); - elements[0] = struct.m11; - elements[1] = struct.m12; - elements[2] = struct.m21; - elements[3] = struct.m22; - elements[4] = struct.tX; - elements[5] = struct.tY; + NSAffineTransformStruct structt = handle.transformStruct(); + elements[0] = structt.m11; + elements[1] = structt.m12; + elements[2] = structt.m21; + elements[3] = structt.m22; + elements[4] = structt.tX; + elements[5] = structt.tY; } public void identity() { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); - NSAffineTransformStruct struct = new NSAffineTransformStruct(); - struct.m11 = 1; - struct.m22 = 1; - handle.setTransformStruct(struct); + NSAffineTransformStruct structt = NSAffineTransformStruct(); + structt.m11 = 1; + structt.m22 = 1; + handle.setTransformStruct(structt); } /** @@ -197,8 +204,8 @@ */ public void invert() { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); - NSAffineTransformStruct struct = handle.transformStruct(); - if ((struct.m11 * struct.m22 - struct.m12 * struct.m21) is 0) { + NSAffineTransformStruct structt = handle.transformStruct(); + if ((structt.m11 * structt.m22 - structt.m12 * structt.m21) is 0) { DWT.error(DWT.ERROR_CANNOT_INVERT_MATRIX); } handle.invert(); @@ -226,8 +233,8 @@ */ public bool isIdentity() { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); - NSAffineTransformStruct struct = handle.transformStruct(); - return struct.m11 is 1 && struct.m12 is 0 && struct.m21 is 0 && struct.m22 is 1 && struct.tX is 0 && struct.tY is 0; + NSAffineTransformStruct structt = handle.transformStruct(); + return structt.m11 is 1 && structt.m12 is 0 && structt.m21 is 0 && structt.m22 is 1 && structt.tX is 0 && structt.tY is 0; } /** @@ -303,25 +310,25 @@ */ public void setElements(float m11, float m12, float m21, float m22, float dx, float dy) { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); - NSAffineTransformStruct struct = new NSAffineTransformStruct(); - struct.m11 = m11; - struct.m12 = m12; - struct.m21 = m21; - struct.m22 = m22; - struct.tX = dx; - struct.tY = dy; - handle.setTransformStruct(struct); + NSAffineTransformStruct structt = NSAffineTransformStruct(); + structt.m11 = m11; + structt.m12 = m12; + structt.m21 = m21; + structt.m22 = m22; + structt.tX = dx; + structt.tY = dy; + handle.setTransformStruct(structt); } public void shear(float shearX, float shearY) { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); - NSAffineTransformStruct struct = new NSAffineTransformStruct(); - struct.m11 = 1; - struct.m12 = shearX; - struct.m21 = shearY; - struct.m22 = 1; + NSAffineTransformStruct structt = NSAffineTransformStruct(); + structt.m11 = 1; + structt.m12 = shearX; + structt.m21 = shearY; + structt.m22 = 1; NSAffineTransform matrix = NSAffineTransform.transform(); - matrix.setTransformStruct(struct); + matrix.setTransformStruct(structt); handle.prependTransform(matrix); } @@ -342,8 +349,8 @@ public void transform(float[] pointArray) { if (isDisposed()) DWT.error(DWT.ERROR_GRAPHIC_DISPOSED); if (pointArray is null) DWT.error(DWT.ERROR_NULL_ARGUMENT); - NSPoint point = new NSPoint(); - int length = pointArray.length / 2; + NSPoint point = NSPoint(); + size_t length = pointArray.length / 2; for (int i = 0, j = 0; i < length; i++, j += 2) { point.x = pointArray[j]; point.y = pointArray[j + 1]; @@ -379,7 +386,7 @@ if (isDisposed()) return "Transform {*DISPOSED*}"; float[] elements = new float[6]; getElements(elements); - return "Transform {" + elements [0] + ", " + elements [1] + ", " +elements [2] + ", " +elements [3] + ", " +elements [4] + ", " +elements [5] + "}"; + return Format("Transform {{}{}{}{}{}{}{}{}{}{}{}{}" , elements [0] , ", " , elements [1] , ", " ,elements [2] , ", " ,elements [3] , ", " ,elements [4] , ", " ,elements [5] , "}"); } }