Introduction

Getting Started

Programming Guides

API Reference

Additional Resources

Define_Glyph

Functions

void Define_Glyph (const char *name, int data_size, const char *data)
 Describes a set of simple geometries which can be later used to define a custom marker, edge or line style. More...
 
void UnDefine_Glyph (char const *name)
 Removes the glyph definintion established in a previous call to Define_Glyph(). More...
 

Detailed Description

Function Documentation

void Define_Glyph ( const char *  name,
int  data_size,
const char *  data 
)

Describes a set of simple geometries which can be later used to define a custom marker, edge or line style.

Parameters
nameName of the custom marker, edge, or line style.
data_sizeSize of data
dataGlyph definition described below.

DETAILS

Define_Glyph allows users to define a simple set of geometries that can be used to create a custom marker, edge or line style. The data consists of a general header and then specific information about each single piece of geometry in the glyph. A glyph definition is local to a segment and is inherited like any other attribute. Each glyph works off a 256*256 canvas with the defining geometry being located at the center of the canvas at (0,0). When defining the geometry, users should define each location (x, y) such that x and y are in the range of (-127, 128). The colors of the geometry can be either set within the glyph definition or by using the marker, edge and line color and contrast color defined within the containing segment.

The data block header consists of three char values. The first is the nominal radius that defines the radius of the glyph for the purpose of sizing and selection while the second two numbers are the x and y offsets respectively. These offsets allow users to position the glyph relative to the actual insertion point.

The second block in the data block consists of a series of codes which may have optional arguments. Both the codes and their arguments are chars. The various codes and their associated arguments are:

------------------------------------------------------------
"n"     where n is a signed char
"n>1"   A polyline consisting of n points.  This code is then
        followed by a list of n (x, y) pairs which define
        the polyline within the glyph canvas.
"1"     A dot.  This code is followed by the (x,y) location
        of the object within the glyph canvas.
"0"     Termination of glyph definition.  This must be at
        the end of all glyph definitions.
"-1"    Start fill. Closed geometry subsequent to this will
        be filled.
"-2"    Restart fill.
"-3"    End fill.
"-4"    Ellipse.  This code is followed by 2 (x,y) which
        define the lower left and upper right corner of the
        rectangle which contains the ellipse within the glyph
        canvas.
"-5"    Circular arc.  This code is followed by 3 (x,y) pairs
        which define the start, an intermediary, and the end
        point of a circular arc on the glyph canvas.
"-6"    Infinite line.  This code is followed by 2 (x,y) pairs
        which are located on the line segment within the glyph
        canvas.
"-7"    Infinite ray.  This code is followed by 2 (x,y) pairs
        the first of which defines the start point of the ray
        and the second of which is located which are located on
        the ray on the glyph canvas.
"-8"    Start contrast color. The geometry subsequent to this
        will be colored according to the owning geometries
        contrast color setting.
"-9"    Start normal color. The geometry subsequent to this
        will be colored according to the owning geometries'
        color setting. 
"-10"   Start RGB color.  The geometry subsequent to this will
        be colored with the rgb value that is defined in the
        (r,g,b) triplet which is defined in the values
        immediately following this code.
"-11"   Start indexed color.  The color of the geometry
        subsequent to this is the index which is defined in
        the value immediately following this code.
------------------------------------------------------------

A simple examples:

    const char crosshairs[] = {10, 0, 0, 2, -10, 0, 10, 0, 2, 0, -10, 0, 10, 0}

    HC_Open_Segment("?Picture");
      HC_Define_Glyph  ("crosshairs", sizeof(crosshairs),  crosshairs);
      HC_Set_Marker_Symbol("crosshairs");
      HC_Insert_Marker(-0.5, 0.0, 0.0); 
    HC_Close_Segment();
    

NOTES

To ensure optimal performance in the drawing of these objects, users should try and minimize the amount of color attributes that are set within a glyph. This is best done by organizing the different geometries according to their colors.

RESTRICTIONS

See also
Show_Glyph, Define_Line_Pattern
void UnDefine_Glyph ( char const *  name)

Removes the glyph definintion established in a previous call to Define_Glyph().

Parameters
nameName of the custom marker, edge, or line style.

DETAILS

No additional details. See Define_Glyph().