Hierarchical Edge Bundle 1.0
|
00001 #pragma once 00002 #include "BasisFunktion.h" 00003 #include "glm/glm.hpp" 00004 using glm::vec3; 00005 using glm::vec4; 00006 00010 class BSpline 00011 { 00012 public: 00022 BSpline(BasisFunktion* basisFunktion, float* controlPolygonX, float* controlPolygonY, float* controlPolygonZ, int controlPolygonSize, float id); 00026 ~BSpline(void); 00027 00032 void recalculate(float beta); 00037 vec3* getValues(); 00042 float getLength() const; 00046 void draw(); 00047 00048 int GetID(); 00049 int GetVectorPos(); 00050 void SetID(int id); 00051 void SetVectorPos(int id); 00052 00053 void UpdatePosition(); 00054 void UpdateIDs(float id); 00055 void UpdateColor(vec4 startcolor, vec4 endcolor); 00056 private: 00057 unsigned int vbohierarchylines_vert; 00058 unsigned int vbohierarchylines_color; 00059 unsigned int vboindex_picking_ind; 00060 00061 private: 00065 BasisFunktion* basisFunktion; 00069 int controlPolygonSize; 00073 int splinePoints; 00077 float* initialX; 00081 float* initialY; 00085 float* initialZ; 00089 float* bundlingX; 00093 float* bundlingY; 00097 float* bundlingZ; 00101 float length; 00102 00103 float m_id; 00104 float m_arraypos; 00105 00109 vec3* values; 00113 void calculate(); 00117 void calculateLength(); 00118 00119 };