@Override public AccessorData getAccessorData() { if (accessorData == null) { accessorData = AccessorDatas.create(this); } return accessorData; }
/** * Create the {@link AccessorData} for the given {@link AccessorModel} * * @param accessorModel The {@link AccessorModel} * @return The {@link AccessorData} */ public static AccessorData create(AccessorModel accessorModel) { BufferViewModel bufferViewModel = accessorModel.getBufferViewModel(); ByteBuffer bufferViewData = bufferViewModel.getBufferViewData(); return create(accessorModel, bufferViewData); }
/** * Create the {@link AccessorData} for the given * {@link AccessorSparseValues} * * @param accessorSparseValues The {@link AccessorSparseValues} * @param componentType The component type of the {@link Accessor} * @param numComponentsPerElement The number of components per element * of the {@link AccessorModel#getElementType() accessor element type} * @param count The count from the {@link AccessorSparse} * @return The {@link AccessorData} */ private AccessorData createSparseValuesAccessorData( AccessorSparseValues accessorSparseValues, int componentType, int numComponentsPerElement, int count) { Integer bufferViewIndex = accessorSparseValues.getBufferView(); BufferViewModel bufferViewModel = bufferViewModels.get(bufferViewIndex); ByteBuffer bufferViewData = bufferViewModel.getBufferViewData(); int byteOffset = Optionals.of(accessorSparseValues.getByteOffset(), 0); return AccessorDatas.create( componentType, bufferViewData, byteOffset, count, numComponentsPerElement, null); }
/** * Create the {@link AccessorData} for the given * {@link AccessorSparseIndices} * * @param accessorSparseIndices The {@link AccessorSparseIndices} * @param count The count from the {@link AccessorSparse} * @return The {@link AccessorData} */ private AccessorData createSparseIndicesAccessorData( AccessorSparseIndices accessorSparseIndices, int count) { Integer componentType = accessorSparseIndices.getComponentType(); Integer bufferViewIndex = accessorSparseIndices.getBufferView(); BufferViewModel bufferViewModel = bufferViewModels.get(bufferViewIndex); ByteBuffer bufferViewData = bufferViewModel.getBufferViewData(); int byteOffset = Optionals.of(accessorSparseIndices.getByteOffset(), 0); return AccessorDatas.create( componentType, bufferViewData, byteOffset, count, 1, null); }
ByteBuffer baseBufferViewData = baseBufferViewModel.getBufferViewData(); AccessorData baseAccessorData = AccessorDatas.create( accessorModel, baseBufferViewData); AccessorData denseAccessorData = AccessorDatas.create(accessorModel, bufferData); substituteSparseAccessorData(accessor, accessorModel, denseAccessorData, baseAccessorData); AccessorDatas.create(accessorModel, bufferData); substituteSparseAccessorData(accessor, accessorModel, denseAccessorData, null);