Hierarchical Edge Bundle 1.0
J:/Caro/C++_Coding/HierarchicalEdgeBundle/HierarchicalEdgeBundle/header/Renderer.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines