# C1.Util.DX.Direct2D.Geometry.Outline

## Content

<div class="doc-site-dotnet-api-container">



<h1 id="C1_Util_DX_Direct2D_Geometry_Outline_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline*">Outline Method
</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>



<a id="C1_Util_DX_Direct2D_Geometry_Outline_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_Outline_C1_Util_DX_Direct2D_GeometrySink_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline(C1.Util.DX.Direct2D.GeometrySink)">Outline(GeometrySink)</h4>
<div class="markdown level1 summary"><p>Computes the outline of the geometry and writes the result to an <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public void Outline(GeometrySink geometrySink)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Sub Outline(geometrySink As GeometrySink)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Direct2D.GeometrySink.html">GeometrySink</a></td>
      <td><span class="parametername">geometrySink</span></td>
      <td><p>The <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a> to which the geometry's transformed outline is appended.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_Util_DX_Direct2D_Geometry_Outline_C1_Util_DX_Direct2D_GeometrySink__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see <a class="xref" href="C1.Util.DX.Direct2D.FillMode.html">FillMode</a>.Additionally, the  {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with <a class="xref" href="C1.Util.DX.Direct2D.GeometryGroup.html">GeometryGroup</a> to create unions among several geometries simultaneously.</p>
</div>


<a id="C1_Util_DX_Direct2D_Geometry_Outline_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_Outline_System_Single_C1_Util_DX_Direct2D_GeometrySink_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline(System.Single,C1.Util.DX.Direct2D.GeometrySink)">Outline(float, GeometrySink)</h4>
<div class="markdown level1 summary"><p>Computes the outline of the geometry and writes the result to an <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public void Outline(float flatteningTolerance, GeometrySink geometrySink)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Sub Outline(flatteningTolerance As Single, geometrySink As GeometrySink)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">flatteningTolerance</span></td>
      <td><p>The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Direct2D.GeometrySink.html">GeometrySink</a></td>
      <td><span class="parametername">geometrySink</span></td>
      <td><p>The <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a> to which the geometry's transformed outline is appended.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_Util_DX_Direct2D_Geometry_Outline_System_Single_C1_Util_DX_Direct2D_GeometrySink__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see <a class="xref" href="C1.Util.DX.Direct2D.FillMode.html">FillMode</a>.Additionally, the  {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with <a class="xref" href="C1.Util.DX.Direct2D.GeometryGroup.html">GeometryGroup</a> to create unions among several geometries simultaneously.</p>
</div>


<a id="C1_Util_DX_Direct2D_Geometry_Outline_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline*"></a>
<h4 id="C1_Util_DX_Direct2D_Geometry_Outline_System_Nullable_C1_Util_DX_Matrix3x2__System_Single_C1_Util_DX_Direct2D_GeometrySink_" data-uid="C1.Util.DX.Direct2D.Geometry.Outline(System.Nullable{C1.Util.DX.Matrix3x2},System.Single,C1.Util.DX.Direct2D.GeometrySink)">Outline(Matrix3x2?, float, GeometrySink)</h4>
<div class="markdown level1 summary"><p>Computes the outline of the geometry and writes the result to an <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="declaration">Declaration</h5>
<div class="codewrapper">
  <pre><code class="lang-csharp hljs">public void Outline(Matrix3x2? worldTransform, float flatteningTolerance, GeometrySink geometrySink)</code></pre>
</div>
<div class="codewrapper">
  <pre><code class="lang-vbnet hljs">Public Sub Outline(worldTransform As Matrix3x2?, flatteningTolerance As Single, geometrySink As GeometrySink)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-condensed">
  <thead>
    <tr>
      <th>Type</th>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Matrix3x2.html">Matrix3x2</a>?</td>
      <td><span class="parametername">worldTransform</span></td>
      <td><p>The transform to apply to the geometry outline, or NULL.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.single">float</a></td>
      <td><span class="parametername">flatteningTolerance</span></td>
      <td><p>The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution.</p>
</td>
    </tr>
    <tr>
      <td><a class="xref" href="C1.Util.DX.Direct2D.GeometrySink.html">GeometrySink</a></td>
      <td><span class="parametername">geometrySink</span></td>
      <td><p>The <a class="xref" href="C1.Util.DX.Direct2D.SimplifiedGeometrySink.html">SimplifiedGeometrySink</a> to which the geometry's transformed outline is appended.</p>
</td>
    </tr>
  </tbody>
</table>
<h5 id="C1_Util_DX_Direct2D_Geometry_Outline_System_Nullable_C1_Util_DX_Matrix3x2__System_Single_C1_Util_DX_Direct2D_GeometrySink__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see <a class="xref" href="C1.Util.DX.Direct2D.FillMode.html">FillMode</a>.Additionally, the  {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with <a class="xref" href="C1.Util.DX.Direct2D.GeometryGroup.html">GeometryGroup</a> to create unions among several geometries simultaneously.</p>
</div>
</div>
