Appendix A:
Relevant Data Structures


 

This appendix describes the data structures that are commonly referenced in the library's chart attributes and API functions.

 

AdvancedWashRecord; Advanced Wash Record

 

AdvFormatStruct; Advanced Format Structure

 

BoxInstRec; Box Instance Record

 

BrushRecord; Brush Record

 

ColorInstRec; Color Instance Record

 

ColorModelStruct; Color Model Structure

 

dPoint3D; Point 3D

 

DropShadowInstRec; Drop Shadow Instance Record

 

FancyBoxRec; Fancy Box Record

 

FontNameInfo; Font Name Information

 

FXStruct; Special Effects Structure

 

Light3DStruct; Advanced 3D Lighting Structure

 

Material3DStruct; Advanced 3D Material Structure

 

PictureRecord; Picture Record

 

Point; Point definition

 

Point3D; Point 3D definition

 

Rect; Rectangle definition

 

RGB16; Red/Green/Blue Color definition

 

TDG_AxisDivs; Three |D| Graphics Axis Divisions

 

TDG_CustomView; Three |D| Graphics Custom View

 

TDG_GraphPresetInfo; Three |D| Graphics Graph Preset Information

 

TDG_GridLines3D; Three |D| Graphics Grid Lines 3D

 

TDG_GridLinesInfo; Three |D| Graphics Grid Lines Information

 

TDG_GridLinesOrdInfo; Three |D| Graphics Grid Lines Ordinal Information

 

TDG_GridStepValuesInfo; Grid Step Values Structure

 

TDG_GroupDepBOOLEAN16; Three |D| Graphics Group Dependent Boolean16

 

TDG_RiserThick; Three |D| Graphics Riser Thickness

 

TDG_ScaleValuesInfo; Three |D| Graphics Scale Values Information

 

TDG_SerDepBOOLEAN16; Three |D| Graphics Series Dependent Boolean16

 

TDG_SerDepErrorBarValue; Three |D| Graphics Series Dependent Error Bar Value

 

TDG_SerDepINT16; Three |D| Graphics Series Dependent INT16

 

TDG_SeriesColorInfo; Three |D| Graphics Series Color Information

 

TDG_SeriesType; Three |D| Graphics Series Type

 

TDG_StockMetricInfo; Three |D| Graphics Stock Metric Information

 

TDG_StripeDepBOOLEAN16; Three |D| Graphics Stripe Dependent Boolean16

 

TDG_TableDivsInfo; Three |D| Graphics Table Divisions Information

 

TDG_ViewStruct; Three |D| Graphics View Structure

 

TDG_VisualizeType; Three |D| Graphics Visualize Type

 

WashRecord; Wash Record

 

WedgeInfoRec; Pie Wedge Information Record

   

AdvancedWashRecord

 

This data structure defines a wash record that can be applied as a special effect to area, line, and text objects in the chart.

typedef:

typedef struct
{
     RGB16 startColor;
     RGB16 endColor;
     INT16 nOffsetX;
     INT16 nOffsetY;
     INT16 nAngle;
     INT16 nSteps;
     INT16 nScale;
     INT16 nWashType;
//     POINT *points;
//     INT16 nNumPoints;
} AdvancedWashRecord;

Members:

startColor: RGB16 structure where the starting color of the wash is stored

 

endColor: RGB16 structure where the ending color of the wash is stored

 

nOffsetX: horizontal offset percentage relative to target rectangle's top left corner. Range: 0 to 100. 0=left end point, 100=right end point

 

nOffsetY: vertical offset percentage relative to target rectangle's top left corner. Range: 0 to 100. 0=top end point, 100=bottom end point

 

nAngle: rotation angle in degrees CounterClockwise from horizontal. Range: 0 to 360. (not used in Oval Wash)

 

nSteps: number of color blending steps. The smaller the steps the more coarse the color. Range: positive integers. 0=automatic (most fine)

 

nScale: the initial size of the Oval or Rectangle Wash. Range: 0 to 100. 0=start at center, 100=start at boundary of the target rectangle. (not used in Linear Washes)

 

nWashType: INT16 the advanced wash types: WashOval, WashZoomRect and WashLinear.

Used By:

A_AREASFX, A_LINESFX, A_FONTSFX, FXStruct

Also See:

RGB16

AdvFormatStruct

 

This data structure is used to define a custom format string for the following numeric values that may be drawn in the chart:

 

Formula and correction coefficient strings drawn in conjunction with series-dependent lines

 

Numeric Axis Labels

 

Numeric Axis data text

 

Before this data structure is used, it should be initialized using the InitAdvFormat() API.

 

typedef struct _AdvFormatStruct {
     AdvFormatTypes formatType;
     UINT iLZero;
     UINT iDigits;
     UINT iGrouping;
     UINT iNegNumber;
     _TCHAR szScientificSymbol[3];
     _TCHAR szDecimal[5];
     _TCHAR szThousand[5];
     UINT iCurrDigits;
     UINT iMonGrouping;
     UINT iNegCurr;
     UINT iPosCurr;
     _TCHAR szCurrency[5];
     _TCHAR szMonDecimalSep[5];
     _TCHAR szMonThousandSep[5];
     _TCHAR szTimeFormat[32];
     _TCHAR szDateFormat[32];
     _TCHAR szPrefixText[20];
     _TCHAR szPostfixText[20];
     _TCHAR szNumColor[20];
     _TCHAR szNegColor[20];
     _TCHAR szZeroColor[20];
     BOOL bPrefixPercentSymbol;
     double dScaleFactor;
     BOOL bNoNegSign;
     LCID localeID;
     _TCHAR szCustomFormat[256];
} AdvFormatStruct, *AdvFormatPtr;

Members:

formatType: = A value from the AdvFormatTypes enum:

 

AdvFormatTypes

Value

Description

 

NoFormat

0

None

 

GeneralFormat

1

General Format

 

NumberFormat

2

Number Format

 

ScientificFormat

3

Scientific Format

 

PercentFormat

4

Percent Format

 

FractionFormat

5

Fraction Format

 

CurrencyFormat

6

Currency Format

 

DateFormat

7

Date Format

 

TimeFormat

8

Time Format

 

DateTimeFormat

9

Date/Time Format

 

ZipCodeFormat

10

Zip Code Format

 

ZipCodePlus4Format

11

Zip Code + 4-digits format (ex. input: 900675908, output: 90067-5908)

 

SSNFormat

12

Social Security Number format (ex. input: 220450867, output: 220-45-0867)

 

PhoneFormat

13

Telephone Number Format (ex. input: 3102313330, output: (310) 231-3330)

 

TextFormat

14

Text Format

 

CustomFormat

15

Custom Format

 

iLZero: leading zero flag (0=no, 1=yes). Used by NumberFormat and CurrencyFormat.

 

iDigits: # of precision digits after decimal point. Used by NumberFormat, ScientificFormat, PercentFormat, FractionFormat

 

iGrouping: # of group digits (eg, every 3 digits). Used by NumberFormat.

 

iNegNumber: negative number format code (0...4). See Win32 LCTYPE constant LOCALE_INEGSIGNPOSN for code meaning. Used by NumberFormat.

 

szScientificSymbol[3]: scientific notation symbol('E' or 'e'). Used by ScientificFormat.

 

szDecimal[5]: Decimal period symbol. Used by NumberFormat, ScientificFormat, PercentFormat, and GeneralFormat

 

szThousand[5]: Thousand separator symbol. Used by NumberFormat

 

iCurrDigits: # of precision digits after decimal point for currencies. Used by CurrencyFormat

 

iMonGrouping: # of group digits for currency (eg, every 3 digits). Used by CurrencyFormat

 

iNegCurr: negative Currency format code (0 to 15). See Win32 LCTYPE LOCALE_INEGCURR for code meaning. Used by CurrencyFormat.

 

iPosCurr: positive Currency format code (0 to 3). See Win32 LCTYPE_LOCALE_ICURRENCY for code meaning. Used by CurrencyFormat

 

szCurrency[5]: If formatType is CurrencyFormat, this member specifies the currency symbol.

 

szMonDecimalSep[5]: If formatType is CurrencyFormat, this member specifies the Currency Decimal point symbol.

 

szMonThousandSep[5]: If formatType is CurrencyFormat, this member specifies the Currency Thousand separator symbol.

 

szTimeFormat[32]: If formatType is TimeFormat or DateTimeFormat, specify a time format string (eg, "hh':'mm':'ss"). See Win32 GetTimeFormat function for all possible string formats.

 

szDateFormat[32]: If formatType is TimeFormat or DateTimeFormat, specify a date format string (eg, "MM'/'dd'/'yy"). See Win32 GetDateFormat function for all possible string formats.

 

szPrefixText[20]: If formatType is set to any value other than NoFormat, specify the text you want to put in from of the output.

 

szPostfixText[20]: If formatType is set to any value other than NoFormat, specify the text you want to append to the output.

 

szNumColor[20]: positive number color name: "red", "green", "blue", "yellow", "black", "cyan", "magenta", "white". Used by all Formats except NoFormat.

 

szNegColor[20]: negative number color name: red, green, blue, yellow, black, cyan, magenta, white. Used by all Formats except NoFormat.

 

szZeroColor[20]: zero color name: red, green, blue, yellow, black, cyan, magenta, white. Used by all Formats except NoFormat.

 

bPrefixPercentSymbol: If formatType is PercentFormat, use TRUE to put a percent sign (%) in front of number. Use FALSE to omit the percent sign.

 

dScaleFactor: If formatType is NumberFormat or CurrencyFormat, specify the factor to reduce the number (eg, 1000 Kilo, 1000000 Mega, etc.).

 

bNoNegSign: True/False use negative sign

 

localeID: Locale ID

 

szCustomFormat: Custom number format string

Notes:

1.

All of the members can work with Internationalization. Character members supports Multi-byte and Unicode. You must define those flags before using them.

 

2.

NoFormat can be used to temporarily disable advanced formatting and use the format index specified by A_FORMAT_SDLINE

 

3.

TimeFormat, DateFormat and DateTimeFormat require the use of the function PackDate to pack the time and date into a single value before formatting will work.

 

4.

ZipCodeFormat, ZipCodePlus4Format, SSNFormat, and PhoneFormat require the input to be a single number (eg, 90067-5908 should be input as 900675908).

Used By:

A2D_FORMAT_SDLINE_ADV, A2D_FORMAT_X_ADV, A2D_FORMAT_Y1_ADV, A2D_FORMAT_Y2_ADV, A2D_FORMATDTXT_X_ADV, A2D_FORMATDTXT_Y1_ADV, A2D_FORMATDTXT_Y2_ADV, API_FORMAT_DATATEXT_ADV, API_FORMAT_RINGTEXT_ADV

   

BoxInstRec

 

The Box Instance Record (BoxInstRec) data structure defines the virtual coordinates of the upper left corner and a lower right corner of a box.

 

 

A copy of this data structure is used by several attributes to define the size and location of an object in the graph.

typedef:

typedef struct {
     INT16 xULC, yULC;
     INT16 xLRC, yLRC;
} BoxInstRec, FAR *BoxInstPtr;

Members:

xULC, yULC; INT16 value in the range +/- 16383 identifying the upper left corner location in virtual coordinates (e.g., -16383, 16383 = upper-left most corner of window, 0,0 = center of window).

 

xLRC, yLRC; INT16 value in the range +/- 16383 identifying the lower right corner location in virtual coordinates (e.g., 16383, -16383 = lower-right most corner of window, 0,0 = center of window)

 

The following definitions in the header file define the maximum size of a rectangle in virtual coordinates:

 

#define

Value

 

VirtualXMIN

(-16383)

 

VirtualXMAX

16383

 

VirtualYMIN

(-16383)

 

VirtualYMAX

16383

Used By:

A_LOCATE_FOOTNOTE, A_LOCATE_FRAME, A_LOCATE_SUBTITLE, A_LOCATE_TITLE, A2D_LOCATE_LEGEND, A2D_LOCATE_LINR_TEXT, A2D_LOCATE_TITLE_X, A2D_LOCATE_TITLE_Y1, A2D_LOCATE_TITLE_Y2, A2D_LOCATE_TITLE_Y3, A2D_LOCATE_TITLE_Y4, API_INSET_LBLPIE, API_INSET_PIE

   

BrushRecord

 

The brush record (BrushRecord) data structure defines a brush special effect.

typedef:

typedef struct
{
     HBRUSH hBrush;
     INT16 nBrushMode;
} BrushRecord;

Members:

hBrush:

 

nBrushMode: BRUSHHANDLE

Used By:

FXStruct

   

ColorInstRec

 

A color instance record (ColorInstRec) contains the specifications of how to paint a given area, line, or text object. The useMaytag determines whether the area is to be painted normally or special effected. If the area is painted normally, the nRed, nGreen, and nBlue fields are used to determine the color. If the area is to use special effects, the information stored in the hMaytag field is used. The nBin and nSpectrum bin fields are used for indexed color support. The nBin field holds the index value of the color. The RGB values are also used for indexed color support and should contain the proper values for the color index. The nSpectrum bin is further used as a flag to indicate invisibility (nSpectrumBin == NOFILL).

typedef:

typedef struct {
     INT16 useMaytag;
     SFXHDL hMaytag;
     INT16 nBin;
     INT16 nSpectrumBin;
     UINT16 nRed;
     UINT16 nGreen;
     UINT16 nBlue;
     UINT16 nAlpha;
} ColorInstRec, FAR *ColorInstPtr;

Members:

useMaytag: Enable/Disable (1/0) special effects:

 

0=

Special effects disabled

 

1=

Special effects enables

 

hMaytag: Handle to special effects data

 

nBin: An INT16 value identifying a palette entry number

 

nSpectrumBin: An INT16 value identifying the bin from which RGB values originated

 

nRed; nGreen, nBlue: red/green/blue color values (0..65535)

 

nAlpha; Alpha channel (0..255) 255 = opaque, 0 = transparent

Used By:

A_AREACOLOR_ALPHA and A_LINECOLOR_ALPHA set the nAlpha member.

ColorModelStruct

 

Each ColorModelStruct defines a color model that is used by the ACM_... attributes.

typedef:

typedef struct _ColorModelStruct {
     INT16 nColorModel;
     INT16 nColorDivisions;
     RGB16 washBeginColor;
     RGB16 washEndColor;
} ColorModelStruct, *ColorModelPtr;

Members:

nColorModel: A value from the ColorModelConstants enum:

 

ColorModelConstants

Value

Description

 

CM_BY_FACE

0

Riser coloring scheme - per face in 3D graphs

 

CM_BY_SERIES

1

Color by Rows (series); one color per row.

 

CM_BY_GROUP

2

Color by Columns (groups); one color per column.

 

CM_BY_ANGLE

3

Color by Angle: color for all risers calculated based on the viewing angle (looks like a light being shone on a real 3D object). Used mostly for surface graphs.

 

CM_BY_HEIGHT

4

Color by Height; higher risers = lighter colors.

 

CM_BY_VALUE_X

5

Depends on distance to LEFT WALL (Y axis)

 

CM_BY_VALUE_Y

6

Depends on distance to FLOOR (X-axis)

 

CM_BY_VALUE_Z

7

3D only, depends on distance to RIGHT WALL

 

nColorDivisions: Number of color divisions set by ACM_COLORDIVISIONS

 

washBeginColor: RGB value of start color for washes. Set by ACM_WASHBEGIN

 

washEndColor: RGB value of end color for washes. Set by ACM_WASHEND

Used By:

ACM_ attributes

Also See:

RGB16

dPoint3D

 

This data structure is used in TDG_ViewStruct.

typedef:

typedef struct {
     INT32 x, y, z;
} dPoint3D;

Members:

x, y, z; Coordinates of a 3D point in 4-byte integers.

Also See:

TDG_ViewStruct

DropShadowInstRec

 

For area objects that can have drop shadows applied to them (thus creating drop shadow objects), the Drop Shadow Instance Record (DropShadowInstRec) data structure defines a particular instance of a drop shadow object.

typedef:

typedef struct {
     INT16 nXoff;
     INT16 nYoff;
     UINT16 nRed;
     UINT16 nGreen;
     UINT16 nBlue;
} DropShadowInstRec, FAR *DropShadowInstPtr;

Members:

nXoff: Virtual X-offset from shadowed object. -32768...32767 (although values in the range of -400 to 400 are more realistic).

 

nYoff: Virtual Y-offset from shadowed object. -32768...32767 (although values in the range of -400 to 400 are more realistic).

 

nRed, nGreen, nBlue: red/green/blue color values (0..65535)

Used By:

A_AREADROPSHADOW, A_FONTDROPSHADOW

Example:

DropShadowInstRec Shadow;
Shadow.nXoff = 100;
Shadow.nYoff = 120;
Shadow.nRed = 0;
Shadow.nGreen = 0;
Shadow.nBlue = 0;
UpdateMenu (hmenu,&wEffect,wParam);
SetGraphAttrSL(gpGraph,gpList,
     A_AREADROPSHADOW,&Shadow);

   

FancyBoxRec

 

This data structure is used by A2D_.. attributes to draw a fancy box around footnote, legend, and subtitle objects.

typedef:

typedef struct _FancyBoxRec {
     INT16 nShape;
     INT16 nStyle;
} FancyBoxRec, FAR *FancyBoxPtr;

Members:

nShape: Defines the type of fancy box that is drawn with a value from the FancyBoxShape enum:

 

FancyBoxShape

Value

Description

 

fbRectangle

0=

Regular rectangle

 

fbRoundedRect

1=

Rounded rectangle

 

fbOctagon

2=

Octagon

 

nStyle: Defines the style of the fancy box frame with a value from the FrameType enum:

 

FrameType

Value

Description

 

FrameNone

0=

No frame

 

FrameSingleLine

1=

Single line frame

 

FrameDoubleLine

2=

Double line frame

 

FrameExtrude

3=

Extruded frame

 

FrameBevel

4=

Beveled frame

 

FrameReverseBevel

5=

Reverse beveled frame

Used By:

A_FONT_FANCYBOX, A2D_LEGEND_FANCYBOX

Example:

FancyBoxRec fb;
//Put a rectangular fill behind font object
fb.nShape = fbRectangle;
//Give the rectangular fill a
//"beveled edge" appearance.
fb.nStyle = Bevel;
SetGraphAttr(pGraph, GRAPH_LAYER,
     NULL_OBJECTID, NULL_SERIESID,
     NULL_GROUPID,
     A2D_FOOTNOTE_FANCYBOX, &fb);
RGB16 aRGB;
aRGB.red = 0xFFFF;
aRGB.green = aRGB.blue = 0;
//Set the FancyBox behind footnote
//to have red fill color.
SetGraphAttr(pGraph, GRAPH_LAYER,
     O5D_LBLFOOTNOTE, -3, -3,
     A_AREACOLOR_RGB, &aRGB);

FontNameInfo

 

The Font Name Information (FontNameInfo) data structure defines a font name. The A_FONTNAME attribute defines the entries in this data structure:

typedef:

typedef struct _FontNameInfo {
     char fontName[LF_FACESIZE];
     BYTE pitchAndFamily;
     BYTE charSet;
     INT16 nFlags;
} FontNameInfo, FAR * FontNameInfoPtr;

Members:

fontName: A character string of up to 32 characters that identifies a font name resident in the application platform (e.g., Helvetica, TimesRoman, etc.)

 

pitchAndFamily: A constant that is defined in the application platform and identifies a font pitch and family (e.g., DEFAULT_PITCH). For Windows only.

 

charSet: A constant that is defined in the application platform and identifies a font character set (e.g., ANSI_CHARSET). For Windows Only.

 

nFlags: Reserved. Set to zero.

Used By:

A_FONTNAME

FXStruct

 

The special effects (FXStruct) data structure is used by the special effects attributes to apply a wash record, picture record, brush record, or advanced wash special effect to an area, font, or line object.

typedef:

typedef struct
{
     INT16 effect;
     union
     {
          WashRecord wash;
          PictureRecord picture;
          BrushRecord brush;
          AdvancedWashRecord advwash;
     } info;
} FXStruct, *FXPtr;

Members:

effect: Specifies the type of special effect with a value from the SfxType enum:

 

SfxType

Value

Description

 

WASH_FX

3

wash special effect in a WashRecord

 

PICTURE_FX

4

bitmap/picture in a PictureRecord

 

USER_PICTURE_FX

6

Reserved

 

BRUSH_FX

13

brush special effect defined in a BrushRecord

 

ADVANCED_WASH_FX

14

advanced special effect defined in AdvancedWashRecord

 

WashRecord is included for backward compatibility. AdvancedWashRecord should be used for new implementations.

 

wash; If effect is set to WASH_FX, identify the wash special effect in a WashRecord data structure. See WashRecord.

 

picture; If effect is set to PICTURE_FX, identify the picture special effect in a PictureRecord data structure. See PictureRecord.

 

brush; If effect is set to BRUSH_FX, identify the brush special effect in a BrushRecord data structure. See BrushRecord.

 

advwash; If effect is set to ADVANCED_WASH_FX, identify the advanced special effect in an AdvancedWashRecord data structure. See AdvancedWashRecord.

Used By:

A_AREASFX, A_FONTSFX, A_LINESFX

Also See:

WashRecord, PictureRecord, BrushRecord, AdvancedWashRecord

Light3DStruct

 

This data structure is used to define one of four lights that can be used for Advanced 3D rendering.

typedef:

typedef struct {
     BOOLEAN16 bLightOn;
     REAL64 fRed;
     REAL64 fGreen;
     REAL64 fBlue;
     REAL64 fDiffuseAmt;
     REAL64 fSpecularAmt;
     REAL64 fPositionX;
     REAL64 fPositionY;
     REAL64 fPositionZ;
     REAL64 fAttenuation;
     INT32 nFlags;
} Light3DStruct, FAR * Light3DPtr;

Members:

bLightOn: Turns light on (TRUE) or off (FALSE). There should always be at least one light (usually Light1) turned on.

 

fRed, fGreen, fBlue: These elements define the color of the light. The color of the light will reflect on the graph (or title, in the case of TitleLight) and subtly change the color of the chart.

 

fDiffuseAmt: How much is this light diffused (0 to 1.0)? More diffuse will spread over the entire graph. The less diffusion, the more the light will act as a spotlight directly under the light's position.

 

fSpecularAmt: Sets the specular quality for this light (0 to 1.0). Specular means how reflective this light will be. Smaller values produce very little reflection, larger values product a lot of reflection. Changing the specular value will have a visible effect on the graph via the intensity of highlights or glints on surfaces that are closest to the light. The effect can be subtle to invisible depending on the exact angle of the chart and the distance and position of the given light source.

 

fPositionX: X-position of the light (-10 to 10). This position uses the same coordinate space as the attributes for chart angle. Negative values for X are to the left, positive are to the right.

 

fPositionY: Y-position of the light (-10 to 10). This position uses the same coordinate space as the attributes for chart angle. Negative values for Y are down, positive values are up.

 

fPositionZ: Position of light in the Z-plane of 3D space (-10 to 10). Negative values for Z bring the light closer; 0 means the light is at the exact same plane as the chart itself; positive values send the light further away (literally behind the chart, granting a backlit effect).

 

fAttenuation: How attenuated this light will be (0 to 1.0)

 

nFlags: This structure element is reserved for future enhancements.

Used By:

A3D_ADV_CHARTLIGHT_1/2/3, A3D_ADV_TITLELIGHT

   

Material3DStruct

 

This data structure is used by A3D_ADV_LABEL_MATERIAL and A3D_ADV_DEFAULT_MATERIAL to define the structure for the material of the chart.

typedef:

typedef struct {
     REAL64 fDiffRed;
     REAL64 fDiffGreen;
     REAL64 fDiffBlue;
     REAL64 fSpecRed;
     REAL64 fSpecGreen;
     REAL64 fSpecBlue;
     REAL64 fShininess;
     REAL64 fTextureTint;
     REAL64 fTextureScale;
     INT32 nFlags;
} Material3DStruct, FAR * Material3DPtr;

Members:

fDiffRed, fDiffGreen, fDiffBlue, fSpecRed, fSpecGreen, fSpecBlue: These entries are reserved for future use.

 

fShininess: How shiny is the chart or labels?

 

fTextureTint: How much does the color of a chart object affect the coloring of the texture applied to it? When using OpenGL, textures can be colored. PGSDK automatically uses the color of the chart object as the tint for any texture applied to this object. The amount of tinting can be controlled using this element of the structure. Use a large value for fTextureTint will mean that the texture's color is nearly completely overridden by the chart object color; small values will allow much more of the texture's natural color to shine throught. Remember that since there is only ONE material for the entire chart, that this setting will apply to ALL textures applied to ALL objects.

Used By:

A3D_ADV_LABEL_MATERIAL, A3D_ADV_DEFAULT_MATERIAL

   

PictureRecord

 

This data structure is part of the special effects data structure.

typedef:

typedef struct
{
     INT16 pictScale;
     INT16 pictFlip;
     INT16 xExt;
     INT16 yExt;
     char pictName[MAXFILENAME];
     INT16 format;
} PictureRecord;

Members:

pictScale: Uses one of the following picture scaling values from the PictureScalingTypes enum:

 

PictureScalingTypes

Value

Description

 

ScaleNone

0

No Scaling

 

Scale2Fit

1

Scale to fit

 

Scale2Frame

2

Scale to frame

 

Scale2Background

3

Scale to background

 

Tiled

4

Tiled

 

Tiled2Frame

5

Tiled to Frame

 

Tiled2Background

6

Tiled to background

 

BrickHorizontal

7

Brick Horizontal

 

BrickVertical

8

Brick Vertical

 

Stack

9

Stack

 

ScaleProportional

10

Scale Proportional

 

pictFlip: Uses one of the following values from the FilpTypes enum:

 

FlipTypes

Value

Description

 

NullFlip

0

Don't flip

 

FlipH

1

Flip Horizontal

 

FlipV

2

Flip Vertical

 

FlipHV

3

Flip Horizontal/Vertical

 

xExt, yExt: For a Metafile only, specifies the coordinates of "X Extents" and "Y Extents".

 

pictName: Character string identifying the name of a file where the picture is stored. The extension must be: ".BMP" or ".GIF". The maximum length of the string is #defined by MAXFILENAME:

 

#define MAXFILENAME 128

 

format: Reserved for system use.

 

hdl: An INT32 value that is the picture file's (pictName) handle.

Used By:

FXStruct, A_AREASFX, A_FONTSFX, A_LINESFX

Point

 

This data structure defines the x,y coordinates of a point.

typedef:

typedef struct tagPOINT
{
     int x; /* x-coordinate */
     int y; /* y-coordinate */
} POINT;

Members:

x: INT16 value of the x-coordinate

 

y: INT16 value of the y-coordinate

Used By:

AAN_ENDPOINTS

   

Point3D

Description:

This data structure defines the x,y coordinates of a point on a 3D graph.

typedef:

typedef struct _Point3D {
     INT16 x; /* x-coordinate value */
     INT16 y; /* y-coordinate value */
     INT16 z; /* z-coordinate value */
} Point3D, FAR * Point3DPtr;

Members:

x: INT16 value of the x-coordinate

 

y: INT16 value of the y-coordinate

 

z: INT16 value of the z-coordinate

Used By:

TDG_ViewStruct

Rect

 

This data structure defines the virtual coordinates of the upper left corner and a lower right corner of a rectangle.

typedef:

typedef struct tagRECT
{
     int left; int top;
     int right; int bottom;
} RECT;
#define Rect RECT

Members:

left, top; Two integers that define the top-left corner of the rectangle.

 

right, bottom; Two integers that define the bottom-right corner of the rectangle.

Used By:

AAN_BOUNDS

   

RGB16

 

The RGB16 data structure is a color triplet information record that defines the color of an particular instance of an object.

typedef:

typedef struct {
     UINT16 red; //0...65536
     UINT16 green; //0...65536
     UINT16 blue; //0...65536
} RGB16, FAR *RGB16Ptr;

Members:

red, green, blue: 0...65535. PGSDK uses a 48-bit color space (16 bits for each element red, green, blue). For the Windows platform, you must multiply each value by 256 to convert a Windows 8-bit color value to the PGSDK 16-bit color value. Example:

 

nRed = 256; // full red in Windows
MyRGB16 red = nRed<<8; // Set PGSDK to full red

Used By:

A_AREABACKCOLOR, A_AREACOLOR_RGB, A_FONTCOLOR_RGB, A_FONTBACKCOLOR, A_LINECOLOR_RGB, ACM_WASHBEGIN, ACM_WASHEND

Example:

/* one way to create white */
RGB16 white = {65280, 65280, 65280};
/* another way to create white */
RGB16 white = {0xff00, 0xff00, 0xff00};

   

TDG_AxisDivs

 

This data structure is used by the A3D_AXIS_DIVS_X, _Y, AND _Z attributes to control the number of grid divisions that are drawn on the graph walls for a given axis (x, y, or z).

typedef:

typedef struct {
     BOOLEAN16 bManualMajorHash;
     INT16 nMajorHash;
} TDG_AxisDivs, FAR * TDG_AxisDivsPtr;

Members:

bManualMajorHash: Manual/Automatic Calculation Flag.

 

TRUE=

Manually set grids for this axis

 

FALSE=

The number of axis grid divisions are calculated automatically

 

nMajorHash: number of grid divisions to use for this axis if bManualMajorHash is TRUE

Used By:

A3D_AXIS_DIVS_X/Y/Z

   

TDG_CustomView

 

This data structure is used by the A3D_CUSTOMVIEW attribute to define a custom view of a 3D graph.

typedef:

typedef struct {
     INT16 FunctionCode;
     INT16 StepSize;
} TDG_CustomView, FAR * TDG_CustomViewPtr;

Members:

FunctionCode: A custom view code from the CustomViewCodes enum:

 

CustomViewCodes

Value

Description

 

CV_Turn_X_Minus

0

ROTATE on X-axis counterclockwise

 

CV_Turn_Y_Minus

1

ROTATE on Y-axis counterclockwise

 

CV_Turn_Z_Minus

2

ROTATE on Z-axis counterclockwise

 

CV_Turn_X_Plus

3

ROTATE on X-axis clockwise

 

CV_Turn_Y_Plus

4

ROTATE on Y-axis clockwise

 

CV_Turn_Z_Plus

5

ROTATE on Z-axis clockwise

 

CV_Move_X_Minus

6

MOVE along X towards 3D origin point

 

CV_Move_Y_Minus

7

MOVE along Y towards 3D origin point

 

CV_Move_Z_Minus

8

MOVE along Z towards 3D origin point

 

CV_Move_X_Plus

9

MOVE along X away from 3D origin point

 

CV_Move_Y_Plus

10

MOVE along Y away from 3D origin point

 

CV_Move_Z_Plus

11

MOVE along Z away from 3D origin point

 

CV_Size_X_Minus

12

DECREASE X cube dimension (cube width)

 

CV_Size_Y_Minus

13

DECREASE Y cube dimension (cube height)

 

CV_Size_Z_Minus

14

DECREAES Z cube dimension (cube height)

 

CV_Size_X_Plus

15

INCREASE X cube dimension (cube width)

 

CV_Size_Y_Plus

16

INCREASE Y cube dimension (cube height)

 

CV_Size_Z_Plus

17

INCREASE Z cube dimension (cube height)

 

CV_Wall_X_Minus

18

DECREASE left wall thickness

 

CV_Wall_Y_Minus

19

DECREASE floor thickness

 

CV_Wall_Z_Minus

20

DECREASE right wall thickness

 

CV_Wall_X_Plus

21

INCREASE left wall thickness

 

CV_Wall_Y_Plus

22

INCREASE floor thickness

 

CV_Wall_Z_Plus

23

INCREASE right wall thickness

 

CV_Pan_X_Minus

24

PAN graph cube to the left on screen (in 2D)

 

CV_Pan_Y_Minus

25

PAN graph cvube upwards on screen (in 2D)

 

CV_Relative

26

Turn relative rotation/movement ON ("relative" to graph's axes)

 

CV_Pan_X_Plus

27

PAN graph cube to the right on screen (in 2D)

 

CV_Pan_Y_Plus

28

PAN graph cube downwards on screen (in 2D)

 

CV_Absolute

29

Turn relative rotation/movement OFF (NOT relative, but absolute; in ref. to the world's axes)

 

CV_Zoom_Plus

30

ZOOM into the graph

 

CV_Focus_Minus

31

INCREASE perspective distortion on graph

 

CV_StepSize

32

NOT USED

 

CV_Zoom_Minus

33

ZOOM away from the graph

 

CV_Focus_Plus

34

DECREASE perspective distortion on graph

 

CV_InitMatrix

35

 
 

StepSize: Determines how far (in virtual coordinates) the graph moves for the given function. It can be set to any INT16 value.

Used By:

A3D_CUSTOMVIEW

Example:

static TDG_CustomView CV_Relative = {26,1};
SetGraphAttrSL (gpGraph,NULL,
     A3D_CUSTOMVIEW,
      (void FAR *) &CV_Relative);

   

TDG_GraphPresetInfo

 

This data structure is used by the A_GRAPH_PRESET attribute to define the graph type and subtype.

typedef:

typedef struct {
     INT16 nMajorType;
     INT16 nMinorType;
} TDG_GraphPresetInfo, FAR *TDG_GraphPresetPtr;

Members:

nMajorType: Selects the major graph category from the TDG_GRAPH_TYPE enum:

 

TDG_GRAPH_TYPE :

Value

Description

 

TDG_GRAPH_3D

0=

3D Graphs

 

TDG_GRAPH_AREA

1=

Horizontal and Vertical Area Graphs

 

TDG_GRAPH_BARS

2=

Horizontal and Vertical Bar Graphs

 

TDG_GRAPH_LINES

3=

Horizontal and Vertical Line Graphs

 

TDG_GRAPH_PIE

4=

Pie Charts

 

TDG_GRAPH_SPECIAL

5=

Special Graphs (i.e., Radar, Polar, Spectral Maps, etc.)

 

TDG_GRAPH_TABLE

6=

Table Chart

 

TDG_GRAPH_TEXT

7=

Text Chart

 

nMinorType: For TDG_GRAPH_TABLE and TDG_GRAPH_TEXT, this value should always be zero. For other graph types, this value depends on the value of nMajorType.

 

If nMajorType is set to TDG_GRAPH_3D (0), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

THREE_D_BARS

0

If nMajorType is TDG_GRAPH_3D(0), this nMinorType selects a 3D Riser Bar chart.

 

THREE_D_CUBE

1

If nMajorType is TDG_GRAPH_3D(0), this nMinorType selects a 3D Floating Cubes chart.

 

THREE_D_CUTCORNER

2

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Riser Cut-Corner Bar chart.

 

THREE_D_DIAMOND

3

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Floating Spheres chart.

 

THREE_D_OCTAGON

4

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Riser Octogan chart.

 

THREE_D_PYRAMID

5

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Riser Pyramid chart

 

THREE_D_SQUARE

6

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Riser Square chart.

 

THREE_D_ROW_AREA

7

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Series Area chart

 

THREE_D_ROW_LINE

8

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Series Ribbons chart

 

THREE_D_ROW_STEP

9

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Series Steps chart

 

THREE_D_COL_AREA

10

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Group Area chart

 

THREE_D_COL_LINE

11

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Group Ribbons chart

 

THREE_D_COL_STEP

12

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Connect Group Steps chart

 

THREE_D_HONEYCOMB

13

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Honeycomb Surface chart

 

THREE_D_MODEL

14

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Model chart

 

THREE_D_SURFACE

15

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D Surface chart

 

THREE_D_SCATTER

16

If nMajorType is TDG_GRAPH_3D, this nMinorType selects a 3D X-Y-Z Scatter Chart

 

If nMajorType is set to TDG_GRAPH_AREA (1), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

AREA_ABSOLUTE

0

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects an Absolute Area chart.

 

AREA_ABSOLUTE_DUALY

1

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects a Dual-Axes Absolute Area chart.

 

AREA_ABSOLUTE_DUALY_BIPOLAR

3

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects a BiPolar Absolute Area chart.

 

AREA_STACKED

4

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects a Stacked Area chart.

 

AREA_STACKED_DUALY

5

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects a Dual-Axes Stacked Area chart.

 

AREA_STACKED_DUALY_BIPOLAR

7

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects a BiPolar Stacked Area chart.

 

AREA_PERCENT

12

If nMajorType is TDG_GRAPH_AREA, this nMinorType selects an Percent Area chart.

 

If nMajorType is set to TDG_GRAPH_BARS (2), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

BAR_STACKED

4

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Stacked Bar Chart

 

BAR_STACKED_DUALY

5

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Dual-Axes Stacked Bar Chart

 

BAR_STACKED_BIPOLAR

6

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a BiPolar Stacked Bar Chart

 

BAR_STACKED_DUALY_BIPOLAR

7

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Dual-Axes BiPolar Stacked Bar Chart

 

BAR_SIDEBYSIDE

8

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Side by Side Bar Chart

 

BAR_SIDEBYSIDE_DUALY

9

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Dual-Axes Side by Side Bar Chart

 

BAR_SIDEBYSIDE_DUALY_BIPOLAR

11

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a BiPolar Side by Side Bar Chart

 

BAR_PERCENT

12

If nMajorType is TDG_GRAPH_BARS, this nMinorType selects a Percent Bar Chart

 

If nMajorType is set to TDG_GRAPH_LINES (3), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

LINE_ABSOLUTE

0

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects an Absolute Line Chart

 

LINE_ABSOLUTE_DUALY

1

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a Dual-Axes Absolute Line Chart

 

LINE_ABSOLUTE_DUALY_BIPOLAR

3

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a BiPolar Absolute Line Chart

 

LINE_STACKED

4

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a Stacked Line Chart

 

LINE_STACKED_DUALY

5

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a Dual-Axes Stacked Line Chart

 

LINE_STACKED_DUALY_BIPOLAR

7

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a BiPolar Stacked Line Chart

 

LINE_PERCENT

12

If nMajorType is TDG_GRAPH_LINES, this nMinorType selects a Percent Line Chart

 

If nMajorType is set to TDG_GRAPH_PIE (4), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

PIE_SINGLE

0

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Pie Chart

 

PIE_SINGLE_RING

1

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Ring Pie Chart

 

PIE_MULTIPLE

2

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Multiple Pie chart

 

PIE_MULTIPLE_PROPORTIONAL

3

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Multiple Proportional Pie chart

 

PIE_MULTIPLE_RING

4

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Multiple Ring Pie chart

   

5

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Multiple Proportional Ring Pie chart

 

PIE_BAR

6

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Pie Bar Chart

   

7

If nMajorType is TDG_GRAPH_PIE, this nMinorType selects a Ring Pie Bar Chart

 

If nMajorType is set to TDG_GRAPH_SPECIAL (5), set nMinorType to one of these values.

 

nMinorType

Value

Description

 

SPECIAL_HISTOGRAM

0

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Histogram Chart

 

SPECIAL_SPECTRAL

1

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Spectral Map

 

SPECIAL_POLAR

2

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Polar Coordinate Chart

 

SPECIAL_SCATTER

3*

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects an X-Y Scatter or X-Y Scatter with Labels Chart

 

SPECIAL_SCATTER_DUALY

4*

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual-Axes X-Y Scatter or Dual-Axes X-Y Scatter with Labels Chart

 

SPECIAL_HILO

5*

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a HiLo, HiLoOpen, or HiLoOpenClose Stock Chart

 

SPECIAL_HILO_DUALY

6*

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual-Axes HiLo, HiLoOpen, or HiLoOpenClose Stock Chart

   

11

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual-Axes Polar Coordinate Chart

 

SPECIAL_RADAR_ABSOLUTE_LINE

12

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Radar Line Chart

 

SPECIAL_RADAR_STACKED_AREA

13

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Radar Stacked Area Chart

   

14

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual-Axes Radar Line Chart

   

15

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual-Axes Radar Stacked Area Chart

 

SPECIAL_BUBBLE

17

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Bubble Chart

   

18

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Dual Axes Bubble Chart

 

SPECIAL_GANTT

19

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Gantt Chart

 

SPECIAL_RADAR_ABSOLUTE_AREA

20

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Radar Absolute Area Chart

 

SPECIAL_JAPANESE_STOCK

21

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Candle Stock Chart

 

SPECIAL_STEMLEAF

22

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Stemleaf Chart

 

SPECIAL_MULTIBAR

23

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Multi-Bar Chart

 

SPECIAL_WATERFALL

24

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Vertical Waterfall Chart

 

SPECIAL_WATERFALL_HORIZONTAL

25

If nMajorType is TDG_GRAPH_SPECIAL, this nMinorType selects a Horizontal Waterfall Chart

 

SPECIAL_CI_BALANCE_SCORECARD

26

Balance Score Card Chart. Chart Intelligence ChartType (Only available in Chart Intelligence build)

 

SPECIAL_CI_PRODUCT_POSITION

27

Product Positioning Chart. Chart Intelligence ChartType (Only available in Chart Intelligence build)

 

SPECIAL_CI_RESOURCE_RETURN

28

Resource Return Chart. Chart Intelligence ChartType (Only available in Chart Intelligence build)

 

SPECIAL_CI_TIME_SERIES

29

Time Series Chart. Chart Intelligence ChartType (Only available in Chart Intelligence build)

 

SPECIAL_CI_4Y

30

Multi-Y Chart (Only available in Chart Intelligence build)

 

SPECIAL_CI_CENTROID

31

Centroid (Only available in Chart Intelligence build)

 

SPECIAL_RADAR_AREA_STACKED

32

Radar Area Stacked (Only available in Chart Intelligence build)

 

* These nMinorType values are further defined by the format of data input to the chart by A2D_DATAFORMAT

Used By:

A_GRAPH_PRESET

Example:

case IDM_HISTOGRAM:
     iGraph = 8;
     break;
case IDM_TABLE:
     iGraph = 9;
     break;
}
/* MAKE CALL TO SELECT A DIFFERENT
PRESET GRAPH TYPE */
SetGraphAttrSL(gpGraph,NULL,
     A_GRAPH_PRESET,
     &GraphTable[iGraph]);

TDG_GridLines3D

 

This data structure is used by the A3D_GRID_... attributes to select an axis (x, y, or z) and to define its hash style.

typedef:

typedef struct {
     INT16 Axis;
     INT16 HashStyle;
} TDG_GridLines3D, FAR * TDG_GridLines3DPtr;

Members:

Axis; 0...2

 

0=

X-axis

 

1=

Y-axis, not used to locate points on the floor

 

2=

z-axis

 

HashStyle: -1...any positive integer value

 

-1=

continuous line goes all the way across wall

 

0=

no grid line

 

>0=

variable length; doesn't go all the way across wall

Used By:

A3D_GRID_FLOOR, A3D_GRID_LWALL, A3D_GRID_RISER, A3D_GRID_RWALL

Example:

gridRec.Axis = xxUI;
gridRec.HashStyle = (
     optionsList[0]) ? -1 : 0;
r = SetGraphAttrSL ( pGraph,
     PSelList, A3D_GRID_RWALL,
     (void FAR *) &gridRec );

TDG_GridLinesInfo

 

This data structure is used by the A2D_GRID... attributes to control the appearance of numeric axis (X, Y1, Y2, Y3, Y4) grid lines.

typedef:

typedef struct _TDG_GridLines {
     BOOLEAN16 bIsLog;
     BOOLEAN16 bMajorHashManual;
     BOOLEAN16 bMinorHashManual;
     INT16 nMajorHashStyle;
     INT16 nMinorHashStyle;
     INT16 nMajorHashCount;
     INT16 nMinorHashCount;
} TDG_GridLinesInfo, FAR * TDG_GridLinesPtr;

Members:

bIsLog: TRUE/FALSE

 

TRUE=

Use logarithmic scale

 

FALSE=

Use linear scale

 

bMajorHashManual: TRUE/FALSE

 

TRUE=

Use manual settings for major grids (nMajorHashCount)

 

FALSE=

Use the automatic settings (charting engine calculates scale)

 

bMinorHashManual: TRUE/FALSE

 

TRUE=

Use manual settings for the minor grids (nMinorCashCount)

 

FALSE=

Use the automatic settings (charting engine calculates scale)

 

nMajorHashStyle: A value (0...5) from the HashStyleType enum:

 

nMinorHashStyle: A value (0...5) from the HashStyleType enum:

 

HashStyleType

Value

Description

 

NoHash

0

No grids lines

 

Grid

1

Normal grid lines, width frame

 

GridExtended

2

Normal grid lines extended beyond with of frame

 

TickIn

3

Small tick marks from frame edge inward

 

TickOut

4

Small tick marks from frame edge outward

 

TickSpan

5

TickIn and TickOut span across the frame edge

 

nMajorHashCount: Number of major grid lines to draw (bMajorHashManual must be set TRUE)

 

nMinorHashCount: Number of minor grid lines to draw between each of major grid (bMinorHashManual must be set TRUE)

Used By:

A2D_GRIDLINES_X/Y1/Y2/Y3/Y4

   

TDG_GridLinesOrdInfo

 

This data structure is used by the A2D_GRID... attributes to control the appearance of axis lines on the ordinal axes.

typedef:

typedef struct _TDG_GridLinesOrd {
     INT16 nMajorHashStyle;
     INT16 nMinorHashStyle;
     INT16 nMinorHashCount;
     INT16 nSuperHashStyle;
     INT16 nSuperHashCount;
} TDG_GridLinesOrdInfo, FAR * TDG_GridLinesOrdPtr;

Members:

nMajorHashStyle: A value (0...5) from the HashStyleType enum:

 

nMinorHashStyle: A value (0...5) from the HashStyleType enum:

 

HashStyleType

Value

Description

 

NoHash

0

No grids lines

 

Grid

1

Normal grid lines, width frame

 

GridExtended

2

Normal grid lines extended beyond with of frame

 

TickIn

3

Small tick marks from frame edge inward

 

TickOut

4

Small tick marks from frame edge outward

 

TickSpan

5

TickIn and TickOut span across the frame edge

 

nMinorHashCount: 0...50. 0 = no minor gridlines between each major, 50 = 50 minor gridlines between each major.

 

nSuperHashStyle: A value (0...5) from the HashStyleType enum:

 

HashStyleType

Value

Description

 

NoHash

0

No grids lines

 

Grid

1

Normal grid lines, width frame

 

GridExtended

2

Normal grid lines extended beyond with of frame

 

TickIn

3

Small tick marks from frame edge inward

 

TickOut

4

Small tick marks from frame edge outward

 

TickSpan

5

TickIn and TickOut span across the frame edge

 

nSuperHashCount: 0...50. 0 = every major grid replaced with a super grid, 2-50 = draw "n" major grids normally, then replace next with a super grid line.

Used By:

A2D_GRIDLINESORD_O1, A2D_GRIDLINESORD_O2

TDG_GridStepValuesInfo

 

This data structure is used by A2D_GRID_STEP_X, A2D_GRID_STEP_Y1, and A2D_GRID_STEP_Y2 to enable/disable grid-step mode and the grid step interval to be used when this mode of drawing gridlines and labels is enabled.

typedef:

typedef struct _TDG_GridStepValues {
     BOOLEAN16 bUseGridStep;
     REAL fGridStep;
} TDG_GridStepValuesInfo, FAR * TDG_GridStepValuesPtr;

Members:

bUseGridStep; True/False

 

TRUE=

Activate this mode of drawing gridlines and labels

 

FALSE=

Deactivate this mode

 

fGridStep; Interval of gridlines and labels to draw.

Used By:

A2D_GRID_STEP_X/Y1/Y2/Y3/Y4

   

TDG_GroupDepBOOLEAN16

 

Group Dependent BOOLEAN16. This data structure is used to get or assign a boolean value to an attribute for a specific group.

typedef:

typedef struct _TDG_GroupDepBOOLEAN16 {
     INT16 nGroupID;
     BOOLEAN16 bValue;
} TDG_GroupDepBOOLEAN16, FAR * TDG_GroupDepBOOLEAN16Ptr;

Members:

nGroupID: 0...Number of groups

 

bValue: When setting the attribute of a group, this is the new value (True/False) used for the attribute. When getting the attribute of a group, this is the location used to store the requested attribute value.

Used By:

API_SHOW_AS_COLUMN

   

TDG_RiserThick

 

This data structure is used by the A3D_RISERTHICK attribute to specify the thickness of risers in a 3D chart.

typedef:

typedef struct {
     INT16 xThick;
     INT16 yThick;
     INT16 zThick;
} TDG_RiserThick, FAR * TDG_RiserThickPtr;

Members:

xThick:Value Range = 0-200, 5 = Will produce needles, 100 = "Average" riser thickness, 200 = Would have all the risers touching each other.

 

yThick:Value Range = 0-200; see xThick

 

zThick:Value Range = 0-200; see xThick

Used By:

A3D_RISERTHICK

TDG_ScaleValuesInfo

 

This data structure is used by the A2D_SCALE_X, A2D_SCALE_Y1, A2D_SCALE_Y2, A3D_SCALERANGE_X, A3D_SCALERANGE_Y, and A3D_SCALERANGE_Z to define how value labels are calculated and drawn on a numeric axis.

typedef:

typedef struct _TDG_ScaleValues {
     INT16 nManualScale;
     REAL fManualScaleMax;
     REAL fManualScaleMin;
} TDG_ScaleValuesInfo, FAR * TDG_ScaleValuesPtr;

Members:

nManualScale :0...3

 

0=

Automatic scaling. Let the charting engine calculate and draw value labels on this axis.

 

1=

Manual scaling. Use the value set by fManualScaleMax as the maximum value and the value set by fManualScaleMin as the minimim value on this axis.

 

2=

Manual Minimum/Automatic Maximum. Use the value set by fManualScaleMin as the minimum value. Let the charting engine automatically calcuate the maximum value on this axis.

 

3=

Automatic Minimum/Manual Maximum. Let the charting engine automatically calcuate the minimum value on this axis. Use the value set by fManualScaleMax as the maximum value.

 

fManualScaleMax: If nManualScale is set to "1" or "3", specify the maximum value to display on this axis.

 

fManualScaleMin: If nManualScale is set to "1" or "2", specify the minimum value to display on this axis.

Used By:

A2D_SCALE_X/Y1/Y2, A3D_SCALERANGE_X/Y/Z

TDG_SerDepBOOLEAN16

 

This data structure is used by many A2D_... attributes to modify series dependent attributes that require a series ID and an BOOLEAN16 value.

typedef:

typedef struct _TDG_SerDepBOOLEAN16 {
     INT16 nSeriesID;
     BOOLEAN16 bValue;
} TDG_SerDepBOOLEAN16, FAR * TDG_SerDepBOOLEAN16Ptr;

Members:

nSeriesID; a series ID

 

bValue; When setting the attribute of a series, this is the new value (True/False) used for the attribute. When getting the attribute of a series, this is the location used to store the requested attribute value.

Used By:

A2D_IGNORE_GROUPS, A2D_IGNORE_SERIES, A2D_SD_SHOWDATATEXT, A2D_SHOW_ERRORBAR, A2D_SPLITY_ND, A3D_IGNORE_SERIES, API_SHOW_FEELER, API_SLICE_DELETE, ASG_SERIES_DELETE

Notes:

When using the GetGraphAttr or SetGraphAttr API functions with this structure, it is recommended that you use the nSeriesID in this structure as the nSeriesID parameter in the API call. Unless otherwise noted for a particular attribute, SERCON_DOALL and SERCON_USESELLIST can be used for the nSeriesID.

TDG_SerDepErrorBarValue

 

This data structure defined the series-dependent error bars that can be drawn in conjunction with the AEB_ERRORBAR... attributes.

typedef:

typedef struct _TDG_SerDepErrorBarValue {
     INT16 nSeriesID;
     INT16 nYorXErrorBar;
     INT16 nMode;
     INT16 nType;
     REAL64 fErrorBarPlus;
     REAL64 fErrorBarMinus;
     INT16 nHatSize;
     INT16 nStdDevMult;
} TDG_SerDepErrorBarValue,
FAR * TDG_SerDepErrorBarValuePtr;

Members:

nSeriesID; Series ID. Use SERCON_DOALL to choose all series. Use SERCON_USESELLIST to choose all series in the selection list.

 

nYorXErrorBar; 0 = Get/Set Y Values / 1 = Get/Set X Values

 

nMode; Error bar drawing mode 0...4

 

0=

Fixed Positive and Negative

 

1=

Percent

 

2=

Standard Deviation

 

3=

Standard Error

 

4=

Custom

 

nType; Error bar type 0 = Both, 1 = Positive, 2 = Negative

 

fErrorBarPlus; Value of Data Point PLUS this value is Error Line. Increment above the current value which may be in error.

 

fErrorBarMinus; Value of Data Point MINUS this value is Error Line. Increment below the current value which may be in error.

 

nHatSize; Integer from 0...100 which represents relative size of the "Hat" of the errorbar.

 

nStdDevMult; Standard Deviation Multiplier

Used By:

AEB_ERRORBAR_MODE, AEB_ERRORBAR_TYPE, AEB_ERRORBAR_VALUES, AEB_ERRORBAR_X_SHOWALL, AEB_ERRORBAR_X_SHOWSERIES, AEB_ERRORBAR_Y_SHOWALL, AEB_ERRORBAR_Y_SHOWSERIES

   

TDG_SerDepINT16

 

This data structure is used by many A2D_... and A3D_... attributes to modify series dependent attributes that require a series ID and an INT16 value.

typedef:

typedef struct _TDG_SerDepINT16 {
     INT16 nSeriesID;
     INT16 nValue;
} TDG_SerDepINT16, FAR * TDG_SerDepINT16Ptr;

Members:

nSeriesID: The series ID number of the series.

 

nValue: When setting the attribute of a series, this is the new value used for the attribute. When getting the attribute of a series, this is the location used to store the requested attribute value.

Used By:

A2D_SDDATALINE_TYPE, API_SHOW_LBLFEELER, API_SLICE_MOVE

Notes:

When using the GetGraphAttr or SetGraphAttr API functions with this structure, it is recommended that you use the nSeriesID in this structure as the nSeriesID parameter in the API call. Unless otherwise noted for an attribute, SERCON_DOALL and SERCON_USESELLIST can be used for struct variable nSeriesID.

TDG_SeriesColorInfo

 

This data structure is used by the ACM_SERIES_COLOR attribute to specify the color of a particular series of objects in a graph.

typedef:

typedef struct {
     INT16 nSeriesID;
     RGB16 rgb;
} TDG_SeriesColorInfo, FAR *TDG_SeriesColorPtr;

Members:

nSeriesID:An INT16 value identifying the series to be colored

 

rgb:An RGB16 structure specifying color values. For each member of the RGB16 structure (red, green, blue), 0 to 256, shifted left 8 bits. Only the upper 8 bits of the color value used to define the color, the lower 8 bits of the UINT16 are ignored. For example, to create red with a color value of 200 you should: red = (200 << 8);

Used By:

ACM_SERIES_COLOR, ASG_SERIES_COLOR

Example:

TDG_SeriesColorInfo Ser1Color;
RGB16 aRGB[5] = {
{ 0, 0, 0}, /* BLACK */
{HALF,HALF,HALF}, /* GREY */
{FULL, 0, 0}, /* RED */
{ 0,FULL, 0}, /* GREEN */
{ 0, 0,FULL}}; /* BLUE */
Ser1Color.nSeriesID = 1;
/*Color series 1 risers grey */
Ser1Color.rgb = aRGB[1];
SetGraphAttr( gpGraph, GRAPH_LAYER,
     NULL_OBJECTID, NULL_SERIESID,
     NULL_GROUPID,
     ACM_SERIES_COLOR,
      (void FAR *) &Ser1Color);

Also See:

RGB16

TDG_SeriesType

 

This data structure is used by the A3D_SERIES_TYPE attribute to specify the shape of markers/risers in a series or group.

typedef:

typedef struct {
     INT16 Series;
     INT16 GraphType;
} TDG_SeriesType, FAR * TDG_SeriesTypePtr;

Members:

Series: A series or group number

 

GraphType: A value from the GraphTypes enum:

 

GraphType

Value

Description

 

G_3D_BarType

0=

3D Bar Chart

 

G_3D_ColAreaType

1=

3D Column Area Chart

 

G_3D_ColLineType

2=

3D Column Line Chart

 

G_3D_ColStepType

3=

3D Column Step Chart

 

G_3D_CubeType

4=

3D Cube Chart

 

G_3D_CutCornerType

5=

3D Cut Corner Chart

 

G_3D_DiamondType

6=

3D Floating Diamond Chart

 

G_3D_HoneycombType

7=

3D Surface Honeycomb chart

 

G_3D_ModelType

8=

3D Models

 

G_3D_OctagonType

9=

3D Octagon chart

 

G_3D_PyramidType

10=

3D Pyramid Chart

 

G_3D_RowAreaType

11=

3D Row Area Chart

 

G_3D_RowLineType

12=

3D Row Line Chart

 

G_3D_RowStepType

13=

3D Row Step Chart

 

G_3D_ScatterType

14=

3D Scatter Chart

 

G_3D_SquareType

15=

3D Square Chart

 

G_3D_SurfaceType

16=

3D Surface Chart

 

G_Area

17=

2D Vertical Area Chart

 

G_Bars

18=

2D Vertical Bar Chart

 

G_BoxPlot

19=

Box Plot Chart

 

G_BoxPlotTC

20=

 
 

G_Bubble

21=

2D Vertical Bubble Chart

 

G_ContourPlot

22=

Contour Plot Chart

 

G_Gantt

23=

Gantt Chart

 

G_HArea

24=

2D Horizontal Area Chart

 

G_HBars

25=

2D Horizontal Bar Chart

 

G_HBoxPlot

26=

Horizontal Box Plot Chart

 

G_HBoxPlotTC

27=

 
 

G_HBubble

28=

2D Horizontal Bubble Chart

 

G_HContourPlot

29=

Horizontal Contour Plot Chart

 

G_HHistogram

30=

2D Horizontal Histogram

 

G_HLines

31=

2D Horizontal Line Chart

 

G_HScatter

32=

2D Horizontal Scatter Chart

 

G_Hinge

33=

 
 

G_Histogram

34=

2D Vertical Histogram Chart

 

G_Lines

35=

2D Vertical Line Chart

 

G_MultiPie

36=

Multiple Pie Chart

 

G_OHLClose

37=

Open/High/Low/Close Stock Chart

 

G_Pie

38=

Pie Chart

 

G_PieBar

39=

Pie Bar Chart

 

G_Polar

40=

Polar Coordinate Chart

 

G_Radar

41=

Radar Chart

 

G_Scatter

42=

2D Scatter Chart

 

G_SpecMapCell

43=

Spectral Map

 

G_TableChart

44=

Table Chart

 

G_TextChart

45=

Text Chart

 

G_URadarArea

46=

Radar Area Chart

 

G_VJapaneseStock

47=

Candle Stock Chart

 

G_VStemLeaf

48=

Stem Leaf Chart

 

G_WMultiBar

49=

 
 

G_WWaterFall

50=

Waterfall chart

 

G_WWaterFall_Horz

51=

Horizontal Waterfall chart

 

G_X3D_FacetedFloater

52=

3D Faceted Floater Chart

 

G_X3D_FacetedRiser

53=

3D Faceted Riser Chart

 

G_XBI1_BalanceScoreCard

54=

Balanced Score Card Chart

 

G_XBI1_ProductPosition

55=

Product Positioning Chart

 

G_XBI1_ResourceReturn

56=

Resource Return Chart

 

G_XBI1_TimeSeries

57=

Time Series Chart

 

G_XBI1_YYYY

58=

4Y Chart

Used By:

A3D_SERIES_TYPE

Example:

TDG_SeriesTypeSeriesType[]={
{ 0, G_3D_DiamondType } ,
{ 1, G_3D_OctagonType } };
INT16 nGraphBy = GraphBySeries;
SetGraphAttrSL(gpGraph,NULL,A3D_GRAPH_BY_WHAT,
     (void FAR *) &nGraphBy);
/* Make Series 0 Risers a Diamond Shape */
SetGraphAttr(gpGraph, GRAPH_LAYER, NULL_OBJECTID, 0,
     NULL_GROUPID,A3D_SERIES_TYPE,
     (void FAR *) &SeriesType[0] );
/* Make Series 1 an Octagon Shape */
SetGraphAttr(gpGraph, GRAPH_LAYER, NULL_OBJECTID, 1,
     NULL_GROUPID,A3D_SERIES_TYPE,
     (void FAR *)&SeriesType[1] );

TDG_StockMetricInfo

 

Used by the ASM_METRIC1/2/3 attribute to define metric lines in a stock chart.

 

typedef struct _TDG_StockMetricInfo{
     BOOLEAN16 bShow;
     INT16 nDisplayStyle;
     char szMetricLabel[64];
} TDG_StockMetricInfo, FAR *TDG_StockMetricInfoPtr;

Members:

bShow: TRUE/FALSE

 

TRUE=

Show metric lines/labels

 

FALSE=

Do not show metric lines/labels

 

nDisplayStyle: a value from StockMetricStyles enum

 

StockMetricStyles

Value

Description

 

METRIC_VERTICAL_LINE

0

 
 

METRIC_LINE_CHART

1

 
 

METRIC_AREA_CHART

2

 
 

METRIC_BAR_CHART

3

 
 

METRIC_DOT

4

 
 

METRIC_AREA_CHART2

5

 
 

szMetricLabel; Label for Metric (up to 64 characters)

Used By:

ASM_METRIC1/2/3

   

TDG_StripeDepBOOLEAN16

 

Table Stripe Dependant BOOLEAN16 Non-Detection Node Specific Structure

typedef:

typedef struct _TDG_StripeDepBOOLEAN16 {
     INT16 nStripeID;
     BOOLEAN16 bValue;
} TDG_StripeDepBOOLEAN16,FAR * TDG_StripeDepBOOLEAN16Ptr;

Members:

nStripeID: Stripe ID

 

bValue: True/False

Used By:

ATC_AUTOFIT_CELL

   

TDG_TableDivsInfo

 

This data structure is used by the ATC_DIVISIONS attribute to define the divisions in a table chart.

typedef:

typedef struct _TDG_TableDivs {
     INT16 StripeStyle;
     INT16 nLineSkip;
     INT16 nColorSkip;
     INT16 nActiveStripes;
     BOOLEAN16 bExtendedStripes;
} TDG_TableDivsInfo, FAR * TDG_TableDivsPtr;

Members:

StripeStyle:0..2

 

0=

No stripes on this chart.

 

1=

Vertical Stripes on this chart

 

2=

Horizontal Stripes on this chart

 

nLineSkip:Specifies the number of lines skipped between stripes. It governs how many rows or columns are grouped together by a given cell line (e.g., 1 = each row will have a separating line, 3 = 2 every two rows will be separated by a line, etc.)

 

nColorSkip:Specifies the number of rows or columns that will receive the same color.

 

nActiveStripes:Specifies the number of colors that will be used for stripes on a table. If two colors are set, the chart will alternate between the two colors throughout the chart.

 

bExtendedStripes: TRUE/FALSE.

 

TRUE=

Stripes will extend into the header area.

 

FALSE=

Headers will have their own colors independent of the stripes.

Used By:

ATC_DIVISIONS

TDG_ViewStruct

 

This data structure defines the viewing scene of a 3D graph. The system defines a number of predefined viewing scenes that can be selected with the A3D_VIEWANGLE attribute. The A3D_VIEWSTRUCT attribute uses this data structure to create a custom viewing scene.

typedef:

typedef struct {
     fMatrixType ViewMatrix;
     dPoint3D ViewerPosition;
     dPoint3D GraphSize;
     dPoint3D WallThickness;
     INT16 xPan;
     INT16 yPan;
} TDG_ViewStruct, FAR * TDG_ViewStructPtr;

Members:

ViewMatrix: Three REAL64 values (x,y,z) identifying the transformation matrix:

 

typedef REAL64 fMatrixType[4][XYZ];

 

ViewerPosition: Three INT32 values (x,y,z) identifying the viewer position in 3D.

 

/* Coordinates of a 3D point in 4-byte integers. */
typedef struct {
     INT32 x, y, z;
} dPoint3D;

 

GraphSize: Three INT32 values (x,y,z) identifying the graph cube size.

 

/* Coordinates of a 3D point in 4-byte integers. */
typedef struct {
     INT32 x, y, z;
} dPoint3D;

 

WallThickness; Graph cube wall thicknesses.

 

/* Coordinates of a 3D point in 4-byte integers. */
typedef struct {
     INT32 x, y, z;
} dPoint3D;

 

xPan, yPan: Two INT16 values identifying the horizontal (xPan) and vertical (yPan) displacement

Used By:

A3D_VIEWSTRUCT

TDG_VisualizeType

 

This structure is used by A3D_GLOW_RISER, A3D_SUPPRESS_RISER, and A3D_TRANS_RISER attributes to apply a visualize effect (glow, suppress, or transparency) to a riser in a 3D graph.

typedef:

typedef struct {
     INT16 nVisualizeType;
     INT16 nSeries;
     INT16 nGroup;
     INT16 nPercent;
     BOOLEAN16 bPerformUndo;
     INT16 nOperation;     
     RGB16 glowColor;
} TDG_VisualizeType, FAR * TDG_VisualizePtr;

Members:

nVisualizeType;

 

1=

Transparency

 

2=

Suppression

 

4=

Glow

 

nSeries: Series number

 

nGroup: Group Number

 

nPercent; If nVisualizeType is 1 (Transparency), this member specifies the percentage of transparency. Higher values make the riser(s) more transparent.If nVisualizeType is 2 (Suppression), this member specifies the percent shown (0 = fully suppressed).

 

bPerformUndo; TRUE/FALSE to enable/disable undo

 

TRUE=

Store operation in undo buffer

 

FALSE=

Undo not required

 

nOperation: Specifies whether the attribute is to be applied to a series, a group, or an individual riser. Use one of the following #defines:

 

#define

Value

Description

 

kSpecifiedRiser

0

Riser at nSeries/nGroup

 

kSpecifiedSeries

1

All risers in nSeries

 

kSpecifiedGroup

2

All risers in nGroup

 

kSpecifiedAll

3

All riser

 

glowColor; If nVisualizeType is set to 4 (glow), specify the color to be used to apply a glow visual effect to the riser(s). See RGB16.

Used By:

A3D_GLOW_RISER, A3D_SUPPRESS_RISER, A3D_TRANS_RISER

Also See:

RGB16

WashRecord

 

This data structure is used by the special effects attributes to apply a wash special effect to an area, line, or text object.

typedef:

typedef struct
{
     RGB16 startColor;
     RGB16 endColor;
     INT16 startBin;
     INT16 endBin;
     INT16 washType;
     INT16 washDir;
     INT16 washScale;
} WashRecord;

Members:

startColor: RGB16 structure where the starting color of the wash is stored. See RGB16.

 

endColor: RGB16 structure where the ending color of the wash is stored. See RGB16.

 

startBin/endBin: Not used in Windows applications

 

washType: 1...4

 

washDir: 0...14

 

0=

NilWashType

 

1=

WashUpLeft

 

2=

WashUp

 

3=

WashUpRight

 

4=

WashLeft

 

5=

WashRight

 

6=

WashDownLeft

 

7=

WashDown

 

8=

WashDownRight

 

9=

WashOval

 

10=

WashZoomRect

 

11=

WashSpecial1

 

12=

WashSpecial2

 

13=

WashSpecial3

 

14=

WashLinear

 

washScale: Not used in Windows applications

Used By:

A_AREASFX, A_FONTSFX, A_LINESFX, FXStruct

Also See:

RGB16, AdvancedWashRecord

WedgeInfoRec

 

Wedge Information Record

typedef:

typedef struct _WedgeInfoRec {
     Rect bounds;
     Point ptStart;
     Point ptEnd;
     REAL fStartAngle;
     REAL fEndAngle;
     INT16 nRing;
     INT16 nHeight;
} WedgeInfoRec, FAR *WedgeInfoPtr;

Members:

bounds; bounds rectangle. See Rect  

 

ptStart; start point defined in a Point data structure

 

ptEnd; end point defined in a Point data structure

 

fStartAngle; start angle (in rect radians)

 

fEndAngle; end angle (in rect radians)

 

nRing; ring percentage

 

nHeight; 2.5D crust/ring height

Used By:

AAN_ARC_INFO