1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-03 19:52:10 +01:00
chebuzz 023df37b2b OP-98 GCS/ModelView - Update ModelView to use GLC_lib 2.0
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1260 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-10 17:16:57 +00:00

132 lines
3.8 KiB
C++

/****************************************************************************
This file is part of the GLC-lib library.
Copyright (C) 2005-2008 Laurent Ribon (laumaya@users.sourceforge.net)
Version 2.0.0, packaged on July 2010.
http://glc-lib.sourceforge.net
GLC-lib is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
GLC-lib 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 Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with GLC-lib; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
//! \file glc_rectangle.h interface for the GLC_Rectangle class.
#ifndef GLC_RECTANGLE_H_
#define GLC_RECTANGLE_H_
#include "glc_mesh.h"
#include "../glc_config.h"
//////////////////////////////////////////////////////////////////////
//! \class GLC_Rectangle
/*! \brief GLC_Rectangle : OpenGL flat 3D Rectangle*/
/*! An GLC_Rectangle is just a simple 3D Rectangle*/
//////////////////////////////////////////////////////////////////////
class GLC_LIB_EXPORT GLC_Rectangle : public GLC_Mesh
{
//////////////////////////////////////////////////////////////////////
/*! @name Constructor / Destructor */
//@{
//////////////////////////////////////////////////////////////////////
public:
//! Default constructor
GLC_Rectangle();
//! Construct a rectangle with the given lenght
GLC_Rectangle(double l1, double l2);
//! Construct a restangle with the given rectangle
GLC_Rectangle(const GLC_Rectangle&);
//! Destructor
virtual ~GLC_Rectangle();
//@}
//////////////////////////////////////////////////////////////////////
/*! \name Get Functions*/
//@{
//////////////////////////////////////////////////////////////////////
public:
//! Return length 1 of this rectangle
inline double length1() const
{ return m_L1;}
//! Return length 2 of this rectangle
inline double length2() const
{ return m_L2;}
//! Clone this rectangle
virtual GLC_Geometry* clone() const;
//! Return this rectangle bounding box
virtual const GLC_BoundingBox& boundingBox(void);
//@}
//////////////////////////////////////////////////////////////////////
/*! \name Set Functions*/
//@{
//////////////////////////////////////////////////////////////////////
public:
//! Set this rectangle with the given lenght
GLC_Rectangle& setRectangle(double l1, double l2);
//! Set this rectangle length 1
void setLength1(double l1);
//! Set this rectangle length 2
void setLength2(double l2);
//@}
//////////////////////////////////////////////////////////////////////
/*! \name OpenGL Functions*/
//@{
//////////////////////////////////////////////////////////////////////
private:
//! Virtual interface for OpenGL Geometry set up.
/*! This Virtual function is implemented here.\n
* Throw GLC_OpenGlException*/
virtual void glDraw(const GLC_RenderProperties&);
//@}
//////////////////////////////////////////////////////////////////////
/*! \name Private services Functions*/
//@{
//////////////////////////////////////////////////////////////////////
private:
//! Create this rectangle mesh and wire
void createMeshAndWire();
//@}
//////////////////////////////////////////////////////////////////////
// Private members
//////////////////////////////////////////////////////////////////////
private:
//! The Rectangle length 1
double m_L1;
//! The Rectangle length 2
double m_L2;
};
#endif /* GLC_RECTANGLE_H_ */