From 0610dd4f3064220a2e8fb1d8dc120044eb6c64a8 Mon Sep 17 00:00:00 2001
From: scuri Inserts a text in (x,y) according to the current font and
- text alignment. It expects an ANSI string with no line breaks. Draws a text in the position (x,y) according to the current font and
+ text alignment. It expects an ANSI string. Can have line breaks. Returns the width and height of a text's minimum box with the currently selected font. If the driver does not
- support this kind of query, the values will be given 0 (zero). It is not necessary to provide all return pointers, you
- can provide only the desired values and NULL for the others. Returns the text size independent from orientation. It is
+ not necessary to provide all return pointers, you can provide only the desired
+ values and NULL for the others. Returns the oriented bounding rectangle occupied by a text at a given
+ position. The rectangle has the same dimentions returned by
+ GetTextSize. The rectangle corners are returned in counter-clock wise
+ order starting with the bottom left corner, arranged (x0,y0,x1,y1,x2,y2,x3,y3). Returns the horizontal bounding rectangle of a text box, even if the text has an orientation. It is not necessary
+ Returns the horizontal bounding rectangle occupied by a text at a given
+ position. If orientation is not 0 then its area is always larger than the
+ area of the rectangle returned by GetTextBounds. It is not necessary
to provide all return pointers, you can provide only the desired values and NULL for the others. Returns the oriented bounding rectangle of a text box. The rectangle corners are returned in counter-clock wise
- order starting with the bottom left corner, (x,y) arranged (x0,y0,x1,y1,x2,y2,x3,y3).Attributes
void cdCanvasFont(cdCanvas* canvas, const char* typeface, int style, int size); [in C]
@@ -164,9 +164,21 @@ void wdCanvasGetTextSize(cdCanvas* canvas, const char* text, double *width, doub
canvas:GetTextSize(text: string) -> (width, heigth: number) [in Lua]
canvas:wGetTextSize(text: string) -> (width, heigth: number) (WC) [in Lua]
- void cdCanvasGetTextBounds(cdCanvas* canvas, int x, int y, const char *text, int *rect); [in C]
+void wdCanvasGetTextBounds(cdCanvas* canvas, double x, double y, const char* text, double *rect); (WC) [in C]
+
+canvas:GetTextBounds(x, y: number, text: string) -> (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) [in Lua]
+canvas:wGetTextBounds(x, y: number, text: string) -> (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) (WC) [in Lua]
+
+ void cdCanvasGetTextBox(cdCanvas* canvas, int x, int y, const char* text, int *xmin, int *xmax, int *ymin, int *ymax); [in C]
void wdCanvasGetTextBox(cdCanvas* canvas, double x, double y, const char* text, double *xmin, double *xmax, double *ymin, double *ymax); (WC) [in C]
@@ -174,18 +186,11 @@ void wdCanvasGetTextBox(cdCanvas* canvas, double x, double y, const char* text,
canvas:GetTextBox(x, y: number, text: string) -> (xmin, xmax, ymin, ymax: number) [in Lua]
canvas:wGetTextBox(x, y: number, text: string) -> (xmin, xmax, ymin, ymax: number) (WC) [in Lua]
- void cdCanvasGetTextBounds(cdCanvas* canvas, int x, int y, const char *text, int *rect); [in C]
-void wdCanvasGetTextBounds(cdCanvas* canvas, double x, double y, const char* text, double *rect); (WC) [in C]
-
-canvas:GetTextBounds(x, y: number, text: string) -> (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) [in Lua]
-canvas:wGetTextBounds(x, y: number, text: string) -> (rect0, rect1, rect2, rect3, rect4, rect5, rect6, rect7: number) (WC) [in Lua]
-
-
It is a text that uses a font created only with line segments. It is very - useful to be scaled and very fast. You must set the text size before drawing - any text. The functions ignore the new line character "\n"; only the wdMultiLineVectorText - function will consider this character. The default direction is horizontal from + useful to be scaled and very fast. You must set the text size before drawing + any text. The default direction is horizontal from left to right.
Vector Text Parameters
Draws a vector text in position (x,y), respecting the alignment defined by cdTextAlignment. It ignores the configuration cdBackOpacity, being always - transparent. It also ignores strings with multiple lines. It is ESSENTIAL to + transparent. It accepts strings with multiple lines using '\n'. It is ESSENTIAL to call cdVectorTextSize or cdVectorCharSize - before using cdVectorText or cdMultiLineVetorText.
-void cdCanvasMultiLineVectorText(cdCanvas* canvas, int x, int y, const char* text); [in C]
-void wdCanvasMultiLineVectorText(cdCanvas* canvas, double x, double y, const char* text); (WC) [in C]
-
-canvas:MultiLineVectorText(x, y: number, text: string) [in Lua]
-canvas:wMultiLineVectorText(x, y: number, text: string) (WC) [in Lua]
- Draws a vector text with several lines in position (x,y), - respecting the alignment defined by cdTextAlignment. - It ignores the configuration cdBackOpacity, being - always transparent. Lines are broken by characters "\n". Each line - respects the scale defined in cdVectorTextSize or - cdVectorCharSize. This function's purpose is to make - function cdVectorText more efficient, not being - concerned with multiple lines.
+ before using this function. +The wdCanvasVectorText is the only function that + actually depends on World Coordinates. The other Vector Text functions + although use the "wd" prefix they do not depend on World + Coordinates. They are kept with these names for backward compatibility. The + correct prefix would be "cdf".
void cdCanvasVectorTextDirection(cdCanvas* canvas, int x1, int y1, int x2, int y2); [in C]
-void wdCanvasVectorTextDirection(cdCanvas* canvas, double x1, double y1, double x2, double y2); (WC) [in C]
+void wdCanvasVectorTextDirection(cdCanvas* canvas, double x1, double y1, double x2, double y2); [in C]
canvas:VectorTextDirection(x1, y1, x2, y2: number) [in Lua]
-canvas:wVectorTextDirection(x1, y1, x2, y2: number) (WC) [in Lua]
+canvas:wVectorTextDirection(x1, y1, x2, y2: number) [in Lua]
Defines the text direction by means of two points, (x1,y1) and - (x2,y2). The default direction is horizontal from left to right.
+ (x2,y2). The default direction is horizontal from left to right. + It is independent from the transformation matrix.double* cdCanvasVectorTextTransform(cdCanvas* canvas, const double* matrix); [in C]
canvas:VectorTextTransform(matrix: table) -> (old_matrix: table) [in Lua]
Defines a transformation matrix with 6 elements. If the matrix is NULL, no - transformation is set. The default direction is no transformation. The origin + transformation is set. The default is no transformation. The origin is the left bottom corner of matrix. It returns the previous matrix, and the returned vector is only valid until the following call to the function.
The matrix contains scale, rotation and translation elements. It is applied after @@ -63,22 +55,33 @@ canvas:VectorTextTransform(matrix: table) -> (old_matrix: table) [in Lua]&nbs
|x'| | scl_x*cos(ang) -sin(ang) trans_x | |x| | 3 4 5| |y'| = | sin(ang) scl_y*cos(ang) trans_y | * |y| with indices | 0 1 2| |1|-
void cdCanvasVectorTextSize(cdCanvas* canvas, int w, int h, const char * text); [in C] -void wdCanvasVectorTextSize(cdCanvas* canvas, double size_x, double size_y, const char* text); (WC) [in C] ++It has the same effect of the + cdCanvasTransform, but notice that the indices are different.
+void cdCanvasVectorTextSize(cdCanvas* canvas, int width, int height, const char * text); [in C] +void wdCanvasVectorTextSize(cdCanvas* canvas, double width, double height, const char* text); [in C] -canvas:VectorTextSize(w, h: number, text: string) [in Lua] -canvas:wVectorTextSize(w, h: number, text: string) (WC) [in Lua]
-Modifies the scale of the vector text so that it corresponds to the string of - the bounding box defined by w and h. It ignores - strings with multiple lines.
+canvas:VectorTextSize(width, height: number, text: string) [in Lua] +canvas:wVectorTextSize(width, height: number, text: string) [in Lua]
Modifies the font size of the vector text so that it fits the string in + the box defined by width and height.
double cdCanvasVectorCharSize(cdCanvas* canvas, int size); [in C]
-double wdCanvasVectorCharSize(double size); (WC) [in C]
+double wdCanvasVectorCharSize(cdCanvas* canvas, double size); [in C]
canvas:VectorCharSize(size: number) -> (old_size: number) [in Lua]
-canvas:wVectorCharSize(size: number) -> (old_size: number) (WC) [in Lua]
- Sets the height of the characters and adjusts the width according to it. +canvas:wVectorCharSize(size: number) -> (old_size: number) [in Lua] +
Modifies the font size by specifying the height of the characters. Returns the previous value. CD_QUERY returns the current value.
+void cdCanvasVectorFontSize(cdCanvas* canvas, double size_x, double size_x); [in C]
+
+canvas:VectorFontSize(size_x, size_y: number) [in Lua]
+ Directly modifies the font size. Set size_x==size_y to maintain the + original aspect ratio of the font.
+void cdCanvasGetVectorFontSize(cdCanvas* canvas, double *size_x, double *size_x); [in C]
+
+canvas:GetVectorFontSize() -> (size_x, size_y: number) [in Lua]
+ Returns the font size. It is not necessary to provide all return + pointers, you can provide only the desired values and NULL for the others.
char* cdCanvasVectorFont(cdCanvas* canvas, const char *filename); [in C]
canvas:VectorFont(filename: string) -> (fontname: string) [in Lua]
@@ -94,23 +97,38 @@ canvas:VectorFont(filename: string) -> (fontname: string) [in Lua]
to the default font and returns NULL. The file format is
compatible with the GKS file format (text mode).
void cdCanvasGetVectorTextSize(cdCanvas* canvas, const char* text, int *w, int *h); [in C] -void wdCanvasGetVectorTextSize(cdCanvas* canvas, const char* text, double *x, double *y); (WC) [in C] ++void cdCanvasGetVectorTextSize(cdCanvas* canvas, const char* text, int *width, int *height); [in C] +void wdCanvasGetVectorTextSize(cdCanvas* canvas, const char* text, double *width, double *height); [in C] -canvas:GetVectorTextSize(text: string) -> (w, h: number) [in Lua] -canvas:wGetVectorTextSize(text: string) -> (w, h: number) (WC) [in Lua]
-Queries the string's bounding box. Ignores strings with multiple lines. It is +canvas:GetVectorTextSize(text: string) -> (width, height: number) [in Lua] +canvas:wGetVectorTextSize(text: string) -> (width, height: number) [in Lua]
Returns the text size independent from orientation. It is not necessary to provide all return pointers, you can provide only the desired values and NULL for the others.
-void cdCanvasGetVectorTextBounds(cdCanvas* canvas, char* text, int px, int py, int *rect); [in C] -void wdCanvasGetVectorTextBounds(cdCanvas* canvas, char* text, double x, double y, double *rect); (WC) [in C] +-void cdCanvasGetVectorTextBounds(cdCanvas* canvas, char* text, int x, int y, int *rect); [in C] +void wdCanvasGetVectorTextBounds(cdCanvas* canvas, char* text, double x, double y, double *rect); [in C] + +canvas:GetVectorTextBounds(text: string, x, y: number) -> (rect: table) [in Lua] +canvas:wGetVectorTextBounds(text: string, x, y: number) -> (rect: table) [in Lua]
+ +Returns the oriented bounding rectangle occupied by a text at a given + position. The rectangle has the same dimentions returned by + GetVectorTextSize. The rectangle corners are returned in counter-clock wise + order starting with the bottom left corner, arranged (x0,y0,x1,y1,x2,y2,x3,y3).
+ + +void cdCanvasGetVectorTextBox(cdCanvas* canvas, int x, int y, const char* text, int *xmin, int *xmax, int *ymin, int *ymax); [in C] +void wdCanvasGetVectorTextBox(cdCanvas* canvas, double x, double y, const char* text, double *xmin, double *xmax, double *ymin, double *ymax); [in C] + +canvas:GetVectorTextBox(x, y: number, text: string) -> (xmin, xmax, ymin, ymax: number) [in Lua] +canvas:wGetVectorTextBox(x, y: number, text: string) -> (xmin, xmax, ymin, ymax: number) [in Lua]
+ +Returns the horizontal bounding rectangle occupied by a text at a given + position. If + orientation is not 0 then its area is always larger than the area of the + rectangle returned by GetVectorTextBounds. It is not necessary + to provide all return pointers, you can provide only the desired values and NULL for the others.
-canvas:GetVectorTextBounds(text: string, px,py: number) -> (rect: table) [in Lua] -canvas:wGetVectorTextBounds(text: string, px,py: number) -> (rect: table) (WC) [in Lua]
Returns the bounding rectangle of the text specified in the current vector - font, alignment and direction. Eight values are returned, corresponding to - pairs (x,y) of the rectangle's vertices ordered conter-clockwise, starting by - the bottom left corner.
The old GKS format contains ASCII codes so a convertion from ANSI to ASCII is done when possible, unmapped characters are left unchanged, but some rearrage diff --git a/html/en/history.html b/html/en/history.html index 165a75b..25355fc 100644 --- a/html/en/history.html +++ b/html/en/history.html @@ -10,12 +10,23 @@
Coordinate System
Properties
Attributes
Properties