Index

PowerDoc Objects

Rectangle

Overview

This object represents a standard rectangle. In Power Engine API, rectangles can have flat or rounded corners.

While constructing the rectangle object, an optional shadow and/or outline may be specified.

Designated Rendering Function: pdDrawRect (6)

Note: Although pdBodyPtr is a key link, it is not mandatory. This means it is possible to construct a rectangle that has no body, only an outline and/or a shadow.

pdBodyPtr (1013)

Also appears in: Typography (For Outline Fonts), Row Boundary, Typographic Frame, Library Shape, Circle/Ellipse, True Circle/Ellipse, Slice, Pattern, Grid, Custom Shape or Polygon, Gradient, Gradient (As Fast Rectangle)

Link to the Surface Definition object.

This link supplies style attributes for the body of an object. Style attributes include color, transparency, pattern fills, special effects (e.g. blur, emboss, pattern fill) etc.

pdOutlinePtr (1014)

Also appears in: Typography (For Outline Fonts), Row Boundary, Typographic Frame, Library Shape, Circle/Ellipse, True Circle/Ellipse, Slice, Grid, Custom Shape or Polygon

Link to the Outline Definition object.

This link supplies parameters necessary to render the outline of an object.

pdShadowPtr (1016)

Also appears in: Typography (For Outline Fonts), Baseline, Row Boundary, Typographic Frame, Library Polyline, Library Shape, Line, Circle/Ellipse, True Circle/Ellipse, Slice, Arc, Grid, Custom Shape or Polygon, Polyline (also Bezier and B-Spline curve)

Link to the Shadow Definition object.

Used to render the shadow of a line, shape or some other object.

Properties

pdDw (1029)   PD_LONG_SIGNED

Also appears in: PowerFont Record, PowerFont, Library Polyline, Library Shape, Line, Circle/Ellipse, Pattern, Grid, Gradient, Gradient (As Fast Rectangle), Gradient (As Inverter), Bitmap Image, Library Bitmap Image, 3D Model

In general, this property represents the width of a line, shape or some other object in document units. Most objects assume a positive width. However, some objects (e.g. lines) can have either a positive or a negative width. In these cases, this property also indicates the direction.

This property may also be used for some other more specific purposes. For example, in PowerFonts it refers to the font's base width (or horizontal units per em-square). Similarly, in PowerFont records this property serves as the advance width of a glyph.

Sample values:

500 = Width of 500 document units
-200 = Width of -200 document units

pdDh (1030)   PD_LONG_SIGNED

Also appears in: PowerFont, Library Polyline, Library Shape, Line, Circle/Ellipse, Pattern, Grid, Gradient, Gradient (As Fast Rectangle), Gradient (As Inverter), Bitmap Image, Library Bitmap Image, 3D Model

In general, this property represents the height of a line, shape or other object in document units. Most objects assume a positive height. But some objects (e.g. lines) can have either a positive or a negative height. In these cases, the height property also indicates the direction.

This property may also be used for some other more specific purposes. For example, in PowerFonts this property refers to the font's base height (or vertical units per em-square).

Sample values:

400 = Height of 400 document units
-100 = Height of -100 document units

pdRoundX (1033)   PD_WORD_UNSIGNED

Also appears in: Row Boundary

Roundness of rectangle's corners in percentages in X direction if pdRoundY is positive, otherwise in both X and Y directions.

This value of this property must be between 0 and 100. If zero, the corners will be flat.

Sample values:

50 = 50% roundness
35 = 35% roundness

pdRoundY (1180)   PD_WORD_UNSIGNED

Also appears in: Row Boundary

Roundness of rectangle's corners in percentages in Y direction. This property has effect only when pdRoundX is positive.

This value of this property must be between 0 and 100. If zero, only pdRoundX will have effect in both X and Y directions.

Sample values:

50 = 50% roundness
35 = 35% roundness

pdEdges (1132)   PD_BYTE_UNSIGNED

Also appears in: Grid

Reserved for future use.

Example

C/C++

DT_ID_SLONG obj[6];

obj[0] = pdObjAdd(pd, 0, "Rect Outline Style");
obj[1] = pdObjAdd(pd, 0, "Rect Body Style");
obj[2] = pdObjAdd(pd, 0, "Rect Shadow Style");
obj[3] = pdObjAdd(pd, 0, "Rect Outline");
obj[4] = pdObjAdd(pd, 0, "Rect Shadow");
obj[5] = pdObjAdd(pd, 0, "Rect");

/* Properties for object 0 */
pdPropAdd(pd, obj[0], pdRGBT, "50641400", PD_HEX);

/* Properties for object 1 */
pdPropAdd(pd, obj[1], pdRGBT, "B4961400", PD_HEX);

/* Properties for object 2 */
pdPropAdd(pd, obj[2], pdRGBT, "80808078", PD_HEX);

/* Properties for object 3 */
pdLinkAdd(pd, obj[3], pdStylePtr, obj[0]);
pdPropAdd(pd, obj[3], pdLineThickness, "240", PD_WORD_SIGNED);

/* Properties for object 4 */
pdLinkAdd(pd, obj[4], pdStylePtr, obj[2]);
pdPropAdd(pd, obj[4], pdShadowDx, "5", PD_WORD_SIGNED);
pdPropAdd(pd, obj[4], pdShadowDy, "5", PD_WORD_SIGNED);

/* Properties for object 5 */
pdLinkAdd(pd, obj[5], pdBodyPtr, obj[1]);
pdLinkAdd(pd, obj[5], pdOutlinePtr, obj[3]);
pdLinkAdd(pd, obj[5], pdShadowPtr, obj[4]);
pdPropAdd(pd, obj[5], pdDw, "600", PD_LONG_SIGNED);
pdPropAdd(pd, obj[5], pdDh, "250", PD_LONG_SIGNED);
pdPropAdd(pd, obj[5], pdRound, "50", PD_WORD_UNSIGNED);


/* Image placement */
pdImgAdd(pd, obj[5], 0, 50, 50, 0, 0, 0, pdDrawRect, DV_NULL);

INTEGRAL DSL

/* Lambda shortcuts */

local o = @(label = "") CDTObj(::my.doc, label); /* to make object */
local p = @(id, str, len = PD_DEFAULT) CDTProp(id, str, len); /* to add property - general */
local s = @(id, str) CDTPropStr(id, str); /* to add property - string */
local i = @(id, num) CDTPropInt(id, num); /* to add property - integer */
local l = @(id, obj) CDTLink(id, obj); /* to add link */

/* Objects */

local obj_0 = o("Rect Outline Style");
local obj_1 = o("Rect Body Style");
local obj_2 = o("Rect Shadow Style");
local obj_3 = o("Rect Outline");
local obj_4 = o("Rect Shadow");
local obj_5 = o("Rect");

/* Object Properties */

obj_0 + s(pdRGBT, "50641400");

obj_1 + s(pdRGBT, "B4961400");

obj_2 + s(pdRGBT, "80808078");

obj_3 + l(pdStylePtr, obj_0);
obj_3 + i(pdLineThickness, 240);

obj_4 + l(pdStylePtr, obj_2);
obj_4 + i(pdShadowDx, 5);
obj_4 + i(pdShadowDy, 5);

obj_5 + l(pdBodyPtr, obj_1);
obj_5 + l(pdOutlinePtr, obj_3);
obj_5 + l(pdShadowPtr, obj_4);
obj_5 + i(pdDw, 600);
obj_5 + i(pdDh, 250);
obj_5 + i(pdRound, 50);

/* Image Pinning */

obj_5.Pin(0, 50, 50, pdDrawRect);
 

Index