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