SetLODsCommand.cpp dnacalib/commands/SetLODsCommand.h dnacalib/CommandImplBase.h dnacalib/dna/DNA.h dnacalib/dna/DNACalibDNAReaderImpl.h dnacalib/types/Aliases.h dnac::SetLODsCommand::Impl dnac //CopyrightEpicGames,Inc.AllRightsReserved. #include"dnacalib/commands/SetLODsCommand.h" #include"dnacalib/CommandImplBase.h" #include"dnacalib/dna/DNA.h" #include"dnacalib/dna/DNACalibDNAReaderImpl.h" #include"dnacalib/types/Aliases.h" namespacednac{ classSetLODsCommand::Impl:publicCommandImplBase<Impl>{ private: usingSuper=CommandImplBase<Impl>; public: explicitImpl(MemoryResource*memRes_): Super{memRes_}, lods{memRes_}{ } voidsetLODs(ConstArrayView<std::uint16_t>lods_){ lods.assign(lods_.begin(),lods_.end()); } voidrun(DNACalibDNAReaderImpl*output){ autobuffer=makeScoped<MemoryStream>(getMemoryResource()); autowriter=makeScoped<BinaryStreamWriter>(buffer.get(),getMemoryResource()); writer->setFrom(output); writer->write(); buffer->seek(0ul); autoreader=makeScoped<BinaryStreamReader>(buffer.get(), DataLayer::All, lods.data(), static_cast<std::uint16_t>(lods.size()), getMemoryResource()); reader->read(); output->setFrom(reader.get()); } private: Vector<std::uint16_t>lods; }; SetLODsCommand::SetLODsCommand(MemoryResource*memRes):pImpl{makeScoped<Impl>(memRes)}{ } SetLODsCommand::SetLODsCommand(ConstArrayView<std::uint16_t>lods,MemoryResource*memRes): pImpl{makeScoped<Impl>(memRes)}{ pImpl->setLODs(lods); } SetLODsCommand::~SetLODsCommand()=default; SetLODsCommand::SetLODsCommand(SetLODsCommand&&)=default; SetLODsCommand&SetLODsCommand::operator=(SetLODsCommand&&)=default; voidSetLODsCommand::setLODs(ConstArrayView<std::uint16_t>lods){ pImpl->setLODs(lods); } voidSetLODsCommand::run(DNACalibDNAReader*output){ pImpl->run(static_cast<DNACalibDNAReaderImpl*>(output)); } }//namespacednac