52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\Controller;
|
||
|
|
||
|
use App\Api\TTRssClient;
|
||
|
use App\Core\Controller\Site\PageController;
|
||
|
use App\Markdown\Parser\Post as PostParser;
|
||
|
use Symfony\Component\HttpFoundation\Response;
|
||
|
use App\Repository\StlMeshRepositoryQuery;
|
||
|
use App\Entity\StlMesh;
|
||
|
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||
|
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
|
||
|
use Symfony\Component\Routing\Annotation\Route;
|
||
|
|
||
|
class StlMeshController extends PageController
|
||
|
{
|
||
|
public function meshes(StlMeshRepositoryQuery $query): Response
|
||
|
{
|
||
|
$pager = $query->create()
|
||
|
->orderBy('.sortOrder')
|
||
|
->paginate(1, 200);
|
||
|
|
||
|
return $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [
|
||
|
'pager' => $pager,
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/mesh/download/{stlMesh}", name="mesh_download")
|
||
|
*/
|
||
|
public function download(StlMesh $stlMesh): Response
|
||
|
{
|
||
|
$response = new BinaryFileResponse($stlMesh->getFile());
|
||
|
$response->setContentDisposition(
|
||
|
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
|
||
|
str_replace('.bin', '.stl', basename($stlMesh->getFile()))
|
||
|
);
|
||
|
|
||
|
return $response;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/mesh/viewer/{stlMesh}", name="mesh_viewer")
|
||
|
*/
|
||
|
public function viewer(StlMesh $stlMesh): Response
|
||
|
{
|
||
|
return $this->render('page/mesh/viewer.html.twig', [
|
||
|
'mesh' => $stlMesh,
|
||
|
]);
|
||
|
}
|
||
|
}
|