mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-03 19:52:10 +01:00
023df37b2b
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1260 ebee16cc-31ac-478f-84a7-5cbb03baadba
132 lines
3.8 KiB
C++
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_ */
|