/** * Create the {@link BufferViewModel} instances */ private void createBufferViewModels() { Map<String, BufferView> bufferViews = Optionals.of(gltf.getBufferViews()); for (BufferView bufferView : bufferViews.values()) { DefaultBufferViewModel bufferViewModel = createBufferViewModel(bufferView); bufferViewModels.add(bufferViewModel); } }
/** * Initialize the {@link BufferViewModel} instances */ private void initBufferViewModels() { Map<String, BufferView> bufferViews = Optionals.of(gltf.getBufferViews()); for (Entry<String, BufferView> entry : bufferViews.entrySet()) { String bufferViewId = entry.getKey(); BufferView bufferView = entry.getValue(); String bufferId = bufferView.getBuffer(); BufferModel bufferModel = get("buffers", bufferId, bufferModels); DefaultBufferViewModel bufferViewModel = get("bufferViews", bufferViewId, bufferViewModels); bufferViewModel.setName(bufferView.getName()); bufferViewModel.setBufferModel(bufferModel); } }
/** * Validate the {@link GlTF#getBufferViews()} * * @param currentContext The optional {@link ValidatorContext} of the glTF * @return The {@link ValidatorResult} */ private ValidatorResult validateBufferViews(ValidatorContext currentContext) { ValidatorContext context = new ValidatorContext(currentContext); ValidatorResult validatorResult = new ValidatorResult(); validatorResult.add(validateElements( getGltf().getBufferViews(), "bufferViews", true, context, bufferViewValidator::validateBufferView)); if (validatorResult.hasErrors()) { return validatorResult; } return validatorResult; }
copy(outputGltf.getBufferViews()); Map<String, BufferView> newBufferViews = new LinkedHashMap<String, BufferView>();
getGltf().getBufferViews(), bufferViewId, context)); if (validatorResult.hasErrors()) BufferView bufferView = getGltf().getBufferViews().get(bufferViewId);
getGltf().getBufferViews(), bufferViewId, context)); if (validatorResult.hasErrors()) int elementSizeInBytes = numComponents * componentSizeInBytes; BufferView bufferView = getGltf().getBufferViews().get(bufferViewId); int accessorByteOffset = accessor.getByteOffset(); int totalByteOffset = bufferView.getByteOffset() + accessorByteOffset;
/** * Compute the {@link IndexMappingSet} for the given glTF instance. * The {@link IndexMappingSet} will contain index mappings for all * top-level dictionaries of the given glTF. * * @param gltf The glTF * @return The {@link IndexMappingSet} */ static IndexMappingSet create(GlTF gltf) { IndexMappingSet indexMappingSet = new IndexMappingSet(); indexMappingSet.generate("accessors", gltf.getAccessors()); indexMappingSet.generate("animations", gltf.getAnimations()); indexMappingSet.generate("buffers", gltf.getBuffers()); indexMappingSet.generate("bufferViews", gltf.getBufferViews()); indexMappingSet.generate("cameras", gltf.getCameras()); indexMappingSet.generate("images", gltf.getImages()); indexMappingSet.generate("materials", gltf.getMaterials()); indexMappingSet.generate("meshes", gltf.getMeshes()); indexMappingSet.generate("nodes", gltf.getNodes()); indexMappingSet.generate("programs", gltf.getPrograms()); indexMappingSet.generate("samplers", gltf.getSamplers()); indexMappingSet.generate("scenes", gltf.getScenes()); indexMappingSet.generate("shaders", gltf.getShaders()); indexMappingSet.generate("skins", gltf.getSkins()); indexMappingSet.generate("techniques", gltf.getTechniques()); indexMappingSet.generate("textures", gltf.getTextures()); return indexMappingSet; }