Parasol Framework
  • Gallery
  • API
  • Wiki
  • GitHub
    •  Overview
    • ApplyPath()
    • ArcTo()
    • CharWidth()
    • ClosePath()
    • Curve3()
    • Curve4()
    • DrawPath()
    • FlushMatrix()
    • GenerateEllipse()
    • GeneratePath()
    • GenerateRectangle()
    • GetFontHandle()
    • GetFontMetrics()
    • GetVertex()
    • LineTo()
    • MoveTo()
    • Multiply()
    • MultiplyMatrix()
    • ParseTransform()
    • ReadPainter()
    • ResetMatrix()
    • RewindPath()
    • Rotate()
    • Scale()
    • Skew()
    • Smooth3()
    • Smooth4()
    • StringWidth()
    • TracePath()
    • Translate()
    • TranslatePath()
    • Audio
    • Core
    • Display
    • Fluid
    • Font
    • Network
    • Vector
      • Audio
      • Sound
      • File
      • MetaClass
      • Module
      • StorageDevice
      • Task
      • Thread
      • Time
      • Compression
      • Config
      • Script
      • XML
      • Controller
      • BlurFX
      • ColourFX
      • CompositeFX
      • ConvolveFX
      • DisplacementFX
      • FilterEffect
      • FloodFX
      • ImageFX
      • LightingFX
      • MergeFX
      • MorphologyFX
      • OffsetFX
      • RemapFX
      • SourceFX
      • TurbulenceFX
      • WaveFunctionFX
      • Scintilla
      • ScintillaSearch
      • Bitmap
      • Clipboard
      • Display
      • Document
      • Font
      • Picture
      • Pointer
      • Surface
      • SVG
      • ClientSocket
      • HTTP
      • NetSocket
      • Proxy
      • Vector
      • VectorClip
      • VectorColour
      • VectorEllipse
      • VectorFilter
      • VectorGradient
      • VectorGroup
      • VectorImage
      • VectorPath
      • VectorPattern
      • VectorPolygon
      • VectorRectangle
      • VectorScene
      • VectorShape
      • VectorSpiral
      • VectorText
      • VectorTransition
      • VectorViewport
      • VectorWave
      • Linux Builds
      • Windows Builds
      • Customising Your Build
      • Parasol Objects
      • Parasol In Depth
      • Fluid Reference Manual
      • Common API
      • FileSearch API
      • GUI API
      • JSON API
      • VFX API
      • Widgets
      • RIPL Reference Manual
      • Parasol Cmd Tool
      • Flute / Unit Testing
      • Embedded Document Format
      • FDL Reference Manual
      • FDL Tools
      • Action Reference Manual
      • System Error Codes

Vector Module

Functions

ApplyPath | ArcTo | CharWidth | ClosePath | Curve3 | Curve4 | DrawPath | FlushMatrix | GenerateEllipse | GeneratePath | GenerateRectangle | GetFontHandle | GetFontMetrics | GetVertex | LineTo | MoveTo | Multiply | MultiplyMatrix | ParseTransform | ReadPainter | ResetMatrix | RewindPath | Rotate | Scale | Skew | Smooth3 | Smooth4 | StringWidth | TracePath | Translate | TranslatePath

Structures

FontMetrics | GradientStop | MergeSource | PathCommand | Transition | VectorMatrix | VectorPainter | VectorPoint

Classes

BlurFX | ColourFX | CompositeFX | ConvolveFX | DisplacementFX | FilterEffect | FloodFX | ImageFX | LightingFX | MergeFX | MorphologyFX | OffsetFX | RemapFX | SourceFX | TurbulenceFX | Vector | VectorClip | VectorColour | VectorEllipse | VectorFilter | VectorGradient | VectorGroup | VectorImage | VectorPath | VectorPattern | VectorPolygon | VectorRectangle | VectorScene | VectorShape | VectorSpiral | VectorText | VectorTransition | VectorViewport | VectorWave | WaveFunctionFX

Constants

ARC | ARF | CM | CMP | DMF | EM | FM | LS | LT | MOP | OP | PE | RC | RQ | TB | VBF | VCLF | VCS | VF | VFA | VFR | VGF | VGT | VIJ | VIS | VLC | VLJ | VMF | VOF | VPF | VSF | VSM | VSPREAD | VTS | VTXF | VUNIT | WVC | WVS

ApplyPath()

Copy a pre-generated or custom path to a VectorPath object.

ERR vec::ApplyPath(APTR Path, objVectorPath * VectorPath)
ParameterDescription
PathThe source path to be copied.
VectorPathThe target VectorPath object.

Any path originating from GeneratePath(), GenerateEllipse() or GenerateRectangle() can be applied to a VectorPath object by calling ApplyPath(). The source Path can then be deallocated with FreeResource() if it is no longer required.

This method is particularly useful when paths need to be generated or changed in real-time and the alternative of processing the path as a string is detrimental to performance.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

ArcTo()

Alter a path by setting an arc-to command at the current vertex position.

void vec::ArcTo(APTR Path, DOUBLE RX, DOUBLE RY, DOUBLE Angle, DOUBLE X, DOUBLE Y, ARC Flags)
ParameterDescription
PathThe vector path to modify.
RXThe horizontal radius of the arc.
RYThe vertical radius of the arc.
AngleThe angle of the arc, expressed in radians.
XThe horizontal end point for the arc command.
YThe vertical end point for the arc command.
FlagsOptional flags.

This function will set an arc-to command at the current vertex. It then increments the vertex position for the next path command.

Vector module documentation © Paul Manias © 2010-2025

CharWidth()

Returns the width of a character.

DOUBLE vec::CharWidth(APTR FontHandle, UINT Char, UINT KChar, DOUBLE * Kerning)
ParameterDescription
FontHandleThe font to use for calculating the character width.
CharA 32-bit unicode character.
KCharA unicode character to use for calculating the font kerning (optional).
KerningThe resulting kerning value (optional).

This function will return the pixel width of a font character. The character is specified as a unicode value in the Char parameter. Kerning values can also be returned, which affect the position of the character along the horizontal. The previous character in the word is set in KChar and the kerning value will be returned in the Kerning parameter. If kerning information is not required, set the KChar and Kerning parameters to zero.

The font's glyph spacing value is not used in calculating the character width.

Result

The pixel width of the character will be returned.

Vector module documentation © Paul Manias © 2010-2025

ClosePath()

Close the path by connecting the beginning and end points.

void vec::ClosePath(APTR Path)
ParameterDescription
PathThe vector path to modify.

This function will set a close-path command at the current vertex. It then increments the vertex position for the next path command.

Note that closing a path does not necessarily terminate the vector. Further paths can be added to the sequence and interesting effects can be created by taking advantage of fill rules.

Vector module documentation © Paul Manias © 2010-2025

Curve3()

Alter a path by inserting a quadratic bezier curve command at the current vertex position.

void vec::Curve3(APTR Path, DOUBLE CtrlX, DOUBLE CtrlY, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
CtrlXControl point horizontal coordinate.
CtrlYControl point vertical coordinate.
XThe horizontal end point for the curve3 command.
YThe vertical end point for the curve3 command.

This function will set a quadratic bezier curve command at the current vertex. It then increments the vertex position for the next path command.

Vector module documentation © Paul Manias © 2010-2025

Curve4()

Alter a path by inserting a curve4 command at the current vertex position.

void vec::Curve4(APTR Path, DOUBLE CtrlX1, DOUBLE CtrlY1, DOUBLE CtrlX2, DOUBLE CtrlY2, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
CtrlX1Control point 1 horizontal coordinate.
CtrlY1Control point 1 vertical coordinate.
CtrlX2Control point 2 horizontal coordinate.
CtrlY2Control point 2 vertical coordinate.
XThe horizontal end point for the curve4 command.
YThe vertical end point for the curve4 command.

This function will set a cubic bezier curve command at the current vertex. It then increments the vertex position for the next path command.

Vector module documentation © Paul Manias © 2010-2025

DrawPath()

Draws a vector path to a target bitmap.

ERR vec::DrawPath(objBitmap * Bitmap, APTR Path, DOUBLE StrokeWidth, OBJECTPTR StrokeStyle, OBJECTPTR FillStyle)
ParameterDescription
BitmapPointer to a target Bitmap object.
PathThe vector path to render.
StrokeWidthThe width of the stroke. Set to 0 if no stroke is required.
StrokeStylePointer to a valid object for stroke definition, or NULL if none required.
FillStylePointer to a valid object for fill definition, or NULL if none required.

Use DrawPath() to draw a generated path to a Bitmap, using customised fill and stroke definitions. This functionality provides an effective alternative to configuring vector scenes for situations where only simple vector shapes are required. However, it is limited in that advanced rendering options and effects are not available to the client.

A StrokeStyle and/or FillStyle will be required to render the path. Valid styles are allocated and configured using recognised vector style objects, specifically from the classes VectorImage, VectorPattern and VectorGradient. If a fill or stroke operation is not required, set the relevant parameter to NULL.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

FlushMatrix()

Flushes matrix changes to a vector.

ERR vec::FlushMatrix(struct VectorMatrix * Matrix)
ParameterDescription
MatrixThe matrix to be flushed.

If the matrices values of a vector have been directly modified by the client, the changes will need to be flushed in order to have those changes reflected on the display. This needs to be done before the next draw cycle.

Note that if the client uses API functions to modify a VectorMatrix, a call to FlushMatrix() is unnecessary as the vector will have already been marked for an update.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GenerateEllipse()

Generates an elliptical path.

ERR vec::GenerateEllipse(DOUBLE CX, DOUBLE CY, DOUBLE RX, DOUBLE RY, INT Vertices, APTR * Path)
ParameterDescription
CXHorizontal center point of the ellipse.
CYVertical center point of the ellipse.
RXHorizontal radius of the ellipse.
RYVertical radius of the ellipse.
VerticesOptional. If >= 3, the total number of generated vertices will be limited to the specified value.
PathA pointer variable that will receive the resulting path.

Use GenerateEllipse() to create an elliptical path suitable for passing to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.

Error Codes

OkayOperation successful.
AllocMemoryA call to AllocMemory() failed to create a new memory block.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GeneratePath()

Generates a path from an SVG path command sequence, or an empty path for custom configuration.

ERR vec::GeneratePath(CSTRING Sequence, APTR * Path)
ParameterDescription
SequenceThe command sequence to process. If no sequence is specified then the path will be empty.
PathA pointer variable that will receive the resulting path.

This function will generate a vector path from a sequence of fixed point coordinates and curve instructions. The resulting path can then be passed to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.

The Sequence is a string of points and instructions that define the path. It is based on the SVG standard for the path element d attribute, but also provides some additional features that are present in the vector engine. Commands are case insensitive.

The following commands are supported:

M: Move To
L: Line To
V: Vertical Line To
H: Horizontal Line To
Q: Quadratic Curve To
T: Quadratic Smooth Curve To
C: Curve To
S: Smooth Curve To
A: Arc
Z: Close Path

The use of lower case characters will indicate that the provided coordinates are relative (based on the coordinate of the previous command).

If the Sequence is NULL then an empty path resource will be generated. This path will be suitable for passing to path modifying functions such as MoveTo() and LineTo() for custom path generation.

Error Codes

OkayOperation successful.
AllocMemoryA call to AllocMemory() failed to create a new memory block.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GenerateRectangle()

Generate a rectangular path at (x,y) with size (width,height).

ERR vec::GenerateRectangle(DOUBLE X, DOUBLE Y, DOUBLE Width, DOUBLE Height, APTR * Path)
ParameterDescription
XThe horizontal position of the rectangle.
YThe vertical position of the rectangle.
WidthThe width of the rectangle.
HeightThe height of the rectangle.
PathA pointer variable that will receive the resulting path.

Use GenerateRectangle() to create a rectangular path suitable for passing to vector functions that receive a Path parameter. The path must be manually deallocated with FreeResource() once it is no longer required.

Error Codes

OkayOperation successful.
AllocMemoryA call to AllocMemory() failed to create a new memory block.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GetFontHandle()

Returns a handle for a given font family.

ERR vec::GetFontHandle(CSTRING Family, CSTRING Style, INT Weight, INT Size, APTR * Handle)
ParameterDescription
FamilyThe name of the font family to access.
StyleThe preferred style to choose from the family. Use Regular or NULL for the default.
WeightEquivalent to CSS font-weight; a value of 400 or 0 will equate to normal.
SizeThe font-size, measured in pixels @ 72 DPI.
HandleThe resulting font handle is returned here.

For a given font family and size, this function will return a Handle that can be passed to font querying functions.

The handle is deterministic and permanent, remaining valid for the lifetime of the program.

Error Codes

OkayOperation successful.
ArgsInvalid arguments passed to function.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GetFontMetrics()

Returns a set of display metric values for a font.

ERR vec::GetFontMetrics(APTR Handle, struct FontMetrics * Info)
ParameterDescription
HandleA font handle obtained from GetFontHandle().
InfoThe font metrics for the Handle will be stored here.

Call GetFontMetrics() to retrieve a basic set of display metrics measured in pixels (adjusted to the display's DPI) for a given font.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

GetVertex()

Retrieve the coordinates of the current vertex.

INT vec::GetVertex(APTR Path, DOUBLE * X, DOUBLE * Y)
ParameterDescription
PathThe vector path to query.
XPointer to a double that will receive the X coordinate value.
YPointer to a double that will receive the Y coordinate value.

The coordinates of the current vertex are returned by this function in the X and Y parameters. In addition, the internal command number for that vertex is the return value.

Result

The internal command value for the vertex will be returned.

Vector module documentation © Paul Manias © 2010-2025

LineTo()

Alter a path by setting a line-to command at the current vertex position.

void vec::LineTo(APTR Path, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
XThe line end point on the horizontal plane.
YThe line end point on the vertical plane.

This function alters a path by setting a line-to command at the current vertex position. The index is then advanced by one to the next vertex position.

Vector module documentation © Paul Manias © 2010-2025

MoveTo()

Alter a path by setting a move-to command at the current vertex position.

void vec::MoveTo(APTR Path, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
XThe horizontal end point for the command.
YThe vertical end point for the command.

This function will set a move-to command at the current vertex. It then increments the vertex position for the next path command.

The move-to command is used to move the pen to a new coordinate without drawing a line.

Vector module documentation © Paul Manias © 2010-2025

Multiply()

Combines a matrix with a series of matrix values.

ERR vec::Multiply(struct VectorMatrix * Matrix, DOUBLE ScaleX, DOUBLE ShearY, DOUBLE ShearX, DOUBLE ScaleY, DOUBLE TranslateX, DOUBLE TranslateY)
ParameterDescription
MatrixThe target transformation matrix.
ScaleXMatrix value A.
ShearYMatrix value B.
ShearXMatrix value C.
ScaleYMatrix value D.
TranslateXMatrix value E.
TranslateYMatrix value F.

This function uses matrix multiplication to combine a set of values with a VectorMatrix structure.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

MultiplyMatrix()

Combines a source matrix with a target.

ERR vec::MultiplyMatrix(struct VectorMatrix * Target, struct VectorMatrix * Source)
ParameterDescription
TargetThe target transformation matrix.
SourceThe source transformation matrix.

This function uses matrix multiplication to combine a Source matrix with a Target.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

ParseTransform()

Parse an SVG transformation string and apply the values to a matrix.

ERR vec::ParseTransform(struct VectorMatrix * Matrix, CSTRING Transform)
ParameterDescription
MatrixThe target transformation matrix.
TransformThe transform to apply, expressed as a string instruction.

This function parses a sequence of transform instructions and applies them to a matrix.

The string must be written using SVG guidelines for the transform attribute. For example, skewX(20) rotate(45 50 50) would be valid. Transform instructions are applied in reverse, as per the standard.

Note that any existing transforms applied to the matrix will be cancelled as a result of calling this function. If existing matrix values need to be retained, create a fresh matrix and use Multiply() to combine them.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

ReadPainter()

Parses a painter string to its colour, gradient, pattern or image value.

ERR vec::ReadPainter(objVectorScene * Scene, CSTRING IRI, struct VectorPainter * Painter, CSTRING * Result)
ParameterDescription
SceneOptional. Required if url() references are to be resolved.
IRIThe IRI string to be translated.
PainterThis VectorPainter structure will store the deserialised result.
ResultOptional pointer for storing the end of the parsed IRI string. NULL is returned if there is no further content to parse or an error occurred.

This function will parse an SVG style IRI into its equivalent logical values. The results can then be processed for rendering a stroke or fill operation in the chosen style.

Colours can be referenced using one of three methods. Colour names such as orange and red are accepted. Hexadecimal RGB values are supported in the format #RRGGBBAA. Floating point RGB is supported as rgb(r,g,b,a) whereby the component values range between 0.0 and 255.0.

A Gradient, Image or Pattern can be referenced using the url(#name) format, where the 'name' is a definition that has been registered with the provided Scene object. If Scene is NULL then it will not be possible to find the reference. Any failure to lookup a reference will be silently discarded.

To access one of the pre-defined colourmaps, use the format url(#cmap:name). The colourmap will be accessible as a linear gradient that belongs to the Scene. Valid colourmap names are cmap:crest, cmap:flare, cmap:icefire, cmap:inferno, cmap:magma, cmap:mako, cmap:plasma, cmap:rocket, cmap:viridis.

A VectorPainter structure must be provided by the client and will be used to store the final result. All pointers that are returned will remain valid as long as the provided Scene exists with its registered painter definitions. An optional Result string can store a reference to the character up to which the IRI was parsed.

Error Codes

OkayOperation successful.
FailedGeneral failure.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

ResetMatrix()

Resets a transformation matrix to its default state.

ERR vec::ResetMatrix(struct VectorMatrix * Matrix)
ParameterDescription
MatrixThe target transformation matrix.

Call ResetMatrix() to reset a transformation matrix to its default state, undoing all former transform operations.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

RewindPath()

Resets the vertex seek position to zero.

void vec::RewindPath(APTR Path)
ParameterDescription
PathThe vector path to rewind.

Rewinding a path will reset the current vertex index to zero. The next call to a vertex modification function such as LineTo() would result in the first vertex being modified.

If the referenced Path is empty, this function does nothing.

Vector module documentation © Paul Manias © 2010-2025

Rotate()

Applies a rotation transformation to a matrix.

ERR vec::Rotate(struct VectorMatrix * Matrix, DOUBLE Angle, DOUBLE CenterX, DOUBLE CenterY)
ParameterDescription
MatrixThe target transformation matrix.
AngleAngle of rotation, in degrees.
CenterXCenter of rotation on the horizontal axis.
CenterYCenter of rotation on the vertical axis.

This function will apply a rotation transformation to a matrix. By default, rotation will occur around point (0, 0) unless CenterX and CenterY values are specified.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

Scale()

Scale the size of the vector by (x,y)

ERR vec::Scale(struct VectorMatrix * Matrix, DOUBLE X, DOUBLE Y)
ParameterDescription
MatrixThe target transformation matrix.
XThe scale factor on the x-axis.
YThe scale factor on the y-axis.

This function will perform a scale operation on a matrix. Values of less than 1.0 will shrink the affected vector path, while values greater than 1.0 will enlarge it.

Scaling is relative to position (0, 0). If the width and height of the vector path needs to be transformed without affecting its top-left position, the client must translate the path to (0, 0) around its center point. The path should then be scaled before being transformed back to its original top-left coordinate.

The scale operation can also be used to flip a vector path if negative values are used. For instance, a value of -1.0 on the x axis would result in a 1:1 flip across the horizontal.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

Skew()

Skews the matrix along the horizontal and/or vertical axis.

ERR vec::Skew(struct VectorMatrix * Matrix, DOUBLE X, DOUBLE Y)
ParameterDescription
MatrixThe target transformation matrix.
XThe angle to skew along the horizontal.
YThe angle to skew along the vertical.

The Skew function applies a skew transformation to the horizontal and/or vertical axis of the matrix. Valid X and Y values are in the range of -90 < Angle < 90.

Error Codes

OkayOperation successful.
OutOfRangeAt least one of the angles is out of the allowable range.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

Smooth3()

Alter a path by setting a smooth3 command at the current vertex position.

void vec::Smooth3(APTR Path, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
XThe horizontal end point for the smooth3 command.
YThe vertical end point for the smooth3 command.

This function will set a quadratic bezier curve command at the current vertex. It then increments the vertex position for the next path command.

The control point from the previous curve is used as the control point for the new curve, hence the 'smooth'.

Vector module documentation © Paul Manias © 2010-2025

Smooth4()

Alter a path by setting a smooth4 command at the current vertex position.

void vec::Smooth4(APTR Path, DOUBLE CtrlX, DOUBLE CtrlY, DOUBLE X, DOUBLE Y)
ParameterDescription
PathThe vector path to modify.
CtrlXControl point horizontal coordinate.
CtrlYControl point vertical coordinate.
XThe horizontal end point for the smooth4 instruction.
YThe vertical end point for the smooth4 instruction.

This function will set a cubic bezier curve command at the current vertex. It then increments the vertex position for the next path command.

The control point from the previous curve will be used in addition to the CtrlX and CtrlY points, hence the name 'smoothed curve'.

Vector module documentation © Paul Manias © 2010-2025

StringWidth()

Calculate the pixel width of a UTF-8 string, for a given font.

DOUBLE vec::StringWidth(APTR FontHandle, CSTRING String, INT Chars)
ParameterDescription
FontHandleA font handle obtained from GetFontHandle().
StringPointer to a null-terminated string.
CharsThe maximum number of unicode characters to process in calculating the string width. Set to -1 for all chars.

This function calculates the pixel width of a string, in relation to a known font. The function takes into account any line-feeds that are encountered, so if the String contains multiple lines, then the width of the longest line will be returned.

The font's kerning specifications will be taken into account when computing the distance between glyphs.

Result

The pixel width of the string is returned.

Vector module documentation © Paul Manias © 2010-2025

TracePath()

Returns the coordinates for a vector path, using callbacks.

ERR vec::TracePath(APTR Path, FUNCTION * Callback, DOUBLE Scale)
ParameterDescription
PathThe vector path to trace.
CallbackA function to call with the path coordinates.
ScaleSet to 1.0 (recommended) to trace the path at a scale of 1 to 1.

Any vector that generates a path can be traced by calling this method. Tracing allows the caller to follow the Path from point-to-point if the path were to be rendered with a stroke. The prototype of the callback function is ERR Function(OBJECTPTR Vector, LONG Index, LONG Command, double X, double Y, APTR Meta).

The Index is an incrementing counter that reflects the currently plotted point. The X and Y parameters reflect the coordinate of a point on the path.

If the Callback returns ERR::Terminate, then no further coordinates will be processed.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

Translate()

Translates the vector by (X,Y).

ERR vec::Translate(struct VectorMatrix * Matrix, DOUBLE X, DOUBLE Y)
ParameterDescription
MatrixThe target transformation matrix.
XTranslation along the x-axis.
YTranslation along the y-axis.

This function will translate the matrix in the direction of the provided (X,Y) values.

Error Codes

OkayOperation successful.
NullArgsFunction call missing argument value(s)
Vector module documentation © Paul Manias © 2010-2025

TranslatePath()

Translates a path by (x,y)

void vec::TranslatePath(APTR Path, DOUBLE X, DOUBLE Y)
ParameterDescription
PathPointer to a generated path.
XTranslate the path horizontally by the given value.
YTranslate the path vertically by the given value.

This function will translate all vertices of a path by (X,Y).

Vector module documentation © Paul Manias © 2010-2025

ARC Type

Options for drawing arcs.

NameDescription
ARC::LARGEThe arc will take the longest available drawing path rather than the shortest.
ARC::SWEEPInverts the default behaviour in generating the arc path (go clockwise).
Vector module documentation © Paul Manias © 2010-2025

ARF Type

Aspect ratios control alignment, scaling and clipping.

NameDescription
ARF::MEETAspect ratio is preserved. The entire viewbox will be visible in the viewport. The viewbox is scaled up as much as possible.
ARF::NONEScale the viewbox to match the size of the viewport. Aspect ratio is not preserved.
ARF::SLICEAspect ratio is preserved. The viewbox can extend beyond the viewport's edges on one axis. The viewbox is scaled up as much as possible.
ARF::X_MAXAlign to the right.
ARF::X_MIDAlign to the horizontal center.
ARF::X_MINAlign to the left.
ARF::Y_MAXAlign to the bottom.
ARF::Y_MIDAlign to the vertical center.
ARF::Y_MINAlign to the top.
Vector module documentation © Paul Manias © 2010-2025

CM Type

Colour modes for ColourFX.

NameDescription
CM::BRIGHTNESSAdjust brightness using the first parameter to define the intensity.
CM::COLOURISEColourise the input with the first 3 parameters used as RGB multipliers and the fourth parameter controlling intensity from 0 - 1.0.
CM::CONTRASTAdjust contrast using the first parameter to define the intensity from -1.0 to 1.0.
CM::DESATURATEDesaturate the input completely so that it is rendered in greyscale.
CM::HUEAdjust the hue by 0 - 360 degrees using the first parameter.
CM::HUE_ROTATERotate the hue by 0 - 360 degrees, controlled by the first parameter.
CM::LUMINANCE_ALPHAConverts each RGB value to greyscale, which then overrides the alpha channel.
CM::MATRIXProcess the supplied 5x4 matrix values.
CM::NONEDo nothing.
CM::SATURATEAdjust colour saturation with the first parameter defining the multiplier.
Vector module documentation © Paul Manias © 2010-2025

CMP Type

Component selection for RemapFX methods.

NameDescription
CMP::ALLAll colour channels.
CMP::ALPHAThe alpha channel.
CMP::BLUEThe blue colour channel.
CMP::GREENThe green colour channel.
CMP::REDThe red colour channel.
Vector module documentation © Paul Manias © 2010-2025

DMF Type

NameDescription
DMF::FIXED_CENTER_XThe CenterX field is a fixed size.
DMF::FIXED_CENTER_YThe CenterY field is a fixed size.
DMF::FIXED_DEPTHThe Depth field is a fixed size.
DMF::FIXED_HEIGHTThe Height field is a fixed size.
DMF::FIXED_RADIUS_XThe RadiusX field is a fixed size.
DMF::FIXED_RADIUS_YThe RadiusY field is a fixed size.
DMF::FIXED_WIDTHThe Width field is a fixed suze.
DMF::FIXED_XThe X field is a fixed coordinate.
DMF::FIXED_X_OFFSETThe XOffset field is a fixed coordinate.
DMF::FIXED_YThe Y field is a fixed coordinate.
DMF::FIXED_Y_OFFSETThe YOffset field is a fixed coordinate.
DMF::FIXED_ZThe Z field is a fixed coordinate.
DMF::SCALED_CENTER_XThe CenterX field is scaled to this object's parent.
DMF::SCALED_CENTER_YThe CenterY field is scaled to this object's parent.
DMF::SCALED_DEPTHThe Depth field is scaled to this object's parent.
DMF::SCALED_HEIGHTThe Height field is scaled to this object's parent.
DMF::SCALED_RADIUS_XThe RadiusX field is scaled to this object's parent.
DMF::SCALED_RADIUS_YThe RadiusY field is a scaled size to this object's parent.
DMF::SCALED_WIDTHThe Width field is scaled to this object's parent.
DMF::SCALED_XThe X field is scaled to this object's parent.
DMF::SCALED_X_OFFSETThe XOffset field is scaled to this object's parent.
DMF::SCALED_YThe Y field is scaled to this object's parent.
DMF::SCALED_Y_OFFSETThe YOffset field is scaled to this object's parent.
DMF::SCALED_ZThe Z field is a scaled coordinate to this object's parent.
DMF::STATUS_CHANGE_H
DMF::STATUS_CHANGE_V
Vector module documentation © Paul Manias © 2010-2025

EM Type

NameDescription
EM::DUPLICATEThe input image is extended along its borders by duplicating the color values at its edges.
EM::NONEThe input image is extended with colour values of zero.
EM::WRAPThe input image is extended by taking the color values from the opposite edge of the image.
Vector module documentation © Paul Manias © 2010-2025

FM Type

Mask for controlling feedback events that are received.

NameDescription
FM::CHILD_HAS_FOCUSA child of the vector has gained the user focus.
FM::HAS_FOCUSThe vector has gained the user focus.
FM::LOST_FOCUSThe vector has lost the user focus.
FM::PATH_CHANGEDThe vector path has been modified or affected by a transform.
Vector module documentation © Paul Manias © 2010-2025

LS Type

Light source identifiers.

NameDescription
LS::DISTANTDistant light source.
LS::POINTPoint light source.
LS::SPOTSpot light source.
Vector module documentation © Paul Manias © 2010-2025

LT Type

Lighting algorithm for the LightingFX class.

NameDescription
LT::DIFFUSESelect diffuse lighting.
LT::SPECULARSelect specular lighting.
Vector module documentation © Paul Manias © 2010-2025

MOP Type

MorphologyFX options.

NameDescription
MOP::DILATEDilate (fatten) the input source.
MOP::ERODEErode (thin) the input source.
Vector module documentation © Paul Manias © 2010-2025

OP Type

Operators for CompositionFX.

NameDescription
OP::ARITHMETICThe SVG 'arithmetic' blending algorithm.
OP::ATOPThe Porter-Duff 'atop' operator; the mix alpha channel has priority and the input channel does not occlude.
OP::BURN
OP::CONTRAST
OP::DARKENUse the darker colour components of the mix and input values.
OP::DIFFERENCEOutput the difference between the input and mix colours.
OP::DODGEGives a brighter result than SCREEN by decreasing the contrast between the input and mix colours.
OP::EXCLUSIONProduce the difference between the mix and input values around a reference point of mid-grey.
OP::HARD_LIGHT
OP::INThe Porter-Duff 'in' operator; the input alpha channel has priority and the mix channel is secondary.
OP::INVERT
OP::INVERT_RGB
OP::LIGHTENUse the lighter colour components of the mix and input values.
OP::MINUSThe input colour value is subtracted from the mix.
OP::MULTIPLY
OP::OUTThe Porter-Duff 'out' operator; the mix alpha channel is inversed with the input channel.
OP::OVERThe Porter-Duff 'over' operator, this is the default operation for standard alpha blending.
OP::OVERLAYCombines the multiply and screen blend modes, with the mix determining tonal strength.
OP::PLUSAdd the input and mix colour values together.
OP::SCREENProduces a result brighter than the input.
OP::SOFT_LIGHT
OP::XORThe Porter-Duff 'xor' operator; blend as normal but occlusion occurs when input and mix alpha channels interact.
Vector module documentation © Paul Manias © 2010-2025

PE Type

NameDescription
PE::Arc
PE::ArcRel
PE::ClosePath
PE::Curve
PE::CurveRel
PE::HLine
PE::HLineRel
PE::Line
PE::LineRel
PE::Move
PE::MoveRel
PE::QuadCurve
PE::QuadCurveRel
PE::QuadSmooth
PE::QuadSmoothRel
PE::Smooth
PE::SmoothRel
PE::VLine
PE::VLineRel
Vector module documentation © Paul Manias © 2010-2025

RC Type

NameDescription
RC::ALLSynonym for FINAL_PATH | BASE_PATH | TRANSFORM
RC::BASE_PATHThe base path (shape of the vector) must be recalculated.
RC::DIRTYSynonym for FINAL_PATH | BASE_PATH | TRANSFORM
RC::FINAL_PATHThe final path will need to be recalculated, so as to take transforms and/or scaled coordinates into account.
RC::TRANSFORMThe transform matrix must be recalculated. This includes movement, e.g. changing the CX, CY of an ellipse.
Vector module documentation © Paul Manias © 2010-2025

RQ Type

NameDescription
RQ::AUTOThe default option is chosen by the system.
RQ::BESTUse the best quality renderer available and without concerns for computational time taken.
RQ::CRISPUse a good quality renderer that produces crisp outlines (no anti-aliasing).
RQ::FASTUse the fastest renderer available and allow accuracy to be compromised in favour of speed. Recommended for normalised paths that are known to be rectangular.
RQ::PRECISEUse a high quality renderer to produce accurate results. Anti-aliasing will be enabled.
Vector module documentation © Paul Manias © 2010-2025

TB Type

NameDescription
TB::NOISEUse the fractal noise function.
TB::TURBULENCEUse the standard turbulence function.
Vector module documentation © Paul Manias © 2010-2025

VBF Type

Options for vecGetBoundary().

NameDescription
VBF::INCLUSIVEThe result will be inclusive of all paths that belong to children of the queried vector.
VBF::NO_TRANSFORMThe transformation step will not be applied to the vector's path.
Vector module documentation © Paul Manias © 2010-2025

VCLF Type

Options for VectorClip.

NameDescription
VCLF::APPLY_FILLSApply fill instructions when drawing the clipping path(s).
VCLF::APPLY_STROKESApply stroke instructions when drawing the clipping path(s).
Vector module documentation © Paul Manias © 2010-2025

VCS Type

Colour space options.

NameDescription
VCS::INHERITInherit the colour space option from the parent vector.
VCS::LINEAR_RGBLinear RGB is the default colour space for SVG and produces the best results.
VCS::SRGBThe default colour-space is sRGB, recommended for its speed.
Vector module documentation © Paul Manias © 2010-2025

VF Type

Optional flags and indicators for the Vector class.

NameDescription
VF::DISABLEDThe vector is disabled and user input should be ignored.
VF::HAS_FOCUSThe vector holds the user's input focus.
VF::ISOLATEDEnables isolation mode, which results in a bitmap buffer being allocated for the vector and its children while drawing.
VF::JOIN_PATHSWhen appending a new path, use a join operation to connect the tail end to the head.
Vector module documentation © Paul Manias © 2010-2025

VFA Type

Define the aspect ratio for VectorFilter unit scaling.

NameDescription
VFA::MEETScale X/Y values independently and in relation to the width/height of the parent viewport.
VFA::NONEScale X/Y values on a 1:1 basis, in relation to the diagonal of the parent viewport.
Vector module documentation © Paul Manias © 2010-2025

VFR Type

Vector fill rules for the FillRule field in the Vector class.

NameDescription
VFR::EVEN_ODDThis rule determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses. If this number is odd, the point is inside; if even, the point is outside.
VFR::INHERITThe rule is inherited from the parent vector(s).
VFR::NON_ZEROThis is the default. This rule determines the 'insideness' of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a path segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left. After counting the crossings, if the result is zero then the point is outside the path. Otherwise, it is inside.
Vector module documentation © Paul Manias © 2010-2025

VGF Type

Gradient flags

NameDescription
VGF::CONTAIN_FOCALContain the FX,FY point to the base radius.
VGF::FIXED_CXCX is fixed
VGF::FIXED_CYCY is fixed
VGF::FIXED_FOCAL_RADIUSFocal radius is fixed
VGF::FIXED_FXFX is fixed
VGF::FIXED_FYFY is fixed
VGF::FIXED_RADIUSRadius is fixed
VGF::FIXED_X1X1 is fixed
VGF::FIXED_X2X2 is fixed
VGF::FIXED_Y1Y1 is fixed
VGF::FIXED_Y2Y2 is fixed
VGF::SCALED_CXCX is scaled
VGF::SCALED_CYCY is scaled
VGF::SCALED_FOCAL_RADIUSFocal radius is scaled
VGF::SCALED_FXFX is scaled
VGF::SCALED_FYFY is scaled
VGF::SCALED_RADIUSRadius is scaled
VGF::SCALED_X1X1 is scaled
VGF::SCALED_X2X2 is scaled
VGF::SCALED_Y1Y1 is scaled
VGF::SCALED_Y2Y2 is scaled
Vector module documentation © Paul Manias © 2010-2025

VGT Type

VectorGradient options.

NameDescription
VGT::CONICThe conic gradient is a variant on the radial type, whereby the colour values are drawn as a line that revolves around the cone's center point.
VGT::CONTOURContoured gradients follow the contours of the vector path in which they are rendered.
VGT::DIAMONDA diamond gradient is drawn as a square emanating from the center point.
VGT::LINEARA linear gradient is drawn from (X1, Y1) to (X2, Y2).
VGT::RADIALA radial gradient is drawn from CenterX, CenterY to Radius. An optional focal point can be expressed with FX and FY.
Vector module documentation © Paul Manias © 2010-2025

VIJ Type

Inner join options for angled lines.

NameDescription
VIJ::BEVELBlunts the edge of the join.
VIJ::INHERITInherit the parent's join value.
VIJ::JAGA special non-SVG option.
VIJ::MITERForms a sharp point at the join. Typically not the best looking option.
VIJ::ROUNDRounds the edge of the join to produce the best looking results.
Vector module documentation © Paul Manias © 2010-2025

VIS Type

Options for the Vector class' Visibility field.

NameDescription
VIS::COLLAPSEHide the vector and its children. Do not use - provided for SVG compatibility only.
VIS::HIDDENHide the vector and its children.
VIS::INHERITInherit the visibility state from the parent.
VIS::VISIBLEThe default. Ensures that the vector is visible.
Vector module documentation © Paul Manias © 2010-2025

VLC Type

Line-cap options.

NameDescription
VLC::BUTTThe default. The line is sharply squared off at its exact end point.
VLC::INHERITThe cap type is inherited from the parent (defaults to butt if unspecified).
VLC::ROUNDThe line cap is a half-circle and the line's end-point forms the center point.
VLC::SQUARESimilar to butt, the line is sharply squared off but will extend past the end point by StrokeWidth / 2.
Vector module documentation © Paul Manias © 2010-2025

VLJ Type

Options for the look of line joins.

NameDescription
VLJ::BEVELThe join is blunted, eliminating overly sharp edges.
VLJ::INHERITInherit the join option from the parent.
VLJ::MITERThe default. A sharp corner is used to join path segments. The corner is formed by extending the outer edges of the stroke at the tangents of the path segments until they intersect. If the ‘stroke-miterlimit’ is exceeded, the line join falls back to BEVEL.
VLJ::MITER_ROUNDDefault to MITER, but switch to ROUND if the miter limit is exceeded.
VLJ::MITER_SMARTAn alternative form of MITER that extends beyond the intersection point, similarly to the miter-clip SVG rules.
VLJ::ROUNDThe join is rounded.
Vector module documentation © Paul Manias © 2010-2025

VMF Type

Morph flags

NameDescription
VMF::AUTO_SPACINGApplicable when used on VectorText, auto-spacing allows the spacing between glyphs to be shrunk or expanded along the target path so that they can produce a better fit. The default is for the glyphs to conform to their original spacing requirements.
VMF::STRETCHApplicable when used on VectorText, the stretch option converts glyph outlines into paths, and then all end points and control points will be adjusted to be along the perpendicular vectors from the path, thereby stretching and possibly warping the glyphs. With this approach, connected glyphs, such as in cursive scripts, will maintain their connections.
VMF::X_MAXAlign the source so that it is morphed along the right of the target path.
VMF::X_MIDAlign the source so that it is morphed along the middle of the target path.
VMF::X_MINAlign the source so that it is morphed along the left of the target path.
VMF::Y_MAXAlign the source so that it is morphed along the bottom of the target path.
VMF::Y_MIDAlign the source so that it is morphed along the middle of the target path.
VMF::Y_MINAlign the source so that it is morphed along the top of the target path.
Vector module documentation © Paul Manias © 2010-2025

VOF Type

Viewport overflow options.

NameDescription
VOF::HIDDENAll content is clipped to within the viewport's boundary.
VOF::INHERITThe overflow state is inherited from the parent.
VOF::SCROLLAll content is clipped to within the viewport's boundary. A mechanism to scroll the viewport's content may be provided to the user (SVG capability not currently implemented).
VOF::VISIBLEThe content is not clipped to the viewport's boundary. This is the default.
Vector module documentation © Paul Manias © 2010-2025

VPF Type

Optional flags for the VectorScene object.

NameDescription
VPF::BITMAP_SIZEDAutomatically adjust the VectorScene.PageWidth and VectorScene.PageHeight to match the target Bitmap.Width and Bitmap.Height.
VPF::OUTLINE_VIEWPORTSDraw a green outline around all viewport paths. Extremely useful for debugging layout issues.
VPF::RENDER_TIMECompute the drawing frame-rate for the RenderTime field.
VPF::RESIZEThe vector will be stretched to fit the VectorScene.PageWidth and VectorScene.PageHeight values, if defined by the client.
Vector module documentation © Paul Manias © 2010-2025

VSF Type

Filter source types - these are used internally

NameDescription
VSF::ALPHAAs for GRAPHIC except that only the alpha channel is used.
VSF::BKGDAn image snapshot of the SVG document under the filter region at the time that the filter element was invoked.
VSF::BKGD_ALPHAAs for BKGD but only the alpha channel is used.
VSF::FILLThe value of the fill property on the target element for the filter effect.
VSF::GRAPHICRepresents the graphics elements that were the original input into the filter element.
VSF::IGNOREThe filter does not require an input source.
VSF::PREVIOUSUse the previous effect as input, or source graphic if no previous effect.
VSF::REFERENCEThis value is an assigned name for the filter primitive in the form of a custom-ident. If supplied, then graphics that result from processing this filter primitive can be referenced by an in attribute on a subsequent filter primitive within the same filter element. If no value is provided, the output will only be available for re-use as the implicit input into the next filter primitive if that filter primitive provides no value for its in attribute.
VSF::STROKEThe value of the stroke property on the target element for the filter effect.
Vector module documentation © Paul Manias © 2010-2025

VSM Type

NameDescription
VSM::AUTOThe default option is chosen by the system. This will typically be BILINEAR, but slow machines may switch to nearest neighbour and high speed machines could use more advanced methods.
VSM::BESSEL
VSM::BICUBICProduces a similar result to BILINEAR at a slightly higher CPU cost and a marginally sharper after-effect.
VSM::BILINEARBilinear is a common algorithm that produces a reasonable quality image quickly.
VSM::BLACKMANFive times slower than BILINEAR, the final result will be less sharp than SINC.
VSM::GAUSSIAN
VSM::KAISER
VSM::LANCZOSThis well known algorithm may serve as a point of comparison for evaluating the results of other methods. It shares characteristics with SINC and BLACKMAN.
VSM::MITCHELL
VSM::NEIGHBOURNearest neighbour is the fastest sampler at the cost of poor quality.
VSM::QUADRIC
VSM::SINCFive times slower than BILINEAR, the final result is of very good quality.
VSM::SPLINE16About twice as slow as BILINEAR, this method produces a considerably better result, and is a good choice for enlarging images without producing artifacts when contrasting colours are present.
Vector module documentation © Paul Manias © 2010-2025

VSPREAD Type

Spread method options define the method to use for tiling filled graphics.

NameDescription
VSPREAD::CLIPDo not scale the graphic. Clip it if it extends past imposed boundaries.
VSPREAD::PADScale the graphic to the object bounds.
VSPREAD::REFLECTTile the graphic, reflecting the image alternately on the X and Y axis.
VSPREAD::REFLECT_XTile the graphic, reflecting the image alternately on the X axis only.
VSPREAD::REFLECT_YTile the graphic, reflecting the image alternately on the Y axis only.
VSPREAD::REPEATTile the graphic repeatedly.
VSPREAD::UNDEFINEDEither the default setting will be applied or the setting will be inherited from a parent object.
Vector module documentation © Paul Manias © 2010-2025

VTS Type

Options for stretching text in VectorText.

NameDescription
VTS::CONDENSED
VTS::EXPANDED
VTS::EXTRA_CONDENSED
VTS::EXTRA_EXPANDED
VTS::INHERIT
VTS::NARROWER
VTS::NORMAL
VTS::SEMI_CONDENSED
VTS::SEMI_EXPANDED
VTS::ULTRA_CONDENSED
VTS::ULTRA_EXPANDED
VTS::WIDER
Vector module documentation © Paul Manias © 2010-2025

VTXF Type

VectorText flags.

NameDescription
VTXF::AREA_SELECTEDAutomatically set if a region of text has been selected.
VTXF::BLINKEnable animated blinking (not supported - exists as SVG dummy option).
VTXF::EDITAllow user editing of the text if the nearest viewport has the focus.
VTXF::EDITABLEAllow user editing of the text if the nearest viewport has the focus.
VTXF::LINE_THROUGHEnable a strike-through line in the text.
VTXF::NO_SYS_KEYSDisables support for system-keys that enable common key combinations such as Ctrl-C, Ctrl-X etc.
VTXF::OVERLINEEnable overlining of the text.
VTXF::OVERWRITETurns on overwrite mode (if off, insert mode is enabled).
VTXF::RASTERRasterise glyphs to a texture cache for very fast rendering. This feature is not compatible with scalable graphics conventions.
VTXF::SECRETHide all characters from the UI by using generic symbols in place of glyphs.
VTXF::UNDERLINEEnable underlining of the text.
Vector module documentation © Paul Manias © 2010-2025

VUNIT Type

NameDescription
VUNIT::BOUNDING_BOXCoordinates are scaled to the object's bounding box.
VUNIT::UNDEFINEDEither the default setting will be applied or the setting will be inherited from a parent object.
VUNIT::USERSPACECoordinates are scaled to the current viewport.
Vector module documentation © Paul Manias © 2010-2025

WVC Type

Wave options.

NameDescription
WVC::BOTTOMClose the path across the bottom of its area.
WVC::NONEDo not close the path.
WVC::TOPClose the path across the top of its area.
Vector module documentation © Paul Manias © 2010-2025

WVS Type

Wave style options.

NameDescription
WVS::ANGLEDChevron style angles at 45 degrees either side of the peak and bottom edge.
WVS::CURVEDStandard sine-wave curvature, this is the default.
WVS::SAWTOOTHSawtooth patterns rise at 45 degrees to the peak, then direct 90 degrees to the bottom.
Vector module documentation © Paul Manias © 2010-2025

FontMetrics Structure

Font metrics, measured in pixels relative to the display

FieldTypeDescription
HeightINTCapitalised font height
LineSpacingINTVertical advance from one line to the next
AscentINTHeight from the baseline to the top of the font, including accents.
DescentINTHeight from the baseline to the bottom of the font
Vector module documentation © Paul Manias © 2010-2025

GradientStop Structure

Describes a colour stop for the VectorGradient Stops field.

FieldTypeDescription
OffsetDOUBLEAn offset in the range of 0 - 1.0
RGBstruct FRGBA floating point RGB value.
Vector module documentation © Paul Manias © 2010-2025

MergeSource Structure

Input source declaration for MergeFX

FieldTypeDescription
SourceTypeVSFThe type of the required source.
EffectobjFilterEffect *Effect pointer if the SourceType is REFERENCE.
Vector module documentation © Paul Manias © 2010-2025

PathCommand Structure

Base structure for path commands.

FieldTypeDescription
TypePEThe command type
LargeArcUBYTEEquivalent to the large-arc-flag in SVG, it ensures that the arc follows the longest drawing path when TRUE.
SweepUBYTEEquivalent to the sweep-flag in SVG, it inverts the default behaviour in generating arc paths.
Pad1UBYTEPrivate
XDOUBLEThe targeted X coordinate (absolute or scaled) for the command
YDOUBLEThe targeted Y coordinate (absolute or scaled) for the command
AbsXDOUBLEPrivate
AbsYDOUBLEPrivate
X2DOUBLEThe X2 coordinate for curve commands, or RX for arcs
Y2DOUBLEThe Y2 coordinate for curve commands, or RY for arcs
X3DOUBLEThe X3 coordinate for curve-to or smooth-curve-to
Y3DOUBLEThe Y3 coordinate for curve-to or smooth-curve-to
AngleDOUBLEArc angle
Vector module documentation © Paul Manias © 2010-2025

Transition Structure

For VectorTransition definitions

FieldTypeDescription
OffsetDOUBLEAn offset from 0.0 to 1.0 at which to apply the transform.
TransformCSTRINGA transform string, as per SVG guidelines.
Vector module documentation © Paul Manias © 2010-2025

VectorMatrix Structure

Vector transformation matrix.

FieldTypeDescription
Nextstruct VectorMatrix *The next transform in the list.
VectorobjVector *The vector associated with the transform.
ScaleXDOUBLEMatrix value A
ShearYDOUBLEMatrix value B
ShearXDOUBLEMatrix value C
ScaleYDOUBLEMatrix value D
TranslateXDOUBLEMatrix value E
TranslateYDOUBLEMatrix value F
TagINTAn optional tag value defined by the client for matrix identification.
Vector module documentation © Paul Manias © 2010-2025

VectorPainter Structure

Deserialised painter information; compliant with SVG painter definitions.

FieldTypeDescription
PatternobjVectorPattern *A VectorPattern object, suitable for pattern based fills.
ImageobjVectorImage *A VectorImage object, suitable for image fills.
GradientobjVectorGradient *A VectorGradient object, suitable for gradient fills.
Colourstruct FRGBA single RGB colour definition, suitable for block colour fills.
Vector module documentation © Paul Manias © 2010-2025

VectorPoint Structure

Structure for the VectorPolygon PointsArray field.

FieldTypeDescription
XDOUBLEThe X coordinate of this point.
YDOUBLEThe Y coordinate of this point.
XScaledUBYTETRUE if the X value is scaled to its viewport (between 0 and 1.0).
YScaledUBYTETRUE if the Y value is scaled to its viewport (between 0 and 1.0).
Vector module documentation © Paul Manias © 2010-2025