Hierarchical Edge Bundle 1.0
|
00001 #pragma once 00002 #include "BSpline.h" 00003 #include "Shader.h" 00004 #include "FBO.h" 00005 #include "Camera.h" 00006 #include "Light.h" 00007 #include "View.h" 00008 #include "Image.h" 00009 #include "Text.h" 00010 #include "RenderRadialTree.h" 00011 #include "RenderBallonTree.h" 00012 #include "RenderRootedTree.h" 00013 #include "RenderTreeMap.h" 00014 #include "SelectedObject.h" 00015 #include "RenderStates.h" 00016 #include "SplineSet.h" 00017 #include <QVector> 00018 #include <QVector3D> 00019 00020 #include "glm/glm.hpp" 00021 #include <vector> 00022 #include "Matrix.h" 00023 00024 class Renderer 00025 { 00026 public: 00027 enum BlendingMode 00028 { 00029 STD_BLENDING, 00030 MAX_BLENDING, 00031 STDMAX_BLENDING, 00032 AVGWEIGHTING_BLENDING, 00033 SUMAVG_BLENDING 00034 }; 00035 00036 public: 00040 Renderer(void); 00044 ~Renderer(void); 00045 00051 virtual void UpdateSphereColor(vec3 color, float alpha) = 0; 00057 virtual void UpdateHierarchyEdgeColor(vec3 color, float alpha) = 0; 00063 virtual void UpdateRelationEdgeColor(vec3 color, float alpha, vec3 endcolor, float endalpha) = 0; 00069 virtual void UpdateSelectionColor(vec3 color, float alpha) = 0; 00070 00075 void SetBlending(bool value); 00085 void SetEnabledElements(int elements); 00086 protected: 00091 void UpdateStates(); 00092 00093 Light* m_light; 00094 SelectedObject* selectedObj; 00095 00096 int actView; 00097 int blendingmode; 00098 00099 vec3 rotateTree; 00100 float scaleTree; 00101 00102 RenderTree* tree[5]; 00103 View** m_view; 00104 00105 vec3 sphereColor; 00106 float sphereAlpha; 00107 vec3 hierarchyColor; 00108 float hierarchyAlpha; 00109 vec3 relationStartColor; 00110 float relationStartAlpha; 00111 vec3 relationEndColor; 00112 float relationEndAlpha; 00113 vec3 selectionColor; 00114 float selectionAlpha; 00115 00116 bool m_blending; 00117 bool m_drawRelationEdges; 00118 bool m_drawHierarchicEdges; 00119 bool m_drawVertices; 00120 bool m_drawGrid; 00121 bool m_mirrorrelationedges; 00122 00123 //B-Splines 00124 unsigned int numberofhierarchyedges; 00125 SplineSet* splineSet; 00126 int numberofHierarchies; 00127 float* controlPolygonX; 00128 float* controlPolygonY; 00129 float m_beta; 00130 int numreledges; 00131 };