diff --git a/src/azure-c.cpp b/src/azure-c.cpp index 3b17571..6a59aeb 100644 --- a/src/azure-c.cpp +++ b/src/azure-c.cpp @@ -641,6 +641,15 @@ AzPathBuilderQuadraticBezierTo(AzPathBuilderRef aPathBuilder, gfxPathBuilder->QuadraticBezierTo(*gfxControlPoint, *gfxEndPoint); } +extern "C" AzPoint +AzPathBuilderCurrentPoint(AzPathBuilderRef aPathBuilder) { + gfx::PathBuilder *gfxPathBuilder = static_cast(aPathBuilder); + AzPoint p; + p.x = gfxPathBuilder->CurrentPoint().x; + p.y = gfxPathBuilder->CurrentPoint().y; + return p; +} + extern "C" void AzPathBuilderClose(AzPathBuilderRef aPathBuilder) { gfx::PathBuilder *gfxPathBuilder = static_cast(aPathBuilder); diff --git a/src/azure-c.h b/src/azure-c.h index 968ec44..8a9b25e 100644 --- a/src/azure-c.h +++ b/src/azure-c.h @@ -449,6 +449,7 @@ void AzPathBuilderBezierTo(AzPathBuilderRef aPathBuilder, void AzPathBuilderQuadraticBezierTo(AzPathBuilderRef aPathBuilder, const AzPoint *aCP, const AzPoint *aEndPoint); +AzPoint AzPathBuilderCurrentPoint(AzPathBuilderRef aPathBuilder); void AzPathBuilderClose(AzPathBuilderRef aPathBuilder); AzPathRef AzPathBuilderFinish(AzPathBuilderRef aPathBuilder); diff --git a/src/azure.rs b/src/azure.rs index b4326e0..e756fd1 100644 --- a/src/azure.rs +++ b/src/azure.rs @@ -590,6 +590,8 @@ pub fn AzPathBuilderQuadraticBezierTo(aPathBuilder: AzPathBuilderRef, aControlPoint: *const AzPoint, aEndPoint: *const AzPoint); +pub fn AzPathBuilderCurrentPoint(aPathBuilder: AzPathBuilderRef) -> AzPoint; + pub fn AzPathBuilderClose(aPathBuilder: AzPathBuilderRef); pub fn AzPathBuilderFinish(aPathBuilder: AzPathBuilderRef) -> AzPathRef; diff --git a/src/azure_hl.rs b/src/azure_hl.rs index 1ddfdde..4de772c 100644 --- a/src/azure_hl.rs +++ b/src/azure_hl.rs @@ -52,7 +52,7 @@ use azure::{AzFilterNodeSetMatrix5x4Attribute, AzFilterNodeSetFilterNodeInput}; use azure::{AzFilterNodeSetFloatArrayAttribute, AzFilterNodeSetBoolAttribute}; use azure::{AzDrawTargetDrawFilter, AzFilterNodeRef, AzFilterType}; use azure::{AzPathBuilderBezierTo, AzPathBuilderQuadraticBezierTo}; -use azure::{AzPathBuilderClose}; +use azure::{AzPathBuilderCurrentPoint, AzPathBuilderClose}; use geom::matrix2d::Matrix2D; use geom::point::Point2D; @@ -1023,6 +1023,13 @@ impl PathBuilder { } } + /// Returns the current last point of the current path. + pub fn get_current_point(&self) -> AzPoint { + unsafe { + AzPathBuilderCurrentPoint(self.azure_path_builder) + } + } + /// Closes the current path. pub fn close(&self) { unsafe {