Improved flaten

This commit is contained in:
Lars Brubaker 2023-12-01 17:45:27 -08:00
parent cf608735bc
commit 25dd3c7f78
2 changed files with 24 additions and 13 deletions

View file

@ -144,18 +144,25 @@ namespace MatterHackers.MatterControl.DesignTools
public override void Apply(UndoBuffer undoBuffer) public override void Apply(UndoBuffer undoBuffer)
{ {
// change this from a text object to a group if (Output == OutputDimensions.Output2D)
var newContainer = new GroupObject3D();
newContainer.CopyProperties(this, Object3DPropertyFlags.All);
foreach (var child in this.Children)
{ {
var clone = child.Clone(); this.FlattenToPathObject(undoBuffer);
newContainer.Children.Add(clone); }
} else
{
// change this from a text object to a group
var newContainer = new GroupObject3D();
newContainer.CopyProperties(this, Object3DPropertyFlags.All);
foreach (var child in this.Children)
{
var clone = child.Clone();
newContainer.Children.Add(clone);
}
undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, new[] { newContainer })); undoBuffer.AddAndDo(new ReplaceCommand(new[] { this }, new[] { newContainer }));
newContainer.Name = this.Name; newContainer.Name = this.Name;
} }
}
public override async void OnInvalidate(InvalidateArgs invalidateArgs) public override async void OnInvalidate(InvalidateArgs invalidateArgs)
{ {
@ -244,10 +251,13 @@ namespace MatterHackers.MatterControl.DesignTools
var letterPaths = new List<IVertexSource>(); var letterPaths = new List<IVertexSource>();
foreach (var letter in textToWrite.ToCharArray()) foreach (var letter in textToWrite.ToCharArray())
{ {
var style = new StyledTypeFace(ApplicationController.GetTypeFace(this.Font), pointSize); var style = new StyledTypeFace(ApplicationController.GetTypeFace(this.Font), pointSize)
{
FlattenCurves = false
};
var letterPrinter = new TypeFacePrinter(letter.ToString(), style) var letterPrinter = new TypeFacePrinter(letter.ToString(), style)
{ {
ResolutionScale = 10 ResolutionScale = 10,
}; };
var scaledLetterPrinter = new VertexSourceApplyTransform(letterPrinter, Affine.NewScaling(mmPerPoint)); var scaledLetterPrinter = new VertexSourceApplyTransform(letterPrinter, Affine.NewScaling(mmPerPoint));
@ -286,6 +296,7 @@ namespace MatterHackers.MatterControl.DesignTools
}; };
if (Output == OutputDimensions.Output2D) if (Output == OutputDimensions.Output2D)
{ {
var letterPath = new VertexSourceApplyTransform(new VertexStorage(scaledLetterPrinter), var letterPath = new VertexSourceApplyTransform(new VertexStorage(scaledLetterPrinter),
Affine.NewTranslation(offset.X, offset.Y)); Affine.NewTranslation(offset.X, offset.Y));
letterPaths.Add(letterPath); letterPaths.Add(letterPath);

@ -1 +1 @@
Subproject commit d69357cc53c5e83c4722353de3c2030ef84e2475 Subproject commit ea29e79df34dc1ad8bac8f09e4333f49212922db