/** * @return A module resolver */ public static SMFFilterCommandModuleResolverType create() { SortedMap<String, SMFFilterCommandModuleType> modules = TreeMap.empty(); final ServiceLoader<SMFFilterCommandModuleProviderType> providers = ServiceLoader.load(SMFFilterCommandModuleProviderType.class); final Iterator<SMFFilterCommandModuleProviderType> iter = providers.iterator(); while (iter.hasNext()) { final SMFFilterCommandModuleProviderType provider = iter.next(); final SortedMap<String, SMFFilterCommandModuleType> available = provider.available(); for (final String name : available.keySet()) { final SMFFilterCommandModuleType module = available.get(name).get(); if (modules.containsKey(name)) { LOG.warn("multiple modules with the same name: {}", name); } if (LOG.isDebugEnabled()) { LOG.debug("registered module {} via provider {}", name, provider); } modules = modules.put(name, module); } } return new SMFFilterCommandModuleResolver(modules); }
@Override public Optional<SMFParserEventsDataAttributeValuesType> onDataAttributeStart( final SMFAttribute attribute) { TreeMap<Integer, SMFByteBufferAttributePacker> packers = TreeMap.empty(); final SMFAttributeName name = attribute.name(); for (final Tuple2<Integer, SMFByteBufferPackingConfiguration> p : this.config) { final Integer id = p._1; final SMFByteBufferPackingConfiguration bc = p._2; final SortedMap<SMFAttributeName, SMFByteBufferPackedAttribute> by_name = bc.packedAttributesByName(); if (by_name.containsKey(name)) { final ByteBuffer b = this.attr_buffers.get(id).get(); final SMFByteBufferPackedAttribute pa = by_name.get(name).get(); final SMFByteBufferAttributePacker packer = new SMFByteBufferAttributePacker( this, b, bc, pa, this.header.vertexCount()); packers = packers.put(id, packer); } } this.attr_packers = packers; return Optional.of(this); }
/** * Check preconditions for the type. */ @Value.Check default void checkPreconditions() { HashMap<Integer, SMFByteBufferPackedAttribute> m = HashMap.empty(); final SortedMap<Integer, SMFByteBufferPackedAttribute> by_offset = this.packedAttributesByOffset(); for (final Integer offset : by_offset.keySet()) { Preconditions.checkPreconditionI( offset.intValue(), !m.containsKey(offset), i -> "All attribute offsets must be unique"); m = m.put(offset, by_offset.get(offset).get()); } } }
this.header.attributesByName().get(name); if (attribute_opt.isDefined()) { final SMFAttribute attribute = attribute_opt.get();
@Override public void onFinish() { if (this.errors.isEmpty()) { Invariants.checkInvariantI( this.attr_buffers.size(), this.attr_buffers.size() == this.config.size(), x -> "Must have correct number of buffers"); final SMFByteBufferPackedMesh.Builder mb = SMFByteBufferPackedMesh.builder(); for (final Tuple2<Integer, ByteBuffer> p : this.attr_buffers) { mb.addAttributeSets(SMFByteBufferPackedAttributeSet.of( p._1.intValue(), this.config.get(p._1).get(), p._2)); } if (this.tri_buffer != null) { final SMFTriangles triangles = this.header.triangles(); mb.setTriangles(SMFByteBufferPackedTriangles.of( this.tri_buffer, triangles.triangleCount(), Math.toIntExact(triangles.triangleIndexSizeBits()))); } mb.setHeader(this.header); this.mesh = mb.build(); } }
final SMFSchemaAttribute attr_schema = required_by_name.get(name).get(); error_x = checkComponentType(error_x, name, attr_schema, attribute); error_x = checkComponentSize(error_x, name, attr_schema, attribute); error_x = checkComponentCount(error_x, name, attr_schema, attribute); } else if (optional_by_name.containsKey(name)) { final SMFSchemaAttribute attr_schema = optional_by_name.get(name).get(); error_x = checkComponentType(error_x, name, attr_schema, attribute); error_x = checkComponentSize(error_x, name, attr_schema, attribute);
try { final SMFAttribute original = by_name.get(this.attribute).get(); final SMFAttribute resampled = original.withComponentSizeBits(this.size);