Project

General

Profile

« Previous | Next » 

Revision 9567a9ae

Added by Leszek Koltunski 10 months ago

improvements from the 'texture coordinate' investigation.

View differences:

src/main/java/org/distorted/objectlib/helpers/FactoryCubit.java
234 234
    sInfo.outerVertices = new float[1][len][2];
235 235
    sInfo.fullVertices = null;
236 236

  
237
    float[][] t = sInfo.outerVertices[0];
238

  
237 239
    for( int vertex=0; vertex<len; vertex++ )
238 240
      {
239
      sInfo.outerVertices[0][vertex][0] = vert3D[vertex][0] / info.scale;
240
      sInfo.outerVertices[0][vertex][1] = vert3D[vertex][1] / info.scale;
241
      t[vertex][0] = vert3D[vertex][0] / info.scale;
242
      t[vertex][1] = vert3D[vertex][1] / info.scale;
241 243
      }
242 244

  
243 245
    mStickerCoords.add(sInfo);
......
734 736
    }
735 737

  
736 738
///////////////////////////////////////////////////////////////////////////////////////////////////
737
// even if this is a multigon, then FaceTransform.vertices is the outer edge!
739
// even if this is a multigon, then StickerCoords.outerVertices is the outer edge!
738 740
// (see fitInSquare multigon variant)
739 741

  
740 742
  private boolean successfullyCollapsedStickers(final FaceTransform newInfo, final FaceTransform oldInfo)
......
854 856

  
855 857
  private void printTransform(FaceTransform f)
856 858
    {
857
    android.util.Log.e("D", "face="+f.face+" q=("+f.qx+", "+f.qy+", "+f.qz+", "+f.qw+") v=("
858
                       +f.vx+", "+f.vy+", "+f.vz+") scale="+f.scale+" sticker="+f.sticker);
859
    android.util.Log.e("D", "face="+f.face+" sticker="+f.sticker+" scale="+f.scale+
860
                            " q=("+f.qx+", "+f.qy+", "+f.qz+", "+f.qw+") v=("+f.vx+", "+f.vy+", "+f.vz+")");
859 861
    }
860 862

  
861 863
///////////////////////////////////////////////////////////////////////////////////////////////////
......
958 960
      }
959 961
    }
960 962

  
963
///////////////////////////////////////////////////////////////////////////////////////////////////
964

  
965
  private String printSticker(StickerCoords info)
966
    {
967
    String ret = (info.outer?"OUTER":"INNER")+" scale: "+info.scale+"\n";
968

  
969
    int len = info.outerVertices.length;
970

  
971
    for(int l=0; l<len; l++)
972
      {
973
      float[][] outer = info.outerVertices[l];
974
      int numV = outer.length;
975

  
976
      ret += "  Loop "+l+" verts: "+numV+" { ";
977
      for(int v=0; v<numV; v++)
978
        {
979
        if(v!=0) ret += ", ";
980
        ret += (outer[v][0]+"f, "+outer[v][1]+"f");
981
        }
982

  
983
      ret += "}\n";
984
      }
985

  
986
    return ret;
987
    }
988

  
961 989
///////////////////////////////////////////////////////////////////////////////////////////////////
962 990
// INTERNAL API
963 991

  
......
971 999
    for(int s=0; s<stickers; s++)
972 1000
      {
973 1001
      StickerCoords info = mStickerCoords.get(s);
974

  
975 1002
      if( info.outer )  ret++;
976

  
977
      String ver = (info.outer?"OUTER":"INNER")+" scale: "+info.scale+" { ";
978
      int len = info.outerVertices.length;
979

  
980
      for(int i=0; i<len; i++)
981
        {
982
        float[][] outer = info.outerVertices[i];
983
        int numStickers = outer.length;
984

  
985
        for(int j=0; j<numStickers; j++)
986
          {
987
          if(j!=0) ver+=", ";
988
          ver += (outer[j][0]+"f, "+outer[j][1]+"f");
989
          }
990

  
991
        ver += "\n";
992
        }
993

  
994
      ver += " }";
995
      android.util.Log.d("D", ver);
1003
      String str = printSticker(info);
1004
      android.util.Log.d("D", "Sticker "+s+" "+str);
996 1005
      }
997 1006

  
998 1007
    android.util.Log.d("D", "---- END STICKER COORDS ----");
......
1279 1288
      }
1280 1289
    }
1281 1290

  
1291
///////////////////////////////////////////////////////////////////////////////////////////////////
1292

  
1293
  private void debugVerts(float[][][] verts)
1294
    {
1295
    int len = verts.length;
1296
    String s = "";
1297

  
1298
    for(int i=0; i<len; i++)
1299
      {
1300
      s += "\nloop "+i+" : ";
1301
      float[][] v = verts[i];
1302
      int l= v.length;
1303
      for(int j=0; j<l; j++) s += (" ("+v[j][0]+", "+v[j][1]+")");
1304
      }
1305

  
1306
    android.util.Log.e("D", "copiedVerts: "+s);
1307
    }
1308

  
1282 1309
///////////////////////////////////////////////////////////////////////////////////////////////////
1283 1310

  
1284 1311
  public MeshBase createRoundedSolid(final ObjectShape shape, final ObjectFaceShape faceShape,
......
1297 1324
    int exIndex=0, exVertices=0, alpha=0, N=0;
1298 1325
    float height=0.0f, dist=0.0f, K=0.0f;
1299 1326

  
1327
    android.util.Log.e("D", "createRoundSolid, numFaces="+numFaces);
1328

  
1300 1329
    for(int face=0; face<numFaces; face++)
1301 1330
      {
1302 1331
      fInfo = mNewFaceTransf.get(face);
......
1351 1380
            }
1352 1381
          }
1353 1382

  
1383
        if( lenVerts>=2 ) debugVerts(copiedVerts);
1384

  
1354 1385
        meshes[face] = new MeshMultigon(copiedVerts,bandsComputed,exIndex,exVertices);
1355 1386
        }
1356 1387
      else

Also available in: Unified diff