From e5791cf48e10ec1336f463b7fccff6b302621eb9 Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Fri, 28 Dec 2012 20:21:05 +0000 Subject: Another mega (literally :p) code clean-up patch by Bastien Montagne, thanks again! --- .../freestyle/intern/stroke/StrokeTesselator.cpp | 146 +++++++++++---------- 1 file changed, 76 insertions(+), 70 deletions(-) (limited to 'source/blender/freestyle/intern/stroke/StrokeTesselator.cpp') diff --git a/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp b/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp index a8b71f9f3c3..43cf1818fb0 100644 --- a/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp +++ b/source/blender/freestyle/intern/stroke/StrokeTesselator.cpp @@ -1,88 +1,94 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2010 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ -// -// Copyright (C) : Please refer to the COPYRIGHT file distributed -// with this source distribution. -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -/////////////////////////////////////////////////////////////////////////////// +/** \file blender/freestyle/intern/stroke/StrokeTesselator.cpp + * \ingroup freestyle + * \brief Class to build a Node Tree designed to be displayed from a set of strokes structure. + * \author Stephane Grabli + * \date 26/03/2002 + */ +#include "StrokeAdvancedIterators.h" #include "StrokeTesselator.h" + #include "../scene_graph/OrientedLineRep.h" #include "../scene_graph/NodeGroup.h" #include "../scene_graph/NodeShape.h" -#include "StrokeAdvancedIterators.h" -LineRep* StrokeTesselator::Tesselate(Stroke *iStroke) +LineRep *StrokeTesselator::Tesselate(Stroke *iStroke) { - if(0 == iStroke) - return 0; + if (0 == iStroke) + return 0; - LineRep* line; - line = new OrientedLineRep(); - - Stroke::vertex_iterator v,vend; - if(2 == iStroke->vertices_size()) - { - line->setStyle(LineRep::LINES); - v = iStroke->vertices_begin(); - StrokeVertex *svA= (*v); - v++; - StrokeVertex *svB = (*v); - Vec3r A((*svA)[0], (*svA)[1], 0); - Vec3r B((*svB)[0], (*svB)[1], 0); - line->AddVertex(A); - line->AddVertex(B); - } - else - { - if(_overloadFrsMaterial) - line->setFrsMaterial(_FrsMaterial); + LineRep* line; + line = new OrientedLineRep(); - line->setStyle(LineRep::LINE_STRIP); + Stroke::vertex_iterator v,vend; + if (2 == iStroke->vertices_size()) { + line->setStyle(LineRep::LINES); + v = iStroke->vertices_begin(); + StrokeVertex *svA = (*v); + v++; + StrokeVertex *svB = (*v); + Vec3r A((*svA)[0], (*svA)[1], 0); + Vec3r B((*svB)[0], (*svB)[1], 0); + line->AddVertex(A); + line->AddVertex(B); + } + else { + if (_overloadFrsMaterial) + line->setFrsMaterial(_FrsMaterial); - for(v=iStroke->vertices_begin(), vend=iStroke->vertices_end(); - v!=vend; - v++) - { - StrokeVertex *sv= (*v); - Vec3r V((*sv)[0], (*sv)[1], 0); - line->AddVertex(V); - } - } - line->setId(iStroke->getId()); - line->ComputeBBox(); + line->setStyle(LineRep::LINE_STRIP); - return line; + for (v = iStroke->vertices_begin(), vend = iStroke->vertices_end(); v != vend; v++) { + StrokeVertex *sv = (*v); + Vec3r V((*sv)[0], (*sv)[1], 0); + line->AddVertex(V); + } + } + line->setId(iStroke->getId()); + line->ComputeBBox(); + + return line; } template -NodeGroup* StrokeTesselator::Tesselate(StrokeVertexIterator begin, StrokeVertexIterator end) +NodeGroup *StrokeTesselator::Tesselate(StrokeVertexIterator begin, StrokeVertexIterator end) { - NodeGroup *group = new NodeGroup; - NodeShape *tshape = new NodeShape; - group->AddChild(tshape); - //tshape->material().setDiffuse(0.f, 0.f, 0.f, 1.f); - tshape->setFrsMaterial(_FrsMaterial); + NodeGroup *group = new NodeGroup; + NodeShape *tshape = new NodeShape; + group->AddChild(tshape); + //tshape->material().setDiffuse(0.0f, 0.0f, 0.0f, 1.0f); + tshape->setFrsMaterial(_FrsMaterial); + + for (StrokeVertexIterator c = begin, cend = end; c != cend; c++) { + tshape->AddRep(Tesselate((*c))); + } - for(StrokeVertexIterator c=begin, cend=end; - c!=cend; - c++) - { - tshape->AddRep(Tesselate((*c))); - } - - return group; + return group; } -- cgit v1.2.3