- Added support for uploading and compressing GLB models using Draco in the backoffice. - Implemented commands for importing and re-compressing 3D models. - Updated model resource to handle 3D model uploads and validations. - Introduced a new script for compressing GLB files with Draco. - Modified Vite configuration to remove GLB files from the build output. - Updated package dependencies to include GLTF-transform libraries for handling 3D models. - Added tests to ensure proper functionality of 3D model handling and compression.
39 lines
1.3 KiB
PHP
39 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Models\Modello;
|
|
use App\Support\Configuratore\Modelli3d;
|
|
use App\Support\Configuratore\Modello3dNonValido;
|
|
use Illuminate\Console\Command;
|
|
|
|
/** Rigenera le copie Draco dagli originali, ad esempio dopo un cambio di scripts/comprimi-glb.mjs. */
|
|
class RicomprimiModelli3d extends Command
|
|
{
|
|
protected $signature = 'modelli3d:ricomprimi {codice?* : Codici dei modelli (default: tutti)}';
|
|
|
|
protected $description = 'Ricomprime con Draco i modelli 3D a partire dagli originali archiviati';
|
|
|
|
public function handle(Modelli3d $modelli3d): int
|
|
{
|
|
$errori = 0;
|
|
|
|
$modelli = Modello::with('sistema')
|
|
->whereNotNull('modello_3d')
|
|
->when($this->argument('codice'), fn ($q, $codici) => $q->whereIn('codice', $codici))
|
|
->get();
|
|
|
|
foreach ($modelli as $modello) {
|
|
try {
|
|
$modelli3d->ricomprimi($modello);
|
|
$this->info(" {$modello->sistema->codice}/{$modello->codice}: ricompresso");
|
|
} catch (Modello3dNonValido $e) {
|
|
$errori++;
|
|
$this->error(" {$modello->sistema->codice}/{$modello->codice}: {$e->getMessage()}");
|
|
}
|
|
}
|
|
|
|
return $errori ? self::FAILURE : self::SUCCESS;
|
|
}
|
|
}
|