aurea-eden 1.25.1 → 1.26.0

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.
Files changed (93) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +300 -95
  3. package/dist/bpmn-diagram.es.js +37516 -25040
  4. package/dist/bpmn-diagram.umd.js +13 -5790
  5. package/package.json +17 -8
  6. package/.gitattributes +0 -2
  7. package/.github/workflows/static.yml +0 -43
  8. package/CHANGELOG.md +0 -60
  9. package/README_.md +0 -174
  10. package/assets/3diagram_logo.png +0 -0
  11. package/assets/aurea-eden-logo.jpeg +0 -0
  12. package/assets/favicon/about.txt +0 -6
  13. package/assets/favicon/android-chrome-192x192.png +0 -0
  14. package/assets/favicon/android-chrome-512x512.png +0 -0
  15. package/assets/favicon/apple-touch-icon.png +0 -0
  16. package/assets/favicon/favicon-16x16.png +0 -0
  17. package/assets/favicon/favicon-32x32.png +0 -0
  18. package/assets/favicon/favicon.ico +0 -0
  19. package/assets/favicon/site.webmanifest +0 -1
  20. package/assets/threejs_camera.jpg.webp +0 -0
  21. package/assets/threejs_camera3.jpg.webp +0 -0
  22. package/assets/threejs_cameras.webp +0 -0
  23. package/assets/threejs_cameras2.webp +0 -0
  24. package/assets/threejs_objects.webp +0 -0
  25. package/assets/threejs_scene.webp +0 -0
  26. package/assets/threejs_scene_graph.webp +0 -0
  27. package/favicon.ico +0 -0
  28. package/index.html +0 -34
  29. package/index.js +0 -153
  30. package/lib/connectors/Connector.js +0 -47
  31. package/lib/diagrams/Diagram.js +0 -710
  32. package/lib/diagrams/DiagramConstants.js +0 -22
  33. package/lib/elements/Element.js +0 -860
  34. package/lib/materials/BarMaterial.js +0 -17
  35. package/lib/materials/DiagramEditMaterial.js +0 -28
  36. package/lib/notations/BpmnDiagram.js +0 -861
  37. package/lib/shapes/Shape.js +0 -23
  38. package/lib/shapes/bar/ValueBarConstants.js +0 -34
  39. package/lib/shapes/bar/ValueBarShape.js +0 -52
  40. package/lib/shapes/basic/BasicShapeConstants.js +0 -23
  41. package/lib/shapes/basic/BoxShape.js +0 -12
  42. package/lib/shapes/basic/CircleShape.js +0 -55
  43. package/lib/shapes/basic/DiamondShape.js +0 -169
  44. package/lib/shapes/basic/RoundedRectangleShape.js +0 -180
  45. package/lib/shapes/connector/ConnectorConstants.js +0 -7
  46. package/lib/shapes/connector/RoundedCornerOrthogonalConnectorShape.js +0 -229
  47. package/lib/shapes/icon/IconConstants.js +0 -7
  48. package/lib/shapes/icon/IconShape.js +0 -92
  49. package/lib/shapes/icon/bpmn/activities/ad-hoc-marker.svg +0 -50
  50. package/lib/shapes/icon/bpmn/activities/business-rule.svg +0 -92
  51. package/lib/shapes/icon/bpmn/activities/compensation-marker.svg +0 -50
  52. package/lib/shapes/icon/bpmn/activities/loop-marker.svg +0 -50
  53. package/lib/shapes/icon/bpmn/activities/manual.svg +0 -51
  54. package/lib/shapes/icon/bpmn/activities/parallel-mi-marker.svg +0 -70
  55. package/lib/shapes/icon/bpmn/activities/receive.svg +0 -77
  56. package/lib/shapes/icon/bpmn/activities/script.svg +0 -54
  57. package/lib/shapes/icon/bpmn/activities/send.svg +0 -86
  58. package/lib/shapes/icon/bpmn/activities/sequential-mi-marker.svg +0 -70
  59. package/lib/shapes/icon/bpmn/activities/service.svg +0 -58
  60. package/lib/shapes/icon/bpmn/activities/sub-process-marker.svg +0 -51
  61. package/lib/shapes/icon/bpmn/activities/user.svg +0 -50
  62. package/lib/shapes/icon/bpmn/events/compensation.svg +0 -47
  63. package/lib/shapes/icon/bpmn/events/conditional.svg +0 -47
  64. package/lib/shapes/icon/bpmn/events/error.svg +0 -47
  65. package/lib/shapes/icon/bpmn/events/escalation.svg +0 -47
  66. package/lib/shapes/icon/bpmn/events/intermediate-compensation.svg +0 -53
  67. package/lib/shapes/icon/bpmn/events/intermediate-conditional.svg +0 -53
  68. package/lib/shapes/icon/bpmn/events/intermediate-escalation.svg +0 -53
  69. package/lib/shapes/icon/bpmn/events/intermediate-link-catch.svg +0 -53
  70. package/lib/shapes/icon/bpmn/events/intermediate-link-throw.svg +0 -53
  71. package/lib/shapes/icon/bpmn/events/intermediate-receive.svg +0 -53
  72. package/lib/shapes/icon/bpmn/events/intermediate-send.svg +0 -69
  73. package/lib/shapes/icon/bpmn/events/intermediate-signal-catch.svg +0 -53
  74. package/lib/shapes/icon/bpmn/events/intermediate-signal-throw.svg +0 -53
  75. package/lib/shapes/icon/bpmn/events/intermediate-timer.svg +0 -107
  76. package/lib/shapes/icon/bpmn/events/intermediate.svg +0 -49
  77. package/lib/shapes/icon/bpmn/events/message-end.svg +0 -54
  78. package/lib/shapes/icon/bpmn/events/message-start.svg +0 -41
  79. package/lib/shapes/icon/bpmn/events/signal-end.svg +0 -47
  80. package/lib/shapes/icon/bpmn/events/signal-start.svg +0 -47
  81. package/lib/shapes/icon/bpmn/events/terminate.svg +0 -49
  82. package/lib/shapes/icon/bpmn/events/timer.svg +0 -104
  83. package/lib/shapes/icon/bpmn/gateways/complex.svg +0 -61
  84. package/lib/shapes/icon/bpmn/gateways/event-based.svg +0 -68
  85. package/lib/shapes/icon/bpmn/gateways/exclusive.svg +0 -57
  86. package/lib/shapes/icon/bpmn/gateways/inclusive.svg +0 -57
  87. package/lib/shapes/icon/bpmn/gateways/parallel.svg +0 -56
  88. package/lib/shapes/icon/decorators.svg +0 -262
  89. package/lib/shapes/icon/hexagon.svg +0 -5
  90. package/lib/shapes/text/Roboto_Regular.json +0 -5610
  91. package/lib/shapes/text/TextShape.js +0 -29
  92. package/lib/shapes/text/fonts/Roboto.zip +0 -0
  93. package/vite.config.js +0 -15
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
@@ -1,8 +1,53 @@
1
- # Aurea EDEN
2
-
3
- ![Aurea EDEN Logo](assets/aurea-eden-logo.jpeg)
4
-
5
- A flexible Three.js-based framework for creating custom diagramming notations in 3D, featuring built-in BPMN support while enabling developers to define and extend their own visual languages with parameter-driven transformations.
1
+ # Aurea EDEN: <br>Evolving Diagramming with Enriched Notations
2
+
3
+ [![Version](https://img.shields.io/badge/version-1.25.1-blue.svg)](https://github.com/robertwaszkowski/aurea-eden)
4
+ [![License: GPL-3.0](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
5
+ [![Live Demo](https://img.shields.io/badge/Live_Demo-gh--pages-green.svg)](https://robertwaszkowski.github.io/aurea-eden/)
6
+
7
+ <table>
8
+ <tr>
9
+ <td width="220" align="center" valign="top">
10
+ <img src="assets/aurea-eden-logo.jpeg" alt="Aurea EDEN Logo" width="200"/>
11
+ </td>
12
+ <td valign="top">
13
+ <p>
14
+ <strong>Aurea EDEN</strong> (<i>Evolving Diagramming with Enriched Notations</i>) is a flexible JavaScript library built on Three.js. It helps you create 3D diagrams, going beyond basic 2D to handle complex data better. <strong>Aurea EDEN</strong> offers extended element placement functionality, utilizes JavaScript method chaining for easy diagram manipulation, and enables users to define custom elements for any notation. This facilitates the creation of richer, more insightful models and enhances data visualization across diverse scientific and engineering domains.
15
+ </p>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+
20
+ ## Motivation
21
+
22
+ Traditional 2D diagrams often struggle to convey the full depth of information in complex systems, leading to cluttered representations. While 3D visualization offers potential for richer semantics and improved comprehension, many tools lack the flexibility to create custom notations or integrate quantitative data directly into the visual model. Aurea EDEN addresses this gap by providing a framework that empowers users to:
23
+
24
+ * Define, adapt, and evolve their own visual notations.
25
+ * Seamlessly integrate 2D and 3D elements.
26
+ * Visualize not only the model's structure but also associated execution data or statistical parameters.
27
+
28
+ ## Key Features
29
+
30
+ * **3D Diagramming:** Leverages Three.js for robust 3D rendering of diagrams.
31
+ * **Flexible Notation Development:** Easily create and customize new diagrammatic notations (e.g., UML, BPMN, or domain-specific).
32
+ * **Enriched Data Visualization:** Directly visualize quantitative data (e.g., performance metrics, statistical parameters) as 3D elements (like value bars) on diagram components.
33
+ * **Extended Element Placement:** Advanced options for positioning elements, including contextual placement relative to other elements and direct coordinate positioning.
34
+ * **Intuitive Connection Design:** Definable connection points (e.g., "north," "west") and automated routing for connectors.
35
+ * **Method Chaining API:** Simplifies diagram construction and manipulation through a fluent JavaScript API.
36
+ * **Modular Architecture:** Core components for Diagrams, Elements, Shapes, Connectors, and Materials allow for high extensibility.
37
+ * **Import/Export Capabilities:** Support for importing and exporting diagrams (extensible for various formats).
38
+ * **Multiple Diagram Modes:**
39
+ * **VIEW Mode:** Default top-down view for standard diagram display.
40
+ * **ANALYZE Mode:** Perspective view for 3D data visualization, automatically adding value bars and using color scales.
41
+ * **EDIT Mode:** Top-down view intended for diagram modification operations.
42
+
43
+ ## Live Demo
44
+
45
+ <a href="https://robertwaszkowski.github.io/aurea-eden/">
46
+ <img src="assets/figDiagramVisualization.png" alt="Diagram Visualization Example" width="600"/>
47
+ </a>
48
+
49
+ Explore Aurea EDEN's capabilities through the live demo:
50
+ [https://robertwaszkowski.github.io/aurea-eden/](https://robertwaszkowski.github.io/aurea-eden/)
6
51
 
7
52
  ## Table of Contents
8
53
 
@@ -18,136 +63,301 @@ A flexible Three.js-based framework for creating custom diagramming notations in
18
63
  ## Installation
19
64
 
20
65
  ```bash
21
- npm install aurea-eden-lib
66
+ npm install aurea-eden
22
67
  ```
23
68
 
24
69
  ## Quick Start
25
70
 
71
+ To quickly try Aurea EDEN, create two files in your project directory:
72
+
73
+ **index.html**
74
+ ```html
75
+ <!DOCTYPE html>
76
+ <html lang="en">
77
+ <head>
78
+ <meta charset="UTF-8">
79
+ <title>Aurea EDEN Quick Start</title>
80
+ <style>
81
+ body { margin: 0; }
82
+ </style>
83
+ </head>
84
+ <body>
85
+ <script type="module" src="index.js"></script>
86
+ </body>
87
+ </html>
88
+ ```
89
+
90
+ **index.js**
26
91
  ```javascript
27
- import { BpmnDiagram } from 'aurea-eden-lib';
92
+ import { BpmnDiagram } from 'aurea-eden';
28
93
 
29
94
  // Create new diagram
30
- const diagram = new BpmnDiagram(container);
95
+ const diagram = new BpmnDiagram(document.body);
31
96
 
32
97
  // Add elements
33
- diagram.addStartEvent('e1')
34
- .addTask('t1')
98
+ diagram.addStartEvent('e1');
99
+
100
+ diagram.addTask('a1')
35
101
  .positionRightOf('e1')
36
- .addWrappedText('Handle Task')
37
- .connectFrom('e1')
38
- .setValue(75)
39
- .addValueBar();
102
+ .addWrappedText('Handle Quotations')
103
+ .connectFrom('e1', 'E', 'W')
104
+ .addValueBar(30);
105
+
106
+ diagram.addEndEvent('e2')
107
+ .positionRightOf('a1')
108
+ .connectFrom('a1', 'E', 'W');
40
109
 
41
110
  // Arrange and display
42
111
  diagram.arrange();
43
112
  diagram.fitScreen();
113
+
114
+ // Add a listener to the window.
115
+ // Let it toggle VIEW and ANALYZE modes when the user push the space key.
116
+ window.addEventListener('keydown', (event) => {
117
+ if (event.key === ' ') {
118
+ diagram.setMode(diagram.mode === 'VIEW' ? 'ANALYZE' : 'VIEW');
119
+ }
120
+ });
44
121
  ```
45
122
 
46
- ## Features
123
+ Open `index.html` in your browser to see the diagram rendered.
47
124
 
48
- - **3D Visualization**: Extend 2D notations into 3D space
49
- - **Parameter Visualization**: Show quantitative data through value bars
50
- - **Custom Notations**: Create your own visual languages
51
- - **Interactive Controls**: Pan, zoom, and rotate diagrams
52
- - **Multiple View Modes**: Switch between VIEW and ANALYZE modes
53
- - **Fluid API**: Method chaining for intuitive diagram creation
54
- - **Built-in BPMN Support**: Ready-to-use BPMN elements
55
125
 
56
- ## Core Components
126
+ # Core Concepts / Architecture Overview
57
127
 
58
- ### Diagram Class
128
+ Aurea EDEN's architecture is modular, built around several key components:
59
129
 
60
- The main container for all diagram elements:
130
+ * **Diagram:** Manages the overall scene, camera, rendering (via Three.js), elements, and connectors. Base class for specific notations (e.g., `BpmnDiagram`).
131
+ * **Element:** Represents individual components in a diagram (e.g., tasks, events). Combines shapes, materials, text, icons, and value bars. Provides methods for positioning and connecting.
132
+ * **Shape:** Defines the 3D geometry of elements and connectors (e.g., `RoundedRectangleShape`, `CircleShape`, `DiamondShape`). Custom shapes can be created by extending the base `Shape` class.
133
+ * **Connector:** Defines relationships between elements. Handles positioning and alignment, supporting custom styles and waypoints.
134
+ * **Material:** Defines the appearance (color, texture, transparency) of shapes and connectors using Three.js materials.
61
135
 
62
- ```javascript
63
- const diagram = new BpmnDiagram(container);
64
- diagram.setMode('ANALYZE'); // Switch to analysis mode
65
- diagram.fitScreen(); // Adjust view
136
+ This architecture allows for easy extension and customization to support various diagramming needs.
137
+
138
+
139
+ # Detailed Usage / API Highlights
140
+
141
+ ## Creating Diagrams
142
+
143
+ Instantiate a diagram class (either a pre-defined one like `BpmnDiagram` or a custom one).
144
+
145
+ ```js
146
+ import { UmlActivityDiagram } from './lib/notations/UmlActivityDiagram.js'; // Example custom notation
147
+ const umlDiagram = new UmlActivityDiagram(document.getElementById('diagram-container'));
66
148
  ```
67
149
 
68
- ### Elements
150
+ ## Adding Elements
69
151
 
70
- Available BPMN elements:
71
- - StartEvent
72
- - EndEvent
73
- - Task
74
- - UserTask
75
- - Gateway
76
- - Connector
152
+ Elements are added using notation-specific methods (e.g., addStartEvent, addTask in BpmnDiagram) or a generic addElement method. Method chaining is heavily used for configuration.
77
153
 
78
- ### Materials
154
+ ```js
155
+ // BPMN Example
156
+ diagram.addTask('task1')
157
+ .positionAt({ x: 100, y: 50, z: 0 }) // Direct positioning
158
+ .addWrappedText('My Task Text');
79
159
 
80
- Three material types:
81
- ```javascript
82
- import { DiagramMaterial, BarMaterial, EditMaterial } from 'aurea-eden-lib';
160
+ // Generic element with a custom shape
161
+ import { MyCustomShape } from './lib/shapes/MyCustomShape.js';
162
+ const customShapeInstance = new MyCustomShape();
163
+ diagram.addElement('customElem1', customShapeInstance)
164
+ .positionRightOf('task1')
165
+ .addValueBar(90);
166
+ ```
83
167
 
84
- // Standard element material
85
- new DiagramMaterial({
86
- color: 0x00ff00,
87
- shininess: 60
88
- });
168
+ ## Connecting Elements
89
169
 
90
- // Value bar material
91
- new BarMaterial({
92
- color: 0xff0000,
93
- opacity: 0.5
94
- });
170
+ Connect elements using the connectFrom method or by adding connectors directly.
171
+
172
+ ```js
173
+ // Connect 'task2' from the 'East' point of 'task1' to the 'West' point of 'task2'
174
+ diagram.getElementByID('task2').connectFrom('task1', 'E', 'W');
175
+
176
+ // Create a custom connector with specific waypoints
177
+ const DISTANCE_BETWEEN_ELEMENTS = 48;
178
+ const waypoints = [
179
+ diagram.getElementById('g1').getNorthPoint(),
180
+ { x: diagram.getElementById('g1').getNorthPoint().x,
181
+ y: diagram.getElementById('a3').getNorthPoint().y + DISTANCE_BETWEEN_ELEMENTS },
182
+ { x: diagram.getElementById('a7').getNorthPoint().x,
183
+ y: diagram.getElementById('a3').getNorthPoint().y + DISTANCE_BETWEEN_ELEMENTS },
184
+ diagram.getElementById('a7').getNorthPoint()
185
+ ];
186
+ diagram.addFlowConnector('customFlow1', waypoints);
95
187
  ```
96
188
 
97
- ## Advanced Usage
189
+ ## 3D Visualization & Analysis Mode
98
190
 
99
- ### Creating Custom Elements
191
+ * **Value Bars**: Use element.addValueBar(value) to associate quantitative data with an element.
192
+ * **Analyze Mode**: Switch to "ANALYZE" mode to view these values as 3D bars. The diagram tilts, and bars are color-coded (green for high, red for low).
100
193
 
101
- ```javascript
102
- import { DiagramElement, Shape } from 'aurea-eden-lib';
194
+ ```js
195
+ diagram.getElementById('task1').addValueBar(75);
196
+ diagram.getElementById('task2').addValueBar(30);
197
+ diagram.setMode("ANALYZE"); // Switches to perspective view, shows bars
198
+ ```
199
+
200
+ * **Camera Control**:
201
+ ```js
202
+ diagram.center(); // Center the diagram in view
203
+ diagram.fitScreen(); // Fit the entire diagram within the viewport
204
+ diagram.rotate(45); // Rotate the camera view by 45 degrees around Y-axis
205
+ ```
103
206
 
104
- class CustomElement extends DiagramElement {
105
- constructor(diagram, id) {
106
- super(diagram, id);
107
- this.shape = new CustomShape();
108
- this.add(this.shape);
207
+ # Customization & Extensibility
208
+
209
+ Aurea EDEN is designed for extensibility:
210
+
211
+ ## Creating New Notations:
212
+
213
+ Extend the base Diagram class. Implement methods to add notation-specific elements and connectors.
214
+ ```js
215
+ // lib/notations/MyNotationDiagram.js
216
+ import { Diagram } from '../diagrams/Diagram.js';
217
+ import { Element } from '../elements/Element.js';
218
+ import { MyCustomShape } from '../shapes/MyCustomShape.js';
219
+
220
+ class MyNotationDiagram extends Diagram {
221
+ constructor(container) {
222
+ super(container);
223
+ }
224
+
225
+ addMyCustomElement(elementId, text) {
226
+ const element = new Element(elementId, new MyCustomShape());
227
+ this.addElement(element);
228
+ element.addWrappedText(text);
229
+ return element;
109
230
  }
110
231
  }
232
+ export { MyNotationDiagram };
111
233
  ```
112
234
 
113
- ### Custom Connectors
235
+ ## Custom Shapes:
236
+
237
+ Extend the base Shape class (which itself uses THREE.BufferGeometry and THREE.Material).
238
+
239
+ ```js
240
+ // lib/shapes/HexagonShape.js
241
+ import * as THREE from 'three';
242
+ import { Shape } from '../Shape.js';
243
+ import { DiagramEditMaterial } from '../../materials/DiagramEditMaterial.js';
244
+
245
+ class HexagonShape extends Shape {
246
+ constructor(lineWidth = 1) {
247
+ const shape = new THREE.Shape();
248
+ const size = 30;
249
+ // define hexagon points and shape path
250
+ const points = [];
251
+ for (let i = 0; i < 6; i++) {
252
+ const angle = (i * Math.PI) / 3;
253
+ points.push(new THREE.Vector2(size * Math.cos(angle), size * Math.sin(angle)));
254
+ }
255
+ shape.moveTo(points[0].x, points[0].y);
256
+ points.forEach(point => shape.lineTo(point.x, point.y));
257
+ shape.lineTo(points[0].x, points[0].y); // Close the shape
258
+
259
+ const extrudeSettings = {
260
+ steps: 2,
261
+ depth: 1,
262
+ bevelEnabled: true,
263
+ bevelThickness: 0.2,
264
+ bevelSize: 0.1,
265
+ bevelOffset: 0,
266
+ bevelSegments: 3
267
+ };
268
+ const geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);
269
+ const material = new DiagramEditMaterial(0x006699); // Example material
270
+ super(geometry, material);
271
+ this.width = size * 2; // Approximate width
272
+ this.height = size * Math.sqrt(3); // Approximate height
273
+ }
274
+ }
275
+ export { HexagonShape };
276
+ ```
114
277
 
115
- ```javascript
116
- const waypoints = [
117
- element1.getNorthPoint(),
118
- { x: 100, y: 200, z: 0 },
119
- element2.getSouthPoint()
120
- ];
278
+ ## Custom Materials:
279
+
280
+ Create new materials by extending THREE.Material subclasses (e.g., `THREE.ShaderMaterial`, `THREE.MeshLambertMaterial`).
281
+
282
+ ```js
283
+ // lib/materials/GradientMaterial.js
284
+ import * as THREE from 'three';
285
+
286
+ class GradientMaterial extends THREE.ShaderMaterial {
287
+ constructor(colorStart = 0x00ff00, colorEnd = 0x0000ff) {
288
+ super({
289
+ uniforms: {
290
+ colorStart: { value: new THREE.Color(colorStart) },
291
+ colorEnd: { value: new THREE.Color(colorEnd) }
292
+ },
293
+ vertexShader: `
294
+ varying vec2 vUv;
295
+ void main() {
296
+ vUv = uv;
297
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
298
+ }
299
+ `,
300
+ fragmentShader: `
301
+ uniform vec3 colorStart;
302
+ uniform vec3 colorEnd;
303
+ varying vec2 vUv;
304
+ void main() {
305
+ gl_FragColor = vec4(mix(colorStart, colorEnd, vUv.y), 1.0);
306
+ }
307
+ `
308
+ });
309
+ }
310
+ }
311
+ export { GradientMaterial };
312
+ ```
313
+
314
+ ## Custom Connectors:
315
+
316
+ Define the shape of a connector by creating a class that extends `Shape` and provides the geometry (e.g., using `THREE.TubeGeometry` for a curved connector).
317
+
318
+ ```js
319
+ // lib/shapes/connector/CurvedConnectorShape.js
320
+ import * as THREE from 'three';
321
+ import { Shape } from '../Shape.js';
322
+ import { DiagramEditMaterial } from '../../materials/DiagramEditMaterial.js';
121
323
 
122
- diagram.addFlowConnector('connector1', waypoints);
324
+ class CurvedConnectorShape extends Shape {
325
+ constructor(points) { // points is an array of {x, y, z} objects or THREE.Vector3 instances
326
+ const curvePoints = points.map(p => new THREE.Vector3(p.x, p.y, p.z || 0));
327
+ const curve = new THREE.CatmullRomCurve3(curvePoints);
328
+
329
+ const tubeRadius = 0.5;
330
+ const tubularSegments = 64;
331
+ const radialSegments = 8;
332
+ const closed = false;
333
+ const geometry = new THREE.TubeGeometry(curve, tubularSegments, tubeRadius, radialSegments, closed);
334
+ const material = new DiagramEditMaterial(0x006699); // Example material
335
+ super(geometry, material);
336
+ }
337
+ }
338
+ export { CurvedConnectorShape };
123
339
  ```
124
340
 
125
- ## API Reference
341
+ # Examples
342
+ The library includes examples, such as a `BpmnDiagram` implementation, demonstrating how to:
126
343
 
127
- ### BpmnDiagram Methods
344
+ * Define BPMN-specific elements (Events, Tasks, Gateways) using base shapes and icons.
345
+ * Create connectors (Sequence Flows).
346
+ * Add text labels.
347
+ * Implement import functionality for BPMN data.
128
348
 
129
- #### Element Creation
130
- - `addStartEvent(id)`
131
- - `addEndEvent(id)`
132
- - `addTask(id)`
133
- - `addUserTask(id)`
134
- - `addGateway(id)`
349
+ Aurea EDEN is also utilized in the Aurea Low-Code Development Platform (LCDP) for its Modeler and Process Analysis components.
135
350
 
136
- #### Element Positioning
137
- - `positionRightOf(elementId)`
138
- - `positionBelow(elementId)`
139
- - `positionUpRightOf(elementId)`
140
- - `positionDownRightOf(elementId)`
141
351
 
142
- #### View Control
143
- - `center()`
144
- - `fitScreen()`
145
- - `rotate(angle)`
146
- - `setMode(mode)`
352
+ # Dependencies
353
+
354
+ * **Three.js**: A comprehensive 3D graphics library for creating and displaying animated 3D computer graphics in a web browser.
355
+ * **@tweenjs/tween.js**: JavaScript tweening engine for easy animations.
356
+ * **SVG Loader** (part of Three.js examples): For loading and rendering SVG icons.
147
357
 
148
358
  ## Contributing
149
359
 
150
- 1. Fork the repository
360
+ 1. Fork the repository (https://github.com/robertwaszkowski/aurea-eden)
151
361
  2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
152
362
  3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
153
363
  4. Push to the branch (`git push origin feature/AmazingFeature`)
@@ -157,15 +367,10 @@ diagram.addFlowConnector('connector1', waypoints);
157
367
 
158
368
  This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
159
369
 
160
- ## Dependencies
161
-
162
- - Three.js: 3D graphics library
163
- - Tween.js: Animation library
164
-
165
- ## Author
370
+ ## Author / Contact
166
371
 
167
372
  Robert Waszkowski
168
373
 
169
- ---
374
+ **Email:** robert.waszkowski@wat.edu.pl
170
375
 
171
- For more examples and detailed API documentation, visit our [GitHub Wiki](https://github.com/your-repo/aurea-eden/wiki).
376
+ **GitHub:** [robertwaszkowski/aurea-eden](https://github.com/robertwaszkowski/aurea-eden)