Commit acc30a5e60e9c691fb440ac85a054db408207ea1
1 parent
f74c9f43
Added the ability for glObj to render with blended lines
Showing
1 changed file
with
28 additions
and
5 deletions
Show diff stats
stim/visualization/glObj.h
@@ -43,7 +43,7 @@ private: | @@ -43,7 +43,7 @@ private: | ||
43 | } | 43 | } |
44 | 44 | ||
45 | void | 45 | void |
46 | - Create(GLenum mode, bool blend = false) | 46 | + Create(GLenum mode, bool blend = false, float opacity = 1.0, stim::vec3<float> point = stim::vec<float>(-10000.0, -10000.0, -10000.0)) |
47 | { | 47 | { |
48 | // GLuint selectBuf[2048]; | 48 | // GLuint selectBuf[2048]; |
49 | // GLint hits; | 49 | // GLint hits; |
@@ -65,7 +65,15 @@ private: | @@ -65,7 +65,15 @@ private: | ||
65 | { | 65 | { |
66 | glLoadName(i); | 66 | glLoadName(i); |
67 | } | 67 | } |
68 | - glColor3f(0.0, 1.0, 0.05); | 68 | + if(blend == false) |
69 | + glColor3f(0.0, 1.0, 0.05); | ||
70 | + | ||
71 | + else if(blend && point[0] < -9999.9) | ||
72 | + { | ||
73 | + glColor4f(50.0/256.0,205.0/256.0, 50.0/256.0, opacity); ///Dark Green. | ||
74 | + } else { | ||
75 | +// ??????? | ||
76 | + } | ||
69 | //glColor3ub(rand()%255, rand()%255, rand()%255); | 77 | //glColor3ub(rand()%255, rand()%255, rand()%255); |
70 | glBegin(GL_LINE_STRIP); | 78 | glBegin(GL_LINE_STRIP); |
71 | for(int j = 0; j < line.size(); j++){ | 79 | for(int j = 0; j < line.size(); j++){ |
@@ -90,11 +98,19 @@ public: | @@ -90,11 +98,19 @@ public: | ||
90 | } | 98 | } |
91 | 99 | ||
92 | void | 100 | void |
93 | - createFromSelf(GLenum mode = GL_RENDER, bool blend = false) | 101 | + createFromSelf(GLenum mode = GL_RENDER, bool blend = false, float opacity = 1.0) |
102 | + { | ||
103 | + // glPopMatrix(); | ||
104 | + init(); | ||
105 | + Create(mode, blend, opacity); | ||
106 | + // glPushMatrix(); | ||
107 | + } | ||
108 | + | ||
109 | + createFromSelf(GLenum mode = GL_RENDER, bool blend = false, stim::vec3<float> point) | ||
94 | { | 110 | { |
95 | // glPopMatrix(); | 111 | // glPopMatrix(); |
96 | init(); | 112 | init(); |
97 | - Create(mode, blend); | 113 | + Create(mode, blend, 1.0, point); |
98 | // glPushMatrix(); | 114 | // glPushMatrix(); |
99 | } | 115 | } |
100 | 116 | ||
@@ -111,9 +127,16 @@ public: | @@ -111,9 +127,16 @@ public: | ||
111 | 127 | ||
112 | 128 | ||
113 | void | 129 | void |
114 | - Render() | 130 | + Render(bool blend = false) |
115 | { | 131 | { |
132 | + if(blend) | ||
133 | + { | ||
134 | + glEnable(GL_BLEND); | ||
135 | + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | ||
136 | + } | ||
116 | glCallList(dList); | 137 | glCallList(dList); |
138 | + if(blend) | ||
139 | + glDisable(GL_BLEND); | ||
117 | CHECK_OPENGL_ERROR | 140 | CHECK_OPENGL_ERROR |
118 | } | 141 | } |
119 | 142 |