@@ -467,7 +467,7 @@ public readonly struct Handle
467467 /// </remarks>
468468 /// <seealso cref="Triangulator{T2}"/>
469469 /// <seealso cref="UnsafeTriangulator{T2}"/>
470- public class Triangulator : IDisposable
470+ public class Triangulator : INativeDisposable
471471 {
472472 /// <summary>
473473 /// Settings used for triangulation.
@@ -499,6 +499,18 @@ public class Triangulator : IDisposable
499499 /// </summary>
500500 public void Dispose ( ) => impl . Dispose ( ) ;
501501
502+ /// <summary>
503+ /// Creates and schedules a job that releases all resources (memory and safety handles).
504+ /// </summary>
505+ /// <param name="dependencies">The dependency for the new job.</param>
506+ /// <remarks>
507+ /// Note: Consider using <see cref="UnsafeTriangulator"/>, which provides more customization for data management.
508+ /// </remarks>
509+ /// <returns>
510+ /// The handle of the new job. The job depends upon <paramref name="dependencies"/> and releases all resources (memory and safety handles).
511+ /// </returns>
512+ public JobHandle Dispose ( JobHandle dependencies ) => impl . Dispose ( dependencies ) ;
513+
502514 /// <summary>
503515 /// Perform the job's Execute method immediately on the same thread.
504516 /// </summary>
@@ -556,7 +568,7 @@ public class Triangulator : IDisposable
556568 /// <seealso cref="Triangulator"/>
557569 /// <seealso cref="UnsafeTriangulator{T2}"/>
558570 /// <seealso cref="Extensions"/>
559- public class Triangulator < T2 > : IDisposable where T2 : unmanaged
571+ public class Triangulator < T2 > : INativeDisposable where T2 : unmanaged
560572 {
561573 /// <summary>
562574 /// Settings used for triangulation.
@@ -614,6 +626,27 @@ public void Dispose()
614626 constrainedHalfedges . Dispose ( ) ;
615627 ignoredHalfedgesForPlantingSeeds . Dispose ( ) ;
616628 }
629+
630+ /// <summary>
631+ /// Creates and schedules a job that releases all resources (memory and safety handles).
632+ /// </summary>
633+ /// <param name="dependencies">The dependency for the new job.</param>
634+ /// <remarks>
635+ /// Note: Consider using <see cref="UnsafeTriangulator"/>, which provides more customization for data management.
636+ /// </remarks>
637+ /// <returns>
638+ /// The handle of the new job. The job depends upon <paramref name="dependencies"/> and releases all resources (memory and safety handles).
639+ /// </returns>
640+ public JobHandle Dispose ( JobHandle dependencies )
641+ {
642+ dependencies = outputPositions . Dispose ( dependencies ) ;
643+ dependencies = triangles . Dispose ( dependencies ) ;
644+ dependencies = status . Dispose ( dependencies ) ;
645+ dependencies = halfedges . Dispose ( dependencies ) ;
646+ dependencies = constrainedHalfedges . Dispose ( dependencies ) ;
647+ dependencies = ignoredHalfedgesForPlantingSeeds . Dispose ( dependencies ) ;
648+ return dependencies ;
649+ }
617650 }
618651
619652 /// <summary>
0 commit comments