Package com.sun.j3d.internal

Examples of com.sun.j3d.internal.DoubleBufferWrapper


/* 289 */               coords[i] = new Point3f(c[(i * 3 + 0)], c[(i * 3 + 1)], c[(i * 3 + 2)]);
/*     */             }
/*     */
/* 294 */             break;
/*     */           case 4:
/* 297 */             DoubleBufferWrapper bb = new DoubleBufferWrapper(buf);
/* 298 */             double[] c = new double[valid * 3];
/* 299 */             bb.position(initial * 3);
/* 300 */             bb.get(c, 0, valid * 3);
/* 301 */             coords = new Point3f[valid];
/* 302 */             for (i = 0; i < valid; i++) {
/* 303 */               coords[i] = new Point3f((float)c[(i * 3 + 0)], (float)c[(i * 3 + 1)], (float)c[(i * 3 + 2)]);
/*     */             }
/*     */
/*     */           }
/*     */
/*     */         }
/* 310 */         else if (geomArray.getCoordRef3f() != null) {
/* 311 */           if (initial != 0) {
/* 312 */             Point3f[] c = geomArray.getCoordRef3f();
/* 313 */             coords = new Point3f[valid];
/* 314 */             for (i = 0; i < valid; i++)
/* 315 */               coords[i] = new Point3f(c[(i + initial)]);
/*     */           } else {
/* 317 */             coords = geomArray.getCoordRef3f();
/*     */           } } else if (geomArray.getCoordRef3d() != null) {
/* 319 */           Point3d[] c = geomArray.getCoordRef3d();
/* 320 */           coords = new Point3f[valid];
/* 321 */           for (int i = 0; i < valid; i++)
/* 322 */             coords[i] = new Point3f(c[(i + initial)]);
/*     */         }
/* 324 */         else if (geomArray.getCoordRefFloat() != null) {
/* 325 */           float[] c = geomArray.getCoordRefFloat();
/* 326 */           coords = new Point3f[valid];
/* 327 */           for (int i = 0; i < valid; i++) {
/* 328 */             coords[i] = new Point3f(c[((i + initial) * 3)], c[((i + initial) * 3 + 1)], c[((i + initial) * 3 + 2)]);
/*     */           }
/*     */
/*     */         }
/* 332 */         else if (geomArray.getCoordRefDouble() != null) {
/* 333 */           double[] c = geomArray.getCoordRefDouble();
/* 334 */           coords = new Point3f[valid];
/* 335 */           for (int i = 0; i < valid; i++)
/* 336 */             coords[i] = new Point3f((float)c[((i + initial) * 3)], (float)c[((i + initial) * 3 + 1)], (float)c[((i + initial) * 3 + 2)]);
/*     */         }
/*     */       }
/*     */       else
/*     */       {
/*     */         int initial;
/*     */         int initial;
/* 345 */         if (!(geomArray instanceof IndexedGeometryArray))
/* 346 */           initial = geomArray.getInitialVertexIndex();
/* 347 */         else initial = 0;
/* 348 */         coords = new Point3f[valid];
/* 349 */         for (int i = 0; i < valid; i++) coords[i] = new Point3f();
/* 350 */         geomArray.getCoordinates(initial, coords);
/*     */       }
/* 352 */       geomInfo.setCoordinates(coords);
/*     */
/* 354 */       if ((vertexFormat & 0x2) != 0) {
/* 355 */         Vector3f[] normals = null;
/* 356 */         if (byRef)
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 359 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 360 */             initial = geomArray.getInitialNormalIndex();
/* 361 */           else initial = 0;
/*     */
/* 363 */           if (nio) {
/* 364 */             J3DBuffer buf = geomArray.getNormalRefBuffer();
/*     */
/* 366 */             if (BufferWrapper.getBufferType(buf) == 3) {
/* 367 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 368 */               float[] c = new float[valid * 3];
/* 369 */               bb.position(initial * 3);
/* 370 */               bb.get(c, 0, valid * 3);
/* 371 */               normals = new Vector3f[valid];
/* 372 */               for (int i = 0; i < valid; i++) {
/* 373 */                 normals[i] = new Vector3f(c[(i * 3 + 0)], c[(i * 3 + 1)], c[(i * 3 + 2)]);
/*     */               }
/*     */
/*     */             }
/*     */
/*     */           }
/* 379 */           else if (geomArray.getNormalRef3f() != null) {
/* 380 */             if (initial != 0) {
/* 381 */               Vector3f[] n = geomArray.getNormalRef3f();
/* 382 */               normals = new Vector3f[valid];
/* 383 */               for (int i = 0; i < valid; i++)
/* 384 */                 normals[i] = new Vector3f(n[(i + initial)]);
/*     */             } else {
/* 386 */               normals = geomArray.getNormalRef3f();
/*     */             } } else if (geomArray.getNormalRefFloat() != null) {
/* 388 */             float[] n = geomArray.getNormalRefFloat();
/* 389 */             normals = new Vector3f[valid];
/* 390 */             for (int i = 0; i < valid; i++)
/* 391 */               normals[i] = new Vector3f(n[((i + initial) * 3)], n[((i + initial) * 3 + 1)], n[((i + initial) * 3 + 2)]);
/*     */           }
/*     */         }
/*     */         else
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 400 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 401 */             initial = geomArray.getInitialVertexIndex();
/* 402 */           else initial = 0;
/* 403 */           normals = new Vector3f[valid];
/* 404 */           for (int i = 0; i < valid; i++) normals[i] = new Vector3f();
/* 405 */           geomArray.getNormals(initial, normals);
/*     */         }
/* 407 */         geomInfo.setNormals(normals);
/*     */       }
/*     */
/* 410 */       if ((vertexFormat & 0xC) == 12) {
/* 411 */         Color4f[] colors = null;
/* 412 */         if (byRef)
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 415 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 416 */             initial = geomArray.getInitialColorIndex();
/* 417 */           else initial = 0;
/*     */           int i;
/* 419 */           if (nio) {
/* 420 */             J3DBuffer buf = geomArray.getColorRefBuffer();
/*     */
/* 422 */             switch (BufferWrapper.getBufferType(buf))
/*     */             {
/*     */             case 3:
/* 425 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 426 */               float[] c = new float[valid * 4];
/* 427 */               bb.position(initial * 4);
/* 428 */               bb.get(c, 0, valid * 4);
/* 429 */               colors = new Color4f[valid];
/* 430 */               for (i = 0; i < valid; i++) {
/* 431 */                 colors[i] = new Color4f(c[(i * 4 + 0)], c[(i * 4 + 1)], c[(i * 4 + 2)], c[(i * 4 + 3)]);
/*     */               }
/*     */
/* 437 */               break;
/*     */             case 2:
/* 440 */               ByteBufferWrapper bb = new ByteBufferWrapper(buf);
/* 441 */               byte[] c = new byte[valid * 4];
/* 442 */               bb.position(initial * 4);
/* 443 */               bb.get(c, 0, valid * 4);
/* 444 */               colors = new Color4f[valid];
/* 445 */               for (i = 0; i < valid; i++) {
/* 446 */                 colors[i] = new Color4f((c[(i * 4 + 0)] & 0xFF) / 255.0F, (c[(i * 4 + 1)] & 0xFF) / 255.0F, (c[(i * 4 + 2)] & 0xFF) / 255.0F, (c[(i * 4 + 3)] & 0xFF) / 255.0F);
/*     */               }
/*     */
/*     */             }
/*     */
/*     */           }
/* 454 */           else if (geomArray.getColorRef4f() != null) {
/* 455 */             if (initial != 0) {
/* 456 */               Color4f[] c = geomArray.getColorRef4f();
/* 457 */               colors = new Color4f[valid];
/* 458 */               for (i = 0; i < valid; i++)
/* 459 */                 colors[i] = new Color4f(c[(i + initial)]);
/*     */             } else {
/* 461 */               colors = geomArray.getColorRef4f();
/*     */             } } else if (geomArray.getColorRefFloat() != null) {
/* 463 */             float[] c = geomArray.getColorRefFloat();
/* 464 */             colors = new Color4f[valid];
/* 465 */             for (int i = 0; i < valid; i++) {
/* 466 */               colors[i] = new Color4f(c[((i + initial) * 4 + 0)], c[((i + initial) * 4 + 1)], c[((i + initial) * 4 + 2)], c[((i + initial) * 4 + 3)]);
/*     */             }
/*     */
/*     */           }
/* 471 */           else if (geomArray.getColorRefByte() != null) {
/* 472 */             byte[] c = geomArray.getColorRefByte();
/* 473 */             colors = new Color4f[valid];
/* 474 */             for (int i = 0; i < valid; i++) {
/* 475 */               colors[i] = new Color4f((c[((i + initial) * 4 + 0)] & 0xFF) / 255.0F, (c[((i + initial) * 4 + 1)] & 0xFF) / 255.0F, (c[((i + initial) * 4 + 2)] & 0xFF) / 255.0F, (c[((i + initial) * 4 + 3)] & 0xFF) / 255.0F);
/*     */             }
/*     */
/*     */           }
/* 480 */           else if (geomArray.getColorRef4b() != null) {
/* 481 */             Color4b[] c = geomArray.getColorRef4b();
/* 482 */             colors = new Color4f[valid];
/* 483 */             for (int i = 0; i < valid; i++)
/* 484 */               colors[i] = new Color4f((c[(i + initial)].x & 0xFF) / 255.0F, (c[(i + initial)].y & 0xFF) / 255.0F, (c[(i + initial)].z & 0xFF) / 255.0F, (c[(i + initial)].w & 0xFF) / 255.0F);
/*     */           }
/*     */         }
/*     */         else
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 494 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 495 */             initial = geomArray.getInitialVertexIndex();
/* 496 */           else initial = 0;
/* 497 */           colors = new Color4f[valid];
/* 498 */           for (int i = 0; i < valid; i++) colors[i] = new Color4f();
/* 499 */           geomArray.getColors(initial, colors);
/*     */         }
/* 501 */         geomInfo.setColors(colors);
/* 502 */       } else if ((vertexFormat & 0x4) != 0) {
/* 503 */         Color3f[] colors = null;
/* 504 */         if (byRef)
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 507 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 508 */             initial = geomArray.getInitialColorIndex();
/* 509 */           else initial = 0;
/*     */           int i;
/* 511 */           if (nio) {
/* 512 */             J3DBuffer buf = geomArray.getColorRefBuffer();
/*     */
/* 514 */             switch (BufferWrapper.getBufferType(buf))
/*     */             {
/*     */             case 3:
/* 517 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 518 */               float[] c = new float[valid * 3];
/* 519 */               bb.position(initial * 3);
/* 520 */               bb.get(c, 0, valid * 3);
/* 521 */               colors = new Color3f[valid];
/* 522 */               for (i = 0; i < valid; i++) {
/* 523 */                 colors[i] = new Color3f(c[(i * 3 + 0)], c[(i * 3 + 1)], c[(i * 3 + 2)]);
/*     */               }
/*     */
/* 528 */               break;
/*     */             case 2:
/* 531 */               ByteBufferWrapper bb = new ByteBufferWrapper(buf);
/* 532 */               byte[] c = new byte[valid * 3];
/* 533 */               bb.position(initial * 3);
/* 534 */               bb.get(c, 0, valid * 3);
/* 535 */               colors = new Color3f[valid];
/* 536 */               for (i = 0; i < valid; i++) {
/* 537 */                 colors[i] = new Color3f((c[(i * 3 + 0)] & 0xFF) / 255.0F, (c[(i * 3 + 1)] & 0xFF) / 255.0F, (c[(i * 3 + 2)] & 0xFF) / 255.0F);
/*     */               }
/*     */
/*     */             }
/*     */
/*     */           }
/* 544 */           else if (geomArray.getColorRef3f() != null) {
/* 545 */             if (initial != 0) {
/* 546 */               Color3f[] c = geomArray.getColorRef3f();
/* 547 */               colors = new Color3f[valid];
/* 548 */               for (i = 0; i < valid; i++)
/* 549 */                 colors[i] = new Color3f(c[(i + initial)]);
/*     */             } else {
/* 551 */               colors = geomArray.getColorRef3f();
/*     */             } } else if (geomArray.getColorRefFloat() != null) {
/* 553 */             float[] c = geomArray.getColorRefFloat();
/* 554 */             colors = new Color3f[valid];
/* 555 */             for (int i = 0; i < valid; i++) {
/* 556 */               colors[i] = new Color3f(c[((i + initial) * 3 + 0)], c[((i + initial) * 3 + 1)], c[((i + initial) * 3 + 2)]);
/*     */             }
/*     */
/*     */           }
/* 560 */           else if (geomArray.getColorRefByte() != null) {
/* 561 */             byte[] c = geomArray.getColorRefByte();
/* 562 */             colors = new Color3f[valid];
/* 563 */             for (int i = 0; i < valid; i++) {
/* 564 */               colors[i] = new Color3f((c[((i + initial) * 3 + 0)] & 0xFF) / 255.0F, (c[((i + initial) * 3 + 1)] & 0xFF) / 255.0F, (c[((i + initial) * 3 + 2)] & 0xFF) / 255.0F);
/*     */             }
/*     */
/*     */           }
/* 568 */           else if (geomArray.getColorRef3b() != null) {
/* 569 */             Color3b[] c = geomArray.getColorRef3b();
/* 570 */             colors = new Color3f[valid];
/* 571 */             for (int i = 0; i < valid; i++)
/* 572 */               colors[i] = new Color3f((c[(i + initial)].x & 0xFF) / 255.0F, (c[(i + initial)].y & 0xFF) / 255.0F, (c[(i + initial)].z & 0xFF) / 255.0F);
/*     */           }
/*     */         }
/*     */         else
/*     */         {
/*     */           int initial;
/*     */           int initial;
/* 581 */           if (!(geomArray instanceof IndexedGeometryArray))
/* 582 */             initial = geomArray.getInitialVertexIndex();
/* 583 */           else initial = 0;
/* 584 */           colors = new Color3f[valid];
/* 585 */           for (int i = 0; i < valid; i++) colors[i] = new Color3f();
/* 586 */           geomArray.getColors(initial, colors);
/*     */         }
/* 588 */         geomInfo.setColors(colors);
/*     */       }
/*     */
/* 591 */       if ((vertexFormat & 0x400) != 0) {
/* 592 */         geomInfo.setTextureCoordinateParams(texSets, 4);
/* 593 */         for (int i = 0; i < texSets; i++) {
/* 594 */           TexCoord4f[] tex = null;
/* 595 */           if (byRef)
/*     */           {
/*     */             int initial;
/*     */             int initial;
/* 598 */             if (!(geomArray instanceof IndexedGeometryArray))
/* 599 */               initial = geomArray.getInitialTexCoordIndex(i);
/* 600 */             else initial = 0;
/*     */
/* 602 */             if (nio) {
/* 603 */               J3DBuffer buf = geomArray.getTexCoordRefBuffer(i);
/*     */
/* 605 */               if (BufferWrapper.getBufferType(buf) == 3) {
/* 606 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 607 */                 float[] c = new float[valid * 4];
/* 608 */                 bb.position(initial * 4);
/* 609 */                 bb.get(c, 0, valid * 4);
/* 610 */                 tex = new TexCoord4f[valid];
/* 611 */                 for (int j = 0; j < valid; j++) {
/* 612 */                   tex[j] = new TexCoord4f(c[(j * 4 + 0)], c[(j * 4 + 1)], c[(j * 4 + 2)], c[(j * 4 + 3)]);
/*     */                 }
/*     */
/*     */               }
/*     */
/*     */             }
/*     */             else
/*     */             {
/* 621 */               float[] t = geomArray.getTexCoordRefFloat(i);
/* 622 */               tex = new TexCoord4f[valid];
/* 623 */               for (int j = 0; j < valid; j++)
/* 624 */                 tex[j] = new TexCoord4f(t[((j + initial) * 4)], t[((j + initial) * 4 + 1)], t[((j + initial) * 4 + 2)], t[((j + initial) * 4 + 3)]);
/*     */             }
/*     */           }
/*     */           else
/*     */           {
/*     */             int initial;
/*     */             int initial;
/* 633 */             if (!(geomArray instanceof IndexedGeometryArray))
/* 634 */               initial = geomArray.getInitialVertexIndex();
/* 635 */             else initial = 0;
/* 636 */             tex = new TexCoord4f[valid];
/* 637 */             for (int j = 0; j < valid; j++) tex[j] = new TexCoord4f();
/* 638 */             geomArray.getTextureCoordinates(i, initial, tex);
/*     */           }
/* 640 */           geomInfo.setTextureCoordinates(i, tex);
/*     */         }
/* 642 */         int[] map = new int[geomArray.getTexCoordSetMapLength()];
/* 643 */         geomArray.getTexCoordSetMap(map);
/* 644 */         geomInfo.setTexCoordSetMap(map);
/* 645 */       } else if ((vertexFormat & 0x40) != 0) {
/* 646 */         geomInfo.setTextureCoordinateParams(texSets, 3);
/* 647 */         for (int i = 0; i < texSets; i++) {
/* 648 */           TexCoord3f[] tex = null;
/* 649 */           if (byRef)
/*     */           {
/*     */             int initial;
/*     */             int initial;
/* 652 */             if (!(geomArray instanceof IndexedGeometryArray))
/* 653 */               initial = geomArray.getInitialTexCoordIndex(i);
/* 654 */             else initial = 0;
/*     */
/* 656 */             if (nio) {
/* 657 */               J3DBuffer buf = geomArray.getTexCoordRefBuffer(i);
/*     */
/* 659 */               if (BufferWrapper.getBufferType(buf) == 3) {
/* 660 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 661 */                 float[] c = new float[valid * 3];
/* 662 */                 bb.position(initial * 3);
/* 663 */                 bb.get(c, 0, valid * 3);
/* 664 */                 tex = new TexCoord3f[valid];
/* 665 */                 for (int j = 0; j < valid; j++) {
/* 666 */                   tex[j] = new TexCoord3f(c[(j * 3 + 0)], c[(j * 3 + 1)], c[(j * 3 + 2)]);
/*     */                 }
/*     */
/*     */               }
/*     */
/*     */             }
/* 672 */             else if (geomArray.getTexCoordRef3f(i) != null) {
/* 673 */               if (initial != 0) {
/* 674 */                 TexCoord3f[] t = geomArray.getTexCoordRef3f(i);
/* 675 */                 tex = new TexCoord3f[valid];
/* 676 */                 for (int j = 0; j < valid; j++)
/* 677 */                   tex[j] = new TexCoord3f(t[(j + initial)]);
/*     */               } else {
/* 679 */                 tex = geomArray.getTexCoordRef3f(i);
/*     */               } } else if (geomArray.getTexCoordRefFloat(i) != null) {
/* 681 */               float[] t = geomArray.getTexCoordRefFloat(i);
/* 682 */               tex = new TexCoord3f[valid];
/* 683 */               for (int j = 0; j < valid; j++)
/* 684 */                 tex[j] = new TexCoord3f(t[((j + initial) * 3)], t[((j + initial) * 3 + 1)], t[((j + initial) * 3 + 2)]);
/*     */             }
/*     */           }
/*     */           else
/*     */           {
/*     */             int initial;
/*     */             int initial;
/* 693 */             if (!(geomArray instanceof IndexedGeometryArray))
/* 694 */               initial = geomArray.getInitialVertexIndex();
/* 695 */             else initial = 0;
/* 696 */             tex = new TexCoord3f[valid];
/* 697 */             for (int j = 0; j < valid; j++) tex[j] = new TexCoord3f();
/* 698 */             geomArray.getTextureCoordinates(i, initial, tex);
/*     */           }
/* 700 */           geomInfo.setTextureCoordinates(i, tex);
/*     */         }
/* 702 */         int[] map = new int[geomArray.getTexCoordSetMapLength()];
/* 703 */         geomArray.getTexCoordSetMap(map);
/* 704 */         geomInfo.setTexCoordSetMap(map);
/* 705 */       } else if ((vertexFormat & 0x20) != 0) {
/* 706 */         geomInfo.setTextureCoordinateParams(texSets, 2);
/* 707 */         for (int i = 0; i < texSets; i++) {
/* 708 */           TexCoord2f[] tex = null;
/* 709 */           if (byRef)
/*     */           {
/*     */             int initial;
/*     */             int initial;
/* 712 */             if (!(geomArray instanceof IndexedGeometryArray))
/* 713 */               initial = geomArray.getInitialTexCoordIndex(i);
/* 714 */             else initial = 0;
/*     */
/* 716 */             if (nio) {
/* 717 */               J3DBuffer buf = geomArray.getTexCoordRefBuffer(i);
/*     */
/* 719 */               if (BufferWrapper.getBufferType(buf) == 3) {
/* 720 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 721 */                 float[] c = new float[valid * 2];
/* 722 */                 bb.position(initial * 2);
/* 723 */                 bb.get(c, 0, valid * 2);
/* 724 */                 tex = new TexCoord2f[valid];
/* 725 */                 for (int j = 0; j < valid; j++) {
/* 726 */                   tex[j] = new TexCoord2f(c[(j * 2 + 0)], c[(j * 2 + 1)]);
/*     */                 }
/*     */               }
View Full Code Here


/* 270 */               writeFloatArray(out, floats);
/*     */
/* 272 */               break;
/*     */             case 4:
/* 274 */               out.writeInt(3);
/* 275 */               DoubleBufferWrapper bb = new DoubleBufferWrapper(buf);
/* 276 */               double[] doubles = new double[bb.limit()];
/* 277 */               bb.position(0);
/* 278 */               bb.get(doubles);
/* 279 */               writeDoubleArray(out, doubles);
/*     */
/* 281 */               break;
/*     */             case 0:
/* 283 */               out.writeInt(0);
/*     */             case 1:
/*     */             case 2:
/*     */             }
/* 287 */           } else if (((GeometryArray)this.node).getCoordRef3f() != null) {
/* 288 */             out.writeInt(7);
/* 289 */             Point3f[] coords = ((GeometryArray)this.node).getCoordRef3f();
/* 290 */             float[] data = new float[coords.length * 3];
/* 291 */             for (int i = 0; i < coords.length; i++) {
/* 292 */               data[(i * 3 + 0)] = coords[i].x;
/* 293 */               data[(i * 3 + 1)] = coords[i].y;
/* 294 */               data[(i * 3 + 2)] = coords[i].z;
/*     */             }
/* 296 */             writeFloatArray(out, data);
/* 297 */           } else if (((GeometryArray)this.node).getCoordRef3d() != null) {
/* 298 */             out.writeInt(10);
/* 299 */             Point3d[] coords = ((GeometryArray)this.node).getCoordRef3d();
/* 300 */             double[] data = new double[coords.length * 3];
/* 301 */             for (int i = 0; i < coords.length; i++) {
/* 302 */               data[(i * 3 + 0)] = coords[i].x;
/* 303 */               data[(i * 3 + 1)] = coords[i].y;
/* 304 */               data[(i * 3 + 2)] = coords[i].z;
/*     */             }
/* 306 */             writeDoubleArray(out, data);
/* 307 */           } else if (((GeometryArray)this.node).getCoordRefFloat() != null) {
/* 308 */             out.writeInt(2);
/* 309 */             writeFloatArray(out, ((GeometryArray)this.node).getCoordRefFloat());
/* 310 */           } else if (((GeometryArray)this.node).getCoordRefDouble() != null) {
/* 311 */             out.writeInt(3);
/* 312 */             writeDoubleArray(out, ((GeometryArray)this.node).getCoordRefDouble()); } else {
/* 313 */             out.writeInt(0);
/*     */           }
/*     */         } else { float[] points = new float[this.vertexCount * 3];
/* 316 */           ((GeometryArray)this.node).getCoordinates(0, points);
/* 317 */           writeFloatArray(out, points);
/*     */         }
/*     */       }
/*     */
/* 321 */       if ((this.vertexFormat & 0x2) != 0)
/*     */       {
/* 323 */         if (byRef) {
/* 324 */           if (!(this.node instanceof IndexedGeometryArray)) {
/* 325 */             out.writeInt(((GeometryArray)this.node).getInitialNormalIndex());
/*     */           }
/*     */
/* 328 */           if (nio) {
/* 329 */             J3DBuffer buf = ((GeometryArray)this.node).getNormalRefBuffer();
/* 330 */             if (BufferWrapper.getBufferType(buf) == 0) {
/* 331 */               out.writeInt(0);
/*     */             } else {
/* 333 */               out.writeInt(2);
/* 334 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 335 */               float[] floats = new float[bb.limit()];
/* 336 */               bb.position(0);
/* 337 */               bb.get(floats);
/* 338 */               writeFloatArray(out, floats);
/*     */             }
/* 340 */           } else if (((GeometryArray)this.node).getNormalRef3f() != null) {
/* 341 */             out.writeInt(7);
/* 342 */             Vector3f[] norms = ((GeometryArray)this.node).getNormalRef3f();
/* 343 */             float[] data = new float[norms.length * 3];
/* 344 */             for (int i = 0; i < norms.length; i++) {
/* 345 */               data[(i * 3 + 0)] = norms[i].x;
/* 346 */               data[(i * 3 + 1)] = norms[i].y;
/* 347 */               data[(i * 3 + 2)] = norms[i].z;
/*     */             }
/* 349 */             writeFloatArray(out, data);
/* 350 */           } else if (((GeometryArray)this.node).getNormalRefFloat() != null) {
/* 351 */             out.writeInt(2);
/* 352 */             writeFloatArray(out, ((GeometryArray)this.node).getNormalRefFloat()); } else {
/* 353 */             out.writeInt(0);
/*     */           }
/*     */         } else { float[] normals = new float[this.vertexCount * 3];
/* 356 */           ((GeometryArray)this.node).getNormals(0, normals);
/* 357 */           writeFloatArray(out, normals);
/*     */         }
/*     */       }
/*     */
/* 361 */       if ((this.vertexFormat & 0x20) != 0)
/*     */       {
/* 363 */         for (int set = 0; set < this.texCoordSetCount; set++)
/* 364 */           if (byRef) {
/* 365 */             if (!(this.node instanceof IndexedGeometryArray)) {
/* 366 */               out.writeInt(((GeometryArray)this.node).getInitialTexCoordIndex(set));
/*     */             }
/*     */
/* 369 */             if (nio) {
/* 370 */               J3DBuffer buf = ((GeometryArray)this.node).getTexCoordRefBuffer(set);
/* 371 */               if (BufferWrapper.getBufferType(buf) == 0) {
/* 372 */                 out.writeInt(0);
/*     */               } else {
/* 374 */                 out.writeInt(2);
/* 375 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 376 */                 float[] floats = new float[bb.limit()];
/* 377 */                 bb.position(0);
/* 378 */                 bb.get(floats);
/* 379 */                 writeFloatArray(out, floats);
/*     */               }
/* 381 */             } else if (((GeometryArray)this.node).getTexCoordRef2f(set) != null) {
/* 382 */               out.writeInt(6);
/* 383 */               TexCoord2f[] tcoords = ((GeometryArray)this.node).getTexCoordRef2f(set);
/* 384 */               float[] data = new float[tcoords.length * 2];
/* 385 */               for (int i = 0; i < tcoords.length; i++) {
/* 386 */                 data[(i * 2 + 0)] = tcoords[i].x;
/* 387 */                 data[(i * 2 + 1)] = tcoords[i].y;
/*     */               }
/* 389 */               writeFloatArray(out, data);
/* 390 */             } else if (((GeometryArray)this.node).getTexCoordRefFloat(set) != null) {
/* 391 */               out.writeInt(2);
/* 392 */               writeFloatArray(out, ((GeometryArray)this.node).getTexCoordRefFloat(set)); } else {
/* 393 */               out.writeInt(0);
/*     */             }
/*     */           } else { float[] textureCoords = new float[this.vertexCount * 2];
/* 396 */             ((GeometryArray)this.node).getTextureCoordinates(set, 0, textureCoords);
/* 397 */             writeFloatArray(out, textureCoords);
/*     */           }
/*     */       }
/* 400 */       else if ((this.vertexFormat & 0x40) != 0)
/*     */       {
/* 402 */         for (int set = 0; set < this.texCoordSetCount; set++)
/* 403 */           if (byRef) {
/* 404 */             if (!(this.node instanceof IndexedGeometryArray)) {
/* 405 */               out.writeInt(((GeometryArray)this.node).getInitialTexCoordIndex(set));
/*     */             }
/*     */
/* 408 */             if (nio) {
/* 409 */               J3DBuffer buf = ((GeometryArray)this.node).getTexCoordRefBuffer(set);
/* 410 */               if (BufferWrapper.getBufferType(buf) == 0) {
/* 411 */                 out.writeInt(0);
/*     */               } else {
/* 413 */                 out.writeInt(2);
/* 414 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 415 */                 float[] floats = new float[bb.limit()];
/* 416 */                 bb.position(0);
/* 417 */                 bb.get(floats);
/* 418 */                 writeFloatArray(out, floats);
/*     */               }
/* 420 */             } else if (((GeometryArray)this.node).getTexCoordRef3f(set) != null) {
/* 421 */               out.writeInt(7);
/* 422 */               TexCoord3f[] tcoords = ((GeometryArray)this.node).getTexCoordRef3f(set);
/* 423 */               float[] data = new float[tcoords.length * 3];
/* 424 */               for (int i = 0; i < tcoords.length; i++) {
/* 425 */                 data[(i * 3 + 0)] = tcoords[i].x;
/* 426 */                 data[(i * 3 + 1)] = tcoords[i].y;
/* 427 */                 data[(i * 3 + 2)] = tcoords[i].z;
/*     */               }
/* 429 */               writeFloatArray(out, data);
/* 430 */             } else if (((GeometryArray)this.node).getTexCoordRefFloat(set) != null) {
/* 431 */               out.writeInt(2);
/* 432 */               writeFloatArray(out, ((GeometryArray)this.node).getTexCoordRefFloat(set)); } else {
/* 433 */               out.writeInt(0);
/*     */             }
/*     */           } else { float[] textureCoords = new float[this.vertexCount * 3];
/* 436 */             ((GeometryArray)this.node).getTextureCoordinates(set, 0, textureCoords);
/* 437 */             writeFloatArray(out, textureCoords);
/*     */           }
/*     */       }
/* 440 */       else if ((this.vertexFormat & 0x400) != 0)
/*     */       {
/* 442 */         for (int set = 0; set < this.texCoordSetCount; set++)
/* 443 */           if (byRef) {
/* 444 */             if (!(this.node instanceof IndexedGeometryArray)) {
/* 445 */               out.writeInt(((GeometryArray)this.node).getInitialTexCoordIndex(set));
/*     */             }
/*     */
/* 448 */             if (nio) {
/* 449 */               J3DBuffer buf = ((GeometryArray)this.node).getTexCoordRefBuffer(set);
/* 450 */               if (BufferWrapper.getBufferType(buf) == 0) {
/* 451 */                 out.writeInt(0);
/*     */               } else {
/* 453 */                 out.writeInt(2);
/* 454 */                 FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 455 */                 float[] floats = new float[bb.limit()];
/* 456 */                 bb.position(0);
/* 457 */                 bb.get(floats);
/* 458 */                 writeFloatArray(out, floats);
/*     */               }
/*     */             }
/* 461 */             else if (((GeometryArray)this.node).getTexCoordRefFloat(set) != null) {
/* 462 */               out.writeInt(2);
View Full Code Here

/* 669 */               break;
/*     */             case 3:
/* 671 */               double[] doubles = readDoubleArray(in);
/* 672 */               ByteBufferWrapper b = ByteBufferWrapper.allocateDirect(doubles.length * 4);
/*     */
/* 674 */               DoubleBufferWrapper f = b.order(ByteOrderWrapper.nativeOrder()).asDoubleBuffer();
/*     */
/* 676 */               f.put(doubles);
/* 677 */               ((GeometryArray)this.node).setCoordRefBuffer(f.getJ3DBuffer());
/*     */             }
/*     */           }
/*     */           else
/*     */           {
/* 682 */             switch (in.readInt()) {
/*     */             case 7:
/* 684 */               float[] data = readFloatArray(in);
/* 685 */               Point3f[] coords = new Point3f[data.length / 3];
/* 686 */               for (int i = 0; i < coords.length; i++) {
/* 687 */                 coords[i].x = data[(i * 3 + 0)];
/* 688 */                 coords[i].y = data[(i * 3 + 1)];
/* 689 */                 coords[i].z = data[(i * 3 + 2)];
/*     */               }
/* 691 */               ((GeometryArray)this.node).setCoordRef3f(coords);
/*     */
/* 693 */               break;
/*     */             case 10:
/* 695 */               double[] data = readDoubleArray(in);
/* 696 */               Point3d[] coords = new Point3d[data.length / 3];
/* 697 */               for (int i = 0; i < coords.length; i++) {
/* 698 */                 coords[i].x = data[(i * 3 + 0)];
/* 699 */                 coords[i].y = data[(i * 3 + 1)];
/* 700 */                 coords[i].z = data[(i * 3 + 2)];
/*     */               }
/* 702 */               ((GeometryArray)this.node).setCoordRef3d(coords);
/*     */
/* 704 */               break;
/*     */             case 2:
/* 706 */               ((GeometryArray)this.node).setCoordRefFloat(readFloatArray(in));
/* 707 */               break;
/*     */             case 3:
/* 709 */               ((GeometryArray)this.node).setCoordRefDouble(readDoubleArray(in));
/*     */             case 4:
/*     */             case 5:
/*     */             case 6:
/*     */             case 8:
/*     */             case 9: }
/*     */           } } else { float[] points = readFloatArray(in);
/* 716 */           ((GeometryArray)this.node).setCoordinates(0, points);
/*     */         }
/*     */       }
/*     */
/* 720 */       if ((this.vertexFormat & 0x2) != 0) {
/* 721 */         if (byRef) {
/* 722 */           if (!(this.node instanceof IndexedGeometryArray)) {
/* 723 */             ((GeometryArray)this.node).setInitialNormalIndex(in.readInt());
/*     */           }
/*     */
/* 726 */           if (nio) {
/* 727 */             if (in.readInt() == 2) {
/* 728 */               float[] floats = readFloatArray(in);
/* 729 */               ByteBufferWrapper b = ByteBufferWrapper.allocateDirect(floats.length * 4);
/*     */
/* 731 */               FloatBufferWrapper f = b.order(ByteOrderWrapper.nativeOrder()).asFloatBuffer();
/*     */
/* 733 */               f.put(floats);
/* 734 */               ((GeometryArray)this.node).setNormalRefBuffer(f.getJ3DBuffer());
/*     */             }
/*     */           }
/* 737 */           else switch (in.readInt()) {
/*     */             case 7:
/* 739 */               float[] data = readFloatArray(in);
/* 740 */               Vector3f[] norms = new Vector3f[data.length / 3];
/* 741 */               for (int i = 0; i < norms.length; i++) {
/* 742 */                 norms[i].x = data[(i * 3 + 0)];
/* 743 */                 norms[i].y = data[(i * 3 + 1)];
/* 744 */                 norms[i].z = data[(i * 3 + 2)];
/*     */               }
/* 746 */               ((GeometryArray)this.node).setNormalRef3f(norms);
/*     */
/* 748 */               break;
/*     */             case 2:
/* 750 */               ((GeometryArray)this.node).setNormalRefFloat(readFloatArray(in));
/*     */             }
/*     */
/*     */         }
/*     */         else
/*     */         {
/* 756 */           float[] normals = readFloatArray(in);
/* 757 */           ((GeometryArray)this.node).setNormals(0, normals);
/*     */         }
/*     */       }
/*     */
/* 761 */       if (((this.vertexFormat & 0x20) != 0) || ((this.vertexFormat & 0x40) != 0) || ((this.vertexFormat & 0x400) != 0))
/*     */       {
/* 764 */         if (byRef) {
/* 765 */           for (int set = 0; set < this.texCoordSetCount; set++) {
/* 766 */             if (!(this.node instanceof IndexedGeometryArray)) {
/* 767 */               ((GeometryArray)this.node).setInitialTexCoordIndex(set, in.readInt());
/*     */             }
/*     */
/* 770 */             if (nio) {
/* 771 */               if (in.readInt() == 2) {
/* 772 */                 float[] floats = readFloatArray(in);
/* 773 */                 ByteBufferWrapper b = ByteBufferWrapper.allocateDirect(floats.length * 4);
/*     */
/* 775 */                 FloatBufferWrapper f = b.order(ByteOrderWrapper.nativeOrder()).asFloatBuffer();
/*     */
/* 777 */                 f.put(floats);
/* 778 */                 ((GeometryArray)this.node).setTexCoordRefBuffer(set, f.getJ3DBuffer());
/*     */               }
/*     */             }
/*     */             else {
/* 782 */               switch (in.readInt()) {
/*     */               case 6:
View Full Code Here

/* 188 */       break;
/*     */     case 8:
/* 190 */       DoubleBuffer doubleBuffer = ((DoubleBuffer)buffer).asReadOnlyBuffer();
/*     */
/* 192 */       doubleBuffer.rewind();
/* 193 */       this.bufferImpl = new DoubleBufferWrapper(doubleBuffer);
/* 194 */       break;
/*     */     default:
/* 196 */       this.bufferImpl = null;
/*     */     }
/*     */   }
View Full Code Here

/*      */       case 3:
/* 1682 */         this.positionsF = new FloatBufferWrapper(buffer);
/*      */
/* 1684 */         break;
/*      */       case 4:
/* 1686 */         this.positionsD = new DoubleBufferWrapper(buffer);
/*      */
/* 1688 */         break;
/*      */       default:
/* 1690 */         throw new IllegalArgumentException("\nposition buffer must be FloatBuffer or DoubleBuffer");
/*      */       }
View Full Code Here

TOP

Related Classes of com.sun.j3d.internal.DoubleBufferWrapper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.