154 |
if(dbg) pa("Addtolistgl coloredsectorvob "+coordsys1); |
if(dbg) pa("Addtolistgl coloredsectorvob "+coordsys1); |
155 |
if(glList == null) { |
if(glList == null) { |
156 |
if (!circleGLReady) prepareCircleGL(0.5f); |
if (!circleGLReady) prepareCircleGL(0.5f); |
|
String bgcall = ""; |
|
|
if(nsolids > 0) { |
|
|
int arc = sector / nsolids; |
|
|
for(int i=0; i<nsolids; i++) { |
|
|
Color c = solids[i]; |
|
|
bgcall += ( |
|
|
"Color "+ColorUtil.colorGLString(solids[i])+" 1\n"+ |
|
|
"Begin POLYGON\n"+ |
|
|
"Vertex 0.5 0.5\n"); |
|
|
for (int j=i*arc;j<(i+1)*arc;j+=step) { |
|
|
bgcall += ("Vertex " + circleGL[(j+start)%360][0] + |
|
|
" " + circleGL[(j+start)%360][1] + "\n"); |
|
|
} |
|
|
int last = (i+1)*arc-1; |
|
|
if (sector == 360) last++; |
|
|
if (last == 360) last = 0; |
|
|
bgcall += ("Vertex " + circleGL[(last+start)%360][0] + |
|
|
" " + circleGL[(last+start)%360][1] + "\n" + |
|
|
"End\n"); |
|
|
} |
|
|
} else { |
|
|
bgcall = ( |
|
|
"Color "+ColorUtil.colorGLString(bg)+" 1\n" + |
|
|
"Begin POLYGON\n"); |
|
|
if (sector < 360) bgcall += ("Vertex 0.5 0.5\n"); |
|
|
for (int i=0;i<sector;i+=step) { |
|
|
bgcall += ("Vertex " + circleGL[(i+start)%360][0] + |
|
|
" " + circleGL[(i+start)%360][1] + "\n"); |
|
|
} |
|
|
bgcall += ("Vertex " + circleGL[(sector-1+start)%360][0] + |
|
|
" " + circleGL[(sector-1+start)%360][1] + "\n" + |
|
|
"End\n"); |
|
|
} |
|
157 |
|
|
158 |
bgcall += ( |
String bgcall = ""; |
159 |
"Color 0 0 0 1\n" + |
if(nsolids > 0) bgcall += glSolidsString(); |
160 |
"Begin LINE_LOOP\n"); |
else bgcall += glBgString(); |
161 |
if (sector < 360) bgcall += ("Vertex 0.5 0.5\n"); |
if(drawBorder) bgcall += glBorderString(); |
|
for (int i=0;i<sector;i+=step) { |
|
|
bgcall += ("Vertex " + circleGL[(i+start)%360][0] + |
|
|
" " + circleGL[(i+start)%360][1] + "\n"); |
|
|
} |
|
|
bgcall += ("Vertex " + circleGL[(sector-1+start)%360][0] + |
|
|
" " + circleGL[(sector-1+start)%360][1] + "\n" + |
|
|
"End\n"); |
|
162 |
|
|
163 |
glList = GLRen.createCallListBoxCoorded( |
glList = GLRen.createCallListBoxCoorded( |
164 |
"PushAttrib CURRENT_BIT ENABLE_BIT\n"+ |
"PushAttrib CURRENT_BIT ENABLE_BIT\n"+ |
171 |
return 0; |
return 0; |
172 |
} |
} |
173 |
|
|
174 |
|
protected String glBorderString() { |
175 |
|
String glString = ""; |
176 |
|
glString += ( |
177 |
|
"Color 0 0 0 1\n" + |
178 |
|
"Begin LINE_LOOP\n"); |
179 |
|
if (sector < 360) glString += ("Vertex 0.5 0.5\n"); |
180 |
|
for (int i=0;i<sector;i+=step) { |
181 |
|
glString += ("Vertex " + circleGL[(i+start)%360][0] + |
182 |
|
" " + circleGL[(i+start)%360][1] + "\n"); |
183 |
|
} |
184 |
|
glString += ("Vertex " + circleGL[(sector-1+start)%360][0] + |
185 |
|
" " + circleGL[(sector-1+start)%360][1] + "\n" + |
186 |
|
"End\n"); |
187 |
|
return glString; |
188 |
|
} |
189 |
|
|
190 |
|
protected String glBgString() { |
191 |
|
String glString = ""; |
192 |
|
glString = ( |
193 |
|
"Color "+ColorUtil.colorGLString(bg)+" 1\n" + |
194 |
|
"Begin POLYGON\n"); |
195 |
|
if (sector < 360) glString += ("Vertex 0.5 0.5\n"); |
196 |
|
for (int i=0;i<sector;i+=step) { |
197 |
|
glString += ("Vertex " + circleGL[(i+start)%360][0] + |
198 |
|
" " + circleGL[(i+start)%360][1] + "\n"); |
199 |
|
} |
200 |
|
glString += ("Vertex " + circleGL[(sector-1+start)%360][0] + |
201 |
|
" " + circleGL[(sector-1+start)%360][1] + "\n" + |
202 |
|
"End\n"); |
203 |
|
return glString; |
204 |
|
} |
205 |
|
|
206 |
|
protected String glSolidsString() { |
207 |
|
int arc = sector / nsolids; |
208 |
|
String glString = ""; |
209 |
|
for(int i=0; i<nsolids; i++) { |
210 |
|
Color c = solids[i]; |
211 |
|
glString += ( |
212 |
|
"Color "+ColorUtil.colorGLString(solids[i])+" 1\n"+ |
213 |
|
"Begin POLYGON\n"+ |
214 |
|
"Vertex 0.5 0.5\n"); |
215 |
|
for (int j=i*arc;j<(i+1)*arc;j+=step) { |
216 |
|
glString += ("Vertex " + circleGL[(j+start)%360][0] + |
217 |
|
" " + circleGL[(j+start)%360][1] + "\n"); |
218 |
|
} |
219 |
|
int last = (i+1)*arc-1; |
220 |
|
if (sector == 360) last++; |
221 |
|
if (last == 360) last = 0; |
222 |
|
glString += ("Vertex " + circleGL[(last+start)%360][0] + |
223 |
|
" " + circleGL[(last+start)%360][1] + "\n" + |
224 |
|
"End\n"); |
225 |
|
} |
226 |
|
return glString; |
227 |
|
} |
228 |
|
|
229 |
/** Adds one more solid color to be drawn inside |
/** Adds one more solid color to be drawn inside |
230 |
* the cell. |
* the cell. |
231 |
*/ |
*/ |