Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/scene_graph/LineRep.h')
-rw-r--r--source/blender/freestyle/intern/scene_graph/LineRep.h266
1 files changed, 147 insertions, 119 deletions
diff --git a/source/blender/freestyle/intern/scene_graph/LineRep.h b/source/blender/freestyle/intern/scene_graph/LineRep.h
index 232557af857..3d93db4835d 100644
--- a/source/blender/freestyle/intern/scene_graph/LineRep.h
+++ b/source/blender/freestyle/intern/scene_graph/LineRep.h
@@ -1,39 +1,46 @@
-//
-// Filename : LineRep.h
-// Author(s) : Stephane Grabli
-// Purpose : Class to define the representation of 3D Line.
-// Date of creation : 26/03/2002
-//
-///////////////////////////////////////////////////////////////////////////////
-
-
-//
-// 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.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef LINEREP_H
-# define LINEREP_H
-
-# include <vector>
-# include <list>
-# include "Rep.h"
-# include "../system/FreestyleConfig.h"
+/*
+ * ***** 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 *****
+ */
+
+#ifndef __FREESTYLE_LINE_REP_H__
+#define __FREESTYLE_LINE_REP_H__
+
+/** \file blender/freestyle/intern/scene_graph/LineRep.h
+ * \ingroup freestyle
+ * \brief Class to define the representation of 3D Line.
+ * \author Stephane Grabli
+ * \date 26/03/2002
+ */
+
+#include <list>
+#include <vector>
+
+#include "Rep.h"
+
+#include "../system/FreestyleConfig.h"
using namespace std;
@@ -41,90 +48,111 @@ using namespace std;
class LIB_SCENE_GRAPH_EXPORT LineRep : public Rep
{
public:
-
- /*! Line description style */
- enum LINES_STYLE{LINES, LINE_STRIP, LINE_LOOP};
- inline LineRep() : Rep() {_width = 0.f;}
-
- /*! Builds a single line from 2 vertices
- * v1
- * first vertex
- * v2
- * second vertex
- */
- inline LineRep(const Vec3r& v1, const Vec3r& v2)
- : Rep()
- {
- setStyle(LINES);
- AddVertex(v1);
- AddVertex(v2);
- _width = 0.f;
- }
-
- /*! Builds a line rep from a vertex chain */
- inline LineRep(const vector<Vec3r>& vertices)
- : Rep()
- {
- _vertices = vertices;
- setStyle(LINE_STRIP);
- _width = 0.f;
- }
-
- /*! Builds a line rep from a vertex chain */
- inline LineRep(const list<Vec3r>& vertices)
- : Rep()
- {
- for(list<Vec3r>::const_iterator v=vertices.begin(), end=vertices.end();
- v!=end;
- v++)
- {
- _vertices.push_back(*v);
- }
- setStyle(LINE_STRIP);
- _width = 0.f;
- }
-
- virtual ~LineRep()
- {
- _vertices.clear();
- }
-
- /*! accessors */
- inline const LINES_STYLE style() const {return _Style;}
- inline const vector<Vec3r>& vertices() const {return _vertices;}
- inline float width() const {return _width;}
-
- /*! modifiers */
- inline void setStyle(const LINES_STYLE iStyle) {_Style = iStyle;}
- inline void AddVertex(const Vec3r& iVertex) {_vertices.push_back(iVertex);}
- inline void setVertices(const vector<Vec3r>& iVertices)
- {
- if(0 != _vertices.size())
- {
- _vertices.clear();
- }
- for(vector<Vec3r>::const_iterator v=iVertices.begin(), end=iVertices.end();
- v!=end;
- v++)
- {
- _vertices.push_back(*v);
- }
- }
- inline void setWidth(float iWidth) {_width=iWidth;}
-
- /*! Accept the corresponding visitor */
- virtual void accept(SceneVisitor& v) {
- Rep::accept(v);
- v.visitLineRep(*this);
- }
-
- /*! Computes the line bounding box.*/
- virtual void ComputeBBox();
+ /*! Line description style */
+ enum LINES_STYLE {
+ LINES,
+ LINE_STRIP,
+ LINE_LOOP,
+ };
+
+ inline LineRep() : Rep()
+ {
+ _width = 0.0f;
+ }
+
+ /*! Builds a single line from 2 vertices
+ * v1
+ * first vertex
+ * v2
+ * second vertex
+ */
+ inline LineRep(const Vec3r& v1, const Vec3r& v2) : Rep()
+ {
+ setStyle(LINES);
+ AddVertex(v1);
+ AddVertex(v2);
+ _width = 0.0f;
+ }
+
+ /*! Builds a line rep from a vertex chain */
+ inline LineRep(const vector<Vec3r>& vertices) : Rep()
+ {
+ _vertices = vertices;
+ setStyle(LINE_STRIP);
+ _width = 0.0f;
+ }
+
+ /*! Builds a line rep from a vertex chain */
+ inline LineRep(const list<Vec3r>& vertices) : Rep()
+ {
+ for (list<Vec3r>::const_iterator v = vertices.begin(), end = vertices.end(); v != end; ++v) {
+ _vertices.push_back(*v);
+ }
+ setStyle(LINE_STRIP);
+ _width = 0.0f;
+ }
+
+ virtual ~LineRep()
+ {
+ _vertices.clear();
+ }
+
+ /*! accessors */
+ inline const LINES_STYLE style() const
+ {
+ return _Style;
+ }
+
+ inline const vector<Vec3r>& vertices() const
+ {
+ return _vertices;
+ }
+
+ inline float width() const
+ {
+ return _width;
+ }
+
+ /*! modifiers */
+ inline void setStyle(const LINES_STYLE iStyle)
+ {
+ _Style = iStyle;
+ }
+
+ inline void AddVertex(const Vec3r& iVertex)
+ {
+ _vertices.push_back(iVertex);
+ }
+
+ inline void setVertices(const vector<Vec3r>& iVertices)
+ {
+ if (0 != _vertices.size()) {
+ _vertices.clear();
+ }
+ for (vector<Vec3r>::const_iterator v = iVertices.begin(), end = iVertices.end(); v != end; ++v) {
+ _vertices.push_back(*v);
+ }
+ }
+
+ inline void setWidth(float iWidth)
+ {
+ _width = iWidth;
+ }
+
+ /*! Accept the corresponding visitor */
+ virtual void accept(SceneVisitor& v)
+ {
+ Rep::accept(v);
+ v.visitLineRep(*this);
+ }
+
+ /*! Computes the line bounding box.*/
+ virtual void ComputeBBox();
private:
- LINES_STYLE _Style;
- vector<Vec3r> _vertices;
- float _width;
+ LINES_STYLE _Style;
+ vector<Vec3r> _vertices;
+ float _width;
};
-#endif // LINEREP_H
+#endif // __FREESTYLE_LINE_REP_H__