PolygonComp(3U)

NAME
PolygonComp, PolygonView, PSPolygon - polygon component subject, view, and PostScript external representation

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

DESCRIPTION
PolygonComp is a VerticesComp that defines a polygon. It uses an SF_Polygon graphic to store its graphical attributes. PolygonView is a VerticesView for displaying the polygon. PSPolygon is a PSVertices that externalizes the subject's information in PostScript form.

POLYGONCOMP PUBLIC OPERATIONS

PolygonComp(SF_Polygon* = nil)
    The constructor takes an optional stroked-filled polygon graphic that defines the attributes of the polygon.

SF_Polygon* GetPolygon()
    Return the Polygon graphic that defines the polygon's attributes. GetPolygon is simply a more specific form of the GetGraphic operation.

POLYGONVIEW PUBLIC OPERATIONS

PolygonView(PolygonComp* = nil)
    Create an PolygonView, optionally supplying the subject.

virtual Manipulator* CreateManipulator(

Viewer*, Event&, Transformer*, Tool*

)

virtual void InterpretManipulator(Manipulator*)
    PolygonView redefines its response to manipulation with a GraphicCompTool. The user clicks the left mouse button to specify each vertex and clicks with the middle mouse button to specify the final vertex. Vertex positioning will be constrained by gravity, if any. PolygonView also defines a response to the ReshapeTool, allowing the user to click on one of its vertices to reposition it. The subject is actually replaced (via ReplaceCmd) with a new PolygonComp subject reflecting the repositioned vertex. Repositioning will be influenced by gravity.

PolygonComp* GetPolygonComp()
    Return the subject.

PSPOLYGON PUBLIC OPERATIONS

PSPolygon(PolygonComp* = nil)
    Construct a PostScript external representation of the given subject, if any.

PSPOLYGON PROTECTED OPERATIONS

virtual const char* Name()
    PSPolygon identifies itself as "Poly" in the PostScript output.

SEE ALSO
Event(3I), GraphicComp(3U), GraphicCompTool(3U), GraphicView(3U), Grid(3U), PatternCmd(3U), PostScriptView(3U), ReshapeTool(3U), Rubband(3I), Transformer(3I), VerticesComp(3U), Viewer(3U), align(3U), edit(3U), polygons(3U)