summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/xetexdir/trans.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/xetexdir/trans.h')
-rw-r--r--Build/source/texk/web2c/xetexdir/trans.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/xetexdir/trans.h b/Build/source/texk/web2c/xetexdir/trans.h
new file mode 100644
index 00000000000..2a24a60f7ee
--- /dev/null
+++ b/Build/source/texk/web2c/xetexdir/trans.h
@@ -0,0 +1,94 @@
+/****************************************************************************\
+ Part of the XeTeX typesetting system
+ copyright (c) 1994-2006 by SIL International
+ written by Jonathan Kew
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL SIL INTERNATIONAL BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of SIL International
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Software without prior written
+authorization from SIL International.
+\****************************************************************************/
+
+#ifndef _TRANS_H_
+#define _TRANS_H_
+
+#ifdef XETEX_MAC
+
+#include <Carbon/Carbon.h>
+
+typedef CGAffineTransform transform;
+
+#else
+
+#include <math.h>
+
+typedef struct {
+ double a;
+ double b;
+ double c;
+ double d;
+ double x;
+ double y;
+} transform;
+
+#endif
+
+typedef struct {
+ float x;
+ float y;
+} realpoint;
+
+typedef struct {
+ float x;
+ float y;
+ float wd;
+ float ht;
+} realrect;
+
+#define xCoord(p) p.x
+#define yCoord(p) p.y
+
+#define wdField(r) r.wd
+#define htField(r) r.ht
+
+#define aField(t) t.a
+#define bField(t) t.b
+#define cField(t) t.c
+#define dField(t) t.d
+#ifdef XETEX_MAC
+#define xField(t) t.tx
+#define yField(t) t.ty
+#else
+#define xField(t) t.x
+#define yField(t) t.y
+#endif
+
+#define setPoint(P,X,Y) do { P.x = X; P.y = Y; } while (0)
+
+void makeidentity(transform* t);
+void makescale(transform* t, double xscale, double yscale);
+void maketranslation(transform* t, double dx, double dy);
+void makerotation(transform* t, double a);
+void transformpoint(realpoint* p, const transform* t);
+void transformconcat(transform* t1, const transform* t2);
+
+#endif /* _TRANS_H_ */