Tulip  4.6.0
Better Visualization Through Research
library/tulip-ogl/include/tulip/GlComplexeEntity.h
00001 /*
00002  *
00003  * This file is part of Tulip (www.tulip-software.org)
00004  *
00005  * Authors: David Auber and the Tulip development Team
00006  * from LaBRI, University of Bordeaux
00007  *
00008  * Tulip is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU Lesser General Public License
00010  * as published by the Free Software Foundation, either version 3
00011  * of the License, or (at your option) any later version.
00012  *
00013  * Tulip is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016  * See the GNU General Public License for more details.
00017  *
00018  */
00019 ///@cond DOXYGEN_HIDDEN
00020 
00021 #ifndef Tulip_GLCOMPLEXEENTITY_H
00022 #define Tulip_GLCOMPLEXEENTITY_H
00023 
00024 #include <tulip/BoundingBox.h>
00025 #include <tulip/GlEntity.h>
00026 
00027 namespace tlp {
00028 
00029 struct OcclusionTest;
00030 class TextRenderer;
00031 class GlGraphInputData;
00032 class Camera;
00033 
00034 /** \brief Virtual class used by GlNode, GlMetaNode and GlEdge
00035  *
00036  * This class is a virtual class used by GlNode, GlMetaNode and GlEdge
00037  * Define draw function for entities who need GlGraphInputData variable
00038  * Define drawLabel function
00039  */
00040 class TLP_GL_SCOPE GlComplexeEntity : public GlEntity {
00041 
00042 public:
00043 
00044   /**
00045    * return the bounding box of this entity
00046    */
00047   virtual BoundingBox getBoundingBox(const GlGraphInputData* data) = 0;
00048 
00049   /**
00050    * Draw this entity with GlGraphInputData and Camera
00051    */
00052   virtual void draw(float lod,const GlGraphInputData* data,Camera* camera) = 0;
00053 
00054   /**
00055    * Draw label of this entity
00056    */
00057   virtual void drawLabel(OcclusionTest* test,const GlGraphInputData* data) = 0;
00058 };
00059 
00060 }
00061 
00062 #endif // Tulip_GLCOMPLEXEENTITY_H
00063 ///@endcond
 All Classes Files Functions Variables Enumerations Enumerator Properties