![]() |
Tulip
4.6.0
Better Visualization Through Research
|
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