@liquidcars/atlas 0.1.29 → 0.1.30
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 +23 -2
- package/demo/model.json +9 -9
- package/dist/liquidcars-atlas.js +672 -457
- package/dist/liquidcars-atlas.js.map +1 -1
- package/package.json +1 -1
- package/src/liquidcars-atlas.js +361 -124
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Después abre <http://localhost:4173/> (o <http://localhost:4173/demo/>). La dem
|
|
|
32
32
|
"p": [0, -3, 0],
|
|
33
33
|
"s": [11, 3.4, 5],
|
|
34
34
|
"c": "#48c8b0",
|
|
35
|
-
"type": "
|
|
35
|
+
"type": "container",
|
|
36
36
|
"text": "..."
|
|
37
37
|
}
|
|
38
38
|
],
|
|
@@ -59,6 +59,9 @@ atlas.panBy(-1.5, 0); // desplazamiento horizontal/vertical en el plano de cáma
|
|
|
59
59
|
atlas.panTo(0, 0, 0); // centra la cámara en un punto del mundo
|
|
60
60
|
atlas.fit();
|
|
61
61
|
atlas.frontView();
|
|
62
|
+
const initialView = atlas.getCameraView();
|
|
63
|
+
atlas.setCameraView(initialView, { animate: false });
|
|
64
|
+
atlas.restoreInitialCamera({ animate: false });
|
|
62
65
|
atlas.setShellLabels(true);
|
|
63
66
|
atlas.openAllContainers();
|
|
64
67
|
atlas.closeAllContainers();
|
|
@@ -115,6 +118,7 @@ como `setClickBehavior()`).
|
|
|
115
118
|
|
|
116
119
|
- `palette`: mapa de nombres de color a valores CSS/hex.
|
|
117
120
|
- `theme` (opcional): configuración de `background`, `lighting`, `panel`, `toolbar`, `breadcrumbs`, `hint` y `ui`. `ui` permite mostrar u ocultar `panel`, `toolbar`, `breadcrumbs` y `hint`.
|
|
121
|
+
- `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.
|
|
118
122
|
- `entities`: objetos con `id`, `name`, `p`, `s`, `c`, `type`, `text` y opcionalmente `parent`, `geometry`, `radius`, `segments`, `frontLabel`, `anchor` y `ports`.
|
|
119
123
|
- `p` es la posición local respecto a `parent`; una entidad sin `parent` usa coordenadas de escena.
|
|
120
124
|
- `s` son dimensiones absolutas locales `[x, y, z]`.
|
|
@@ -127,6 +131,9 @@ como `setClickBehavior()`).
|
|
|
127
131
|
|
|
128
132
|
Geometrías incluidas en esta primera versión: `box`, `cylinder`, `sphere`, `cone`, `frustum-cone`, `frustum-pyramid`, `frustum-triangle`, `prism`, `pyramid-square`, `pyramid-triangle`, `octahedron`, `dodecahedron` e `icosahedron`. Las variantes `frustum-*` son sólidos truncados con dos caras finitas paralelas; las dimensiones `s` se aplican sobre su caja final normalizada.
|
|
129
133
|
|
|
134
|
+
Las etiquetas se rasterizan con relleno claro y un contorno oscuro proporcional
|
|
135
|
+
para mantener el contraste sobre geometrías tanto claras como oscuras.
|
|
136
|
+
|
|
130
137
|
## Geometry packs
|
|
131
138
|
|
|
132
139
|
Las geometrías pueden distribuirse en paquetes independientes. El componente
|
|
@@ -193,7 +200,21 @@ una caja roja de fallback y emite `lc-warning` con el código
|
|
|
193
200
|
|
|
194
201
|
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.
|
|
195
202
|
|
|
196
|
-
Las acciones de navegación y exploración también están disponibles para la página anfitriona: `zoomIn()`, `zoomOut()`, `panBy()`, `panTo()`, `fit()`, `frontView()`, `setShellLabels()`, `toggleShellLabels()`, `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.
|
|
203
|
+
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()`, `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.
|
|
204
|
+
|
|
205
|
+
Una vista inicial portable puede declararse dentro del modelo:
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
render:
|
|
209
|
+
camera:
|
|
210
|
+
position: [12.4, 7.2, 18.6]
|
|
211
|
+
target: [0, 1.5, 0]
|
|
212
|
+
zoom: 1.35
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
`position` y `target` fijan la dirección observada. Cuando existe `zoom`, éste
|
|
216
|
+
prevalece para calcular la distancia final y mantener el encuadre; si se omite,
|
|
217
|
+
Atlas lo deriva de la distancia declarada.
|
|
197
218
|
|
|
198
219
|
La escena también se puede editar en caliente. `updateModel(patch)` reemplaza
|
|
199
220
|
las secciones indicadas; `addEntity`, `updateEntity` y `removeEntity` gestionan
|
package/demo/model.json
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
5
|
|
29
29
|
],
|
|
30
30
|
"c": "offers",
|
|
31
|
-
"type": "
|
|
31
|
+
"type": "container",
|
|
32
32
|
"text": "La base del modelo contiene inventarios, ofertas y servicios. El dealer aporta la Base Offer, que referencia el vehículo físico; el proveedor aporta el servicio asociado."
|
|
33
33
|
},
|
|
34
34
|
{
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
5
|
|
47
47
|
],
|
|
48
48
|
"c": "ole",
|
|
49
|
-
"type": "
|
|
49
|
+
"type": "container",
|
|
50
50
|
"text": "El Offer Listing Engine aplica revenue management, etiquetas y condiciones de distribución para calcular la oferta que observa cada canal."
|
|
51
51
|
},
|
|
52
52
|
{
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
5
|
|
65
65
|
],
|
|
66
66
|
"c": "agreements",
|
|
67
|
-
"type": "
|
|
67
|
+
"type": "container",
|
|
68
68
|
"text": "Agrupa el acuerdo de distribución y sus ámbitos funcionales: atribución, reservas y pedidos. El acuerdo vincula las ofertas y servicios con su distribución autorizada."
|
|
69
69
|
},
|
|
70
70
|
{
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
5
|
|
83
83
|
],
|
|
84
84
|
"c": "channels",
|
|
85
|
-
"type": "
|
|
85
|
+
"type": "container",
|
|
86
86
|
"text": "Agrupa los canales de distribución. Cada CHANNEL está contenido en CHANNELS y contiene la oferta de canal que presenta al comprador."
|
|
87
87
|
},
|
|
88
88
|
{
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
3.9
|
|
102
102
|
],
|
|
103
103
|
"c": "offers",
|
|
104
|
-
"type": "
|
|
104
|
+
"type": "container",
|
|
105
105
|
"text": "Colección de ofertas alimentada directamente por el dealer o su sistema de stock. Contiene la Base Offer y propaga sus actualizaciones."
|
|
106
106
|
},
|
|
107
107
|
{
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
3.9
|
|
161
161
|
],
|
|
162
162
|
"c": "offers",
|
|
163
|
-
"type": "
|
|
163
|
+
"type": "container",
|
|
164
164
|
"text": "Vista calculada de un inventario mediante filtros y reglas. Está apoyada sobre el inventario físico para expresar su dependencia; no duplica el vehículo."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
3.8
|
|
221
221
|
],
|
|
222
222
|
"c": "ole",
|
|
223
|
-
"type": "
|
|
223
|
+
"type": "container",
|
|
224
224
|
"text": "Etiquetas estáticas o dinámicas, activas o inactivas, que alimentan las reglas de selección, precio y disponibilidad. Su efecto procede de las fórmulas donde se utilizan."
|
|
225
225
|
},
|
|
226
226
|
{
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
3.8
|
|
366
366
|
],
|
|
367
367
|
"c": "ole",
|
|
368
|
-
"type": "
|
|
368
|
+
"type": "container",
|
|
369
369
|
"text": "Aplica las reglas comerciales autorizadas al contexto de distribución. Contiene la Channel Offer calculada; el sistema ejecuta las decisiones de las partes."
|
|
370
370
|
},
|
|
371
371
|
{
|
|
@@ -546,7 +546,7 @@
|
|
|
546
546
|
4.3
|
|
547
547
|
],
|
|
548
548
|
"c": "channels",
|
|
549
|
-
"type": "
|
|
549
|
+
"type": "container",
|
|
550
550
|
"text": "Representa un canal de distribución dentro de CHANNELS: un marketplace, la web del dealer u otro canal autorizado. Contiene la oferta de canal presentada al comprador."
|
|
551
551
|
},
|
|
552
552
|
{
|