/** * Create the {@link SkinModel} instances */ private void createSkinModels() { Map<String, Skin> skins = Optionals.of(gltf.getSkins()); for (Entry<String, Skin> entry : skins.entrySet()) { Skin skin = entry.getValue(); float[] bindShapeMatrix = skin.getBindShapeMatrix(); skinModels.add(new DefaultSkinModel(bindShapeMatrix)); } }
/** * Initialize the {@link SkinModel} instances */ private void initSkinModels() { Map<String, String> jointNameToNodeIdMap = computeJointNameToNodeIdMap(gltf); Map<String, Skin> skins = Optionals.of(gltf.getSkins()); for (Entry<String, Skin> entry : skins.entrySet()) { String skinId = entry.getKey(); Skin skin = entry.getValue(); DefaultSkinModel skinModel = get("skins", skinId, skinModels); skinModel.setName(skin.getName()); List<String> jointNames = skin.getJointNames(); for (String jointName : jointNames) { String nodeId = jointNameToNodeIdMap.get(jointName); NodeModel nodeModel = get("nodes", nodeId, nodeModels); skinModel.addJoint(nodeModel); } String inverseBindMatricesId = skin.getInverseBindMatrices(); DefaultAccessorModel inverseBindMatrices = get("accessors", inverseBindMatricesId, accessorModels); skinModel.setInverseBindMatrices(inverseBindMatrices); } }
getGltf().getSkins(), skinId, context.with("node.skin"))); if (validatorResult.hasErrors())
/** * 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; }