Package javax.media.j3d

Examples of javax.media.j3d.J3DBuffer


/* 150 */     return this;
/*     */   }
/*     */
/*     */   public J3DBuffer getJ3DBuffer()
/*     */   {
/* 158 */     return new J3DBuffer(this.buffer);
/*     */   }
View Full Code Here


/* 105 */     return this;
/*     */   }
/*     */
/*     */   public J3DBuffer getJ3DBuffer()
/*     */   {
/* 113 */     return new J3DBuffer(this.buffer);
/*     */   }
View Full Code Here

/* 105 */     return this;
/*     */   }
/*     */
/*     */   public J3DBuffer getJ3DBuffer()
/*     */   {
/* 113 */     return new J3DBuffer(this.buffer);
/*     */   }
View Full Code Here

/* 164 */       if (!(geomArray instanceof IndexedGeometryArray))
/* 165 */         initial = geomArray.getInitialVertexIndex();
/* 166 */       else initial = 0;
/*     */       float[] d;
/* 169 */       if ((vertexFormat & 0x800) != 0) {
/* 170 */         J3DBuffer b = geomArray.getInterleavedVertexBuffer();
/* 171 */         FloatBufferWrapper w = new FloatBufferWrapper(b);
/* 172 */         float[] d = new float[w.limit()];
/* 173 */         w.position(0);
/* 174 */         w.get(d); } else {
/* 175 */         d = geomArray.getInterleavedVertices();
/*     */       }
/* 177 */       int offset = 0;
/* 178 */       if ((vertexFormat & 0x20) != 0) {
/* 179 */         geomInfo.setTextureCoordinateParams(texSets, 2);
/* 180 */         int[] map = new int[geomArray.getTexCoordSetMapLength()];
/* 181 */         geomArray.getTexCoordSetMap(map);
/* 182 */         geomInfo.setTexCoordSetMap(map);
/* 183 */         for (int i = 0; i < texSets; i++) {
/* 184 */           TexCoord2f[] tex = new TexCoord2f[valid];
/* 185 */           for (int j = 0; j < valid; j++) {
/* 186 */             tex[j] = new TexCoord2f(d[(wpv * (j + initial) + offset)], d[(wpv * (j + initial) + offset + 1)]);
/*     */           }
/*     */
/* 189 */           geomInfo.setTextureCoordinates(i, tex);
/* 190 */           offset += 2;
/*     */         }
/* 192 */       } else if ((vertexFormat & 0x40) != 0) {
/* 193 */         geomInfo.setTextureCoordinateParams(texSets, 3);
/* 194 */         int[] map = new int[geomArray.getTexCoordSetMapLength()];
/* 195 */         geomArray.getTexCoordSetMap(map);
/* 196 */         geomInfo.setTexCoordSetMap(map);
/* 197 */         for (int i = 0; i < texSets; i++) {
/* 198 */           TexCoord3f[] tex = new TexCoord3f[valid];
/* 199 */           for (int j = 0; j < valid; j++) {
/* 200 */             tex[j] = new TexCoord3f(d[(wpv * (j + initial) + offset)], d[(wpv * (j + initial) + offset + 1)], d[(wpv * (j + initial) + offset + 2)]);
/*     */           }
/*     */
/* 204 */           geomInfo.setTextureCoordinates(i, tex);
/* 205 */           offset += 3;
/*     */         }
/* 207 */       } else if ((vertexFormat & 0x400) != 0) {
/* 208 */         geomInfo.setTextureCoordinateParams(texSets, 4);
/* 209 */         int[] map = new int[geomArray.getTexCoordSetMapLength()];
/* 210 */         geomArray.getTexCoordSetMap(map);
/* 211 */         geomInfo.setTexCoordSetMap(map);
/* 212 */         for (int i = 0; i < texSets; i++) {
/* 213 */           TexCoord4f[] tex = new TexCoord4f[valid];
/* 214 */           for (int j = 0; j < valid; j++) {
/* 215 */             tex[j] = new TexCoord4f(d[(wpv * (j + initial) + offset)], d[(wpv * (j + initial) + offset + 1)], d[(wpv * (j + initial) + offset + 2)], d[(wpv * (j + initial) + offset + 3)]);
/*     */           }
/*     */
/* 220 */           geomInfo.setTextureCoordinates(i, tex);
/* 221 */           offset += 4;
/*     */         }
/*     */       }
/*     */
/* 225 */       if ((vertexFormat & 0xC) == 12) {
/* 226 */         Color4f[] color = new Color4f[valid];
/* 227 */         for (int i = 0; i < valid; i++) {
/* 228 */           color[i] = new Color4f(d[(wpv * (i + initial) + offset)], d[(wpv * (i + initial) + offset + 1)], d[(wpv * (i + initial) + offset + 2)], d[(wpv * (i + initial) + offset + 3)]);
/*     */         }
/*     */
/* 233 */         geomInfo.setColors(color);
/* 234 */         offset += 4;
/* 235 */       } else if ((vertexFormat & 0x4) != 0) {
/* 236 */         Color3f[] color = new Color3f[valid];
/* 237 */         for (int i = 0; i < valid; i++) {
/* 238 */           color[i] = new Color3f(d[(wpv * (i + initial) + offset)], d[(wpv * (i + initial) + offset + 1)], d[(wpv * (i + initial) + offset + 2)]);
/*     */         }
/*     */
/* 242 */         geomInfo.setColors(color);
/* 243 */         offset += 3;
/*     */       }
/*     */
/* 246 */       if ((vertexFormat & 0x2) != 0) {
/* 247 */         Vector3f[] normals = new Vector3f[valid];
/* 248 */         for (int i = 0; i < valid; i++) {
/* 249 */           normals[i] = new Vector3f(d[(wpv * (i + initial) + offset)], d[(wpv * (i + initial) + offset + 1)], d[(wpv * (i + initial) + offset + 2)]);
/*     */         }
/*     */
/* 253 */         geomInfo.setNormals(normals);
/* 254 */         offset += 3;
/*     */       }
/*     */
/* 257 */       Point3f[] coords = new Point3f[valid];
/* 258 */       for (int i = 0; i < valid; i++) {
/* 259 */         coords[i] = new Point3f(d[(wpv * (i + initial) + offset)], d[(wpv * (i + initial) + offset + 1)], d[(wpv * (i + initial) + offset + 2)]);
/*     */       }
/*     */
/* 263 */       geomInfo.setCoordinates(coords);
/*     */     }
/*     */     else {
/* 266 */       boolean byRef = (vertexFormat & 0x80) != 0;
/* 267 */       boolean nio = (vertexFormat & 0x800) != 0;
/*     */
/* 269 */       Point3f[] coords = null;
/* 270 */       if (byRef)
/*     */       {
/*     */         int initial;
/*     */         int initial;
/* 273 */         if (!(geomArray instanceof IndexedGeometryArray))
/* 274 */           initial = geomArray.getInitialCoordIndex();
/* 275 */         else initial = 0;
/*     */         int i;
/* 277 */         if (nio) {
/* 278 */           J3DBuffer buf = geomArray.getCoordRefBuffer();
/*     */
/* 280 */           switch (BufferWrapper.getBufferType(buf))
/*     */           {
/*     */           case 3:
/* 283 */             FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 284 */             float[] c = new float[valid * 3];
/* 285 */             bb.position(initial * 3);
/* 286 */             bb.get(c, 0, valid * 3);
/* 287 */             coords = new Point3f[valid];
/* 288 */             for (i = 0; i < valid; i++) {
/* 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);
 
View Full Code Here

/* 114 */           if (!(this.node instanceof IndexedGeometryArray)) {
/* 115 */             out.writeInt(((GeometryArray)this.node).getInitialColorIndex());
/*     */           }
/*     */
/* 118 */           if (nio) {
/* 119 */             J3DBuffer buf = ((GeometryArray)this.node).getColorRefBuffer();
/* 120 */             switch (BufferWrapper.getBufferType(buf)) {
/*     */             case 2:
/* 122 */               out.writeInt(1);
/* 123 */               ByteBufferWrapper bb = new ByteBufferWrapper(buf);
/* 124 */               byte[] bytes = new byte[bb.limit()];
/* 125 */               bb.position(0);
/* 126 */               bb.get(bytes);
/* 127 */               out.writeInt(bytes.length);
/* 128 */               out.write(bytes);
/*     */
/* 130 */               break;
/*     */             case 3:
/* 132 */               out.writeInt(2);
/* 133 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 134 */               float[] floats = new float[bb.limit()];
/* 135 */               bb.position(0);
/* 136 */               bb.get(floats);
/* 137 */               writeFloatArray(out, floats);
/*     */
/* 139 */               break;
/*     */             case 0:
/* 141 */               out.writeInt(0);
/*     */             case 1:
/*     */             }
/*     */           }
/* 145 */           else if (((GeometryArray)this.node).getColorRef4f() != null) {
/* 146 */             out.writeInt(8);
/* 147 */             Color4f[] colors = ((GeometryArray)this.node).getColorRef4f();
/* 148 */             float[] data = new float[colors.length * 4];
/* 149 */             for (int i = 0; i < colors.length; i++) {
/* 150 */               data[(i * 4 + 0)] = colors[i].x;
/* 151 */               data[(i * 4 + 1)] = colors[i].y;
/* 152 */               data[(i * 4 + 2)] = colors[i].z;
/* 153 */               data[(i * 4 + 3)] = colors[i].w;
/*     */             }
/* 155 */             writeFloatArray(out, data);
/* 156 */           } else if (((GeometryArray)this.node).getColorRefFloat() != null) {
/* 157 */             out.writeInt(2);
/* 158 */             writeFloatArray(out, ((GeometryArray)this.node).getColorRefFloat());
/* 159 */           } else if (((GeometryArray)this.node).getColorRefByte() != null) {
/* 160 */             out.writeInt(1);
/* 161 */             byte[] colors = ((GeometryArray)this.node).getColorRefByte();
/* 162 */             out.writeInt(colors.length);
/* 163 */             out.write(colors);
/* 164 */           } else if (((GeometryArray)this.node).getColorRef4b() != null) {
/* 165 */             out.writeInt(5);
/* 166 */             Color4b[] colors = ((GeometryArray)this.node).getColorRef4b();
/* 167 */             out.writeInt(colors.length);
/* 168 */             byte[] data = new byte[colors.length * 4];
/* 169 */             for (int i = 0; i < colors.length; i++) {
/* 170 */               data[(i * 4 + 0)] = colors[i].x;
/* 171 */               data[(i * 4 + 1)] = colors[i].y;
/* 172 */               data[(i * 4 + 2)] = colors[i].z;
/* 173 */               data[(i * 4 + 3)] = colors[i].w;
/*     */             }
/* 175 */             out.write(data); } else {
/* 176 */             out.writeInt(0);
/*     */           }
/*     */         } else { byte[] colors = new byte[this.vertexCount * 4];
/* 179 */           ((GeometryArray)this.node).getColors(0, colors);
/* 180 */           out.write(colors); }
/*     */       }
/* 182 */       else if ((this.vertexFormat & 0x4) == 4)
/*     */       {
/* 184 */         if (byRef) {
/* 185 */           if (!(this.node instanceof IndexedGeometryArray)) {
/* 186 */             out.writeInt(((GeometryArray)this.node).getInitialColorIndex());
/*     */           }
/*     */
/* 189 */           if (nio) {
/* 190 */             J3DBuffer buf = ((GeometryArray)this.node).getColorRefBuffer();
/* 191 */             switch (BufferWrapper.getBufferType(buf)) {
/*     */             case 2:
/* 193 */               out.writeInt(1);
/* 194 */               ByteBufferWrapper bb = new ByteBufferWrapper(buf);
/* 195 */               byte[] bytes = new byte[bb.limit()];
/* 196 */               bb.position(0);
/* 197 */               bb.get(bytes);
/* 198 */               out.writeInt(bytes.length);
/* 199 */               out.write(bytes);
/*     */
/* 201 */               break;
/*     */             case 3:
/* 203 */               out.writeInt(2);
/* 204 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 205 */               float[] floats = new float[bb.limit()];
/* 206 */               bb.position(0);
/* 207 */               bb.get(floats);
/* 208 */               writeFloatArray(out, floats);
/*     */
/* 210 */               break;
/*     */             case 0:
/* 212 */               out.writeInt(0);
/*     */             case 1:
/*     */             }
/*     */           }
/* 216 */           else if (((GeometryArray)this.node).getColorRef3f() != null) {
/* 217 */             out.writeInt(7);
/* 218 */             Color3f[] colors = ((GeometryArray)this.node).getColorRef3f();
/* 219 */             float[] data = new float[colors.length * 3];
/* 220 */             for (int i = 0; i < colors.length; i++) {
/* 221 */               data[(i * 3 + 0)] = colors[i].x;
/* 222 */               data[(i * 3 + 1)] = colors[i].y;
/* 223 */               data[(i * 3 + 2)] = colors[i].z;
/*     */             }
/* 225 */             writeFloatArray(out, data);
/* 226 */           } else if (((GeometryArray)this.node).getColorRefFloat() != null) {
/* 227 */             out.writeInt(2);
/* 228 */             writeFloatArray(out, ((GeometryArray)this.node).getColorRefFloat());
/* 229 */           } else if (((GeometryArray)this.node).getColorRefByte() != null) {
/* 230 */             out.writeInt(1);
/* 231 */             byte[] colors = ((GeometryArray)this.node).getColorRefByte();
/* 232 */             out.writeInt(colors.length);
/* 233 */             out.write(colors);
/* 234 */           } else if (((GeometryArray)this.node).getColorRef3b() != null) {
/* 235 */             out.writeInt(4);
/* 236 */             Color3b[] colors = ((GeometryArray)this.node).getColorRef3b();
/* 237 */             out.writeInt(colors.length);
/* 238 */             byte[] data = new byte[colors.length * 3];
/* 239 */             for (int i = 0; i < colors.length; i++) {
/* 240 */               data[(i * 3 + 0)] = colors[i].x;
/* 241 */               data[(i * 3 + 1)] = colors[i].y;
/* 242 */               data[(i * 3 + 2)] = colors[i].z;
/*     */             }
/* 244 */             out.write(data); } else {
/* 245 */             out.writeInt(0);
/*     */           }
/*     */         } else { byte[] colors3 = new byte[this.vertexCount * 3];
/* 248 */           ((GeometryArray)this.node).getColors(0, colors3);
/* 249 */           out.write(colors3);
/*     */         }
/*     */
/*     */       }
/*     */
/* 254 */       if ((this.vertexFormat & 0x1) != 0)
/*     */       {
/* 256 */         if (byRef) {
/* 257 */           if (!(this.node instanceof IndexedGeometryArray)) {
/* 258 */             out.writeInt(((GeometryArray)this.node).getInitialCoordIndex());
/*     */           }
/*     */
/* 261 */           if (nio) {
/* 262 */             J3DBuffer buf = ((GeometryArray)this.node).getCoordRefBuffer();
/* 263 */             switch (BufferWrapper.getBufferType(buf)) {
/*     */             case 3:
/* 265 */               out.writeInt(2);
/* 266 */               FloatBufferWrapper bb = new FloatBufferWrapper(buf);
/* 267 */               float[] floats = new float[bb.limit()];
/* 268 */               bb.position(0);
/* 269 */               bb.get(floats);
/* 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);
View Full Code Here

/* 1672 */     int initialNormalIndex = 0;
/* 1673 */     int initialColorIndex = 0;
/*      */
/*      */     ByRefGeometryNIO(GeometryArray ga)
/*      */     {
/* 1677 */       J3DBuffer buffer = ga.getCoordRefBuffer();
/* 1678 */       this.initialPositionIndex = ga.getInitialCoordIndex();
/*      */
/* 1680 */       switch (BufferWrapper.getBufferType(buffer)) {
/*      */       case 3:
/* 1682 */         this.positionsF = new FloatBufferWrapper(buffer);
View Full Code Here

/*      */   {
/* 1448 */     FloatBufferWrapper fbw = null;
/*      */
/*      */     InterleavedGeometryNIO(GeometryArray ga) {
/* 1451 */       super(ga);
/* 1452 */       J3DBuffer buffer = ga.getInterleavedVertexBuffer();
/* 1453 */       if (BufferWrapper.getBufferType(buffer) == 3)
/*      */       {
/* 1455 */         this.fbw = new FloatBufferWrapper(buffer);
/*      */       }
/*      */       else
View Full Code Here

TOP

Related Classes of javax.media.j3d.J3DBuffer

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.