@liquidcars/atlas 0.1.34 → 0.1.37

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 CHANGED
@@ -54,11 +54,14 @@ 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"
61
63
  atlas.setPanelVisible(true); // también se puede usar panel="on" | "off"
64
+ atlas.setItemFacing('camera'); // valor por defecto; usa 'model' para conservar la orientación original
62
65
  atlas.zoomIn();
63
66
  atlas.zoomOut();
64
67
  atlas.panBy(-1.5, 0); // desplazamiento horizontal/vertical en el plano de cámara
@@ -111,7 +114,7 @@ por lo que una aplicación puede adaptar la apariencia sin modificar el bundle.
111
114
  Las propiedades `atlas.theme` y `atlas.styles` son alias prácticos de esta configuración.
112
115
 
113
116
  Eventos disponibles: `lc-ready`, `lc-error`, `lc-warning`, `lc-select`, `lc-model-change`,
114
- `lc-relation-mode`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
117
+ `lc-relation-mode`, `lc-item-facing-change`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
115
118
  `lc-print-restored` y `lc-disconnect`. `lc-select` usa un detalle discriminado:
116
119
  las entidades incluyen `{ kind: 'entity', id, entity, source }` y las relaciones
117
120
  `{ kind: 'relation', id, index, relation, source }`. Los campos históricos `id`
@@ -126,6 +129,19 @@ emite `lc-select` con `source: "pointer"`, pero deja la decisión a la página
126
129
  anfitriona. La API equivalente es `setSelectionMode()` (también disponible
127
130
  como `setClickBehavior()`).
128
131
 
132
+ La selección interna conserva la cámara por defecto. Un doble clic, el botón
133
+ **Enfocar selección** del panel o `focusSelection()` centran y amplían el
134
+ elemento seleccionado. El comportamiento automático puede cambiarse con el
135
+ atributo `selection-navigation="preserve|center|fit"`, mediante
136
+ `setSelectionNavigation()` o declarativamente en el modelo:
137
+
138
+ ```yaml
139
+ render:
140
+ navigation:
141
+ onSelect: preserve
142
+ itemFacing: model # opt-out; camera es el valor por defecto
143
+ ```
144
+
129
145
  ## Impresión
130
146
 
131
147
  Atlas prepara automáticamente una representación WYSIWYG al entrar en el modo
@@ -223,9 +239,10 @@ proporciones canónicas y anchors. Las piezas declarativas admiten primitivas,
223
239
  posición, rotación, escala, materiales, iconos de texto o emoji e imágenes por
224
240
  URL/data URI; los SVG también pueden proporcionarse inline. Para planos con
225
241
  imagen, `imageFit` admite `cover`, `contain` y `stretch`. El renderer mantiene Three.js encapsulado para evitar que los packs
226
- dependan de su versión interna. Las relaciones parten del centro por defecto;
227
- `fromAnchor` y `toAnchor` quedan como overrides explícitos para casos
228
- excepcionales.
242
+ dependan de su versión interna. Las relaciones parten por defecto de la
243
+ superficie orientada hacia el otro extremo. `anchor: center` conserva el
244
+ comportamiento centrado cuando sea necesario, y `fromAnchor` y `toAnchor`
245
+ permiten elegir puertos explícitos declarados por una geometría.
229
246
 
230
247
  Si un namespace no está registrado, Atlas conserva el modelo renderizable con
231
248
  una caja roja de fallback y emite `lc-warning` con el código
@@ -234,7 +251,7 @@ una caja roja de fallback y emite `lc-warning` con el código
234
251
 
235
252
  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.
236
253
 
237
- 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.
254
+ 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()`, `setItemFacing()`, `toggleItemFacing()`, `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.
238
255
 
239
256
  Cada cambio del estado vivo emite `lc-container-state-change`. Su detalle contiene
240
257
  `openContainers`, `changedContainers`, `changedContainer`, `open` y `source`, de