VerticesComp(3U)

NAME
VerticesComp, VerticesView, PSVertices - abstract base classes for vertexed graphical component subjects and their views and PostScript external representations

SYNOPSIS
#include <Unidraw/Components/vertices.h>

DESCRIPTION
VerticesComp is an abstract base class for graphical components whose geometry can be expressed as a list of coordinate pairs. VerticesComp uses a Vertices graphic to store its graphical attributes. VerticesView is an abstract GraphicView subclass for displaying a VerticesComp. PSVertices is an abstract PostScriptView for subclasses that externalize VerticesComp information in PostScript form.

VERTICESCOMP PUBLIC OPERATIONS

Vertices* GetVertices()
    Return the Vertices graphic that defines the vertices's attributes. GetVertices is simply a more specific form of the GetGraphic operation.

VERTICESCOMP PROTECTED OPERATIONS

VerticesComp(Vertices* = nil)
    The constructor takes an optional vertices graphic that defines the component's graphical attributes.

VERTICESVIEW PUBLIC OPERATIONS

virtual void Interpret(Command*)
    VerticesView interprets AlignToGridCmd to align its first vertex to the grid.

virtual void GetVertices(Coord*& x, Coord*& y, int& count)
    Return the view's vertices in canvas coordinates. GetVertices allocates new arrays each time it is called.

VerticesComp* GetVerticesComp()
    Return the subject.

VERTICESVIEW PROTECTED OPERATIONS

VerticesView(VerticesComp* = nil)
    Initialize a VerticesView, optionally supplying the subject.

virtual void CreateHandles()
    VerticesView redefines CreateHandles to create a RubberHandles object that draws a handle coinciding with each vertex.

virtual boolean VertexChanged()
    Returns whether or not the vertices as stored in the view are different in any way from those stored in the subject. The Update function relies on the result to determine whether to recreate the view's structured graphic based on the subject's. VerticesView::VertexChanged (conservatively) returns false by default; subclasses should redefine this function to make a more discerning decision, thereby increasing the efficiency of the update operation.

PSVERTICES PROTECTED OPERATIONS

PSVertices(VerticesComp* = nil)
    Initialize a PostScript external representation of the given subject, if any.

virtual const char* Name()
    Subclasses should redefine Name to return the proper tag for the object in the PostScript output as required for idraw compatibility.

SEE ALSO
GraphicComp(3U), GraphicView(3U), Grid(3U), PatternCmd(3U), PostScriptView(3U), Vertices(3U), align(3U), idraw(3I)