abstract-3d 0.1.2

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 (219) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -0
  4. package/lib/abstract-3d.d.ts +317 -0
  5. package/lib/abstract-3d.d.ts.map +1 -0
  6. package/lib/abstract-3d.js +333 -0
  7. package/lib/abstract-3d.js.map +1 -0
  8. package/lib/index.d.ts +3 -0
  9. package/lib/index.d.ts.map +1 -0
  10. package/lib/index.js +19 -0
  11. package/lib/index.js.map +1 -0
  12. package/lib/renderers/dxf/dxf-encoding.d.ts +7 -0
  13. package/lib/renderers/dxf/dxf-encoding.d.ts.map +1 -0
  14. package/lib/renderers/dxf/dxf-encoding.js +343 -0
  15. package/lib/renderers/dxf/dxf-encoding.js.map +1 -0
  16. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts +3 -0
  17. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts.map +1 -0
  18. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +52 -0
  19. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -0
  20. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts +3 -0
  21. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts.map +1 -0
  22. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +54 -0
  23. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -0
  24. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts +3 -0
  25. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts.map +1 -0
  26. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +62 -0
  27. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -0
  28. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts +3 -0
  29. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts.map +1 -0
  30. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +38 -0
  31. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -0
  32. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts +3 -0
  33. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -0
  34. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +61 -0
  35. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -0
  36. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts +3 -0
  37. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -0
  38. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +61 -0
  39. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -0
  40. package/lib/renderers/dxf/dxf.d.ts +3 -0
  41. package/lib/renderers/dxf/dxf.d.ts.map +1 -0
  42. package/lib/renderers/dxf/dxf.js +64 -0
  43. package/lib/renderers/dxf/dxf.js.map +1 -0
  44. package/lib/renderers/dxf/index.d.ts +2 -0
  45. package/lib/renderers/dxf/index.d.ts.map +1 -0
  46. package/lib/renderers/dxf/index.js +18 -0
  47. package/lib/renderers/dxf/index.js.map +1 -0
  48. package/lib/renderers/index.d.ts +5 -0
  49. package/lib/renderers/index.d.ts.map +1 -0
  50. package/lib/renderers/index.js +21 -0
  51. package/lib/renderers/index.js.map +1 -0
  52. package/lib/renderers/react/index.d.ts +6 -0
  53. package/lib/renderers/react/index.d.ts.map +1 -0
  54. package/lib/renderers/react/index.js +21 -0
  55. package/lib/renderers/react/index.js.map +1 -0
  56. package/lib/renderers/react/react-camera.d.ts +60 -0
  57. package/lib/renderers/react/react-camera.d.ts.map +1 -0
  58. package/lib/renderers/react/react-camera.js +132 -0
  59. package/lib/renderers/react/react-camera.js.map +1 -0
  60. package/lib/renderers/react/react-dimension.d.ts +12 -0
  61. package/lib/renderers/react/react-dimension.d.ts.map +1 -0
  62. package/lib/renderers/react/react-dimension.js +39 -0
  63. package/lib/renderers/react/react-dimension.js.map +1 -0
  64. package/lib/renderers/react/react-group.d.ts +18 -0
  65. package/lib/renderers/react/react-group.d.ts.map +1 -0
  66. package/lib/renderers/react/react-group.js +62 -0
  67. package/lib/renderers/react/react-group.js.map +1 -0
  68. package/lib/renderers/react/react-hotspot.d.ts +30 -0
  69. package/lib/renderers/react/react-hotspot.d.ts.map +1 -0
  70. package/lib/renderers/react/react-hotspot.js +71 -0
  71. package/lib/renderers/react/react-hotspot.js.map +1 -0
  72. package/lib/renderers/react/react-material.d.ts +13 -0
  73. package/lib/renderers/react/react-material.d.ts.map +1 -0
  74. package/lib/renderers/react/react-material.js +85 -0
  75. package/lib/renderers/react/react-material.js.map +1 -0
  76. package/lib/renderers/react/react-mesh.d.ts +10 -0
  77. package/lib/renderers/react/react-mesh.d.ts.map +1 -0
  78. package/lib/renderers/react/react-mesh.js +238 -0
  79. package/lib/renderers/react/react-mesh.js.map +1 -0
  80. package/lib/renderers/react/react-scene.d.ts +20 -0
  81. package/lib/renderers/react/react-scene.d.ts.map +1 -0
  82. package/lib/renderers/react/react-scene.js +44 -0
  83. package/lib/renderers/react/react-scene.js.map +1 -0
  84. package/lib/renderers/react/react.d.ts +30 -0
  85. package/lib/renderers/react/react.d.ts.map +1 -0
  86. package/lib/renderers/react/react.js +48 -0
  87. package/lib/renderers/react/react.js.map +1 -0
  88. package/lib/renderers/shared.d.ts +6 -0
  89. package/lib/renderers/shared.d.ts.map +1 -0
  90. package/lib/renderers/shared.js +93 -0
  91. package/lib/renderers/shared.js.map +1 -0
  92. package/lib/renderers/stl/index.d.ts +2 -0
  93. package/lib/renderers/stl/index.d.ts.map +1 -0
  94. package/lib/renderers/stl/index.js +18 -0
  95. package/lib/renderers/stl/index.js.map +1 -0
  96. package/lib/renderers/stl/stl-encoding.d.ts +4 -0
  97. package/lib/renderers/stl/stl-encoding.d.ts.map +1 -0
  98. package/lib/renderers/stl/stl-encoding.js +26 -0
  99. package/lib/renderers/stl/stl-encoding.js.map +1 -0
  100. package/lib/renderers/stl/stl-geometries/stl-box.d.ts +3 -0
  101. package/lib/renderers/stl/stl-geometries/stl-box.d.ts.map +1 -0
  102. package/lib/renderers/stl/stl-geometries/stl-box.js +57 -0
  103. package/lib/renderers/stl/stl-geometries/stl-box.js.map +1 -0
  104. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts +3 -0
  105. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts.map +1 -0
  106. package/lib/renderers/stl/stl-geometries/stl-cone.js +54 -0
  107. package/lib/renderers/stl/stl-geometries/stl-cone.js.map +1 -0
  108. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts +3 -0
  109. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts.map +1 -0
  110. package/lib/renderers/stl/stl-geometries/stl-cylinder.js +62 -0
  111. package/lib/renderers/stl/stl-geometries/stl-cylinder.js.map +1 -0
  112. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts +3 -0
  113. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts.map +1 -0
  114. package/lib/renderers/stl/stl-geometries/stl-plane.js +44 -0
  115. package/lib/renderers/stl/stl-geometries/stl-plane.js.map +1 -0
  116. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts +3 -0
  117. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts.map +1 -0
  118. package/lib/renderers/stl/stl-geometries/stl-polygon.js +59 -0
  119. package/lib/renderers/stl/stl-geometries/stl-polygon.js.map +1 -0
  120. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts +3 -0
  121. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts.map +1 -0
  122. package/lib/renderers/stl/stl-geometries/stl-shape.js +59 -0
  123. package/lib/renderers/stl/stl-geometries/stl-shape.js.map +1 -0
  124. package/lib/renderers/stl/stl.d.ts +3 -0
  125. package/lib/renderers/stl/stl.d.ts.map +1 -0
  126. package/lib/renderers/stl/stl.js +57 -0
  127. package/lib/renderers/stl/stl.js.map +1 -0
  128. package/lib/renderers/svg/index.d.ts +3 -0
  129. package/lib/renderers/svg/index.d.ts.map +1 -0
  130. package/lib/renderers/svg/index.js +18 -0
  131. package/lib/renderers/svg/index.js.map +1 -0
  132. package/lib/renderers/svg/svg-encoding.d.ts +14 -0
  133. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -0
  134. package/lib/renderers/svg/svg-encoding.js +27 -0
  135. package/lib/renderers/svg/svg-encoding.js.map +1 -0
  136. package/lib/renderers/svg/svg-geometries/shared.d.ts +12 -0
  137. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -0
  138. package/lib/renderers/svg/svg-geometries/shared.js +12 -0
  139. package/lib/renderers/svg/svg-geometries/shared.js.map +1 -0
  140. package/lib/renderers/svg/svg-geometries/svg-box.d.ts +4 -0
  141. package/lib/renderers/svg/svg-geometries/svg-box.d.ts.map +1 -0
  142. package/lib/renderers/svg/svg-geometries/svg-box.js +70 -0
  143. package/lib/renderers/svg/svg-geometries/svg-box.js.map +1 -0
  144. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts +4 -0
  145. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts.map +1 -0
  146. package/lib/renderers/svg/svg-geometries/svg-cone.js +64 -0
  147. package/lib/renderers/svg/svg-geometries/svg-cone.js.map +1 -0
  148. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts +4 -0
  149. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts.map +1 -0
  150. package/lib/renderers/svg/svg-geometries/svg-cylinder.js +69 -0
  151. package/lib/renderers/svg/svg-geometries/svg-cylinder.js.map +1 -0
  152. package/lib/renderers/svg/svg-geometries/svg-line.d.ts +4 -0
  153. package/lib/renderers/svg/svg-geometries/svg-line.d.ts.map +1 -0
  154. package/lib/renderers/svg/svg-geometries/svg-line.js +39 -0
  155. package/lib/renderers/svg/svg-geometries/svg-line.js.map +1 -0
  156. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts +5 -0
  157. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts.map +1 -0
  158. package/lib/renderers/svg/svg-geometries/svg-plane.js +57 -0
  159. package/lib/renderers/svg/svg-geometries/svg-plane.js.map +1 -0
  160. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts +4 -0
  161. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts.map +1 -0
  162. package/lib/renderers/svg/svg-geometries/svg-polygon.js +20 -0
  163. package/lib/renderers/svg/svg-geometries/svg-polygon.js.map +1 -0
  164. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts +4 -0
  165. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts.map +1 -0
  166. package/lib/renderers/svg/svg-geometries/svg-shape.js +20 -0
  167. package/lib/renderers/svg/svg-geometries/svg-shape.js.map +1 -0
  168. package/lib/renderers/svg/svg-geometries/svg-text.d.ts +4 -0
  169. package/lib/renderers/svg/svg-geometries/svg-text.d.ts.map +1 -0
  170. package/lib/renderers/svg/svg-geometries/svg-text.js +46 -0
  171. package/lib/renderers/svg/svg-geometries/svg-text.js.map +1 -0
  172. package/lib/renderers/svg/svg.d.ts +10 -0
  173. package/lib/renderers/svg/svg.d.ts.map +1 -0
  174. package/lib/renderers/svg/svg.js +98 -0
  175. package/lib/renderers/svg/svg.js.map +1 -0
  176. package/package.json +31 -0
  177. package/src/abstract-3d.ts +578 -0
  178. package/src/index.ts +2 -0
  179. package/src/renderers/dxf/dxf-encoding.ts +348 -0
  180. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +27 -0
  181. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +31 -0
  182. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +45 -0
  183. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +16 -0
  184. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +36 -0
  185. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +36 -0
  186. package/src/renderers/dxf/dxf.ts +38 -0
  187. package/src/renderers/dxf/index.ts +1 -0
  188. package/src/renderers/index.ts +4 -0
  189. package/src/renderers/react/index.ts +5 -0
  190. package/src/renderers/react/react-camera.tsx +208 -0
  191. package/src/renderers/react/react-dimension.tsx +76 -0
  192. package/src/renderers/react/react-group.tsx +133 -0
  193. package/src/renderers/react/react-hotspot.tsx +116 -0
  194. package/src/renderers/react/react-material.tsx +159 -0
  195. package/src/renderers/react/react-mesh.tsx +380 -0
  196. package/src/renderers/react/react-scene.tsx +137 -0
  197. package/src/renderers/react/react.tsx +118 -0
  198. package/src/renderers/shared.ts +111 -0
  199. package/src/renderers/stl/index.ts +1 -0
  200. package/src/renderers/stl/stl-encoding.ts +22 -0
  201. package/src/renderers/stl/stl-geometries/stl-box.ts +33 -0
  202. package/src/renderers/stl/stl-geometries/stl-cone.ts +37 -0
  203. package/src/renderers/stl/stl-geometries/stl-cylinder.ts +45 -0
  204. package/src/renderers/stl/stl-geometries/stl-plane.ts +16 -0
  205. package/src/renderers/stl/stl-geometries/stl-polygon.ts +35 -0
  206. package/src/renderers/stl/stl-geometries/stl-shape.ts +35 -0
  207. package/src/renderers/stl/stl.ts +33 -0
  208. package/src/renderers/svg/index.ts +2 -0
  209. package/src/renderers/svg/svg-encoding.ts +46 -0
  210. package/src/renderers/svg/svg-geometries/shared.ts +10 -0
  211. package/src/renderers/svg/svg-geometries/svg-box.ts +61 -0
  212. package/src/renderers/svg/svg-geometries/svg-cone.ts +52 -0
  213. package/src/renderers/svg/svg-geometries/svg-cylinder.ts +58 -0
  214. package/src/renderers/svg/svg-geometries/svg-line.ts +20 -0
  215. package/src/renderers/svg/svg-geometries/svg-plane.ts +44 -0
  216. package/src/renderers/svg/svg-geometries/svg-polygon.ts +25 -0
  217. package/src/renderers/svg/svg-geometries/svg-shape.ts +25 -0
  218. package/src/renderers/svg/svg-geometries/svg-text.ts +28 -0
  219. package/src/renderers/svg/svg.ts +201 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
4
+
5
+ ## v0.1.0 - 2024-06-05
6
+
7
+ - Start of changelog.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Divid AB
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # abstract-3d
2
+
3
+ [![npm version][version-image]][version-url]
4
+ [![code style: prettier][prettier-image]][prettier-url]
5
+ [![MIT license][license-image]][license-url]
6
+
7
+ Abstract 3d with 4 renderers, react (three js + react three fiber), svg, stl and dxf
@@ -0,0 +1,317 @@
1
+ export type Scene = {
2
+ readonly center: Vec3;
3
+ readonly size: Vec3;
4
+ readonly groups: ReadonlyArray<Group>;
5
+ readonly rotation?: Vec3;
6
+ readonly dimensions?: Dimensions;
7
+ readonly hotSpots?: ReadonlyArray<HotSpot>;
8
+ readonly data?: Record<string, string>;
9
+ };
10
+ export type Renderer = "react" | "ai_schematic" | "ai_detailed" | "dxf";
11
+ export type Dimensions = {
12
+ readonly dimensions: ReadonlyArray<Dimension>;
13
+ readonly material: Material;
14
+ readonly bounds: DimensionBounds;
15
+ };
16
+ export type Dimension = {
17
+ readonly views: ReadonlyArray<View>;
18
+ readonly pos: Vec3;
19
+ readonly rot: Vec3;
20
+ readonly meshes: ReadonlyArray<Mesh>;
21
+ };
22
+ export type DimensionBounds = {
23
+ readonly front: Bounds2;
24
+ readonly back: Bounds2;
25
+ readonly left: Bounds2;
26
+ readonly right: Bounds2;
27
+ readonly top: Bounds2;
28
+ readonly bottom: Bounds2;
29
+ readonly threeD: Bounds3;
30
+ };
31
+ export type HotSpot = {
32
+ readonly id: string;
33
+ readonly mesh: Mesh;
34
+ };
35
+ export type Group = {
36
+ readonly pos: Vec3;
37
+ readonly rot?: Vec3;
38
+ readonly groups?: ReadonlyArray<Group>;
39
+ readonly meshes?: ReadonlyArray<Mesh>;
40
+ readonly data?: Record<string, string>;
41
+ readonly animation?: Animation;
42
+ };
43
+ export type Mesh = {
44
+ readonly material: Material;
45
+ readonly geometry: Cylinder | Cone | Box | Line | Text | Polygon | Plane | Tube | Sphere | Shape;
46
+ };
47
+ export type Material = {
48
+ readonly type: MaterialType;
49
+ readonly normal: string;
50
+ readonly hover?: string;
51
+ readonly selected?: string;
52
+ readonly dxf?: string;
53
+ readonly opacity?: number;
54
+ readonly shininess?: number;
55
+ readonly image?: {
56
+ readonly type: "HashImage";
57
+ readonly hash: string;
58
+ readonly imageType?: string;
59
+ } | {
60
+ readonly type: "UrlImage";
61
+ readonly url: string;
62
+ readonly imageType?: string;
63
+ };
64
+ };
65
+ export type MaterialType = "Phong" | "Lambert" | "Basic";
66
+ export type Cylinder = {
67
+ readonly type: "Cylinder";
68
+ readonly pos: Vec3;
69
+ readonly rot?: Vec3;
70
+ readonly length: number;
71
+ readonly radius: number;
72
+ readonly holes?: ReadonlyArray<Hole>;
73
+ };
74
+ export type Sphere = {
75
+ readonly type: "Sphere";
76
+ readonly pos: Vec3;
77
+ readonly radius: number;
78
+ };
79
+ export type Cone = {
80
+ readonly type: "Cone";
81
+ readonly pos: Vec3;
82
+ readonly rot?: Vec3;
83
+ readonly length: number;
84
+ readonly radius: number;
85
+ };
86
+ export type Line = {
87
+ readonly type: "Line";
88
+ readonly start: Vec3;
89
+ readonly end: Vec3;
90
+ readonly thickness: number;
91
+ };
92
+ export type Tube = {
93
+ readonly type: "Tube";
94
+ readonly pos: Vec3;
95
+ readonly rot?: Vec3;
96
+ readonly radius: number;
97
+ readonly curve: Curve;
98
+ };
99
+ export type Curve = CircleCurve | SplineCurve;
100
+ export type CircleCurve = {
101
+ readonly type: "CircleCurve";
102
+ readonly radius: number;
103
+ readonly angleStart: number;
104
+ readonly angleLength: number;
105
+ };
106
+ export type SplineCurve = {
107
+ readonly type: "SplineCurve";
108
+ readonly points: ReadonlyArray<Vec3>;
109
+ };
110
+ export type Polygon = {
111
+ readonly type: "Polygon";
112
+ readonly points: ReadonlyArray<Vec3>;
113
+ readonly pos: Vec3;
114
+ readonly rot?: Vec3;
115
+ };
116
+ export type Shape = {
117
+ readonly type: "Shape";
118
+ readonly points: ReadonlyArray<Vec2>;
119
+ readonly pos: Vec3;
120
+ readonly rot?: Vec3;
121
+ readonly holes?: ReadonlyArray<Hole>;
122
+ readonly thickness: number;
123
+ };
124
+ export type Plane = {
125
+ readonly type: "Plane";
126
+ readonly pos: Vec3;
127
+ readonly rot?: Vec3;
128
+ readonly size: Vec2;
129
+ readonly holes?: ReadonlyArray<Hole>;
130
+ };
131
+ export type Text = {
132
+ readonly type: "Text";
133
+ readonly pos: Vec3;
134
+ readonly rot?: Vec3;
135
+ readonly text: string;
136
+ readonly fontSize: number;
137
+ };
138
+ export type Box = {
139
+ readonly type: "Box";
140
+ readonly pos: Vec3;
141
+ readonly rot?: Vec3;
142
+ readonly size: Vec3;
143
+ readonly holes?: ReadonlyArray<Hole>;
144
+ };
145
+ export type Hole = RoundHole | SquareHole;
146
+ export type RoundHole = {
147
+ readonly type: "RoundHole";
148
+ readonly pos: Vec2;
149
+ readonly radius: number;
150
+ };
151
+ export type SquareHole = {
152
+ readonly type: "SquareHole";
153
+ readonly pos: Vec2;
154
+ readonly size: Vec2;
155
+ };
156
+ export type Animation = {
157
+ readonly transform: Transform;
158
+ readonly duration: number;
159
+ };
160
+ export type Transform = {
161
+ readonly rot: Vec3;
162
+ readonly trans: Vec3;
163
+ };
164
+ export type Bounds = {
165
+ readonly min: number;
166
+ readonly max: number;
167
+ };
168
+ export type Bounds2 = {
169
+ readonly min: Vec2;
170
+ readonly max: Vec2;
171
+ };
172
+ export type Bounds3 = {
173
+ readonly min: Vec3;
174
+ readonly max: Vec3;
175
+ };
176
+ export type Vec2 = {
177
+ readonly x: number;
178
+ readonly y: number;
179
+ };
180
+ export type Vec3 = {
181
+ readonly x: number;
182
+ readonly y: number;
183
+ readonly z: number;
184
+ };
185
+ export declare const views: readonly ["front", "back", "top", "bottom", "left", "right"];
186
+ export type View = (typeof views)[number];
187
+ export type PlaneMesh = {
188
+ readonly geometry: Plane;
189
+ readonly material: Material;
190
+ };
191
+ export type BoxMesh = {
192
+ readonly geometry: Box;
193
+ readonly material: Material;
194
+ };
195
+ export type CylinderMesh = {
196
+ readonly geometry: Cylinder;
197
+ readonly material: Material;
198
+ };
199
+ export type ConeMesh = {
200
+ readonly geometry: Cone;
201
+ readonly material: Material;
202
+ };
203
+ export type LineMesh = {
204
+ readonly geometry: Line;
205
+ readonly material: Material;
206
+ };
207
+ export type TextMesh = {
208
+ readonly geometry: Text;
209
+ readonly material: Material;
210
+ };
211
+ export type PolygonMesh = {
212
+ readonly geometry: Polygon;
213
+ readonly material: Material;
214
+ };
215
+ export type TubeMesh = {
216
+ readonly geometry: Tube;
217
+ readonly material: Material;
218
+ };
219
+ export type SphereMesh = {
220
+ readonly geometry: Sphere;
221
+ readonly material: Material;
222
+ };
223
+ export type ShapeMesh = {
224
+ readonly geometry: Shape;
225
+ readonly material: Material;
226
+ };
227
+ export declare const vec3: (x: number, y: number, z: number) => Vec3;
228
+ export declare const vec2: (x: number, y: number) => Vec2;
229
+ export declare const vec3Zero: Vec3;
230
+ export declare const vec3PosX: Vec3;
231
+ export declare const vec3NegX: Vec3;
232
+ export declare const vec3PosY: Vec3;
233
+ export declare const vec3NegY: Vec3;
234
+ export declare const vec3PosZ: Vec3;
235
+ export declare const vec3NegZ: Vec3;
236
+ export declare const vec2Zero: Vec2;
237
+ export declare const vec2Flip: (v: Vec2) => Vec2;
238
+ export declare const vec3Flip: (v: Vec3) => Vec3;
239
+ export declare const vec2Scale: (v: Vec2, s: number) => Vec2;
240
+ export declare const vec3Scale: (v: Vec3, s: number) => Vec3;
241
+ export declare const vec2Add: (a: Vec2, b: Vec2) => Vec2;
242
+ export declare const vec3Add: (a: Vec3, b: Vec3) => Vec3;
243
+ export declare const vec2Sub: (a: Vec2, b: Vec2) => Vec2;
244
+ export declare const vec3Sub: (a: Vec3, b: Vec3) => Vec3;
245
+ export declare const vec2Dot: (a: Vec2, b: Vec2) => number;
246
+ export declare const vec3Dot: (a: Vec3, b: Vec3) => number;
247
+ export declare const vec2Length: (v: Vec2) => number;
248
+ export declare const vec3Length: (v: Vec3) => number;
249
+ export declare const vec2Normalize: (v: Vec2) => Vec2;
250
+ export declare const vec3Normalize: (v: Vec3) => Vec3;
251
+ export declare const vec2Greater: (a: Vec2, b: Vec2) => Vec2;
252
+ export declare const vec2Mult: (a: Vec2, b: Vec2) => Vec2;
253
+ export declare const vec3Mult: (a: Vec3, b: Vec3) => Vec3;
254
+ export declare const vec2Dupl: (num: number) => Vec2;
255
+ export declare const vec3Dupl: (num: number) => Vec3;
256
+ export declare const vec2Equals: (a: Vec2, b: Vec2) => boolean;
257
+ export declare const vec3Equals: (a: Vec3, b: Vec3) => boolean;
258
+ export declare const vec3XMean: (...v: ReadonlyArray<Vec3>) => number;
259
+ export declare const vec3YMean: (...v: ReadonlyArray<Vec3>) => number;
260
+ export declare const vec3ZMean: (...v: ReadonlyArray<Vec3>) => number;
261
+ export declare const vec3Greater: (a: Vec3, b: Vec3) => Vec3;
262
+ export declare const equals: (num1: number, num2: number, equailty?: number) => boolean;
263
+ export declare const isZero: (num: number, equailty?: number) => boolean;
264
+ export declare const geq: (num1: number, num2: number, equailty?: number) => boolean;
265
+ export declare const greater: (num1: number, num2: number, equailty?: number) => boolean;
266
+ export declare const leq: (num1: number, num2: number, equailty?: number) => boolean;
267
+ export declare const less: (num1: number, num2: number, equailty?: number) => boolean;
268
+ export declare const bounds: (min: number, max: number) => Bounds;
269
+ export declare const bounds2: (min: Vec2, max: Vec2) => Bounds2;
270
+ export declare const bounds3: (min: Vec3, max: Vec3) => Bounds3;
271
+ export declare const boundsZero: Bounds;
272
+ export declare const bounds2Zero: Bounds2;
273
+ export declare const bounds3Zero: Bounds3;
274
+ export declare const bounds3ToSize: (bounds: Bounds3) => Vec3;
275
+ export declare const bounds3Overlap: (a: Bounds3, b: Bounds3, equailty?: number) => boolean;
276
+ export declare const boundsOverlap: (a: Bounds, b: Bounds) => boolean;
277
+ export declare const bounds2OverlapY: (a: Bounds2, b: Bounds2) => boolean;
278
+ export declare const boundsXOverlapX: (a: Bounds2, b: Bounds2) => boolean;
279
+ export declare const bounds3Center: (bounds: Bounds3) => Vec3;
280
+ export declare function bounds2FromPosAndSize(pos: Vec2, size: Vec2): Bounds2;
281
+ export declare function bounds3FromPosAndSize(pos: Vec3, size: Vec3): Bounds3;
282
+ export declare const bounds2Merge: (a: Bounds2, b: Bounds2) => Bounds2;
283
+ export declare const bounds3Merge: (...bounds: ReadonlyArray<Bounds3>) => Bounds3;
284
+ export declare function bounds3FromVec3Array(vec3Array: ReadonlyArray<Vec3>): Bounds3;
285
+ export declare function vec3RotCombine(outer: Vec3, inner: Vec3): Vec3;
286
+ export declare function vec3Rot(point: Vec3, origin: Vec3, rotation: Vec3): Vec3;
287
+ export declare const vec3TransRot: (p: Vec3, pos: Vec3, rot: Vec3) => Vec3;
288
+ export declare function geoRot<T extends Box | Plane | Cone | Cylinder | Text | Group>(g: T, origin: Vec3, rot: Vec3): T;
289
+ export declare function geoTrans<T extends Box | Plane | Cone | Cylinder | Text | Group>(g: T, translate: Vec3): T;
290
+ export declare function geoTransRot<T extends Box | Plane | Cone | Cylinder | Text | Group | Tube>(g: T, origin: Vec3, rot: Vec3): T;
291
+ export declare function sphereRotTrans(s: Sphere, origin: Vec3, rot: Vec3): Sphere;
292
+ export declare const lineRot: (l: Line, origin: Vec3, rot: Vec3) => Line;
293
+ export declare const lineTrans: (l: Line, translation: Vec3) => Line;
294
+ export declare const lineRotTrans: (l: Line, origin: Vec3, rot: Vec3) => Line;
295
+ export declare const polygonRot: (p: Polygon, origin: Vec3, rot: Vec3) => Polygon;
296
+ export declare const polygonTrans: (p: Polygon, translation: Vec3) => Polygon;
297
+ export declare const polygonRotTrans: (p: Polygon, origin: Vec3, rot: Vec3) => Polygon;
298
+ export declare const group: (meshes: ReadonlyArray<Mesh>, pos?: Vec3, rot?: Vec3, groups?: Group[], data?: {}, animation?: Animation | undefined) => Group;
299
+ export declare const boxMesh: (box: Box, material: Material) => Mesh;
300
+ export declare const boxGeometry: (size: Vec3, pos?: Vec3, rot?: Vec3, holes?: ReadonlyArray<Hole>) => Box;
301
+ export declare const box: (size: Vec3, material: Material, pos?: Vec3, rot?: Vec3, holes?: ReadonlyArray<Hole>) => BoxMesh;
302
+ export declare const roundHole: (pos: Vec2, radius: number) => Hole;
303
+ export declare const squareHole: (pos: Vec2, size: Vec2) => Hole;
304
+ export declare const plane: (pos: Vec3, size: Vec2, material: Material, rot?: Vec3, holes?: ReadonlyArray<Hole>) => PlaneMesh;
305
+ export declare const cone: (pos: Vec3, radius: number, length: number, material: Material, rot?: Vec3) => ConeMesh;
306
+ export declare const cylinder: (pos: Vec3, radius: number, length: number, material: Material, rot?: Vec3, holes?: ReadonlyArray<Hole>) => CylinderMesh;
307
+ export declare const sphere: (radius: number, material: Material, pos?: Vec3) => SphereMesh;
308
+ export declare const shape: (points: ReadonlyArray<Vec2>, pos: Vec3, material: Material, thickness?: number, rot?: Vec3, holes?: ReadonlyArray<Hole>) => ShapeMesh;
309
+ export declare const polygon: (points: ReadonlyArray<Vec3>, material: Material, pos?: Vec3, rot?: Vec3) => PolygonMesh;
310
+ export declare const lineMesh: (line: Line, material: Material) => Mesh;
311
+ export declare const lineGeo: (start: Vec3, end: Vec3, thickness: number) => Line;
312
+ export declare const line: (start: Vec3, end: Vec3, thickness: number, material: Material) => LineMesh;
313
+ export declare const text: (pos: Vec3, text: string, fontSize: number, material: Material, rot?: Vec3) => TextMesh;
314
+ export declare const tube: (curve: Curve, radius: number, material: Material, pos?: Vec3, rot?: Vec3) => Mesh;
315
+ export declare const circleCurve: (radius: number, angleStart: number, angleLength: number) => CircleCurve;
316
+ export declare const splineCurve: (points: ReadonlyArray<Vec3>) => SplineCurve;
317
+ //# sourceMappingURL=abstract-3d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-3d.d.ts","sourceRoot":"","sources":["../src/abstract-3d.ts"],"names":[],"mappings":"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"}