/[gzz]/gzz/gzz/vob/vobs/ColoredSectorVob.java
ViewVC logotype

Diff of /gzz/gzz/vob/vobs/ColoredSectorVob.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by humppake, Wed Mar 5 09:23:44 2003 UTC revision 1.8 by humppake, Wed Mar 5 09:37:29 2003 UTC
# Line 154  public static final String rcsid = "$Id$ Line 154  public static final String rcsid = "$Id$
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"+
# Line 211  public static final String rcsid = "$Id$ Line 171  public static final String rcsid = "$Id$
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       */       */

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26