00001 /**************************************************************************** 00002 00003 This file is part of the GLC-lib library. 00004 Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net) 00005 http://glc-lib.sourceforge.net 00006 00007 GLC-lib is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU Lesser General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 GLC-lib is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with GLC-lib; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 00021 *****************************************************************************/ 00023 00024 #include "glc_polylines.h" 00025 00026 GLC_Polylines::GLC_Polylines() 00027 : GLC_Geometry("Polyline", true) 00028 { 00029 00030 } 00031 00032 GLC_Polylines::GLC_Polylines(const GLC_Polylines& polyline) 00033 : GLC_Geometry(polyline) 00034 { 00035 00036 } 00037 00038 GLC_Polylines::~GLC_Polylines() 00039 { 00040 00041 } 00042 00044 // Get Functions 00046 const GLC_BoundingBox& GLC_Polylines::boundingBox() 00047 { 00048 if (NULL == GLC_Geometry::m_pBoundingBox) 00049 { 00050 GLC_Geometry::m_pBoundingBox= new GLC_BoundingBox(); 00051 if (! m_WireData.isEmpty()) 00052 { 00053 GLC_Geometry::m_pBoundingBox->combine(m_WireData.boundingBox()); 00054 } 00055 } 00056 return *GLC_Geometry::m_pBoundingBox; 00057 } 00058 00059 GLC_Geometry* GLC_Polylines::clone() const 00060 { 00061 return new GLC_Polylines(*this); 00062 } 00063 00065 // Set Functions 00067 GLC_Polylines& GLC_Polylines::operator=(const GLC_Polylines& polyline) 00068 { 00069 if (this != &polyline) 00070 { 00071 GLC_Geometry::operator=(polyline); 00072 } 00073 return *this; 00074 } 00075 00077 // OpenGL Functions 00079 void GLC_Polylines::glDraw(const GLC_RenderProperties& renderProperties) 00080 { 00081 if (!GLC_Geometry::m_WireData.isEmpty()) 00082 { 00083 GLC_Geometry::m_WireData.glDraw(renderProperties, GL_LINE_STRIP); 00084 } 00085 } 00086