#ifndef STIM_GL_NETWORK #define STIM_GL_NETWORK #include #include "aabb.h" namespace stim{ template class gl_network : public stim::network{ protected: using stim::network::E; using stim::network::V; public: /// Default constructor gl_network() : stim::network(){} /// Constructor creates a gl_network from a stim::network gl_network(stim::network N) : stim::network(N){} /// Fills the parameters with the minimum and maximum spatial positions in the network, /// specifying a bounding box for the network geometry aabb boundingbox(){ aabb bb; //create a bounding box //loop through every edge for(unsigned e = 0; e < E.size(); e++){ //loop through every point for(unsigned p = 0; p < E[e].size(); p++) bb.expand(E[e][p]); //expand the bounding box to include the point } return bb; //return the bounding box } /// Render the network centerline as a series of line strips. void glCenterline(){ for(unsigned e = 0; e < E.size(); e++){ //for each edge in the network glBegin(GL_LINE_STRIP); for(unsigned p = 0; p < E[e].size(); p++){ //for each point on that edge glVertex3f(E[e][p][0], E[e][p][1], E[e][p][2]); glTexCoord1f(E[e].ri(p)); } glEnd(); } } }; //end stim::gl_network class }; //end stim namespace #endif