API: Add GetBoundingBox and Box2

This commit is contained in:
Jon Evans
2024-11-19 22:09:00 -05:00
parent f97f79426a
commit 033fb4fc8f
7 changed files with 94 additions and 12 deletions
+15 -1
View File
@@ -66,18 +66,32 @@ types::LibraryIdentifier LibIdToProto( const LIB_ID& aId )
}
void PackVector2( kiapi::common::types::Vector2& aOutput, const VECTOR2I aInput )
void PackVector2( types::Vector2& aOutput, const VECTOR2I& aInput )
{
aOutput.set_x_nm( aInput.x );
aOutput.set_y_nm( aInput.y );
}
VECTOR2I UnpackVector2( const types::Vector2& aInput )
{
return VECTOR2I( aInput.x_nm(), aInput.y_nm() );
}
void PackBox2( types::Box2& aOutput, const BOX2I& aInput )
{
PackVector2( *aOutput.mutable_position(), aInput.GetOrigin() );
PackVector2( *aOutput.mutable_size(), aInput.GetSize() );
}
BOX2I UnpackBox2( const types::Box2& aInput )
{
return BOX2I( UnpackVector2( aInput.position() ), UnpackVector2( aInput.size() ) );
}
void PackPolyLine( kiapi::common::types::PolyLine& aOutput, const SHAPE_LINE_CHAIN& aSlc )
{
for( int vertex = 0; vertex < aSlc.PointCount(); vertex = aSlc.NextShape( vertex ) )