@liquidcars/atlas 0.1.43 → 0.1.45
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 +19 -6
- package/dist/liquidcars-atlas.js +756 -557
- package/dist/liquidcars-atlas.js.map +1 -1
- package/package.json +1 -1
- package/src/liquidcars-atlas.js +358 -41
package/README.md
CHANGED
|
@@ -58,8 +58,10 @@ atlas.select('distribution-agreement'); // selecciona sin mover la cámara
|
|
|
58
58
|
atlas.focusSelection(); // centra y amplía la selección explícitamente
|
|
59
59
|
atlas.setSelectionNavigation('preserve'); // 'preserve' | 'center' | 'fit'
|
|
60
60
|
atlas.selectRelation(0); // también acepta el id de una relación
|
|
61
|
+
atlas.getRelationBundle(); // conexiones A↔B que comparten el tubo de la selección
|
|
61
62
|
atlas.setRelationMode('all'); // 'all' | 'selected' | 'callers' | 'called' | 'none'
|
|
62
63
|
atlas.setRelationMarker('cone'); // 'cone' por defecto; 'ring' conserva el indicador clásico
|
|
64
|
+
atlas.setVisibleRelationGroups(['electric', 'water']); // null vuelve a mostrar todos
|
|
63
65
|
atlas.setToolbarVisible(true); // también se puede usar toolbar="on" | "off"
|
|
64
66
|
atlas.setPanelVisible(true); // también se puede usar panel="on" | "off"
|
|
65
67
|
atlas.setItemFacing('camera'); // valor por defecto; usa 'model' para conservar la orientación original
|
|
@@ -115,7 +117,7 @@ por lo que una aplicación puede adaptar la apariencia sin modificar el bundle.
|
|
|
115
117
|
Las propiedades `atlas.theme` y `atlas.styles` son alias prácticos de esta configuración.
|
|
116
118
|
|
|
117
119
|
Eventos disponibles: `lc-ready`, `lc-error`, `lc-warning`, `lc-select`, `lc-model-change`,
|
|
118
|
-
`lc-relation-mode`, `lc-relation-marker-change`, `lc-item-facing-change`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
|
|
120
|
+
`lc-relation-mode`, `lc-relation-marker-change`, `lc-relation-groups-change`, `lc-item-facing-change`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
|
|
119
121
|
`lc-print-restored` y `lc-disconnect`. `lc-select` usa un detalle discriminado:
|
|
120
122
|
las entidades incluyen `{ kind: 'entity', id, entity, source }` y las relaciones
|
|
121
123
|
`{ kind: 'relation', id, index, relation, source }`. Los campos históricos `id`
|
|
@@ -157,14 +159,23 @@ La misma funcionalidad puede controlarse explícitamente:
|
|
|
157
159
|
|
|
158
160
|
```js
|
|
159
161
|
const atlas = document.querySelector("liquidcars-atlas");
|
|
160
|
-
const
|
|
162
|
+
const transparent = atlas.captureFrame(); // canvas 2D con alfa
|
|
163
|
+
const themed = atlas.captureFrame({ background: "theme" }); // añade el fondo visual del componente
|
|
164
|
+
const white = atlas.captureFrame({ background: "#ffffff" }); // fondo sólido opcional
|
|
165
|
+
const presentation = atlas.captureFrame({ background: "transparent", scale: 2 }); // salida HD
|
|
161
166
|
atlas.prepareForPrint();
|
|
162
167
|
atlas.restoreAfterPrint();
|
|
163
168
|
```
|
|
164
169
|
|
|
165
170
|
`captureFrame()` usa `WebGLRenderingContext.readPixels()` para funcionar también
|
|
166
171
|
en navegadores que no permiten copiar directamente un canvas WebGL sin
|
|
167
|
-
`preserveDrawingBuffer`.
|
|
172
|
+
`preserveDrawingBuffer`. El framebuffer permanece transparente: el fondo de tema
|
|
173
|
+
se compone en el canvas 2D únicamente cuando se solicita y no recibe luces ni
|
|
174
|
+
sombras de la escena. `scale` vuelve a renderizar temporalmente entre 1× y 4×,
|
|
175
|
+
respetando el límite de framebuffer del navegador, y restaura inmediatamente el
|
|
176
|
+
canvas interactivo. Los colores WebGL semitransparentes se convierten de alfa
|
|
177
|
+
premultiplicado a alfa directo para conservar el tono de los contenedores
|
|
178
|
+
abiertos cuando el PNG se coloca sobre un fondo claro. Para evitar que un bloque se divida entre páginas, el
|
|
168
179
|
componente aplica `break-inside: avoid` durante la impresión.
|
|
169
180
|
|
|
170
181
|
## Contrato de datos
|
|
@@ -179,6 +190,7 @@ componente aplica `break-inside: avoid` durante la impresión.
|
|
|
179
190
|
- `p` es la posición local respecto a `parent`; una entidad sin `parent` usa coordenadas de escena.
|
|
180
191
|
- `s` son dimensiones absolutas locales `[x, y, z]`.
|
|
181
192
|
- `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.
|
|
193
|
+
- `relationGroups` declara capas temáticas `{id, label, color, description}` y cada relación puede referenciar una con `group`. `render.visibleRelationGroups` las filtra sin alterar el modo de relaciones. Las conexiones paralelas visibles comparten automáticamente un portador translúcido, pero cada conductor conserva selección, dirección, marcador e inspector propios.
|
|
182
194
|
El campo visual opcional `mode` admite `directed` (por defecto),
|
|
183
195
|
`bidirectional` y `broken`. En modo bidireccional los indicadores animados
|
|
184
196
|
circulan en ambos sentidos por el mismo tubo; en modo broken los dos tramos
|
|
@@ -393,9 +405,10 @@ personalizados, paletas locales, anchors e imágenes declarativas. La
|
|
|
393
405
|
versión `0.1.23` añadió desplazamiento lateral de cámara mediante ratón, teclado
|
|
394
406
|
modificador y gestos táctiles, además de la API pública `panBy()` y `panTo()`.
|
|
395
407
|
Se conserva la selección contextual de relaciones introducida en `0.1.22`: el usuario puede
|
|
396
|
-
seleccionar un tubo directamente
|
|
397
|
-
|
|
398
|
-
|
|
408
|
+
seleccionar un tubo directamente. Cuando varias conexiones comparten extremos,
|
|
409
|
+
los clics sucesivos recorren sus conductores y el panel enumera el tubo virtual
|
|
410
|
+
completo para permitir una selección precisa. La API pública añade
|
|
411
|
+
`selectRelation()`, `getRelationBundle()`, `selectedRelation` y `selection`, y la
|
|
399
412
|
selección se conserva durante las mutaciones del modelo siempre que el elemento
|
|
400
413
|
siga existiendo. Se mantienen las correcciones de geometría, toolbar, etiquetas,
|
|
401
414
|
paleta externa, edición en caliente y los modos `directed`, `bidirectional` y
|