/** * Generate a new set of points for an indexed triangle fan array. We * build the strip from the existing points, and there's no need to * re-order the points for the indexes this time. As for the simple fan, * we use the first index, the lower-right corner as the apex for the fan. * * @param data The data to shape the calculations on * @throws InvalidArraySizeException The array is not big enough to contain * the requested geometry */ private void indexedTriangleFans(GeometryData data) throws InvalidArraySizeException { generateIndexedCoordinates(data); if((data.geometryComponents & GeometryData.NORMAL_DATA) != 0) generateIndexedNormals(data); if((data.geometryComponents & GeometryData.TEXTURE_2D_DATA) != 0) generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data); // now let's do the index list }
/** * Generate a new set of points for an unindexed quad array * * @param data The data to shape the calculations on * @throws InvalidArraySizeException The array is not big enough to contain * the requested geometry */ private void unindexedQuads(GeometryData data) throws InvalidArraySizeException { generateUnindexedQuadCoordinates(data); if((data.geometryComponents & GeometryData.NORMAL_DATA) != 0) generateUnindexedQuadNormals(data); if((data.geometryComponents & GeometryData.TEXTURE_2D_DATA) != 0) generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data); }
/** * Generate a new set of points for an unindexed quad array * * @param data The data to shape the calculations on * @throws InvalidArraySizeException The array is not big enough to contain * the requested geometry */ private void unindexedTriangles(GeometryData data) throws InvalidArraySizeException { generateUnindexedTriCoordinates(data); if((data.geometryComponents & GeometryData.NORMAL_DATA) != 0) generateUnindexedTriNormals(data); if((data.geometryComponents & GeometryData.TEXTURE_2D_DATA) != 0) generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data); }
/** * Generate a new set of points for a triangle strip array. Each side is a * strip of two faces. * * @param data The data to shape the calculations on * @throws InvalidArraySizeException The array is not big enough to contain * the requested geometry */ private void triangleStrips(GeometryData data) throws InvalidArraySizeException { generateUnindexedTriStripCoordinates(data); if((data.geometryComponents & GeometryData.NORMAL_DATA) != 0) generateUnindexedTriStripNormals(data); if((data.geometryComponents & GeometryData.TEXTURE_2D_DATA) != 0) generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data); int num_strips = innerFacetCount * loopCount; if(data.stripCounts == null) data.stripCounts = new int[num_strips]; else if(data.stripCounts.length < num_strips) throw new InvalidArraySizeException("Strip counts", data.stripCounts.length, num_strips); int strip_length = (outerFacetCount + 1) << 1; int[] stripCounts = data.stripCounts; for(int i = num_strips; --i >= 0; ) stripCounts[i] = strip_length; }
throws InvalidArraySizeException int vtx_cnt = getVertexCount(data); data.vertexCount = vtx_cnt; generateShape();
norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates,
data.vertexCount = vtx_cnt; generateShape();
throws InvalidArraySizeException int vtx_cnt = getVertexCount(data); data.vertexCount = vtx_cnt; generateShape();
norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, normals[count++] = (float)norm.z; norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, normals[count + 8] = (float)norm.z; norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, norm = createRadialNormal(data.coordinates, count, oradiusCoordinates,
data.vertexCount = vtx_cnt; generateShape();
throws InvalidArraySizeException generateIndexedCoordinates(data); generateIndexedNormals(data); generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data);
norm = createRadialNormal(data.coordinates, count, oradiusCoordinates, normals[count++] = (float)norm.z; norm = createRadialNormal(data.coordinates, count, oradiusCoordinates,
throws InvalidArraySizeException generateIndexedCoordinates(data); generateIndexedNormals(data); generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data);
norm = createRadialNormal(data.coordinates, count, oradiusCoordinates,
throws InvalidArraySizeException generateIndexedCoordinates(data); generateIndexedNormals(data); generateTriTexture2D(data); else if((data.geometryComponents & GeometryData.TEXTURE_3D_DATA) != 0) generateTriTexture3D(data);