diff --git a/toonz/sources/image/pli/tiio_pli.cpp b/toonz/sources/image/pli/tiio_pli.cpp index df0dcb5..4878a1d 100644 --- a/toonz/sources/image/pli/tiio_pli.cpp +++ b/toonz/sources/image/pli/tiio_pli.cpp @@ -457,6 +457,7 @@ TImageWriterPli::TImageWriterPli(const TFilePath &f, const TFrameId &frameId, static void putStroke(TStroke *stroke, int &currStyleId, std::vector &tags) { double maxThickness = 0; + bool nonStdOutline = false; assert(stroke); int chunkCount = stroke->getChunkCount(); @@ -477,10 +478,12 @@ static void putStroke(TStroke *stroke, int &currStyleId, // If the outline options are non-standard (not round), add the outline infos TStroke::OutlineOptions &options = stroke->outlineOptions(); if (options.m_capStyle != TStroke::OutlineOptions::ROUND_CAP || - options.m_joinStyle != TStroke::OutlineOptions::ROUND_JOIN) { + options.m_joinStyle != TStroke::OutlineOptions::ROUND_JOIN || + options.m_miterLower != 0.0 || options.m_miterUpper != 4.0) { StrokeOutlineOptionsTag *outlineOptionsTag = new StrokeOutlineOptionsTag(options); tags.push_back((PliObjectTag *)outlineOptionsTag); + nonStdOutline = true; } UINT k; @@ -501,6 +504,14 @@ static void putStroke(TStroke *stroke, int &currStyleId, tags.push_back((PliObjectTag *)quadChainTag); // pli->addTag(groupTag[count++]); + + if (nonStdOutline) { + // Restore default outline settings + TStroke::OutlineOptions resetoptions; + StrokeOutlineOptionsTag *outlineOptionsTag = + new StrokeOutlineOptionsTag(resetoptions); + tags.push_back((PliObjectTag *)outlineOptionsTag); + } } //-----------------------------------------------------------------------------