1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- {
- Author: Felipe Monteiro de Carvalho
- License: Public Domain
- }
- program fpvmodifytest;
- {$mode objfpc}{$H+}
- uses
- fpvectorial, svgvectorialwriter, svgvectorialreader, fpvutils;
- const
- cFormat = vfSVG;
- cExtension = '.svg';
- var
- Vec: TvVectorialDocument;
- Path: TPath;
- i: Integer;
- Segment: TPathSegment;
- _2DSegment: T2DSegment;
- BezSegment: T2DBezierSegment;
- begin
- Vec := TvVectorialDocument.Create;
- try
- // Read the file
- Vec.ReadFromFile('bezier_1.svg');
- // Now add 10 to the Y coordinate of all elements
- for i := 0 to Vec.GetPathCount() - 1 do
- begin
- Path := Vec.GetPath(i);
- Path.PrepareForSequentialReading();
- Path.Next();
- while Path.CurPoint <> nil do
- begin
- Segment := Path.CurPoint;
- if Segment is T2DBezierSegment then
- begin
- BezSegment := Segment as T2DBezierSegment;
- BezSegment.Y := BezSegment.Y + 10;
- BezSegment.Y2 := BezSegment.Y2 + 10;
- BezSegment.Y3 := BezSegment.Y3 + 10;
- end
- else if Segment is T2DSegment then
- begin
- _2DSegment := Segment as T2DSegment;
- _2DSegment.Y := _2DSegment.Y + 10;
- end;
- Path.Next();
- end;
- end;
- // Write the changed file to disk
- Vec.WriteToFile('bezier_1_mod' + cExtension, cFormat);
- finally
- Vec.Free;
- end;
- end.
|