fix: clarify lidar source and processing result
This commit is contained in:
@@ -3152,6 +3152,10 @@
|
||||
background: #06070a;
|
||||
}
|
||||
|
||||
.lidar-local-surface__stage[data-loading="true"] {
|
||||
grid-template-columns: minmax(0, 1fr);
|
||||
}
|
||||
|
||||
.lidar-local-surface__stage .lidar-ground-scene,
|
||||
.lidar-local-surface__stage .lidar-ground-scene-placeholder {
|
||||
min-height: 30rem;
|
||||
@@ -3159,6 +3163,33 @@
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.lidar-local-surface__stage .lidar-ground-scene-placeholder > span {
|
||||
color: var(--nodedc-text-secondary);
|
||||
font-size: 0.62rem;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.lidar-local-surface__diagnostics {
|
||||
display: grid;
|
||||
gap: 0.72rem;
|
||||
margin-top: 0.35rem;
|
||||
border-top: 1px solid var(--station-hairline);
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.lidar-local-surface__diagnostics > header {
|
||||
display: grid;
|
||||
gap: 0.24rem;
|
||||
}
|
||||
|
||||
.lidar-local-surface__diagnostics > header p {
|
||||
max-width: 48rem;
|
||||
margin: 0;
|
||||
color: var(--nodedc-text-muted);
|
||||
font-size: 0.62rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.lidar-local-surface__frame {
|
||||
display: grid;
|
||||
align-content: start;
|
||||
|
||||
@@ -241,12 +241,12 @@ export function LidarLocalSurfacePanel({
|
||||
>
|
||||
<header className="lidar-local-surface__heading">
|
||||
<div>
|
||||
<span className="section-eyebrow">ЛОКАЛЬНАЯ МОДЕЛЬ LIDAR · L2.6</span>
|
||||
<span className="section-eyebrow">РЕЗУЛЬТАТ ОБРАБОТКИ · L2.6</span>
|
||||
<h3>Поверхность и наблюдаемые препятствия</h3>
|
||||
<p>
|
||||
Поверхность строится по предыдущему TTL-окну и проверяется на
|
||||
следующем кадре. Текущий кадр исключён из prediction input;
|
||||
константа 1,27 м и команды в сканер не используются.
|
||||
Основной результат выбранного интервала. Поверхность строится по
|
||||
предыдущему TTL-окну и проверяется на следующем кадре; текущий кадр
|
||||
и фиксированная высота в prediction input не используются.
|
||||
</p>
|
||||
</div>
|
||||
<StatusBadge
|
||||
@@ -314,24 +314,6 @@ export function LidarLocalSurfacePanel({
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
{timeline && review && selectedFrameIndex !== null ? (
|
||||
<>
|
||||
<LidarLocalSurfaceTimeline
|
||||
timeline={timeline}
|
||||
review={review}
|
||||
selectedFrameIndex={selectedFrameIndex}
|
||||
onSelectionStart={captureFrameSelectionScroll}
|
||||
onSelectFrame={selectFrame}
|
||||
/>
|
||||
<LidarLocalSurfaceReviewQueue
|
||||
review={review}
|
||||
selectedFrameIndex={selectedFrameIndex}
|
||||
onSelectionStart={captureFrameSelectionScroll}
|
||||
onSelectFrame={selectFrame}
|
||||
/>
|
||||
</>
|
||||
) : null}
|
||||
|
||||
{frame ? (
|
||||
<div
|
||||
className="lidar-local-surface__view-switch"
|
||||
@@ -361,7 +343,10 @@ export function LidarLocalSurfacePanel({
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
<div className="lidar-local-surface__stage">
|
||||
<div
|
||||
className="lidar-local-surface__stage"
|
||||
data-loading={!frame ? "true" : undefined}
|
||||
>
|
||||
{cloudFrame && frame ? (
|
||||
<LidarGroundPointCloud frame={cloudFrame} mode={surfaceView} />
|
||||
) : (
|
||||
@@ -369,7 +354,7 @@ export function LidarLocalSurfacePanel({
|
||||
<StatusBadge tone={error ? "danger" : "accent"}>
|
||||
{error ? "Ошибка" : "Загрузка"}
|
||||
</StatusBadge>
|
||||
<span>{error ?? "Читаем производную выбранной сцены…"}</span>
|
||||
<span>{error ?? "Обработка производной выбранной сцены"}</span>
|
||||
</div>
|
||||
)}
|
||||
{frame ? (
|
||||
@@ -458,6 +443,31 @@ export function LidarLocalSurfacePanel({
|
||||
</aside>
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
{timeline && review && selectedFrameIndex !== null ? (
|
||||
<div className="lidar-local-surface__diagnostics">
|
||||
<header>
|
||||
<span className="section-eyebrow">ДИАГНОСТИКА ЗАПИСИ</span>
|
||||
<p>
|
||||
График и очередь ниже помогают выбрать кадр для разбора, но не
|
||||
заменяют визуальную проверку результата выше.
|
||||
</p>
|
||||
</header>
|
||||
<LidarLocalSurfaceTimeline
|
||||
timeline={timeline}
|
||||
review={review}
|
||||
selectedFrameIndex={selectedFrameIndex}
|
||||
onSelectionStart={captureFrameSelectionScroll}
|
||||
onSelectFrame={selectFrame}
|
||||
/>
|
||||
<LidarLocalSurfaceReviewQueue
|
||||
review={review}
|
||||
selectedFrameIndex={selectedFrameIndex}
|
||||
onSelectionStart={captureFrameSelectionScroll}
|
||||
onSelectFrame={selectFrame}
|
||||
/>
|
||||
</div>
|
||||
) : null}
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -276,16 +276,18 @@ export function LidarQualityWorkspace({
|
||||
<header className="panel-heading lidar-field-review__heading">
|
||||
<div>
|
||||
<span className="section-eyebrow">
|
||||
{fieldReview ? "ОБЛАКО LIDAR · RAVNOVES00" : "ОБЛАКО LIDAR · ЗАПИСЬ"}
|
||||
{fieldReview
|
||||
? "ИСХОДНАЯ ЗАПИСЬ LIDAR · RAVNOVES00"
|
||||
: "ИСХОДНАЯ ЗАПИСЬ LIDAR"}
|
||||
</span>
|
||||
<h2>
|
||||
{fieldReview
|
||||
? `Городская сцена: ${selectedFieldWindow?.label ?? fieldReview.displayName}`
|
||||
? `Исходная сцена: ${selectedFieldWindow?.label ?? fieldReview.displayName}`
|
||||
: `Кадр ${groundFrameIndex + 1} из ${groundBenchmark?.frames ?? 0}`}
|
||||
</h2>
|
||||
<p>
|
||||
{fieldReview
|
||||
? "Выберите один из пяти интервалов, вращайте облако мышью и при необходимости включите экспериментальные маски обработки."
|
||||
? "Накопленное облако LiDAR и кадр камеры — контекст выбранного интервала. Результат обработки L2.6 расположен ниже."
|
||||
: "Полевая запись на этом хосте не подключена. Показываем доступную запись выбранного LiDAR без подмешивания публичных датасетов."}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user