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)