@liquidcars/atlas 0.1.17 → 0.1.18
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 +4 -4
- package/demo/index.html +2 -2
- package/dist/liquidcars-atlas.js +20 -5
- package/index.html +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -112,8 +112,8 @@ como `setClickBehavior()`).
|
|
|
112
112
|
- `relations` acepta objetos `{from, to, label}` o la forma corta `[from, to, label]`.
|
|
113
113
|
El campo visual opcional `mode` admite `directed` (por defecto),
|
|
114
114
|
`bidirectional` y `broken`. En modo bidireccional los indicadores animados
|
|
115
|
-
circulan en ambos sentidos por el mismo tubo; en modo broken
|
|
116
|
-
|
|
115
|
+
circulan en ambos sentidos por el mismo tubo; en modo broken los dos tramos
|
|
116
|
+
aparecen en rojo, con una X y un anillo detenido en el punto de interrupción.
|
|
117
117
|
|
|
118
118
|
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.
|
|
119
119
|
|
|
@@ -141,9 +141,9 @@ Una vez publicado, los consumidores podrán instalarlo con `npm install @liquidc
|
|
|
141
141
|
Para probar el paquete sin publicarlo, basta con instalar el tarball generado:
|
|
142
142
|
|
|
143
143
|
```bash
|
|
144
|
-
npm install ./liquidcars-atlas-0.1.
|
|
144
|
+
npm install ./liquidcars-atlas-0.1.18.tgz
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
## Estado
|
|
148
148
|
|
|
149
|
-
`0.1.
|
|
149
|
+
`0.1.18` mantiene la corrección del desplazamiento interno del texto y ancla las etiquetas a las dimensiones reales de las geometrías redondeadas. Además fija un margen superior absoluto para las etiquetas secundarias de contenedores abiertos, situado dentro del frontal del contenedor y sin depender de sus dimensiones. También corrige los sólidos truncados, normaliza sus dimensiones finales, refuerza la visibilidad de la toolbar con el atributo `toolbar="on"`/`"off"` y `setToolbarVisible()`, desacopla la paleta por defecto de nombres de dominio, añade actualización programática de la paleta con `setPalette`, expone las acciones de navegación para controles externos y mantiene siempre visibles las ayudas de interacción dentro del viewport. Esta versión añade edición en caliente de entidades y relaciones, eventos compuestos de selección y los modos de relación `directed`, `bidirectional` y `broken`.
|
package/demo/index.html
CHANGED
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
liquidcars-atlas { display: block; width: 100%; max-width: 1480px; margin: 0 auto; }
|
|
15
15
|
code { color: #85e5d3; }
|
|
16
16
|
</style>
|
|
17
|
-
<script type="module" src="../dist/liquidcars-atlas.js?v=0.1.
|
|
17
|
+
<script type="module" src="../dist/liquidcars-atlas.js?v=0.1.18"></script>
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
20
|
<header>
|
|
21
21
|
<h1>LiquidCars Atlas</h1>
|
|
22
|
-
<p>Prueba de distribución del componente <code><liquidcars-atlas></code> · v0.1.
|
|
22
|
+
<p>Prueba de distribución del componente <code><liquidcars-atlas></code> · v0.1.18</p>
|
|
23
23
|
</header>
|
|
24
24
|
<main>
|
|
25
25
|
<liquidcars-atlas id="atlas" height="720" relation-mode="selected" shell-labels="on"></liquidcars-atlas>
|
package/dist/liquidcars-atlas.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! LiquidCars Atlas 0.1.
|
|
1
|
+
/*! LiquidCars Atlas 0.1.18 | MIT */
|
|
2
2
|
|
|
3
3
|
// src/three.core.js
|
|
4
4
|
/**
|
|
@@ -30114,17 +30114,32 @@ var LiquidCarsAtlas = class extends HTMLElement {
|
|
|
30114
30114
|
const delta = end.clone().sub(start);
|
|
30115
30115
|
if (delta.lengthSq() < 0.01) continue;
|
|
30116
30116
|
const visualMode = relationVisualMode(relation);
|
|
30117
|
-
const makeTube = (from2, to2, opacity = 0.82) => {
|
|
30118
|
-
const tube = new Mesh(new TubeGeometry(new LineCurve3(from2, to2), 10,
|
|
30117
|
+
const makeTube = (from2, to2, opacity = 0.82, tubeColor = color, tubeRadius = 0.045) => {
|
|
30118
|
+
const tube = new Mesh(new TubeGeometry(new LineCurve3(from2, to2), 10, tubeRadius, 6, false), new MeshBasicMaterial({ color: tubeColor, transparent: true, opacity }));
|
|
30119
30119
|
tube.userData.relationIndex = index;
|
|
30120
30120
|
this.relationGroup.add(tube);
|
|
30121
30121
|
};
|
|
30122
30122
|
if (visualMode === "broken") {
|
|
30123
|
+
const brokenColor = new Color(0xe45b63);
|
|
30123
30124
|
const direction = delta.clone().normalize();
|
|
30124
30125
|
const midpoint = start.clone().lerp(end, 0.5);
|
|
30125
30126
|
const gap = Math.min(delta.length() * 0.16, 0.72);
|
|
30126
|
-
makeTube(start, midpoint.clone().sub(direction.clone().multiplyScalar(gap / 2)), 0.
|
|
30127
|
-
makeTube(midpoint.clone().add(direction.clone().multiplyScalar(gap / 2)), end, 0.
|
|
30127
|
+
makeTube(start, midpoint.clone().sub(direction.clone().multiplyScalar(gap / 2)), 0.86, brokenColor, 0.055);
|
|
30128
|
+
makeTube(midpoint.clone().add(direction.clone().multiplyScalar(gap / 2)), end, 0.86, brokenColor, 0.055);
|
|
30129
|
+
// Mark the interruption with a red X in a plane perpendicular to
|
|
30130
|
+
// the communication line. The two arms are fixed at the midpoint,
|
|
30131
|
+
// making the broken state visible from every camera angle.
|
|
30132
|
+
const reference = Math.abs(direction.y) < 0.9 ? new Vector3(0, 1, 0) : new Vector3(1, 0, 0);
|
|
30133
|
+
const axisA = new Vector3().crossVectors(direction, reference).normalize();
|
|
30134
|
+
const axisB = new Vector3().crossVectors(direction, axisA).normalize();
|
|
30135
|
+
const arm = Math.min(0.52, Math.max(0.28, delta.length() * 0.07));
|
|
30136
|
+
makeTube(midpoint.clone().addScaledVector(axisA, -arm), midpoint.clone().addScaledVector(axisA, arm), 1, brokenColor, 0.065);
|
|
30137
|
+
makeTube(midpoint.clone().addScaledVector(axisB, -arm), midpoint.clone().addScaledVector(axisB, arm), 1, brokenColor, 0.065);
|
|
30138
|
+
const stoppedRing = new Mesh(new TorusGeometry(0.09, 0.025, 8, 20), new MeshBasicMaterial({ color: brokenColor, transparent: true, opacity: 1 }));
|
|
30139
|
+
stoppedRing.userData.start = midpoint.clone();
|
|
30140
|
+
stoppedRing.userData.end = midpoint.clone();
|
|
30141
|
+
stoppedRing.quaternion.setFromUnitVectors(new Vector3(0, 0, 1), direction);
|
|
30142
|
+
this.relationGroup.add(stoppedRing);
|
|
30128
30143
|
continue;
|
|
30129
30144
|
}
|
|
30130
30145
|
makeTube(start, end);
|
package/index.html
CHANGED
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
liquidcars-atlas { display: block; width: 100%; max-width: 1480px; margin: 0 auto; }
|
|
15
15
|
code { color: #85e5d3; }
|
|
16
16
|
</style>
|
|
17
|
-
<script type="module" src="./dist/liquidcars-atlas.js?v=0.1.
|
|
17
|
+
<script type="module" src="./dist/liquidcars-atlas.js?v=0.1.18"></script>
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
20
|
<header>
|
|
21
21
|
<h1>LiquidCars Atlas</h1>
|
|
22
|
-
<p>Prueba de distribución del componente <code><liquidcars-atlas></code> · v0.1.
|
|
22
|
+
<p>Prueba de distribución del componente <code><liquidcars-atlas></code> · v0.1.18</p>
|
|
23
23
|
</header>
|
|
24
24
|
<main>
|
|
25
25
|
<liquidcars-atlas id="atlas" height="720" relation-mode="selected" shell-labels="on"></liquidcars-atlas>
|