BoundaryRep.java
.. .. @@ -172,16 +172,16 @@ 172 172 bufV = other.bufV; 173 173 bufF = other.bufF; 174 174 175  - positions = (float[]) GrafreeD.clone(other.positions);176  - normals = (float[]) GrafreeD.clone(other.normals);177  - colors = (float[]) GrafreeD.clone(other.colors);178  - uvmap = (float[]) GrafreeD.clone(other.uvmap);179  - triangles = (int[]) GrafreeD.clone(other.triangles);175  + positions = (float[]) Grafreed.clone(other.positions);176  + normals = (float[]) Grafreed.clone(other.normals);177  + colors = (float[]) Grafreed.clone(other.colors);178  + uvmap = (float[]) Grafreed.clone(other.uvmap);179  + triangles = (int[]) Grafreed.clone(other.triangles);180 180 181  - indices = (int[]) GrafreeD.clone(other.indices);181  + indices = (int[]) Grafreed.clone(other.indices);182 182 183  - vertices = (Vector<Vertex>) GrafreeD.clone(other.vertices);184  - faces = (Vector<Face>) GrafreeD.clone(other.faces);183  + vertices = (Vector<Vertex>) Grafreed.clone(other.vertices);184  + faces = (Vector<Face>) Grafreed.clone(other.faces);185 185 } 186 186 else 187 187 { .. .. @@ -1518,7 +1518,7 @@ 1518 1518 InitFaceIndices(); 1519 1519 } 1520 1520 1521  - BoundaryRep rep = (BoundaryRep) GrafreeD.clone(this);1521  + BoundaryRep rep = (BoundaryRep) Grafreed.clone(this);1522 1522 //float[] v = new float[100]; 1523 1523 1524 1524 for (int loops=1; --loops>=0;) .. .. @@ -1548,7 +1548,7 @@ 1548 1548 InitFaceIndices(); 1549 1549 } 1550 1550 1551  - BoundaryRep rep = (BoundaryRep) GrafreeD.clone(this);1551  + BoundaryRep rep = (BoundaryRep) Grafreed.clone(this);1552 1552 //float[] v = new float[100]; 1553 1553 1554 1554 for (int loops=10; --loops>=0;) .. .. @@ -2670,7 +2670,7 @@ 2670 2670 2671 2671 if (Globals.framecount - lastsoundtime > 30) // 0.25 secs 2672 2672 { 2673  - GrafreeD.wav.play((Math.random()+0.5)/Math.max(tmp.length2(),0.2)); //, 1);2673  + Grafreed.wav.play((Math.random()+0.5)/Math.max(tmp.length2(),0.2)); //, 1);2674 2674 2675 2675 lastsoundtime = Globals.framecount; 2676 2676 } .. .. @@ -3403,7 +3403,7 @@ 3403 3403 k /= x*x + y*y; 3404 3404 } 3405 3405 else 3406  - GrafreeD.Assert(z == 1);3406  + Grafreed.Assert(z == 1);3407 3407 3408 3408 if (k < 0) 3409 3409 k = 0; .. .. @@ -8233,7 +8233,7 @@ 8233 8233 if (!trimmed) 8234 8234 return; 8235 8235 8236  - GrafreeD.linkUV = false;8236  + Grafreed.linkUV = false;8237 8237 8238 8238 try 8239 8239 { CameraPane.java
.. .. @@ -1628,7 +1628,7 @@ 1628 1628 1629 1629 cColor.HSBtoRGB(display.color, display.saturation, 1, display.modelParams0); 1630 1630 1631  - float[] colorV = GrafreeD.colorV;1631  + float[] colorV = Grafreed.colorV;1632 1632 1633 1633 /**/ 1634 1634 if (display.DrawMode() == display.DEFAULT) // && display.RENDERPROGRAM == 0) .. .. @@ -2140,7 +2140,7 @@ 2140 2140 System.err.println("LIVE = " + Globals.isLIVE()); 2141 2141 2142 2142 if (!Globals.isLIVE()) // save sound 2143  - GrafreeD.savesound = true; // wav.save();2143  + Grafreed.savesound = true; // wav.save();2144 2144 // else 2145 2145 repaint(); // start loop // may 2013 2146 2146 } .. .. @@ -9542,7 +9542,7 @@ 9542 9542 9543 9543 if (!BOXMODE) 9544 9544 { 9545  - System.out.println("image: " + fullname + " (wav cursor=" + (GrafreeD.wav.cursor / 735 / 4) + ")");9545  + System.out.println("image: " + fullname + " (wav cursor=" + (Grafreed.wav.cursor / 735 / 4) + ")");9546 9546 } 9547 9547 9548 9548 if (!BOXMODE) .. .. @@ -9580,7 +9580,7 @@ 9580 9580 ABORTED = false; 9581 9581 } 9582 9582 else 9583  - GrafreeD.wav.cursor += 735 * ACSIZE;9583  + Grafreed.wav.cursor += 735 * ACSIZE;9584 9584 9585 9585 if (false) 9586 9586 { .. .. @@ -10243,11 +10243,11 @@ 10243 10243 10244 10244 public void display(GLAutoDrawable drawable) 10245 10245 { 10246  - if (GrafreeD.savesound && GrafreeD.hassound)10246  + if (Grafreed.savesound && Grafreed.hassound)10247 10247 { 10248  - GrafreeD.wav.save();10249  - GrafreeD.savesound = false;10250  - GrafreeD.hassound = false;10248  + Grafreed.wav.save();10249  + Grafreed.savesound = false;10250  + Grafreed.hassound = false;10251 10251 } 10252 10252 // if (DEBUG_SELECTION) 10253 10253 // { .. .. @@ -10377,7 +10377,7 @@ 10377 10377 Object3D theobject = object; 10378 10378 Object3D theparent = object.parent; 10379 10379 object.parent = null; 10380  - object = (Object3D)GrafreeD.clone(object);10380  + object = (Object3D)Grafreed.clone(object);10381 10381 object.Stripify(); 10382 10382 if (theobject.selection == null || theobject.selection.Size() == 0) 10383 10383 theobject.PreprocessOcclusion(this); .. .. @@ -11283,8 +11283,8 @@ 11283 11283 e.printStackTrace(); 11284 11284 } 11285 11285 11286  - if (GrafreeD.RENDERME > 0)11287  - GrafreeD.RENDERME--; // mechante magouille11286  + if (Grafreed.RENDERME > 0)11287  + Grafreed.RENDERME--; // mechante magouille11288 11288 11289 11289 Globals.ONESTEP = false; 11290 11290 } .. .. @@ -16427,16 +16427,16 @@ 16427 16427 System.out.println("; fromto " + sel + " " + Trunk(previousselectedpoint.toParent[3][0]) + " " + Trunk(previousselectedpoint.toParent[3][2]) + " " + Trunk(selectedpoint.toParent[3][0]) + " " + Trunk(selectedpoint.toParent[3][2])); 16428 16428 } 16429 16429 16430  - previousselectedpoint = (Sphere) GrafreeD.clone(selectedpoint);16430  + previousselectedpoint = (Sphere) Grafreed.clone(selectedpoint);16431 16431 } 16432 16432 } 16433 16433 16434 16434 if (!movingcamera && !PAINTMODE) 16435 16435 object.editWindow.ScreenFitPoint(); // fev 2014 16436 16436 16437  - if (PAINTMODE && GrafreeD.clipboard.size() == 1) // object.editWindow.copy.selection.Size() > 0)16437  + if (PAINTMODE && Grafreed.clipboard.size() == 1) // object.editWindow.copy.selection.Size() > 0)16438 16438 { 16439  - Object3D paintobj = GrafreeD.clipboard.get(0); // object.editWindow.copy.selection.elementAt(0);16439  + Object3D paintobj = Grafreed.clipboard.get(0); // object.editWindow.copy.selection.elementAt(0);16440 16440 16441 16441 Object3D group = new Object3D("inst" + paintcount++); 16442 16442  GenericJoint.java
.. .. @@ -381,7 +381,7 @@ 381 381 try 382 382 { 383 383 //font = FontRender.createFont("Dialog", 11, false, true); 384  - font = new FontRender.GLFont(gl, GrafreeD.class.getResourceAsStream("DejaVu_Sans_11.fnt"));384  + font = new FontRender.GLFont(gl, Grafreed.class.getResourceAsStream("DejaVu_Sans_11.fnt"));385 385 } catch (java.io.IOException e) 386 386 { 387 387 e.printStackTrace(); GrafreeD.javasimilarity index 99%rename from GrafreeD.javarename to GrafreedTEMP.java
.. .. @@ -13,7 +13,7 @@ 13 13 import javax.sound.sampled.*; 14 14 15 15 //import com.jamonapi.*; 16  -public class GrafreeD extends Applet implements ActionListener16  +public class Grafreed extends Applet implements ActionListener17 17 { 18 18 static boolean NIMBUSLAF = true; 19 19 .. .. @@ -27,7 +27,7 @@ 27 27 static boolean hassound = false; 28 28 static boolean savesound = false; 29 29 30  - public GrafreeD()30  + public Grafreed()31 31 { 32 32 javax.swing.Timer timer = new javax.swing.Timer(1000, this); 33 33 .. .. @@ -604,7 +604,7 @@ 604 604 { 605 605 String javaPath = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java"; 606 606 System.out.println("javaPath = " + javaPath); 607  - java.net.URL u = new GrafreeD().getClass().getResource("default.png");607  + java.net.URL u = new Grafreed().getClass().getResource("default.png");608 608 609 609 System.out.println("URL = " + u); 610 610 .. .. @@ -843,7 +843,7 @@ 843 843 844 844 //Monitor mon=MonitorFactory.start("myFirstMonitor"); 845 845 standAlone = true; 846  - grafreeD = new GrafreeD();846  + grafreeD = new Grafreed();847 847 grafreeD.universe = new Composite(); 848 848 grafreeD.universe.name = "Grafreed"; 849 849 grafreeD.universe.material = new cMaterial(); .. .. @@ -866,6 +866,7 @@ 866 866 //System.gc(); 867 867 } 868 868 } 869  +869 870 static int depth = 0; 870 871 static java.util.Stack stack = new java.util.Stack(); 871 872 static boolean traceoff = false; // true; .. .. @@ -1078,7 +1079,7 @@ 1078 1079 } while (avail > 0 && numRead >= 0); 1079 1080 return new String(data, 0, pos, "US-ASCII"); 1080 1081 } 1081  - public static GrafreeD grafreeD;1082  + public static Grafreed grafreeD;1082 1083 public static boolean standAlone = true; 1083 1084 public Composite universe; 1084 1085 public static Object3D clipboard = new Object3D(); GroupEditor.java
.. .. @@ -98,14 +98,14 @@ 98 98 99 99 void CloneClipboard(boolean supports) 100 100 { 101  - assert(GrafreeD.clipboard.parent == null);102  - Object3D /*Composite*/ keepparent = GrafreeD.clipboard.get(0).parent;103  - GrafreeD.clipboard.get(0).parent = null; // Avoid copy?104  - if (LA.isIdentity(GrafreeD.clipboard.toParent))105  - makeSomething(CloneObject(GrafreeD.clipboard.get(0), false));101  + assert(Grafreed.clipboard.parent == null);102  + Object3D /*Composite*/ keepparent = Grafreed.clipboard.get(0).parent;103  + Grafreed.clipboard.get(0).parent = null; // Avoid copy?104  + if (LA.isIdentity(Grafreed.clipboard.toParent))105  + makeSomething(CloneObject(Grafreed.clipboard.get(0), false));106 106 else 107  - makeSomething(CloneObject(GrafreeD.clipboard, false));108  - GrafreeD.clipboard.get(0).parent = keepparent;107  + makeSomething(CloneObject(Grafreed.clipboard, false));108  + Grafreed.clipboard.get(0).parent = keepparent;109 109 } 110 110 111 111 static Object3D CloneObject(Object3D obj, boolean supports) .. .. @@ -119,7 +119,7 @@ 119 119 // obj.support = null; 120 120 if (!supports) 121 121 obj.SaveSupports(); 122  - Object3D clone = (Object3D)GrafreeD.clone(obj);122  + Object3D clone = (Object3D)Grafreed.clone(obj);123 123 obj.parent = parent; 124 124 // obj.support = support; 125 125 // clone.support = support; // aout 2013 .. .. @@ -491,7 +491,7 @@ 491 491 liveCB.setToolTipText("Enabled animation"); 492 492 liveCB.addItemListener(this); 493 493 494  - oe.toolbarPanel.add(oneStepButton = new cButton("Step", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);494  + oe.toolbarPanel.add(oneStepButton = new cButton("Step", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);495 495 oneStepButton.setToolTipText("Animate one step forward"); 496 496 oneStepButton.addActionListener(this); 497 497 .. .. @@ -503,7 +503,7 @@ 503 503 trackCB.setToolTipText("Enable tracking"); 504 504 trackCB.addItemListener(this); 505 505 506  - oe.toolbarPanel.add(screenfitButton = new cButton("@", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);506  + oe.toolbarPanel.add(screenfitButton = new cButton("@", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);507 507 screenfitButton.setToolTipText("Screen fit"); 508 508 screenfitButton.addActionListener(this); 509 509 .. .. @@ -512,39 +512,39 @@ 512 512 513 513 if (Globals.ADVANCED) 514 514 { 515  - oe.toolbarPanel.add(snapobjectButton = new cButton("O+", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);515  + oe.toolbarPanel.add(snapobjectButton = new cButton("O+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);516 516 snapobjectButton.addActionListener(this); 517 517 snapobjectButton.setToolTipText("Snap Object"); 518 518 } 519 519 520  - oe.toolbarPanel.add(flashSelectionButton = new cButton("?", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);520  + oe.toolbarPanel.add(flashSelectionButton = new cButton("?", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);521 521 flashSelectionButton.setToolTipText("Show selection"); 522 522 flashSelectionButton.addActionListener(this); 523 523 524 524 oe.toolbarPanel.add(new JSeparator(SwingConstants.VERTICAL)); 525 525 526  - oe.toolbarPanel.add(twoButton = new cButton("|+|", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);526  + oe.toolbarPanel.add(twoButton = new cButton("|+|", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);527 527 twoButton.setToolTipText("Show center view only"); 528 528 twoButton.addActionListener(this); 529  - oe.toolbarPanel.add(fourButton = new cButton("+||", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);529  + oe.toolbarPanel.add(fourButton = new cButton("+||", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);530 530 fourButton.addActionListener(this); 531 531 fourButton.setToolTipText("Show left panel only"); 532  - oe.toolbarPanel.add(sixButton = new cButton("+|+|", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);532  + oe.toolbarPanel.add(sixButton = new cButton("+|+|", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);533 533 sixButton.setToolTipText("2-column layout left"); 534 534 sixButton.addActionListener(this); 535  - oe.toolbarPanel.add(threeButton = new cButton("|+|+", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);535  + oe.toolbarPanel.add(threeButton = new cButton("|+|+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);536 536 threeButton.setToolTipText("2-column layout right"); 537 537 threeButton.addActionListener(this); 538  - oe.toolbarPanel.add(sevenButton = new cButton("+|+|+", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);538  + oe.toolbarPanel.add(sevenButton = new cButton("+|+|+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);539 539 sevenButton.setToolTipText("3-column layout"); 540 540 sevenButton.addActionListener(this); 541 541 // 542 542 543  - oe.toolbarPanel.add(rootButton = new cButton("o o o", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);543  + oe.toolbarPanel.add(rootButton = new cButton("o o o", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);544 544 rootButton.setToolTipText("Edit selection in new tab"); 545 545 rootButton.addActionListener(this); 546 546 547  - oe.toolbarPanel.add(closeButton = new cButton("X", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);547  + oe.toolbarPanel.add(closeButton = new cButton("X", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);548 548 closeButton.setToolTipText("Close tab"); 549 549 closeButton.addActionListener(this); 550 550 //oe.treePanel.add(clearButton = new cButton("X"), oe.aConstraints); .. .. @@ -552,11 +552,11 @@ 552 552 553 553 cGridBag commandsPanel = new cGridBag(); 554 554 555  - commandsPanel.add(editButton = new cButton("+", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);555  + commandsPanel.add(editButton = new cButton("+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);556 556 editButton.setToolTipText("Edit selection"); 557 557 editButton.addActionListener(this); 558 558 559  - commandsPanel.add(uneditButton = new cButton("-", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);559  + commandsPanel.add(uneditButton = new cButton("-", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);560 560 uneditButton.setToolTipText("Unedit selection"); 561 561 uneditButton.addActionListener(this); 562 562 .. .. @@ -564,11 +564,11 @@ 564 564 allParamsButton.setToolTipText("Edit all params"); 565 565 allParamsButton.addActionListener(this); 566 566 567  - commandsPanel.add(clearPanelButton = new cButton("C", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);567  + commandsPanel.add(clearPanelButton = new cButton("C", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);568 568 clearPanelButton.setToolTipText("Clear edit panel"); 569 569 clearPanelButton.addActionListener(this); 570 570 571  - commandsPanel.add(unselectButton = new cButton("U", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);571  + commandsPanel.add(unselectButton = new cButton("U", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);572 572 unselectButton.setToolTipText("Unselect"); 573 573 unselectButton.addActionListener(this); 574 574 .. .. @@ -1542,9 +1542,9 @@ 1542 1542 1543 1543 void Overwrite(int mask) 1544 1544 { 1545  - if (/*group.selection.size() == 1 &&*/ GrafreeD.clipboard.size() == 1)1545  + if (/*group.selection.size() == 1 &&*/ Grafreed.clipboard.size() == 1)1546 1546 { 1547  - Object3D content = GrafreeD.clipboard.get(0);1547  + Object3D content = Grafreed.clipboard.get(0);1548 1548 1549 1549 if (content instanceof cGroup && ((cGroup)content).transientlink ) 1550 1550 content = ((cGroup)content).get(0); .. .. @@ -1892,7 +1892,7 @@ 1892 1892 if (source == invariantsItem) 1893 1893 { 1894 1894 System.out.println("Invariants:"); 1895  - GrafreeD.grafreeD.universe.invariants();1895  + Grafreed.grafreeD.universe.invariants();1896 1896 } else 1897 1897 if (source == memoryItem) 1898 1898 { .. .. @@ -1967,10 +1967,10 @@ 1967 1967 } else 1968 1968 if (source == duplicateItem) 1969 1969 { 1970  - Object3D keep = GrafreeD.clipboard;1970  + Object3D keep = Grafreed.clipboard;1971 1971 loadClipboard(false); 1972 1972 paste(false); 1973  - GrafreeD.clipboard = keep;1973  + Grafreed.clipboard = keep;1974 1974 } else 1975 1975 if (source == cloneItem) 1976 1976 { .. .. @@ -2190,9 +2190,9 @@ 2190 2190 // group.selection.get(0).setMasterThis(content); // should be identity 2191 2191 // refreshContents(); 2192 2192 // } 2193  - if (/*group.selection.size() == 1 &&*/ GrafreeD.clipboard.size() == 1)2193  + if (/*group.selection.size() == 1 &&*/ Grafreed.clipboard.size() == 1)2194 2194 { 2195  - Object3D content = GrafreeD.clipboard.get(0);2195  + Object3D content = Grafreed.clipboard.get(0);2196 2196 2197 2197 if (content instanceof cGroup && ((cGroup)content).transientlink ) 2198 2198 content = ((cGroup)content).get(0); .. .. @@ -2242,9 +2242,9 @@ 2242 2242 } else 2243 2243 if (source == setMasterItem) 2244 2244 { 2245  - if (group.selection.size() == 1 && GrafreeD.clipboard.size() == 1)2245  + if (group.selection.size() == 1 && Grafreed.clipboard.size() == 1)2246 2246 { 2247  - Object3D content = GrafreeD.clipboard.get(0);2247  + Object3D content = Grafreed.clipboard.get(0);2248 2248 2249 2249 if (content instanceof cGroup && ((cGroup)content).transientlink ) 2250 2250 content = ((cGroup)content).get(0); .. .. @@ -2257,9 +2257,9 @@ 2257 2257 { 2258 2258 if (group.selection.size() == 1) 2259 2259 { 2260  - if (GrafreeD.clipboard.size() == 1)2260  + if (Grafreed.clipboard.size() == 1)2261 2261 { 2262  - Object3D content = GrafreeD.clipboard.get(0);2262  + Object3D content = Grafreed.clipboard.get(0);2263 2263 2264 2264 if (content instanceof cGroup && ((cGroup)content).transientlink ) 2265 2265 content = ((cGroup)content).get(0); .. .. @@ -3338,9 +3338,9 @@ 3338 3338 obj = (Object3D)e.nextElement(); 3339 3339 3340 3340 System.out.println("Object is: " + obj); 3341  - GrafreeD.AnalyzeObject(obj);3341  + Grafreed.AnalyzeObject(obj);3342 3342 System.out.println("Boundary rep: " + obj.bRep); 3343  - GrafreeD.AnalyzeObject(obj.bRep);3343  + Grafreed.AnalyzeObject(obj.bRep);3344 3344 3345 3345 // System.err.println((size/1024) + " KB is the size of " + obj); 3346 3346 } .. .. @@ -3554,8 +3554,8 @@ 3554 3554 3555 3555 void ParseVertices() 3556 3556 { 3557  - boolean epsequal = GrafreeD.epsequal;3558  - GrafreeD.epsequal = true;3557  + boolean epsequal = Grafreed.epsequal;3558  + Grafreed.epsequal = true;3559 3559 3560 3560 for (int i=0; i<group.selection.size(); i++) 3561 3561 { .. .. @@ -3580,7 +3580,7 @@ 3580 3580 LA.matTranslate(g.toParent, temp.x, temp.y, temp.z); 3581 3581 LA.matTranslate(g.fromParent, -temp.x, -temp.y, -temp.z); 3582 3582 3583  - g.add(GrafreeD.clipboard);3583  + g.add(Grafreed.clipboard);3584 3584 3585 3585 buffer.add(g); 3586 3586 } .. .. @@ -3595,7 +3595,7 @@ 3595 3595 makeSomething(buffer, i==group.selection.size()-1); 3596 3596 } 3597 3597 3598  - GrafreeD.epsequal = epsequal;3598  + Grafreed.epsequal = epsequal;3599 3599 3600 3600 refreshContents(); 3601 3601 } .. .. @@ -3745,7 +3745,7 @@ 3745 3745 return; 3746 3746 3747 3747 Object3D poses = group.selection.get(0); 3748  - Object3D ref = GrafreeD.clipboard.get(0);3748  + Object3D ref = Grafreed.clipboard.get(0);3749 3749 3750 3750 Object3D newgroup = new Object3D("Po:" + poses.name); 3751 3751 .. .. @@ -3939,9 +3939,9 @@ 3939 3939 3940 3940 void ClipMesh() 3941 3941 { 3942  - if (/*group.selection.size() == 1 &&*/ GrafreeD.clipboard.size() == 1)3942  + if (/*group.selection.size() == 1 &&*/ Grafreed.clipboard.size() == 1)3943 3943 { 3944  - Object3D content = GrafreeD.clipboard.get(0);3944  + Object3D content = Grafreed.clipboard.get(0);3945 3945 3946 3946 if (content instanceof cGroup && ((cGroup)content).transientlink ) 3947 3947 content = ((cGroup)content).get(0); .. .. @@ -3950,7 +3950,7 @@ 3950 3950 // { 3951 3951 // group.selection.get(i).ClipMesh(GrafreeD.clipboard); 3952 3952 // } 3953  - group.selection.ClipMesh(GrafreeD.clipboard);3953  + group.selection.ClipMesh(Grafreed.clipboard);3954 3954 } 3955 3955 // group.selection.ClipMesh(GrafreeD.clipboard); 3956 3956 System.out.println("DONE."); .. .. @@ -4290,12 +4290,12 @@ 4290 4290 { 4291 4291 if (group.selection.isEmpty()) 4292 4292 return; 4293  - GrafreeD.clipboardIsTempGroup = false;4293  + Grafreed.clipboardIsTempGroup = false;4294 4294 Composite tGroup = null; 4295 4295 if (group.selection.size() > 0) // 1) 4296 4296 { 4297 4297 tGroup = new cGroup(); 4298  - GrafreeD.clipboardIsTempGroup = true;4298  + Grafreed.clipboardIsTempGroup = true;4299 4299 } 4300 4300 4301 4301 if (cut) .. .. @@ -4335,16 +4335,16 @@ 4335 4335 //System.out.println("cut " + child); 4336 4336 //System.out.println("parent = " + child.parent); 4337 4337 // tmp.addChild(child); 4338  - if (GrafreeD.clipboardIsTempGroup)4338  + if (Grafreed.clipboardIsTempGroup)4339 4339 tGroup.add/*Child*/(tmp); 4340 4340 else 4341  - GrafreeD.clipboard = tmp;4341  + Grafreed.clipboard = tmp;4342 4342 } 4343 4343 else 4344  - if (GrafreeD.clipboardIsTempGroup)4344  + if (Grafreed.clipboardIsTempGroup)4345 4345 tGroup.add/*Child*/(child); 4346 4346 else 4347  - GrafreeD.clipboard = child;4347  + Grafreed.clipboard = child;4348 4348 } 4349 4349 4350 4350 //ResetModel(); .. .. @@ -4376,21 +4376,21 @@ 4376 4376 //System.out.println("cut " + elem); 4377 4377 //System.out.println("parent = " + elem.parent); 4378 4378 // tmp.addChild(elem); 4379  - if (GrafreeD.clipboardIsTempGroup)4379  + if (Grafreed.clipboardIsTempGroup)4380 4380 tGroup.add/*Child*/(tmp); 4381 4381 else 4382  - GrafreeD.clipboard = tmp;4382  + Grafreed.clipboard = tmp;4383 4383 } 4384 4384 else 4385  - if (GrafreeD.clipboardIsTempGroup)4385  + if (Grafreed.clipboardIsTempGroup)4386 4386 tGroup.add/*Child*/(child); 4387 4387 else 4388  - GrafreeD.clipboard = child;4388  + Grafreed.clipboard = child;4389 4389 } 4390 4390 4391 4391 } 4392  - if (GrafreeD.clipboardIsTempGroup)4393  - GrafreeD.clipboard = tGroup;4392  + if (Grafreed.clipboardIsTempGroup)4393  + Grafreed.clipboard = tGroup;4394 4394 if (cut) 4395 4395 { 4396 4396 ResetModel(); .. .. @@ -4404,7 +4404,7 @@ 4404 4404 // return; 4405 4405 boolean first = true; 4406 4406 4407  - if (GrafreeD.clipboardIsTempGroup)4407  + if (Grafreed.clipboardIsTempGroup)4408 4408 { 4409 4409 Composite temp; 4410 4410 .. .. @@ -4415,7 +4415,7 @@ 4415 4415 temp = (Composite)Applet3D.clipboard.deepCopy(); 4416 4416 */ 4417 4417 Object3D elem; 4418  - for (Enumeration e = /*temp.children*/GrafreeD.clipboard.elements(); e.hasMoreElements();) // objList.add(copy.name))4418  + for (Enumeration e = /*temp.children*/Grafreed.clipboard.elements(); e.hasMoreElements();) // objList.add(copy.name))4419 4419 { 4420 4420 Object3D child = (Object3D)e.nextElement(); 4421 4421 .. .. @@ -4449,14 +4449,14 @@ 4449 4449 //Object3D cb = Applet3D.clipboard; 4450 4450 //temp.addChild(cb); 4451 4451 //makeSomething((expand?temp.copyExpand():temp.deepCopy()).get(0)); 4452  - assert(GrafreeD.clipboard.parent == null);4453  - Object3D /*Composite*/ keepparent = GrafreeD.clipboard.get(0).parent;4454  - GrafreeD.clipboard.get(0).parent = null; // Avoid copy?4455  - if (LA.isIdentity(GrafreeD.clipboard.toParent))4456  - makeSomething(expand?GrafreeD.clipboard.get(0).copyExpand():GrafreeD.clipboard.get(0).deepCopy());4452  + assert(Grafreed.clipboard.parent == null);4453  + Object3D /*Composite*/ keepparent = Grafreed.clipboard.get(0).parent;4454  + Grafreed.clipboard.get(0).parent = null; // Avoid copy?4455  + if (LA.isIdentity(Grafreed.clipboard.toParent))4456  + makeSomething(expand?Grafreed.clipboard.get(0).copyExpand():Grafreed.clipboard.get(0).deepCopy());4457 4457 else 4458  - makeSomething(expand?GrafreeD.clipboard.copyExpand():GrafreeD.clipboard.deepCopy());4459  - GrafreeD.clipboard.get(0).parent = keepparent;4458  + makeSomething(expand?Grafreed.clipboard.copyExpand():Grafreed.clipboard.deepCopy());4459  + Grafreed.clipboard.get(0).parent = keepparent;4460 4460 } 4461 4461 4462 4462 ResetModel(); .. .. @@ -4505,9 +4505,9 @@ 4505 4505 { 4506 4506 boolean first = true; 4507 4507 4508  - if (GrafreeD.clipboardIsTempGroup)4508  + if (Grafreed.clipboardIsTempGroup)4509 4509 { 4510  - Composite temp = (Composite)GrafreeD.clipboard;4510  + Composite temp = (Composite)Grafreed.clipboard;4511 4511 Object3D copy; 4512 4512 for (Enumeration e = temp.children.elements(); e.hasMoreElements();) 4513 4513 { .. .. @@ -4517,7 +4517,7 @@ 4517 4517 } 4518 4518 } else 4519 4519 { 4520  - linkSomething(GrafreeD.clipboard); //.get(0));4520  + linkSomething(Grafreed.clipboard); //.get(0));4521 4521 } 4522 4522 } 4523 4523 } .. .. @@ -4962,7 +4962,7 @@ 4962 4962 4963 4963 void ImportVRMLX3D() 4964 4964 { 4965  - if (GrafreeD.standAlone)4965  + if (Grafreed.standAlone)4966 4966 { 4967 4967 /**/ 4968 4968 FileDialog browser = new FileDialog(objEditor.frame, "Import VRML/X3D", FileDialog.LOAD); .. .. @@ -4979,7 +4979,7 @@ 4979 4979 4980 4980 String GetFile(String dialogName) 4981 4981 { 4982  - if (GrafreeD.standAlone)4982  + if (Grafreed.standAlone)4983 4983 { 4984 4984 FileDialog browser = new FileDialog(objEditor.frame, dialogName, FileDialog.LOAD); 4985 4985 browser.show(); ImplicitTiler.java
.. .. @@ -194,8 +194,8 @@ 194 194 { 195 195 // Merge normals: tolerance == 0 means use analytic, 196 196 // tolerance == 10 means use generated normals 197  - BoundaryRep analytic = (BoundaryRep) GrafreeD.clone(bRep);198  - BoundaryRep generated = (BoundaryRep) GrafreeD.clone(bRep);197  + BoundaryRep analytic = (BoundaryRep) Grafreed.clone(bRep);198  + BoundaryRep generated = (BoundaryRep) Grafreed.clone(bRep);199 199 200 200 analytic.Trim(trim, false, false, stripify, true); 201 201 generated.Trim(trim, true, false, stripify, true); LA.java
.. .. @@ -307,14 +307,14 @@ 307 307 308 308 } 309 309 310  - GrafreeD.Assert(Math.abs(src[0][3]) <= 1E-15);311  - GrafreeD.Assert(Math.abs(src[1][3]) <= 1E-15);312  - GrafreeD.Assert(Math.abs(src[2][3]) <= 1E-15);313  - GrafreeD.Assert(Math.abs(src[3][3] - 1) <= 1E-15);314  - GrafreeD.Assert(Math.abs(dst[0][3]) <= 1E-15);315  - GrafreeD.Assert(Math.abs(dst[1][3]) <= 1E-15);316  - GrafreeD.Assert(Math.abs(dst[2][3]) <= 1E-15);317  - GrafreeD.Assert(Math.abs(dst[3][3] - 1) <= 1E-15);310  + Grafreed.Assert(Math.abs(src[0][3]) <= 1E-15);311  + Grafreed.Assert(Math.abs(src[1][3]) <= 1E-15);312  + Grafreed.Assert(Math.abs(src[2][3]) <= 1E-15);313  + Grafreed.Assert(Math.abs(src[3][3] - 1) <= 1E-15);314  + Grafreed.Assert(Math.abs(dst[0][3]) <= 1E-15);315  + Grafreed.Assert(Math.abs(dst[1][3]) <= 1E-15);316  + Grafreed.Assert(Math.abs(dst[2][3]) <= 1E-15);317  + Grafreed.Assert(Math.abs(dst[3][3] - 1) <= 1E-15);318 318 } 319 319 320 320 static double toRadians(double degrees) Merge.java
.. .. @@ -192,7 +192,7 @@ 192 192 try 193 193 { 194 194 //font = FontRender.createFont("Dialog", 11, false, true); 195  - font = new FontRender.GLFont(gl, GrafreeD.class.getResourceAsStream("DejaVu_Sans_11.fnt"));195  + font = new FontRender.GLFont(gl, Grafreed.class.getResourceAsStream("DejaVu_Sans_11.fnt"));196 196 } catch (java.io.IOException e) 197 197 { 198 198 e.printStackTrace(); Mocap.java
.. .. @@ -921,7 +921,7 @@ 921 921 // //GetFileRoot(); 922 922 923 923 // sept 2014: // 924  - GrafreeD.RENDERME = 3; // patch for Merge objects924  + Grafreed.RENDERME = 3; // patch for Merge objects925 925 float[] thedata = bvh.animation.getBoneData(0); 926 926 927 927 os.x = (float) (path.get(i).toParent[3][0]); // - thedata[frame*6]); .. .. @@ -1566,7 +1566,7 @@ 1566 1566 1567 1567 lastsoundtime = Globals.framecount; 1568 1568 1569  - GrafreeD.hassound = true;1569  + Grafreed.hassound = true;1570 1570 } 1571 1571 // else 1572 1572 // System.out.println("skipped"); MorphNode.java
.. .. @@ -19,7 +19,7 @@ 19 19 { 20 20 CreateMaterial(); 21 21 morphobject.get(0).bRep.SaveSupports(); 22  - bRep = (BoundaryRep) GrafreeD.clone(morphobject.get(0).bRep);22  + bRep = (BoundaryRep) Grafreed.clone(morphobject.get(0).bRep);23 23 morphobject.get(0).bRep.RestoreSupports(); 24 24 } 25 25 .. .. @@ -30,7 +30,7 @@ 30 30 duplicate.parent = null; 31 31 Object3D sup = duplicate.support; 32 32 duplicate.support = null; 33  - addChild((Object3D)GrafreeD.clone(duplicate));33  + addChild((Object3D)Grafreed.clone(duplicate));34 34 duplicate.parent = par; 35 35 duplicate.support = sup; 36 36 } .. .. @@ -112,7 +112,7 @@ 112 112 super.deepCopySelf(other); 113 113 MorphNode bp = (MorphNode)other; 114 114 115  - bp.morphweights = (double[]) GrafreeD.clone(morphweights);115  + bp.morphweights = (double[]) Grafreed.clone(morphweights);116 116 } 117 117 118 118 void createEditWindow(GroupEditor callee, boolean newWindow) ObjEditor.java
.. .. @@ -752,7 +752,7 @@ 752 752 protected static ImageIcon createImageIcon(String path, 753 753 String description) 754 754 { 755  - java.net.URL imgURL = GrafreeD.class.getResource(path);755  + java.net.URL imgURL = Grafreed.class.getResource(path);756 756 if (imgURL != null) 757 757 { 758 758 return new ImageIcon(imgURL, description); .. .. @@ -1476,19 +1476,19 @@ 1476 1476 1477 1477 cGridBag editBar = new cGridBag().setVertical(false); 1478 1478 1479  - editBar.add(createMaterialButton = new cButton("Create", !GrafreeD.NIMBUSLAF)); // , aConstraints);1479  + editBar.add(createMaterialButton = new cButton("Create", !Grafreed.NIMBUSLAF)); // , aConstraints);1480 1480 createMaterialButton.setToolTipText("Create material"); 1481 1481 1482 1482 /* 1483 1483 ctrlPanel.add(resetSlidersButton = new cButton("Reset All"), aConstraints); 1484 1484 */ 1485 1485 1486  - editBar.add(clearMaterialButton = new cButton("Clear", !GrafreeD.NIMBUSLAF)); // , aConstraints);1486  + editBar.add(clearMaterialButton = new cButton("Clear", !Grafreed.NIMBUSLAF)); // , aConstraints);1487 1487 clearMaterialButton.setToolTipText("Clear material"); 1488 1488 1489 1489 if (Globals.ADVANCED) 1490 1490 { 1491  - editBar.add(resetSlidersButton = new cButton("Reset", !GrafreeD.NIMBUSLAF)); // , aConstraints);1491  + editBar.add(resetSlidersButton = new cButton("Reset", !Grafreed.NIMBUSLAF)); // , aConstraints);1492 1492 editBar.add(propagateToggle = new cCheckBox("Prop", propagate)); // , aConstraints); 1493 1493 editBar.add(multiplyToggle = new cCheckBox("Mult", false)); // , aConstraints); 1494 1494 } .. .. @@ -2396,7 +2396,7 @@ 2396 2396 2397 2397 void ImportJME(com.jmex.model.converters.FormatConverter converter, String ext, String dialogName) 2398 2398 { 2399  - if (GrafreeD.standAlone)2399  + if (Grafreed.standAlone)2400 2400 { 2401 2401 /**/ 2402 2402 FileDialog browser = new FileDialog(frame, dialogName, FileDialog.LOAD); .. .. @@ -3255,8 +3255,8 @@ 3255 3255 3256 3256 Globals.ANIMATION ^= true; 3257 3257 3258  - GrafreeD.wav.cursor = 0;3259  - GrafreeD.wav.loop = 0;3258  + Grafreed.wav.cursor = 0;3259  + Grafreed.wav.loop = 0;3260 3260 } 3261 3261 } else 3262 3262 { .. .. @@ -4200,7 +4200,7 @@ 4200 4200 4201 4201 void load() // throws ClassNotFoundException 4202 4202 { 4203  - if (GrafreeD.standAlone)4203  + if (Grafreed.standAlone)4204 4204 { 4205 4205 FileDialog browser = new FileDialog(frame, "Load", FileDialog.LOAD); 4206 4206 browser.show(); .. .. @@ -4305,7 +4305,7 @@ 4305 4305 4306 4306 void saveAs() 4307 4307 { 4308  - if (GrafreeD.standAlone)4308  + if (Grafreed.standAlone)4309 4309 { 4310 4310 FileDialog browser = new FileDialog(frame, "Save As", FileDialog.SAVE); 4311 4311 browser.setVisible(true); .. .. @@ -4416,7 +4416,7 @@ 4416 4416 Object3D objectparent = obj.parent; 4417 4417 obj.parent = null; 4418 4418 4419  - Object3D object = (Object3D) GrafreeD.clone(obj);4419  + Object3D object = (Object3D) Grafreed.clone(obj);4420 4420 4421 4421 obj.parent = objectparent; 4422 4422 .. .. @@ -4450,7 +4450,7 @@ 4450 4450 buffer.append("background { color rgb <0.8,0.8,0.8> }\n\n"); 4451 4451 cameraView.renderCamera.generatePOV(buffer, bnds.width, bnds.height); 4452 4452 copy.generatePOV(buffer); 4453  - if (GrafreeD.standAlone)4453  + if (Grafreed.standAlone)4454 4454 { 4455 4455 FileDialog browser = new FileDialog(frame, "Export POV", 1); 4456 4456 browser.show(); Object3D.java
.. .. @@ -954,7 +954,7 @@ 954 954 955 955 public Object clone() 956 956 { 957  - return GrafreeD.clone(this);957  + return Grafreed.clone(this);958 958 } 959 959 960 960 Object3D copyExpand() .. .. @@ -1729,7 +1729,7 @@ 1729 1729 Object3D o = new Object3D((clone?"Ge:":"Li:") + this.name); 1730 1730 o.bRep = transientrep; 1731 1731 if (clone) 1732  - o.bRep = (BoundaryRep) GrafreeD.clone(transientrep);1732  + o.bRep = (BoundaryRep) Grafreed.clone(transientrep);1733 1733 o.CreateMaterial(); 1734 1734 o.SetAttributes(this, -1); 1735 1735 //parent .. .. @@ -1742,7 +1742,7 @@ 1742 1742 Object3D o = new Object3D((clone?"Ge:":"Li:") + this.name); 1743 1743 o.bRep = bRep; 1744 1744 if (clone) 1745  - o.bRep = (BoundaryRep) GrafreeD.clone(bRep);1745  + o.bRep = (BoundaryRep) Grafreed.clone(bRep);1746 1746 o.CreateMaterial(); 1747 1747 //o.overwriteThis(this, -1); 1748 1748 o.SetAttributes(this, -1); .. .. @@ -3204,7 +3204,7 @@ 3204 3204 3205 3205 BoundaryRep sup = bRep.support; 3206 3206 bRep.support = null; 3207  - BoundaryRep temprep = (BoundaryRep) GrafreeD.clone(bRep);3207  + BoundaryRep temprep = (BoundaryRep) Grafreed.clone(bRep);3208 3208 // bRep.SplitInTwo(onlyone); // thread... 3209 3209 temprep.SplitInTwo(reduction34, onlyone); 3210 3210 bRep = temprep; .. .. @@ -3728,7 +3728,7 @@ 3728 3728 if (child == null) 3729 3729 continue; 3730 3730 3731  - if (GrafreeD.RENDERME > 0)3731  + if (Grafreed.RENDERME > 0)3732 3732 { 3733 3733 if (child instanceof Merge) 3734 3734 ((Merge)child).renderme(); .. .. @@ -3879,7 +3879,7 @@ 3879 3879 if (child == null) 3880 3880 continue; 3881 3881 3882  - if (GrafreeD.RENDERME > 0)3882  + if (Grafreed.RENDERME > 0)3883 3883 { 3884 3884 if (child instanceof Merge) 3885 3885 ((Merge)child).renderme(); .. .. @@ -4074,7 +4074,7 @@ 4074 4074 if (child == null) 4075 4075 continue; 4076 4076 4077  - if (GrafreeD.RENDERME > 0)4077  + if (Grafreed.RENDERME > 0)4078 4078 { 4079 4079 if (child instanceof Merge) 4080 4080 ((Merge)child).renderme(); .. .. @@ -7567,7 +7567,7 @@ 7567 7567 { 7568 7568 assert(bRep != null); 7569 7569 if (!(support instanceof GenericJoint)) // support.bRep != null) 7570  - GrafreeD.Assert(support.bRep == bRep.support);7570  + Grafreed.Assert(support.bRep == bRep.support);7571 7571 } 7572 7572 else 7573 7573 { RandomNode.java
.. .. @@ -95,7 +95,7 @@ 95 95 96 96 //(int)(Math.random()*super.size()); 97 97 //globalcount++; 98  - gcount += GrafreeD.mix3(rnd+12345,firstchoice*12345,gcount);98  + gcount += Grafreed.mix3(rnd+12345,firstchoice*12345,gcount);99 99 100 100 gcount &= 0x7fffffff; 101 101  SwitchNode.java
.. .. @@ -20,7 +20,7 @@ 20 20 { 21 21 CreateMaterial(); 22 22 switchobject.get(0).bRep.SaveSupports(); 23  - bRep = (BoundaryRep) GrafreeD.clone(switchobject.get(0).bRep);23  + bRep = (BoundaryRep) Grafreed.clone(switchobject.get(0).bRep);24 24 switchobject.get(0).bRep.RestoreSupports(); 25 25 } 26 26 .. .. @@ -30,7 +30,7 @@ 30 30 Object3D par = duplicate.parent; 31 31 duplicate.parent = null; 32 32 duplicate.SaveSupports(); 33  - addChild((Object3D)GrafreeD.clone(duplicate));33  + addChild((Object3D)Grafreed.clone(duplicate));34 34 duplicate.parent = par; 35 35 duplicate.RestoreSupports(); 36 36 } .. .. @@ -97,7 +97,7 @@ 97 97 98 98 if (bRep == null) 99 99 { 100  - bRep = (BoundaryRep) GrafreeD.clone(switchobject.get(0).bRep);100  + bRep = (BoundaryRep) Grafreed.clone(switchobject.get(0).bRep);101 101 } 102 102 103 103 if (CameraPane.SUPPORT && display.DrawMode() == display.SHADOW) Vertex.java
.. .. @@ -133,7 +133,7 @@ 133 133 return Math.abs(/*pos.*/x - vert./*pos.*/x) + 134 134 Math.abs(/*pos.*/y - vert./*pos.*/y) + 135 135 Math.abs(/*pos.*/z - vert./*pos.*/z) < 0.00001 && // GrafreeD.epsvertex2 && // WARNING: USE 0.0001 for serial issues 136  - (GrafreeD.linkUV || Math.abs(s - vert.s) + Math.abs(t - vert.t) < 0.00001)136  + (Grafreed.linkUV || Math.abs(s - vert.s) + Math.abs(t - vert.t) < 0.00001)137 137 ; // GrafreeD.epsvertex2; 138 138 } 139 139 /* cFileSystemPane.java
.. .. @@ -136,7 +136,7 @@ 136 136 137 137 jTree.setModel(new cFileSystemModel( 138 138 //java.io.File.listRoots()[1]) 139  - javax.swing.filechooser.FileSystemView.getFileSystemView().getHomeDirectory(),139  + javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory(),140 140 filter 141 141 )); 142 142 } cMesh.java
.. .. @@ -404,8 +404,8 @@ 404 404 if (ref == null) 405 405 return; 406 406 407  - GrafreeD.epsequal = IsEpsEqual();408  - GrafreeD.linkUV = IsLinkUV();407  + Grafreed.epsequal = IsEpsEqual();408  + Grafreed.linkUV = IsLinkUV();409 409 410 410 // BoundaryRep oldrep = transientrep; 411 411 .. .. @@ -419,7 +419,7 @@ 419 419 Object3D obj = ref.GetObject(); 420 420 421 421 // may 2014: side-effect with UVs!! 422  - obj = (Object3D) GrafreeD.clone(obj);422  + obj = (Object3D) Grafreed.clone(obj);423 423 424 424 merge(obj); 425 425 .. .. @@ -429,7 +429,7 @@ 429 429 bRep.Trim(false, false,false,false,false); 430 430 System.out.println("------> TRIM " + ref + "; #vertices = " + bRep.VertexCount() + "; #faces = " + bRep.FaceCount()); 431 431 432  - GrafreeD.epsequal = false;432  + Grafreed.epsequal = false;433 433 434 434 if (transientrep != null && bRep.VertexCount() == transientrep.VertexCount()) 435 435 { .. .. @@ -470,7 +470,7 @@ 470 470 } 471 471 else 472 472 // geometry is merged... 473  - refcopy = (BoundaryRep) GrafreeD.clone(transientrep);473  + refcopy = (BoundaryRep) Grafreed.clone(transientrep);474 474 } 475 475 476 476 transient cVector minima = new cVector(); cRadio.java
.. .. @@ -32,7 +32,7 @@ 32 32 if (link) 33 33 camera = c; 34 34 else 35  - camera = (Camera)GrafreeD.clone(c);35  + camera = (Camera)Grafreed.clone(c);36 36 } 37 37 38 38 Object3D object; cVector.java
.. .. @@ -266,7 +266,7 @@ 266 266 long ly = Double.doubleToRawLongBits(y); 267 267 long lz = Double.doubleToRawLongBits(z); 268 268 269  - if (GrafreeD.epsequal)269  + if (Grafreed.epsequal)270 270 { 271 271 return 0; 272 272 } else