public float get( int index ) { synchronized( mutex ) { return list.get( index ); } } public float set( int index, float element) {
@Override public Float get( int index ) { float value = list.get( index ); if ( value == list.getNoEntryValue() ) return null; else return Float.valueOf( value ); }
public float get( int index ) { return list.get( index ); } public int indexOf( float o ) { return list.indexOf( o ); }
@Override public Float get( int index ) { float value = list.get( index ); if ( value == list.getNoEntryValue() ) return null; else return Float.valueOf( value ); }
/** * Creates a new AABB that contains the vertices as represented by a {@link TFloatList}. * * @param vertices The vertices to encompass. It is assumed that the X, Y, Z components of each * vertex are stored consecutively in the {@link TFloatList}. * * For the {@code i}th vertex in the list, the X, Y, and Z components * are stored at indices {@code 3 * i}, {@code 3 * i + 1}, and * {@code 3 * i + 2} respectively. * * @return The created AABB. */ public static AABB createEncompasing(TFloatList vertices) { int vertexCount = vertices.size() / 3; if (vertexCount == 0) { return AABB.createEmpty(); } Vector3f min = new Vector3f(vertices.get(0), vertices.get(1), vertices.get(2)); Vector3f max = new Vector3f(vertices.get(0), vertices.get(1), vertices.get(2)); for (int index = 1; index < vertexCount; ++index) { min.x = Math.min(min.x, vertices.get(3 * index)); max.x = Math.max(max.x, vertices.get(3 * index)); min.y = Math.min(min.y, vertices.get(3 * index + 1)); max.y = Math.max(max.y, vertices.get(3 * index + 1)); min.z = Math.min(min.z, vertices.get(3 * index + 2)); max.z = Math.max(max.z, vertices.get(3 * index + 2)); } return AABB.createMinMax(min, max); }
@Override public Float get( int index ) { float value = list.get( index ); if ( value == list.getNoEntryValue() ) return null; else return Float.valueOf( value ); }
@Override public Vector4f deserialize(PersistedData data, DeserializationContext context) { if (data.isArray()) { PersistedDataArray dataArray = data.getAsArray(); if (dataArray.isNumberArray() && dataArray.size() > 3) { TFloatList floats = dataArray.getAsFloatArray(); return new Vector4f(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); } } return null; } }
@Override public Float get( int index ) { float value = list.get( index ); if ( value == list.getNoEntryValue() ) return null; else return Float.valueOf( value ); }
@Override public Quat4f deserialize(PersistedData data, DeserializationContext context) { if (data.isArray()) { PersistedDataArray dataArray = data.getAsArray(); if (dataArray.isNumberArray() && dataArray.size() > 3) { TFloatList floats = dataArray.getAsFloatArray(); return new Quat4f(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); } } return null; } }
@Override public Float get( int index ) { float value = list.get( index ); if ( value == list.getNoEntryValue() ) return null; else return Float.valueOf( value ); }
@Override public Vector3f deserialize(PersistedData data, DeserializationContext context) { if (data.isArray()) { PersistedDataArray dataArray = data.getAsArray(); if (dataArray.isNumberArray() && dataArray.size() > 2) { TFloatList floats = dataArray.getAsFloatArray(); return new Vector3f(floats.get(0), floats.get(1), floats.get(2)); } } return null; } }
@Override public Vector2f deserialize(PersistedData data, DeserializationContext context) { if (data.isArray()) { PersistedDataArray dataArray = data.getAsArray(); if (dataArray.isNumberArray() && dataArray.size() > 1) { TFloatList floats = dataArray.getAsFloatArray(); return new Vector2f(floats.get(0), floats.get(1)); } } return null; } }
for (int i = 0; i < elements.vertices.size(); i += 3, cTex += 2, cColor += 4, cFlags++) { Vector3f vertexPos = new Vector3f( elements.vertices.get(i), elements.vertices.get(i + 1), elements.vertices.get(i + 2)); elements.finalVertices.put(Float.floatToIntBits(elements.tex.get(cTex))); elements.finalVertices.put(Float.floatToIntBits(elements.tex.get(cTex + 1))); Vector3f normal = new Vector3f(elements.normals.get(i), elements.normals.get(i + 1), elements.normals.get(i + 2)); calcLightingValuesForVertexPos(chunkView, vertexPos, result, normal); elements.color.get(cColor), elements.color.get(cColor + 1), elements.color.get(cColor + 2), elements.color.get(cColor + 3)); elements.finalVertices.put(packedColor);
public SkeletalMeshDataBuilder addMesh(Bone bone, MeshData data) { TFloatList meshVertices = data.getVertices(); TIntList meshIndices = data.getIndices(); TFloatList texCoord0 = data.getTexCoord0(); int weightsStart = weights.size(); addBone(bone); for (int i = 0; i < meshVertices.size() / 3; i++) { float x = meshVertices.get(i * 3); float y = meshVertices.get(i * 3 + 1); float z = meshVertices.get(i * 3 + 2); Vector3f pos = new Vector3f(x, y, z); BoneWeight weight = new BoneWeight(pos, 1, bone.getIndex()); // TODO Meshes may contain normal vectors and we may copy them to the weight here // - but they are recalculated later on in either case. needs some rework addWeight(weight); vertexStartWeights.add(weightsStart + i); vertexWeightCounts.add(1); uvs.add(new Vector2f(texCoord0.get(i * 2), texCoord0.get(i * 2 + 1))); } for (int i = 0; i < meshIndices.size(); i++) { indices.add(meshIndices.get(i) + weightsStart); } return this; }
float originalVertexValue = loader.getVertices().get(i); float adjustedVertexValue = (float) (originalVertexValue * loader.getUnitsPerMeter()); verticesMesh.add(adjustedVertexValue);
@Override public float get( int index ) { synchronized( mutex ) { return list.get( index ); } } @Override
public float get( int index ) { synchronized( mutex ) { return list.get( index ); } } public float set( int index, float element) {
public float get( int index ) { synchronized( mutex ) { return list.get( index ); } } public float set( int index, float element) {