# ID2D1Geometry interface (d2d1.h)

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.

## Inheritance

The **ID2D1Geometry** interface inherits from ID2D1Resource. **ID2D1Geometry** also has these types of members:

## Methods

The **ID2D1Geometry** interface has these methods.

ID2D1Geometry::CombineWithGeometry Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. (overload 3/4) |

ID2D1Geometry::CombineWithGeometry Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. (overload 2/4) |

ID2D1Geometry::CombineWithGeometry Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. (overload 4/4) |

ID2D1Geometry::CombineWithGeometry Combines this geometry with the specified geometry and stores the result in an ID2D1SimplifiedGeometrySink. (overload 1/4) |

ID2D1Geometry::CompareWithGeometry Describes the intersection between this geometry and the specified geometry. The comparison is performed using the default flattening tolerance. (overload 1/2) |

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. (overload 2/2) |

ID2D1Geometry::CompareWithGeometry Describes the intersection between this geometry and the specified geometry. The comparison is performed by using the specified flattening 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::ComputeArea Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. (overload 2/3) |

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

ID2D1Geometry::ComputeArea Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. (overload 1/3) |

ID2D1Geometry::ComputeLength Calculates the length of the geometry as though each segment were unrolled into a line. (overload 1/4) |

ID2D1Geometry::ComputeLength Calculates the length of the geometry as though each segment were unrolled into a line. (overload 3/4) |

ID2D1Geometry::ComputeLength Calculates the length of the geometry as though each segment were unrolled into a line. (overload 2/4) |

ID2D1Geometry::ComputeLength Calculates the length of the geometry as though each segment were unrolled into a line. (overload 4/4) |

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. (overload 1/2) |

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. (overload 2/2) |

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. (overload 2/2) |

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. (overload 1/2) |

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

ID2D1Geometry::FillContainsPoint Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. (overload 1/2) |

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 given the specified flattening tolerance. (overload 2/2) |

ID2D1Geometry::GetBounds Retrieves the bounds of the geometry. (overload 2/2) |

ID2D1Geometry::GetBounds Retrieves the bounds of the geometry. (overload 1/2) |

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. (overload 4/4) |

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. (overload 3/4) |

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. (overload 1/4) |

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. (overload 2/4) |

ID2D1Geometry::Outline Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. (overload 3/4) |

ID2D1Geometry::Outline Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. (overload 2/4) |

ID2D1Geometry::Outline Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. (overload 1/4) |

ID2D1Geometry::Outline Computes the outline of the geometry and writes the result to an ID2D1SimplifiedGeometrySink. (overload 4/4) |

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. (overload 4/4) |

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. (overload 1/4) |

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. (overload 2/4) |

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. (overload 3/4) |

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

ID2D1Geometry::StrokeContainsPoint Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. (overload 2/4) |

ID2D1Geometry::StrokeContainsPoint Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. (overload 1/4) |

ID2D1Geometry::StrokeContainsPoint Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. (overload 3/4) |

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. (overload 1/2) |

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. (overload 2/2) |

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. (overload 2/2) |

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. (overload 1/2) |

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. (overload 1/2) |

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. (overload 2/2) |

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. (overload 2/2) |

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. (overload 1/2) |

## 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

Requirement | Value |
---|---|

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 |

## See also

## Feedback

https://aka.ms/ContentUserFeedback.

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for