
PowerDoc Objects
True Circle/Ellipse
Overview
This object represents a true mathematical circle or ellipse.
While constructing the true circle/ellipse object, an optional shadow and/or outline may be specified.
Designated Rendering Function: pdDrawTrueEllipse (7), pdDrawTrueCircle (7)
Note: Although pdBodyPtr is a key link, it is not mandatory. This means it is possible to construct a true mathematical circle or an ellipse that has no body, only an outline and/or a shadow.
Links
pdBodyPtr (1013)
Also appears in: Typography (For Outline Fonts), Row Boundary, Typographic Frame, Library Shape, Rectangle, 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.
pdShadowPtr (1016)
Also appears in: Typography (For Outline Fonts), Baseline, Row Boundary, Typographic Frame, Library Polyline, Library Shape, Line, Rectangle, 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
pdRadiusHor (1035) PD_LONG_SIGNED
Also appears in: Slice, Arc
Horizontal radius in document units. Must be positive.
Sample values:
500 = Horizontal radius of 500 document units
800 = Horizontal radius of 800 document units
pdRadiusVer (1036) PD_LONG_SIGNED
Also appears in: Slice, Arc
Vertical radius in document units. Must be positive.
Sample values:
500 = Vertical radius of 500 document units
800 = Vertical radius of 800 document units
Example
C/C++
DT_ID_SLONG obj[6];
obj[0] = pdObjAdd(pd, 0, "True Ellipse Outline Style");
obj[1] = pdObjAdd(pd, 0, "True Ellipse Body Style");
obj[2] = pdObjAdd(pd, 0, "True Ellipse Shadow Style");
obj[3] = pdObjAdd(pd, 0, "True Ellipse Outline");
obj[4] = pdObjAdd(pd, 0, "True Ellipse Shadow");
obj[5] = pdObjAdd(pd, 0, "True Ellipse");
pdPropAdd(pd, obj[0], pdRGBT, "50641400", PD_HEX);
pdPropAdd(pd, obj[1], pdRGBT, "B4961400", PD_HEX);
pdPropAdd(pd, obj[2], pdRGBT, "80808078", PD_HEX);
pdLinkAdd(pd, obj[3], pdStylePtr, obj[0]);
pdPropAdd(pd, obj[3], pdLineThickness, "240", PD_WORD_SIGNED);
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);
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], pdRadiusHor, "300", PD_LONG_SIGNED);
pdPropAdd(pd, obj[5], pdRadiusVer, "125", PD_LONG_SIGNED);
pdImgAdd(pd, obj[5], 0, 350, 150, 0, 0, 0, pdDrawTrueEllipse, DV_NULL);
INTEGRAL DSL
local o = @(label = "") CDTObj(::my.doc, label);
local p = @(id, str, len = PD_DEFAULT) CDTProp(id, str, len);
local s = @(id, str) CDTPropStr(id, str);
local i = @(id, num) CDTPropInt(id, num);
local l = @(id, obj) CDTLink(id, obj);
local obj_0 = o("True Ellipse Outline Style");
local obj_1 = o("True Ellipse Body Style");
local obj_2 = o("True Ellipse Shadow Style");
local obj_3 = o("True Ellipse Outline");
local obj_4 = o("True Ellipse Shadow");
local obj_5 = o("True Ellipse");
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(pdRadiusHor, 300);
obj_5 + i(pdRadiusVer, 125);
obj_5.Pin(0, 350, 150, pdDrawTrueEllipse);
