Package org.eclipse.gef.geometry.planar

## Interface IMultiShape

All Superinterfaces:
  `java.lang.Cloneable`, `IGeometry`, `java.io.Serializable`

All Known Implementing Classes:
  `Region`, `Ring`

    public interface IMultiShape
    extends IGeometry

In contradiction to the relation of the IPolyCurve to the ICurve interfaces, the IMultiShape interface does not extend the IShape interface. Anyhow, they share their interface methods. You can test an IGeometry for containment using the contains(IGeometry) method and the outline segments can be retrieved via the getOutlineSegments() method.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `contains​(IGeometry g)` Checks if the given `IGeometry` is fully contained by this `IMultiShape`.
`ICurve[]` `getOutlines()` Computes the outlines of this `IMultiShape`.
`ICurve[]` `getOutlineSegments()` Computes the outline segments of this `IMultiShape`.
`IShape[]` `getShapes()` Returns the `IShape`s that constitute this `IMultiShape`.

### Methods inherited from interface org.eclipse.gef.geometry.planar.IGeometry

`contains, getBounds, getCopy, getTransformed, toPath, touches`

### Method Detail

#### contains

    boolean contains​(IGeometry g)

Checks if the given `IGeometry` is fully contained by this `IMultiShape`.

Parameters:
  `g` - The `IGeometry` which is tested for containment.
Returns:
  `true` if the `IGeometry` is contained by this `IMultiShape`, otherwise `false`

#### getOutlines

    ICurve[] getOutlines()

Computes the outlines of this `IMultiShape`.

The outlines are returned as an array of `ICurve`s. For every closed outline of this `IMultiShape` one `ICurve` is returned.

Returns:
  an array of `ICurve`s, one for each closed outline

#### getOutlineSegments

    ICurve[] getOutlineSegments()

Computes the outline segments of this `IMultiShape`.

Each `ICurve` segment of the outline of the internal `IShape` s can be either an inner segment or an outer segment. This method extracts only the outer segments. The segments bordering voids are considered to be outer segments, too.

Returns:
  the outline segments of this `IMultiShape`

#### getShapes

    IShape[] getShapes()

Returns the `IShape`s that constitute this `IMultiShape`.

Returns:
  an array of `IShape`s, representing the parts that make up this `IMultiShape`.