## org.apache.poi.hslf.model
Class Freeform

    java.lang.Object
      org.apache.poi.hslf.model.Shape
          org.apache.poi.hslf.model.SimpleShape
              org.apache.poi.hslf.model.TextShape
                  org.apache.poi.hslf.model.AutoShape
                      org.apache.poi.hslf.model.Freeform

    public final class Freeform

extends AutoShape

A "Freeform" shape.

Shapes drawn with the "Freeform" tool have cubic bezier curve segments in the smooth sections and straight-line segments in the straight sections. This object closely corresponds to `java.awt.geom.GeneralPath`.

Author:
  Yegor Kozlov

Field Summary
`static byte[]` `SEGMENTINFO_CLOSE`
`static byte[]` `SEGMENTINFO_CUBICTO`
`static byte[]` `SEGMENTINFO_CUBICTO2`
`static byte[]` `SEGMENTINFO_END`
`static byte[]` `SEGMENTINFO_ESCAPE`
`static byte[]` `SEGMENTINFO_ESCAPE2`
`static byte[]` `SEGMENTINFO_LINETO`
`static byte[]` `SEGMENTINFO_MOVETO`

Fields inherited from class org.apache.poi.hslf.model.TextShape
`_frc, _txtbox, _txtrun, AlignCenter, AlignJustify, AlignLeft, AlignRight, AnchorBottom, AnchorBottomBaseline, AnchorBottomCentered, AnchorBottomCenteredBaseline, AnchorMiddle, AnchorMiddleCentered, AnchorTop, AnchorTopBaseline, AnchorTopCentered, AnchorTopCenteredBaseline, WrapByPoints, WrapNone, WrapSquare, WrapThrough, WrapTopBottom`

Fields inherited from class org.apache.poi.hslf.model.SimpleShape
`_clientData, _clientRecords, DEFAULT_LINE_WIDTH`

Fields inherited from class org.apache.poi.hslf.model.Shape
`_escherContainer, _fill, _parent, _sheet, EMU_PER_CENTIMETER, EMU_PER_INCH, EMU_PER_POINT, logger, MASTER_DPI, PIXEL_DPI, POINT_DPI`

Constructor Summary
`` `Freeform()` Create a new Freeform.
`protected` `Freeform(EscherContainerRecord escherRecord, Shape parent)` Create a Freeform object and initialize it from the supplied Record container.
`` `Freeform(Shape parent)` Create a new Freeform.

Method Summary
`java.awt.Shape` `getOutline()` Return shape outline as a java.awt.Shape object
`java.awt.geom.GeneralPath` `getPath()` Gets the freeform path
`void` `setPath(java.awt.geom.GeneralPath path)` Set the shape path

Methods inherited from class org.apache.poi.hslf.model.AutoShape
`createSpContainer, getAdjustmentValue, setAdjustmentValue, setDefaultTextProperties`

Methods inherited from class org.apache.poi.hslf.model.TextShape

`afterInsert, createTextRun, draw, getEscherTextboxWrapper, getHorizontalAlignment, getMarginBottom, getMarginLeft, getMarginRight, getMarginTop, getPlaceholderAtom, getText, getTextId, getTextRun, getVerticalAlignment, getWordWrap, initTextRun, resizeToFitText, setHorizontalAlignment, setHyperlink, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setSheet, setText, setTextId, setVerticalAlignment, setWordWrap`

Methods inherited from class org.apache.poi.hslf.model.SimpleShape
`createSpContainer, getClientDataRecord, getClientRecords, getFillColor, getFlipHorizontal, getFlipVertical, getLineColor, getLineDashing, getLineStyle, getLineWidth, getLogicalAnchor2D, getRotation, setFillColor, setHyperlink, setLineColor, setLineDashing, setLineStyle, setLineWidth, setRotation, updateClientData`

Methods inherited from class org.apache.poi.hslf.model.Shape
`getAnchor, getAnchor2D, getEscherChild, getEscherProperty, getEscherProperty, getEscherProperty, getFill, getHyperlink, getParent, getShapeId, getShapeName, getShapeType, getSheet, getSpContainer, moveTo, setAnchor, setEscherProperty, setEscherProperty, setShapeId, setShapeType`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SEGMENTINFO_MOVETO

    public static final byte[] SEGMENTINFO_MOVETO

### SEGMENTINFO_LINETO

    public static final byte[] SEGMENTINFO_LINETO

### SEGMENTINFO_ESCAPE

    public static final byte[] SEGMENTINFO_ESCAPE

### SEGMENTINFO_ESCAPE2

    public static final byte[] SEGMENTINFO_ESCAPE2

### SEGMENTINFO_CUBICTO

    public static final byte[] SEGMENTINFO_CUBICTO

### SEGMENTINFO_CUBICTO2

    public static final byte[] SEGMENTINFO_CUBICTO2

### SEGMENTINFO_CLOSE

    public static final byte[] SEGMENTINFO_CLOSE

### SEGMENTINFO_END

    public static final byte[] SEGMENTINFO_END

Constructor Detail

### Freeform

    protected Freeform(EscherContainerRecord escherRecord,
                       Shape parent)

  Create a Freeform object and initialize it from the supplied Record container.

  Parameters:
    `escherRecord` - `EscherSpContainer` container which holds information about this shape
    `parent` - the parent of the shape

### Freeform

    public Freeform(Shape parent)

  Create a new Freeform. This constructor is used when a new shape is created.

  Parameters:
    `parent` - the parent of this Shape. For example, if this text box is a cell in a table then the parent is Table.

### Freeform

    public Freeform()

  Create a new Freeform. This constructor is used when a new shape is created.

Method Detail

### setPath

    public void setPath(java.awt.geom.GeneralPath path)

  Set the shape path

  Parameters:
    `path` -

### getPath

    public java.awt.geom.GeneralPath getPath()

  Gets the freeform path

  Returns:
    the freeform path

### getOutline

    public java.awt.Shape getOutline()

  Description copied from class: `Shape`
  Return shape outline as a java.awt.Shape object

  Overrides:
    `getOutline` in class `AutoShape`
  Returns:
    the shape outline

Copyright 2012 The Apache Software Foundation or its licensors, as applicable.