# ID2D1Geometry interface

Represents a geometry resource and defines a set of helper methods for manipulating and measuring geometric shapes. Interfaces that inherit from **ID2D1Geometry** define specific shapes.

## Methods

The **ID2D1Geometry** interface has these methods.

Method | Description |
---|---|

ID2D1Geometry::CombineWithGeometry | Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::CombineWithGeometry | Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::CombineWithGeometry | Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::CompareWithGeometry | Describes the intersection between this geometry and the specified geometry. The comparison is performed using the specified flattening tolerance. |

ID2D1Geometry::CompareWithGeometry | Describes the intersection between this geometry and the specified geometry. The comparison is performed using the default flattening tolerance. |

ID2D1Geometry::CompareWithGeometry | Describes the intersection between this geometry and the specified geometry. The comparison is performed using the default flattening tolerance. |

ID2D1Geometry::ComputeArea | Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. |

ID2D1Geometry::ComputeArea | Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. |

ID2D1Geometry::ComputeArea | Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::ComputeLength | Calculates the length of the geometry as though each segment were unrolled into a line. |

ID2D1Geometry::ComputeLength | Calculates the length of the geometry as though each segment were unrolled into a line. |

ID2D1Geometry::ComputeLength | Calculates the length of the geometry as though each segment were unrolled into a line. |

ID2D1Geometry::ComputePointAtLength | Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. |

ID2D1Geometry::ComputePointAtLength | Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::ComputePointAtLength | Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::FillContainsPoint | Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. |

ID2D1Geometry::FillContainsPoint | Indicates whether the area filled by this geometry would contain the specified point. |

ID2D1Geometry::FillContainsPoint | Indicates whether the area filled by the geometry would contain the specified point. |

ID2D1Geometry::GetBounds | Retrieves the bounds of the geometry. |

ID2D1Geometry::GetBounds | Retrieves the bounds of the geometry. |

ID2D1Geometry::GetWidenedBounds | Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. |

ID2D1Geometry::GetWidenedBounds | Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. |

ID2D1Geometry::GetWidenedBounds | Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. |

ID2D1Geometry::Outline | Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::Outline | Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::Outline | Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::Simplify | Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::Simplify | Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::Simplify | Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink. |

ID2D1Geometry::StrokeContainsPoint | Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. |

ID2D1Geometry::StrokeContainsPoint | Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. |

ID2D1Geometry::StrokeContainsPoint | Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. |

ID2D1Geometry::Tessellate | Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance. |

ID2D1Geometry::Tessellate | Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::Tessellate | Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::Widen | Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the specified tolerance. |

ID2D1Geometry::Widen | Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the default tolerance. |

ID2D1Geometry::Widen | Widens the geometry by the specified stroke and writes the result to an ID2D1SimplifiedGeometrySink after it has been transformed by the specified matrix and flattened using the default tolerance. |

## Remarks

There are several types of Direct2D geometry objects: a simple geometry (ID2D1RectangleGeometry, ID2D1RoundedRectangleGeometry, or ID2D1EllipseGeometry), a path geometry (ID2D1PathGeometry), or a composite geometry (ID2D1GeometryGroup and ID2D1TransformedGeometry).

Direct2D geometries enable you to describe two-dimensional figures and also offer many uses, such as defining hit-test regions, clip regions, and even animation paths.

Direct2D geometries are immutable and device-independent resources created by ID2D1Factory. In general, you should create geometries once and retain them for the life of the application, or until they need to be modified. For more information about device-independent and device-dependent resources, see the Resources Overview.

## Requirements

Minimum supported client |
Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | UWP apps] |

Minimum supported server |
Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | UWP apps] |

Target Platform |
Windows |

Header |
d2d1.h |