| .. | .. | 
|---|
| 52 | 52 |              perspective = true; | 
|---|
| 53 | 53 |              break; | 
|---|
| 54 | 54 |          case 1: // '\001' | 
|---|
| 55 |  | -            location = LA.newVector(4, 0, 0);  | 
|---|
 | 55 | +            location = LA.newVector(0, 0, 4); // Needed for translation direction  | 
|---|
| 56 | 56 |              perspective = false; | 
|---|
| 57 | 57 |              break; | 
|---|
| 58 | 58 |          case 2: // '\002' | 
|---|
| .. | .. | 
|---|
| 63 | 63 |              //LA.matXRotate(fromScreen, LA.toRadians(90)); | 
|---|
| 64 | 64 |              break; | 
|---|
| 65 | 65 |          case 3: // '\003' | 
|---|
| 66 |  | -            location = LA.newVector(0, 0, 4);  | 
|---|
 | 66 | +            location = LA.newVector(4, 0, 0); // Needed for translation direction  | 
|---|
| 67 | 67 |              //LA.matZRotate(toScreen, LA.toRadians(-90)); | 
|---|
| 68 | 68 |              //LA.matXRotate(toScreen, LA.toRadians(-90)); | 
|---|
| 69 | 69 |              //LA.matXRotate(fromScreen, LA.toRadians(90)); | 
|---|
| .. | .. | 
|---|
| 476 | 476 |      cVector location; | 
|---|
| 477 | 477 |      cVector lookAt; | 
|---|
| 478 | 478 |      cVector direction; | 
|---|
| 479 |  | -    double toScreen[][];  | 
|---|
| 480 |  | -    double fromScreen[][];  | 
|---|
 | 479 | +    double[][] toScreen;  | 
|---|
 | 480 | +    double[][] fromScreen;  | 
|---|
| 481 | 481 |      boolean perspective; | 
|---|
| 482 | 482 |      int hAspect = 0; // Free camera | 
|---|
| 483 | 483 |      int vAspect; | 
|---|
 
| .. | .. | 
|---|
| 24 | 24 |      int flags; | 
|---|
| 25 | 25 |      Rectangle bounds; | 
|---|
| 26 | 26 |      Camera camera; | 
|---|
| 27 |  | -    double toScreen[][];  | 
|---|
 | 27 | +    double[][] toScreen;  | 
|---|
| 28 | 28 |      iCameraPane pane; | 
|---|
| 29 | 29 |      Graphics g; | 
|---|
| 30 | 30 |      int DX, DY; | 
|---|
| .. | .. | 
|---|
| 32 | 32 |       | 
|---|
| 33 | 33 |      double scale; // Distance from clicked point to origin | 
|---|
| 34 | 34 |   | 
|---|
| 35 |  | -    static double matbuffer[][] = new double[4][4];  | 
|---|
 | 35 | +    static double[][] matbuffer = new double[4][4];  | 
|---|
| 36 | 36 |  } | 
|---|
 
| .. | .. | 
|---|
| 11 | 11 |      { | 
|---|
| 12 | 12 |      } | 
|---|
| 13 | 13 |   | 
|---|
| 14 |  | -    double pv[];  | 
|---|
| 15 |  | -    double qv[];  | 
|---|
| 16 |  | -    double rv[];  | 
|---|
| 17 |  | -    double sv[];  | 
|---|
| 18 |  | -    double norm[];  | 
|---|
 | 14 | +    double[] pv;  | 
|---|
 | 15 | +    double[] qv;  | 
|---|
 | 16 | +    double[] rv;  | 
|---|
 | 17 | +    double[] sv;  | 
|---|
 | 18 | +    double[] norm;  | 
|---|
| 19 | 19 |      int nGood; | 
|---|
| 20 | 20 |      int nBad; | 
|---|
| 21 | 21 |  } | 
|---|
 
| .. | .. | 
|---|
| 1367 | 1367 |      double cellSize2; | 
|---|
| 1368 | 1368 |      double tolerance; | 
|---|
| 1369 | 1369 |      BoundaryRep bRep; | 
|---|
| 1370 |  | -    int nCells[];  | 
|---|
 | 1370 | +    int[] nCells;  | 
|---|
| 1371 | 1371 |      cVector minima; | 
|---|
| 1372 | 1372 |      cVector maxima; | 
|---|
| 1373 | 1373 |      static Vertex[] triangle = new Vertex[4]; | 
|---|
 
| .. | .. | 
|---|
| 193 | 193 |  	 | 
|---|
| 194 | 194 |      MorphNode morphnode; | 
|---|
| 195 | 195 |       | 
|---|
| 196 |  | -    //JLabel morphLabel[];  | 
|---|
| 197 |  | -    cNumberSlider morphField[];  | 
|---|
 | 196 | +    //JLabel[] morphLabel;  | 
|---|
 | 197 | +    cNumberSlider[] morphField;  | 
|---|
| 198 | 198 |   | 
|---|
| 199 | 199 |  	ObjectUI parent; | 
|---|
| 200 | 200 |  	 | 
|---|
 
| .. | .. | 
|---|
| 7 | 7 |      Object3D morphobject; | 
|---|
| 8 | 8 |       | 
|---|
| 9 | 9 |  // MORPH weights | 
|---|
| 10 |  | -    double morphweights[];  | 
|---|
 | 10 | +    double[] morphweights;  | 
|---|
| 11 | 11 |       | 
|---|
| 12 | 12 |      MorphNode(Object3D object) | 
|---|
| 13 | 13 |      { | 
|---|
 
| .. | .. | 
|---|
| 990 | 990 |          object.ExtractBigData(Grafreed.grafreed.universe.versiontable); | 
|---|
| 991 | 991 |          // if (copy == client) | 
|---|
| 992 | 992 |           | 
|---|
 | 993 | +        assert(!object.HasBigData());  | 
|---|
 | 994 | +          | 
|---|
| 993 | 995 |          Object3D versions[] = object.versionlist; | 
|---|
| 994 | 996 |          java.util.Hashtable<java.util.UUID, Object3D> versiontable = object.versiontable; // if Grafreed.grafreed.universe | 
|---|
| 995 | 997 |          object.versionlist = null; | 
|---|
| .. | .. | 
|---|
| 1000 | 1002 |           | 
|---|
| 1001 | 1003 |          //byte[] compress = Compress(copy); | 
|---|
| 1002 | 1004 |          Object3D compress = (Object3D)Grafreed.clone(object); | 
|---|
 | 1005 | +          | 
|---|
 | 1006 | +        assert(!compress.HasBigData());  | 
|---|
| 1003 | 1007 |           | 
|---|
| 1004 | 1008 |          object.parent = parent; | 
|---|
| 1005 | 1009 |           | 
|---|
| .. | .. | 
|---|
| 2004 | 2008 |   | 
|---|
| 2005 | 2009 |  //            aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); | 
|---|
| 2006 | 2010 |   | 
|---|
| 2007 |  | -        frame.setSize(1280, 860);  | 
|---|
 | 2011 | +        frame.setSize(1280, 900);  | 
|---|
| 2008 | 2012 |           | 
|---|
| 2009 | 2013 |                      cameraView.requestFocusInWindow(); | 
|---|
| 2010 | 2014 |                       | 
|---|
| .. | .. | 
|---|
| 4485 | 4489 |      public boolean Save(boolean user) | 
|---|
| 4486 | 4490 |      { | 
|---|
| 4487 | 4491 |          System.err.println("Save"); | 
|---|
| 4488 |  | -        Replace();  | 
|---|
 | 4492 | +        //Replace();  | 
|---|
| 4489 | 4493 |           | 
|---|
| 4490 | 4494 |          if (copy.versionlist == null) | 
|---|
| 4491 | 4495 |          { | 
|---|
| .. | .. | 
|---|
| 4594 | 4598 |      { | 
|---|
| 4595 | 4599 |          Object3D obj = (Object3D)Grafreed.clone(changed.versionlist[copy.versionindex]); | 
|---|
| 4596 | 4600 |           | 
|---|
 | 4601 | +        assert(!obj.HasBigData());  | 
|---|
 | 4602 | +          | 
|---|
| 4597 | 4603 |          boolean temp = CameraPane.SWITCH; | 
|---|
| 4598 | 4604 |          CameraPane.SWITCH = false; | 
|---|
| 4599 | 4605 |           | 
|---|
 
| .. | .. | 
|---|
| 33 | 33 |      String skyboxname; | 
|---|
| 34 | 34 |      String skyboxext; | 
|---|
| 35 | 35 |       | 
|---|
| 36 |  | -    Object3D versionlist[];  | 
|---|
 | 36 | +    Object3D[] versionlist;  | 
|---|
| 37 | 37 |      int versionindex = -1;     | 
|---|
| 38 | 38 |           | 
|---|
| 39 | 39 |      java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>(); | 
|---|
| .. | .. | 
|---|
| 190 | 190 |          } | 
|---|
| 191 | 191 |      } | 
|---|
| 192 | 192 |   | 
|---|
 | 193 | +    boolean HasBigData()  | 
|---|
 | 194 | +    {  | 
|---|
 | 195 | +        if (blockloop)  | 
|---|
 | 196 | +            return false;  | 
|---|
 | 197 | +  | 
|---|
 | 198 | +        if (bRep != null)  | 
|---|
 | 199 | +        {  | 
|---|
 | 200 | +            return true;  | 
|---|
 | 201 | +        }  | 
|---|
 | 202 | +          | 
|---|
 | 203 | +        blockloop = true;  | 
|---|
 | 204 | +          | 
|---|
 | 205 | +        for (int i = 0; i < Size(); i++)  | 
|---|
 | 206 | +        {  | 
|---|
 | 207 | +            Object3D child = (Object3D) get(i);  | 
|---|
 | 208 | +            if (child == null)  | 
|---|
 | 209 | +                continue;  | 
|---|
 | 210 | +            if (child.HasBigData())  | 
|---|
 | 211 | +            {  | 
|---|
 | 212 | +                blockloop = false;  | 
|---|
 | 213 | +                return true;  | 
|---|
 | 214 | +            }  | 
|---|
 | 215 | +        }  | 
|---|
 | 216 | +          | 
|---|
 | 217 | +        blockloop = false;  | 
|---|
 | 218 | +        return false;  | 
|---|
 | 219 | +    }  | 
|---|
 | 220 | +  | 
|---|
| 193 | 221 |      void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) | 
|---|
| 194 | 222 |      { | 
|---|
 | 223 | +        if (blockloop)  | 
|---|
 | 224 | +            return;  | 
|---|
 | 225 | +  | 
|---|
| 195 | 226 |          Object3D o; | 
|---|
| 196 | 227 |           | 
|---|
| 197 | 228 |          boolean isnew = false; | 
|---|
| .. | .. | 
|---|
| 215 | 246 |              hashtable.put(GetUUID(), o); | 
|---|
| 216 | 247 |          } | 
|---|
| 217 | 248 |   | 
|---|
| 218 |  | -        if (!blockloop)  | 
|---|
 | 249 | +        //if (!blockloop)  | 
|---|
| 219 | 250 |          { | 
|---|
| 220 | 251 |              blockloop = true; | 
|---|
| 221 | 252 |   | 
|---|
| .. | .. | 
|---|
| 227 | 258 |              blockloop = false; | 
|---|
| 228 | 259 |          } | 
|---|
| 229 | 260 |   | 
|---|
| 230 |  | -        if (isnew)  | 
|---|
 | 261 | +        //if (isnew)  | 
|---|
| 231 | 262 |              ExtractBigData(o); | 
|---|
| 232 | 263 |      } | 
|---|
| 233 | 264 |   | 
|---|
| .. | .. | 
|---|
| 338 | 369 |   | 
|---|
| 339 | 370 |      void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) | 
|---|
| 340 | 371 |      { | 
|---|
 | 372 | +        if (blockloop)  | 
|---|
 | 373 | +            return;  | 
|---|
 | 374 | +  | 
|---|
| 341 | 375 |          if (!hashtable.containsKey(GetUUID())) | 
|---|
| 342 | 376 |              return; | 
|---|
| 343 | 377 |   | 
|---|
| 344 | 378 |          Object3D o = hashtable.get(GetUUID()); | 
|---|
| 345 | 379 |   | 
|---|
| 346 | 380 |          RestoreBigData(o); | 
|---|
| 347 |  | -  | 
|---|
| 348 |  | -        if (blockloop)  | 
|---|
| 349 |  | -            return;  | 
|---|
| 350 | 381 |   | 
|---|
| 351 | 382 |          blockloop = true; | 
|---|
| 352 | 383 |   | 
|---|
| .. | .. | 
|---|
| 363 | 394 |      void RestoreBigData(Object3D o) | 
|---|
| 364 | 395 |      { | 
|---|
| 365 | 396 |          //System.err.println("RestoreBigData : " + this + " <-- " + o); | 
|---|
 | 397 | +        Grafreed.Assert(this.bRep == null);  | 
|---|
| 366 | 398 |           | 
|---|
| 367 | 399 |          this.bRep = o.bRep; | 
|---|
| 368 | 400 |          if (this.support != null && o.transientrep != null) | 
|---|
 
| .. | .. | 
|---|
| 136 | 136 |          { | 
|---|
| 137 | 137 |              return; | 
|---|
| 138 | 138 |          } | 
|---|
| 139 |  | -        Vector2f sharedTextureData[];  | 
|---|
 | 139 | +        Vector2f[] sharedTextureData;  | 
|---|
| 140 | 140 |   | 
|---|
| 141 | 141 |          // setup texture coords | 
|---|
| 142 | 142 |          switch (getParticleType()) | 
|---|
 
| .. | .. | 
|---|
| 132 | 132 |      protected Vector3f upVector; | 
|---|
| 133 | 133 |      protected Vector3f leftVector; | 
|---|
| 134 | 134 |      protected Vector3f invScale; | 
|---|
| 135 |  | -    protected Particle particles[];  | 
|---|
 | 135 | +    protected Particle[] particles;  | 
|---|
| 136 | 136 |   | 
|---|
| 137 | 137 |      // protected Vector3f particleSpeed; | 
|---|
| 138 | 138 |      protected int releaseRate; // particles per second | 
|---|
 
| .. | .. | 
|---|
| 131 | 131 |   | 
|---|
| 132 | 132 |      private JFrame frame; | 
|---|
| 133 | 133 |      private int numLabels; | 
|---|
| 134 |  | -    private JLabel labels[];  | 
|---|
 | 134 | +    private JLabel[] labels;  | 
|---|
| 135 | 135 |      private JProgressBar progressBar; | 
|---|
| 136 | 136 |      private static final int INSET = 20; | 
|---|
| 137 | 137 |      private static final int SEPARATOR = 5; | 
|---|
 
| .. | .. | 
|---|
| 11 | 11 |  { | 
|---|
| 12 | 12 |      static final long serialVersionUID = -2918094393566350403L; | 
|---|
| 13 | 13 |   | 
|---|
| 14 |  | -    //private double _data2[][]; // first index: bones, second index: frames  | 
|---|
 | 14 | +    //private double[][] _data2; // first index: bones, second index: frames  | 
|---|
| 15 | 15 |      //transient | 
|---|
| 16 | 16 |      public | 
|---|
| 17 |  | -            float _data[][]; // first index: bones, second index: frames  | 
|---|
 | 17 | +            float[][] _data; // first index: bones, second index: frames  | 
|---|
| 18 | 18 |      public | 
|---|
| 19 | 19 |              float scale; // may 2014: scale for position | 
|---|
| 20 | 20 |      private int _numFrames; | 
|---|