@liquidcars/atlas 0.1.33 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -6
- package/dist/liquidcars-atlas.js +1500 -1377
- package/dist/liquidcars-atlas.js.map +1 -1
- package/package.json +1 -1
- package/src/liquidcars-atlas.js +203 -43
package/README.md
CHANGED
|
@@ -54,7 +54,9 @@ También se puede cargar el modelo desde JavaScript:
|
|
|
54
54
|
```js
|
|
55
55
|
const atlas = document.querySelector('liquidcars-atlas');
|
|
56
56
|
atlas.model = model;
|
|
57
|
-
atlas.select('distribution-agreement');
|
|
57
|
+
atlas.select('distribution-agreement'); // selecciona sin mover la cámara
|
|
58
|
+
atlas.focusSelection(); // centra y amplía la selección explícitamente
|
|
59
|
+
atlas.setSelectionNavigation('preserve'); // 'preserve' | 'center' | 'fit'
|
|
58
60
|
atlas.selectRelation(0); // también acepta el id de una relación
|
|
59
61
|
atlas.setRelationMode('all'); // 'all' | 'selected' | 'none'
|
|
60
62
|
atlas.setToolbarVisible(true); // también se puede usar toolbar="on" | "off"
|
|
@@ -69,6 +71,11 @@ const initialView = atlas.getCameraView();
|
|
|
69
71
|
atlas.setCameraView(initialView, { animate: false });
|
|
70
72
|
atlas.restoreInitialCamera({ animate: false });
|
|
71
73
|
atlas.setShellLabels(true);
|
|
74
|
+
atlas.setContainerOpen('distribution-agreements', true);
|
|
75
|
+
atlas.toggleContainer('distribution-agreements');
|
|
76
|
+
console.log(atlas.isContainerOpen('distribution-agreements'));
|
|
77
|
+
console.log(atlas.getOpenContainerIds());
|
|
78
|
+
atlas.restoreInitialContainerState();
|
|
72
79
|
atlas.openAllContainers();
|
|
73
80
|
atlas.closeAllContainers();
|
|
74
81
|
atlas.setTheme({
|
|
@@ -121,6 +128,18 @@ emite `lc-select` con `source: "pointer"`, pero deja la decisión a la página
|
|
|
121
128
|
anfitriona. La API equivalente es `setSelectionMode()` (también disponible
|
|
122
129
|
como `setClickBehavior()`).
|
|
123
130
|
|
|
131
|
+
La selección interna conserva la cámara por defecto. Un doble clic, el botón
|
|
132
|
+
**Enfocar selección** del panel o `focusSelection()` centran y amplían el
|
|
133
|
+
elemento seleccionado. El comportamiento automático puede cambiarse con el
|
|
134
|
+
atributo `selection-navigation="preserve|center|fit"`, mediante
|
|
135
|
+
`setSelectionNavigation()` o declarativamente en el modelo:
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
render:
|
|
139
|
+
navigation:
|
|
140
|
+
onSelect: preserve
|
|
141
|
+
```
|
|
142
|
+
|
|
124
143
|
## Impresión
|
|
125
144
|
|
|
126
145
|
Atlas prepara automáticamente una representación WYSIWYG al entrar en el modo
|
|
@@ -148,7 +167,7 @@ componente aplica `break-inside: avoid` durante la impresión.
|
|
|
148
167
|
- `theme` (opcional): configuración de `background`, `lighting`, `panel`, `toolbar`, `breadcrumbs`, `hint` y `ui`. `ui` permite mostrar u ocultar `panel`, `toolbar`, `breadcrumbs` y `hint`.
|
|
149
168
|
- `render.camera` (opcional): vista inicial con `position`, `target` y `zoom`. Las coordenadas pertenecen al espacio del modelo; `zoom` conserva el encuadre relativo entre tamaños de visor.
|
|
150
169
|
- `render.focus` (opcional): filtrado visual por selección. `mode` acepta `all` o `connected`, `effect` acepta `dim` o `hide`, y `layout` distingue posiciones estables (`preserve`) de una proyección recompilada (`reflow`).
|
|
151
|
-
- `entities`: objetos con `id`, `name`, `p`, `s`, `c`, `type`, `text`, `url` y opcionalmente `parent`, `geometry`, `radius`, `segments`, `frontLabel`, `anchor` y `ports`. Las URL HTTP(S) se abren en una pestaña nueva desde el panel de información.
|
|
170
|
+
- `entities`: objetos con `id`, `name`, `p`, `s`, `c`, `type`, `text`, `url` y opcionalmente `parent`, `geometry`, `radius`, `segments`, `frontLabel`, `anchor` y `ports`. Un contenedor puede declarar `open: true` para comenzar abierto; el valor predeterminado es cerrado y se omite al serializar. Las URL HTTP(S) se abren en una pestaña nueva desde el panel de información.
|
|
152
171
|
- `p` es la posición local respecto a `parent`; una entidad sin `parent` usa coordenadas de escena.
|
|
153
172
|
- `s` son dimensiones absolutas locales `[x, y, z]`.
|
|
154
173
|
- `relations` acepta objetos `{from, to, label, text, url}` o la forma corta `[from, to, label]`. `label` es el título corto de la conexión, `text` su descripción y `url` su documentación externa en el panel de información.
|
|
@@ -218,9 +237,10 @@ proporciones canónicas y anchors. Las piezas declarativas admiten primitivas,
|
|
|
218
237
|
posición, rotación, escala, materiales, iconos de texto o emoji e imágenes por
|
|
219
238
|
URL/data URI; los SVG también pueden proporcionarse inline. Para planos con
|
|
220
239
|
imagen, `imageFit` admite `cover`, `contain` y `stretch`. El renderer mantiene Three.js encapsulado para evitar que los packs
|
|
221
|
-
dependan de su versión interna. Las relaciones parten
|
|
222
|
-
|
|
223
|
-
|
|
240
|
+
dependan de su versión interna. Las relaciones parten por defecto de la
|
|
241
|
+
superficie orientada hacia el otro extremo. `anchor: center` conserva el
|
|
242
|
+
comportamiento centrado cuando sea necesario, y `fromAnchor` y `toAnchor`
|
|
243
|
+
permiten elegir puertos explícitos declarados por una geometría.
|
|
224
244
|
|
|
225
245
|
Si un namespace no está registrado, Atlas conserva el modelo renderizable con
|
|
226
246
|
una caja roja de fallback y emite `lc-warning` con el código
|
|
@@ -229,11 +249,21 @@ una caja roja de fallback y emite `lc-warning` con el código
|
|
|
229
249
|
|
|
230
250
|
La paleta puede cambiarse después de cargar el modelo mediante `atlas.setPalette({ nombre: color })` o asignando `atlas.palette = { ... }`. El cambio actualiza las piezas, aristas y relaciones sin reconstruir el modelo.
|
|
231
251
|
|
|
232
|
-
Las acciones de navegación y exploración también están disponibles para la página anfitriona: `zoomIn()`, `zoomOut()`, `panBy()`, `panTo()`, `fit()`, `frontView()`, `getCameraView()`, `setCameraView()`, `restoreInitialCamera()`, `setShellLabels()`, `toggleShellLabels()`, `setPanelVisible()`, `setFocusFilter()`, `clearFocusFilter()`, `getFocusedIds()`, `openAllContainers()` y `closeAllContainers()`. El usuario puede desplazar la vista con el botón derecho, con `Shift` + arrastre o mediante dos dedos en una pantalla táctil. Así se puede construir una barra de controles propia sin depender de la toolbar interna.
|
|
252
|
+
Las acciones de navegación y exploración también están disponibles para la página anfitriona: `zoomIn()`, `zoomOut()`, `panBy()`, `panTo()`, `fit()`, `frontView()`, `getCameraView()`, `setCameraView()`, `restoreInitialCamera()`, `setShellLabels()`, `toggleShellLabels()`, `setPanelVisible()`, `setFocusFilter()`, `clearFocusFilter()`, `getFocusedIds()`, `isContainerOpen()`, `getOpenContainerIds()`, `setContainerOpen()`, `setOpenContainers()`, `toggleContainer()`, `restoreInitialContainerState()`, `openAllContainers()` y `closeAllContainers()`. El usuario puede desplazar la vista con el botón derecho, con `Shift` + arrastre o mediante dos dedos en una pantalla táctil. Así se puede construir una barra de controles propia sin depender de la toolbar interna.
|
|
253
|
+
|
|
254
|
+
Cada cambio del estado vivo emite `lc-container-state-change`. Su detalle contiene
|
|
255
|
+
`openContainers`, `changedContainers`, `changedContainer`, `open` y `source`, de
|
|
256
|
+
modo que el host puede consultar o persistir una interacción sin acceder a
|
|
257
|
+
detalles internos del componente.
|
|
233
258
|
|
|
234
259
|
Una vista inicial portable puede declararse dentro del modelo:
|
|
235
260
|
|
|
236
261
|
```yaml
|
|
262
|
+
entities:
|
|
263
|
+
- id: distribution-agreements
|
|
264
|
+
type: container
|
|
265
|
+
open: true
|
|
266
|
+
children: []
|
|
237
267
|
render:
|
|
238
268
|
focus:
|
|
239
269
|
mode: connected
|