/usr/include/tulip/GlBox.h is in libtulip-ogl-dev 3.1.2-2.3ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | //-*-c++-*-
/**
Authors: David Auber, Patrick Mary, Morgan Mathiaut
from the LaBRI Visualization Team
Email : auber@tulip-software.org
Last modification : 13/03/2009
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.
*/
#ifndef Tulip_GLBOX_H
#define Tulip_GLBOX_H
#include "tulip/GlSimpleEntity.h"
#include "tulip/GlPolygon.h"
#include "tulip/Coord.h"
#include "tulip/Color.h"
#include "tulip/Size.h"
#define N_BOX_POINTS 8
#define N_BOX_FACES 6
#define N_QUAD_POINTS 4
namespace tlp {
/** \brief General class used to render boxes as GlEntity.
*
* This class is a generic class to render boxes as GlEntity.
*/
class TLP_GL_SCOPE GlBox : public GlSimpleEntity
{
protected:
Coord* position; /**< The position of the center of the box*/
Color* color; /**< The color of the box */
Size* size; /**< size is the "radius" of the box */
Coord* points[N_BOX_POINTS]; /**< The coordinates of each of the 8 points of the box.
\attention points[0] = front top left
\attention points[1] = front top right
\attention points[2] = front bottom right
\attention points[3] = front bottom left
\attention points[4] = back top left
\attention points[5] = back top right
\attention points[6] = back bottom right
\attention points[7] = back bottom left */
GlPolygon* faces[N_BOX_FACES]; /**< Stores a GlPolygon per face */
/**
* Function used to compute the points of the box from a center and a size.
*/
void computePoints();
/**
* Function used to compute the GlADQuad from the points of the box.
*/
void computeFaces();
public:
/**
* The default constructor
*
* \attention It's usage is forbidden.
*/
GlBox();
/**
* Constructor from size
*
* \param position The center of the box.
* \param size The length of each dimension of the box.
* \param color The color of the box.
*/
GlBox(const Coord& position, const Size &size, const Color& color);
/**
* Constructor from points
*
* \param points Each point of the box. c.f. the variable "points" to know the placement.
* \param color The color of the box.
*/
GlBox(Coord points[8], const Color& color);
/**
* Constructor from bounding box
*
* \param frontTopLeft The position of the point at the front-top-left of the box (points[0]).
* \param backbottomRight The position of the point at the back-bottom-right of the box (points[6]).
* \param color The color of the box.
*/
GlBox(const Coord& frontTopLeft, const Coord& backBottomRight, const Color& color);
/**
* Destructor.
*/
virtual ~GlBox();
/**
* Virtual function used to draw the box.
*/
virtual void draw(float lod,Camera *camera);
/**
* Accessor in writing to the size.
*/
void setSize(const Size& size);
/**
* Accessor in writing to the position.
*/
void setPosition(const Coord& position);
/**
* Accessor in reading to the size.
*/
Size* getSize() const;
/**
* Translate entity
*/
virtual void translate(const Coord& mouvement);
/**
* Function to export data in XML
*/
virtual void getXML(xmlNodePtr rootNode);
/**
* Function to set data with XML
*/
virtual void setWithXML(xmlNodePtr rootNode);
};
}
#endif
|