@liquidcars/atlas 0.1.38 → 0.1.39
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 +55 -33
- package/dist/liquidcars-atlas.js +395 -307
- package/dist/liquidcars-atlas.js.map +1 -1
- package/package.json +1 -1
- package/src/liquidcars-atlas.js +141 -21
package/README.md
CHANGED
|
@@ -187,12 +187,17 @@ para mantener el contraste sobre geometrías tanto claras como oscuras.
|
|
|
187
187
|
## Geometry packs
|
|
188
188
|
|
|
189
189
|
Las geometrías pueden distribuirse en paquetes independientes. El componente
|
|
190
|
-
expone `registerGeometryPack()`, `unregisterGeometryPack()
|
|
191
|
-
`getGeometryCatalog()`; los mismos métodos están
|
|
192
|
-
`LiquidCarsAtlas`. Los identificadores usan un
|
|
193
|
-
`architecture.
|
|
194
|
-
publican como `geo.box`, `geo.sphere`, etc. Los nombres
|
|
195
|
-
namespace siguen siendo compatibles.
|
|
190
|
+
expone `registerGeometryPack()`, `unregisterGeometryPack()`,
|
|
191
|
+
`getGeometryCatalog()` y `getGeometryPackCatalog()`; los mismos métodos están
|
|
192
|
+
disponibles como estáticos en `LiquidCarsAtlas`. Los identificadores usan un
|
|
193
|
+
namespace (`infra.server`, `emoji-fluent.robot`, `architecture.hexagonal.port`, etc.) y las primitivas
|
|
194
|
+
integradas también se publican como `geo.box`, `geo.sphere`, etc. Los nombres
|
|
195
|
+
históricos sin namespace siguen siendo compatibles. Los namespaces pueden contener segmentos separados por puntos, de modo que packs especializados como `architecture.hexagonal` convivan con `architecture`.
|
|
196
|
+
|
|
197
|
+
`getGeometryCatalog()` conserva el catálogo operativo de geometrías.
|
|
198
|
+
`getGeometryPackCatalog()` describe las librerías registradas, incluyendo
|
|
199
|
+
autoría, licencia, procedencia y recursos, sin duplicar estos datos en cada
|
|
200
|
+
geometría.
|
|
196
201
|
|
|
197
202
|
El módulo exporta también `ATLAS_VERSION`, y la clase registrada expone la
|
|
198
203
|
misma versión mediante `customElements.get("liquidcars-atlas").version`. Esta
|
|
@@ -202,27 +207,39 @@ si accidentalmente se cargan varias versiones del core.
|
|
|
202
207
|
```js
|
|
203
208
|
import { registerGeometryPack } from "@liquidcars/atlas";
|
|
204
209
|
|
|
210
|
+
const robotImage = new URL("./assets/robot.svg", import.meta.url).href;
|
|
211
|
+
|
|
205
212
|
registerGeometryPack({
|
|
206
|
-
namespace: "
|
|
207
|
-
name: "
|
|
213
|
+
namespace: "example",
|
|
214
|
+
name: "Example visual assets",
|
|
208
215
|
version: "0.1.0",
|
|
209
|
-
|
|
216
|
+
authors: [{ name: "Example Studio", url: "https://example.com" }],
|
|
217
|
+
license: { spdx: "MIT", url: "https://opensource.org/license/mit" },
|
|
218
|
+
sources: [{
|
|
219
|
+
id: "example-artwork",
|
|
220
|
+
name: "Example artwork",
|
|
221
|
+
authors: ["Example Studio"],
|
|
222
|
+
license: "MIT"
|
|
223
|
+
}],
|
|
224
|
+
resources: [{
|
|
225
|
+
id: "robot",
|
|
226
|
+
kind: "image",
|
|
227
|
+
mimeType: "image/svg+xml",
|
|
228
|
+
path: "./assets/robot.svg",
|
|
229
|
+
url: robotImage,
|
|
230
|
+
source: "example-artwork"
|
|
231
|
+
}],
|
|
232
|
+
palette: { backplate: "#193142", image: "#ffffff" },
|
|
210
233
|
geometries: [{
|
|
211
|
-
id: "
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
units: { type: "number", min: 1, max: 8, default: 3 },
|
|
216
|
-
icon: { type: "icon", default: "⚙" },
|
|
217
|
-
image: { type: "image", default: "" }
|
|
218
|
-
},
|
|
219
|
-
anchors: { input: [-1, 0, 0], output: [1, 0, 0], network: [0, 0, 1] },
|
|
220
|
-
create({ parameters }) {
|
|
234
|
+
id: "robot",
|
|
235
|
+
canonicalSize: [2.4, 2.4, .5],
|
|
236
|
+
resource: "robot",
|
|
237
|
+
create({ resources }) {
|
|
221
238
|
return { parts: [
|
|
222
|
-
{ shape: "box", size: [
|
|
223
|
-
{ shape: "plane", size: [.
|
|
224
|
-
color: "
|
|
225
|
-
|
|
239
|
+
{ shape: "box", size: [.92, .92, .12], color: "backplate", radius: .16 },
|
|
240
|
+
{ shape: "plane", size: [.84, .84, 1], position: [0, 0, .07],
|
|
241
|
+
color: "image", image: resources.robot.url, imageFit: "contain",
|
|
242
|
+
transparent: true, edges: false }
|
|
226
243
|
] };
|
|
227
244
|
}
|
|
228
245
|
}]
|
|
@@ -233,17 +250,22 @@ El modelo configura cada instancia sin conocer la implementación del paquete:
|
|
|
233
250
|
|
|
234
251
|
```json
|
|
235
252
|
{
|
|
236
|
-
"geometry": "
|
|
237
|
-
"
|
|
238
|
-
"geometryPalette": { "accent": "#ffd166" }
|
|
253
|
+
"geometry": "example.robot",
|
|
254
|
+
"geometryPalette": { "backplate": "#284b63" }
|
|
239
255
|
}
|
|
240
256
|
```
|
|
241
257
|
|
|
242
258
|
Cada definición puede declarar parámetros tipados, una paleta local,
|
|
243
|
-
proporciones canónicas y anchors.
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
259
|
+
proporciones canónicas y anchors. Los recursos declarados por el pack se
|
|
260
|
+
entregan a `create({ resources })` indexados por `id`; pueden estar
|
|
261
|
+
empaquetados mediante `new URL("./assets/...", import.meta.url)`, ser data URIs
|
|
262
|
+
o apuntar a un recurso remoto. `sources` permite atribuir una colección de
|
|
263
|
+
terceros una sola vez y cada recurso puede sobrescribir `authors` o `license`.
|
|
264
|
+
|
|
265
|
+
Las piezas declarativas admiten primitivas, posición, rotación, escala,
|
|
266
|
+
materiales e imágenes por URL/data URI; los SVG también pueden proporcionarse
|
|
267
|
+
inline. Para planos con imagen, `imageFit` admite `cover`, `contain` y
|
|
268
|
+
`stretch`. El renderer mantiene Three.js encapsulado para evitar que los packs
|
|
247
269
|
dependan de su versión interna. Las relaciones parten por defecto de la
|
|
248
270
|
superficie orientada hacia el otro extremo. `anchor: center` conserva el
|
|
249
271
|
comportamiento centrado cuando sea necesario, y `fromAnchor` y `toAnchor`
|
|
@@ -319,12 +341,12 @@ Una vez publicado, los consumidores podrán instalarlo con `npm install @liquidc
|
|
|
319
341
|
Para probar el paquete sin publicarlo, basta con instalar el tarball generado:
|
|
320
342
|
|
|
321
343
|
```bash
|
|
322
|
-
npm install ./liquidcars-atlas-0.1.
|
|
344
|
+
npm install ./liquidcars-atlas-0.1.39.tgz
|
|
323
345
|
```
|
|
324
346
|
|
|
325
347
|
## Estado
|
|
326
348
|
|
|
327
|
-
`0.1.28` rasteriza explícitamente los SVG sobre un canvas antes de subirlos a
|
|
349
|
+
`0.1.39` incorpora metadatos normalizados de autoría, licencia, procedencia y recursos para los geometry packs, añade `getGeometryPackCatalog()` y entrega los recursos declarados a `create({ resources })`. Se mantiene intacto `getGeometryCatalog()` para conservar la compatibilidad. `0.1.28` rasteriza explícitamente los SVG sobre un canvas antes de subirlos a
|
|
328
350
|
WebGL y emite diagnósticos cuando falla la carga o la conversión. `0.1.27` añade carga automática de imágenes SVG remotas, SVG mediante data URI
|
|
329
351
|
y SVG inline, manteniendo las mismas opciones de cara y ajuste que las imágenes
|
|
330
352
|
raster. `0.1.26` mantiene el centro como anclaje implícito de toda relación y utiliza
|
|
@@ -332,7 +354,7 @@ los puertos de geometrías externas únicamente cuando el modelo los solicita.
|
|
|
332
354
|
También evita recorrer los materiales de geometrías compuestas en cada frame,
|
|
333
355
|
refuerza la liberación de recursos y expone `getRenderStats()`.
|
|
334
356
|
`0.1.24` incorporó geometry packs independientes, namespaces, parámetros
|
|
335
|
-
personalizados, paletas locales, anchors e imágenes
|
|
357
|
+
personalizados, paletas locales, anchors e imágenes declarativas. La
|
|
336
358
|
versión `0.1.23` añadió desplazamiento lateral de cámara mediante ratón, teclado
|
|
337
359
|
modificador y gestos táctiles, además de la API pública `panBy()` y `panTo()`.
|
|
338
360
|
Se conserva la selección contextual de relaciones introducida en `0.1.22`: el usuario puede
|