Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#include "TextStrokeRenderer.h"
|
|
#include "Canvas.h"
|
|
#include "StrokeIterators.h"
|
|
|
|
namespace Freestyle {
|
|
|
|
TextStrokeRenderer::TextStrokeRenderer(const char *iFileName)
|
|
{
|
|
if (!iFileName) {
|
|
iFileName = "freestyle.txt";
|
|
}
|
|
// open the stream:
|
|
_ofstream.open(iFileName, ios::out);
|
|
if (!_ofstream.is_open()) {
|
|
cerr << "couldn't open the output file " << iFileName << endl;
|
|
}
|
|
_ofstream << "%!FREESTYLE" << endl;
|
|
_ofstream << "%Creator: Freestyle (http://artis.imag.fr/Software/Freestyle)" << endl;
|
|
// Bounding box
|
|
_ofstream << 0 << " " << 0 << " " << Canvas::getInstance()->width() << " "
|
|
<< Canvas::getInstance()->height() << endl;
|
|
_ofstream << "%u x y z tleft tright r g b ..." << endl;
|
|
}
|
|
|
|
void TextStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const
|
|
{
|
|
RenderStrokeRepBasic(iStrokeRep);
|
|
}
|
|
|
|
void TextStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const
|
|
{
|
|
Stroke *stroke = iStrokeRep->getStroke();
|
|
if (!stroke) {
|
|
cerr << "no stroke associated with Rep" << endl;
|
|
return;
|
|
}
|
|
|
|
StrokeInternal::StrokeVertexIterator v = stroke->strokeVerticesBegin();
|
|
StrokeAttribute att;
|
|
while (!v.isEnd()) {
|
|
att = v->attribute();
|
|
_ofstream << v->u() << " " << v->getProjectedX() << " " << v->getProjectedY() << " "
|
|
<< v->getProjectedZ() << " " << att.getThicknessL() << " " << att.getThicknessR()
|
|
<< " " << att.getColorR() << " " << att.getColorG() << " " << att.getColorB() << " ";
|
|
++v;
|
|
}
|
|
_ofstream << endl;
|
|
}
|
|
|
|
} /* namespace Freestyle */
|